@foxy.io/elements 1.32.0-beta.7 → 1.33.0-beta.1

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 (268) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  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-admin-subscription-form.js +1 -1
  6. package/dist/cdn/foxy-api-browser.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  8. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-card.js +1 -1
  11. package/dist/cdn/foxy-attribute-form.js +1 -1
  12. package/dist/cdn/foxy-billing-address-card.js +1 -1
  13. package/dist/cdn/foxy-cancellation-form.js +1 -1
  14. package/dist/cdn/foxy-cart-card.js +1 -1
  15. package/dist/cdn/foxy-cart-form.js +2 -2
  16. package/dist/cdn/foxy-client-card.js +1 -1
  17. package/dist/cdn/foxy-client-form.js +1 -1
  18. package/dist/cdn/foxy-collection-page.js +1 -1
  19. package/dist/cdn/foxy-collection-pages.js +1 -1
  20. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  21. package/dist/cdn/foxy-coupon-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  25. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  26. package/dist/cdn/foxy-coupon-form.js +1 -1
  27. package/dist/cdn/foxy-custom-field-card.js +1 -1
  28. package/dist/cdn/foxy-custom-field-form.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +8 -8
  34. package/dist/cdn/foxy-customer.js +1 -1
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +1 -1
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +3 -3
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +1 -1
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-pagination.js +1 -1
  69. package/dist/cdn/foxy-passkey-card.js +1 -1
  70. package/dist/cdn/foxy-passkey-form.js +1 -1
  71. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  72. package/dist/cdn/foxy-payment-card.js +1 -1
  73. package/dist/cdn/foxy-payment-method-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  76. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  80. package/dist/cdn/foxy-query-builder.js +1 -1
  81. package/dist/cdn/foxy-report-form.js +1 -1
  82. package/dist/cdn/foxy-reports-table.js +1 -1
  83. package/dist/cdn/foxy-shipment-card.js +1 -1
  84. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  88. package/dist/cdn/foxy-sign-in-form.js +1 -1
  89. package/dist/cdn/foxy-spinner.js +2 -2
  90. package/dist/cdn/foxy-store-card.js +1 -1
  91. package/dist/cdn/foxy-store-form.js +1 -1
  92. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  93. package/dist/cdn/foxy-subscription-card.js +1 -1
  94. package/dist/cdn/foxy-subscription-form.js +1 -1
  95. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  96. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  97. package/dist/cdn/foxy-table.js +1 -1
  98. package/dist/cdn/foxy-tax-card.js +1 -1
  99. package/dist/cdn/foxy-tax-form.js +1 -1
  100. package/dist/cdn/foxy-template-config-form.js +1 -1
  101. package/dist/cdn/foxy-template-form.js +1 -1
  102. package/dist/cdn/foxy-template-set-card.js +1 -1
  103. package/dist/cdn/foxy-template-set-form.js +1 -1
  104. package/dist/cdn/foxy-transaction-card.js +1 -1
  105. package/dist/cdn/foxy-transaction.js +1 -1
  106. package/dist/cdn/foxy-transactions-table.js +7 -7
  107. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  108. package/dist/cdn/foxy-user-card.js +1 -1
  109. package/dist/cdn/foxy-user-form.js +1 -1
  110. package/dist/cdn/foxy-user-invitation-card.js +1 -1
  111. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  112. package/dist/cdn/foxy-users-table.js +1 -1
  113. package/dist/cdn/foxy-webhook-card.js +1 -1
  114. package/dist/cdn/foxy-webhook-form.js +1 -1
  115. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  116. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  117. package/dist/cdn/{shared-e23f134b.js → shared-01cbaba9.js} +1 -1
  118. package/dist/cdn/shared-0203d3da.js +1 -0
  119. package/dist/cdn/{shared-d99621f5.js → shared-08be5c32.js} +1 -1
  120. package/dist/cdn/{shared-86535307.js → shared-0b4a62e9.js} +1 -1
  121. package/dist/cdn/{shared-b8983324.js → shared-0d43de87.js} +1 -1
  122. package/dist/cdn/shared-0e83a899.js +1 -0
  123. package/dist/cdn/{shared-0905537a.js → shared-0f4472d2.js} +1 -1
  124. package/dist/cdn/{shared-55b38934.js → shared-1024aa20.js} +1 -1
  125. package/dist/cdn/{shared-9f160fc4.js → shared-1220bf7d.js} +1 -1
  126. package/dist/cdn/shared-14179b23.js +1 -0
  127. package/dist/cdn/{shared-b211a5c1.js → shared-14bf37ae.js} +1 -1
  128. package/dist/cdn/{shared-d01bb075.js → shared-2dd497e5.js} +1 -1
  129. package/dist/cdn/{shared-9fbbe836.js → shared-30cc688f.js} +1 -1
  130. package/dist/cdn/{shared-bf34ec93.js → shared-317cb721.js} +1 -1
  131. package/dist/cdn/{shared-37d8eb8c.js → shared-3493737e.js} +1 -1
  132. package/dist/cdn/{shared-4358f1b1.js → shared-359793d4.js} +1 -1
  133. package/dist/cdn/{shared-83dd443e.js → shared-377e3168.js} +1 -1
  134. package/dist/cdn/{shared-e23ba6a5.js → shared-3a7db771.js} +1 -1
  135. package/dist/cdn/{shared-19520c9d.js → shared-3bfbd5af.js} +1 -1
  136. package/dist/cdn/{shared-315b7e61.js → shared-3ca58fb9.js} +1 -1
  137. package/dist/cdn/{shared-36a1e2b9.js → shared-455856d9.js} +2 -2
  138. package/dist/cdn/{shared-6636a5bf.js → shared-4b4c8ccf.js} +1 -1
  139. package/dist/cdn/{shared-cfa5d8f6.js → shared-4b52b410.js} +1 -1
  140. package/dist/cdn/{shared-9ecba892.js → shared-4beb6fef.js} +1 -1
  141. package/dist/cdn/{shared-a6e35e24.js → shared-4f852fd5.js} +1 -1
  142. package/dist/cdn/{shared-438ba90a.js → shared-51efaf53.js} +1 -1
  143. package/dist/cdn/shared-529f2b48.js +2 -0
  144. package/dist/cdn/{shared-17c503b1.js → shared-53443b27.js} +1 -1
  145. package/dist/cdn/{shared-2da66878.js → shared-5452fdfe.js} +1 -1
  146. package/dist/cdn/shared-54d7dfdb.js +1 -0
  147. package/dist/cdn/{shared-450227d6.js → shared-57164953.js} +1 -1
  148. package/dist/cdn/{shared-d9e5dcd8.js → shared-68f01c8d.js} +1 -1
  149. package/dist/cdn/{shared-f6dbf1f9.js → shared-6a8ccf0c.js} +1 -1
  150. package/dist/cdn/{shared-7bd9ac17.js → shared-6be8e65e.js} +1 -1
  151. package/dist/cdn/{shared-d65e8cc0.js → shared-6d7c1a2f.js} +2 -2
  152. package/dist/cdn/{shared-81dce3af.js → shared-7448fda4.js} +1 -1
  153. package/dist/cdn/{shared-ea538020.js → shared-78bfc71e.js} +1 -1
  154. package/dist/cdn/{shared-5508fdff.js → shared-81bf4ca2.js} +1 -1
  155. package/dist/cdn/{shared-9353023e.js → shared-838bd79c.js} +1 -1
  156. package/dist/cdn/{shared-20f8e346.js → shared-91321de3.js} +1 -1
  157. package/dist/cdn/{shared-6acd8127.js → shared-91500a0f.js} +1 -1
  158. package/dist/cdn/{shared-300253d2.js → shared-935adc3b.js} +1 -1
  159. package/dist/cdn/{shared-4631ca6a.js → shared-97627d50.js} +1 -1
  160. package/dist/cdn/{shared-55cad23d.js → shared-9b1b4c9d.js} +1 -1
  161. package/dist/cdn/{shared-c1ef5741.js → shared-a84befbf.js} +1 -1
  162. package/dist/cdn/{shared-4e5a4514.js → shared-ad3eea80.js} +1 -1
  163. package/dist/cdn/{shared-bafbd5de.js → shared-b14bf56d.js} +1 -1
  164. package/dist/cdn/{shared-768e7a47.js → shared-b2bc3a0e.js} +2 -2
  165. package/dist/cdn/{shared-a08d2529.js → shared-b384e653.js} +1 -1
  166. package/dist/cdn/{shared-5dc12ee6.js → shared-b3d36746.js} +1 -1
  167. package/dist/cdn/{shared-9a996ad7.js → shared-b7dc7e64.js} +5 -5
  168. package/dist/cdn/{shared-84a1b7ce.js → shared-bb9f0d8b.js} +1 -1
  169. package/dist/cdn/{shared-f5d4d7f4.js → shared-bbc53ef2.js} +1 -1
  170. package/dist/cdn/{shared-2b41da9e.js → shared-bdcf2d35.js} +1 -1
  171. package/dist/cdn/{shared-196a767a.js → shared-c24bc616.js} +1 -1
  172. package/dist/cdn/{shared-f3c77c1b.js → shared-c671d5c7.js} +1 -1
  173. package/dist/cdn/{shared-43a7fb95.js → shared-c86db2c0.js} +1 -1
  174. package/dist/cdn/{shared-c01f7219.js → shared-cacd4407.js} +1 -1
  175. package/dist/cdn/{shared-38dbd459.js → shared-ceafb6c3.js} +1 -1
  176. package/dist/cdn/{shared-04d5b361.js → shared-d6985b5f.js} +1 -1
  177. package/dist/cdn/{shared-b1798b31.js → shared-dbe8536b.js} +1 -1
  178. package/dist/cdn/{shared-8a54284b.js → shared-e0c93cfa.js} +1 -1
  179. package/dist/cdn/{shared-1c2aeca6.js → shared-e1dea184.js} +1 -1
  180. package/dist/cdn/{shared-85b3cc6a.js → shared-e231722c.js} +1 -1
  181. package/dist/cdn/{shared-334c421b.js → shared-e39760d5.js} +1 -1
  182. package/dist/cdn/{shared-efaf6205.js → shared-eecba1f5.js} +1 -1
  183. package/dist/cdn/{shared-1faa9f13.js → shared-f09454f9.js} +1 -1
  184. package/dist/cdn/{shared-2a819863.js → shared-fd1adc35.js} +1 -1
  185. package/dist/cdn/translations/admin-subscription-form/en.json +28 -20
  186. package/dist/cdn/translations/cart-form/en.json +28 -20
  187. package/dist/cdn/translations/coupon-code-form/en.json +11 -7
  188. package/dist/cdn/translations/coupon-form/en.json +11 -7
  189. package/dist/cdn/translations/email-template-form/en.json +99 -27
  190. package/dist/cdn/translations/gift-card-form/en.json +208 -201
  191. package/dist/cdn/translations/item-category-form/en.json +1 -1
  192. package/dist/cdn/translations/item-form/en.json +28 -20
  193. package/dist/cdn/translations/item-option-form/en.json +28 -20
  194. package/dist/cdn/translations/store-form/en.json +1 -1
  195. package/dist/cdn/translations/subscription-settings-form/en.json +6 -6
  196. package/dist/cdn/translations/template-form/en.json +67 -19
  197. package/dist/cdn/translations/transaction/en.json +28 -20
  198. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.d.ts +1 -2
  199. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +0 -3
  200. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -1
  201. package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js +6 -26
  202. package/dist/elements/internal/InternalSourceControl/InternalSourceControl.js.map +1 -1
  203. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +1 -1
  204. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -1
  205. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js +0 -1
  206. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js.map +1 -1
  207. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +4 -1
  208. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
  209. package/dist/elements/public/CouponCodeForm/index.d.ts +1 -0
  210. package/dist/elements/public/CouponCodeForm/index.js +1 -0
  211. package/dist/elements/public/CouponCodeForm/index.js.map +1 -1
  212. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.d.ts +12 -20
  213. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +100 -333
  214. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
  215. package/dist/elements/public/EmailTemplateForm/index.d.ts +5 -7
  216. package/dist/elements/public/EmailTemplateForm/index.js +5 -7
  217. package/dist/elements/public/EmailTemplateForm/index.js.map +1 -1
  218. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.d.ts +10 -0
  219. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.js +49 -0
  220. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.js.map +1 -0
  221. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.d.ts +5 -0
  222. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.js +7 -0
  223. package/dist/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.js.map +1 -0
  224. package/dist/elements/public/EmailTemplateForm/types.d.ts +3 -1
  225. package/dist/elements/public/EmailTemplateForm/types.js.map +1 -1
  226. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +6 -0
  227. package/dist/elements/public/GiftCardForm/GiftCardForm.js +100 -14
  228. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  229. package/dist/elements/public/GiftCardForm/index.d.ts +3 -1
  230. package/dist/elements/public/GiftCardForm/index.js +3 -1
  231. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  232. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +12 -6
  233. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -1
  234. package/dist/elements/public/ItemOptionForm/index.d.ts +1 -0
  235. package/dist/elements/public/ItemOptionForm/index.js +1 -0
  236. package/dist/elements/public/ItemOptionForm/index.js.map +1 -1
  237. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js +6 -6
  238. package/dist/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.js.map +1 -1
  239. package/dist/elements/public/TemplateForm/TemplateForm.d.ts +10 -18
  240. package/dist/elements/public/TemplateForm/TemplateForm.js +54 -305
  241. package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
  242. package/dist/elements/public/TemplateForm/index.d.ts +4 -6
  243. package/dist/elements/public/TemplateForm/index.js +4 -6
  244. package/dist/elements/public/TemplateForm/index.js.map +1 -1
  245. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.d.ts +10 -0
  246. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.js +49 -0
  247. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/InternalTemplateFormAsyncAction.js.map +1 -0
  248. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.d.ts +5 -0
  249. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.js +7 -0
  250. package/dist/elements/public/TemplateForm/internal/InternalTemplateFormAsyncAction/index.js.map +1 -0
  251. package/dist/elements/public/Transaction/Transaction.js +19 -24
  252. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  253. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +3 -5
  254. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -1
  255. package/dist/mixins/themeable.js +0 -16
  256. package/dist/mixins/themeable.js.map +1 -1
  257. package/package.json +1 -1
  258. package/dist/cdn/shared-4784c497.js +0 -1
  259. package/dist/cdn/shared-69015a94.js +0 -1
  260. package/dist/cdn/shared-82c14038.js +0 -1
  261. package/dist/cdn/shared-dc2f3f55.js +0 -2
  262. package/dist/cdn/shared-fb3366b1.js +0 -1
  263. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.d.ts +0 -14
  264. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js +0 -94
  265. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/InternalGiftCardFormProvisioningControl.js.map +0 -1
  266. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.d.ts +0 -6
  267. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js +0 -8
  268. package/dist/elements/public/GiftCardForm/internal/InternalGiftCardFormProvisioningControl/index.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { NucleonElement } from "../../../NucleonElement/NucleonElement.js";
