@foxy.io/elements 1.22.1 → 1.23.0-beta.2

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.
Files changed (176) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-card.js +1 -1
  25. package/dist/cdn/foxy-customer-form.js +1 -1
  26. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  27. package/dist/cdn/foxy-customer-portal.js +1 -1
  28. package/dist/cdn/foxy-customer.js +2 -2
  29. package/dist/cdn/foxy-customers-table.js +1 -1
  30. package/dist/cdn/foxy-discount-builder.js +1 -1
  31. package/dist/cdn/foxy-discount-card.js +1 -1
  32. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  33. package/dist/cdn/foxy-donation.js +1 -1
  34. package/dist/cdn/foxy-downloadable-card.js +1 -1
  35. package/dist/cdn/foxy-downloadable-form.js +1 -1
  36. package/dist/cdn/foxy-email-template-card.js +1 -1
  37. package/dist/cdn/foxy-email-template-form.js +1 -1
  38. package/dist/cdn/foxy-error-entry-card.js +1 -1
  39. package/dist/cdn/foxy-form-dialog.js +1 -1
  40. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  41. package/dist/cdn/foxy-gift-card-card.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  43. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  44. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  45. package/dist/cdn/foxy-gift-card-form.js +1 -1
  46. package/dist/cdn/foxy-i18n-editor.js +2 -2
  47. package/dist/cdn/foxy-i18n.js +1 -1
  48. package/dist/cdn/foxy-integration-card.js +1 -1
  49. package/dist/cdn/foxy-integration-form.js +1 -1
  50. package/dist/cdn/foxy-item-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-card.js +1 -1
  52. package/dist/cdn/foxy-item-category-form.js +1 -1
  53. package/dist/cdn/foxy-item-form.js +1 -1
  54. package/dist/cdn/foxy-item-option-card.js +1 -1
  55. package/dist/cdn/foxy-item-option-form.js +1 -1
  56. package/dist/cdn/foxy-items-form.js +1 -1
  57. package/dist/cdn/foxy-pagination.js +1 -1
  58. package/dist/cdn/foxy-payment-card.js +1 -1
  59. package/dist/cdn/foxy-payment-method-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  66. package/dist/cdn/foxy-payments-api.js +1 -1
  67. package/dist/cdn/foxy-query-builder.js +1 -1
  68. package/dist/cdn/foxy-report-form.js +2 -2
  69. package/dist/cdn/foxy-reports-table.js +1 -1
  70. package/dist/cdn/foxy-shipment-card.js +1 -1
  71. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  72. package/dist/cdn/foxy-sign-in-form.js +1 -1
  73. package/dist/cdn/foxy-spinner.js +1 -1
  74. package/dist/cdn/foxy-store-card.js +1 -1
  75. package/dist/cdn/foxy-store-form.js +1 -1
  76. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  77. package/dist/cdn/foxy-subscription-card.js +1 -1
  78. package/dist/cdn/foxy-subscription-form.js +1 -1
  79. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  80. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  81. package/dist/cdn/foxy-table.js +1 -1
  82. package/dist/cdn/foxy-tax-card.js +1 -1
  83. package/dist/cdn/foxy-tax-form.js +1 -1
  84. package/dist/cdn/foxy-template-config-form.js +1 -1
  85. package/dist/cdn/foxy-template-form.js +1 -1
  86. package/dist/cdn/foxy-template-set-card.js +1 -1
  87. package/dist/cdn/foxy-template-set-form.js +1 -1
  88. package/dist/cdn/foxy-transaction-card.js +1 -1
  89. package/dist/cdn/foxy-transaction.js +1 -1
  90. package/dist/cdn/foxy-transactions-table.js +1 -1
  91. package/dist/cdn/foxy-user-card.js +1 -1
  92. package/dist/cdn/foxy-user-form.js +1 -1
  93. package/dist/cdn/foxy-users-table.js +1 -1
  94. package/dist/cdn/foxy-webhook-card.js +1 -1
  95. package/dist/cdn/foxy-webhook-form.js +1 -1
  96. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  97. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  98. package/dist/cdn/{shared-0eb84a8c.js → shared-00b50abf.js} +1 -1
  99. package/dist/cdn/{shared-6b40c5c0.js → shared-0237bfae.js} +2 -2
  100. package/dist/cdn/{shared-a2e3a042.js → shared-025cab8b.js} +1 -1
  101. package/dist/cdn/{shared-e65fe03a.js → shared-04634a6f.js} +1 -1
  102. package/dist/cdn/{shared-06a0acc7.js → shared-049d80d0.js} +1 -1
  103. package/dist/cdn/{shared-211ebea6.js → shared-07e32de2.js} +1 -1
  104. package/dist/cdn/{shared-c3c7b53d.js → shared-0dd25feb.js} +1 -1
  105. package/dist/cdn/{shared-a0247d8b.js → shared-14bb06d4.js} +1 -1
  106. package/dist/cdn/{shared-bab31596.js → shared-163e5fdb.js} +1 -1
  107. package/dist/cdn/{shared-28a8929f.js → shared-1e55acbb.js} +1 -1
  108. package/dist/cdn/{shared-03082012.js → shared-27d23dfd.js} +1 -1
  109. package/dist/cdn/{shared-8200c60b.js → shared-313a39ef.js} +1 -1
  110. package/dist/cdn/{shared-cf8d7f91.js → shared-3206f265.js} +1 -1
  111. package/dist/cdn/{shared-21d8367f.js → shared-394c2425.js} +1 -1
  112. package/dist/cdn/{shared-3943441a.js → shared-3d6f0788.js} +1 -1
  113. package/dist/cdn/{shared-9d50703e.js → shared-40638f2c.js} +4 -4
  114. package/dist/cdn/shared-44594184.js +1 -0
  115. package/dist/cdn/{shared-da9a7425.js → shared-4494ebfa.js} +1 -1
  116. package/dist/cdn/{shared-4c680413.js → shared-491c9063.js} +1 -1
  117. package/dist/cdn/{shared-ec86d792.js → shared-50908853.js} +1 -1
  118. package/dist/cdn/{shared-cdd84e8b.js → shared-520be2e9.js} +1 -1
  119. package/dist/cdn/{shared-b9aa9793.js → shared-539cde4d.js} +1 -1
  120. package/dist/cdn/{shared-4b9b583c.js → shared-5570ac69.js} +1 -1
  121. package/dist/cdn/{shared-b284e2ed.js → shared-64f2d6de.js} +1 -1
  122. package/dist/cdn/{shared-36bd77b3.js → shared-694297c2.js} +1 -1
  123. package/dist/cdn/{shared-410fe7d6.js → shared-726c0b56.js} +1 -1
  124. package/dist/cdn/{shared-c983c9a6.js → shared-77a700fe.js} +1 -1
  125. package/dist/cdn/{shared-b74f6139.js → shared-797b6161.js} +1 -1
  126. package/dist/cdn/{shared-fa8c6c29.js → shared-7c761c65.js} +1 -1
  127. package/dist/cdn/{shared-c7079542.js → shared-7fd77eed.js} +1 -1
  128. package/dist/cdn/{shared-fcc22aca.js → shared-80792dc8.js} +1 -1
  129. package/dist/cdn/{shared-5ed705a7.js → shared-8ac00abe.js} +1 -1
  130. package/dist/cdn/{shared-18cc7fbe.js → shared-98eec370.js} +1 -1
  131. package/dist/cdn/shared-a7347e96.js +1 -0
  132. package/dist/cdn/{shared-944172a3.js → shared-a959c0d9.js} +1 -1
  133. package/dist/cdn/{shared-a8c56675.js → shared-ab69c97b.js} +1 -1
  134. package/dist/cdn/{shared-3ed5c1a7.js → shared-ac05532a.js} +3 -3
  135. package/dist/cdn/{shared-f300770c.js → shared-acda8da2.js} +1 -1
  136. package/dist/cdn/{shared-4b03be32.js → shared-af7cde22.js} +1 -1
  137. package/dist/cdn/{shared-2bd6e7cd.js → shared-b34bef61.js} +1 -1
  138. package/dist/cdn/{shared-eead52c5.js → shared-b39fce1b.js} +1 -1
  139. package/dist/cdn/{shared-c2ce80e8.js → shared-bb226a47.js} +1 -1
  140. package/dist/cdn/{shared-4062a24b.js → shared-bbb8ec69.js} +1 -1
  141. package/dist/cdn/{shared-db06cd94.js → shared-bdd5c908.js} +1 -1
  142. package/dist/cdn/{shared-dcda7437.js → shared-bed220d3.js} +1 -1
  143. package/dist/cdn/{shared-04c7862d.js → shared-c7954521.js} +1 -1
  144. package/dist/cdn/{shared-f6345331.js → shared-cf65fcc7.js} +1 -1
  145. package/dist/cdn/{shared-83a93c9a.js → shared-d1c45954.js} +1 -1
  146. package/dist/cdn/shared-d2384b7b.js +1 -0
  147. package/dist/cdn/{shared-e9d14643.js → shared-df1816e8.js} +1 -1
  148. package/dist/cdn/{shared-207a704b.js → shared-e7ce4e47.js} +1 -1
  149. package/dist/cdn/{shared-3cc4e37b.js → shared-ec3332b9.js} +1 -1
  150. package/dist/cdn/{shared-4a04af41.js → shared-f0c8a5bd.js} +1 -1
  151. package/dist/cdn/{shared-92d858b6.js → shared-f19f05e1.js} +1 -1
  152. package/dist/cdn/{shared-65e93dcb.js → shared-f23627ae.js} +1 -1
  153. package/dist/cdn/{shared-e25bb59d.js → shared-faad86eb.js} +1 -1
  154. package/dist/cdn/{shared-fce91408.js → shared-ffd03d7b.js} +1 -1
  155. package/dist/cdn/translations/template-config-form/en.json +7 -0
  156. package/dist/elements/public/PaymentsApi/PaymentsApi.d.ts +53 -7
  157. package/dist/elements/public/PaymentsApi/PaymentsApi.js +75 -12
  158. package/dist/elements/public/PaymentsApi/PaymentsApi.js.map +1 -1
  159. package/dist/elements/public/TaxForm/TaxForm.js +6 -7
  160. package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
  161. package/dist/elements/public/TaxForm/index.d.ts +1 -1
  162. package/dist/elements/public/TaxForm/index.js +1 -1
  163. package/dist/elements/public/TaxForm/index.js.map +1 -1
  164. package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.d.ts +1 -4
  165. package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js +65 -23
  166. package/dist/elements/public/TemplateConfigForm/TemplateConfigForm.js.map +1 -1
  167. package/dist/elements/public/TemplateConfigForm/defaults.js +2 -1
  168. package/dist/elements/public/TemplateConfigForm/defaults.js.map +1 -1
  169. package/dist/elements/public/TemplateConfigForm/types.d.ts +2 -1
  170. package/dist/elements/public/TemplateConfigForm/types.js.map +1 -1
  171. package/dist/mixins/themeable.js +6 -0
  172. package/dist/mixins/themeable.js.map +1 -1
  173. package/package.json +1 -1
  174. package/dist/cdn/shared-dff7e109.js +0 -1
  175. package/dist/cdn/shared-e4d0da47.js +0 -1
  176. package/dist/cdn/shared-f1642310.js +0 -1
