@foxy.io/elements 1.43.0-beta.4 → 1.43.0-beta.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-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-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +7 -7
- package/dist/cdn/{shared-3eb6e232.js → shared-107dc7d7.js} +4 -4
- package/dist/cdn/translations/admin-subscription-form/en.json +2 -2
- package/dist/cdn/translations/coupon-code-form/en.json +2 -2
- package/dist/cdn/translations/coupon-form/en.json +2 -2
- package/dist/cdn/translations/customer/en.json +5 -5
- package/dist/cdn/translations/customer-portal/de.json +6 -5
- package/dist/cdn/translations/customer-portal/en.json +6 -5
- package/dist/cdn/translations/customer-portal/es.json +6 -5
- package/dist/cdn/translations/customer-portal/fr.json +6 -5
- package/dist/cdn/translations/customer-portal/nl.json +6 -5
- package/dist/cdn/translations/customer-portal/pl.json +6 -5
- package/dist/cdn/translations/customer-portal/sv.json +6 -5
- package/dist/cdn/translations/customer-portal/zh-HK.json +6 -5
- package/dist/cdn/translations/subscription-card/en.json +2 -1
- package/dist/cdn/translations/subscription-form/en.json +2 -2
- package/dist/cdn/translations/subscriptions-table/en.json +2 -1
- package/dist/cdn/translations/transaction-card/en.json +2 -2
- package/dist/cdn/translations/transactions-table/en.json +3 -3
- package/dist/elements/public/Donation/Donation.d.ts +1 -1
- package/dist/elements/public/Donation/Donation.js +8 -6
- package/dist/elements/public/Donation/Donation.js.map +1 -1
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +1 -1
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +1 -1
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
- package/dist/elements/public/TransactionCard/TransactionCard.js +1 -1
- package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
- package/dist/elements/public/TransactionsTable/TransactionsTable.js +1 -1
- package/dist/elements/public/TransactionsTable/TransactionsTable.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./foxy-customer.js";import"./shared-b15efc37.js";import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./shared-28253ef3.js";import"./shared-5212ef4f.js";import{I as e}from"./shared-070211c0.js";import"./foxy-access-recovery-form.js";import"./foxy-payment-method-card.js";import{TransactionsTable as t}from"./foxy-transactions-table.js";import"./foxy-subscription-card.js";import"./foxy-subscription-form.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import{u as s}from"./shared-2b328555.js";import"./foxy-sign-in-form.js";import"./foxy-form-dialog.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{_ as r,B as o,aI as i}from"./shared-7fec42f2.js";import{h as a,L as n,c as d}from"./shared-ba5c42c7.js";import{A as l}from"./shared-3b4148ad.js";import"./shared-7dc40542.js";import{C as c}from"./shared-be30b940.js";import{a as m,T as u}from"./shared-a89e8a07.js";import{U as p}from"./shared-cd96ff03.js";import{i as h}from"./shared-53e42a77.js";import{c as f}from"./shared-4e709717.js";import{A as g}from"./shared-65b2760f.js";import{C as y}from"./shared-c782b9fa.js";import{I as $}from"./shared-0ea750af.js";import"./shared-5af5ab06.js";import"./foxy-update-payment-method-form.js";import"./shared-f2e8070b.js";import"./shared-8530fbae.js";import"./shared-3f4549ba.js";import"./shared-d3f37507.js";import"./shared-6313b188.js";import"./shared-f2be9863.js";import"./shared-d8b0432a.js";import"./shared-59c064c2.js";import"./shared-1f95aa71.js";import"./shared-e02936f0.js";import"./shared-9bfb584b.js";import"./shared-ce0df878.js";import"./shared-3c64ecdd.js";import"./shared-f3590d20.js";import"./shared-f7b4a4f6.js";import"./shared-da95bb48.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./foxy-swipe-actions.js";import"./foxy-pagination.js";import"./shared-8a743005.js";import"./shared-acee789f.js";import"./shared-0fa21237.js";import"./shared-5a6e4a7b.js";import"./shared-a16ef278.js";import"./foxy-copy-to-clipboard.js";import"./shared-cf6122d9.js";import"./shared-a4871405.js";import"./foxy-nucleon-element.js";import"./shared-53e476fd.js";import"./shared-bab2ea2c.js";import"./foxy-template-set-card.js";import"./shared-7d1512e1.js";import"./shared-160072f2.js";import"./foxy-payment-card-embed.js";import"./shared-d4928805.js";import"./shared-5fd5805c.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./shared-db50afd9.js";import"./shared-34a7df04.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./shared-e126cf44.js";import"./shared-4388f7ea.js";import"./shared-d0aed1c1.js";import"./foxy-table.js";import"./shared-88a1cb23.js";import"./shared-364b98a1.js";import"./shared-fa482a7d.js";import"./shared-742899dc.js";import"./shared-0fb90a71.js";import"./shared-2c7e0ed1.js";import"./shared-140c6b70.js";import"./shared-46a20973.js";import"./shared-
|
|
1
|
+
import"./foxy-customer.js";import"./shared-b15efc37.js";import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./shared-28253ef3.js";import"./shared-5212ef4f.js";import{I as e}from"./shared-070211c0.js";import"./foxy-access-recovery-form.js";import"./foxy-payment-method-card.js";import{TransactionsTable as t}from"./foxy-transactions-table.js";import"./foxy-subscription-card.js";import"./foxy-subscription-form.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import{u as s}from"./shared-2b328555.js";import"./foxy-sign-in-form.js";import"./foxy-form-dialog.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{_ as r,B as o,aI as i}from"./shared-7fec42f2.js";import{h as a,L as n,c as d}from"./shared-ba5c42c7.js";import{A as l}from"./shared-3b4148ad.js";import"./shared-7dc40542.js";import{C as c}from"./shared-be30b940.js";import{a as m,T as u}from"./shared-a89e8a07.js";import{U as p}from"./shared-cd96ff03.js";import{i as h}from"./shared-53e42a77.js";import{c as f}from"./shared-4e709717.js";import{A as g}from"./shared-65b2760f.js";import{C as y}from"./shared-c782b9fa.js";import{I as $}from"./shared-0ea750af.js";import"./shared-5af5ab06.js";import"./foxy-update-payment-method-form.js";import"./shared-f2e8070b.js";import"./shared-8530fbae.js";import"./shared-3f4549ba.js";import"./shared-d3f37507.js";import"./shared-6313b188.js";import"./shared-f2be9863.js";import"./shared-d8b0432a.js";import"./shared-59c064c2.js";import"./shared-1f95aa71.js";import"./shared-e02936f0.js";import"./shared-9bfb584b.js";import"./shared-ce0df878.js";import"./shared-3c64ecdd.js";import"./shared-f3590d20.js";import"./shared-f7b4a4f6.js";import"./shared-da95bb48.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./foxy-swipe-actions.js";import"./foxy-pagination.js";import"./shared-8a743005.js";import"./shared-acee789f.js";import"./shared-0fa21237.js";import"./shared-5a6e4a7b.js";import"./shared-a16ef278.js";import"./foxy-copy-to-clipboard.js";import"./shared-cf6122d9.js";import"./shared-a4871405.js";import"./foxy-nucleon-element.js";import"./shared-53e476fd.js";import"./shared-bab2ea2c.js";import"./foxy-template-set-card.js";import"./shared-7d1512e1.js";import"./shared-160072f2.js";import"./foxy-payment-card-embed.js";import"./shared-d4928805.js";import"./shared-5fd5805c.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./shared-db50afd9.js";import"./shared-34a7df04.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./shared-e126cf44.js";import"./shared-4388f7ea.js";import"./shared-d0aed1c1.js";import"./foxy-table.js";import"./shared-88a1cb23.js";import"./shared-364b98a1.js";import"./shared-fa482a7d.js";import"./shared-742899dc.js";import"./shared-0fb90a71.js";import"./shared-2c7e0ed1.js";import"./shared-140c6b70.js";import"./shared-46a20973.js";import"./shared-107dc7d7.js";import"./shared-2d3bdc6b.js";import"./shared-ada5e9f5.js";import"./shared-cf613436.js";import"./shared-0e605594.js";import"./shared-43e2c3f6.js";import"./shared-2061be9a.js";import"./foxy-transaction-card.js";import"./shared-dfe59df6.js";import"./foxy-customer-card.js";import"./foxy-item-card.js";import"./shared-12973e93.js";import"./shared-a6b2bd14.js";import"./shared-48129732.js";import"./shared-b738ee96.js";import"./shared-a41ccdc7.js";
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shared-ad8d209a.js";import"./shared-9884fb7d.js";import{h as t}from"./shared-5af5ab06.js";import"./shared-b15efc37.js";import"./shared-5212ef4f.js";import"./foxy-payment-method-card.js";import"./foxy-update-payment-method-form.js";import"./foxy-subscription-form.js";import"./foxy-form-dialog.js";import"./foxy-transactions-table.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./shared-2b328555.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-1b4a3e56.js";import{aI as e,_ as s}from"./shared-7fec42f2.js";import{L as r,h as a,c as o}from"./shared-ba5c42c7.js";import{C as i}from"./shared-c782b9fa.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import{z as h,S as d,T as n,a as l}from"./shared-a89e8a07.js";import{c as m}from"./shared-4e709717.js";import{S as c}from"./shared-364b98a1.js";import"./shared-a16ef278.js";import{G as v}from"./shared-46a20973.js";import"./shared-9bfb584b.js";import"./shared-59c064c2.js";import"./shared-3c64ecdd.js";import"./shared-d4928805.js";import"./shared-1f95aa71.js";import{N as p}from"./shared-da95bb48.js";import{S as f}from"./shared-
|
|
1
|
+
import"./shared-ad8d209a.js";import"./shared-9884fb7d.js";import{h as t}from"./shared-5af5ab06.js";import"./shared-b15efc37.js";import"./shared-5212ef4f.js";import"./foxy-payment-method-card.js";import"./foxy-update-payment-method-form.js";import"./foxy-subscription-form.js";import"./foxy-form-dialog.js";import"./foxy-transactions-table.js";import"./foxy-collection-pages.js";import"./foxy-collection-page.js";import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./shared-2b328555.js";import"./foxy-address-card.js";import"./foxy-address-form.js";import"./foxy-spinner.js";import"./foxy-table.js";import"./shared-1b4a3e56.js";import{aI as e,_ as s}from"./shared-7fec42f2.js";import{L as r,h as a,c as o}from"./shared-ba5c42c7.js";import{C as i}from"./shared-c782b9fa.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import{z as h,S as d,T as n,a as l}from"./shared-a89e8a07.js";import{c as m}from"./shared-4e709717.js";import{S as c}from"./shared-364b98a1.js";import"./shared-a16ef278.js";import{G as v}from"./shared-46a20973.js";import"./shared-9bfb584b.js";import"./shared-59c064c2.js";import"./shared-3c64ecdd.js";import"./shared-d4928805.js";import"./shared-1f95aa71.js";import{N as p}from"./shared-da95bb48.js";import{S as f}from"./shared-107dc7d7.js";import{i as g}from"./shared-53e42a77.js";import"./shared-d3f37507.js";import"./shared-6313b188.js";import"./shared-5a6e4a7b.js";import"./shared-cf613436.js";import"./foxy-nucleon-element.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-0ea750af.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./shared-f2e8070b.js";import"./shared-8530fbae.js";import"./shared-f2be9863.js";import"./shared-d8b0432a.js";import"./shared-e02936f0.js";import"./shared-ce0df878.js";import"./shared-f3590d20.js";import"./shared-f7b4a4f6.js";import"./foxy-swipe-actions.js";import"./foxy-pagination.js";import"./shared-8a743005.js";import"./shared-acee789f.js";import"./shared-0fa21237.js";import"./shared-070211c0.js";import"./foxy-copy-to-clipboard.js";import"./shared-cf6122d9.js";import"./shared-bab2ea2c.js";import"./shared-53e476fd.js";import"./foxy-template-set-card.js";import"./shared-7d1512e1.js";import"./shared-160072f2.js";import"./foxy-payment-card-embed.js";import"./shared-3b4148ad.js";import"./shared-7dc40542.js";import"./shared-5fd5805c.js";import"./shared-0e605594.js";import"./shared-43e2c3f6.js";import"./shared-2061be9a.js";import"./foxy-transaction-card.js";import"./shared-dfe59df6.js";import"./foxy-customer-card.js";import"./foxy-item-card.js";import"./shared-2d3bdc6b.js";import"./shared-12973e93.js";import"./shared-ada5e9f5.js";import"./shared-88a1cb23.js";import"./shared-db50afd9.js";import"./shared-34a7df04.js";import"./shared-a6b2bd14.js";import"./shared-28253ef3.js";import"./shared-48129732.js";import"./shared-4388f7ea.js";import"./shared-d0aed1c1.js";import"./shared-b738ee96.js";import"./shared-e126cf44.js";import"./shared-fa482a7d.js";import"./shared-742899dc.js";import"./shared-0fb90a71.js";import"./shared-2c7e0ed1.js";import"./shared-140c6b70.js";let z,u,b,$=t=>t;class H extends r{constructor(){super(...arguments),this.value=0,this.size=0}static get properties(){return{value:{type:Number},size:{type:Number}}}static get styles(){return h.styles}render(){const t=[],e=[];for(let s=0;s<this.size;++s)t.push(a(z||(z=$` <button id="tab-${0}" role="tab" class="${0}" aria-controls="panel-${0}" aria-selected="${0}" @click="${0}" @keydown="${0}"> <slot name="tab-${0}"></slot> </button> `),s,m({"text-l font-medium px-s rounded focus-outline-none focus-shadow-outline":!0,"text-tertiary hover-text-body focus-text-body":this.value!==s}),s,this.value===s,(()=>this.value=s),this.__handleKeyDown,s)),e.push(a(u||(u=$` <slot id="panel-${0}" role="tabpanel" name="panel-${0}" class="${0}" aria-hidden="${0}" aria-labelledby="tab-${0}"> </slot> `),s,s,m({hidden:this.value!==s}),this.value!==s,s));return a(b||(b=$` <div role="tablist" aria-orientation="horizontal" class="-mx-s mb-s">${0}</div> ${0} `),t,e)}__handleKeyDown(t){if(t.key.startsWith("Arrow")){t.preventDefault();const e=t.target;let s=null;"ArrowRight"===t.key||"ArrowDown"===t.key?s=e.nextElementSibling:"ArrowLeft"!==t.key&&"ArrowUp"!==t.key||(s=e.previousElementSibling),null==s||s.click(),null==s||s.focus()}}}
|
|
2
2
|
/**
|
|
3
3
|
@license
|
|
4
4
|
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t}from"./shared-7fec42f2.js";import"./shared-b15efc37.js";import"./shared-742899dc.js";import"./shared-ce0df878.js";import{L as e,c as s,h as i}from"./shared-ba5c42c7.js";import{T as n,y as a}from"./shared-a89e8a07.js";import{p as r}from"./shared-1b4a3e56.js";import"./shared-ad8d209a.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import{c as o}from"./shared-4e709717.js";import{b as c,C as l,I as d}from"./shared-364b98a1.js";import"./shared-a16ef278.js";import{E as h}from"./shared-50a355d6.js";import{G as m}from"./shared-46a20973.js";import"./shared-9bfb584b.js";import"./shared-59c064c2.js";import"./shared-3c64ecdd.js";import"./shared-d4928805.js";import"./shared-1f95aa71.js";import"./shared-5af5ab06.js";import"./shared-6313b188.js";import"./shared-0ea750af.js";import"./shared-d3f37507.js";import"./shared-acee789f.js";import"./shared-fa482a7d.js";import"./shared-0fb90a71.js";import"./shared-d8b0432a.js";import"./shared-e02936f0.js";import"./shared-53e476fd.js";import"./shared-e1e4d8f5.js";import"./shared-2c7e0ed1.js";import"./shared-140c6b70.js";import"./shared-65b2760f.js";import"./shared-c782b9fa.js";import"./shared-53e42a77.js";class u extends CustomEvent{constructor(t){super("change",{detail:t})}}let p,y,g=t=>t;class f extends(n(e)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return t(t({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,s(p||(p=g`:host{--check-size:1.125rem}label{margin:calc(((1rem * var(--lumo-line-height-s)) - var(--check-size))/ -2) 0}label>:first-child{height:calc(1rem * var(--lumo-line-height-s))}.ml-xxl{margin-left:calc(var(--lumo-space-m) + var(--check-size))}.check{height:var(--check-size);width:var(--check-size)}`))]}render(){return i(y||(y=g` <label class="${0}"> <div class="flex items-center"> <div class="${0}"> <iron-icon icon="lumo:checkmark" class="${0}"> </iron-icon> <input type="checkbox" class="sr-only" .checked="${0}" ?disabled="${0}" data-testid="input" @change="${0}"> </div> </div> <div class="flex-1 font-lumo leading-s ml-m"> <slot></slot> </div> </label> <div class="${0}"> <slot name="content"></slot> </div> `),o({"flex items-start group transition-colors":!0,"cursor-default":this.disabled||this.readonly,"text-disabled":this.disabled,"text-secondary":this.readonly,"cursor-pointer":!this.disabled}),o({"flex-shrink-0 check transition-colors rounded-s border":!0,"focus-within-shadow-outline":!0,"bg-primary text-primary-contrast":!this.readonly&&this.checked,"border-dashed border-contrast-30":this.readonly,"border-transparent":!this.readonly,"opacity-50":this.disabled,"text-secondary bg-contrast-20":!this.readonly&&!this.checked,"group-hover-bg-contrast-30":!this.readonly&&!this.checked}),o({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(t=>{if(this.readonly)return t.preventDefault();t.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new u(this.checked))}),o({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}class
|
|
1
|
+
import{_ as t}from"./shared-7fec42f2.js";import"./shared-b15efc37.js";import"./shared-742899dc.js";import"./shared-ce0df878.js";import{L as e,c as s,h as i}from"./shared-ba5c42c7.js";import{T as n,y as a}from"./shared-a89e8a07.js";import{p as r}from"./shared-1b4a3e56.js";import"./shared-ad8d209a.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import{c as o}from"./shared-4e709717.js";import{b as c,C as l,I as d}from"./shared-364b98a1.js";import"./shared-a16ef278.js";import{E as h}from"./shared-50a355d6.js";import{G as m}from"./shared-46a20973.js";import"./shared-9bfb584b.js";import"./shared-59c064c2.js";import"./shared-3c64ecdd.js";import"./shared-d4928805.js";import"./shared-1f95aa71.js";import"./shared-5af5ab06.js";import"./shared-6313b188.js";import"./shared-0ea750af.js";import"./shared-d3f37507.js";import"./shared-acee789f.js";import"./shared-fa482a7d.js";import"./shared-0fb90a71.js";import"./shared-d8b0432a.js";import"./shared-e02936f0.js";import"./shared-53e476fd.js";import"./shared-e1e4d8f5.js";import"./shared-2c7e0ed1.js";import"./shared-140c6b70.js";import"./shared-65b2760f.js";import"./shared-c782b9fa.js";import"./shared-53e42a77.js";class u extends CustomEvent{constructor(t){super("change",{detail:t})}}let p,y,g=t=>t;class f extends(n(e)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return t(t({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,s(p||(p=g`:host{--check-size:1.125rem}label{margin:calc(((1rem * var(--lumo-line-height-s)) - var(--check-size))/ -2) 0}label>:first-child{height:calc(1rem * var(--lumo-line-height-s))}.ml-xxl{margin-left:calc(var(--lumo-space-m) + var(--check-size))}.check{height:var(--check-size);width:var(--check-size)}`))]}render(){return i(y||(y=g` <label class="${0}"> <div class="flex items-center"> <div class="${0}"> <iron-icon icon="lumo:checkmark" class="${0}"> </iron-icon> <input type="checkbox" class="sr-only" .checked="${0}" ?disabled="${0}" data-testid="input" @change="${0}"> </div> </div> <div class="flex-1 font-lumo leading-s ml-m"> <slot></slot> </div> </label> <div class="${0}"> <slot name="content"></slot> </div> `),o({"flex items-start group transition-colors":!0,"cursor-default":this.disabled||this.readonly,"text-disabled":this.disabled,"text-secondary":this.readonly,"cursor-pointer":!this.disabled}),o({"flex-shrink-0 check transition-colors rounded-s border":!0,"focus-within-shadow-outline":!0,"bg-primary text-primary-contrast":!this.readonly&&this.checked,"border-dashed border-contrast-30":this.readonly,"border-transparent":!this.readonly,"opacity-50":this.disabled,"text-secondary bg-contrast-20":!this.readonly&&!this.checked,"group-hover-bg-contrast-30":!this.readonly&&!this.checked}),o({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(t=>{if(this.readonly)return t.preventDefault();t.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new u(this.checked))}),o({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}class v extends CustomEvent{constructor(t){super("change",{detail:t})}}class b extends CustomEvent{constructor(){super("submit",{cancelable:!0})}}let x,_,$,k,j,w,q,S,C=t=>t;class F extends a{constructor(){super("donation"),this.currency=null,this.amount=null,this.store=null,this.name=null,this.custom=null,this.amounts=null,this.frequency=null,this.frequencies=null,this.designation=null,this.designations=null,this.comment=null,this.anonymity=!1,this.anonymous=!1,this.image=null,this.code=null,this.url=null,this.cart="checkout",this.target="_top",this.__fcSessionPollInterval=null}static get scopedElements(){return{"vaadin-text-area":customElements.get("vaadin-text-area"),"x-error-screen":h,"vaadin-button":customElements.get("vaadin-button"),"x-dropdown":c,"x-checkbox":f,"x-choice":l,"x-group":m,"x-i18n":d}}static get properties(){return t(t({},super.properties),{},{currency:{type:String},custom:{type:Array},amount:{type:Number},amounts:{type:Array},frequency:{type:String},frequencies:{type:Array},designation:{type:Array},designations:{type:Array},comment:{type:String},anonymity:{reflect:!0,type:Boolean},anonymous:{reflect:!0,type:Boolean},image:{type:String},store:{type:String},name:{type:String},code:{type:String},url:{type:String},cart:{type:String},target:{type:String},empty:{type:String}})}static get events(){return{change:v,submit:b}}submit(){this.dispatchEvent(new b)&&this.__form.submit()}render(){var t,e;if(!(this.currency&&this.amount&&this.store&&this.name))return i(x||(x=C` <x-error-screen data-testid="error" type="setup_needed" class="relative"></x-error-screen> `));const s=this.store.includes(".")?this.store:`${this.store}.foxycart.com`;return i(_||(_=C` <form target="${0}" class="sr-only" method="POST" action="https://${0}/cart" data-testid="form"> ${0} </form> <section> ${0} </section> <section> ${0} </section> <section> ${0} </section> <section> ${0} <div class="flex flex-wrap -m-s"> ${0} <div class="flex-1 p-s"> <vaadin-button class="w-full" theme="primary" data-testid="submit" @click="${0}"> <x-i18n .opts="${0}" lang="${0}" key="${0}" ns="${0}"> </x-i18n> </vaadin-button> </div> </div> </section> `),this.target,s,[...this.__data.entries()].map((([t,e])=>i($||($=C`<input type="hidden" name="${0}" value="${0}">`),t,e))),this.amounts&&this.amounts.length>0?i(k||(k=C` <x-group frame> <x-i18n ns="${0}" lang="${0}" key="amount" slot="header"></x-i18n> <x-choice ?custom="${0}" .getText="${0}" .items="${0}" .value="${0}" type="number" lang="${0}" min="1" ns="${0}" data-testid="amount" @change="${0}"> </x-choice> </x-group> <slot name="amount" class="block my-m"></slot> `),this.ns,this.lang,!!(null===(t=this.custom)||void 0===t?void 0:t.includes("amount")),(t=>this.__translateAmount(parseFloat(t))),this.amounts.map(String),this.amount.toString(),this.lang,this.ns,(t=>{const e=parseFloat(t.detail);this.amount=isNaN(e)?1:e})):"",this.designations&&this.designations.length>0?i(j||(j=C` <x-dropdown .label="${0}" .items="${0}" .value="${0}" data-testid="designation" @change="${0}"> </x-dropdown> <slot name="designation" class="block my-m"></slot> `),this._t("designation").toString(),this.designations,Array.isArray(this.designation)?"${this.designation[0]}: ${this.designation[1]}":this.designation,(t=>{this.designation=t.detail})):"","string"==typeof this.comment?i(w||(w=C` <vaadin-text-area placeholder="${0}" value="${0}" label="${0}" class="w-full" data-testid="comment" @input="${0}"> </vaadin-text-area> <slot name="comment" class="block my-m"></slot> `),this._t("comment_placeholder").toString(),this.comment,this._t("comment_label").toString(),(t=>{t.stopPropagation(),this.comment=t.target.value})):"",this.anonymity?i(q||(q=C` <x-checkbox class="my-m" data-testid="anonymity" ?checked="${0}" @change="${0}"> ${0} </x-checkbox> `),this.anonymous,(t=>this.anonymous=t.detail),this._t("anonymous")):"",this.frequencies&&this.frequencies.length>0?i(S||(S=C` <div class="flex-1 p-s"> <x-dropdown .value="${0}" .items="${0}" .getText="${0}" data-testid="frequency" @change="${0}"> </x-dropdown> </div> `),this.frequency,this.frequencies,this.__translateFrequency.bind(this),(t=>{this.frequency=t.detail})):"",(()=>this.submit()),{amount:this.__translateAmount(this.amount),frequency:this.frequency?this.__translateFrequency(this.frequency):""},this.lang,this.frequency&&!(null===(e=this.frequencies)||void 0===e?void 0:e.length)?"donate_recurrently":"donate",this.ns)}connectedCallback(){var t,e;super.connectedCallback(),(null===(e=null===(t=window.FC)||void 0===t?void 0:t.settings)||void 0===e?void 0:e.session_id)||null!==this.__fcSessionPollInterval||(this.__fcSessionPollInterval=window.setInterval((()=>{var t,e,s;(null===(e=null===(t=window.FC)||void 0===t?void 0:t.settings)||void 0===e?void 0:e.session_id)&&(clearInterval(null!==(s=this.__fcSessionPollInterval)&&void 0!==s?s:void 0),this.requestUpdate())}),1e3))}disconnectedCallback(){var t;super.disconnectedCallback(),clearInterval(null!==(t=this.__fcSessionPollInterval)&&void 0!==t?t:void 0)}updated(){this.dispatchEvent(new v(this.__data))}get __data(){var t,e;const s=new FormData;return"string"==typeof this.designation&&s.set("Designation",this.designation.trim()),"number"==typeof this.amount&&"string"==typeof this.currency&&s.set("price",`${this.amount.toFixed(2)}${this.currency}`),this.frequency&&s.set("sub_frequency",this.frequency),"string"==typeof this.comment&&s.set("Comment",this.comment.trim()),"string"==typeof this.image&&s.set("image",this.image),"string"==typeof this.code&&s.set("code",this.code),"string"==typeof this.name&&s.set("name",this.name.trim()),"string"==typeof this.url&&s.set("url",this.url),"string"==typeof this.cart&&s.set("cart",this.cart),this.empty&&s.set("empty",this.empty),this.anonymous&&s.set("Anonymous","true"),(null===(e=null===(t=window.FC)||void 0===t?void 0:t.settings)||void 0===e?void 0:e.session_id)&&window.FC.settings.session_name&&s.set(window.FC.settings.session_name,window.FC.settings.session_id),s.set("quantity","1"),s}get __form(){return this.shadowRoot.querySelector("form")}__translateFrequency(t){if(!t||t.match(/^\s*$/))return this._t("frequency_once");if(".5m"===t)return this._t("frequency_0_5m");const{count:e,units:s}=r(t);return this._t("frequency",{units:this._t(s,{count:e}),count:e})}__translateAmount(t){return t.toLocaleString(this.lang,{minimumFractionDigits:0,currency:this.currency,style:"currency"})}}customElements.define("foxy-donation",F);export{F as Donation};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-cf6122d9.js";import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./shared-5212ef4f.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{_ as s}from"./shared-7fec42f2.js";import{h as t}from"./shared-ba5c42c7.js";import{C as e}from"./shared-c782b9fa.js";import{N as i}from"./shared-da95bb48.js";import{R as a,T as n,a as r}from"./shared-a89e8a07.js";import{c as o}from"./shared-4e709717.js";import{p as d}from"./shared-2d3bdc6b.js";import{a as m,g as l}from"./shared-ada5e9f5.js";import"./shared-5af5ab06.js";import"./shared-6313b188.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import"./shared-d3f37507.js";import"./shared-0ea750af.js";import"./shared-53e42a77.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";let c,p=s=>s;const f=e(a(n(r(i,"subscription-card"))));class h extends f{constructor(){super(...arguments),this.settings=null}static get properties(){return s(s({},super.properties),{},{settings:{type:Object}})}render(){var s,e,i,a,n;const r=this.settings?m(this.data,this.settings):l(this.data),d="failed"===r,f=(null==r?void 0:r.startsWith("next_payment"))||!!(null==r?void 0:r.startsWith("will_end")),h=!f&&!d;return t(c||(c=p` <div class="relative text-left"> <div class="${0}"> <div class="${0}"> <iron-icon class="m-auto" icon="${0}"> </iron-icon> </div> <div class="flex-1 min-w-0 leading-xs flex flex-col sm-flex-row sm-items-center"> <div class="order-1 sm-order-0"> <div class="text-body font-medium origin-top-left text-m"> <foxy-i18n data-testid="summary" options="${0}" lang="${0}" key="transaction_summary" ns="${0}"> </foxy-i18n> ​ </div> <div class="${0}"> <foxy-i18n data-testid="status" lang="${0}" key="status_${0}" ns="${0}" .options="${0}"> </foxy-i18n> ​ </div> </div> <div class="flex-1 leading-xs mb-xs sm-mb-0 sm-text-right order-0 sm-order-1"> <foxy-i18n data-testid="price" options="${0}" class="text-xxs sm-text-l font-tnum tracking-wide sm-tracking-normal uppercase sm-normal-case font-medium text-secondary sm-text-body sm-block" lang="${0}" key="price${0}" ns="${0}"> </foxy-i18n> <span class="text-secondary font-medium sm-font-normal sm-block text-xxs sm-text-s"> <span class="sm-hidden">(</span><span class="hidden sm-inline">*</span><foxy-i18n infer="" key="fees_hint"></foxy-i18n><span class="sm-hidden">)</span> <iron-icon id="hint" icon="icons:info-outline" class="icon-inline"></iron-icon> <vcf-tooltip for="hint" position="bottom"> <span class="text-s"><foxy-i18n infer="" key="fees_explainer"></foxy-i18n></span> </vcf-tooltip> <span> ​ </span></span></div> </div> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner state="${0}" class="m-auto" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> ${0} `),o({"flex items-start sm-items-center space-x-m transition duration-150 ease-in-out":!0,"opacity-0":!this.in({idle:"snapshot"})}),o({"min-w-0 flex-shrink-0 rounded-full relative flex p-s":!0,"text-success bg-success-10":f,"text-body bg-contrast-5":h,"text-error bg-error-10":d}),d?"error-outline":f?"done":"done-all",JSON.stringify(this.__getSummaryOptions()),this.lang,this.ns,o({"text-m":!0,"text-tertiary":h,"text-success":f,"text-error":d}),this.lang,r,this.ns,this.data,JSON.stringify(this.__getPriceOptions()),this.lang,null===(e=null===(s=this.settings)||void 0===s?void 0:s.cart_display_config.show_sub_frequency)||void 0===e||e?"_"+(".5m"===(null===(i=this.data)||void 0===i?void 0:i.frequency)?"twice_a_month":"recurring"):"",this.ns,o({"pointer-events-none absolute inset-0 flex transition ease-in-out duration-150":!0,"opacity-0":this.in({idle:"snapshot"})}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(n=null===(a=customElements.get("foxy-spinner"))||void 0===a?void 0:a.defaultNS)&&void 0!==n?n:"",this.renderTemplateOrSlot())}__getSummaryOptions(){if(null===this.data)return{};const s=this.data._embedded["fx:transaction_template"]._embedded["fx:items"];return{
|
|
1
|
+
import"./shared-cf6122d9.js";import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./shared-5212ef4f.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{_ as s}from"./shared-7fec42f2.js";import{h as t}from"./shared-ba5c42c7.js";import{C as e}from"./shared-c782b9fa.js";import{N as i}from"./shared-da95bb48.js";import{R as a,T as n,a as r}from"./shared-a89e8a07.js";import{c as o}from"./shared-4e709717.js";import{p as d}from"./shared-2d3bdc6b.js";import{a as m,g as l}from"./shared-ada5e9f5.js";import"./shared-5af5ab06.js";import"./shared-6313b188.js";import"./shared-3f4549ba.js";import"./shared-a4871405.js";import"./shared-d3f37507.js";import"./shared-0ea750af.js";import"./shared-53e42a77.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";let c,p=s=>s;const f=e(a(n(r(i,"subscription-card"))));class h extends f{constructor(){super(...arguments),this.settings=null}static get properties(){return s(s({},super.properties),{},{settings:{type:Object}})}render(){var s,e,i,a,n;const r=this.settings?m(this.data,this.settings):l(this.data),d="failed"===r,f=(null==r?void 0:r.startsWith("next_payment"))||!!(null==r?void 0:r.startsWith("will_end")),h=!f&&!d;return t(c||(c=p` <div class="relative text-left"> <div class="${0}"> <div class="${0}"> <iron-icon class="m-auto" icon="${0}"> </iron-icon> </div> <div class="flex-1 min-w-0 leading-xs flex flex-col sm-flex-row sm-items-center"> <div class="order-1 sm-order-0"> <div class="text-body font-medium origin-top-left text-m"> <foxy-i18n data-testid="summary" options="${0}" lang="${0}" key="transaction_summary" ns="${0}"> </foxy-i18n> ​ </div> <div class="${0}"> <foxy-i18n data-testid="status" lang="${0}" key="status_${0}" ns="${0}" .options="${0}"> </foxy-i18n> ​ </div> </div> <div class="flex-1 leading-xs mb-xs sm-mb-0 sm-text-right order-0 sm-order-1"> <foxy-i18n data-testid="price" options="${0}" class="text-xxs sm-text-l font-tnum tracking-wide sm-tracking-normal uppercase sm-normal-case font-medium text-secondary sm-text-body sm-block" lang="${0}" key="price${0}" ns="${0}"> </foxy-i18n> <span class="text-secondary font-medium sm-font-normal sm-block text-xxs sm-text-s"> <span class="sm-hidden">(</span><span class="hidden sm-inline">*</span><foxy-i18n infer="" key="fees_hint"></foxy-i18n><span class="sm-hidden">)</span> <iron-icon id="hint" icon="icons:info-outline" class="icon-inline"></iron-icon> <vcf-tooltip for="hint" position="bottom"> <span class="text-s"><foxy-i18n infer="" key="fees_explainer"></foxy-i18n></span> </vcf-tooltip> <span> ​ </span></span></div> </div> </div> <div data-testid="spinner" class="${0}"> <foxy-spinner state="${0}" class="m-auto" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> ${0} `),o({"flex items-start sm-items-center space-x-m transition duration-150 ease-in-out":!0,"opacity-0":!this.in({idle:"snapshot"})}),o({"min-w-0 flex-shrink-0 rounded-full relative flex p-s":!0,"text-success bg-success-10":f,"text-body bg-contrast-5":h,"text-error bg-error-10":d}),d?"error-outline":f?"done":"done-all",JSON.stringify(this.__getSummaryOptions()),this.lang,this.ns,o({"text-m":!0,"text-tertiary":h,"text-success":f,"text-error":d}),this.lang,r,this.ns,this.data,JSON.stringify(this.__getPriceOptions()),this.lang,null===(e=null===(s=this.settings)||void 0===s?void 0:s.cart_display_config.show_sub_frequency)||void 0===e||e?"_"+(".5m"===(null===(i=this.data)||void 0===i?void 0:i.frequency)?"twice_a_month":"recurring"):"",this.ns,o({"pointer-events-none absolute inset-0 flex transition ease-in-out duration-150":!0,"opacity-0":this.in({idle:"snapshot"})}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(n=null===(a=customElements.get("foxy-spinner"))||void 0===a?void 0:a.defaultNS)&&void 0!==n?n:"",this.renderTemplateOrSlot())}__getSummaryOptions(){if(null===this.data)return{};const s=this.data._embedded["fx:transaction_template"]._embedded["fx:items"];return{count_minus_one:s.length-1,first_item:s[0],count:s.length}}__getPriceOptions(){if(null===this.data)return{};const t=this.data._embedded["fx:transaction_template"],e=`${t.total_order} ${t.currency_code}`;return s(s({},d(this.data.frequency)),{},{amount:e})}}customElements.define("foxy-subscription-card",h);export{h as SubscriptionCard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{S as s}from"./shared-
|
|
1
|
+
import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{S as s}from"./shared-107dc7d7.js";export{S as SubscriptionsTable}from"./shared-107dc7d7.js";import"./shared-ad8d209a.js";import"./shared-d3f37507.js";import"./shared-5af5ab06.js";import"./shared-a89e8a07.js";import"./shared-7fec42f2.js";import"./shared-ba5c42c7.js";import"./shared-9884fb7d.js";import"./shared-0ea750af.js";import"./shared-88a1cb23.js";import"./shared-c782b9fa.js";import"./shared-53e42a77.js";import"./foxy-nucleon-element.js";import"./shared-da95bb48.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./shared-4e709717.js";import"./shared-2d3bdc6b.js";import"./shared-ada5e9f5.js";customElements.define("foxy-subscriptions-table",s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-cf6122d9.js";import"./shared-5212ef4f.js";import"./shared-dfe59df6.js";import"./shared-1b4a3e56.js";import"./shared-7fec42f2.js";import{g as
|
|
1
|
+
import"./shared-cf6122d9.js";import"./shared-5212ef4f.js";import"./shared-dfe59df6.js";import"./shared-1b4a3e56.js";import"./shared-7fec42f2.js";import{g as t}from"./shared-bab2ea2c.js";import{C as e}from"./shared-c782b9fa.js";import{a as s}from"./shared-a89e8a07.js";import{I as i}from"./shared-160072f2.js";import{c as r}from"./shared-4e709717.js";import{h as o}from"./shared-ba5c42c7.js";import"./shared-5af5ab06.js";import"./shared-6313b188.js";import"./shared-3f4549ba.js";import"./shared-ad8d209a.js";import"./shared-d3f37507.js";import"./shared-a4871405.js";import"./foxy-spinner.js";import"./shared-9884fb7d.js";import"./shared-0ea750af.js";import"./shared-53e42a77.js";import"./shared-da95bb48.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";let n,a,d,c,l,p,u,f,m,h,y,v,_,x,$,b,g=t=>t;const j=e(s(i,"transaction-card"));class S extends j{constructor(){super(...arguments),this.__currencyDisplay=""}renderBody(){var t,e;const s=this.hiddenSelector,i=!s.matches("total",!0),d=!s.matches("status",!0);return o(n||(n=g` <div aria-busy="${0}" aria-live="polite" class="relative leading-s font-lumo text-m"> <div class="${0}"> ${0} ${0} ${0} </div> <div class="${0}"> <foxy-spinner data-testid="spinner" state="${0}" class="m-auto" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.in("busy"),r({"transition-opacity":!0,"opacity-0":!this.data}),i||d?o(a||(a=g` <div class="flex items-center justify-between gap-s"> ${0} ${0} </div> `),i?this.__renderIdAndTotal():"",d?this.__renderStatus():""):"",s.matches("description",!0)?"":this.__renderSummary(),s.matches("customer",!0)?"":this.__renderCustomer(),r({"pointer-events-none absolute inset-0 flex transition-opacity":!0,"opacity-0":!!this.data}),this.in("fail")?"error":this.in({idle:"template"})?"empty":"busy",this.lang,this.ns,null!==(e=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==e?e:"")}async _sendGet(){var t;const e=await super._sendGet(),s=null===(t=e._links["fx:store"])||void 0===t?void 0:t.href;if("string"==typeof s){const t=await super._fetch(s);this.__currencyDisplay=t.use_international_currency_symbol?"code":"symbol"}else this.__currencyDisplay="symbol";return e}__renderIdAndTotal(){const e=this.data;let s;if(e){const i={amount:`${e.total_order} ${e.currency_code}`,currencyDisplay:this.__currencyDisplay};s=o(d||(d=g` <span class="truncate">ID ${0}</span> ${0} ${0} `),e.display_id||t(e._links.self.href),"updateinfo"!==e.type&&"subscription_cancellation"!==e.type?o(c||(c=g` <span>•</span> <foxy-i18n .options="${0}" infer="" class="whitespace-nowrap" key="price"> </foxy-i18n> `),i):"",(null==e?void 0:e.is_test)?o(l||(l=g` <foxy-i18n infer="" class="inline-block text-xs font-medium uppercase bg-contrast-5 text-tertiary rounded-s p-xs leading-none tracking-wider" key="test"> </foxy-i18n> `)):"")}else s=o(p||(p=g`​`));return o(u||(u=g` <div class="min-w-0" data-testid="total"> ${0} <div class="font-medium flex items-center gap-xs">${0}</div> ${0} </div> `),this.renderTemplateOrSlot("total:before"),s,this.renderTemplateOrSlot("total:after"))}__renderStatus(){var t,e,s,i,r,n,a;const d=(null===(t=this.data)||void 0===t?void 0:t.status)||"completed",c=null===(s=null===(e=this.data)||void 0===e?void 0:e.source)||void 0===s?void 0:s.substring(0,3).toUpperCase();return o(f||(f=g` <div class="flex-shrink-0" data-testid="status"> ${0} <div class="text-tertiary text-s flex items-center space-x-xs"> ${0} ${0} <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> <iron-icon data-testid="status-icon" class="icon-inline cursor-default text-l ${0}" id="status" icon="${0}"> </iron-icon> <vcf-tooltip for="status" theme="light" position="top"> <foxy-i18n infer="" key="status_${0}"></foxy-i18n> </vcf-tooltip> </div> ${0} </div> `),this.renderTemplateOrSlot("status:before"),(null===(i=this.data)||void 0===i?void 0:i.hide_transaction)?o(m||(m=g` <vcf-tooltip for="hidden" theme="light" position="top"> <foxy-i18n infer="" key="hidden_hint"></foxy-i18n> </vcf-tooltip> <iron-icon class="icon-inline cursor-default" icon="icons:visibility-off" id="hidden"> </iron-icon> `)):"",c?o(h||(h=g` <vcf-tooltip for="source" theme="light" position="top"> <foxy-i18n infer="" key="source_${0}"></foxy-i18n> </vcf-tooltip> <span class="cursor-default" id="source">${0}</span> `),c,c):"",JSON.stringify({value:null===(r=this.data)||void 0===r?void 0:r.transaction_date}),this.lang,this.ns,null!==(n={authorized:"text-success",completed:"text-success",capturing:"text-success",captured:"text-success",approved:"text-success",pending:"text-success",pending_fraud_review:"text-error",declined:"text-error",rejected:"text-error",problem:"text-error"}[d])&&void 0!==n?n:"text-tertiary",null!==(a={authorized:"icons:done",capturing:"icons:done",captured:"icons:done",approved:"icons:done",pending:"icons:done",completed:"icons:done-all",pending_fraud_review:"icons:info-outline",declined:"icons:highlight-off",rejected:"icons:highlight-off",problem:"icons:info-outline",refunded:"icons:restore",voided:"icons:remove-circle-outline"}[d])&&void 0!==a?a:"icons:schedule",d,this.renderTemplateOrSlot("status:after"))}__renderSummary(){var t,e,s;const i=null===(e=null===(t=this.data)||void 0===t?void 0:t._embedded)||void 0===e?void 0:e["fx:items"],r=null===(s=this.data)||void 0===s?void 0:s.type;let n,a;if(a="updateinfo"===r?"summary_payment_method_change":"subscription_modification"===r?"summary_subscription_modification":"subscription_cancellation"===r?"summary_subscription_cancellation":"summary",i){const t={count_minus_one:i.length-1,first_item:i[0],count:i.length};n=o(y||(y=g`<foxy-i18n .options="${0}" infer="" key="${0}"></foxy-i18n>`),t,a)}else n=o(v||(v=g`​`));return o(_||(_=g` <div data-testid="description"> ${0} <div class="text-s text-secondary truncate">${0}</div> ${0} </div> `),this.renderTemplateOrSlot("description:before"),n,this.renderTemplateOrSlot("description:after"))}__renderCustomer(){const t=this.data,e=t?o(x||(x=g`${0} ${0} (${0})`),t.customer_first_name,t.customer_last_name,t.customer_email):o($||($=g`​`));return o(b||(b=g` <div data-testid="customer"> ${0} <div class="text-tertiary truncate text-s">${0}</div> ${0} </div> `),this.renderTemplateOrSlot("customer:before"),e,this.renderTemplateOrSlot("customer:after"))}}customElements.define("foxy-transaction-card",S);export{S as TransactionCard};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{T as t}from"./shared-88a1cb23.js";import{a as s}from"./shared-a89e8a07.js";import"./shared-5af5ab06.js";import"./shared-d3f37507.js";import"./shared-7fec42f2.js";import"./shared-ba5c42c7.js";import"./shared-0ea750af.js";import"./shared-c782b9fa.js";import"./shared-53e42a77.js";import"./foxy-nucleon-element.js";import"./shared-da95bb48.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./shared-4e709717.js";let e,a,n,o,r,i,l=t=>t;class
|
|
1
|
+
import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.js";import"./shared-1b4a3e56.js";import{T as t}from"./shared-88a1cb23.js";import{a as s}from"./shared-a89e8a07.js";import"./shared-5af5ab06.js";import"./shared-d3f37507.js";import"./shared-7fec42f2.js";import"./shared-ba5c42c7.js";import"./shared-0ea750af.js";import"./shared-c782b9fa.js";import"./shared-53e42a77.js";import"./foxy-nucleon-element.js";import"./shared-da95bb48.js";import"./shared-65b2760f.js";import"./shared-cd96ff03.js";import"./shared-37869bac.js";import"./shared-d6a0954b.js";import"./shared-1da47f50.js";import"./shared-e1e4d8f5.js";import"./shared-4e709717.js";let e,a,n,o,r,i,l=t=>t;class d extends(s(t,"transactions-table")){constructor(){super(...arguments),this.columns=[d.priceColumn,d.summaryColumn,d.statusColumn,d.idColumn,d.dateColumn,d.receiptColumn]}}d.priceColumn={cell:t=>t.html(e||(e=l`
|
|
2
2
|
<foxy-i18n
|
|
3
3
|
data-testclass="i18n totals"
|
|
4
4
|
class="text-m font-medium font-tnum"
|
|
@@ -8,7 +8,7 @@ import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.
|
|
|
8
8
|
.options=${0}
|
|
9
9
|
>
|
|
10
10
|
</foxy-i18n>
|
|
11
|
-
`),t.lang,t.ns,{amount:`${t.data.total_order} ${t.data.currency_code}`})},
|
|
11
|
+
`),t.lang,t.ns,{amount:`${t.data.total_order} ${t.data.currency_code}`})},d.summaryColumn={cell:t=>{var s;const e=null===(s=t.data._embedded)||void 0===s?void 0:s["fx:items"];if(!e)return"";const n={count_minus_one:e.length-1,first_item:e[0],count:e.length};return t.html(a||(a=l`
|
|
12
12
|
<foxy-i18n
|
|
13
13
|
data-testclass="i18n summaries"
|
|
14
14
|
class="text-m"
|
|
@@ -18,7 +18,7 @@ import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.
|
|
|
18
18
|
.options=${0}
|
|
19
19
|
>
|
|
20
20
|
</foxy-i18n>
|
|
21
|
-
`),t.lang,t.ns,n)}},
|
|
21
|
+
`),t.lang,t.ns,n)}},d.statusColumn={hideBelow:"sm",cell:t=>{const s={completed:"bg-success-10 text-success",declined:"bg-error-10 text-error",rejected:"bg-error-10 text-error"},e=t.data.status||"completed",a=e in s?s[e]:"bg-contrast-5 text-contrast";return t.html(n||(n=l`
|
|
22
22
|
<foxy-i18n
|
|
23
23
|
data-testclass="i18n statuses"
|
|
24
24
|
class="px-s py-xs text-m font-medium rounded ${0}"
|
|
@@ -27,11 +27,11 @@ import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.
|
|
|
27
27
|
ns=${0}
|
|
28
28
|
>
|
|
29
29
|
</foxy-i18n>
|
|
30
|
-
`),a,t.lang,`transaction_${e}`,t.ns)}},
|
|
30
|
+
`),a,t.lang,`transaction_${e}`,t.ns)}},d.idColumn={hideBelow:"sm",cell:t=>t.html(o||(o=l`
|
|
31
31
|
<span class="text-m text-secondary font-tnum" data-testclass="ids">
|
|
32
32
|
<span class="text-tertiary">ID</span> ${0}
|
|
33
33
|
</span>
|
|
34
|
-
`),t.data.id)},
|
|
34
|
+
`),t.data.id)},d.dateColumn={hideBelow:"sm",cell:t=>t.html(r||(r=l`
|
|
35
35
|
<foxy-i18n
|
|
36
36
|
data-testclass="i18n dates"
|
|
37
37
|
class="text-m text-secondary font-tnum"
|
|
@@ -41,7 +41,7 @@ import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.
|
|
|
41
41
|
.options=${0}
|
|
42
42
|
>
|
|
43
43
|
</foxy-i18n>
|
|
44
|
-
`),t.lang,t.ns,{value:t.data.transaction_date})},
|
|
44
|
+
`),t.lang,t.ns,{value:t.data.transaction_date})},d.receiptColumn={cell:t=>t.html(i||(i=l`
|
|
45
45
|
<a
|
|
46
46
|
data-testclass="links"
|
|
47
47
|
target="_blank"
|
|
@@ -57,4 +57,4 @@ import"./shared-9884fb7d.js";import"./shared-ad8d209a.js";import"./foxy-spinner.
|
|
|
57
57
|
</foxy-i18n>
|
|
58
58
|
<iron-icon icon="icons:open-in-new" class="icon-inline"></iron-icon>
|
|
59
59
|
</a>
|
|
60
|
-
`),t.data._links["fx:receipt"].href,t.ns,t.lang)},
|
|
60
|
+
`),t.data._links["fx:receipt"].href,t.ns,t.lang)},d.__ns="transactions-table",customElements.define("foxy-transactions-table",d);export{d as TransactionsTable};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as t}from"./shared-7fec42f2.js";import{T as
|
|
1
|
+
import{_ as t}from"./shared-7fec42f2.js";import{T as s}from"./shared-88a1cb23.js";import{a as e}from"./shared-a89e8a07.js";import{p as n}from"./shared-2d3bdc6b.js";import{g as a}from"./shared-ada5e9f5.js";import{c as o}from"./shared-4e709717.js";let r,l,m,i,c=t=>t;class u extends(e(s,"subscriptions-table")){constructor(){super(...arguments),this.columns=[u.priceColumn,u.summaryColumn,u.statusColumn,u.subTokenURLColumn]}}u.priceColumn={cell:s=>{const e=s.data._embedded["fx:transaction_template"],a=`${e.total_order} ${e.currency_code}`;return s.html(r||(r=c`
|
|
2
2
|
<foxy-i18n
|
|
3
3
|
data-testclass="i18n frequencies"
|
|
4
4
|
class="font-medium text-m font-tnum"
|
|
@@ -8,7 +8,7 @@ import{_ as t}from"./shared-7fec42f2.js";import{T as e}from"./shared-88a1cb23.js
|
|
|
8
8
|
.options=${0}
|
|
9
9
|
>
|
|
10
10
|
</foxy-i18n>
|
|
11
|
-
`),
|
|
11
|
+
`),s.lang,".5m"===s.data.frequency?"twice_a_month":"recurring",s.ns,t(t({},n(s.data.frequency)),{},{amount:a}))}},u.summaryColumn={cell:t=>{const s=t.data._embedded["fx:transaction_template"]._embedded["fx:items"],e={count_minus_one:s.length-1,first_item:s[0],count:s.length};return t.html(l||(l=c`
|
|
12
12
|
<foxy-i18n
|
|
13
13
|
data-testclass="i18n summaries"
|
|
14
14
|
class="text-m"
|
|
@@ -18,7 +18,7 @@ import{_ as t}from"./shared-7fec42f2.js";import{T as e}from"./shared-88a1cb23.js
|
|
|
18
18
|
.options=${0}
|
|
19
19
|
>
|
|
20
20
|
</foxy-i18n>
|
|
21
|
-
`),t.lang,t.ns,
|
|
21
|
+
`),t.lang,t.ns,e)}},u.statusColumn={hideBelow:"sm",cell:({ns:t,lang:s,data:e,html:n})=>{const r=a(e),l="failed"===r,i="next_payment"===r||!!(null==r?void 0:r.startsWith("will_end"));return n(m||(m=c`
|
|
22
22
|
<foxy-i18n
|
|
23
23
|
data-testclass="i18n statuses"
|
|
24
24
|
class=${0}
|
|
@@ -28,7 +28,7 @@ import{_ as t}from"./shared-7fec42f2.js";import{T as e}from"./shared-88a1cb23.js
|
|
|
28
28
|
.options=${0}
|
|
29
29
|
>
|
|
30
30
|
</foxy-i18n>
|
|
31
|
-
`),o({"px-s py-xs text-m font-medium inline-block whitespace-normal rounded":!0,"text-secondary bg-contrast-5":!i&&!l,"text-success bg-success-10":i,"text-error bg-error-10":l}),
|
|
31
|
+
`),o({"px-s py-xs text-m font-medium inline-block whitespace-normal rounded":!0,"text-secondary bg-contrast-5":!i&&!l,"text-success bg-success-10":i,"text-error bg-error-10":l}),s,r,t,e)}},u.subTokenURLColumn={cell:t=>t.html(i||(i=c`
|
|
32
32
|
<a
|
|
33
33
|
data-testclass="links"
|
|
34
34
|
target="_blank"
|
|
@@ -291,8 +291,8 @@
|
|
|
291
291
|
"status_refunded": "Refunded",
|
|
292
292
|
"status_voided": "Voided",
|
|
293
293
|
"status_verified": "Verified",
|
|
294
|
-
"summary": "{{
|
|
295
|
-
"summary_plural": "{{
|
|
294
|
+
"summary": "{{first_item.name}}",
|
|
295
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
296
296
|
"summary_payment_method_change": "Payment method change",
|
|
297
297
|
"summary_subscription_modification": "Subscription modification",
|
|
298
298
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"status_refunded": "Refunded",
|
|
62
62
|
"status_voided": "Voided",
|
|
63
63
|
"status_verified": "Verified",
|
|
64
|
-
"summary": "{{
|
|
65
|
-
"summary_plural": "{{
|
|
64
|
+
"summary": "{{first_item.name}}",
|
|
65
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
66
66
|
"summary_payment_method_change": "Payment method change",
|
|
67
67
|
"summary_subscription_modification": "Subscription modification",
|
|
68
68
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -257,8 +257,8 @@
|
|
|
257
257
|
"status_refunded": "Refunded",
|
|
258
258
|
"status_voided": "Voided",
|
|
259
259
|
"status_verified": "Verified",
|
|
260
|
-
"summary": "{{
|
|
261
|
-
"summary_plural": "{{
|
|
260
|
+
"summary": "{{first_item.name}}",
|
|
261
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
262
262
|
"summary_payment_method_change": "Payment method change",
|
|
263
263
|
"summary_subscription_modification": "Subscription modification",
|
|
264
264
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -1278,8 +1278,8 @@
|
|
|
1278
1278
|
"status_refunded": "Refunded",
|
|
1279
1279
|
"status_voided": "Voided",
|
|
1280
1280
|
"status_verified": "Verified",
|
|
1281
|
-
"summary": "{{
|
|
1282
|
-
"summary_plural": "{{
|
|
1281
|
+
"summary": "{{first_item.name}}",
|
|
1282
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
1283
1283
|
"summary_payment_method_change": "Payment method change",
|
|
1284
1284
|
"summary_subscription_modification": "Subscription modification",
|
|
1285
1285
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -1320,7 +1320,7 @@
|
|
|
1320
1320
|
"status_ended": "Ended on {{ end_date, date }}",
|
|
1321
1321
|
"status_next_payment": "Next payment on {{ next_transaction_date, date }}",
|
|
1322
1322
|
"status_inactive": "Inactive",
|
|
1323
|
-
"transaction_summary": "{{
|
|
1323
|
+
"transaction_summary": "{{first_item.name}}",
|
|
1324
1324
|
"twice_a_month": "Twice a month",
|
|
1325
1325
|
"update": "Update",
|
|
1326
1326
|
"weekly": "Weekly",
|
|
@@ -1346,8 +1346,8 @@
|
|
|
1346
1346
|
"transaction_pending": "Pending",
|
|
1347
1347
|
"transaction_refunded": "Refunded",
|
|
1348
1348
|
"transaction_rejected": "Rejected",
|
|
1349
|
-
"transaction_summary": "{{
|
|
1350
|
-
"transaction_summary_plural": "{{
|
|
1349
|
+
"transaction_summary": "{{first_item.name}}",
|
|
1350
|
+
"transaction_summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
1351
1351
|
"transaction_verified": "Verified",
|
|
1352
1352
|
"transaction_voided": "Voided",
|
|
1353
1353
|
"spinner": {
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "Ausstehend",
|
|
59
59
|
"transaction_refunded": "Erstattet",
|
|
60
60
|
"transaction_rejected": "Abgelehnt",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} Und {{count_minus_one}} mehr",
|
|
63
63
|
"transaction_verified": "Verifiziert",
|
|
64
64
|
"transaction_voided": "Entwertet",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Nächste Zahlung am {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Aktiv",
|
|
940
940
|
"status_inactive": "Inaktiv",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} Und {{count_minus_one}} mehr",
|
|
942
943
|
"fees_hint": "inc. ",
|
|
943
944
|
"fees_explainer": "Steuern, Versand und Rabatte können den berechneten Betrag ändern.",
|
|
944
945
|
"twice_a_month": "zweimal im Monat",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Erstattet",
|
|
1091
1092
|
"status_voided": "Entwertet",
|
|
1092
1093
|
"status_verified": "Verifiziert",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} Und {{count_minus_one}} mehr",
|
|
1095
1096
|
"summary_payment_method_change": "Änderung der Zahlungsmethode",
|
|
1096
1097
|
"summary_subscription_modification": "Abonnementänderung",
|
|
1097
1098
|
"summary_subscription_cancellation": "Kündigung des Abonnements",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "Pending",
|
|
59
59
|
"transaction_refunded": "Refunded",
|
|
60
60
|
"transaction_rejected": "Rejected",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
63
63
|
"transaction_verified": "Verified",
|
|
64
64
|
"transaction_voided": "Voided",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Next payment on {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Active",
|
|
940
940
|
"status_inactive": "Inactive",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
942
943
|
"fees_hint": "inc. shipping, taxes, etc.",
|
|
943
944
|
"fees_explainer": "Taxes, shipping, and discounts may change the amount charged.",
|
|
944
945
|
"twice_a_month": "twice a month",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Refunded",
|
|
1091
1092
|
"status_voided": "Voided",
|
|
1092
1093
|
"status_verified": "Verified",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
1095
1096
|
"summary_payment_method_change": "Payment method change",
|
|
1096
1097
|
"summary_subscription_modification": "Subscription modification",
|
|
1097
1098
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "Pendiente",
|
|
59
59
|
"transaction_refunded": "Reintegrado",
|
|
60
60
|
"transaction_rejected": "Rechazado",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} y {{count_minus_one}} más",
|
|
63
63
|
"transaction_verified": "Verificado",
|
|
64
64
|
"transaction_voided": "Anulado",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Próximo pago el {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Activo",
|
|
940
940
|
"status_inactive": "Inactivo",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} y {{count_minus_one}} más",
|
|
942
943
|
"fees_hint": "incluye envío, impuestos, etc.",
|
|
943
944
|
"fees_explainer": "Los impuestos, el envío y los descuentos pueden cambiar el monto cobrado.",
|
|
944
945
|
"twice_a_month": "dos veces al mes",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Reintegrado",
|
|
1091
1092
|
"status_voided": "anulado",
|
|
1092
1093
|
"status_verified": "Verificado",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} y {{count_minus_one}} más",
|
|
1095
1096
|
"summary_payment_method_change": "cambio de método de pago",
|
|
1096
1097
|
"summary_subscription_modification": "Modificación de suscripción",
|
|
1097
1098
|
"summary_subscription_cancellation": "Cancelación de suscripción",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "En attente",
|
|
59
59
|
"transaction_refunded": "Remboursé",
|
|
60
60
|
"transaction_rejected": "Rejeté",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} et {{count_minus_one}} plus",
|
|
63
63
|
"transaction_verified": "Vérifié",
|
|
64
64
|
"transaction_voided": "Annulé",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Prochain paiement le {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Actif",
|
|
940
940
|
"status_inactive": "Inactif",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} et {{count_minus_one}} plus",
|
|
942
943
|
"fees_hint": "inc. ",
|
|
943
944
|
"fees_explainer": "Les taxes, les frais d'expédition et les réductions peuvent modifier le montant facturé.",
|
|
944
945
|
"twice_a_month": "deux fois par mois",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Remboursé",
|
|
1091
1092
|
"status_voided": "Annulé",
|
|
1092
1093
|
"status_verified": "Vérifié",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} et {{count_minus_one}} plus",
|
|
1095
1096
|
"summary_payment_method_change": "Changement de mode de paiement",
|
|
1096
1097
|
"summary_subscription_modification": "Modification d'abonnement",
|
|
1097
1098
|
"summary_subscription_cancellation": "Annulation de l'abonnement",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "In behandeling",
|
|
59
59
|
"transaction_refunded": "Terugbetaald",
|
|
60
60
|
"transaction_rejected": "Afgewezen",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} En {{count_minus_one}} meer",
|
|
63
63
|
"transaction_verified": "Geverifieerd",
|
|
64
64
|
"transaction_voided": "Ongeldig gemaakt",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Volgende betaling op {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Actief",
|
|
940
940
|
"status_inactive": "Inactief",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} En {{count_minus_one}} meer",
|
|
942
943
|
"fees_hint": "incl. ",
|
|
943
944
|
"fees_explainer": "Belastingen, verzendkosten en kortingen kunnen het in rekening gebrachte bedrag wijzigen.",
|
|
944
945
|
"twice_a_month": "twee keer per maand",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Terugbetaald",
|
|
1091
1092
|
"status_voided": "Ongeldig gemaakt",
|
|
1092
1093
|
"status_verified": "Geverifieerd",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} En {{count_minus_one}} meer",
|
|
1095
1096
|
"summary_payment_method_change": "Wijziging betaalwijze",
|
|
1096
1097
|
"summary_subscription_modification": "Wijziging abonnement",
|
|
1097
1098
|
"summary_subscription_cancellation": "Abonnement opzeggen",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "Aż do",
|
|
59
59
|
"transaction_refunded": "Zwrócono pieniądze",
|
|
60
60
|
"transaction_rejected": "Odrzucony",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} I {{count_minus_one}} więcej",
|
|
63
63
|
"transaction_verified": "Zweryfikowano",
|
|
64
64
|
"transaction_voided": "Unieważnione",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Następna płatność dnia {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Aktywne",
|
|
940
940
|
"status_inactive": "Nieaktywny",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} I {{count_minus_one}} więcej",
|
|
942
943
|
"fees_hint": "Inc. ",
|
|
943
944
|
"fees_explainer": "Podatki, koszty wysyłki i rabaty mogą zmienić pobraną kwotę.",
|
|
944
945
|
"twice_a_month": "dwa razy w miesiącu",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Zwrócono pieniądze",
|
|
1091
1092
|
"status_voided": "Unieważnione",
|
|
1092
1093
|
"status_verified": "Zweryfikowano",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} I {{count_minus_one}} więcej",
|
|
1095
1096
|
"summary_payment_method_change": "Zmiana sposobu płatności",
|
|
1096
1097
|
"summary_subscription_modification": "Modyfikacja subskrypcji",
|
|
1097
1098
|
"summary_subscription_cancellation": "Anulowanie subskrypcji",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "I väntan på",
|
|
59
59
|
"transaction_refunded": "Återbetalas",
|
|
60
60
|
"transaction_rejected": "avvisade",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} och {{count_minus_one}} Mer",
|
|
63
63
|
"transaction_verified": "Verifierad",
|
|
64
64
|
"transaction_voided": "Ogiltigförklarad",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "Nästa betalning den {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "Aktiv",
|
|
940
940
|
"status_inactive": "Inaktiv",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} och {{count_minus_one}} Mer",
|
|
942
943
|
"fees_hint": "inkl. ",
|
|
943
944
|
"fees_explainer": "Skatter, frakt och rabatter kan ändra beloppet som debiteras.",
|
|
944
945
|
"twice_a_month": "två gånger i månaden",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "Återbetalas",
|
|
1091
1092
|
"status_voided": "Ogiltigförklarad",
|
|
1092
1093
|
"status_verified": "Verifierad",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} och {{count_minus_one}} Mer",
|
|
1095
1096
|
"summary_payment_method_change": "Ändring av betalningsmetod",
|
|
1096
1097
|
"summary_subscription_modification": "Ändring av abonnemang",
|
|
1097
1098
|
"summary_subscription_cancellation": "Uppsägning av prenumeration",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"transaction_pending": "待办的",
|
|
59
59
|
"transaction_refunded": "已退款",
|
|
60
60
|
"transaction_rejected": "拒绝",
|
|
61
|
-
"transaction_summary": "{{
|
|
62
|
-
"transaction_summary_plural": "{{
|
|
61
|
+
"transaction_summary": "{{first_item.name}}",
|
|
62
|
+
"transaction_summary_plural": "{{first_item.name}} 和 {{count_minus_one}} 更多的",
|
|
63
63
|
"transaction_verified": "已验证",
|
|
64
64
|
"transaction_voided": "作废",
|
|
65
65
|
"spinner": {
|
|
@@ -938,7 +938,8 @@
|
|
|
938
938
|
"status_next_payment": "下次付款日期为 {{ next_transaction_date, date }}",
|
|
939
939
|
"status_next_payment_no_nextdate": "活跃",
|
|
940
940
|
"status_inactive": "不活跃",
|
|
941
|
-
"transaction_summary": "{{
|
|
941
|
+
"transaction_summary": "{{first_item.name}}",
|
|
942
|
+
"transaction_summary_plural": "{{first_item.name}} 和 {{count_minus_one}} 更多的",
|
|
942
943
|
"fees_hint": "公司",
|
|
943
944
|
"fees_explainer": "税费、运费和折扣可能会改变收费金额。",
|
|
944
945
|
"twice_a_month": "每月两次",
|
|
@@ -1090,8 +1091,8 @@
|
|
|
1090
1091
|
"status_refunded": "已退款",
|
|
1091
1092
|
"status_voided": "作废",
|
|
1092
1093
|
"status_verified": "已验证",
|
|
1093
|
-
"summary": "{{
|
|
1094
|
-
"summary_plural": "{{
|
|
1094
|
+
"summary": "{{first_item.name}}",
|
|
1095
|
+
"summary_plural": "{{first_item.name}} 和 {{count_minus_one}} 更多的",
|
|
1095
1096
|
"summary_payment_method_change": "付款方式变更",
|
|
1096
1097
|
"summary_subscription_modification": "订阅修改",
|
|
1097
1098
|
"summary_subscription_cancellation": "取消订阅",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"status_next_payment": "Next payment on {{ next_transaction_date, date }}",
|
|
23
23
|
"status_next_payment_no_nextdate": "Active",
|
|
24
24
|
"status_inactive": "Inactive",
|
|
25
|
-
"transaction_summary": "{{
|
|
25
|
+
"transaction_summary": "{{first_item.name}}",
|
|
26
|
+
"transaction_summary_plural": "{{first_item.name}} and {{ count_minus_one }} more",
|
|
26
27
|
"fees_hint": "inc. shipping, taxes, etc.",
|
|
27
28
|
"fees_explainer": "Taxes, shipping, and discounts may change the amount charged.",
|
|
28
29
|
"twice_a_month": "Twice a month",
|
|
@@ -202,8 +202,8 @@
|
|
|
202
202
|
"status_refunded": "Refunded",
|
|
203
203
|
"status_voided": "Voided",
|
|
204
204
|
"status_verified": "Verified",
|
|
205
|
-
"summary": "{{
|
|
206
|
-
"summary_plural": "{{
|
|
205
|
+
"summary": "{{first_item.name}}",
|
|
206
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
207
207
|
"summary_payment_method_change": "Payment method change",
|
|
208
208
|
"summary_subscription_modification": "Subscription modification",
|
|
209
209
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"status_ended": "Ended on {{ end_date, date }}",
|
|
15
15
|
"status_next_payment": "Next payment on {{ next_transaction_date, date }}",
|
|
16
16
|
"status_inactive": "Inactive",
|
|
17
|
-
"transaction_summary": "{{
|
|
17
|
+
"transaction_summary": "{{first_item.name}}",
|
|
18
|
+
"transaction_summary_plural": "{{first_item.name}} and {{ count_minus_one }} more",
|
|
18
19
|
"twice_a_month": "Twice a month",
|
|
19
20
|
"update": "Update",
|
|
20
21
|
"weekly": "Weekly",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"status_refunded": "Refunded",
|
|
21
21
|
"status_voided": "Voided",
|
|
22
22
|
"status_verified": "Verified",
|
|
23
|
-
"summary": "{{
|
|
24
|
-
"summary_plural": "{{
|
|
23
|
+
"summary": "{{first_item.name}}",
|
|
24
|
+
"summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
25
25
|
"summary_payment_method_change": "Payment method change",
|
|
26
26
|
"summary_subscription_modification": "Subscription modification",
|
|
27
27
|
"summary_subscription_cancellation": "Subscription cancellation",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"transaction_pending": "Pending",
|
|
11
11
|
"transaction_refunded": "Refunded",
|
|
12
12
|
"transaction_rejected": "Rejected",
|
|
13
|
-
"transaction_summary": "{{
|
|
14
|
-
"transaction_summary_plural": "{{
|
|
13
|
+
"transaction_summary": "{{first_item.name}}",
|
|
14
|
+
"transaction_summary_plural": "{{first_item.name}} and {{count_minus_one}} more",
|
|
15
15
|
"transaction_verified": "Verified",
|
|
16
16
|
"transaction_voided": "Voided",
|
|
17
17
|
"spinner": {
|
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
"loading_empty": "No data",
|
|
21
21
|
"loading_error": "Unknown error"
|
|
22
22
|
}
|
|
23
|
-
}
|
|
23
|
+
}
|
|
@@ -356,13 +356,13 @@ export class Donation extends Translatable {
|
|
|
356
356
|
`;
|
|
357
357
|
}
|
|
358
358
|
connectedCallback() {
|
|
359
|
-
var _a;
|
|
359
|
+
var _a, _b;
|
|
360
360
|
super.connectedCallback();
|
|
361
|
-
if (!((_a = window.FC) === null || _a === void 0 ? void 0 : _a.settings.session_id) && this.__fcSessionPollInterval === null) {
|
|
361
|
+
if (!((_b = (_a = window.FC) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.session_id) && this.__fcSessionPollInterval === null) {
|
|
362
362
|
this.__fcSessionPollInterval = window.setInterval(() => {
|
|
363
|
-
var _a, _b;
|
|
364
|
-
if ((_a = window.FC) === null || _a === void 0 ? void 0 : _a.settings.session_id) {
|
|
365
|
-
clearInterval((
|
|
363
|
+
var _a, _b, _c;
|
|
364
|
+
if ((_b = (_a = window.FC) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.session_id) {
|
|
365
|
+
clearInterval((_c = this.__fcSessionPollInterval) !== null && _c !== void 0 ? _c : void 0);
|
|
366
366
|
this.requestUpdate();
|
|
367
367
|
}
|
|
368
368
|
}, 1000);
|
|
@@ -377,6 +377,7 @@ export class Donation extends Translatable {
|
|
|
377
377
|
this.dispatchEvent(new DonationChangeEvent(this.__data));
|
|
378
378
|
}
|
|
379
379
|
get __data() {
|
|
380
|
+
var _a, _b;
|
|
380
381
|
const data = new FormData();
|
|
381
382
|
if (typeof this.designation === 'string') {
|
|
382
383
|
data.set('Designation', this.designation.trim());
|
|
@@ -402,8 +403,9 @@ export class Donation extends Translatable {
|
|
|
402
403
|
data.set('empty', this.empty);
|
|
403
404
|
if (this.anonymous)
|
|
404
405
|
data.set('Anonymous', 'true');
|
|
405
|
-
if (window.FC)
|
|
406
|
+
if (((_b = (_a = window.FC) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.session_id) && window.FC.settings.session_name) {
|
|
406
407
|
data.set(window.FC.settings.session_name, window.FC.settings.session_id);
|
|
408
|
+
}
|
|
407
409
|
data.set('quantity', '1');
|
|
408
410
|
return data;
|
|
409
411
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Donation.js","sourceRoot":"","sources":["../../../../src/elements/public/Donation/Donation.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport '@vaadin/vaadin-button';\nimport '@vaadin/vaadin-text-field/vaadin-text-area';\nimport { PropertyDeclarations } from 'lit-element';\nimport { html, TemplateResult } from 'lit-html';\nimport { Translatable } from '../../../mixins/translatable';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { CheckboxChangeEvent, ChoiceChangeEvent, DropdownChangeEvent } from '../../private/events';\nimport { Checkbox, Choice, Dropdown, ErrorScreen, Group, I18N } from '../../private/index';\nimport { DonationChangeEvent } from './DonationChangeEvent';\nimport { DonationSubmitEvent } from './DonationSubmitEvent';\n\ndeclare global {\n interface Window {\n FC?: {\n settings: {\n session_name: string;\n session_id: string;\n };\n };\n }\n}\n\ninterface DonationEventsMap {\n change: typeof DonationChangeEvent;\n submit: typeof DonationSubmitEvent;\n}\n\n/**\n * A custom element providing customizable donation forms.\n *\n * @fires Donation#change - Instance of `Donation.events.change`. Emitted after user input triggers a change in the form data.\n * @fires Donation#submit - Instance of `Donation.events.submit`. Emitted when the form is submitted. Cancelling this event will stop the submission.\n *\n * @slot amount - Space below the amount selector, if it's visible.\n * @slot designation - Space below the designation selector, if it's visible.\n * @slot comment - Space below the comment field, if it's visible.\n *\n * @element foxy-donation\n * @since 0.3.0\n */\nexport class Donation extends Translatable {\n /** @readonly */\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-area': customElements.get('vaadin-text-area'),\n 'x-error-screen': ErrorScreen,\n 'vaadin-button': customElements.get('vaadin-button'),\n 'x-dropdown': Dropdown,\n 'x-checkbox': Checkbox,\n 'x-choice': Choice,\n 'x-group': Group,\n 'x-i18n': I18N,\n };\n }\n\n /** @readonly */\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n currency: { type: String },\n custom: { type: Array },\n amount: { type: Number },\n amounts: { type: Array },\n frequency: { type: String },\n frequencies: { type: Array },\n designation: { type: Array },\n designations: { type: Array },\n comment: { type: String },\n anonymity: { reflect: true, type: Boolean },\n anonymous: { reflect: true, type: Boolean },\n image: { type: String },\n store: { type: String },\n name: { type: String },\n code: { type: String },\n url: { type: String },\n cart: { type: String },\n target: { type: String },\n empty: { type: String },\n };\n }\n\n /** @readonly */\n public static get events(): DonationEventsMap {\n return {\n change: DonationChangeEvent,\n submit: DonationSubmitEvent,\n };\n }\n\n /**\n * **Required** 3-letter lowercase currency code.\n *\n * **Example:** `\"usd\"`\n */\n public currency: null | string = null;\n\n /**\n * **Required** donation amount in specified currency. When more than one amount option\n * is available, this field will contain the selected amount. This value is deliberately not\n * limited to the predefined options: whatever you set it to will show up in the cart.\n *\n * **Example:** `25`\n */\n public amount: null | number = null;\n\n /**\n * **Required** store domain. This is usually the part after before `.foxycart.com`\n * and after `https://`, e.g. the `foxy-demo` bit of `https://foxy-demo.foxycart.com`.\n * Custom domains like `my.domain.example.com` are also supported since v1.6.1.\n *\n * **Example:** `\"foxy-demo\"`\n */\n public store: null | string = null;\n\n /**\n * **Required** product name for this donation. This will show up in the cart when this form is submitted.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"One-time donation\"`\n */\n public name: null | string = null;\n\n /**\n * Optional parts of the form including a custom (\"other\") option.\n * Adding `amount` to this array will enable custom amount.\n *\n * **Example:** `[\"amount\"]`\n */\n public custom: null | 'amount'[] = null;\n\n /**\n * Optional donation amount variants. If this property is set, the form will render\n * the amount selection interface. If this array includes the value of the `amount` property,\n * it will be pre-selected in the form.\n *\n * **Example:** `[25, 50, 75]`\n */\n public amounts: null | number[] = null;\n\n /**\n * Optional donation frequency string encoded as count (integer) + units (one\n * of: `d` for days, `w` for weeks, `m` for months, `y` for years). A special\n * value for twice a month is also supported: `.5m`. If set, the form will\n * create a subscription with the specified frequency in the cart. This value is deliberately not\n * limited to the predefined options: whatever you set it to will show up in the cart.\n *\n * **Example:** `\"1m\"`\n */\n public frequency: null | string = null;\n\n /**\n * Optional donation frequency variants in the same format as `frequency`. If this property is set,\n * the form will render the frequency selection interface. If this array includes\n * the value of the `frequency` property, it will be pre-selected in the form.\n *\n * **Example:** `[\"7d\", \".5m\", \"1y\"]`\n */\n public frequencies: null | string[] = null;\n\n /**\n * Optional donation designation(s). The form will serialize and pass this value to the cart\n * on submission. This value is deliberately not limited to the predefined options:\n * whatever you set it to will show up in the cart.\n *\n * **Example:** `\"Medical Care\"`\n * **Example:** `[\"Medical Care\", \"Daily Meals\"]`\n */\n public designation: null | string = null;\n\n /**\n * Optional donation designation(s) variants. If this property is set,\n * the form will render the designation selection interface: multiple choice\n * if `designation` is an array and a single choice otherwise. All values overlapping\n * with the `designation` property will be pre-selected in the form.\n *\n * **Example:** `[\"Medical Care\", \"Daily Meals\", \"Area of Greatest Need\"]`\n */\n public designations: null | string[] = null;\n\n /**\n * Optional comment accompanying the donation. If set (even to an empty string),\n * the form will render a comment field. The value of this property will be updated\n * as the customer enters their message and will be added to the order as a custom field in the end.\n *\n * **Example:** `\"\"`\n */\n public comment: null | string = null;\n\n /**\n * Optional switch controlling visibility of the anonymity checkbox. If set to `true`, the form\n * will render the checkbox. All changes in the value are reflected to the attribute.\n *\n * **Example:** `true`\n */\n public anonymity = false;\n\n /**\n * Optional switch marking this donation as anonymous via a custom field when set to `true`. When\n * the anonymity checkbox is rendered, also checks or unchecks it depending on the value.\n * All changes in the value are reflected to the attribute.\n *\n * **Example:** `true`\n */\n public anonymous = false;\n\n /**\n * Optional product image URL (absolute path). This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"https://picsum.photos/320\"`\n */\n public image: null | string = null;\n\n /**\n * Optional product code for this donation. This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"ISBN 978-0-12-345678-9\"`\n */\n public code: null | string = null;\n\n /**\n * Optional product URL for this donation. Accepts a full URL to the product page, starting\n * with `http://` or `https://`, or a relative path to the produt from the store's\n * domain (as configured in the store settings). This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"https://example.com/my-product\"`\n */\n public url: null | string = null;\n\n /**\n * Optional cart\n * If set to 'add' will add items to the cart and, on submit, user is redirected to the cart.\n * If set to 'checkout', the default, on submit user is redirected to checkout directly\n */\n public cart = 'checkout';\n\n /**\n * Optional empty\n * If set to 'true' clears the contents of the cart prior to adding the donation to the cart\n * If set to 'reset' clears the contents of the cart and cookies prior to adding the donation to the cart\n */\n public empty?: string;\n\n /**\n * Optional target to display the form response.\n */\n public target = '_top';\n\n private __fcSessionPollInterval: number | null = null;\n\n public constructor() {\n super('donation');\n }\n\n /** Submits the form, emitting a cancelable `submit` event. */\n public submit(): void {\n /* istanbul ignore if */\n if (this.dispatchEvent(new DonationSubmitEvent())) this.__form.submit();\n }\n\n public render(): TemplateResult {\n if (!this.currency || !this.amount || !this.store || !this.name) {\n return html`\n <x-error-screen data-testid=\"error\" type=\"setup_needed\" class=\"relative\"></x-error-screen>\n `;\n }\n\n const domain = this.store.includes('.') ? this.store : `${this.store}.foxycart.com`;\n\n return html`\n <form\n target=\"${this.target}\"\n class=\"sr-only\"\n method=\"POST\"\n action=\"https://${domain}/cart\"\n data-testid=\"form\"\n >\n ${[...this.__data.entries()].map(\n ([name, value]) => html`<input type=\"hidden\" name=${name} value=${value} />`\n )}\n </form>\n\n <section>\n ${this.amounts && this.amounts.length > 0\n ? html`\n <x-group frame>\n <x-i18n ns=${this.ns} lang=${this.lang} key=\"amount\" slot=\"header\"></x-i18n>\n <x-choice\n ?custom=${!!this.custom?.includes('amount')}\n .getText=${(v: string) => this.__translateAmount(parseFloat(v))}\n .items=${this.amounts.map(String)}\n .value=${this.amount.toString()}\n type=\"number\"\n lang=${this.lang}\n min=\"1\"\n ns=${this.ns}\n data-testid=\"amount\"\n @change=${(evt: ChoiceChangeEvent) => {\n const value = parseFloat(evt.detail as string);\n this.amount = isNaN(value) ? /* istanbul ignore next */ 1 : value;\n }}\n >\n </x-choice>\n </x-group>\n\n <slot name=\"amount\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${this.designations && this.designations.length > 0\n ? html`\n <x-dropdown\n .label=${this._t('designation').toString()}\n .items=${this.designations}\n .value=${Array.isArray(this.designation)\n ? '${this.designation[0]}: ${this.designation[1]}'\n : this.designation}\n data-testid=\"designation\"\n @change=${(evt: DropdownChangeEvent) => {\n this.designation = evt.detail as string;\n }}\n >\n </x-dropdown>\n\n <slot name=\"designation\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${typeof this.comment === 'string'\n ? html`\n <vaadin-text-area\n placeholder=${this._t('comment_placeholder').toString()}\n value=${this.comment!}\n label=${this._t('comment_label').toString()}\n class=\"w-full\"\n data-testid=\"comment\"\n @input=${(evt: InputEvent) => {\n evt.stopPropagation();\n this.comment = (evt.target as HTMLTextAreaElement).value;\n }}\n >\n </vaadin-text-area>\n\n <slot name=\"comment\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${this.anonymity\n ? html`\n <x-checkbox\n class=\"my-m\"\n data-testid=\"anonymity\"\n ?checked=${this.anonymous}\n @change=${(evt: CheckboxChangeEvent) => (this.anonymous = evt.detail)}\n >\n ${this._t('anonymous')}\n </x-checkbox>\n `\n : ''}\n\n <div class=\"flex flex-wrap -m-s\">\n ${this.frequencies && this.frequencies.length > 0\n ? html`\n <div class=\"flex-1 p-s\">\n <x-dropdown\n .value=${this.frequency}\n .items=${this.frequencies}\n .getText=${this.__translateFrequency.bind(this)}\n data-testid=\"frequency\"\n @change=${(evt: DropdownChangeEvent) => {\n this.frequency = evt.detail as string;\n }}\n >\n </x-dropdown>\n </div>\n `\n : ''}\n\n <div class=\"flex-1 p-s\">\n <vaadin-button\n class=\"w-full\"\n theme=\"primary\"\n data-testid=\"submit\"\n @click=${() => this.submit()}\n >\n <x-i18n\n .opts=${{\n amount: this.__translateAmount(this.amount),\n frequency: this.frequency ? this.__translateFrequency(this.frequency) : '',\n }}\n lang=${this.lang}\n key=${this.frequency && !this.frequencies?.length ? 'donate_recurrently' : 'donate'}\n ns=${this.ns}\n >\n </x-i18n>\n </vaadin-button>\n </div>\n </div>\n </section>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (!window.FC?.settings.session_id && this.__fcSessionPollInterval === null) {\n this.__fcSessionPollInterval = window.setInterval(() => {\n if (window.FC?.settings.session_id) {\n clearInterval(this.__fcSessionPollInterval ?? void 0);\n this.requestUpdate();\n }\n }, 1000);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n clearInterval(this.__fcSessionPollInterval ?? void 0);\n }\n\n public updated(): void {\n this.dispatchEvent(new DonationChangeEvent(this.__data));\n }\n\n private get __data() {\n const data = new FormData();\n\n if (typeof this.designation === 'string') {\n data.set('Designation', this.designation.trim());\n }\n\n if (typeof this.amount === 'number' && typeof this.currency === 'string') {\n data.set('price', `${this.amount.toFixed(2)}${this.currency}`);\n }\n\n if (this.frequency) data.set('sub_frequency', this.frequency);\n if (typeof this.comment === 'string') data.set('Comment', this.comment.trim());\n if (typeof this.image === 'string') data.set('image', this.image);\n if (typeof this.code === 'string') data.set('code', this.code);\n if (typeof this.name === 'string') data.set('name', this.name.trim());\n if (typeof this.url === 'string') data.set('url', this.url);\n if (typeof this.cart === 'string') data.set('cart', this.cart);\n if (this.empty) data.set('empty', this.empty);\n if (this.anonymous) data.set('Anonymous', 'true');\n if (window.FC) data.set(window.FC.settings.session_name, window.FC.settings.session_id);\n\n data.set('quantity', '1');\n\n return data;\n }\n\n private get __form(): HTMLFormElement {\n return this.shadowRoot!.querySelector('form')!;\n }\n\n private __translateFrequency(frequency: string) {\n if (!frequency || frequency.match(/^\\s*$/)) return this._t('frequency_once');\n if (frequency === '.5m') return this._t('frequency_0_5m');\n\n const { count, units } = parseDuration(frequency);\n return this._t('frequency', {\n units: this._t(units, { count }),\n count,\n });\n }\n\n private __translateAmount(amount: number) {\n return amount.toLocaleString(this.lang, {\n minimumFractionDigits: 0,\n currency: this.currency!,\n style: 'currency',\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Donation.js","sourceRoot":"","sources":["../../../../src/elements/public/Donation/Donation.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport '@vaadin/vaadin-button';\nimport '@vaadin/vaadin-text-field/vaadin-text-area';\nimport { PropertyDeclarations } from 'lit-element';\nimport { html, TemplateResult } from 'lit-html';\nimport { Translatable } from '../../../mixins/translatable';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { CheckboxChangeEvent, ChoiceChangeEvent, DropdownChangeEvent } from '../../private/events';\nimport { Checkbox, Choice, Dropdown, ErrorScreen, Group, I18N } from '../../private/index';\nimport { DonationChangeEvent } from './DonationChangeEvent';\nimport { DonationSubmitEvent } from './DonationSubmitEvent';\n\ndeclare global {\n interface Window {\n FC?: {\n settings?: {\n session_name: string;\n session_id: string;\n };\n };\n }\n}\n\ninterface DonationEventsMap {\n change: typeof DonationChangeEvent;\n submit: typeof DonationSubmitEvent;\n}\n\n/**\n * A custom element providing customizable donation forms.\n *\n * @fires Donation#change - Instance of `Donation.events.change`. Emitted after user input triggers a change in the form data.\n * @fires Donation#submit - Instance of `Donation.events.submit`. Emitted when the form is submitted. Cancelling this event will stop the submission.\n *\n * @slot amount - Space below the amount selector, if it's visible.\n * @slot designation - Space below the designation selector, if it's visible.\n * @slot comment - Space below the comment field, if it's visible.\n *\n * @element foxy-donation\n * @since 0.3.0\n */\nexport class Donation extends Translatable {\n /** @readonly */\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-text-area': customElements.get('vaadin-text-area'),\n 'x-error-screen': ErrorScreen,\n 'vaadin-button': customElements.get('vaadin-button'),\n 'x-dropdown': Dropdown,\n 'x-checkbox': Checkbox,\n 'x-choice': Choice,\n 'x-group': Group,\n 'x-i18n': I18N,\n };\n }\n\n /** @readonly */\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n currency: { type: String },\n custom: { type: Array },\n amount: { type: Number },\n amounts: { type: Array },\n frequency: { type: String },\n frequencies: { type: Array },\n designation: { type: Array },\n designations: { type: Array },\n comment: { type: String },\n anonymity: { reflect: true, type: Boolean },\n anonymous: { reflect: true, type: Boolean },\n image: { type: String },\n store: { type: String },\n name: { type: String },\n code: { type: String },\n url: { type: String },\n cart: { type: String },\n target: { type: String },\n empty: { type: String },\n };\n }\n\n /** @readonly */\n public static get events(): DonationEventsMap {\n return {\n change: DonationChangeEvent,\n submit: DonationSubmitEvent,\n };\n }\n\n /**\n * **Required** 3-letter lowercase currency code.\n *\n * **Example:** `\"usd\"`\n */\n public currency: null | string = null;\n\n /**\n * **Required** donation amount in specified currency. When more than one amount option\n * is available, this field will contain the selected amount. This value is deliberately not\n * limited to the predefined options: whatever you set it to will show up in the cart.\n *\n * **Example:** `25`\n */\n public amount: null | number = null;\n\n /**\n * **Required** store domain. This is usually the part after before `.foxycart.com`\n * and after `https://`, e.g. the `foxy-demo` bit of `https://foxy-demo.foxycart.com`.\n * Custom domains like `my.domain.example.com` are also supported since v1.6.1.\n *\n * **Example:** `\"foxy-demo\"`\n */\n public store: null | string = null;\n\n /**\n * **Required** product name for this donation. This will show up in the cart when this form is submitted.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"One-time donation\"`\n */\n public name: null | string = null;\n\n /**\n * Optional parts of the form including a custom (\"other\") option.\n * Adding `amount` to this array will enable custom amount.\n *\n * **Example:** `[\"amount\"]`\n */\n public custom: null | 'amount'[] = null;\n\n /**\n * Optional donation amount variants. If this property is set, the form will render\n * the amount selection interface. If this array includes the value of the `amount` property,\n * it will be pre-selected in the form.\n *\n * **Example:** `[25, 50, 75]`\n */\n public amounts: null | number[] = null;\n\n /**\n * Optional donation frequency string encoded as count (integer) + units (one\n * of: `d` for days, `w` for weeks, `m` for months, `y` for years). A special\n * value for twice a month is also supported: `.5m`. If set, the form will\n * create a subscription with the specified frequency in the cart. This value is deliberately not\n * limited to the predefined options: whatever you set it to will show up in the cart.\n *\n * **Example:** `\"1m\"`\n */\n public frequency: null | string = null;\n\n /**\n * Optional donation frequency variants in the same format as `frequency`. If this property is set,\n * the form will render the frequency selection interface. If this array includes\n * the value of the `frequency` property, it will be pre-selected in the form.\n *\n * **Example:** `[\"7d\", \".5m\", \"1y\"]`\n */\n public frequencies: null | string[] = null;\n\n /**\n * Optional donation designation(s). The form will serialize and pass this value to the cart\n * on submission. This value is deliberately not limited to the predefined options:\n * whatever you set it to will show up in the cart.\n *\n * **Example:** `\"Medical Care\"`\n * **Example:** `[\"Medical Care\", \"Daily Meals\"]`\n */\n public designation: null | string = null;\n\n /**\n * Optional donation designation(s) variants. If this property is set,\n * the form will render the designation selection interface: multiple choice\n * if `designation` is an array and a single choice otherwise. All values overlapping\n * with the `designation` property will be pre-selected in the form.\n *\n * **Example:** `[\"Medical Care\", \"Daily Meals\", \"Area of Greatest Need\"]`\n */\n public designations: null | string[] = null;\n\n /**\n * Optional comment accompanying the donation. If set (even to an empty string),\n * the form will render a comment field. The value of this property will be updated\n * as the customer enters their message and will be added to the order as a custom field in the end.\n *\n * **Example:** `\"\"`\n */\n public comment: null | string = null;\n\n /**\n * Optional switch controlling visibility of the anonymity checkbox. If set to `true`, the form\n * will render the checkbox. All changes in the value are reflected to the attribute.\n *\n * **Example:** `true`\n */\n public anonymity = false;\n\n /**\n * Optional switch marking this donation as anonymous via a custom field when set to `true`. When\n * the anonymity checkbox is rendered, also checks or unchecks it depending on the value.\n * All changes in the value are reflected to the attribute.\n *\n * **Example:** `true`\n */\n public anonymous = false;\n\n /**\n * Optional product image URL (absolute path). This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"https://picsum.photos/320\"`\n */\n public image: null | string = null;\n\n /**\n * Optional product code for this donation. This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"ISBN 978-0-12-345678-9\"`\n */\n public code: null | string = null;\n\n /**\n * Optional product URL for this donation. Accepts a full URL to the product page, starting\n * with `http://` or `https://`, or a relative path to the produt from the store's\n * domain (as configured in the store settings). This property affects cart UI only.\n * See [Products](https://wiki.foxycart.com/v/2.0/products) wiki for more details.\n *\n * **Example:** `\"https://example.com/my-product\"`\n */\n public url: null | string = null;\n\n /**\n * Optional cart\n * If set to 'add' will add items to the cart and, on submit, user is redirected to the cart.\n * If set to 'checkout', the default, on submit user is redirected to checkout directly\n */\n public cart = 'checkout';\n\n /**\n * Optional empty\n * If set to 'true' clears the contents of the cart prior to adding the donation to the cart\n * If set to 'reset' clears the contents of the cart and cookies prior to adding the donation to the cart\n */\n public empty?: string;\n\n /**\n * Optional target to display the form response.\n */\n public target = '_top';\n\n private __fcSessionPollInterval: number | null = null;\n\n public constructor() {\n super('donation');\n }\n\n /** Submits the form, emitting a cancelable `submit` event. */\n public submit(): void {\n /* istanbul ignore if */\n if (this.dispatchEvent(new DonationSubmitEvent())) this.__form.submit();\n }\n\n public render(): TemplateResult {\n if (!this.currency || !this.amount || !this.store || !this.name) {\n return html`\n <x-error-screen data-testid=\"error\" type=\"setup_needed\" class=\"relative\"></x-error-screen>\n `;\n }\n\n const domain = this.store.includes('.') ? this.store : `${this.store}.foxycart.com`;\n\n return html`\n <form\n target=\"${this.target}\"\n class=\"sr-only\"\n method=\"POST\"\n action=\"https://${domain}/cart\"\n data-testid=\"form\"\n >\n ${[...this.__data.entries()].map(\n ([name, value]) => html`<input type=\"hidden\" name=${name} value=${value} />`\n )}\n </form>\n\n <section>\n ${this.amounts && this.amounts.length > 0\n ? html`\n <x-group frame>\n <x-i18n ns=${this.ns} lang=${this.lang} key=\"amount\" slot=\"header\"></x-i18n>\n <x-choice\n ?custom=${!!this.custom?.includes('amount')}\n .getText=${(v: string) => this.__translateAmount(parseFloat(v))}\n .items=${this.amounts.map(String)}\n .value=${this.amount.toString()}\n type=\"number\"\n lang=${this.lang}\n min=\"1\"\n ns=${this.ns}\n data-testid=\"amount\"\n @change=${(evt: ChoiceChangeEvent) => {\n const value = parseFloat(evt.detail as string);\n this.amount = isNaN(value) ? /* istanbul ignore next */ 1 : value;\n }}\n >\n </x-choice>\n </x-group>\n\n <slot name=\"amount\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${this.designations && this.designations.length > 0\n ? html`\n <x-dropdown\n .label=${this._t('designation').toString()}\n .items=${this.designations}\n .value=${Array.isArray(this.designation)\n ? '${this.designation[0]}: ${this.designation[1]}'\n : this.designation}\n data-testid=\"designation\"\n @change=${(evt: DropdownChangeEvent) => {\n this.designation = evt.detail as string;\n }}\n >\n </x-dropdown>\n\n <slot name=\"designation\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${typeof this.comment === 'string'\n ? html`\n <vaadin-text-area\n placeholder=${this._t('comment_placeholder').toString()}\n value=${this.comment!}\n label=${this._t('comment_label').toString()}\n class=\"w-full\"\n data-testid=\"comment\"\n @input=${(evt: InputEvent) => {\n evt.stopPropagation();\n this.comment = (evt.target as HTMLTextAreaElement).value;\n }}\n >\n </vaadin-text-area>\n\n <slot name=\"comment\" class=\"block my-m\"></slot>\n `\n : ''}\n </section>\n\n <section>\n ${this.anonymity\n ? html`\n <x-checkbox\n class=\"my-m\"\n data-testid=\"anonymity\"\n ?checked=${this.anonymous}\n @change=${(evt: CheckboxChangeEvent) => (this.anonymous = evt.detail)}\n >\n ${this._t('anonymous')}\n </x-checkbox>\n `\n : ''}\n\n <div class=\"flex flex-wrap -m-s\">\n ${this.frequencies && this.frequencies.length > 0\n ? html`\n <div class=\"flex-1 p-s\">\n <x-dropdown\n .value=${this.frequency}\n .items=${this.frequencies}\n .getText=${this.__translateFrequency.bind(this)}\n data-testid=\"frequency\"\n @change=${(evt: DropdownChangeEvent) => {\n this.frequency = evt.detail as string;\n }}\n >\n </x-dropdown>\n </div>\n `\n : ''}\n\n <div class=\"flex-1 p-s\">\n <vaadin-button\n class=\"w-full\"\n theme=\"primary\"\n data-testid=\"submit\"\n @click=${() => this.submit()}\n >\n <x-i18n\n .opts=${{\n amount: this.__translateAmount(this.amount),\n frequency: this.frequency ? this.__translateFrequency(this.frequency) : '',\n }}\n lang=${this.lang}\n key=${this.frequency && !this.frequencies?.length ? 'donate_recurrently' : 'donate'}\n ns=${this.ns}\n >\n </x-i18n>\n </vaadin-button>\n </div>\n </div>\n </section>\n `;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (!window.FC?.settings?.session_id && this.__fcSessionPollInterval === null) {\n this.__fcSessionPollInterval = window.setInterval(() => {\n if (window.FC?.settings?.session_id) {\n clearInterval(this.__fcSessionPollInterval ?? void 0);\n this.requestUpdate();\n }\n }, 1000);\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n clearInterval(this.__fcSessionPollInterval ?? void 0);\n }\n\n public updated(): void {\n this.dispatchEvent(new DonationChangeEvent(this.__data));\n }\n\n private get __data() {\n const data = new FormData();\n\n if (typeof this.designation === 'string') {\n data.set('Designation', this.designation.trim());\n }\n\n if (typeof this.amount === 'number' && typeof this.currency === 'string') {\n data.set('price', `${this.amount.toFixed(2)}${this.currency}`);\n }\n\n if (this.frequency) data.set('sub_frequency', this.frequency);\n if (typeof this.comment === 'string') data.set('Comment', this.comment.trim());\n if (typeof this.image === 'string') data.set('image', this.image);\n if (typeof this.code === 'string') data.set('code', this.code);\n if (typeof this.name === 'string') data.set('name', this.name.trim());\n if (typeof this.url === 'string') data.set('url', this.url);\n if (typeof this.cart === 'string') data.set('cart', this.cart);\n if (this.empty) data.set('empty', this.empty);\n if (this.anonymous) data.set('Anonymous', 'true');\n\n if (window.FC?.settings?.session_id && window.FC.settings.session_name) {\n data.set(window.FC.settings.session_name, window.FC.settings.session_id);\n }\n\n data.set('quantity', '1');\n\n return data;\n }\n\n private get __form(): HTMLFormElement {\n return this.shadowRoot!.querySelector('form')!;\n }\n\n private __translateFrequency(frequency: string) {\n if (!frequency || frequency.match(/^\\s*$/)) return this._t('frequency_once');\n if (frequency === '.5m') return this._t('frequency_0_5m');\n\n const { count, units } = parseDuration(frequency);\n return this._t('frequency', {\n units: this._t(units, { count }),\n count,\n });\n }\n\n private __translateAmount(amount: number) {\n return amount.toLocaleString(this.lang, {\n minimumFractionDigits: 0,\n currency: this.currency!,\n style: 'currency',\n });\n }\n}\n"]}
|
|
@@ -141,8 +141,8 @@ export class SubscriptionCard extends Base {
|
|
|
141
141
|
return {};
|
|
142
142
|
const items = this.data._embedded['fx:transaction_template']._embedded['fx:items'];
|
|
143
143
|
return {
|
|
144
|
-
most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],
|
|
145
144
|
count_minus_one: items.length - 1,
|
|
145
|
+
first_item: items[0],
|
|
146
146
|
count: items.length,
|
|
147
147
|
};
|
|
148
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/SubscriptionCard.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SubscriptionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionCard/SubscriptionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Data, Settings } from './types';\n\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { parseFrequency } from '../../../utils/parse-frequency';\n\nimport {\n getExtendedSubscriptionStatus,\n getSubscriptionStatus,\n} from '../../../utils/get-subscription-status';\n\nconst NS = 'subscription-card';\nconst Base = ConfigurableMixin(\n ResponsiveMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Card element displaying subscription summary.\n *\n * @element foxy-subscription-card\n * @since 1.4.0\n */\nexport class SubscriptionCard extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n settings: { type: Object },\n };\n }\n\n settings: Settings | null = null;\n\n render(): TemplateResult {\n const status = this.settings\n ? getExtendedSubscriptionStatus(this.data, this.settings)\n : getSubscriptionStatus(this.data);\n\n const isRed = status === 'failed';\n const isGreen = status?.startsWith('next_payment') || !!status?.startsWith('will_end');\n const isNormal = !isGreen && !isRed;\n\n return html`\n <div class=\"relative text-left\">\n <div\n class=${classMap({\n 'flex items-start sm-items-center space-x-m transition duration-150 ease-in-out': true,\n 'opacity-0': !this.in({ idle: 'snapshot' }),\n })}\n >\n <div\n class=${classMap({\n 'min-w-0 flex-shrink-0 rounded-full relative flex p-s': true,\n 'text-success bg-success-10': isGreen,\n 'text-body bg-contrast-5': isNormal,\n 'text-error bg-error-10': isRed,\n })}\n >\n <iron-icon\n class=\"m-auto\"\n icon=${isRed ? 'error-outline' : isGreen ? 'done' : 'done-all'}\n >\n </iron-icon>\n </div>\n\n <div class=\"flex-1 min-w-0 leading-xs flex flex-col sm-flex-row sm-items-center\">\n <div class=\"order-1 sm-order-0\">\n <div class=\"text-body font-medium origin-top-left text-m\">\n <foxy-i18n\n data-testid=\"summary\"\n options=${JSON.stringify(this.__getSummaryOptions())}\n lang=${this.lang}\n key=\"transaction_summary\"\n ns=${this.ns}\n >\n </foxy-i18n>\n ​\n </div>\n\n <div\n class=${classMap({\n 'text-m': true,\n 'text-tertiary': isNormal,\n 'text-success': isGreen,\n 'text-error': isRed,\n })}\n >\n <foxy-i18n\n data-testid=\"status\"\n lang=${this.lang}\n key=\"status_${status}\"\n ns=${this.ns}\n .options=${this.data}\n >\n </foxy-i18n>\n ​\n </div>\n </div>\n\n <div\n class=\"flex-1 leading-xs mb-xs sm-mb-0 sm-text-right order-0 sm-order-1\"\n >\n <foxy-i18n\n data-testid=\"price\"\n options=${JSON.stringify(this.__getPriceOptions())}\n class=\"text-xxs sm-text-l font-tnum tracking-wide sm-tracking-normal uppercase sm-normal-case font-medium text-secondary sm-text-body sm-block\"\n lang=${this.lang}\n key=\"price${\n this.settings?.cart_display_config.show_sub_frequency ?? true\n ? `_${this.data?.frequency === '.5m' ? 'twice_a_month' : 'recurring'}`\n : ''\n }\"\n ns=${this.ns}\n >\n </foxy-i18n>\n <span class=\"text-secondary font-medium sm-font-normal sm-block text-xxs sm-text-s\">\n <span class=\"sm-hidden\">(</span><span class=\"hidden sm-inline\">*</span><foxy-i18n infer=\"\" key=\"fees_hint\"></foxy-i18n><span class=\"sm-hidden\">)</span>\n <iron-icon id=\"hint\" icon=\"icons:info-outline\" class=\"icon-inline\"></iron-icon>\n <vcf-tooltip for=\"hint\" position=\"bottom\">\n <span class=\"text-s\"><foxy-i18n infer=\"\" key=\"fees_explainer\"></foxy-i18n></span>\n </vcf-tooltip>\n <span>\n ​\n </div>\n </div>\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition ease-in-out duration-150': true,\n 'opacity-0': this.in({ idle: 'snapshot' }),\n })}\n >\n <foxy-spinner\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n\n ${this.renderTemplateOrSlot()}\n `;\n }\n\n private __getSummaryOptions() {\n if (this.data === null) return {};\n const items = this.data._embedded['fx:transaction_template']._embedded['fx:items'];\n\n return {\n count_minus_one: items.length - 1,\n first_item: items[0],\n count: items.length,\n };\n }\n\n private __getPriceOptions() {\n if (this.data === null) return {};\n\n const cart = this.data._embedded['fx:transaction_template'];\n const amount = `${cart.total_order} ${cart.currency_code}`;\n return { ...parseFrequency(this.data.frequency), amount };\n }\n}\n"]}
|
|
@@ -35,8 +35,8 @@ SubscriptionsTable.summaryColumn = {
|
|
|
35
35
|
cell: ctx => {
|
|
36
36
|
const items = ctx.data._embedded['fx:transaction_template']._embedded['fx:items'];
|
|
37
37
|
const options = {
|
|
38
|
-
most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],
|
|
39
38
|
count_minus_one: items.length - 1,
|
|
39
|
+
first_item: items[0],
|
|
40
40
|
count: items.length,
|
|
41
41
|
};
|
|
42
42
|
return ctx.html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionsTable.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionsTable/SubscriptionsTable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,0BAAuB;AACvC,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,0CAAuC;AAChE,OAAO,EAAE,qBAAqB,EAAE,kDAA+C;AAC/E,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,CAAO;IAA7F;;QA2FE,YAAO,GAAG;YACR,kBAAkB,CAAC,WAAW;YAC9B,kBAAkB,CAAC,aAAa;YAChC,kBAAkB,CAAC,YAAY;YAC/B,kBAAkB,CAAC,iBAAiB;SACrC,CAAC;IACJ,CAAC;;AAhGQ,8BAAW,GAAiB;IACjC,IAAI,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3D,OAAO,GAAG,CAAC,IAAI,CAAA;;;;iBAIJ,GAAG,CAAC,IAAI;uBACF,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW;eACpE,GAAG,CAAC,EAAE;qBACA,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE;;;OAG/D,CAAC;IACJ,CAAC;CACF,CAAC;AAEK,gCAAa,GAAiB;IACnC,IAAI,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG;YACd,
|
|
1
|
+
{"version":3,"file":"SubscriptionsTable.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionsTable/SubscriptionsTable.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column } from '../Table/types';\nimport { Data } from './types';\nimport { Table } from '../Table/Table';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { parseFrequency } from '../../../utils/parse-frequency';\nimport { getSubscriptionStatus } from '../../../utils/get-subscription-status';\nimport { classMap } from '../../../utils/class-map';\n\nexport class SubscriptionsTable extends TranslatableMixin(Table, 'subscriptions-table')<Data> {\n static priceColumn: Column<Data> = {\n cell: ctx => {\n const cart = ctx.data._embedded['fx:transaction_template'];\n const amount = `${cart.total_order} ${cart.currency_code}`;\n\n return ctx.html`\n <foxy-i18n\n data-testclass=\"i18n frequencies\"\n class=\"font-medium text-m font-tnum\"\n lang=${ctx.lang}\n key=\"price_${ctx.data.frequency === '.5m' ? 'twice_a_month' : 'recurring'}\"\n ns=${ctx.ns}\n .options=${{ ...parseFrequency(ctx.data.frequency), amount }}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static summaryColumn: Column<Data> = {\n cell: ctx => {\n const items = ctx.data._embedded['fx:transaction_template']._embedded['fx:items'];\n const options = {\n count_minus_one: items.length - 1,\n first_item: items[0],\n count: items.length,\n };\n\n return ctx.html`\n <foxy-i18n\n data-testclass=\"i18n summaries\"\n class=\"text-m\"\n lang=${ctx.lang}\n key=\"transaction_summary\"\n ns=${ctx.ns}\n .options=${options}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static statusColumn: Column<Data> = {\n hideBelow: 'sm',\n cell: ({ ns, lang, data, html }) => {\n const status = getSubscriptionStatus(data);\n const isRed = status === 'failed';\n const isGreen = status === 'next_payment' || !!status?.startsWith('will_end');\n const isNormal = !isGreen && !isRed;\n\n return html`\n <foxy-i18n\n data-testclass=\"i18n statuses\"\n class=${classMap({\n 'px-s py-xs text-m font-medium inline-block whitespace-normal rounded': true,\n 'text-secondary bg-contrast-5': isNormal,\n 'text-success bg-success-10': isGreen,\n 'text-error bg-error-10': isRed,\n })}\n lang=${lang}\n key=\"status_${status}\"\n ns=${ns}\n .options=${data}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static subTokenURLColumn: Column<Data> = {\n cell: ctx => {\n return ctx.html`\n <a\n data-testclass=\"links\"\n target=\"_blank\"\n class=\"text-m font-medium text-primary rounded hover-underline focus-outline-none focus-shadow-outline\"\n href=${ctx.data._links['fx:sub_token_url'].href}\n >\n <foxy-i18n\n data-testclass=\"i18n\"\n lang=${ctx.lang}\n key=\"update\"\n ns=${ctx.ns}\n >\n </foxy-i18n>\n </a>\n `;\n },\n };\n\n columns = [\n SubscriptionsTable.priceColumn,\n SubscriptionsTable.summaryColumn,\n SubscriptionsTable.statusColumn,\n SubscriptionsTable.subTokenURLColumn,\n ];\n}\n"]}
|
|
@@ -211,8 +211,8 @@ class TransactionCard extends Base {
|
|
|
211
211
|
}
|
|
212
212
|
if (items) {
|
|
213
213
|
const options = {
|
|
214
|
-
most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],
|
|
215
214
|
count_minus_one: items.length - 1,
|
|
215
|
+
first_item: items[0],
|
|
216
216
|
count: items.length,
|
|
217
217
|
};
|
|
218
218
|
content = html `<foxy-i18n .options=${options} infer="" key=${key}></foxy-i18n>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/TransactionCard/TransactionCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { Resource, getResourceId } from '@foxy.io/sdk/core';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'transaction-card';\nconst Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));\n\n/**\n * Basic card displaying a transaction.\n *\n * @element foxy-transaction-card\n * @since 1.12.0\n */\nclass TransactionCard extends Base<Data> {\n private __currencyDisplay = '';\n\n renderBody(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n const hasTotal = !hiddenSelector.matches('total', true);\n const hasStatus = !hiddenSelector.matches('status', true);\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-s font-lumo text-m\"\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-0': !this.data })}>\n ${hasTotal || hasStatus\n ? html`\n <div class=\"flex items-center justify-between gap-s\">\n ${hasTotal ? this.__renderIdAndTotal() : ''}\n ${hasStatus ? this.__renderStatus() : ''}\n </div>\n `\n : ''}\n ${hiddenSelector.matches('description', true) ? '' : this.__renderSummary()}\n ${hiddenSelector.matches('customer', true) ? '' : this.__renderCustomer()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n const transaction = await super._sendGet();\n const storeLink = transaction._links['fx:store']?.href;\n\n if (typeof storeLink === 'string') {\n const store = await super._fetch<Resource<Rels.Store>>(storeLink);\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n } else {\n this.__currencyDisplay = 'symbol';\n }\n\n return transaction;\n }\n\n private __renderIdAndTotal() {\n const data = this.data;\n let content: TemplateResult;\n\n if (data) {\n const amount = `${data.total_order} ${data.currency_code}`;\n const currencyDisplay = this.__currencyDisplay;\n const options = { amount, currencyDisplay };\n\n content = html`\n <span class=\"truncate\">ID ${data.display_id || getResourceId(data._links.self.href)}</span>\n ${data.type !== 'updateinfo' && data.type !== 'subscription_cancellation'\n ? html`\n <span>•</span>\n <foxy-i18n .options=${options} infer=\"\" class=\"whitespace-nowrap\" key=\"price\">\n </foxy-i18n>\n `\n : ''}\n ${data?.is_test\n ? html`\n <foxy-i18n\n infer=\"\"\n class=\"inline-block text-xs font-medium uppercase bg-contrast-5 text-tertiary rounded-s p-xs leading-none tracking-wider\"\n key=\"test\"\n >\n </foxy-i18n>\n `\n : ''}\n `;\n } else {\n content = html`​`;\n }\n\n return html`\n <div class=\"min-w-0\" data-testid=\"total\">\n ${this.renderTemplateOrSlot('total:before')}\n <div class=\"font-medium flex items-center gap-xs\">${content}</div>\n ${this.renderTemplateOrSlot('total:after')}\n </div>\n `;\n }\n\n private __renderStatus() {\n const specialIcons: Record<string, string> = {\n authorized: 'icons:done',\n capturing: 'icons:done',\n captured: 'icons:done',\n approved: 'icons:done',\n pending: 'icons:done',\n\n completed: 'icons:done-all',\n\n pending_fraud_review: 'icons:info-outline',\n declined: 'icons:highlight-off',\n rejected: 'icons:highlight-off',\n problem: 'icons:info-outline',\n\n refunded: 'icons:restore',\n voided: 'icons:remove-circle-outline',\n };\n\n const specialColors: Record<string, string> = {\n authorized: 'text-success',\n completed: 'text-success',\n capturing: 'text-success',\n captured: 'text-success',\n approved: 'text-success',\n pending: 'text-success',\n\n pending_fraud_review: 'text-error',\n declined: 'text-error',\n rejected: 'text-error',\n problem: 'text-error',\n };\n\n const status = this.data?.status || 'completed';\n const source = this.data?.source?.substring(0, 3).toUpperCase();\n\n return html`\n <div class=\"flex-shrink-0\" data-testid=\"status\">\n ${this.renderTemplateOrSlot('status:before')}\n\n <div class=\"text-tertiary text-s flex items-center space-x-xs\">\n ${this.data?.hide_transaction\n ? html`\n <vcf-tooltip for=\"hidden\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"hidden_hint\"></foxy-i18n>\n </vcf-tooltip>\n <iron-icon\n class=\"icon-inline cursor-default\"\n icon=\"icons:visibility-off\"\n id=\"hidden\"\n >\n </iron-icon>\n `\n : ''}\n ${source\n ? html`\n <vcf-tooltip for=\"source\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"source_${source}\"></foxy-i18n>\n </vcf-tooltip>\n <span class=\"cursor-default\" id=\"source\">${source}</span>\n `\n : ''}\n\n <foxy-i18n\n options=${JSON.stringify({ value: this.data?.transaction_date })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <iron-icon\n data-testid=\"status-icon\"\n class=\"icon-inline cursor-default text-l ${specialColors[status] ?? 'text-tertiary'}\"\n id=\"status\"\n icon=${specialIcons[status] ?? 'icons:schedule'}\n >\n </iron-icon>\n\n <vcf-tooltip for=\"status\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"status_${status}\"></foxy-i18n>\n </vcf-tooltip>\n </div>\n\n ${this.renderTemplateOrSlot('status:after')}\n </div>\n `;\n }\n\n private __renderSummary() {\n const items = this.data?._embedded?.['fx:items'];\n const type = this.data?.type;\n\n let content: TemplateResult;\n let key: string;\n\n if (type === 'updateinfo') {\n key = 'summary_payment_method_change';\n } else if (type === 'subscription_modification') {\n key = 'summary_subscription_modification';\n } else if (type === 'subscription_cancellation') {\n key = 'summary_subscription_cancellation';\n } else {\n key = 'summary';\n }\n\n if (items) {\n const options = {\n most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],\n count_minus_one: items.length - 1,\n count: items.length,\n };\n\n content = html`<foxy-i18n .options=${options} infer=\"\" key=${key}></foxy-i18n>`;\n } else {\n content = html`​`;\n }\n\n return html`\n <div data-testid=\"description\">\n ${this.renderTemplateOrSlot('description:before')}\n <div class=\"text-s text-secondary truncate\">${content}</div>\n ${this.renderTemplateOrSlot('description:after')}\n </div>\n `;\n }\n\n private __renderCustomer() {\n const data = this.data;\n const content = data\n ? html`${data.customer_first_name} ${data.customer_last_name} (${data.customer_email})`\n : html`​`;\n\n return html`\n <div data-testid=\"customer\">\n ${this.renderTemplateOrSlot('customer:before')}\n <div class=\"text-tertiary truncate text-s\">${content}</div>\n ${this.renderTemplateOrSlot('customer:after')}\n </div>\n `;\n }\n}\n\nexport { TransactionCard };\n"]}
|
|
1
|
+
{"version":3,"file":"TransactionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/TransactionCard/TransactionCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,eAAgB,SAAQ,IAAU;IAAxC;;QACU,sBAAiB,GAAG,EAAE,CAAC;IAkPjC,CAAC;IAhPC,UAAU;;QACR,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;;;qBAId,QAAQ,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1E,QAAQ,IAAI,SAAS;YACrB,CAAC,CAAC,IAAI,CAAA;;oBAEE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE;oBACzC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;;eAE3C;YACH,CAAC,CAAC,EAAE;YACJ,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;YACzE,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;;;;kBAIjE,QAAQ,CAAC;YACf,8DAA8D,EAAE,IAAI;YACpE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SACzB,CAAC;;;;oBAIQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;mBAE7E,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,QAAQ;;QACtB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,SAAS,SAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,0CAAE,IAAI,CAAC;QAEvD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAuB,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;SACtF;aAAM;YACL,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;SACnC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,kBAAkB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAuB,CAAC;QAE5B,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC/C,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;YAE5C,OAAO,GAAG,IAAI,CAAA;oCACgB,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;UACjF,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B;gBACvE,CAAC,CAAC,IAAI,CAAA;;oCAEoB,OAAO;;aAE9B;gBACH,CAAC,CAAC,EAAE;UACJ,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EACb,CAAC,CAAC,IAAI,CAAA;;;;;;;aAOH;gBACH,CAAC,CAAC,EAAE;OACP,CAAC;SACH;aAAM;YACL,OAAO,GAAG,IAAI,CAAA,kBAAkB,CAAC;SAClC;QAED,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;4DACS,OAAO;UACzD,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;IACJ,CAAC;IAEO,cAAc;;QACpB,MAAM,YAAY,GAA2B;YAC3C,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,YAAY;YAErB,SAAS,EAAE,gBAAgB;YAE3B,oBAAoB,EAAE,oBAAoB;YAC1C,QAAQ,EAAE,qBAAqB;YAC/B,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE,oBAAoB;YAE7B,QAAQ,EAAE,eAAe;YACzB,MAAM,EAAE,6BAA6B;SACtC,CAAC;QAEF,MAAM,aAAa,GAA2B;YAC5C,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,cAAc;YACzB,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,cAAc;YAEvB,oBAAoB,EAAE,YAAY;YAClC,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,YAAY;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,OAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,WAAW,CAAC;QAChD,MAAM,MAAM,eAAG,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;QAEhE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;YAGxC,OAAA,IAAI,CAAC,IAAI,0CAAE,gBAAgB,EAC3B,CAAC,CAAC,IAAI,CAAA;;;;;;;;;;eAUH;YACH,CAAC,CAAC,EAAE;YACJ,MAAM;YACN,CAAC,CAAC,IAAI,CAAA;;oDAEkC,MAAM;;2DAEC,MAAM;eAClD;YACH,CAAC,CAAC,EAAE;;;sBAGM,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,QAAE,IAAI,CAAC,IAAI,0CAAE,gBAAgB,EAAE,CAAC;mBACzD,IAAI,CAAC,IAAI;;iBAEX,IAAI,CAAC,EAAE;;;;;;uDAM+B,MAAA,aAAa,CAAC,MAAM,CAAC,mCAAI,eAAe;;mBAE5E,MAAA,YAAY,CAAC,MAAM,CAAC,mCAAI,gBAAgB;;;;;8CAKb,MAAM;;;;UAI1C,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;IACJ,CAAC;IAEO,eAAe;;QACrB,MAAM,KAAK,eAAG,IAAI,CAAC,IAAI,0CAAE,SAAS,0CAAG,UAAU,CAAC,CAAC;QACjD,MAAM,IAAI,SAAG,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC;QAE7B,IAAI,OAAuB,CAAC;QAC5B,IAAI,GAAW,CAAC;QAEhB,IAAI,IAAI,KAAK,YAAY,EAAE;YACzB,GAAG,GAAG,+BAA+B,CAAC;SACvC;aAAM,IAAI,IAAI,KAAK,2BAA2B,EAAE;YAC/C,GAAG,GAAG,mCAAmC,CAAC;SAC3C;aAAM,IAAI,IAAI,KAAK,2BAA2B,EAAE;YAC/C,GAAG,GAAG,mCAAmC,CAAC;SAC3C;aAAM;YACL,GAAG,GAAG,SAAS,CAAC;SACjB;QAED,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG;gBACd,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;gBACjC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpB,KAAK,EAAE,KAAK,CAAC,MAAM;aACpB,CAAC;YAEF,OAAO,GAAG,IAAI,CAAA,uBAAuB,OAAO,iBAAiB,GAAG,eAAe,CAAC;SACjF;aAAM;YACL,OAAO,GAAG,IAAI,CAAA,kBAAkB,CAAC;SAClC;QAED,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC;sDACH,OAAO;UACnD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;;KAEnD,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI;YAClB,CAAC,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,cAAc,GAAG;YACvF,CAAC,CAAC,IAAI,CAAA,kBAAkB,CAAC;QAE3B,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;qDACD,OAAO;UAClD,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;KAEhD,CAAC;IACJ,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import type { Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { Resource, getResourceId } from '@foxy.io/sdk/core';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'transaction-card';\nconst Base = ConfigurableMixin(TranslatableMixin(InternalCard, NS));\n\n/**\n * Basic card displaying a transaction.\n *\n * @element foxy-transaction-card\n * @since 1.12.0\n */\nclass TransactionCard extends Base<Data> {\n private __currencyDisplay = '';\n\n renderBody(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n const hasTotal = !hiddenSelector.matches('total', true);\n const hasStatus = !hiddenSelector.matches('status', true);\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-s font-lumo text-m\"\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-0': !this.data })}>\n ${hasTotal || hasStatus\n ? html`\n <div class=\"flex items-center justify-between gap-s\">\n ${hasTotal ? this.__renderIdAndTotal() : ''}\n ${hasStatus ? this.__renderStatus() : ''}\n </div>\n `\n : ''}\n ${hiddenSelector.matches('description', true) ? '' : this.__renderSummary()}\n ${hiddenSelector.matches('customer', true) ? '' : this.__renderCustomer()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n protected async _sendGet(): Promise<Data> {\n const transaction = await super._sendGet();\n const storeLink = transaction._links['fx:store']?.href;\n\n if (typeof storeLink === 'string') {\n const store = await super._fetch<Resource<Rels.Store>>(storeLink);\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n } else {\n this.__currencyDisplay = 'symbol';\n }\n\n return transaction;\n }\n\n private __renderIdAndTotal() {\n const data = this.data;\n let content: TemplateResult;\n\n if (data) {\n const amount = `${data.total_order} ${data.currency_code}`;\n const currencyDisplay = this.__currencyDisplay;\n const options = { amount, currencyDisplay };\n\n content = html`\n <span class=\"truncate\">ID ${data.display_id || getResourceId(data._links.self.href)}</span>\n ${data.type !== 'updateinfo' && data.type !== 'subscription_cancellation'\n ? html`\n <span>•</span>\n <foxy-i18n .options=${options} infer=\"\" class=\"whitespace-nowrap\" key=\"price\">\n </foxy-i18n>\n `\n : ''}\n ${data?.is_test\n ? html`\n <foxy-i18n\n infer=\"\"\n class=\"inline-block text-xs font-medium uppercase bg-contrast-5 text-tertiary rounded-s p-xs leading-none tracking-wider\"\n key=\"test\"\n >\n </foxy-i18n>\n `\n : ''}\n `;\n } else {\n content = html`​`;\n }\n\n return html`\n <div class=\"min-w-0\" data-testid=\"total\">\n ${this.renderTemplateOrSlot('total:before')}\n <div class=\"font-medium flex items-center gap-xs\">${content}</div>\n ${this.renderTemplateOrSlot('total:after')}\n </div>\n `;\n }\n\n private __renderStatus() {\n const specialIcons: Record<string, string> = {\n authorized: 'icons:done',\n capturing: 'icons:done',\n captured: 'icons:done',\n approved: 'icons:done',\n pending: 'icons:done',\n\n completed: 'icons:done-all',\n\n pending_fraud_review: 'icons:info-outline',\n declined: 'icons:highlight-off',\n rejected: 'icons:highlight-off',\n problem: 'icons:info-outline',\n\n refunded: 'icons:restore',\n voided: 'icons:remove-circle-outline',\n };\n\n const specialColors: Record<string, string> = {\n authorized: 'text-success',\n completed: 'text-success',\n capturing: 'text-success',\n captured: 'text-success',\n approved: 'text-success',\n pending: 'text-success',\n\n pending_fraud_review: 'text-error',\n declined: 'text-error',\n rejected: 'text-error',\n problem: 'text-error',\n };\n\n const status = this.data?.status || 'completed';\n const source = this.data?.source?.substring(0, 3).toUpperCase();\n\n return html`\n <div class=\"flex-shrink-0\" data-testid=\"status\">\n ${this.renderTemplateOrSlot('status:before')}\n\n <div class=\"text-tertiary text-s flex items-center space-x-xs\">\n ${this.data?.hide_transaction\n ? html`\n <vcf-tooltip for=\"hidden\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"hidden_hint\"></foxy-i18n>\n </vcf-tooltip>\n <iron-icon\n class=\"icon-inline cursor-default\"\n icon=\"icons:visibility-off\"\n id=\"hidden\"\n >\n </iron-icon>\n `\n : ''}\n ${source\n ? html`\n <vcf-tooltip for=\"source\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"source_${source}\"></foxy-i18n>\n </vcf-tooltip>\n <span class=\"cursor-default\" id=\"source\">${source}</span>\n `\n : ''}\n\n <foxy-i18n\n options=${JSON.stringify({ value: this.data?.transaction_date })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <iron-icon\n data-testid=\"status-icon\"\n class=\"icon-inline cursor-default text-l ${specialColors[status] ?? 'text-tertiary'}\"\n id=\"status\"\n icon=${specialIcons[status] ?? 'icons:schedule'}\n >\n </iron-icon>\n\n <vcf-tooltip for=\"status\" theme=\"light\" position=\"top\">\n <foxy-i18n infer=\"\" key=\"status_${status}\"></foxy-i18n>\n </vcf-tooltip>\n </div>\n\n ${this.renderTemplateOrSlot('status:after')}\n </div>\n `;\n }\n\n private __renderSummary() {\n const items = this.data?._embedded?.['fx:items'];\n const type = this.data?.type;\n\n let content: TemplateResult;\n let key: string;\n\n if (type === 'updateinfo') {\n key = 'summary_payment_method_change';\n } else if (type === 'subscription_modification') {\n key = 'summary_subscription_modification';\n } else if (type === 'subscription_cancellation') {\n key = 'summary_subscription_cancellation';\n } else {\n key = 'summary';\n }\n\n if (items) {\n const options = {\n count_minus_one: items.length - 1,\n first_item: items[0],\n count: items.length,\n };\n\n content = html`<foxy-i18n .options=${options} infer=\"\" key=${key}></foxy-i18n>`;\n } else {\n content = html`​`;\n }\n\n return html`\n <div data-testid=\"description\">\n ${this.renderTemplateOrSlot('description:before')}\n <div class=\"text-s text-secondary truncate\">${content}</div>\n ${this.renderTemplateOrSlot('description:after')}\n </div>\n `;\n }\n\n private __renderCustomer() {\n const data = this.data;\n const content = data\n ? html`${data.customer_first_name} ${data.customer_last_name} (${data.customer_email})`\n : html`​`;\n\n return html`\n <div data-testid=\"customer\">\n ${this.renderTemplateOrSlot('customer:before')}\n <div class=\"text-tertiary truncate text-s\">${content}</div>\n ${this.renderTemplateOrSlot('customer:after')}\n </div>\n `;\n }\n}\n\nexport { TransactionCard };\n"]}
|
|
@@ -33,8 +33,8 @@ TransactionsTable.summaryColumn = {
|
|
|
33
33
|
if (!items)
|
|
34
34
|
return '';
|
|
35
35
|
const options = {
|
|
36
|
-
most_expensive_item: [...items].sort((a, b) => a.price - b.price)[0],
|
|
37
36
|
count_minus_one: items.length - 1,
|
|
37
|
+
first_item: items[0],
|
|
38
38
|
count: items.length,
|
|
39
39
|
};
|
|
40
40
|
return ctx.html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionsTable.js","sourceRoot":"","sources":["../../../../src/elements/public/TransactionsTable/TransactionsTable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,0BAAuB;AACvC,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AAEjE,MAAM,OAAO,iBAAkB,SAAQ,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAO;IAA3F;;QAoHE,YAAO,GAAG;YACR,iBAAiB,CAAC,WAAW;YAC7B,iBAAiB,CAAC,aAAa;YAC/B,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,QAAQ;YAC1B,iBAAiB,CAAC,UAAU;YAC5B,iBAAiB,CAAC,aAAa;SAChC,CAAC;IAGJ,CAAC;;AA7HQ,6BAAW,GAAiB;IACjC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAA;;;;eAIV,GAAG,CAAC,IAAI;;aAEV,GAAG,CAAC,EAAE;mBACA,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;;;KAG7E;CACF,CAAC;AAEK,+BAAa,GAAiB;IACnC,IAAI,EAAE,GAAG,CAAC,EAAE;;QACV,MAAM,KAAK,SAAG,GAAG,CAAC,IAAI,CAAC,SAAS,0CAAG,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG;YACd,
|
|
1
|
+
{"version":3,"file":"TransactionsTable.js","sourceRoot":"","sources":["../../../../src/elements/public/TransactionsTable/TransactionsTable.ts"],"names":[],"mappings":"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","sourcesContent":["import { Column } from '../Table/types';\nimport { Data } from './types';\nimport { Table } from '../Table/Table';\nimport { TranslatableMixin } from '../../../mixins/translatable';\n\nexport class TransactionsTable extends TranslatableMixin(Table, 'transactions-table')<Data> {\n static priceColumn: Column<Data> = {\n cell: ctx => ctx.html`\n <foxy-i18n\n data-testclass=\"i18n totals\"\n class=\"text-m font-medium font-tnum\"\n lang=${ctx.lang}\n key=\"price\"\n ns=${ctx.ns}\n .options=${{ amount: `${ctx.data.total_order} ${ctx.data.currency_code}` }}\n >\n </foxy-i18n>\n `,\n };\n\n static summaryColumn: Column<Data> = {\n cell: ctx => {\n const items = ctx.data._embedded?.['fx:items'];\n if (!items) return '';\n\n const options = {\n count_minus_one: items.length - 1,\n first_item: items[0],\n count: items.length,\n };\n\n return ctx.html`\n <foxy-i18n\n data-testclass=\"i18n summaries\"\n class=\"text-m\"\n lang=${ctx.lang}\n key=\"transaction_summary\"\n ns=${ctx.ns}\n .options=${options}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static statusColumn: Column<Data> = {\n hideBelow: 'sm',\n cell: ctx => {\n const colors = {\n completed: 'bg-success-10 text-success',\n declined: 'bg-error-10 text-error',\n rejected: 'bg-error-10 text-error',\n };\n\n const status = ctx.data.status || 'completed';\n const defaultColor = 'bg-contrast-5 text-contrast';\n const color = status in colors ? colors[status as keyof typeof colors] : defaultColor;\n\n return ctx.html`\n <foxy-i18n\n data-testclass=\"i18n statuses\"\n class=\"px-s py-xs text-m font-medium rounded ${color}\"\n lang=${ctx.lang}\n key=${`transaction_${status}`}\n ns=${ctx.ns}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static idColumn: Column<Data> = {\n hideBelow: 'sm',\n cell: ctx => {\n return ctx.html`\n <span class=\"text-m text-secondary font-tnum\" data-testclass=\"ids\">\n <span class=\"text-tertiary\">ID</span> ${ctx.data.id}\n </span>\n `;\n },\n };\n\n static dateColumn: Column<Data> = {\n hideBelow: 'sm' as const,\n cell: ctx => {\n return ctx.html`\n <foxy-i18n\n data-testclass=\"i18n dates\"\n class=\"text-m text-secondary font-tnum\"\n lang=${ctx.lang}\n key=\"date\"\n ns=${ctx.ns}\n .options=${{ value: ctx.data.transaction_date }}\n >\n </foxy-i18n>\n `;\n },\n };\n\n static receiptColumn: Column<Data> = {\n cell: ctx => {\n return ctx.html`\n <a\n data-testclass=\"links\"\n target=\"_blank\"\n class=\"text-m font-medium text-primary rounded hover-underline focus-outline-none focus-shadow-outline\"\n href=${ctx.data._links['fx:receipt'].href}\n >\n <foxy-i18n\n data-testclass=\"i18n\"\n ns=${ctx.ns}\n lang=${ctx.lang}\n key=\"receipt\"\n >\n </foxy-i18n>\n <iron-icon icon=\"icons:open-in-new\" class=\"icon-inline\"></iron-icon>\n </a>\n `;\n },\n };\n\n columns = [\n TransactionsTable.priceColumn,\n TransactionsTable.summaryColumn,\n TransactionsTable.statusColumn,\n TransactionsTable.idColumn,\n TransactionsTable.dateColumn,\n TransactionsTable.receiptColumn,\n ];\n\n private static __ns = 'transactions-table';\n}\n"]}
|