3
+ import { html } from 'lit-element';
4
+ export class InternalEmailTemplateFormAsyncAction extends InternalControl {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.theme = null;
8
+ this.href = null;
9
+ this.__state = 'idle';
10
+ }
11
+ static get properties() {
12
+ return {
13
+ ...super.properties,
14
+ __state: { type: String },
15
+ theme: { type: String },
16
+ href: { type: String },
17
+ };
18
+ }
19
+ renderControl() {
20
+ const state = this.__state;
21
+ const theme = state === 'fail' ? 'error' : state === 'idle' ? '' : '';
22
+ return html `
23
+ <vaadin-button
24
+ theme=${`${this.theme} ${theme !== null && theme !== void 0 ? theme : ''}`.trim()}
25
+ ?disabled=${state === 'busy' || this.disabled}
26
+ @click=${this.__submit}
27
+ >
28
+ <foxy-i18n key=${state} infer=""></foxy-i18n>
29
+ </vaadin-button>
30
+ `;
31
+ }
32
+ async __submit() {
33
+ var _a, _b;
34
+ if (this.__state === 'busy')
35
+ return;
36
+ try {
37
+ this.__state = 'busy';
38
+ const api = new NucleonElement.API(this);
39
+ const response = await api.fetch((_a = this.href) !== null && _a !== void 0 ? _a : '', { method: 'POST' });
40
+ this.__state = response.ok ? 'idle' : 'fail';
41
+ if (response.ok)
42
+ (_b = this.nucleon) === null || _b === void 0 ? void 0 : _b.refresh();
43
+ }
44
+ catch (_c) {
45
+ this.__state = 'fail';
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=InternalEmailTemplateFormAsyncAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalEmailTemplateFormAsyncAction.js","sourceRoot":"","sources":["../../../../../../src/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/InternalEmailTemplateFormAsyncAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,cAAc,EAAE,kDAA+C;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,OAAO,oCAAqC,SAAQ,eAAe;IAAzE;;QAUE,UAAK,GAAkB,IAAI,CAAC;QAE5B,SAAI,GAAkB,IAAI,CAAC;QAEnB,YAAO,GAAG,MAAM,CAAC;IAgC3B,CAAC;IA7CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,OAAO,IAAI,CAAA;;gBAEC,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,CAAC,IAAI,EAAE;oBACjC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ;iBACpC,IAAI,CAAC,QAAQ;;yBAEL,KAAK;;KAEzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEpC,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,OAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,QAAQ,CAAC,EAAE;gBAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,GAAG;SAC1C;QAAC,WAAM;YACN,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;IACH,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { html } from 'lit-element';\n\nexport class InternalEmailTemplateFormAsyncAction extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __state: { type: String },\n theme: { type: String },\n href: { type: String },\n };\n }\n\n theme: string | null = null;\n\n href: string | null = null;\n\n private __state = 'idle';\n\n renderControl(): TemplateResult {\n const state = this.__state;\n const theme = state === 'fail' ? 'error' : state === 'idle' ? '' : '';\n\n return html`\n <vaadin-button\n theme=${`${this.theme} ${theme ?? ''}`.trim()}\n ?disabled=${state === 'busy' || this.disabled}\n @click=${this.__submit}\n >\n <foxy-i18n key=${state} infer=\"\"></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private async __submit(): Promise<void> {\n if (this.__state === 'busy') return;\n\n try {\n this.__state = 'busy';\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.href ?? '', { method: 'POST' });\n\n this.__state = response.ok ? 'idle' : 'fail';\n if (response.ok) this.nucleon?.refresh();\n } catch {\n this.__state = 'fail';\n }\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import '@vaadin/vaadin-button';
2
+ import '../../../../internal/InternalControl/index';
3
+ import '../../../I18n/index';
4
+ import { InternalEmailTemplateFormAsyncAction as Control } from './InternalEmailTemplateFormAsyncAction';
5
+ export { Control as InternalEmailTemplateFormAsyncAction };
@@ -0,0 +1,7 @@
1
+ import '@vaadin/vaadin-button';
2
+ import "../../../../internal/InternalControl/index.js";
3
+ import "../../../I18n/index.js";
4
+ import { InternalEmailTemplateFormAsyncAction as Control } from "./InternalEmailTemplateFormAsyncAction.js";
5
+ customElements.define('foxy-internal-email-template-form-async-action', Control);
6
+ export { Control as InternalEmailTemplateFormAsyncAction };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/EmailTemplateForm/internal/InternalEmailTemplateFormAsyncAction/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,uDAAoD;AACpD,gCAA6B;AAE7B,OAAO,EAAE,oCAAoC,IAAI,OAAO,EAAE,kDAA+C;AAEzG,cAAc,CAAC,MAAM,CAAC,gDAAgD,EAAE,OAAO,CAAC,CAAC;AAEjF,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\nimport '../../../../internal/InternalControl/index';\nimport '../../../I18n/index';\n\nimport { InternalEmailTemplateFormAsyncAction as Control } from './InternalEmailTemplateFormAsyncAction';\n\ncustomElements.define('foxy-internal-email-template-form-async-action', Control);\n\nexport { Control as InternalEmailTemplateFormAsyncAction };\n"]}
@@ -1,3 +1,5 @@
1
1
  import type { Resource } from '@foxy.io/sdk/core';
2
2
  import type { Rels } from '@foxy.io/sdk/backend';
3
- export declare type Data = Resource<Rels.EmailTemplate>;
3
+ export declare type Data = Resource<Rels.EmailTemplate> & {
4
+ subject: string;
5
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/EmailTemplateForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nexport type Data = Resource<Rels.EmailTemplate>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/public/EmailTemplateForm/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\n// TODO: simplify once SDK types are updated\nexport type Data = Resource<Rels.EmailTemplate> & { subject: string };\n"]}
@@ -17,6 +17,12 @@ export declare class GiftCardForm extends Base<Data> {
17
17
  static get v8n(): NucleonV8N<Data>;
18
18
  /** Returns a `fx:customer` Resource URL for a Customer ID. */
19
19
  getCustomerHref: (id: number | string) => string;
20
+ private readonly __provisioningMaxBalanceValueGetter;
21
+ private readonly __provisioningMaxBalanceValueSetter;
22
+ private readonly __provisioningMinBalanceValueGetter;
23
+ private readonly __provisioningMinBalanceValueSetter;
24
+ private readonly __provisioningToggleValueGetter;
25
+ private readonly __provisioningToggleValueSetter;
20
26
  private readonly __productCodeRestrictionsGetValue;
21
27
  private readonly __productCodeRestrictionsSetValue;
22
28
  private readonly __currencyCodeGetValue;
@@ -21,6 +21,55 @@ export class GiftCardForm extends Base {
21
21
  this.getCustomerHref = id => {
22
22
  return `https://api.foxycart.com/customers/${id}`;
23
23
  };