@@ -1 +1 @@
1
- import"./shared-e9d14643.js";import{I as e}from"./shared-eead52c5.js";import{_ as t}from"./shared-98755831.js";import{i as a}from"./shared-d3bf9ac0.js";import{h as s}from"./shared-7f33a83a.js";import{A as i}from"./shared-509a2f52.js";let r,l=e=>e;customElements.define("foxy-internal-async-combo-box-control",class extends e{constructor(){var e;super(...arguments),e=this,this.allowCustomValue=!1,this.itemLabelPath=null,this.itemValuePath=null,this.selectedItem=void 0,this.first=null,this.__dataProvider=async function(t,a){if(!e.first)return a([],0);const s=new URL(e.first);s.searchParams.set("offset",String(t.page*t.pageSize)),s.searchParams.set("limit",String(t.pageSize)),t.filter&&e.itemLabelPath&&s.searchParams.set(e.itemLabelPath,`*${t.filter}*`);const r=await new i(e).fetch(s.toString());if(!r.ok)throw new Error(await r.text());const l=await r.json();a(Array.from(Object.values(l._embedded))[0],l.total_items)}}static get properties(){return t(t({},super.properties),{},{allowCustomValue:{type:Boolean,attribute:"allow-custom-value"},itemLabelPath:{type:String,attribute:"item-label-path"},itemValuePath:{type:String,attribute:"item-value-path"},selectedItem:{attribute:!1},first:{type:String}})}renderControl(){var e,t;return s(r||(r=l` <vaadin-combo-box item-value-path="${0}" item-label-path="${0}" error-message="${0}" item-id-path="_links.self.href" helper-text="${0}" placeholder="${0}" label="${0}" class="w-full" ?allow-custom-value="${0}" ?disabled="${0}" ?readonly="${0}" clear-button-visible .checkValidity="${0}" .dataProvider="${0}" .selectedItem="${0}" .value="${0}" @change="${0}"> </vaadin-combo-box> `),a(null!==(e=this.itemValuePath)&&void 0!==e?e:void 0),a(null!==(t=this.itemLabelPath)&&void 0!==t?t:void 0),a(this._errorMessage),this.helperText,this.placeholder,this.label,this.allowCustomValue,this.disabled,this.readonly,this._checkValidity,this.__dataProvider,this.selectedItem,this._value,(e=>{e.stopPropagation();const t=e.currentTarget;this._value=t.value,this._value===t.value?(this.selectedItem=t.selectedItem,this.dispatchEvent(new CustomEvent("selected-item-changed"))):t.value=this._value}))}updated(e){if(super.updated(e),e.has("first")||e.has("itemLabelPath")){const e=this.renderRoot.querySelector("vaadin-combo-box");e&&(e.size=0,e.size=1)}}get _value(){var e;return null!==(e=super._value)&&void 0!==e?e:""}set _value(e){super._value=e}});
1
+ import"./shared-df1816e8.js";import{I as e}from"./shared-b39fce1b.js";import{_ as t}from"./shared-98755831.js";import{i as a}from"./shared-d3bf9ac0.js";import{h as s}from"./shared-7f33a83a.js";import{A as i}from"./shared-509a2f52.js";let r,l=e=>e;customElements.define("foxy-internal-async-combo-box-control",class extends e{constructor(){var e;super(...arguments),e=this,this.allowCustomValue=!1,this.itemLabelPath=null,this.itemValuePath=null,this.selectedItem=void 0,this.first=null,this.__dataProvider=async function(t,a){if(!e.first)return a([],0);const s=new URL(e.first);s.searchParams.set("offset",String(t.page*t.pageSize)),s.searchParams.set("limit",String(t.pageSize)),t.filter&&e.itemLabelPath&&s.searchParams.set(e.itemLabelPath,`*${t.filter}*`);const r=await new i(e).fetch(s.toString());if(!r.ok)throw new Error(await r.text());const l=await r.json();a(Array.from(Object.values(l._embedded))[0],l.total_items)}}static get properties(){return t(t({},super.properties),{},{allowCustomValue:{type:Boolean,attribute:"allow-custom-value"},itemLabelPath:{type:String,attribute:"item-label-path"},itemValuePath:{type:String,attribute:"item-value-path"},selectedItem:{attribute:!1},first:{type:String}})}renderControl(){var e,t;return s(r||(r=l` <vaadin-combo-box item-value-path="${0}" item-label-path="${0}" error-message="${0}" item-id-path="_links.self.href" helper-text="${0}" placeholder="${0}" label="${0}" class="w-full" ?allow-custom-value="${0}" ?disabled="${0}" ?readonly="${0}" clear-button-visible .checkValidity="${0}" .dataProvider="${0}" .selectedItem="${0}" .value="${0}" @change="${0}"> </vaadin-combo-box> `),a(null!==(e=this.itemValuePath)&&void 0!==e?e:void 0),a(null!==(t=this.itemLabelPath)&&void 0!==t?t:void 0),a(this._errorMessage),this.helperText,this.placeholder,this.label,this.allowCustomValue,this.disabled,this.readonly,this._checkValidity,this.__dataProvider,this.selectedItem,this._value,(e=>{e.stopPropagation();const t=e.currentTarget;this._value=t.value,this._value===t.value?(this.selectedItem=t.selectedItem,this.dispatchEvent(new CustomEvent("selected-item-changed"))):t.value=this._value}))}updated(e){if(super.updated(e),e.has("first")||e.has("itemLabelPath")){const e=this.renderRoot.querySelector("vaadin-combo-box");e&&(e.size=0,e.size=1)}}get _value(){var e;return null!==(e=super._value)&&void 0!==e?e:""}set _value(e){super._value=e}});
@@ -1 +1 @@
1
- import{_ as e}from"./shared-98755831.js";import"./shared-f300770c.js";import"./shared-03082012.js";import"./shared-da9a7425.js";import{L as s,c as t,h as r}from"./shared-7f33a83a.js";import{T as a}from"./shared-e65fe03a.js";import{c as i}from"./shared-4e709717.js";class o extends CustomEvent{constructor(e){super("change",{detail:e})}}let c,l,d=e=>e;class h extends(a(s)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return e(e({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,t(c||(c=d`: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 r(l||(l=d` <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> `),i({"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}),i({"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}),i({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(e=>{if(this.readonly)return e.preventDefault();e.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new o(this.checked))}),i({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}export{h as C,o as a};
1
+ import{_ as e}from"./shared-98755831.js";import"./shared-acda8da2.js";import"./shared-27d23dfd.js";import"./shared-4494ebfa.js";import{L as s,c as t,h as r}from"./shared-7f33a83a.js";import{T as a}from"./shared-04634a6f.js";import{c as i}from"./shared-4e709717.js";class o extends CustomEvent{constructor(e){super("change",{detail:e})}}let c,d,l=e=>e;class h extends(a(s)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return e(e({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,t(c||(c=l`: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 r(d||(d=l` <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> `),i({"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}),i({"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}),i({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(e=>{if(this.readonly)return e.preventDefault();e.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new o(this.checked))}),i({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}export{h as C,o as a};
@@ -65,6 +65,13 @@
65
65
  "ga_account_id_explainer": "You can find the ID in the Admin section of your Analytics in Tracking info > Tracking code.",
66
66
  "ga_include_on_site": "Include via loader.js",
67
67
  "ga_include_on_site_explainer": "Enable Google Analytics on any page where the loader.js file is included.",
68
+ "ga_deprecation_notice": "Google is dropping support for this integration in July 2023. Please use the newer Google Tag integration below.",
69
+ "gt_account_id": "Tag ID",
70
+ "gt_account_id_explainer": "Tag ID prefixed with G- or AW-. Values prefixed with GT- are not fully supported at this time.",
71
+ "gt_send_to": "Ads send to",
72
+ "gt_send_to_explainer": "Optional. Setting this value will trigger the conversion event to be tracked on the receipt.",
73
+ "gt_usage_notice": "Enabling the Google Tag for your store requires some additional configuration on your store and within your tag administration to make the data logged through this functionality useful.",
74
+ "gt_docs_link": "See our docs for more info",
68
75
  "hidden": "Hidden",
69
76
  "hidden_fields": "Hidden fields",
70
77
  "last_name": "Last name",
@@ -14,19 +14,65 @@ import { LitElement } from 'lit-element';
14
14
  */
15
15
  export declare class PaymentsApi extends LitElement {
16
16
  static get properties(): PropertyDeclarations;
17
- /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */
17
+ /**
18
+ * Base URL of the `fx:payment_method_set_hosted_payment_gateway` resource (without ID).
19
+ * @example https://api.foxy.io/payment_method_set_hosted_payment_gateways/
20
+ */
21
+ paymentMethodSetHostedPaymentGatewayBaseUrl: string | null;
22
+ /**
23
+ * URL of the `fx:payment_method_set_hosted_payment_gateways` collection.
24
+ * @example https://api.foxy.io/stores/0/payment_method_set_hosted_payment_gateways
25
+ */
18
26
  paymentMethodSetHostedPaymentGatewaysUrl: string | null;
19
- /** URL of the `fx:hosted_payment_gateways` property helper. */
27
+ /**
28
+ * URL of the `fx:hosted_payment_gateways` property helper.
29
+ * @example https://api.foxy.io/property_helpers/hosted_payment_gateways
30
+ */
20
31
  hostedPaymentGatewaysHelperUrl: string | null;
21
- /** URL of the `fx:hosted_payment_gateways` collection. */
32
+ /**
33
+ * Base URL of the `fx:hosted_payment_gateway` resource (without ID).
34
+ * @example https://api.foxy.io/hosted_payment_gateways/
35
+ */
36
+ hostedPaymentGatewayBaseUrl: string | null;
37
+ /**
38
+ * URL of the `fx:hosted_payment_gateways` collection.
39
+ * @example https://api.foxy.io/stores/0/hosted_payment_gateways
40
+ */
22
41
  hostedPaymentGatewaysUrl: string | null;
23
- /** URL of the `fx:payment_gateways` property helper. */
42
+ /**
43
+ * URL of the `fx:payment_gateways` property helper.
44
+ * @example https://api.foxy.io/property_helpers/payment_gateways
45
+ */
24
46
  paymentGatewaysHelperUrl: string | null;
25
- /** URL of the `fx:payment_method_sets` collection. */
47
+ /**
48
+ * Base URL of the `fx:payment_method_set` resource (without ID).
49
+ * @example https://api.foxy.io/payment_method_sets/
50
+ */
51
+ paymentMethodSetBaseUrl: string | null;
52
+ /**
53
+ * URL of the `fx:payment_method_sets` collection.
54
+ * @example https://api.foxy.io/stores/0/payment_method_sets
55
+ */
26
56
  paymentMethodSetsUrl: string | null;
27
- /** URL of the `fx:fraud_protections` collection. */
57
+ /**
58
+ * Base URL of the `fx:fraud_protection` resource (without ID).
59
+ * @example https://api.foxy.io/fraud_protections/
60
+ */
61
+ fraudProtectionBaseUrl: string | null;
62
+ /**
63
+ * URL of the `fx:fraud_protections` collection.
64
+ * @example https://api.foxy.io/stores/0/fraud_protections
65
+ */
28
66
  fraudProtectionsUrl: string | null;
29
- /** URL of the `fx:payment_gateways` collection. */
67
+ /**
68
+ * Base URL of the `fx:payment_gateway` resource (without ID).
69
+ * @example https://api.foxy.io/payment_gateways/
70
+ */
71
+ paymentGatewayBaseUrl: string | null;
72
+ /**
73
+ * URL of the `fx:payment_gateways` collection.
74
+ * @example https://api.foxy.io/stores/0/payment_gateways
75
+ */
30
76
  paymentGatewaysUrl: string | null;
31
77
  private readonly __api;
32
78
  private readonly __fetch;
@@ -17,19 +17,65 @@ import { API } from "../NucleonElement/API.js";
17
17
  export class PaymentsApi extends LitElement {
18
18
  constructor() {
19
19
  super(...arguments);
20
- /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */
20
+ /**
21
+ * Base URL of the `fx:payment_method_set_hosted_payment_gateway` resource (without ID).
22
+ * @example https://api.foxy.io/payment_method_set_hosted_payment_gateways/
23
+ */
24
+ this.paymentMethodSetHostedPaymentGatewayBaseUrl = null;
25
+ /**
26
+ * URL of the `fx:payment_method_set_hosted_payment_gateways` collection.
27
+ * @example https://api.foxy.io/stores/0/payment_method_set_hosted_payment_gateways
28
+ */
21
29
  this.paymentMethodSetHostedPaymentGatewaysUrl = null;
22
- /** URL of the `fx:hosted_payment_gateways` property helper. */
30
+ /**
31
+ * URL of the `fx:hosted_payment_gateways` property helper.
32
+ * @example https://api.foxy.io/property_helpers/hosted_payment_gateways
33
+ */
23
34
  this.hostedPaymentGatewaysHelperUrl = null;
24
- /** URL of the `fx:hosted_payment_gateways` collection. */
35
+ /**
36
+ * Base URL of the `fx:hosted_payment_gateway` resource (without ID).
37
+ * @example https://api.foxy.io/hosted_payment_gateways/
38
+ */
39
+ this.hostedPaymentGatewayBaseUrl = null;
40
+ /**
41
+ * URL of the `fx:hosted_payment_gateways` collection.
42
+ * @example https://api.foxy.io/stores/0/hosted_payment_gateways
43
+ */
25
44
  this.hostedPaymentGatewaysUrl = null;
26
- /** URL of the `fx:payment_gateways` property helper. */
45
+ /**
46
+ * URL of the `fx:payment_gateways` property helper.
47
+ * @example https://api.foxy.io/property_helpers/payment_gateways
48
+ */
27
49
  this.paymentGatewaysHelperUrl = null;
28
- /** URL of the `fx:payment_method_sets` collection. */
50
+ /**
51
+ * Base URL of the `fx:payment_method_set` resource (without ID).
52
+ * @example https://api.foxy.io/payment_method_sets/
53
+ */
54
+ this.paymentMethodSetBaseUrl = null;
55
+ /**
56
+ * URL of the `fx:payment_method_sets` collection.
57
+ * @example https://api.foxy.io/stores/0/payment_method_sets
58
+ */
29
59
  this.paymentMethodSetsUrl = null;
30
- /** URL of the `fx:fraud_protections` collection. */
60
+ /**
61
+ * Base URL of the `fx:fraud_protection` resource (without ID).
62
+ * @example https://api.foxy.io/fraud_protections/
63
+ */
64
+ this.fraudProtectionBaseUrl = null;
65
+ /**
66
+ * URL of the `fx:fraud_protections` collection.
67
+ * @example https://api.foxy.io/stores/0/fraud_protections
68
+ */
31
69
  this.fraudProtectionsUrl = null;
32
- /** URL of the `fx:payment_gateways` collection. */
70
+ /**
71
+ * Base URL of the `fx:payment_gateway` resource (without ID).
72
+ * @example https://api.foxy.io/payment_gateways/
73
+ */
74
+ this.paymentGatewayBaseUrl = null;
75
+ /**
76
+ * URL of the `fx:payment_gateways` collection.
77
+ * @example https://api.foxy.io/stores/0/payment_gateways
78
+ */
33
79
  this.paymentGatewaysUrl = null;
34
80
  this.__api = new API(this);
35
81
  this.__fetch = this.__api.fetch.bind(this.__api);
@@ -40,21 +86,31 @@ export class PaymentsApi extends LitElement {
40
86
  return;
41
87
  if (evt.defaultPrevented)
42
88
  return;
43
- const { paymentMethodSetHostedPaymentGatewaysUrl, hostedPaymentGatewaysHelperUrl, paymentGatewaysHelperUrl, hostedPaymentGatewaysUrl, paymentMethodSetsUrl, fraudProtectionsUrl, paymentGatewaysUrl, } = this;
89
+ const { paymentMethodSetHostedPaymentGatewaysUrl, paymentMethodSetHostedPaymentGatewayBaseUrl = paymentMethodSetHostedPaymentGatewaysUrl, hostedPaymentGatewaysHelperUrl, paymentGatewaysHelperUrl, hostedPaymentGatewaysUrl, hostedPaymentGatewayBaseUrl = hostedPaymentGatewaysUrl, paymentMethodSetsUrl, paymentMethodSetBaseUrl = paymentMethodSetsUrl, fraudProtectionsUrl, fraudProtectionBaseUrl = fraudProtectionsUrl, paymentGatewaysUrl, paymentGatewayBaseUrl = paymentGatewaysUrl, } = this;
44
90
  if (paymentMethodSetHostedPaymentGatewaysUrl === null)
45
91
  return;
92
+ if (paymentMethodSetHostedPaymentGatewayBaseUrl === null)
93
+ return;
46
94
  if (hostedPaymentGatewaysHelperUrl === null)
47
95
  return;
48
96
  if (paymentGatewaysHelperUrl === null)
49
97
  return;
50
98
  if (hostedPaymentGatewaysUrl === null)
51
99
  return;
100
+ if (hostedPaymentGatewayBaseUrl === null)
101
+ return;
52
102
  if (paymentMethodSetsUrl === null)
53
103
  return;
104
+ if (paymentMethodSetBaseUrl === null)
105
+ return;
54
106
  if (fraudProtectionsUrl === null)
55
107
  return;
108
+ if (fraudProtectionBaseUrl === null)
109
+ return;
56
110
  if (paymentGatewaysUrl === null)
57
111
  return;
112
+ if (paymentGatewayBaseUrl === null)
113
+ return;
58
114
  const createGetter = (link) => (id) => {
59
115
  const url = new URL(link);
60
116
  if (!url.pathname.endsWith('/'))
@@ -70,10 +126,10 @@ export class PaymentsApi extends LitElement {
70
126
  fraudProtectionsUrl,
71
127
  paymentGatewaysUrl,
72
128
  getPaymentMethodSetHostedPaymentGatewayUrl: createGetter(paymentMethodSetHostedPaymentGatewaysUrl),
73
- getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewaysUrl),
74
- getPaymentMethodSetUrl: createGetter(paymentMethodSetsUrl),
75
- getFraudProtectionUrl: createGetter(fraudProtectionsUrl),
76
- getPaymentGatewayUrl: createGetter(paymentGatewaysUrl),
129
+ getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewayBaseUrl),
130
+ getPaymentMethodSetUrl: createGetter(paymentMethodSetBaseUrl),
131
+ getFraudProtectionUrl: createGetter(fraudProtectionBaseUrl),
132
+ getPaymentGatewayUrl: createGetter(paymentGatewayBaseUrl),
77
133
  request: evt.request,
78
134
  fetch: this.__fetch,
79
135
  });
@@ -85,14 +141,21 @@ export class PaymentsApi extends LitElement {
85
141
  }
86
142
  static get properties() {
87
143
  return {
144
+ paymentMethodSetHostedPaymentGatewayBaseUrl: {
145
+ attribute: 'payment-method-set-hosted-payment-gateway-base-url',
146
+ },
88
147
  paymentMethodSetHostedPaymentGatewaysUrl: {
89
148
  attribute: 'payment-method-set-hosted-payment-gateways-url',
90
149
  },
91
150
  hostedPaymentGatewaysHelperUrl: { attribute: 'hosted-payment-gateways-helper-url' },
151
+ hostedPaymentGatewayBaseUrl: { attribute: 'hosted-payment-gateway-base-url' },
92
152
  hostedPaymentGatewaysUrl: { attribute: 'hosted-payment-gateways-url' },
93
153
  paymentGatewaysHelperUrl: { attribute: 'payment-gateways-helper-url' },
154
+ paymentMethodSetBaseUrl: { attribute: 'payment-method-set-base-url' },
94
155
  paymentMethodSetsUrl: { attribute: 'payment-method-sets-url' },
156
+ fraudProtectionBaseUrl: { attribute: 'fraud-protection-base-url' },
95
157
  fraudProtectionsUrl: { attribute: 'fraud-protections-url' },
158
+ paymentGatewayBaseUrl: { attribute: 'payment-gateway-base-url' },
96
159
  paymentGatewaysUrl: { attribute: 'payment-gateways-url' },
97
160
  };
98
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApi.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApi/PaymentsApi.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\n\nimport { LitElement } from 'lit-element';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { getHandler } from './api/index';\nimport { API } from '../NucleonElement/API';\n\n/**\n * Adapter element for Payments API. This element requires an additional hAPI adapter\n * that will handle authentication and session management.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * Payments API elements with hAPI, wrap them into this node._\n *\n * @element foxy-payments-api\n * @since 1.21.0\n */\nexport class PaymentsApi extends LitElement {\n static get properties(): PropertyDeclarations {\n return {\n paymentMethodSetHostedPaymentGatewaysUrl: {\n attribute: 'payment-method-set-hosted-payment-gateways-url',\n },\n\n hostedPaymentGatewaysHelperUrl: { attribute: 'hosted-payment-gateways-helper-url' },\n hostedPaymentGatewaysUrl: { attribute: 'hosted-payment-gateways-url' },\n paymentGatewaysHelperUrl: { attribute: 'payment-gateways-helper-url' },\n paymentMethodSetsUrl: { attribute: 'payment-method-sets-url' },\n fraudProtectionsUrl: { attribute: 'fraud-protections-url' },\n paymentGatewaysUrl: { attribute: 'payment-gateways-url' },\n };\n }\n\n /** URL of the `fx:payment_method_set_hosted_payment_gateways` collection. */\n paymentMethodSetHostedPaymentGatewaysUrl: string | null = null;\n\n /** URL of the `fx:hosted_payment_gateways` property helper. */\n hostedPaymentGatewaysHelperUrl: string | null = null;\n\n /** URL of the `fx:hosted_payment_gateways` collection. */\n hostedPaymentGatewaysUrl: string | null = null;\n\n /** URL of the `fx:payment_gateways` property helper. */\n paymentGatewaysHelperUrl: string | null = null;\n\n /** URL of the `fx:payment_method_sets` collection. */\n paymentMethodSetsUrl: string | null = null;\n\n /** URL of the `fx:fraud_protections` collection. */\n fraudProtectionsUrl: string | null = null;\n\n /** URL of the `fx:payment_gateways` collection. */\n paymentGatewaysUrl: string | null = null;\n\n private readonly __api = new API(this);\n\n private readonly __fetch = this.__api.fetch.bind(this.__api);\n\n private readonly __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n if (!evt.request.url.startsWith('https://foxy-payments-api.element/')) return;\n if (evt.defaultPrevented) return;\n\n const {\n paymentMethodSetHostedPaymentGatewaysUrl,\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n } = this;\n\n if (paymentMethodSetHostedPaymentGatewaysUrl === null) return;\n if (hostedPaymentGatewaysHelperUrl === null) return;\n if (paymentGatewaysHelperUrl === null) return;\n if (hostedPaymentGatewaysUrl === null) return;\n if (paymentMethodSetsUrl === null) return;\n if (fraudProtectionsUrl === null) return;\n if (paymentGatewaysUrl === null) return;\n\n const createGetter = (link: string) => (id: string) => {\n const url = new URL(link);\n if (!url.pathname.endsWith('/')) url.pathname += '/';\n url.pathname += id;\n return url.toString();\n };\n\n const handler = getHandler({\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n\n getPaymentMethodSetHostedPaymentGatewayUrl: createGetter(\n paymentMethodSetHostedPaymentGatewaysUrl\n ),\n\n getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewaysUrl),\n getPaymentMethodSetUrl: createGetter(paymentMethodSetsUrl),\n getFraudProtectionUrl: createGetter(fraudProtectionsUrl),\n getPaymentGatewayUrl: createGetter(paymentGatewaysUrl),\n\n request: evt.request,\n fetch: this.__fetch,\n });\n\n if (handler) {\n evt.preventDefault();\n evt.respondWith(handler);\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('fetch', this.__handleFetch);\n }\n\n createRenderRoot(): Element | ShadowRoot {\n return this;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('fetch', this.__handleFetch);\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApi.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApi/PaymentsApi.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\n\nimport { LitElement } from 'lit-element';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { getHandler } from './api/index';\nimport { API } from '../NucleonElement/API';\n\n/**\n * Adapter element for Payments API. This element requires an additional hAPI adapter\n * that will handle authentication and session management.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * Payments API elements with hAPI, wrap them into this node._\n *\n * @element foxy-payments-api\n * @since 1.21.0\n */\nexport class PaymentsApi extends LitElement {\n static get properties(): PropertyDeclarations {\n return {\n paymentMethodSetHostedPaymentGatewayBaseUrl: {\n attribute: 'payment-method-set-hosted-payment-gateway-base-url',\n },\n\n paymentMethodSetHostedPaymentGatewaysUrl: {\n attribute: 'payment-method-set-hosted-payment-gateways-url',\n },\n\n hostedPaymentGatewaysHelperUrl: { attribute: 'hosted-payment-gateways-helper-url' },\n hostedPaymentGatewayBaseUrl: { attribute: 'hosted-payment-gateway-base-url' },\n hostedPaymentGatewaysUrl: { attribute: 'hosted-payment-gateways-url' },\n paymentGatewaysHelperUrl: { attribute: 'payment-gateways-helper-url' },\n paymentMethodSetBaseUrl: { attribute: 'payment-method-set-base-url' },\n paymentMethodSetsUrl: { attribute: 'payment-method-sets-url' },\n fraudProtectionBaseUrl: { attribute: 'fraud-protection-base-url' },\n fraudProtectionsUrl: { attribute: 'fraud-protections-url' },\n paymentGatewayBaseUrl: { attribute: 'payment-gateway-base-url' },\n paymentGatewaysUrl: { attribute: 'payment-gateways-url' },\n };\n }\n\n /**\n * Base URL of the `fx:payment_method_set_hosted_payment_gateway` resource (without ID).\n * @example https://api.foxy.io/payment_method_set_hosted_payment_gateways/\n */\n paymentMethodSetHostedPaymentGatewayBaseUrl: string | null = null;\n\n /**\n * URL of the `fx:payment_method_set_hosted_payment_gateways` collection.\n * @example https://api.foxy.io/stores/0/payment_method_set_hosted_payment_gateways\n */\n paymentMethodSetHostedPaymentGatewaysUrl: string | null = null;\n\n /**\n * URL of the `fx:hosted_payment_gateways` property helper.\n * @example https://api.foxy.io/property_helpers/hosted_payment_gateways\n */\n hostedPaymentGatewaysHelperUrl: string | null = null;\n\n /**\n * Base URL of the `fx:hosted_payment_gateway` resource (without ID).\n * @example https://api.foxy.io/hosted_payment_gateways/\n */\n hostedPaymentGatewayBaseUrl: string | null = null;\n\n /**\n * URL of the `fx:hosted_payment_gateways` collection.\n * @example https://api.foxy.io/stores/0/hosted_payment_gateways\n */\n hostedPaymentGatewaysUrl: string | null = null;\n\n /**\n * URL of the `fx:payment_gateways` property helper.\n * @example https://api.foxy.io/property_helpers/payment_gateways\n */\n paymentGatewaysHelperUrl: string | null = null;\n\n /**\n * Base URL of the `fx:payment_method_set` resource (without ID).\n * @example https://api.foxy.io/payment_method_sets/\n */\n paymentMethodSetBaseUrl: string | null = null;\n\n /**\n * URL of the `fx:payment_method_sets` collection.\n * @example https://api.foxy.io/stores/0/payment_method_sets\n */\n paymentMethodSetsUrl: string | null = null;\n\n /**\n * Base URL of the `fx:fraud_protection` resource (without ID).\n * @example https://api.foxy.io/fraud_protections/\n */\n fraudProtectionBaseUrl: string | null = null;\n\n /**\n * URL of the `fx:fraud_protections` collection.\n * @example https://api.foxy.io/stores/0/fraud_protections\n */\n fraudProtectionsUrl: string | null = null;\n\n /**\n * Base URL of the `fx:payment_gateway` resource (without ID).\n * @example https://api.foxy.io/payment_gateways/\n */\n paymentGatewayBaseUrl: string | null = null;\n\n /**\n * URL of the `fx:payment_gateways` collection.\n * @example https://api.foxy.io/stores/0/payment_gateways\n */\n paymentGatewaysUrl: string | null = null;\n\n private readonly __api = new API(this);\n\n private readonly __fetch = this.__api.fetch.bind(this.__api);\n\n private readonly __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n if (!evt.request.url.startsWith('https://foxy-payments-api.element/')) return;\n if (evt.defaultPrevented) return;\n\n const {\n paymentMethodSetHostedPaymentGatewaysUrl,\n paymentMethodSetHostedPaymentGatewayBaseUrl = paymentMethodSetHostedPaymentGatewaysUrl,\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n hostedPaymentGatewayBaseUrl = hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n paymentMethodSetBaseUrl = paymentMethodSetsUrl,\n fraudProtectionsUrl,\n fraudProtectionBaseUrl = fraudProtectionsUrl,\n paymentGatewaysUrl,\n paymentGatewayBaseUrl = paymentGatewaysUrl,\n } = this;\n\n if (paymentMethodSetHostedPaymentGatewaysUrl === null) return;\n if (paymentMethodSetHostedPaymentGatewayBaseUrl === null) return;\n if (hostedPaymentGatewaysHelperUrl === null) return;\n if (paymentGatewaysHelperUrl === null) return;\n if (hostedPaymentGatewaysUrl === null) return;\n if (hostedPaymentGatewayBaseUrl === null) return;\n if (paymentMethodSetsUrl === null) return;\n if (paymentMethodSetBaseUrl === null) return;\n if (fraudProtectionsUrl === null) return;\n if (fraudProtectionBaseUrl === null) return;\n if (paymentGatewaysUrl === null) return;\n if (paymentGatewayBaseUrl === null) return;\n\n const createGetter = (link: string) => (id: string) => {\n const url = new URL(link);\n if (!url.pathname.endsWith('/')) url.pathname += '/';\n url.pathname += id;\n return url.toString();\n };\n\n const handler = getHandler({\n hostedPaymentGatewaysHelperUrl,\n paymentGatewaysHelperUrl,\n hostedPaymentGatewaysUrl,\n paymentMethodSetsUrl,\n fraudProtectionsUrl,\n paymentGatewaysUrl,\n\n getPaymentMethodSetHostedPaymentGatewayUrl: createGetter(\n paymentMethodSetHostedPaymentGatewaysUrl\n ),\n\n getHostedPaymentGatewayUrl: createGetter(hostedPaymentGatewayBaseUrl),\n getPaymentMethodSetUrl: createGetter(paymentMethodSetBaseUrl),\n getFraudProtectionUrl: createGetter(fraudProtectionBaseUrl),\n getPaymentGatewayUrl: createGetter(paymentGatewayBaseUrl),\n\n request: evt.request,\n fetch: this.__fetch,\n });\n\n if (handler) {\n evt.preventDefault();\n evt.respondWith(handler);\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('fetch', this.__handleFetch);\n }\n\n createRenderRoot(): Element | ShadowRoot {\n return this;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('fetch', this.__handleFetch);\n }\n}\n"]}
@@ -92,7 +92,7 @@ export class TaxForm extends Base {
92
92
  }
93
93
  static get scopedElements() {
94
94
  return {
95
- 'vaadin-integer-field': customElements.get('vaadin-integer-field'),
95
+ 'vaadin-number-field': customElements.get('vaadin-number-field'),
96
96
  'vaadin-text-field': customElements.get('vaadin-text-field'),
97
97
  'vaadin-combo-box': customElements.get('vaadin-combo-box'),
98
98
  'vaadin-button': customElements.get('vaadin-button'),
@@ -513,14 +513,12 @@ export class TaxForm extends Base {
513
513
  <div>
514
514
  ${this.renderTemplateOrSlot('rate:before')}
515
515
 
516
- <vaadin-integer-field
516
+ <vaadin-number-field
517
517
  data-testid="rate"
518
518
  class="w-full"
519
519
  label=${this.t('tax_rate')}
520
520
  value=${ifDefined(this.form.rate)}
521
521
  min="0"
522
- prevent-invalid-input
523
- has-controls
524
522
  .checkValidity=${this.__getValidator('rate')}
525
523
  .errorMessage=${this.__getErrorMessage('rate')}
526
524
  ?disabled=${!this.in('idle') || this.disabledSelector.matches('rate', true)}
@@ -528,11 +526,12 @@ export class TaxForm extends Base {
528
526
  required
529
527
  @keydown=${this.__submitOnEnter}
530
528
  @change=${(evt) => {
531
- const newRate = parseInt(evt.currentTarget.value);
532
- this.edit({ rate: newRate });
529
+ const newRate = parseFloat(evt.currentTarget.value);
530
+ if (!isNaN(newRate))
531
+ this.edit({ rate: newRate });
533
532
  }}
534
533
  >
535
- </vaadin-integer-field>
534
+ </vaadin-number-field>
536
535
 
537
536
  ${this.renderTemplateOrSlot('rate:after')}
538
537
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"TaxForm.js","sourceRoot":"","sources":["../../../../src/elements/public/TaxForm/TaxForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Checkbox, Dropdown, PropertyTable } from '../../private/index';\nimport { CheckboxChangeEvent, DropdownChangeEvent } from '../../private/events';\nimport { Data, Templates } from './types';\nimport { Nucleon, Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { interpret } from 'xstate';\n\n// prettier-ignore\nconst defaultLiveRateCountries: (string | undefined)[] = ['US', 'CA', 'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IM', 'IT', 'LT', 'LU', 'LV', 'MC', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK'];\nconst taxJarLiveRateCountries = [...defaultLiveRateCountries, 'AU'];\n\nconst NS = 'tax-form';\nconst Base = ConfigurableMixin(\n ThemeableMixin(ScopedElementsMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Form element for creating or editing taxes (`fx:tax`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot type:before\n * @slot type:after\n *\n * @slot country:before\n * @slot country:after\n *\n * @slot region:before\n * @slot region:after\n *\n * @slot city:before\n * @slot city:after\n *\n * @slot provider:before\n * @slot provider:after\n *\n * @slot rate:before\n * @slot rate:after\n *\n * @slot apply-to-shipping:before\n * @slot apply-to-shipping:after\n *\n * @slot use-origin-rates:before\n * @slot use-origin-rates:after\n *\n * @slot exempt-all-customer-tax-ids:before\n * @slot exempt-all-customer-tax-ids:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-tax-form\n * @since 1.13.0\n */\nexport class TaxForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-integer-field': customElements.get('vaadin-integer-field'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-property-table': PropertyTable,\n 'x-checkbox': Checkbox,\n 'x-dropdown': Dropdown,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countries: { type: String, noAccessor: true },\n regions: { type: String, noAccessor: true },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ name: v }) => !v || v.length <= 30 || 'name_too_long',\n ({ country: c, type: t }) => t !== 'country' || !!c || 'country_required',\n ({ country: c, type: t }) => t !== 'region' || !!c || 'country_required',\n ({ country: c, use_origin_rates: r }) => !r || !!c || 'country_required',\n ({ country: v }) => !v || !!v.match(/[A-Z]{2}/) || 'country_invalid',\n ({ region: v, type: t }) => t != 'region' || !!v || 'region_required',\n ({ region: v }) => !v || v.length <= 20 || 'region_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city_too_long',\n ({ city: c, type: t }) => t != 'local' || !!c || 'city_required',\n ({ rate: v }) => !v || v <= 100 || 'rate_invalid',\n ];\n }\n\n templates: Templates = {};\n\n private __previousCountry: string | undefined = undefined;\n\n private __countries = '';\n\n private __regions = '';\n\n private __countriesService = interpret(\n Nucleon.machine.withConfig({\n services: {\n sendGet: async () => {\n const response = await new TaxForm.API(this).fetch(this.countries);\n if (!response.ok) throw new Error(await response.text());\n return await response.json();\n },\n },\n })\n );\n\n private __regionsService = interpret(\n Nucleon.machine.withConfig({\n services: {\n sendGet: async () => {\n const url = new URL(this.regions);\n url.searchParams.set('country_code', this.form.country ?? 'US');\n const response = await new TaxForm.API(this).fetch(url.toString());\n if (!response.ok) throw new Error(await response.text());\n return await response.json();\n },\n },\n })\n );\n\n /** URI of the `fx:countries` hAPI resource. */\n get countries(): string {\n return this.__countries;\n }\n\n set countries(value: string) {\n this.__countries = value;\n\n if (value) {\n this.__countriesService.send({ type: 'FETCH' });\n } else {\n this.__countriesService.send({ type: 'SET_DATA', data: null });\n }\n }\n\n /** URI of the `fx:regions` hAPI resource. */\n get regions(): string {\n return this.__regions;\n }\n\n set regions(value: string) {\n this.__regions = value;\n\n if (value) {\n this.__regionsService.send({ type: 'FETCH' });\n } else {\n this.__regionsService.send({ type: 'SET_DATA', data: null });\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.__countriesService.onTransition(({ changed }) => changed && this.requestUpdate());\n this.__countriesService.onChange(() => this.requestUpdate());\n this.__countriesService.start();\n\n this.__regionsService.onTransition(({ changed }) => changed && this.requestUpdate());\n this.__regionsService.onChange(() => this.requestUpdate());\n this.__regionsService.start();\n }\n\n render(): TemplateResult {\n return html`\n <div class=\"relative space-y-m\">\n ${this.__isNameHidden ? null : this.__renderName()}\n ${this.__isTypeHidden ? null : this.__renderType()}\n ${this.__isCountryHidden ? null : this.__renderCountry()}\n ${this.__isRegionHidden ? null : this.__renderRegion()}\n ${this.__isCityHidden ? null : this.__renderCity()}\n ${this.__isProviderHidden ? null : this.__renderProvider()}\n ${this.__isRateHidden ? null : this.__renderRate()}\n ${this.__isApplyToShippingHidden ? null : this.__renderApplyToShipping()}\n ${this.__isUseOriginRatesHidden ? null : this.__renderUseOriginRates()}\n ${this.__isExemptAllCustomerTaxIdsHidden ? null : this.__renderExemptAllCustomerTaxIds()}\n ${this.__isTimestampsHidden ? null : this.__renderTimestamps()}\n ${this.__isCreateHidden ? null : this.__renderCreate()}\n ${this.__isDeleteHidden ? null : this.__renderDelete()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': this.in('idle'),\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}\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 updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n if (this.form.country !== this.__previousCountry) {\n this.__previousCountry = this.form.country;\n this.__regionsService.send({ type: 'FETCH' });\n }\n\n // vaadin's combo box doesn't seem to validate on its own\n this.renderRoot.querySelectorAll('vaadin-combo-box').forEach(e => e.validate());\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__countriesService.stop();\n this.__regionsService.stop();\n }\n\n private get __isNameHidden(): boolean {\n return this.hiddenSelector.matches('name', true);\n }\n\n private get __isTypeHidden(): boolean {\n return this.hiddenSelector.matches('type', true);\n }\n\n private get __isCountryHidden(): boolean {\n if (this.hiddenSelector.matches('country', true)) return true;\n if (this.form.type === 'union') return !this.form.use_origin_rates;\n return !(['country', 'region', 'local'] as unknown[]).includes(this.form.type);\n }\n\n private get __isRegionHidden(): boolean {\n if (this.hiddenSelector.matches('region', true)) return true;\n return this.form.type !== 'local' && this.form.type !== 'region';\n }\n\n private get __isCityHidden(): boolean {\n if (this.hiddenSelector.matches('city', true)) return true;\n return this.form.type !== 'local';\n }\n\n private get __isProviderHidden(): boolean {\n if (this.hiddenSelector.matches('provider', true)) return true;\n return !this.form.type || this.form.type === 'global' || this.form.type === 'local';\n }\n\n private get __isRateHidden(): boolean {\n if (this.hiddenSelector.matches('rate', true)) return true;\n return !this.form.type || this.form.is_live === true;\n }\n\n private get __isApplyToShippingHidden(): boolean {\n if (this.hiddenSelector.matches('apply-to-shipping', true)) return true;\n if (this.form.type === undefined) return true;\n return !!this.form.is_live && defaultLiveRateCountries.includes(this.form.country);\n }\n\n private get __isUseOriginRatesHidden(): boolean {\n if (this.hiddenSelector.matches('use-origin-rates', true)) return true;\n return this.form.type !== 'union' || !this.form.is_live || !!this.form.service_provider;\n }\n\n private get __isExemptAllCustomerTaxIdsHidden(): boolean {\n if (this.hiddenSelector.matches('exempt-all-customer-tax-ids', true)) return true;\n const provider = this.form.service_provider as string | undefined;\n return provider === undefined || provider === 'onesource' || provider === 'avalara';\n }\n\n private get __isTimestampsHidden(): boolean {\n if (this.hiddenSelector.matches('timestamps', true)) return true;\n return !this.data;\n }\n\n private get __isCreateHidden(): boolean {\n if (this.hiddenSelector.matches('create', true)) return true;\n return !!this.data;\n }\n\n private get __isDeleteHidden(): boolean {\n if (this.hiddenSelector.matches('delete', true)) return true;\n return !this.data;\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __getValidator(prefix: string) {\n return () => !this.errors.some(err => err.startsWith(prefix));\n }\n\n private __renderName(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('name:before')}\n\n <vaadin-text-field\n data-testid=\"name\"\n class=\"w-full\"\n label=${this.t('name')}\n value=${ifDefined(this.form.name)}\n .checkValidity=${this.__getValidator('name')}\n .errorMessage=${this.__getErrorMessage('name')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('name', true)}\n ?readonly=${this.readonlySelector.matches('name', true)}\n required\n @keydown=${this.__submitOnEnter}\n @input=${(evt: CustomEvent) => {\n const newName = (evt.currentTarget as TextFieldElement).value;\n this.edit({ name: newName });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderType(): TemplateResult {\n if (!this.form.type) this.edit({ type: 'global' });\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('type:before')}\n\n <x-dropdown\n data-testid=\"type\"\n label=${this.t('type')}\n value=${ifDefined(this.form.type)}\n class=\"w-full\"\n .items=${['global', 'union', 'country', 'region', 'local']}\n .getText=${(value: string) => this.t(`tax_${value}`)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('type', true)}\n ?readonly=${this.readonlySelector.matches('type', true)}\n @change=${(evt: DropdownChangeEvent) => {\n this.edit({\n type: evt.detail as Data['type'],\n country: '',\n region: '',\n city: '',\n service_provider: '',\n apply_to_shipping: false,\n use_origin_rates: false,\n exempt_all_customer_tax_ids: false,\n is_live: false,\n rate: 0,\n });\n }}\n >\n </x-dropdown>\n\n ${this.renderTemplateOrSlot('type:after')}\n </div>\n `;\n }\n\n private __renderCountry(): TemplateResult {\n const isLoadingItems = this.__countriesService.state.matches('busy');\n const isLoadingData = this.in('busy');\n const isLoading = isLoadingItems || isLoadingData;\n const isFail = this.in('fail');\n const json = this.__countriesService.state.context.data as Resource<Rels.Countries> | null;\n const items = Object.values(json?.values ?? {});\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('country:before')}\n\n <vaadin-combo-box\n item-value-path=\"cc2\"\n item-label-path=\"default\"\n item-id-path=\"cc2\"\n data-testid=\"country\"\n label=\"${this.t('country')}${isLoadingItems ? ` • ${this.t('loading_busy')}` : ''}\"\n value=${ifDefined(isLoadingItems ? undefined : this.form.country)}\n class=\"w-full\"\n .checkValidity=${this.__getValidator('country')}\n .errorMessage=${this.__getErrorMessage('country')}\n .items=${items}\n ?allow-custom-value=${items.length === 0}\n ?disabled=${isFail || isLoading || this.disabledSelector.matches('country', true)}\n ?readonly=${this.readonlySelector.matches('country', true)}\n required\n @change=${(evt: CustomEvent) => {\n this.edit({\n country: (evt.currentTarget as ComboBoxElement).value,\n region: '',\n city: '',\n is_live: false,\n service_provider: '',\n });\n\n if (this.__isApplyToShippingHidden) this.edit({ apply_to_shipping: false });\n this.__regionsService.send({ type: 'FETCH' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('country:after')}\n </div>\n `;\n }\n\n private __renderRegion(): TemplateResult {\n const isLoadingItems = this.__regionsService.state.matches('busy');\n const isLoadingData = this.in('busy');\n const isLoading = isLoadingItems || isLoadingData;\n const isFail = this.in('fail');\n const json = this.__regionsService.state.context.data as Resource<Rels.Regions> | null;\n const items = Object.values(json?.values ?? {});\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('region:before')}\n\n <vaadin-combo-box\n item-value-path=\"code\"\n item-label-path=\"default\"\n item-id-path=\"code\"\n data-testid=\"region\"\n label=\"${this.t('region')}${isLoadingItems ? ` • ${this.t('loading_busy')}` : ''}\"\n value=${ifDefined(isLoadingItems ? undefined : this.form.region)}\n class=\"w-full\"\n .checkValidity=${this.__getValidator('region')}\n .errorMessage=${this.__getErrorMessage('region')}\n .items=${items}\n ?allow-custom-value=${items.length === 0}\n ?disabled=${isFail || isLoading || this.disabledSelector.matches('region', true)}\n ?readonly=${this.readonlySelector.matches('region', true)}\n required\n @change=${(evt: CustomEvent) => {\n const newRegion = (evt.currentTarget as ComboBoxElement).value;\n this.edit({ region: newRegion, city: '' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('region:after')}\n </div>\n `;\n }\n\n private __renderCity(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('city:before')}\n\n <vaadin-text-field\n data-testid=\"city\"\n class=\"w-full\"\n label=${this.t('city')}\n value=${ifDefined(this.form.city)}\n .checkValidity=${this.__getValidator('city')}\n .errorMessage=${this.__getErrorMessage('city')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('city', true)}\n ?readonly=${this.readonlySelector.matches('city', true)}\n required\n @keydown=${this.__submitOnEnter}\n @input=${(evt: CustomEvent) => {\n const newCity = (evt.currentTarget as TextFieldElement).value;\n this.edit({ city: newCity });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('city:after')}\n </div>\n `;\n }\n\n private __renderProvider(): TemplateResult {\n const items = [\n { label: this.t('tax_rate_provider_none'), value: 'none' },\n { label: 'Avalara AvaTax 15', value: 'avalara' },\n { label: 'Thomson Reuters ONESOURCE', value: 'onesource' },\n ];\n\n if (this.form.type === 'union' || defaultLiveRateCountries.includes(this.form.country)) {\n items.push({ label: this.t('tax_rate_provider_default'), value: 'default' });\n }\n\n if (taxJarLiveRateCountries.includes(this.form.country)) {\n items.push({ label: 'TaxJar', value: 'taxjar' });\n }\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('provider:before')}\n\n <x-dropdown\n data-testid=\"provider\"\n label=${this.t('tax_rate_provider')}\n value=${this.form.service_provider || (this.form.is_live ? 'default' : 'none')}\n class=\"w-full\"\n .items=${items.map(item => item.value)}\n .getText=${(value: string) => items.find(item => item.value === value)?.label}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('provider', true)}\n ?readonly=${this.readonlySelector.matches('provider', true)}\n @change=${(evt: DropdownChangeEvent) => {\n const newValue = evt.detail as string;\n const newProvider = ['none', 'default'].includes(newValue) ? '' : newValue;\n\n this.edit({\n service_provider: newProvider as Data['service_provider'],\n is_live: newValue !== 'none',\n });\n\n if (this.__isExemptAllCustomerTaxIdsHidden) {\n this.edit({ exempt_all_customer_tax_ids: false });\n }\n\n if (this.__isApplyToShippingHidden) this.edit({ apply_to_shipping: false });\n if (this.__isUseOriginRatesHidden) this.edit({ use_origin_rates: false });\n }}\n >\n </x-dropdown>\n\n ${this.renderTemplateOrSlot('provider:after')}\n </div>\n `;\n }\n\n private __renderRate(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('rate:before')}\n\n <vaadin-integer-field\n data-testid=\"rate\"\n class=\"w-full\"\n label=${this.t('tax_rate')}\n value=${ifDefined(this.form.rate)}\n min=\"0\"\n prevent-invalid-input\n has-controls\n .checkValidity=${this.__getValidator('rate')}\n .errorMessage=${this.__getErrorMessage('rate')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('rate', true)}\n ?readonly=${this.readonlySelector.matches('rate', true)}\n required\n @keydown=${this.__submitOnEnter}\n @change=${(evt: CustomEvent) => {\n const newRate = parseInt((evt.currentTarget as IntegerFieldElement).value);\n this.edit({ rate: newRate });\n }}\n >\n </vaadin-integer-field>\n\n ${this.renderTemplateOrSlot('rate:after')}\n </div>\n `;\n }\n\n private __renderApplyToShipping(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('apply-to-shipping:before')}\n\n <x-checkbox\n data-testid=\"apply-to-shipping\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('apply-to-shipping', true)}\n ?readonly=${this.readonlySelector.matches('apply-to-shipping', true)}\n ?checked=${!!this.form.apply_to_shipping}\n @change=${(evt: CheckboxChangeEvent) => this.edit({ apply_to_shipping: evt.detail })}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_apply_to_shipping\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_apply_to_shipping_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot('apply-to-shipping:after')}\n </div>\n `;\n }\n\n private __renderUseOriginRates(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('use-origin-rates:before')}\n\n <x-checkbox\n data-testid=\"use-origin-rates\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('use-origin-rates', true)}\n ?readonly=${this.readonlySelector.matches('use-origin-rates', true)}\n ?checked=${!!this.form.use_origin_rates}\n @change=${(evt: CheckboxChangeEvent) => this.edit({ use_origin_rates: evt.detail })}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_use_origin_rates\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_use_origin_rates_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot('use-origin-rates:after')}\n </div>\n `;\n }\n\n private __renderExemptAllCustomerTaxIds(): TemplateResult {\n const scope = 'exempt-all-customer-tax-ids';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <x-checkbox\n data-testid=\"${scope}\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(scope, true)}\n ?readonly=${this.readonlySelector.matches(scope, true)}\n ?checked=${!!this.form.exempt_all_customer_tax_ids}\n @change=${(evt: CheckboxChangeEvent) => {\n this.edit({ exempt_all_customer_tax_ids: evt.detail });\n }}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_exempt_all_customer_tax_ids\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_exempt_all_customer_tax_ids_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderTimestamps(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate(): TemplateResult {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isIdle = this.in('idle');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${!isIdle || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete(): TemplateResult {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n\n private __submitOnEnter(evt: KeyboardEvent) {\n if (evt.key === 'Enter') this.submit();\n }\n}\n"]}
1
+ {"version":3,"file":"TaxForm.js","sourceRoot":"","sources":["../../../../src/elements/public/TaxForm/TaxForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Checkbox, Dropdown, PropertyTable } from '../../private/index';\nimport { CheckboxChangeEvent, DropdownChangeEvent } from '../../private/events';\nimport { Data, Templates } from './types';\nimport { Nucleon, Resource } from '@foxy.io/sdk/core';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ButtonElement } from '@vaadin/vaadin-button';\nimport { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { PropertyDeclarations } from 'lit-element';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { interpret } from 'xstate';\n\n// prettier-ignore\nconst defaultLiveRateCountries: (string | undefined)[] = ['US', 'CA', 'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IM', 'IT', 'LT', 'LU', 'LV', 'MC', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK'];\nconst taxJarLiveRateCountries = [...defaultLiveRateCountries, 'AU'];\n\nconst NS = 'tax-form';\nconst Base = ConfigurableMixin(\n ThemeableMixin(ScopedElementsMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Form element for creating or editing taxes (`fx:tax`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot type:before\n * @slot type:after\n *\n * @slot country:before\n * @slot country:after\n *\n * @slot region:before\n * @slot region:after\n *\n * @slot city:before\n * @slot city:after\n *\n * @slot provider:before\n * @slot provider:after\n *\n * @slot rate:before\n * @slot rate:after\n *\n * @slot apply-to-shipping:before\n * @slot apply-to-shipping:after\n *\n * @slot use-origin-rates:before\n * @slot use-origin-rates:after\n *\n * @slot exempt-all-customer-tax-ids:before\n * @slot exempt-all-customer-tax-ids:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @element foxy-tax-form\n * @since 1.13.0\n */\nexport class TaxForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-number-field': customElements.get('vaadin-number-field'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-property-table': PropertyTable,\n 'x-checkbox': Checkbox,\n 'x-dropdown': Dropdown,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n countries: { type: String, noAccessor: true },\n regions: { type: String, noAccessor: true },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name_required',\n ({ name: v }) => !v || v.length <= 30 || 'name_too_long',\n ({ country: c, type: t }) => t !== 'country' || !!c || 'country_required',\n ({ country: c, type: t }) => t !== 'region' || !!c || 'country_required',\n ({ country: c, use_origin_rates: r }) => !r || !!c || 'country_required',\n ({ country: v }) => !v || !!v.match(/[A-Z]{2}/) || 'country_invalid',\n ({ region: v, type: t }) => t != 'region' || !!v || 'region_required',\n ({ region: v }) => !v || v.length <= 20 || 'region_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city_too_long',\n ({ city: c, type: t }) => t != 'local' || !!c || 'city_required',\n ({ rate: v }) => !v || v <= 100 || 'rate_invalid',\n ];\n }\n\n templates: Templates = {};\n\n private __previousCountry: string | undefined = undefined;\n\n private __countries = '';\n\n private __regions = '';\n\n private __countriesService = interpret(\n Nucleon.machine.withConfig({\n services: {\n sendGet: async () => {\n const response = await new TaxForm.API(this).fetch(this.countries);\n if (!response.ok) throw new Error(await response.text());\n return await response.json();\n },\n },\n })\n );\n\n private __regionsService = interpret(\n Nucleon.machine.withConfig({\n services: {\n sendGet: async () => {\n const url = new URL(this.regions);\n url.searchParams.set('country_code', this.form.country ?? 'US');\n const response = await new TaxForm.API(this).fetch(url.toString());\n if (!response.ok) throw new Error(await response.text());\n return await response.json();\n },\n },\n })\n );\n\n /** URI of the `fx:countries` hAPI resource. */\n get countries(): string {\n return this.__countries;\n }\n\n set countries(value: string) {\n this.__countries = value;\n\n if (value) {\n this.__countriesService.send({ type: 'FETCH' });\n } else {\n this.__countriesService.send({ type: 'SET_DATA', data: null });\n }\n }\n\n /** URI of the `fx:regions` hAPI resource. */\n get regions(): string {\n return this.__regions;\n }\n\n set regions(value: string) {\n this.__regions = value;\n\n if (value) {\n this.__regionsService.send({ type: 'FETCH' });\n } else {\n this.__regionsService.send({ type: 'SET_DATA', data: null });\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.__countriesService.onTransition(({ changed }) => changed && this.requestUpdate());\n this.__countriesService.onChange(() => this.requestUpdate());\n this.__countriesService.start();\n\n this.__regionsService.onTransition(({ changed }) => changed && this.requestUpdate());\n this.__regionsService.onChange(() => this.requestUpdate());\n this.__regionsService.start();\n }\n\n render(): TemplateResult {\n return html`\n <div class=\"relative space-y-m\">\n ${this.__isNameHidden ? null : this.__renderName()}\n ${this.__isTypeHidden ? null : this.__renderType()}\n ${this.__isCountryHidden ? null : this.__renderCountry()}\n ${this.__isRegionHidden ? null : this.__renderRegion()}\n ${this.__isCityHidden ? null : this.__renderCity()}\n ${this.__isProviderHidden ? null : this.__renderProvider()}\n ${this.__isRateHidden ? null : this.__renderRate()}\n ${this.__isApplyToShippingHidden ? null : this.__renderApplyToShipping()}\n ${this.__isUseOriginRatesHidden ? null : this.__renderUseOriginRates()}\n ${this.__isExemptAllCustomerTaxIdsHidden ? null : this.__renderExemptAllCustomerTaxIds()}\n ${this.__isTimestampsHidden ? null : this.__renderTimestamps()}\n ${this.__isCreateHidden ? null : this.__renderCreate()}\n ${this.__isDeleteHidden ? null : this.__renderDelete()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': this.in('idle'),\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${this.in('fail') ? 'error' : this.in('busy') ? 'busy' : 'empty'}\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 updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n if (this.form.country !== this.__previousCountry) {\n this.__previousCountry = this.form.country;\n this.__regionsService.send({ type: 'FETCH' });\n }\n\n // vaadin's combo box doesn't seem to validate on its own\n this.renderRoot.querySelectorAll('vaadin-combo-box').forEach(e => e.validate());\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__countriesService.stop();\n this.__regionsService.stop();\n }\n\n private get __isNameHidden(): boolean {\n return this.hiddenSelector.matches('name', true);\n }\n\n private get __isTypeHidden(): boolean {\n return this.hiddenSelector.matches('type', true);\n }\n\n private get __isCountryHidden(): boolean {\n if (this.hiddenSelector.matches('country', true)) return true;\n if (this.form.type === 'union') return !this.form.use_origin_rates;\n return !(['country', 'region', 'local'] as unknown[]).includes(this.form.type);\n }\n\n private get __isRegionHidden(): boolean {\n if (this.hiddenSelector.matches('region', true)) return true;\n return this.form.type !== 'local' && this.form.type !== 'region';\n }\n\n private get __isCityHidden(): boolean {\n if (this.hiddenSelector.matches('city', true)) return true;\n return this.form.type !== 'local';\n }\n\n private get __isProviderHidden(): boolean {\n if (this.hiddenSelector.matches('provider', true)) return true;\n return !this.form.type || this.form.type === 'global' || this.form.type === 'local';\n }\n\n private get __isRateHidden(): boolean {\n if (this.hiddenSelector.matches('rate', true)) return true;\n return !this.form.type || this.form.is_live === true;\n }\n\n private get __isApplyToShippingHidden(): boolean {\n if (this.hiddenSelector.matches('apply-to-shipping', true)) return true;\n if (this.form.type === undefined) return true;\n return !!this.form.is_live && defaultLiveRateCountries.includes(this.form.country);\n }\n\n private get __isUseOriginRatesHidden(): boolean {\n if (this.hiddenSelector.matches('use-origin-rates', true)) return true;\n return this.form.type !== 'union' || !this.form.is_live || !!this.form.service_provider;\n }\n\n private get __isExemptAllCustomerTaxIdsHidden(): boolean {\n if (this.hiddenSelector.matches('exempt-all-customer-tax-ids', true)) return true;\n const provider = this.form.service_provider as string | undefined;\n return provider === undefined || provider === 'onesource' || provider === 'avalara';\n }\n\n private get __isTimestampsHidden(): boolean {\n if (this.hiddenSelector.matches('timestamps', true)) return true;\n return !this.data;\n }\n\n private get __isCreateHidden(): boolean {\n if (this.hiddenSelector.matches('create', true)) return true;\n return !!this.data;\n }\n\n private get __isDeleteHidden(): boolean {\n if (this.hiddenSelector.matches('delete', true)) return true;\n return !this.data;\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __getValidator(prefix: string) {\n return () => !this.errors.some(err => err.startsWith(prefix));\n }\n\n private __renderName(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('name:before')}\n\n <vaadin-text-field\n data-testid=\"name\"\n class=\"w-full\"\n label=${this.t('name')}\n value=${ifDefined(this.form.name)}\n .checkValidity=${this.__getValidator('name')}\n .errorMessage=${this.__getErrorMessage('name')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('name', true)}\n ?readonly=${this.readonlySelector.matches('name', true)}\n required\n @keydown=${this.__submitOnEnter}\n @input=${(evt: CustomEvent) => {\n const newName = (evt.currentTarget as TextFieldElement).value;\n this.edit({ name: newName });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('name:after')}\n </div>\n `;\n }\n\n private __renderType(): TemplateResult {\n if (!this.form.type) this.edit({ type: 'global' });\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('type:before')}\n\n <x-dropdown\n data-testid=\"type\"\n label=${this.t('type')}\n value=${ifDefined(this.form.type)}\n class=\"w-full\"\n .items=${['global', 'union', 'country', 'region', 'local']}\n .getText=${(value: string) => this.t(`tax_${value}`)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('type', true)}\n ?readonly=${this.readonlySelector.matches('type', true)}\n @change=${(evt: DropdownChangeEvent) => {\n this.edit({\n type: evt.detail as Data['type'],\n country: '',\n region: '',\n city: '',\n service_provider: '',\n apply_to_shipping: false,\n use_origin_rates: false,\n exempt_all_customer_tax_ids: false,\n is_live: false,\n rate: 0,\n });\n }}\n >\n </x-dropdown>\n\n ${this.renderTemplateOrSlot('type:after')}\n </div>\n `;\n }\n\n private __renderCountry(): TemplateResult {\n const isLoadingItems = this.__countriesService.state.matches('busy');\n const isLoadingData = this.in('busy');\n const isLoading = isLoadingItems || isLoadingData;\n const isFail = this.in('fail');\n const json = this.__countriesService.state.context.data as Resource<Rels.Countries> | null;\n const items = Object.values(json?.values ?? {});\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('country:before')}\n\n <vaadin-combo-box\n item-value-path=\"cc2\"\n item-label-path=\"default\"\n item-id-path=\"cc2\"\n data-testid=\"country\"\n label=\"${this.t('country')}${isLoadingItems ? ` • ${this.t('loading_busy')}` : ''}\"\n value=${ifDefined(isLoadingItems ? undefined : this.form.country)}\n class=\"w-full\"\n .checkValidity=${this.__getValidator('country')}\n .errorMessage=${this.__getErrorMessage('country')}\n .items=${items}\n ?allow-custom-value=${items.length === 0}\n ?disabled=${isFail || isLoading || this.disabledSelector.matches('country', true)}\n ?readonly=${this.readonlySelector.matches('country', true)}\n required\n @change=${(evt: CustomEvent) => {\n this.edit({\n country: (evt.currentTarget as ComboBoxElement).value,\n region: '',\n city: '',\n is_live: false,\n service_provider: '',\n });\n\n if (this.__isApplyToShippingHidden) this.edit({ apply_to_shipping: false });\n this.__regionsService.send({ type: 'FETCH' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('country:after')}\n </div>\n `;\n }\n\n private __renderRegion(): TemplateResult {\n const isLoadingItems = this.__regionsService.state.matches('busy');\n const isLoadingData = this.in('busy');\n const isLoading = isLoadingItems || isLoadingData;\n const isFail = this.in('fail');\n const json = this.__regionsService.state.context.data as Resource<Rels.Regions> | null;\n const items = Object.values(json?.values ?? {});\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('region:before')}\n\n <vaadin-combo-box\n item-value-path=\"code\"\n item-label-path=\"default\"\n item-id-path=\"code\"\n data-testid=\"region\"\n label=\"${this.t('region')}${isLoadingItems ? ` • ${this.t('loading_busy')}` : ''}\"\n value=${ifDefined(isLoadingItems ? undefined : this.form.region)}\n class=\"w-full\"\n .checkValidity=${this.__getValidator('region')}\n .errorMessage=${this.__getErrorMessage('region')}\n .items=${items}\n ?allow-custom-value=${items.length === 0}\n ?disabled=${isFail || isLoading || this.disabledSelector.matches('region', true)}\n ?readonly=${this.readonlySelector.matches('region', true)}\n required\n @change=${(evt: CustomEvent) => {\n const newRegion = (evt.currentTarget as ComboBoxElement).value;\n this.edit({ region: newRegion, city: '' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot('region:after')}\n </div>\n `;\n }\n\n private __renderCity(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('city:before')}\n\n <vaadin-text-field\n data-testid=\"city\"\n class=\"w-full\"\n label=${this.t('city')}\n value=${ifDefined(this.form.city)}\n .checkValidity=${this.__getValidator('city')}\n .errorMessage=${this.__getErrorMessage('city')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('city', true)}\n ?readonly=${this.readonlySelector.matches('city', true)}\n required\n @keydown=${this.__submitOnEnter}\n @input=${(evt: CustomEvent) => {\n const newCity = (evt.currentTarget as TextFieldElement).value;\n this.edit({ city: newCity });\n }}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot('city:after')}\n </div>\n `;\n }\n\n private __renderProvider(): TemplateResult {\n const items = [\n { label: this.t('tax_rate_provider_none'), value: 'none' },\n { label: 'Avalara AvaTax 15', value: 'avalara' },\n { label: 'Thomson Reuters ONESOURCE', value: 'onesource' },\n ];\n\n if (this.form.type === 'union' || defaultLiveRateCountries.includes(this.form.country)) {\n items.push({ label: this.t('tax_rate_provider_default'), value: 'default' });\n }\n\n if (taxJarLiveRateCountries.includes(this.form.country)) {\n items.push({ label: 'TaxJar', value: 'taxjar' });\n }\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('provider:before')}\n\n <x-dropdown\n data-testid=\"provider\"\n label=${this.t('tax_rate_provider')}\n value=${this.form.service_provider || (this.form.is_live ? 'default' : 'none')}\n class=\"w-full\"\n .items=${items.map(item => item.value)}\n .getText=${(value: string) => items.find(item => item.value === value)?.label}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('provider', true)}\n ?readonly=${this.readonlySelector.matches('provider', true)}\n @change=${(evt: DropdownChangeEvent) => {\n const newValue = evt.detail as string;\n const newProvider = ['none', 'default'].includes(newValue) ? '' : newValue;\n\n this.edit({\n service_provider: newProvider as Data['service_provider'],\n is_live: newValue !== 'none',\n });\n\n if (this.__isExemptAllCustomerTaxIdsHidden) {\n this.edit({ exempt_all_customer_tax_ids: false });\n }\n\n if (this.__isApplyToShippingHidden) this.edit({ apply_to_shipping: false });\n if (this.__isUseOriginRatesHidden) this.edit({ use_origin_rates: false });\n }}\n >\n </x-dropdown>\n\n ${this.renderTemplateOrSlot('provider:after')}\n </div>\n `;\n }\n\n private __renderRate(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('rate:before')}\n\n <vaadin-number-field\n data-testid=\"rate\"\n class=\"w-full\"\n label=${this.t('tax_rate')}\n value=${ifDefined(this.form.rate)}\n min=\"0\"\n .checkValidity=${this.__getValidator('rate')}\n .errorMessage=${this.__getErrorMessage('rate')}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('rate', true)}\n ?readonly=${this.readonlySelector.matches('rate', true)}\n required\n @keydown=${this.__submitOnEnter}\n @change=${(evt: CustomEvent) => {\n const newRate = parseFloat((evt.currentTarget as IntegerFieldElement).value);\n if (!isNaN(newRate)) this.edit({ rate: newRate });\n }}\n >\n </vaadin-number-field>\n\n ${this.renderTemplateOrSlot('rate:after')}\n </div>\n `;\n }\n\n private __renderApplyToShipping(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('apply-to-shipping:before')}\n\n <x-checkbox\n data-testid=\"apply-to-shipping\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('apply-to-shipping', true)}\n ?readonly=${this.readonlySelector.matches('apply-to-shipping', true)}\n ?checked=${!!this.form.apply_to_shipping}\n @change=${(evt: CheckboxChangeEvent) => this.edit({ apply_to_shipping: evt.detail })}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_apply_to_shipping\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_apply_to_shipping_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot('apply-to-shipping:after')}\n </div>\n `;\n }\n\n private __renderUseOriginRates(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('use-origin-rates:before')}\n\n <x-checkbox\n data-testid=\"use-origin-rates\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('use-origin-rates', true)}\n ?readonly=${this.readonlySelector.matches('use-origin-rates', true)}\n ?checked=${!!this.form.use_origin_rates}\n @change=${(evt: CheckboxChangeEvent) => this.edit({ use_origin_rates: evt.detail })}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_use_origin_rates\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_use_origin_rates_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot('use-origin-rates:after')}\n </div>\n `;\n }\n\n private __renderExemptAllCustomerTaxIds(): TemplateResult {\n const scope = 'exempt-all-customer-tax-ids';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${scope}:before`)}\n\n <x-checkbox\n data-testid=\"${scope}\"\n class=\"leading-s\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(scope, true)}\n ?readonly=${this.readonlySelector.matches(scope, true)}\n ?checked=${!!this.form.exempt_all_customer_tax_ids}\n @change=${(evt: CheckboxChangeEvent) => {\n this.edit({ exempt_all_customer_tax_ids: evt.detail });\n }}\n >\n <foxy-i18n\n class=\"block text-m text-body\"\n lang=${this.lang}\n key=\"tax_exempt_all_customer_tax_ids\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n class=\"block text-s text-secondary\"\n lang=${this.lang}\n key=\"tax_exempt_all_customer_tax_ids_explainer\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </x-checkbox>\n\n ${this.renderTemplateOrSlot(`${scope}:after`)}\n </div>\n `;\n }\n\n private __renderTimestamps(): TemplateResult {\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n\n <x-property-table\n data-testid=\"timestamps\"\n .items=${(['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }))}\n >\n </x-property-table>\n\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n }\n\n private __renderCreate(): TemplateResult {\n const isCleanTemplateInvalid = this.in({ idle: { template: { clean: 'invalid' } } });\n const isDirtyTemplateInvalid = this.in({ idle: { template: { dirty: 'invalid' } } });\n const isCleanSnapshotInvalid = this.in({ idle: { snapshot: { clean: 'invalid' } } });\n const isDirtySnapshotInvalid = this.in({ idle: { snapshot: { dirty: 'invalid' } } });\n const isTemplateInvalid = isCleanTemplateInvalid || isDirtyTemplateInvalid;\n const isSnaphotInvalid = isCleanSnapshotInvalid || isDirtySnapshotInvalid;\n const isInvalid = isTemplateInvalid || isSnaphotInvalid;\n const isIdle = this.in('idle');\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('create:before')}\n\n <vaadin-button\n data-testid=\"create\"\n class=\"w-full\"\n theme=\"primary success\"\n ?disabled=${!isIdle || isInvalid || this.disabledSelector.matches('create', true)}\n @click=${this.submit}\n >\n <foxy-i18n ns=${this.ns} key=\"create\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('create:after')}\n </div>\n `;\n }\n\n private __renderDelete(): TemplateResult {\n return html`\n <div>\n <foxy-internal-confirm-dialog\n data-testid=\"confirm\"\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && this.delete()}\n >\n </foxy-internal-confirm-dialog>\n\n ${this.renderTemplateOrSlot('delete:before')}\n\n <vaadin-button\n data-testid=\"delete\"\n theme=\"error\"\n class=\"w-full\"\n ?disabled=${!this.in('idle') || this.disabledSelector.matches('delete', true)}\n @click=${(evt: CustomEvent) => {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show(evt.currentTarget as ButtonElement);\n }}\n >\n <foxy-i18n ns=${this.ns} key=\"delete\" lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('delete:after')}\n </div>\n `;\n }\n\n private __submitOnEnter(evt: KeyboardEvent) {\n if (evt.key === 'Enter') this.submit();\n }\n}\n"]}
@@ -2,7 +2,7 @@ import '../../internal/InternalConfirmDialog/index';
2
2
  import '../../internal/InternalSandbox/index';
3
3
  import '../Spinner/index';
4
4
  import '../I18n/index';
5
- import '@vaadin/vaadin-text-field/vaadin-integer-field';
5
+ import '@vaadin/vaadin-text-field/vaadin-number-field';
6
6
  import '@vaadin/vaadin-text-field/vaadin-text-field';
7
7
  import '@vaadin/vaadin-combo-box';
8
8
  import '@vaadin/vaadin-button';