24
+ this.__provisioningMaxBalanceValueGetter = () => {
25
+ var _a;
26
+ return (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_max;
27
+ };
28
+ this.__provisioningMaxBalanceValueSetter = (newMax) => {
29
+ var _a, _b;
30
+ const newMin = (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min) !== null && _b !== void 0 ? _b : newMax;
31
+ this.edit({
32
+ provisioning_config: {
33
+ allow_autoprovisioning: true,
34
+ initial_balance_min: newMin > newMax ? newMax : newMin,
35
+ initial_balance_max: newMax,
36
+ },
37
+ });
38
+ };
39
+ this.__provisioningMinBalanceValueGetter = () => {
40
+ var _a;
41
+ return (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min;
42
+ };
43
+ this.__provisioningMinBalanceValueSetter = (newMin) => {
44
+ var _a, _b;
45
+ const newMax = (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_max) !== null && _b !== void 0 ? _b : newMin;
46
+ this.edit({
47
+ provisioning_config: {
48
+ allow_autoprovisioning: true,
49
+ initial_balance_min: newMin,
50
+ initial_balance_max: newMax < newMin ? newMin : newMax,
51
+ },
52
+ });
53
+ };
54
+ this.__provisioningToggleValueGetter = () => {
55
+ var _a;
56
+ return !!((_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.allow_autoprovisioning);
57
+ };
58
+ this.__provisioningToggleValueSetter = (newValue) => {
59
+ var _a, _b, _c, _d;
60
+ if (newValue) {
61
+ this.edit({
62
+ provisioning_config: {
63
+ allow_autoprovisioning: true,
64
+ initial_balance_min: (_b = (_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.initial_balance_min) !== null && _b !== void 0 ? _b : 0,
65
+ initial_balance_max: (_d = (_c = this.form.provisioning_config) === null || _c === void 0 ? void 0 : _c.initial_balance_max) !== null && _d !== void 0 ? _d : 0,
66
+ },
67
+ });
68
+ }
69
+ else {
70
+ this.edit({ provisioning_config: null });
71
+ }
72
+ };
24
73
  this.__productCodeRestrictionsGetValue = () => {
25
74
  var _a;
26
75
  return (_a = this.form.product_code_restrictions) === null || _a === void 0 ? void 0 : _a.split(',').filter(v => !!v.trim()).map(value => ({
@@ -112,10 +161,14 @@ export class GiftCardForm extends Base {
112
161
  ];
113
162
  }
114
163
  get hiddenSelector() {
164
+ var _a;
115
165
  const alwaysMatch = [super.hiddenSelector.toString()];
116
166
  if (!this.data) {
117
167
  alwaysMatch.push('codes', 'category-restrictions', 'attributes');
118
168
  }
169
+ if (!((_a = this.form.provisioning_config) === null || _a === void 0 ? void 0 : _a.allow_autoprovisioning)) {
170
+ alwaysMatch.push('provisioning:sku', 'provisioning:min-balance', 'provisioning:max-balance');
171
+ }
119
172
  return new BooleanSelector(alwaysMatch.join(' ').trim());
120
173
  }
121
174
  get headerSubtitleOptions() {
@@ -143,40 +196,73 @@ export class GiftCardForm extends Base {
143
196
  `;
144
197
  }
145
198
  renderBody() {
146
- var _a, _b, _c, _d, _e, _f, _g, _h;
199
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
147
200
  let codesUrl;
148
201
  try {
149
202
  const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:gift_card_codes'].href) !== null && _b !== void 0 ? _b : '');
150
203
  url.searchParams.set('order', 'date_created desc');
151
204
  codesUrl = url.toString();
152
205
  }
153
- catch (_j) {
206
+ catch (_l) {
154
207
  codesUrl = undefined;
155
208
  }
156
209
  return html `
157
210
  ${this.renderHeader()}
158
211
 
159
- <div class="grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m">
160
- <foxy-internal-text-control infer="name" class="md-col-span-2">
212
+ <foxy-internal-summary-control infer="general">
213
+ <foxy-internal-text-control layout="summary-item" infer="name">
161
214
  </foxy-internal-text-control>
162
215
 
163
216
  <foxy-internal-select-control
164
217
  property="currency_code"
218
+ layout="summary-item"
165
219
  infer="currency"
166
220
  .getValue=${this.__currencyCodeGetValue}
167
221
  .options=${currencies.map(value => ({
168
- label: this.t(`currency.code_${value}`),
222
+ label: this.t(`general.currency.code_${value}`),
169
223
  value,
170
224
  }))}
171
225
  >
172
226
  </foxy-internal-select-control>
173
227
 
174
- <foxy-internal-frequency-control property="expires_after" infer="expires">
228
+ <foxy-internal-frequency-control
229
+ property="expires_after"
230
+ layout="summary-item"
231
+ infer="expires"
232
+ >
175
233
  </foxy-internal-frequency-control>
176
- </div>
234
+ </foxy-internal-summary-control>
177
235
 
178
- <foxy-internal-gift-card-form-provisioning-control infer="provisioning">
179
- </foxy-internal-gift-card-form-provisioning-control>
236
+ <foxy-internal-summary-control infer="provisioning">
237
+ <foxy-internal-switch-control
238
+ infer="toggle"
239
+ .getValue=${this.__provisioningToggleValueGetter}
240
+ .setValue=${this.__provisioningToggleValueSetter}
241
+ >
242
+ </foxy-internal-switch-control>
243
+
244
+ <foxy-internal-text-control layout="summary-item" infer="sku"></foxy-internal-text-control>
245
+
246
+ <foxy-internal-number-control
247
+ layout="summary-item"
248
+ suffix=${ifDefined((_c = this.form.currency_code) === null || _c === void 0 ? void 0 : _c.toUpperCase())}
249
+ infer="min-balance"
250
+ min="0"
251
+ .getValue=${this.__provisioningMinBalanceValueGetter}
252
+ .setValue=${this.__provisioningMinBalanceValueSetter}
253
+ >
254
+ </foxy-internal-number-control>
255
+
256
+ <foxy-internal-number-control
257
+ layout="summary-item"
258
+ suffix=${ifDefined((_d = this.form.currency_code) === null || _d === void 0 ? void 0 : _d.toUpperCase())}
259
+ infer="max-balance"
260
+ min="0"
261
+ .getValue=${this.__provisioningMaxBalanceValueGetter}
262
+ .setValue=${this.__provisioningMaxBalanceValueSetter}
263
+ >
264
+ </foxy-internal-number-control>
265
+ </foxy-internal-summary-control>
180
266
 
181
267
  <foxy-internal-async-list-control
182
268
  first=${codesUrl}
@@ -206,10 +292,10 @@ export class GiftCardForm extends Base {
206
292
  foreign-key-for-uri="item_category_uri"
207
293
  foreign-key-for-id="item_category_id"
208
294
  own-key-for-uri="gift_card_uri"
209
- options-href=${ifDefined((_d = (_c = this.__storeLoader) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d._links['fx:item_categories'].href)}
210
- links-href=${ifDefined((_e = this.data) === null || _e === void 0 ? void 0 : _e._links['fx:gift_card_item_categories'].href)}
295
+ options-href=${ifDefined((_f = (_e = this.__storeLoader) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f._links['fx:item_categories'].href)}
296
+ links-href=${ifDefined((_g = this.data) === null || _g === void 0 ? void 0 : _g._links['fx:gift_card_item_categories'].href)}
211
297
  embed-key="fx:gift_card_item_categories"
212
- own-uri=${ifDefined((_f = this.data) === null || _f === void 0 ? void 0 : _f._links.self.href)}
298
+ own-uri=${ifDefined((_h = this.data) === null || _h === void 0 ? void 0 : _h._links.self.href)}
213
299
  infer="category-restrictions"
214
300
  limit="5"
215
301
  item="foxy-item-category-card"
@@ -217,7 +303,7 @@ export class GiftCardForm extends Base {
217
303
  </foxy-internal-async-resource-link-list-control>
218
304
 
219
305
  <foxy-internal-async-list-control
220
- first=${ifDefined((_g = this.data) === null || _g === void 0 ? void 0 : _g._links['fx:attributes'].href)}
306
+ first=${ifDefined((_j = this.data) === null || _j === void 0 ? void 0 : _j._links['fx:attributes'].href)}
221
307
  limit="5"
222
308
  infer="attributes"
223
309
  item="foxy-attribute-card"
@@ -231,7 +317,7 @@ export class GiftCardForm extends Base {
231
317
  <foxy-nucleon
232
318
  infer=""
233
319
  class="hidden"
234
- href=${ifDefined((_h = this.data) === null || _h === void 0 ? void 0 : _h._links['fx:store'].href)}
320
+ href=${ifDefined((_k = this.data) === null || _k === void 0 ? void 0 : _k._links['fx:store'].href)}
235
321
  id=${this.__storeLoaderId}
236
322
  @update=${() => this.requestUpdate()}
237
323
  >
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { Option, Type } from '../QueryBuilder/types';\nimport { html } from 'lit-element';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @element foxy-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getCustomerHref: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v < 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v < 0 ? 'max-balance:v8n_negative' : true;\n },\n\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ];\n }\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __currencyCodeGetValue = () => {\n return this.form.currency_code?.toLowerCase();\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesActions: SwipeAction<Resource<Rels.GiftCardCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__codesActions[0].state = 'busy';\n this.__codesActions = [...this.__codesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__codesActions[0].state = 'end';\n } catch {\n this.__codesActions[0].state = 'error';\n } finally {\n this.__codesActions = [...this.__codesActions];\n setTimeout(() => {\n this.__codesActions[0].state = 'idle';\n this.__codesActions = [...this.__codesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('codes', 'category-restrictions', 'attributes');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:gift_card_codes'].href}\n infer=\"import\"\n form=\"foxy-gift-card-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:gift_card_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid grid-cols-1 sm-grid-cols-3 md-grid-cols-4 gap-m\">\n <foxy-internal-text-control infer=\"name\" class=\"md-col-span-2\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n property=\"currency_code\"\n infer=\"currency\"\n .getValue=${this.__currencyCodeGetValue}\n .options=${currencies.map(value => ({\n label: this.t(`currency.code_${value}`),\n value,\n }))}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-frequency-control property=\"expires_after\" infer=\"expires\">\n </foxy-internal-frequency-control>\n </div>\n\n <foxy-internal-gift-card-form-provisioning-control infer=\"provisioning\">\n </foxy-internal-gift-card-form-provisioning-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"codes\"\n item=\"foxy-gift-card-code-card\"\n form=\"foxy-gift-card-code-form\"\n alert\n .formProps=${{ '.getCustomerHref': this.getCustomerHref }}\n .actions=${this.__codesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"gift_card_uri\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:gift_card_item_categories'].href)}\n embed-key=\"fx:gift_card_item_categories\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/GiftCardForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { SwipeAction } from '../../internal/InternalAsyncListControl/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { Option, Type } from '../QueryBuilder/types';\nimport { html } from 'lit-element';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { currencies } from './currencies';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nconst NS = 'gift-card-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\n/**\n * Form element for creating or editing gift cards (`fx:gift_card`).\n *\n * @element foxy-gift-card-form\n * @since 1.15.0\n */\nexport class GiftCardForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getCustomerHref: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => !v || v.length <= 50 || 'name:v8n_too_long',\n\n form => {\n if (form.provisioning_config?.allow_autoprovisioning) {\n if (!form.sku) return 'sku:v8n_required';\n if (form.sku.length > 200) return 'sku:v8n_too_long';\n }\n\n return true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_min;\n return typeof v === 'number' && v < 0 ? 'min-balance:v8n_negative' : true;\n },\n\n form => {\n const v = form.provisioning_config?.initial_balance_max;\n return typeof v === 'number' && v < 0 ? 'max-balance:v8n_negative' : true;\n },\n\n ({ product_code_restrictions: v }) => {\n return !v || v.length <= 5000 || 'product-code-restrictions:v8n_too_long';\n },\n ];\n }\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __provisioningMaxBalanceValueGetter = () => {\n return this.form.provisioning_config?.initial_balance_max;\n };\n\n private readonly __provisioningMaxBalanceValueSetter = (newMax: number) => {\n const newMin = this.form.provisioning_config?.initial_balance_min ?? newMax;\n\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: newMin > newMax ? newMax : newMin,\n initial_balance_max: newMax,\n },\n });\n };\n\n private readonly __provisioningMinBalanceValueGetter = () => {\n return this.form.provisioning_config?.initial_balance_min;\n };\n\n private readonly __provisioningMinBalanceValueSetter = (newMin: number) => {\n const newMax = this.form.provisioning_config?.initial_balance_max ?? newMin;\n\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: newMin,\n initial_balance_max: newMax < newMin ? newMin : newMax,\n },\n });\n };\n\n private readonly __provisioningToggleValueGetter = () => {\n return !!this.form.provisioning_config?.allow_autoprovisioning;\n };\n\n private readonly __provisioningToggleValueSetter = (newValue: boolean) => {\n if (newValue) {\n this.edit({\n provisioning_config: {\n allow_autoprovisioning: true,\n initial_balance_min: this.form.provisioning_config?.initial_balance_min ?? 0,\n initial_balance_max: this.form.provisioning_config?.initial_balance_max ?? 0,\n },\n });\n } else {\n this.edit({ provisioning_config: null });\n }\n };\n\n private readonly __productCodeRestrictionsGetValue = () => {\n return this.form.product_code_restrictions\n ?.split(',')\n .filter(v => !!v.trim())\n .map(value => ({\n value,\n label: value.startsWith('-')\n ? this.t(`product-code-restrictions.label_block`, { value: value.substring(1) })\n : this.t(`product-code-restrictions.label_allow`, { value }),\n }));\n };\n\n private readonly __productCodeRestrictionsSetValue = (newValue: Item[]) => {\n this.edit({\n product_code_restrictions: newValue\n .map(({ value, unit }) => (unit === 'block' ? `-${value}` : value))\n .filter((v, i, a) => !!v && a.indexOf(v) === i)\n .join(','),\n });\n };\n\n private readonly __currencyCodeGetValue = () => {\n return this.form.currency_code?.toLowerCase();\n };\n\n private readonly __storeLoaderId = 'storeLoader';\n\n private readonly __codesFilters: Option[] = [\n { label: 'code', path: 'code', type: Type.String },\n { label: 'current_balance', path: 'current_balance', type: Type.Number },\n { label: 'end_date', path: 'end_date', type: Type.Date },\n { label: 'date_created', path: 'date_created', type: Type.Date },\n { label: 'date_modified', path: 'date_modified', type: Type.Date },\n ];\n\n private __codesActions: SwipeAction<Resource<Rels.GiftCardCode>>[] = [\n {\n theme: 'contrast',\n state: 'idle',\n text: 'copy_button_text',\n onClick: async data => {\n this.__codesActions[0].state = 'busy';\n this.__codesActions = [...this.__codesActions];\n\n try {\n await navigator.clipboard.writeText(data.code);\n this.__codesActions[0].state = 'end';\n } catch {\n this.__codesActions[0].state = 'error';\n } finally {\n this.__codesActions = [...this.__codesActions];\n setTimeout(() => {\n this.__codesActions[0].state = 'idle';\n this.__codesActions = [...this.__codesActions];\n }, 1000);\n }\n },\n },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n\n if (!this.data) {\n alwaysMatch.push('codes', 'category-restrictions', 'attributes');\n }\n\n if (!this.form.provisioning_config?.allow_autoprovisioning) {\n alwaysMatch.push('provisioning:sku', 'provisioning:min-balance', 'provisioning:max-balance');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { id: this.headerCopyIdValue };\n }\n\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:generate_codes'].href}\n infer=\"generate\"\n form=\"foxy-generate-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n <foxy-internal-bulk-add-action-control\n parent=${data._links['fx:gift_card_codes'].href}\n infer=\"import\"\n form=\"foxy-gift-card-codes-form\"\n .related=${[data._links['fx:gift_card_codes'].href]}\n >\n </foxy-internal-bulk-add-action-control>\n\n ${super.renderHeaderActions(data)}\n `;\n }\n\n renderBody(): TemplateResult {\n let codesUrl: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:gift_card_codes'].href ?? '');\n url.searchParams.set('order', 'date_created desc');\n\n codesUrl = url.toString();\n } catch {\n codesUrl = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n property=\"currency_code\"\n layout=\"summary-item\"\n infer=\"currency\"\n .getValue=${this.__currencyCodeGetValue}\n .options=${currencies.map(value => ({\n label: this.t(`general.currency.code_${value}`),\n value,\n }))}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-frequency-control\n property=\"expires_after\"\n layout=\"summary-item\"\n infer=\"expires\"\n >\n </foxy-internal-frequency-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"provisioning\">\n <foxy-internal-switch-control\n infer=\"toggle\"\n .getValue=${this.__provisioningToggleValueGetter}\n .setValue=${this.__provisioningToggleValueSetter}\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-text-control layout=\"summary-item\" infer=\"sku\"></foxy-internal-text-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(this.form.currency_code?.toUpperCase())}\n infer=\"min-balance\"\n min=\"0\"\n .getValue=${this.__provisioningMinBalanceValueGetter}\n .setValue=${this.__provisioningMinBalanceValueSetter}\n >\n </foxy-internal-number-control>\n\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(this.form.currency_code?.toUpperCase())}\n infer=\"max-balance\"\n min=\"0\"\n .getValue=${this.__provisioningMaxBalanceValueGetter}\n .setValue=${this.__provisioningMaxBalanceValueSetter}\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-async-list-control\n first=${codesUrl}\n limit=\"5\"\n infer=\"codes\"\n item=\"foxy-gift-card-code-card\"\n form=\"foxy-gift-card-code-form\"\n alert\n .formProps=${{ '.getCustomerHref': this.getCustomerHref }}\n .actions=${this.__codesActions}\n .filters=${this.__codesFilters}\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-editable-list-control\n infer=\"product-code-restrictions\"\n .getValue=${this.__productCodeRestrictionsGetValue}\n .setValue=${this.__productCodeRestrictionsSetValue}\n .units=${[\n { label: this.t('product-code-restrictions.unit_allow'), value: 'allow' },\n { label: this.t('product-code-restrictions.unit_block'), value: 'block' },\n ]}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-async-resource-link-list-control\n foreign-key-for-uri=\"item_category_uri\"\n foreign-key-for-id=\"item_category_id\"\n own-key-for-uri=\"gift_card_uri\"\n options-href=${ifDefined(this.__storeLoader?.data?._links['fx:item_categories'].href)}\n links-href=${ifDefined(this.data?._links['fx:gift_card_item_categories'].href)}\n embed-key=\"fx:gift_card_item_categories\"\n own-uri=${ifDefined(this.data?._links.self.href)}\n infer=\"category-restrictions\"\n limit=\"5\"\n item=\"foxy-item-category-card\"\n >\n </foxy-internal-async-resource-link-list-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(this.data?._links['fx:attributes'].href)}\n limit=\"5\"\n infer=\"attributes\"\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n class=\"hidden\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
@@ -3,7 +3,10 @@ import '../../internal/InternalBulkAddActionControl/index';
3
3
  import '../../internal/InternalEditableListControl/index';
4
4
  import '../../internal/InternalAsyncListControl/index';
5
5
  import '../../internal/InternalFrequencyControl/index';
6
+ import '../../internal/InternalSummaryControl/index';
6
7
  import '../../internal/InternalSelectControl/index';
8
+ import '../../internal/InternalSwitchControl/index';
9
+ import '../../internal/InternalNumberControl/index';
7
10
  import '../../internal/InternalTextControl/index';
8
11
  import '../../internal/InternalForm/index';
9
12
  import '../GenerateCodesForm/index';
@@ -14,6 +17,5 @@ import '../GiftCardCodeForm/index';
14
17
  import '../NucleonElement/index';
15
18
  import '../AttributeCard/index';
16
19
  import '../AttributeForm/index';
17
- import './internal/InternalGiftCardFormProvisioningControl/index';
18
20
  import { GiftCardForm } from './GiftCardForm';
19
21
  export { GiftCardForm };
@@ -3,7 +3,10 @@ import "../../internal/InternalBulkAddActionControl/index.js";
3
3
  import "../../internal/InternalEditableListControl/index.js";
4
4
  import "../../internal/InternalAsyncListControl/index.js";
5
5
  import "../../internal/InternalFrequencyControl/index.js";
6
+ import "../../internal/InternalSummaryControl/index.js";
6
7
  import "../../internal/InternalSelectControl/index.js";
8
+ import "../../internal/InternalSwitchControl/index.js";
9
+ import "../../internal/InternalNumberControl/index.js";
7
10
  import "../../internal/InternalTextControl/index.js";
8
11
  import "../../internal/InternalForm/index.js";
9
12
  import "../GenerateCodesForm/index.js";
@@ -14,7 +17,6 @@ import "../GiftCardCodeForm/index.js";
14
17
  import "../NucleonElement/index.js";
15
18
  import "../AttributeCard/index.js";
16
19
  import "../AttributeForm/index.js";
17
- import "./internal/InternalGiftCardFormProvisioningControl/index.js";
18
20
  import { GiftCardForm } from "./GiftCardForm.js";
19
21
  customElements.define('foxy-gift-card-form', GiftCardForm);
20
22
  export { GiftCardForm };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,uCAAoC;AACpC,sCAAmC;AACnC,sCAAmC;AACnC,sCAAmC;AACnC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,qEAAkE;AAElE,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../GiftCardCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../GiftCardCodeCard/index';\nimport '../GiftCardCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\n\nimport './internal/InternalGiftCardFormProvisioningControl/index';\n\nimport { GiftCardForm } from './GiftCardForm';\n\ncustomElements.define('foxy-gift-card-form', GiftCardForm);\n\nexport { GiftCardForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardForm/index.ts"],"names":[],"mappings":"AAAA,sEAAmE;AACnE,8DAA2D;AAC3D,6DAA0D;AAC1D,0DAAuD;AACvD,0DAAuD;AACvD,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,uCAAoC;AACpC,uCAAoC;AACpC,sCAAmC;AACnC,sCAAmC;AACnC,sCAAmC;AACnC,oCAAiC;AACjC,mCAAgC;AAChC,mCAAgC;AAEhC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncResourceLinkListControl/index';\nimport '../../internal/InternalBulkAddActionControl/index';\nimport '../../internal/InternalEditableListControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalSwitchControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../GenerateCodesForm/index';\nimport '../GiftCardCodesForm/index';\nimport '../ItemCategoryCard/index';\nimport '../GiftCardCodeCard/index';\nimport '../GiftCardCodeForm/index';\nimport '../NucleonElement/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\n\nimport { GiftCardForm } from './GiftCardForm';\n\ncustomElements.define('foxy-gift-card-form', GiftCardForm);\n\nexport { GiftCardForm };\n"]}
@@ -20,12 +20,18 @@ export class ItemOptionForm extends TranslatableMixin(InternalForm, 'item-option
20
20
  return html `
21
21
  ${this.renderHeader()}
22
22
 
23
- <div class="grid grid-cols-2 gap-m">
24
- <foxy-internal-text-control infer="name" class="col-span-2"></foxy-internal-text-control>
25
- <foxy-internal-text-control infer="value" class="col-span-2"></foxy-internal-text-control>
26
- <foxy-internal-number-control infer="price-mod"></foxy-internal-number-control>
27
- <foxy-internal-number-control infer="weight-mod"></foxy-internal-number-control>
28
- </div>
23
+ <foxy-internal-summary-control infer="general">
24
+ <foxy-internal-text-control layout="summary-item" infer="name"></foxy-internal-text-control>
25
+ <foxy-internal-text-control layout="summary-item" infer="value">
26
+ </foxy-internal-text-control>
27
+ </foxy-internal-summary-control>
28
+
29
+ <foxy-internal-summary-control infer="mods">
30
+ <foxy-internal-number-control layout="summary-item" infer="price-mod">
31
+ </foxy-internal-number-control>
32
+ <foxy-internal-number-control layout="summary-item" infer="weight-mod">
33
+ </foxy-internal-number-control>
34
+ </foxy-internal-summary-control>
29
35
 
30
36
  ${super.renderBody()}
31
37
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"ItemOptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/ItemOptionForm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAO;IAC3F,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB;YAC3C,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,mBAAmB;YAChE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB;YAC7C,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,oBAAoB;SACpE,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;QASnB,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing item options (`fx:item_option`).\n *\n * @element foxy-item-option-form\n * @since 1.17.0\n */\nexport class ItemOptionForm extends TranslatableMixin(InternalForm, 'item-option-form')<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 100) || 'name:v8n_too_long',\n ({ value: v }) => !!v || 'value:v8n_required',\n ({ value: v }) => (!!v && v.length <= 1024) || 'value:v8n_too_long',\n ];\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control infer=\"name\" class=\"col-span-2\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"value\" class=\"col-span-2\"></foxy-internal-text-control>\n <foxy-internal-number-control infer=\"price-mod\"></foxy-internal-number-control>\n <foxy-internal-number-control infer=\"weight-mod\"></foxy-internal-number-control>\n </div>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"ItemOptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/ItemOptionForm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAO;IAC3F,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB;YAC3C,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,mBAAmB;YAChE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB;YAC7C,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,oBAAoB;SACpE,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;;;;;;;QAenB,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing item options (`fx:item_option`).\n *\n * @element foxy-item-option-form\n * @since 1.17.0\n */\nexport class ItemOptionForm extends TranslatableMixin(InternalForm, 'item-option-form')<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 100) || 'name:v8n_too_long',\n ({ value: v }) => !!v || 'value:v8n_required',\n ({ value: v }) => (!!v && v.length <= 1024) || 'value:v8n_too_long',\n ];\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"name\"></foxy-internal-text-control>\n <foxy-internal-text-control layout=\"summary-item\" infer=\"value\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"mods\">\n <foxy-internal-number-control layout=\"summary-item\" infer=\"price-mod\">\n </foxy-internal-number-control>\n <foxy-internal-number-control layout=\"summary-item\" infer=\"weight-mod\">\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import '../../internal/InternalSummaryControl/index';
1
2
  import '../../internal/InternalNumberControl/index';
2
3
  import '../../internal/InternalTextControl/index';
3
4
  import '../../internal/InternalForm/index';
@@ -1,3 +1,4 @@
1
+ import "../../internal/InternalSummaryControl/index.js";
1
2
  import "../../internal/InternalNumberControl/index.js";
2
3
  import "../../internal/InternalTextControl/index.js";
3
4
  import "../../internal/InternalForm/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/index.ts"],"names":[],"mappings":"AAAA,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport { ItemOptionForm } from './ItemOptionForm';\n\ncustomElements.define('foxy-item-option-form', ItemOptionForm);\n\nexport { ItemOptionForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemOptionForm/index.ts"],"names":[],"mappings":"AAAA,wDAAqD;AACrD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAElD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,CAAC","sourcesContent":["import '../../internal/InternalSummaryControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport { ItemOptionForm } from './ItemOptionForm';\n\ncustomElements.define('foxy-item-option-form', ItemOptionForm);\n\nexport { ItemOptionForm };\n"]}
@@ -124,6 +124,12 @@ export class SubscriptionSettingsForm extends Base {
124
124
  >
125
125
  </foxy-internal-switch-control>
126
126
 
127
+ <foxy-internal-switch-control
128
+ infer="send-email-receipts-for-automated-billing"
129
+ helper-text-as-tooltip
130
+ >
131
+ </foxy-internal-switch-control>
132
+
127
133
  <foxy-internal-switch-control
128
134
  infer="prevent-customer-cancel-with-past-due"
129
135
  helper-text-as-tooltip
@@ -158,12 +164,6 @@ export class SubscriptionSettingsForm extends Base {
158
164
  </foxy-internal-summary-control>
159
165
 
160
166
  <foxy-internal-summary-control infer="emails-group">
161
- <foxy-internal-switch-control
162
- infer="send-email-receipts-for-automated-billing"
163
- helper-text-as-tooltip
164
- >
165
- </foxy-internal-switch-control>
166
-
167
167
  <foxy-internal-editable-list-control
168
168
  layout="summary-item"
169
169
  infer="reminder-email-schedule"
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionSettingsForm.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalCheckboxGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'subscription-settings-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing `fx:subscription_settings` resources.\n *\n * @element foxy-subscription-settings-form\n * @since 1.21.0\n */\nexport class SubscriptionSettingsForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ expiring_soon_payment_reminder_schedule: v }) => {\n return !v || v.length <= 100 || 'expiring-soon-payment-reminder-schedule:v8n_too_long';\n },\n ({ reattempt_bypass_strings: v }) => {\n return !v || v.length <= 400 || 'reattempt-bypass-strings:v8n_too_long';\n },\n ({ reminder_email_schedule: v }) => {\n return !v || v.length <= 100 || 'reminder-email-schedule:v8n_too_long';\n },\n ({ reattempt_schedule: v }) => {\n return !v || v.length <= 100 || 'reattempt-schedule:v8n_too_long';\n },\n ];\n }\n\n private __pastDueAmountHandlingOptions: Option[] = [\n { label: 'option_increment', value: 'increment' },\n { label: 'option_replace', value: 'replace' },\n ];\n\n private __positiveIntegerInputParams = {\n type: 'number',\n step: '1',\n min: '0',\n };\n\n private __expiringSoonPaymentReminderScheduleGetValue = () => {\n const days = this.form.expiring_soon_payment_reminder_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayB - dayA)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __expiringSoonPaymentReminderScheduleSetValue = (newItems: Item[]) => {\n this.edit({\n expiring_soon_payment_reminder_schedule: newItems.map(({ value }) => value).join(),\n });\n };\n\n private __reminderEmailScheduleGetValue = () => {\n const days = this.form.reminder_email_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reminderEmailScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reminder_email_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __reattemptScheduleGetValue = () => {\n const days = this.form.reattempt_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reattemptScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reattempt_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __getReattemptBypassStringsValue = () => {\n const strings = this.form.reattempt_bypass_strings?.split(',') ?? [];\n\n return strings\n .map(text => text.trim())\n .filter((text, index, strings) => text && strings.indexOf(text) === index)\n .map(text => ({ value: text }));\n };\n\n private __setReattemptBypassStringsValue = (newValue: Item[]) => {\n this.edit({ reattempt_bypass_strings: newValue.map(({ value }) => value).join() });\n };\n\n private __reattemptBypassLogicOptions: Option[] = [\n { value: '', label: 'option_always_reattempt' },\n { value: 'skip_if_exists', label: 'option_skip_if_exists' },\n { value: 'reattempt_if_exists', label: 'option_reattempt_if_exists' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-id', super.hiddenSelector.toString()];\n\n if (!this.form.reattempt_bypass_logic) {\n alwaysMatch.push('reattempts-group:reattempt-bypass-strings');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"past-due-amount-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"past-due-amount-handling\"\n .options=${this.__pastDueAmountHandlingOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control\n infer=\"automatically-charge-past-due-amount\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"reset-nextdate-on-makeup-payment\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"prevent-customer-cancel-with-past-due\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"reattempts-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-logic\"\n .options=${this.__reattemptBypassLogicOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-strings\"\n .getValue=${this.__getReattemptBypassStringsValue}\n .setValue=${this.__setReattemptBypassStringsValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reattemptScheduleGetValue}\n .setValue=${this.__reattemptScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails-group\">\n <foxy-internal-switch-control\n infer=\"send-email-receipts-for-automated-billing\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reminder-email-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reminderEmailScheduleGetValue}\n .setValue=${this.__reminderEmailScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"expiring-soon-payment-reminder-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__expiringSoonPaymentReminderScheduleGetValue}\n .setValue=${this.__expiringSoonPaymentReminderScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"modification-group\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"modification-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cancellation-group\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${this.__cancellationScheduleSuffix}\n infer=\"cancellation-schedule\"\n step=\"1\"\n min=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n\n private get __cancellationScheduleSuffix() {\n const schedule = this.form.cancellation_schedule;\n return schedule ? this.t('day_suffix', { count: schedule }) : '';\n }\n}\n"]}
1
+ {"version":3,"file":"SubscriptionSettingsForm.js","sourceRoot":"","sources":["../../../../src/elements/public/SubscriptionSettingsForm/SubscriptionSettingsForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Option } from '../../internal/InternalCheckboxGroupControl/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'subscription-settings-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing `fx:subscription_settings` resources.\n *\n * @element foxy-subscription-settings-form\n * @since 1.21.0\n */\nexport class SubscriptionSettingsForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ expiring_soon_payment_reminder_schedule: v }) => {\n return !v || v.length <= 100 || 'expiring-soon-payment-reminder-schedule:v8n_too_long';\n },\n ({ reattempt_bypass_strings: v }) => {\n return !v || v.length <= 400 || 'reattempt-bypass-strings:v8n_too_long';\n },\n ({ reminder_email_schedule: v }) => {\n return !v || v.length <= 100 || 'reminder-email-schedule:v8n_too_long';\n },\n ({ reattempt_schedule: v }) => {\n return !v || v.length <= 100 || 'reattempt-schedule:v8n_too_long';\n },\n ];\n }\n\n private __pastDueAmountHandlingOptions: Option[] = [\n { label: 'option_increment', value: 'increment' },\n { label: 'option_replace', value: 'replace' },\n ];\n\n private __positiveIntegerInputParams = {\n type: 'number',\n step: '1',\n min: '0',\n };\n\n private __expiringSoonPaymentReminderScheduleGetValue = () => {\n const days = this.form.expiring_soon_payment_reminder_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayB - dayA)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __expiringSoonPaymentReminderScheduleSetValue = (newItems: Item[]) => {\n this.edit({\n expiring_soon_payment_reminder_schedule: newItems.map(({ value }) => value).join(),\n });\n };\n\n private __reminderEmailScheduleGetValue = () => {\n const days = this.form.reminder_email_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reminderEmailScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reminder_email_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __reattemptScheduleGetValue = () => {\n const days = this.form.reattempt_schedule?.split(',') ?? [];\n\n return days\n .map(dayAsString => parseInt(dayAsString))\n .filter((day, index, allDays) => !isNaN(day) && allDays.indexOf(day) === index)\n .sort((dayA, dayB) => dayA - dayB)\n .map(day => ({ value: String(day), label: this.t('day', { count: day }) }));\n };\n\n private __reattemptScheduleSetValue = (newItems: Item[]) => {\n this.edit({ reattempt_schedule: newItems.map(({ value }) => value).join() });\n };\n\n private __getReattemptBypassStringsValue = () => {\n const strings = this.form.reattempt_bypass_strings?.split(',') ?? [];\n\n return strings\n .map(text => text.trim())\n .filter((text, index, strings) => text && strings.indexOf(text) === index)\n .map(text => ({ value: text }));\n };\n\n private __setReattemptBypassStringsValue = (newValue: Item[]) => {\n this.edit({ reattempt_bypass_strings: newValue.map(({ value }) => value).join() });\n };\n\n private __reattemptBypassLogicOptions: Option[] = [\n { value: '', label: 'option_always_reattempt' },\n { value: 'skip_if_exists', label: 'option_skip_if_exists' },\n { value: 'reattempt_if_exists', label: 'option_reattempt_if_exists' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['header:copy-id', super.hiddenSelector.toString()];\n\n if (!this.form.reattempt_bypass_logic) {\n alwaysMatch.push('reattempts-group:reattempt-bypass-strings');\n }\n\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"past-due-amount-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"past-due-amount-handling\"\n .options=${this.__pastDueAmountHandlingOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-switch-control\n infer=\"automatically-charge-past-due-amount\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"reset-nextdate-on-makeup-payment\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"send-email-receipts-for-automated-billing\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n infer=\"prevent-customer-cancel-with-past-due\"\n helper-text-as-tooltip\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"reattempts-group\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-logic\"\n .options=${this.__reattemptBypassLogicOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-bypass-strings\"\n .getValue=${this.__getReattemptBypassStringsValue}\n .setValue=${this.__setReattemptBypassStringsValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reattempt-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reattemptScheduleGetValue}\n .setValue=${this.__reattemptScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"emails-group\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"reminder-email-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__reminderEmailScheduleGetValue}\n .setValue=${this.__reminderEmailScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"expiring-soon-payment-reminder-schedule\"\n .inputParams=${this.__positiveIntegerInputParams}\n .getValue=${this.__expiringSoonPaymentReminderScheduleGetValue}\n .setValue=${this.__expiringSoonPaymentReminderScheduleSetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"modification-group\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"modification-url\">\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"cancellation-group\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${this.__cancellationScheduleSuffix}\n infer=\"cancellation-schedule\"\n step=\"1\"\n min=\"1\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${super.renderBody()}\n `;\n }\n\n private get __cancellationScheduleSuffix() {\n const schedule = this.form.cancellation_schedule;\n return schedule ? this.t('day_suffix', { count: schedule }) : '';\n }\n}\n"]}