@foxy.io/elements 1.43.0 → 1.44.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 (230) 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 +1 -1
  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 +1 -1
  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-experimental-add-to-cart-builder.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  47. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  48. package/dist/cdn/foxy-form-dialog.js +1 -1
  49. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  53. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  54. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  55. package/dist/cdn/foxy-gift-card-form.js +1 -1
  56. package/dist/cdn/foxy-i18n-editor.js +1 -1
  57. package/dist/cdn/foxy-i18n.js +1 -1
  58. package/dist/cdn/foxy-integration-card.js +1 -1
  59. package/dist/cdn/foxy-integration-form.js +1 -1
  60. package/dist/cdn/foxy-item-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-card.js +1 -1
  62. package/dist/cdn/foxy-item-category-form.js +1 -1
  63. package/dist/cdn/foxy-item-form.js +1 -1
  64. package/dist/cdn/foxy-item-option-card.js +1 -1
  65. package/dist/cdn/foxy-item-option-form.js +1 -1
  66. package/dist/cdn/foxy-items-form.js +1 -1
  67. package/dist/cdn/foxy-native-integration-card.js +1 -1
  68. package/dist/cdn/foxy-native-integration-form.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-query-builder.js +1 -1
  82. package/dist/cdn/foxy-report-form.js +1 -1
  83. package/dist/cdn/foxy-reports-table.js +1 -1
  84. package/dist/cdn/foxy-shipment-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  89. package/dist/cdn/foxy-sign-in-form.js +1 -1
  90. package/dist/cdn/foxy-spinner.js +1 -1
  91. package/dist/cdn/foxy-store-card.js +1 -1
  92. package/dist/cdn/foxy-store-form.js +1 -1
  93. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  94. package/dist/cdn/foxy-subscription-card.js +1 -1
  95. package/dist/cdn/foxy-subscription-form.js +1 -1
  96. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  97. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  98. package/dist/cdn/foxy-table.js +1 -1
  99. package/dist/cdn/foxy-tax-card.js +1 -1
  100. package/dist/cdn/foxy-tax-form.js +1 -1
  101. package/dist/cdn/foxy-template-config-form.js +1 -1
  102. package/dist/cdn/foxy-template-form.js +1 -1
  103. package/dist/cdn/foxy-template-set-card.js +1 -1
  104. package/dist/cdn/foxy-template-set-form.js +1 -1
  105. package/dist/cdn/foxy-transaction-card.js +1 -1
  106. package/dist/cdn/foxy-transaction.js +1 -1
  107. package/dist/cdn/foxy-transactions-table.js +7 -7
  108. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  109. package/dist/cdn/foxy-user-card.js +1 -1
  110. package/dist/cdn/foxy-user-form.js +1 -1
  111. package/dist/cdn/foxy-user-invitation-card.js +1 -1
  112. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  113. package/dist/cdn/foxy-users-table.js +1 -1
  114. package/dist/cdn/foxy-webhook-card.js +1 -1
  115. package/dist/cdn/foxy-webhook-form.js +1 -1
  116. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  117. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  118. package/dist/cdn/shared-02dd05dd.js +1 -0
  119. package/dist/cdn/{shared-5492f8eb.js → shared-050780e9.js} +1 -1
  120. package/dist/cdn/{shared-f2e8070b.js → shared-090ee4eb.js} +1 -1
  121. package/dist/cdn/{shared-0fb90a71.js → shared-0d01cd66.js} +1 -1
  122. package/dist/cdn/{shared-46a20973.js → shared-0eef6fb7.js} +1 -1
  123. package/dist/cdn/{shared-7d1512e1.js → shared-15a7e329.js} +1 -1
  124. package/dist/cdn/{shared-d8b0432a.js → shared-1abfcf87.js} +1 -1
  125. package/dist/cdn/{shared-48129732.js → shared-1d03ea56.js} +1 -1
  126. package/dist/cdn/{shared-cf6122d9.js → shared-1d6ed748.js} +1 -1
  127. package/dist/cdn/{shared-b15efc37.js → shared-24998349.js} +1 -1
  128. package/dist/cdn/{shared-5a6e4a7b.js → shared-25a9d87d.js} +1 -1
  129. package/dist/cdn/{shared-160072f2.js → shared-264fb8a2.js} +1 -1
  130. package/dist/cdn/{shared-f2be9863.js → shared-297155d9.js} +1 -1
  131. package/dist/cdn/{shared-a0fbe3ef.js → shared-2d6478b0.js} +5 -5
  132. package/dist/cdn/{shared-2c7e0ed1.js → shared-302f3391.js} +1 -1
  133. package/dist/cdn/{shared-a89e8a07.js → shared-387d7254.js} +1 -1
  134. package/dist/cdn/{shared-5af5ab06.js → shared-3bc9eaf7.js} +1 -1
  135. package/dist/cdn/{shared-d3f37507.js → shared-3db3f3c3.js} +1 -1
  136. package/dist/cdn/{shared-f3590d20.js → shared-438e41ab.js} +1 -1
  137. package/dist/cdn/{shared-6313b188.js → shared-46efbc40.js} +1 -1
  138. package/dist/cdn/shared-47269bb6.js +1 -0
  139. package/dist/cdn/{shared-50a355d6.js → shared-4dba0d50.js} +1 -1
  140. package/dist/cdn/{shared-a41ccdc7.js → shared-51919259.js} +1 -1
  141. package/dist/cdn/{shared-acee789f.js → shared-5574ea83.js} +1 -1
  142. package/dist/cdn/{shared-e82550b1.js → shared-57b7386e.js} +1 -1
  143. package/dist/cdn/{shared-8530fbae.js → shared-597fffaa.js} +1 -1
  144. package/dist/cdn/{shared-e126cf44.js → shared-5b93d193.js} +1 -1
  145. package/dist/cdn/{shared-1b4a3e56.js → shared-64210e53.js} +1 -1
  146. package/dist/cdn/{shared-69c7ad04.js → shared-64c855e5.js} +1 -1
  147. package/dist/cdn/{shared-f7b4a4f6.js → shared-6c2a7d2f.js} +1 -1
  148. package/dist/cdn/{shared-88a1cb23.js → shared-73c199ae.js} +1 -1
  149. package/dist/cdn/{shared-0e605594.js → shared-7a818ad5.js} +1 -1
  150. package/dist/cdn/{shared-140c6b70.js → shared-7fa24559.js} +1 -1
  151. package/dist/cdn/{shared-107dc7d7.js → shared-8a83a6eb.js} +5 -5
  152. package/dist/cdn/{shared-ebfb86b5.js → shared-8ee6bff5.js} +1 -1
  153. package/dist/cdn/{shared-dc1fc2e6.js → shared-8f2da12b.js} +1 -1
  154. package/dist/cdn/{shared-8a743005.js → shared-9b599205.js} +1 -1
  155. package/dist/cdn/{shared-9884fb7d.js → shared-a1cfe9d5.js} +1 -1
  156. package/dist/cdn/{shared-0fa21237.js → shared-a1f181bf.js} +1 -1
  157. package/dist/cdn/{shared-d4928805.js → shared-a5580ef6.js} +1 -1
  158. package/dist/cdn/{shared-3f4549ba.js → shared-a6cf5b1f.js} +1 -1
  159. package/dist/cdn/{shared-9bfb584b.js → shared-ab9dfa48.js} +1 -1
  160. package/dist/cdn/{shared-ce0df878.js → shared-ac44a3a5.js} +1 -1
  161. package/dist/cdn/{shared-28253ef3.js → shared-af39ffd8.js} +1 -1
  162. package/dist/cdn/{shared-d3aefd9b.js → shared-b4a3d776.js} +1 -1
  163. package/dist/cdn/{shared-4388f7ea.js → shared-b56949d3.js} +1 -1
  164. package/dist/cdn/{shared-ad8d209a.js → shared-c1b71162.js} +1 -1
  165. package/dist/cdn/{shared-e02936f0.js → shared-c3d1d247.js} +4 -4
  166. package/dist/cdn/{shared-8a570d01.js → shared-c4df3a2a.js} +1 -1
  167. package/dist/cdn/{shared-fa482a7d.js → shared-caac6517.js} +1 -1
  168. package/dist/cdn/{shared-7e18a7d9.js → shared-cee1c6f1.js} +1 -1
  169. package/dist/cdn/{shared-2b328555.js → shared-d0c1664e.js} +1 -1
  170. package/dist/cdn/{shared-59c064c2.js → shared-d35ed355.js} +1 -1
  171. package/dist/cdn/{shared-c16f05d9.js → shared-d525b69b.js} +1 -1
  172. package/dist/cdn/{shared-34a7df04.js → shared-da4f539a.js} +1 -1
  173. package/dist/cdn/{shared-1f95aa71.js → shared-db758d3b.js} +1 -1
  174. package/dist/cdn/{shared-3c64ecdd.js → shared-dc357e9d.js} +1 -1
  175. package/dist/cdn/{shared-742899dc.js → shared-dda75cab.js} +1 -1
  176. package/dist/cdn/{shared-a16ef278.js → shared-e275989e.js} +1 -1
  177. package/dist/cdn/{shared-070211c0.js → shared-e6559d84.js} +1 -1
  178. package/dist/cdn/{shared-364b98a1.js → shared-e6d5f375.js} +1 -1
  179. package/dist/cdn/{shared-a4871405.js → shared-ed24a3f9.js} +1 -1
  180. package/dist/cdn/{shared-db50afd9.js → shared-f00cd094.js} +1 -1
  181. package/dist/cdn/shared-f0fa0a88.js +1 -0
  182. package/dist/cdn/translations/admin-subscription-form/en.json +61 -8
  183. package/dist/cdn/translations/payments-api-payment-method-form/en.json +1 -0
  184. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +1 -0
  185. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +4 -0
  186. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +9 -2
  187. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
  188. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.d.ts +1 -0
  189. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +6 -2
  190. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -1
  191. package/dist/elements/public/AdminSubscriptionForm/index.d.ts +1 -0
  192. package/dist/elements/public/AdminSubscriptionForm/index.js +1 -0
  193. package/dist/elements/public/AdminSubscriptionForm/index.js.map +1 -1
  194. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/InternalAdminSubscriptionFormStatusAction.d.ts +7 -0
  195. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/InternalAdminSubscriptionFormStatusAction.js +65 -0
  196. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/InternalAdminSubscriptionFormStatusAction.js.map +1 -0
  197. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/index.d.ts +8 -0
  198. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/index.js +10 -0
  199. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/index.js.map +1 -0
  200. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.d.ts +18 -0
  201. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.js +185 -0
  202. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.js.map +1 -0
  203. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/index.d.ts +8 -0
  204. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/index.js +10 -0
  205. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/index.js.map +1 -0
  206. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/types.d.ts +5 -0
  207. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/types.js +2 -0
  208. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/types.js.map +1 -0
  209. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  210. package/dist/elements/public/FormDialog/FormDialog.js +4 -1
  211. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  212. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.d.ts +2 -2
  213. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js +5 -10
  214. package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js.map +1 -1
  215. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.d.ts +1 -3
  216. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js +1 -3
  217. package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js.map +1 -1
  218. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.d.ts +1 -0
  219. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +40 -23
  220. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  221. package/dist/elements/public/TaxCard/TaxCard.js +1 -1
  222. package/dist/elements/public/TaxCard/TaxCard.js.map +1 -1
  223. package/dist/mixins/themeable.js +4 -0
  224. package/dist/mixins/themeable.js.map +1 -1
  225. package/dist/utils/parse-date.js +2 -0
  226. package/dist/utils/parse-date.js.map +1 -1
  227. package/package.json +2 -1
  228. package/dist/cdn/shared-2d3bdc6b.js +0 -1
  229. package/dist/cdn/shared-43e2c3f6.js +0 -1
  230. package/dist/cdn/shared-dfe59df6.js +0 -1
@@ -0,0 +1,65 @@
1
+ import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { BooleanSelector } from '@foxy.io/sdk/core';
3
+ import { ifDefined } from 'lit-html/directives/if-defined';
4
+ import { html } from 'lit-html';
5
+ export class InternalAdminSubscriptionFormStatusAction extends InternalControl {
6
+ get hiddenSelector() {
7
+ const alwaysMatch = [super.hiddenSelector.toString()];
8
+ alwaysMatch.unshift('form:save-button');
9
+ return new BooleanSelector(alwaysMatch.join(' ').trim());
10
+ }
11
+ renderControl() {
12
+ var _a, _b;
13
+ const nucleon = this.nucleon;
14
+ const endDate = (_a = nucleon === null || nucleon === void 0 ? void 0 : nucleon.data) === null || _a === void 0 ? void 0 : _a.end_date;
15
+ const isActive = (_b = nucleon === null || nucleon === void 0 ? void 0 : nucleon.data) === null || _b === void 0 ? void 0 : _b.is_active;
16
+ const isCancelled = endDate && endDate !== '0000-00-00';
17
+ const status = isActive ? (isCancelled ? 'uncancel' : 'cancel') : 'reactivate';
18
+ const showActionForm = !isActive || !endDate || endDate === '0000-00-00';
19
+ return html `
20
+ <vaadin-button
21
+ theme="tertiary-inline${showActionForm ? (isActive ? ' error' : ' success') : ''}"
22
+ @click=${(evt) => {
23
+ var _a;
24
+ const button = evt.currentTarget;
25
+ (_a = this.renderRoot.querySelector('#dialog')) === null || _a === void 0 ? void 0 : _a.show(button);
26
+ }}
27
+ >
28
+ <foxy-i18n infer="" key="caption_${status}"></foxy-i18n>
29
+ </vaadin-button>
30
+
31
+ ${showActionForm
32
+ ? html `
33
+ <foxy-form-dialog
34
+ infer="form"
35
+ form="foxy-internal-admin-subscription-form-status-action-form"
36
+ href=${ifDefined(nucleon === null || nucleon === void 0 ? void 0 : nucleon.href)}
37
+ no-confirm-when-dirty
38
+ close-on-patch
39
+ alert
40
+ id="dialog"
41
+ >
42
+ </foxy-form-dialog>
43
+ `
44
+ : html `
45
+ <foxy-internal-confirm-dialog
46
+ message="uncancel_message"
47
+ confirm="uncancel_confirm"
48
+ cancel="uncancel_cancel"
49
+ header="uncancel_header"
50
+ infer=""
51
+ id="dialog"
52
+ @hide=${(evt) => {
53
+ var _a, _b;
54
+ if (!evt.detail.cancelled) {
55
+ (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.edit({ end_date: '0000-00-00' });
56
+ (_b = this.nucleon) === null || _b === void 0 ? void 0 : _b.submit();
57
+ }
58
+ }}
59
+ >
60
+ </foxy-internal-confirm-dialog>
61
+ `}
62
+ `;
63
+ }
64
+ }
65
+ //# sourceMappingURL=InternalAdminSubscriptionFormStatusAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalAdminSubscriptionFormStatusAction.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/InternalAdminSubscriptionFormStatusAction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,yCAA0C,SAAQ,eAAe;IAC5E,IAAI,cAAc;QAChB,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACxC,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa;;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAuC,CAAC;QAC7D,MAAM,OAAO,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,QAAQ,CAAC;QACxC,MAAM,QAAQ,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,SAAS,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,IAAI,OAAO,KAAK,YAAY,CAAC;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/E,MAAM,cAAc,GAAG,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,YAAY,CAAC;QAEzE,OAAO,IAAI,CAAA;;gCAEiB,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;iBACvE,CAAC,GAAU,EAAE,EAAE;;YACtB,MAAM,MAAM,GAAG,GAAG,CAAC,aAA4B,CAAC;YAChD,MAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAa,SAAS,CAAC,0CAAE,IAAI,CAAC,MAAM,EAAE;QACrE,CAAC;;2CAEkC,MAAM;;;QAGzC,cAAc;YACd,CAAC,CAAC,IAAI,CAAA;;;;qBAIO,SAAS,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;;;;;;;WAOlC;YACH,CAAC,CAAC,IAAI,CAAA;;;;;;;;sBAQQ,CAAC,GAAoB,EAAE,EAAE;;gBAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;oBACzB,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;oBAC/C,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAG;iBACxB;YACH,CAAC;;;WAGJ;KACN,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { AdminSubscriptionForm } from '../../AdminSubscriptionForm';\nimport type { DialogHideEvent } from '../../../../private/Dialog/DialogHideEvent';\nimport type { TemplateResult } from 'lit-html';\nimport type { FormDialog } from '../../../FormDialog/FormDialog';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nexport class InternalAdminSubscriptionFormStatusAction extends InternalControl {\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n alwaysMatch.unshift('form:save-button');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderControl(): TemplateResult {\n const nucleon = this.nucleon as AdminSubscriptionForm | null;\n const endDate = nucleon?.data?.end_date;\n const isActive = nucleon?.data?.is_active;\n const isCancelled = endDate && endDate !== '0000-00-00';\n const status = isActive ? (isCancelled ? 'uncancel' : 'cancel') : 'reactivate';\n const showActionForm = !isActive || !endDate || endDate === '0000-00-00';\n\n return html`\n <vaadin-button\n theme=\"tertiary-inline${showActionForm ? (isActive ? ' error' : ' success') : ''}\"\n @click=${(evt: Event) => {\n const button = evt.currentTarget as HTMLElement;\n this.renderRoot.querySelector<FormDialog>('#dialog')?.show(button);\n }}\n >\n <foxy-i18n infer=\"\" key=\"caption_${status}\"></foxy-i18n>\n </vaadin-button>\n\n ${showActionForm\n ? html`\n <foxy-form-dialog\n infer=\"form\"\n form=\"foxy-internal-admin-subscription-form-status-action-form\"\n href=${ifDefined(nucleon?.href)}\n no-confirm-when-dirty\n close-on-patch\n alert\n id=\"dialog\"\n >\n </foxy-form-dialog>\n `\n : html`\n <foxy-internal-confirm-dialog\n message=\"uncancel_message\"\n confirm=\"uncancel_confirm\"\n cancel=\"uncancel_cancel\"\n header=\"uncancel_header\"\n infer=\"\"\n id=\"dialog\"\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) {\n this.nucleon?.edit({ end_date: '0000-00-00' });\n this.nucleon?.submit();\n }\n }}\n >\n </foxy-internal-confirm-dialog>\n `}\n `;\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import '@vaadin/vaadin-button';
2
+ import '../../../../internal/InternalConfirmDialog/index';
3
+ import '../../../../internal/InternalControl/index';
4
+ import '../../../FormDialog/index';
5
+ import '../../../I18n/index';
6
+ import '../InternalAdminSubscriptionFormStatusActionForm/index';
7
+ import { InternalAdminSubscriptionFormStatusAction } from './InternalAdminSubscriptionFormStatusAction';
8
+ export { InternalAdminSubscriptionFormStatusAction };
@@ -0,0 +1,10 @@
1
+ import '@vaadin/vaadin-button';
2
+ import "../../../../internal/InternalConfirmDialog/index.js";
3
+ import "../../../../internal/InternalControl/index.js";
4
+ import "../../../FormDialog/index.js";
5
+ import "../../../I18n/index.js";
6
+ import "../InternalAdminSubscriptionFormStatusActionForm/index.js";
7
+ import { InternalAdminSubscriptionFormStatusAction } from "./InternalAdminSubscriptionFormStatusAction.js";
8
+ customElements.define('foxy-internal-admin-subscription-form-status-action', InternalAdminSubscriptionFormStatusAction);
9
+ export { InternalAdminSubscriptionFormStatusAction };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusAction/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,6DAA0D;AAC1D,uDAAoD;AAEpD,sCAAmC;AACnC,gCAA6B;AAE7B,mEAAgE;AAEhE,OAAO,EAAE,yCAAyC,EAAE,uDAAoD;AAExG,cAAc,CAAC,MAAM,CACnB,qDAAqD,EACrD,yCAAyC,CAC1C,CAAC;AAEF,OAAO,EAAE,yCAAyC,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../../../internal/InternalConfirmDialog/index';\nimport '../../../../internal/InternalControl/index';\n\nimport '../../../FormDialog/index';\nimport '../../../I18n/index';\n\nimport '../InternalAdminSubscriptionFormStatusActionForm/index';\n\nimport { InternalAdminSubscriptionFormStatusAction } from './InternalAdminSubscriptionFormStatusAction';\n\ncustomElements.define(\n 'foxy-internal-admin-subscription-form-status-action',\n InternalAdminSubscriptionFormStatusAction\n);\n\nexport { InternalAdminSubscriptionFormStatusAction };\n"]}
@@ -0,0 +1,18 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import type { NucleonV8N } from '../../../NucleonElement/types';
3
+ import type { Data } from './types';
4
+ import { BooleanSelector } from '@foxy.io/sdk/core';
5
+ import { InternalForm } from '../../../../internal/InternalForm/InternalForm';
6
+ export declare class InternalAdminSubscriptionFormStatusActionForm extends InternalForm<Data> {
7
+ static get v8n(): NucleonV8N<Data, InternalAdminSubscriptionFormStatusActionForm>;
8
+ private readonly __endDatePresetOptions;
9
+ private readonly __endDatePresetGetValue;
10
+ private readonly __endDatePresetSetValue;
11
+ private readonly __endDateGetValue;
12
+ private readonly __nextTransactionDateGetValue;
13
+ get readonlySelector(): BooleanSelector;
14
+ renderBody(): TemplateResult;
15
+ submit(): void;
16
+ protected _sendPatch(edits: Partial<Data>): Promise<Data>;
17
+ private __renderFaq;
18
+ }
@@ -0,0 +1,185 @@
1
+ import { BooleanSelector } from '@foxy.io/sdk/core';
2
+ import { serializeDate } from "../../../../../utils/serialize-date.js";
3
+ import { InternalForm } from "../../../../internal/InternalForm/InternalForm.js";
4
+ import { parseDate } from "../../../../../utils/parse-date.js";
5
+ import { html, svg } from 'lit-html';
6
+ export class InternalAdminSubscriptionFormStatusActionForm extends InternalForm {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.__endDatePresetOptions = JSON.stringify([
10
+ { value: 'tomorrow', label: 'option_tomorrow' },
11
+ { value: 'next_transaction_date', label: 'option_next_transaction_date' },
12
+ { value: 'custom_date', label: 'option_custom_date' },
13
+ ]);
14
+ this.__endDatePresetGetValue = () => { var _a; return (_a = this.form.end_date_preset) !== null && _a !== void 0 ? _a : 'next_transaction_date'; };
15
+ this.__endDatePresetSetValue = (newValue) => {
16
+ this.edit({ end_date_preset: newValue });
17
+ if (newValue === 'tomorrow') {
18
+ const tomorrowDate = new Date();
19
+ tomorrowDate.setDate(tomorrowDate.getDate() + 1);
20
+ tomorrowDate.setHours(0, 0, 0, 0);
21
+ this.edit({ end_date: serializeDate(tomorrowDate) });
22
+ }
23
+ else if (newValue === 'next_transaction_date') {
24
+ this.edit({ end_date: this.form.next_transaction_date });
25
+ }
26
+ else {
27
+ this.edit({ end_date: '' });
28
+ }
29
+ };
30
+ this.__endDateGetValue = () => {
31
+ return this.form.end_date_preset ? this.form.end_date : this.form.next_transaction_date;
32
+ };
33
+ this.__nextTransactionDateGetValue = () => {
34
+ const tomorrowDate = new Date();
35
+ tomorrowDate.setDate(tomorrowDate.getDate() + 1);
36
+ tomorrowDate.setHours(0, 0, 0, 0);
37
+ const tomorrow = serializeDate(tomorrowDate);
38
+ if (!this.form.next_transaction_date)
39
+ return tomorrow;
40
+ const currentNextDate = parseDate(this.form.next_transaction_date.substring(0, 10));
41
+ if (!currentNextDate || currentNextDate < tomorrowDate)
42
+ return tomorrow;
43
+ return this.form.next_transaction_date;
44
+ };
45
+ }
46
+ static get v8n() {
47
+ return [
48
+ ({ next_transaction_date, end_date }, host) => {
49
+ var _a;
50
+ if ((_a = host.data) === null || _a === void 0 ? void 0 : _a.is_active) {
51
+ if (!end_date || end_date === '0000-00-00')
52
+ return 'end-date:v8n_required';
53
+ }
54
+ else {
55
+ if (!next_transaction_date)
56
+ return 'next-transaction-date:v8n_required';
57
+ }
58
+ return true;
59
+ },
60
+ ];
61
+ }
62
+ get readonlySelector() {
63
+ const alwaysMatch = [super.readonlySelector.toString()];
64
+ if (this.form.end_date_preset !== 'custom_date')
65
+ alwaysMatch.push('end-date');
66
+ return new BooleanSelector(alwaysMatch.join(' ').trim());
67
+ }
68
+ renderBody() {
69
+ var _a;
70
+ const tomorrowDate = new Date();
71
+ tomorrowDate.setDate(tomorrowDate.getDate() + 1);
72
+ tomorrowDate.setHours(0, 0, 0, 0);
73
+ const isActive = !!((_a = this.data) === null || _a === void 0 ? void 0 : _a.is_active);
74
+ const action = isActive ? 'cancel' : 'reactivate';
75
+ const color = isActive ? 'bg-error-10' : 'bg-success-10';
76
+ const icon = isActive
77
+ ? svg `<svg class="text-error" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width: 2rem; height: 2rem;"><path stroke-linecap="round" stroke-linejoin="round" d="M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z" /></svg>`
78
+ : svg `<svg class="text-success" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width: 2rem; height: 2rem;"><path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" /></svg>`;
79
+ return html `
80
+ <foxy-internal-summary-control infer="" label="" helper-text="">
81
+ <div class="text-center flex flex-col items-center bg-transparent">
82
+ <div class="rounded-full ${color} p-m mb-s mx-auto">${icon}</div>
83
+ <p class="font-medium text-xl leading-m">
84
+ <foxy-i18n infer="" key="${action}_title"></foxy-i18n>
85
+ </p>
86
+ <p class="text-secondary leading-s">
87
+ <foxy-i18n infer="" key="${action}_subtitle"></foxy-i18n>
88
+ </p>
89
+ </div>
90
+ </foxy-internal-summary-control>
91
+
92
+ <foxy-internal-summary-control infer="" label="" helper-text="">
93
+ ${isActive
94
+ ? html `
95
+ <foxy-internal-select-control
96
+ options=${this.__endDatePresetOptions}
97
+ layout="summary-item"
98
+ infer="end-date-preset"
99
+ .getValue=${this.__endDatePresetGetValue}
100
+ .setValue=${this.__endDatePresetSetValue}
101
+ >
102
+ </foxy-internal-select-control>
103
+
104
+ <foxy-internal-date-control
105
+ layout="summary-item"
106
+ infer="end-date"
107
+ min=${serializeDate(tomorrowDate)}
108
+ hide-clear-button
109
+ .getValue=${this.__endDateGetValue}
110
+ >
111
+ </foxy-internal-date-control>
112
+ `
113
+ : html `
114
+ <foxy-internal-date-control
115
+ layout="summary-item"
116
+ infer="next-transaction-date"
117
+ min=${serializeDate(tomorrowDate)}
118
+ hide-clear-button
119
+ .getValue=${this.__nextTransactionDateGetValue}
120
+ >
121
+ </foxy-internal-date-control>
122
+ `}
123
+ </foxy-internal-summary-control>
124
+
125
+ <foxy-internal-summary-control infer="" label="" helper-text="">
126
+ ${isActive
127
+ ? [
128
+ this.__renderFaq('cancel_why_not_today', svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-error flex-shrink-0" style="width: 1.25em; height: 1.25em;"><path d="M5.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H6a.75.75 0 0 1-.75-.75V12ZM6 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H6ZM7.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H8a.75.75 0 0 1-.75-.75V12ZM8 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H8ZM9.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V10ZM10 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H10ZM9.25 14a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V14ZM12 9.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V10a.75.75 0 0 0-.75-.75H12ZM11.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H12a.75.75 0 0 1-.75-.75V12ZM12 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H12ZM13.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H14a.75.75 0 0 1-.75-.75V10ZM14 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H14Z" /><path fill-rule="evenodd" d="M5.75 2a.75.75 0 0 1 .75.75V4h7V2.75a.75.75 0 0 1 1.5 0V4h.25A2.75 2.75 0 0 1 18 6.75v8.5A2.75 2.75 0 0 1 15.25 18H4.75A2.75 2.75 0 0 1 2 15.25v-8.5A2.75 2.75 0 0 1 4.75 4H5V2.75A.75.75 0 0 1 5.75 2Zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75Z" clip-rule="evenodd" /></svg>`),
129
+ this.__renderFaq('cancel_whats_next', svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-error flex-shrink-0" style="width: 1.25em; height: 1.25em;"><path d="M3.288 4.818A1.5 1.5 0 0 0 1 6.095v7.81a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905c.155-.096.285-.213.389-.344v2.973a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905a1.5 1.5 0 0 0 0-2.552l-6.323-3.906A1.5 1.5 0 0 0 10 6.095v2.972a1.506 1.506 0 0 0-.389-.343L3.288 4.818Z" /></svg>`),
130
+ this.__renderFaq('cancel_how_to_reactivate', svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-error flex-shrink-0" style="width: 1.25em; height: 1.25em;"><path d="M6.111 11.89A5.5 5.5 0 1 1 15.501 8 .75.75 0 0 0 17 8a7 7 0 1 0-11.95 4.95.75.75 0 0 0 1.06-1.06Z" /><path d="M8.232 6.232a2.5 2.5 0 0 0 0 3.536.75.75 0 1 1-1.06 1.06A4 4 0 1 1 14 8a.75.75 0 0 1-1.5 0 2.5 2.5 0 0 0-4.268-1.768Z" /><path d="M10.766 7.51a.75.75 0 0 0-1.37.365l-.492 6.861a.75.75 0 0 0 1.204.65l1.043-.799.985 3.678a.75.75 0 0 0 1.45-.388l-.978-3.646 1.292.204a.75.75 0 0 0 .74-1.16l-3.874-5.764Z" /></svg>`),
131
+ ]
132
+ : [
133
+ this.__renderFaq('reactivate_why_not_today', svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-success flex-shrink-0" style="width: 1.25em; height: 1.25em;"><path d="M5.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H6a.75.75 0 0 1-.75-.75V12ZM6 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H6ZM7.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H8a.75.75 0 0 1-.75-.75V12ZM8 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H8ZM9.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V10ZM10 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H10ZM9.25 14a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V14ZM12 9.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V10a.75.75 0 0 0-.75-.75H12ZM11.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H12a.75.75 0 0 1-.75-.75V12ZM12 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H12ZM13.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H14a.75.75 0 0 1-.75-.75V10ZM14 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H14Z" /><path fill-rule="evenodd" d="M5.75 2a.75.75 0 0 1 .75.75V4h7V2.75a.75.75 0 0 1 1.5 0V4h.25A2.75 2.75 0 0 1 18 6.75v8.5A2.75 2.75 0 0 1 15.25 18H4.75A2.75 2.75 0 0 1 2 15.25v-8.5A2.75 2.75 0 0 1 4.75 4H5V2.75A.75.75 0 0 1 5.75 2Zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75Z" clip-rule="evenodd" /></svg>`),
134
+ this.__renderFaq('reactivate_whats_next', svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="text-success flex-shrink-0" style="width: 1.25em; height: 1.25em;"><path d="M3.288 4.818A1.5 1.5 0 0 0 1 6.095v7.81a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905c.155-.096.285-.213.389-.344v2.973a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905a1.5 1.5 0 0 0 0-2.552l-6.323-3.906A1.5 1.5 0 0 0 10 6.095v2.972a1.506 1.506 0 0 0-.389-.343L3.288 4.818Z" /></svg>`),
135
+ ]}
136
+ </foxy-internal-summary-control>
137
+
138
+ <vaadin-button
139
+ theme="primary ${isActive ? 'error' : 'success'} large"
140
+ class="w-full"
141
+ ?disabled=${this.disabled}
142
+ @click=${() => this.submit()}
143
+ >
144
+ <foxy-i18n infer="" key="${action}_submit"></foxy-i18n>
145
+ </vaadin-button>
146
+ `;
147
+ }
148
+ submit() {
149
+ var _a;
150
+ if ((_a = this.data) === null || _a === void 0 ? void 0 : _a.is_active) {
151
+ if (this.__endDatePresetGetValue() === 'next_transaction_date') {
152
+ this.edit({ end_date: this.form.next_transaction_date });
153
+ }
154
+ }
155
+ else {
156
+ this.edit({
157
+ next_transaction_date: this.__nextTransactionDateGetValue(),
158
+ is_active: true,
159
+ end_date: '0000-00-00',
160
+ });
161
+ }
162
+ super.submit();
163
+ }
164
+ async _sendPatch(edits) {
165
+ delete edits.end_date_preset;
166
+ return super._sendPatch(edits);
167
+ }
168
+ __renderFaq(prefix, icon) {
169
+ return html `
170
+ <div
171
+ class="bg-transparent flex leading-xs"
172
+ style="gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
173
+ >
174
+ ${icon}
175
+ <p class="grid">
176
+ <foxy-i18n class="leading-m text-s font-medium" infer="" key="${prefix}_title">
177
+ </foxy-i18n>
178
+ <foxy-i18n class="leading-xs text-secondary text-xs" infer="" key="${prefix}_text">
179
+ </foxy-i18n>
180
+ </p>
181
+ </div>
182
+ `;
183
+ }
184
+ }
185
+ //# sourceMappingURL=InternalAdminSubscriptionFormStatusActionForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalAdminSubscriptionFormStatusActionForm.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/InternalAdminSubscriptionFormStatusActionForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SVGTemplateResult, TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../../../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { serializeDate } from '../../../../../utils/serialize-date';\nimport { InternalForm } from '../../../../internal/InternalForm/InternalForm';\nimport { parseDate } from '../../../../../utils/parse-date';\nimport { html, svg } from 'lit-html';\n\nexport class InternalAdminSubscriptionFormStatusActionForm extends InternalForm<Data> {\n static get v8n(): NucleonV8N<Data, InternalAdminSubscriptionFormStatusActionForm> {\n return [\n ({ next_transaction_date, end_date }, host) => {\n if (host.data?.is_active) {\n if (!end_date || end_date === '0000-00-00') return 'end-date:v8n_required';\n } else {\n if (!next_transaction_date) return 'next-transaction-date:v8n_required';\n }\n\n return true;\n },\n ];\n }\n\n private readonly __endDatePresetOptions = JSON.stringify([\n { value: 'tomorrow', label: 'option_tomorrow' },\n { value: 'next_transaction_date', label: 'option_next_transaction_date' },\n { value: 'custom_date', label: 'option_custom_date' },\n ]);\n\n private readonly __endDatePresetGetValue = () =>\n this.form.end_date_preset ?? 'next_transaction_date';\n\n private readonly __endDatePresetSetValue = (newValue: string) => {\n this.edit({ end_date_preset: newValue });\n\n if (newValue === 'tomorrow') {\n const tomorrowDate = new Date();\n tomorrowDate.setDate(tomorrowDate.getDate() + 1);\n tomorrowDate.setHours(0, 0, 0, 0);\n this.edit({ end_date: serializeDate(tomorrowDate) });\n } else if (newValue === 'next_transaction_date') {\n this.edit({ end_date: this.form.next_transaction_date });\n } else {\n this.edit({ end_date: '' });\n }\n };\n\n private readonly __endDateGetValue = () => {\n return this.form.end_date_preset ? this.form.end_date : this.form.next_transaction_date;\n };\n\n private readonly __nextTransactionDateGetValue = () => {\n const tomorrowDate = new Date();\n tomorrowDate.setDate(tomorrowDate.getDate() + 1);\n tomorrowDate.setHours(0, 0, 0, 0);\n\n const tomorrow = serializeDate(tomorrowDate);\n if (!this.form.next_transaction_date) return tomorrow;\n\n const currentNextDate = parseDate(this.form.next_transaction_date.substring(0, 10));\n if (!currentNextDate || currentNextDate < tomorrowDate) return tomorrow;\n\n return this.form.next_transaction_date;\n };\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [super.readonlySelector.toString()];\n if (this.form.end_date_preset !== 'custom_date') alwaysMatch.push('end-date');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n const tomorrowDate = new Date();\n tomorrowDate.setDate(tomorrowDate.getDate() + 1);\n tomorrowDate.setHours(0, 0, 0, 0);\n\n const isActive = !!this.data?.is_active;\n const action = isActive ? 'cancel' : 'reactivate';\n const color = isActive ? 'bg-error-10' : 'bg-success-10';\n const icon = isActive\n ? svg`<svg class=\"text-error\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" style=\"width: 2rem; height: 2rem;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z\" /></svg>`\n : svg`<svg class=\"text-success\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" style=\"width: 2rem; height: 2rem;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99\" /></svg>`;\n\n return html`\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n <div class=\"text-center flex flex-col items-center bg-transparent\">\n <div class=\"rounded-full ${color} p-m mb-s mx-auto\">${icon}</div>\n <p class=\"font-medium text-xl leading-m\">\n <foxy-i18n infer=\"\" key=\"${action}_title\"></foxy-i18n>\n </p>\n <p class=\"text-secondary leading-s\">\n <foxy-i18n infer=\"\" key=\"${action}_subtitle\"></foxy-i18n>\n </p>\n </div>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${isActive\n ? html`\n <foxy-internal-select-control\n options=${this.__endDatePresetOptions}\n layout=\"summary-item\"\n infer=\"end-date-preset\"\n .getValue=${this.__endDatePresetGetValue}\n .setValue=${this.__endDatePresetSetValue}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-date-control\n layout=\"summary-item\"\n infer=\"end-date\"\n min=${serializeDate(tomorrowDate)}\n hide-clear-button\n .getValue=${this.__endDateGetValue}\n >\n </foxy-internal-date-control>\n `\n : html`\n <foxy-internal-date-control\n layout=\"summary-item\"\n infer=\"next-transaction-date\"\n min=${serializeDate(tomorrowDate)}\n hide-clear-button\n .getValue=${this.__nextTransactionDateGetValue}\n >\n </foxy-internal-date-control>\n `}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"\" label=\"\" helper-text=\"\">\n ${isActive\n ? [\n this.__renderFaq(\n 'cancel_why_not_today',\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-error flex-shrink-0\" style=\"width: 1.25em; height: 1.25em;\"><path d=\"M5.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H6a.75.75 0 0 1-.75-.75V12ZM6 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H6ZM7.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H8a.75.75 0 0 1-.75-.75V12ZM8 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H8ZM9.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V10ZM10 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H10ZM9.25 14a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V14ZM12 9.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V10a.75.75 0 0 0-.75-.75H12ZM11.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H12a.75.75 0 0 1-.75-.75V12ZM12 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H12ZM13.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H14a.75.75 0 0 1-.75-.75V10ZM14 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H14Z\" /><path fill-rule=\"evenodd\" d=\"M5.75 2a.75.75 0 0 1 .75.75V4h7V2.75a.75.75 0 0 1 1.5 0V4h.25A2.75 2.75 0 0 1 18 6.75v8.5A2.75 2.75 0 0 1 15.25 18H4.75A2.75 2.75 0 0 1 2 15.25v-8.5A2.75 2.75 0 0 1 4.75 4H5V2.75A.75.75 0 0 1 5.75 2Zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75Z\" clip-rule=\"evenodd\" /></svg>`\n ),\n this.__renderFaq(\n 'cancel_whats_next',\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-error flex-shrink-0\" style=\"width: 1.25em; height: 1.25em;\"><path d=\"M3.288 4.818A1.5 1.5 0 0 0 1 6.095v7.81a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905c.155-.096.285-.213.389-.344v2.973a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905a1.5 1.5 0 0 0 0-2.552l-6.323-3.906A1.5 1.5 0 0 0 10 6.095v2.972a1.506 1.506 0 0 0-.389-.343L3.288 4.818Z\" /></svg>`\n ),\n this.__renderFaq(\n 'cancel_how_to_reactivate',\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-error flex-shrink-0\" style=\"width: 1.25em; height: 1.25em;\"><path d=\"M6.111 11.89A5.5 5.5 0 1 1 15.501 8 .75.75 0 0 0 17 8a7 7 0 1 0-11.95 4.95.75.75 0 0 0 1.06-1.06Z\" /><path d=\"M8.232 6.232a2.5 2.5 0 0 0 0 3.536.75.75 0 1 1-1.06 1.06A4 4 0 1 1 14 8a.75.75 0 0 1-1.5 0 2.5 2.5 0 0 0-4.268-1.768Z\" /><path d=\"M10.766 7.51a.75.75 0 0 0-1.37.365l-.492 6.861a.75.75 0 0 0 1.204.65l1.043-.799.985 3.678a.75.75 0 0 0 1.45-.388l-.978-3.646 1.292.204a.75.75 0 0 0 .74-1.16l-3.874-5.764Z\" /></svg>`\n ),\n ]\n : [\n this.__renderFaq(\n 'reactivate_why_not_today',\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-success flex-shrink-0\" style=\"width: 1.25em; height: 1.25em;\"><path d=\"M5.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H6a.75.75 0 0 1-.75-.75V12ZM6 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H6ZM7.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H8a.75.75 0 0 1-.75-.75V12ZM8 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H8ZM9.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V10ZM10 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H10ZM9.25 14a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H10a.75.75 0 0 1-.75-.75V14ZM12 9.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V10a.75.75 0 0 0-.75-.75H12ZM11.25 12a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H12a.75.75 0 0 1-.75-.75V12ZM12 13.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V14a.75.75 0 0 0-.75-.75H12ZM13.25 10a.75.75 0 0 1 .75-.75h.01a.75.75 0 0 1 .75.75v.01a.75.75 0 0 1-.75.75H14a.75.75 0 0 1-.75-.75V10ZM14 11.25a.75.75 0 0 0-.75.75v.01c0 .414.336.75.75.75h.01a.75.75 0 0 0 .75-.75V12a.75.75 0 0 0-.75-.75H14Z\" /><path fill-rule=\"evenodd\" d=\"M5.75 2a.75.75 0 0 1 .75.75V4h7V2.75a.75.75 0 0 1 1.5 0V4h.25A2.75 2.75 0 0 1 18 6.75v8.5A2.75 2.75 0 0 1 15.25 18H4.75A2.75 2.75 0 0 1 2 15.25v-8.5A2.75 2.75 0 0 1 4.75 4H5V2.75A.75.75 0 0 1 5.75 2Zm-1 5.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25v-6.5c0-.69-.56-1.25-1.25-1.25H4.75Z\" clip-rule=\"evenodd\" /></svg>`\n ),\n this.__renderFaq(\n 'reactivate_whats_next',\n svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" class=\"text-success flex-shrink-0\" style=\"width: 1.25em; height: 1.25em;\"><path d=\"M3.288 4.818A1.5 1.5 0 0 0 1 6.095v7.81a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905c.155-.096.285-.213.389-.344v2.973a1.5 1.5 0 0 0 2.288 1.276l6.323-3.905a1.5 1.5 0 0 0 0-2.552l-6.323-3.906A1.5 1.5 0 0 0 10 6.095v2.972a1.506 1.506 0 0 0-.389-.343L3.288 4.818Z\" /></svg>`\n ),\n ]}\n </foxy-internal-summary-control>\n\n <vaadin-button\n theme=\"primary ${isActive ? 'error' : 'success'} large\"\n class=\"w-full\"\n ?disabled=${this.disabled}\n @click=${() => this.submit()}\n >\n <foxy-i18n infer=\"\" key=\"${action}_submit\"></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n submit(): void {\n if (this.data?.is_active) {\n if (this.__endDatePresetGetValue() === 'next_transaction_date') {\n this.edit({ end_date: this.form.next_transaction_date });\n }\n } else {\n this.edit({\n next_transaction_date: this.__nextTransactionDateGetValue(),\n is_active: true,\n end_date: '0000-00-00',\n });\n }\n\n super.submit();\n }\n\n protected async _sendPatch(edits: Partial<Data>): Promise<Data> {\n delete edits.end_date_preset;\n return super._sendPatch(edits);\n }\n\n private __renderFaq(prefix: string, icon: SVGTemplateResult) {\n return html`\n <div\n class=\"bg-transparent flex leading-xs\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${icon}\n <p class=\"grid\">\n <foxy-i18n class=\"leading-m text-s font-medium\" infer=\"\" key=\"${prefix}_title\">\n </foxy-i18n>\n <foxy-i18n class=\"leading-xs text-secondary text-xs\" infer=\"\" key=\"${prefix}_text\">\n </foxy-i18n>\n </p>\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import '@vaadin/vaadin-button';
2
+ import '../../../../internal/InternalSummaryControl/index';
3
+ import '../../../../internal/InternalSelectControl/index';
4
+ import '../../../../internal/InternalDateControl/index';
5
+ import '../../../../internal/InternalForm/index';
6
+ import '../../../I18n/index';
7
+ import { InternalAdminSubscriptionFormStatusActionForm } from './InternalAdminSubscriptionFormStatusActionForm';
8
+ export { InternalAdminSubscriptionFormStatusActionForm };
@@ -0,0 +1,10 @@
1
+ import '@vaadin/vaadin-button';
2
+ import "../../../../internal/InternalSummaryControl/index.js";
3
+ import "../../../../internal/InternalSelectControl/index.js";
4
+ import "../../../../internal/InternalDateControl/index.js";
5
+ import "../../../../internal/InternalForm/index.js";
6
+ import "../../../I18n/index.js";
7
+ import { InternalAdminSubscriptionFormStatusActionForm } from "./InternalAdminSubscriptionFormStatusActionForm.js";
8
+ customElements.define('foxy-internal-admin-subscription-form-status-action-form', InternalAdminSubscriptionFormStatusActionForm);
9
+ export { InternalAdminSubscriptionFormStatusActionForm };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,8DAA2D;AAC3D,6DAA0D;AAC1D,2DAAwD;AACxD,oDAAiD;AAEjD,gCAA6B;AAE7B,OAAO,EAAE,6CAA6C,EAAE,2DAAwD;AAEhH,cAAc,CAAC,MAAM,CACnB,0DAA0D,EAC1D,6CAA6C,CAC9C,CAAC;AAEF,OAAO,EAAE,6CAA6C,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../../../internal/InternalSummaryControl/index';\nimport '../../../../internal/InternalSelectControl/index';\nimport '../../../../internal/InternalDateControl/index';\nimport '../../../../internal/InternalForm/index';\n\nimport '../../../I18n/index';\n\nimport { InternalAdminSubscriptionFormStatusActionForm } from './InternalAdminSubscriptionFormStatusActionForm';\n\ncustomElements.define(\n 'foxy-internal-admin-subscription-form-status-action-form',\n InternalAdminSubscriptionFormStatusActionForm\n);\n\nexport { InternalAdminSubscriptionFormStatusActionForm };\n"]}
@@ -0,0 +1,5 @@
1
+ import type { Resource } from '@foxy.io/sdk/core';
2
+ import type { Rels } from '@foxy.io/sdk/backend';
3
+ export declare type Data = Resource<Rels.Subscription> & {
4
+ end_date_preset?: string | null;
5
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormStatusActionForm/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.Subscription> & { end_date_preset?: string | null };\n"]}
@@ -14,6 +14,8 @@ import { BooleanSelector } from '@foxy.io/sdk/core';
14
14
  export declare class FormDialog extends Dialog {
15
15
  /** @readonly */
16
16
  static get properties(): PropertyDeclarations;
17
+ /** If true, FormDialog won't show the confirmation dialog when the form is dirty. */
18
+ noConfirmWhenDirty: boolean;
17
19
  /** If true, FormDialog will automatically close after the associated form updates the resource. */
18
20
  closeOnPatch: boolean;
19
21
  /** If true, FormDialog won't automatically close after the associated form deletes the resource. */
@@ -17,6 +17,8 @@ import { BooleanSelector } from '@foxy.io/sdk/core';
17
17
  export class FormDialog extends Dialog {
18
18
  constructor() {
19
19
  super(...arguments);
20
+ /** If true, FormDialog won't show the confirmation dialog when the form is dirty. */
21
+ this.noConfirmWhenDirty = false;
20
22
  /** If true, FormDialog will automatically close after the associated form updates the resource. */
21
23
  this.closeOnPatch = false;
22
24
  /** If true, FormDialog won't automatically close after the associated form deletes the resource. */
@@ -76,6 +78,7 @@ export class FormDialog extends Dialog {
76
78
  closeOnPatch: { type: Boolean, attribute: 'close-on-patch' },
77
79
  keepOpenOnPost: { type: Boolean, attribute: 'keep-open-on-post' },
78
80
  keepOpenOnDelete: { type: Boolean, attribute: 'keep-open-on-delete' },
81
+ noConfirmWhenDirty: { type: Boolean, attribute: 'no-confirm-when-dirty' },
79
82
  };
80
83
  }
81
84
  get hiddenSelector() {
@@ -150,7 +153,7 @@ export class FormDialog extends Dialog {
150
153
  `;
151
154
  }
152
155
  async hide(cancelled = false) {
153
- if (cancelled && this.editable) {
156
+ if (cancelled && this.editable && !this.noConfirmWhenDirty) {
154
157
  const confirm = this.renderRoot.querySelector('#confirm');
155
158
  confirm.show();
156
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/elements/public/FormDialog/FormDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '../NucleonElement/API';\nimport { Dialog } from '../../private/Dialog/Dialog';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { FormRenderer } from './types';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport { spread } from '@open-wc/lit-helpers';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\n\n/**\n * Dialog wrapper for the forms made with NucleonElement.\n *\n * @fires FormDialog#show - Instance of `FormDialog.ShowEvent`. Dispatched after dialog finishes entry transition.\n * @fires FormDialog#hide - Instance of `FormDialog.HideEvent`. Dispatched after dialog finishes exit transition.\n *\n * @element foxy-form-dialog\n * @since 1.1.0\n */\nexport class FormDialog extends Dialog {\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n href: { type: String },\n form: { type: String, noAccessor: true },\n group: { type: String },\n props: { type: Object },\n parent: { type: String },\n related: { type: Array },\n closeOnPatch: { type: Boolean, attribute: 'close-on-patch' },\n keepOpenOnPost: { type: Boolean, attribute: 'keep-open-on-post' },\n keepOpenOnDelete: { type: Boolean, attribute: 'keep-open-on-delete' },\n };\n }\n\n /** If true, FormDialog will automatically close after the associated form updates the resource. */\n closeOnPatch = false;\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepOpenOnPost = false;\n\n /** Optional URI list of the related resources (passed to form). */\n related: string[] = [];\n\n /** Optional URL of the collection this resource belongs to (passed to form). */\n parent = '';\n\n /** Properties to set on the form element using the `spread()` helper. */\n props: Record<string, unknown> = {};\n\n group = '';\n\n /** Optional URL of the resource to load (passed to form). */\n href = '';\n\n private __form: string | null | FormRenderer = null;\n\n private __renderForm: FormRenderer | null = null;\n\n private __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n };\n\n private __handleUpdate = (evt: Event) => {\n if (!(evt instanceof UpdateEvent)) return;\n\n const result = evt.detail?.result;\n const Result = UpdateEvent.UpdateResult;\n const target = evt.currentTarget as NucleonElement<never>;\n\n if (\n (!this.keepOpenOnDelete && result === Result.ResourceDeleted) ||\n (!this.keepOpenOnPost && result === Result.ResourceCreated) ||\n (this.closeOnPatch && result === Result.ResourceUpdated && target.errors.length === 0)\n ) {\n this.open = false;\n }\n\n if (this.parent !== target.parent) this.parent = target.parent;\n if (this.href !== target.href) this.href = target.href;\n\n this.closable = !target.in('busy');\n this.editable =\n target.in({ idle: { template: { dirty: 'valid' } } }) ||\n target.in({ idle: { snapshot: { dirty: 'valid' } } });\n };\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`submit undo ${super.hiddenSelector}`.trim());\n }\n\n /**\n * Form's custom element tag. Generated custom element will have the following attributes:\n *\n * - `parent` – same as `foxy-form-dialog[parent]`;\n * - `href` – same as `foxy-form-dialog[href]`;\n * - `lang` – same as `foxy-form-dialog[lang]`;\n */\n get form(): string | null | FormRenderer {\n return this.__form;\n }\n\n set form(value: string | null | FormRenderer) {\n this.__form = value;\n\n if (typeof value === 'string') {\n this.__renderForm = new Function(\n 'options',\n `return options.html\\`\n <${value}\n id=\"form\"\n ns=\"$\\{options.dialog.ns} $\\{customElements.get('${value}')?.defaultNS ?? ''}\"\n href=\\${options.dialog.href}\n lang=\\${options.dialog.lang}\n group=\\${options.dialog.group}\n parent=\\${options.dialog.parent}\n disabledcontrols=\\${options.dialog.disabledSelector.toString()}\n readonlycontrols=\\${options.dialog.readonlySelector.toString()}\n hiddencontrols=\\${options.dialog.hiddenSelector.toString()}\n ?disabled=\\${options.dialog.disabled}\n ?readonly=\\${options.dialog.readonly}\n ?hidden=\\${options.dialog.hidden}\n .templates=\\${options.dialog.templates}\n .related=\\${options.dialog.related}\n ...=$\\{options.spread(options.dialog.props)}\n @fetch=\\${options.handleFetch}\n @update=\\${options.handleUpdate}\n >\n </${value}>\\``\n ) as FormRenderer;\n } else {\n this.__renderForm = value;\n }\n\n this.requestUpdate();\n }\n\n /** @readonly */\n render(): TemplateResult {\n return html`\n <foxy-internal-confirm-dialog\n message=\"undo_message\"\n confirm=\"undo_confirm\"\n cancel=\"undo_cancel\"\n header=\"undo_header\"\n theme=\"error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && super.hide(true)}\n >\n </foxy-internal-confirm-dialog>\n\n ${super.render(() => {\n return html`${this.__renderForm?.({\n handleUpdate: this.__handleUpdate,\n handleFetch: this.__handleFetch,\n spread: spread,\n dialog: this,\n html,\n })}`;\n })}\n `;\n }\n\n async hide(cancelled = false): Promise<void> {\n if (cancelled && this.editable) {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show();\n } else {\n return super.hide(cancelled);\n }\n }\n\n /** Submits the form. */\n async save(): Promise<void> {\n (this.renderRoot.querySelector('#form') as NucleonElement<never>).submit();\n }\n}\n"]}
1
+ {"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/elements/public/FormDialog/FormDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { API } from '../NucleonElement/API';\nimport { Dialog } from '../../private/Dialog/Dialog';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { FetchEvent } from '../NucleonElement/FetchEvent';\nimport { FormRenderer } from './types';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { UpdateEvent } from '../NucleonElement/UpdateEvent';\nimport { spread } from '@open-wc/lit-helpers';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\n\n/**\n * Dialog wrapper for the forms made with NucleonElement.\n *\n * @fires FormDialog#show - Instance of `FormDialog.ShowEvent`. Dispatched after dialog finishes entry transition.\n * @fires FormDialog#hide - Instance of `FormDialog.HideEvent`. Dispatched after dialog finishes exit transition.\n *\n * @element foxy-form-dialog\n * @since 1.1.0\n */\nexport class FormDialog extends Dialog {\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n href: { type: String },\n form: { type: String, noAccessor: true },\n group: { type: String },\n props: { type: Object },\n parent: { type: String },\n related: { type: Array },\n closeOnPatch: { type: Boolean, attribute: 'close-on-patch' },\n keepOpenOnPost: { type: Boolean, attribute: 'keep-open-on-post' },\n keepOpenOnDelete: { type: Boolean, attribute: 'keep-open-on-delete' },\n noConfirmWhenDirty: { type: Boolean, attribute: 'no-confirm-when-dirty' },\n };\n }\n\n /** If true, FormDialog won't show the confirmation dialog when the form is dirty. */\n noConfirmWhenDirty = false;\n\n /** If true, FormDialog will automatically close after the associated form updates the resource. */\n closeOnPatch = false;\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepOpenOnPost = false;\n\n /** Optional URI list of the related resources (passed to form). */\n related: string[] = [];\n\n /** Optional URL of the collection this resource belongs to (passed to form). */\n parent = '';\n\n /** Properties to set on the form element using the `spread()` helper. */\n props: Record<string, unknown> = {};\n\n group = '';\n\n /** Optional URL of the resource to load (passed to form). */\n href = '';\n\n private __form: string | null | FormRenderer = null;\n\n private __renderForm: FormRenderer | null = null;\n\n private __handleFetch = (evt: Event) => {\n if (!(evt instanceof FetchEvent)) return;\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n };\n\n private __handleUpdate = (evt: Event) => {\n if (!(evt instanceof UpdateEvent)) return;\n\n const result = evt.detail?.result;\n const Result = UpdateEvent.UpdateResult;\n const target = evt.currentTarget as NucleonElement<never>;\n\n if (\n (!this.keepOpenOnDelete && result === Result.ResourceDeleted) ||\n (!this.keepOpenOnPost && result === Result.ResourceCreated) ||\n (this.closeOnPatch && result === Result.ResourceUpdated && target.errors.length === 0)\n ) {\n this.open = false;\n }\n\n if (this.parent !== target.parent) this.parent = target.parent;\n if (this.href !== target.href) this.href = target.href;\n\n this.closable = !target.in('busy');\n this.editable =\n target.in({ idle: { template: { dirty: 'valid' } } }) ||\n target.in({ idle: { snapshot: { dirty: 'valid' } } });\n };\n\n get hiddenSelector(): BooleanSelector {\n return new BooleanSelector(`submit undo ${super.hiddenSelector}`.trim());\n }\n\n /**\n * Form's custom element tag. Generated custom element will have the following attributes:\n *\n * - `parent` – same as `foxy-form-dialog[parent]`;\n * - `href` – same as `foxy-form-dialog[href]`;\n * - `lang` – same as `foxy-form-dialog[lang]`;\n */\n get form(): string | null | FormRenderer {\n return this.__form;\n }\n\n set form(value: string | null | FormRenderer) {\n this.__form = value;\n\n if (typeof value === 'string') {\n this.__renderForm = new Function(\n 'options',\n `return options.html\\`\n <${value}\n id=\"form\"\n ns=\"$\\{options.dialog.ns} $\\{customElements.get('${value}')?.defaultNS ?? ''}\"\n href=\\${options.dialog.href}\n lang=\\${options.dialog.lang}\n group=\\${options.dialog.group}\n parent=\\${options.dialog.parent}\n disabledcontrols=\\${options.dialog.disabledSelector.toString()}\n readonlycontrols=\\${options.dialog.readonlySelector.toString()}\n hiddencontrols=\\${options.dialog.hiddenSelector.toString()}\n ?disabled=\\${options.dialog.disabled}\n ?readonly=\\${options.dialog.readonly}\n ?hidden=\\${options.dialog.hidden}\n .templates=\\${options.dialog.templates}\n .related=\\${options.dialog.related}\n ...=$\\{options.spread(options.dialog.props)}\n @fetch=\\${options.handleFetch}\n @update=\\${options.handleUpdate}\n >\n </${value}>\\``\n ) as FormRenderer;\n } else {\n this.__renderForm = value;\n }\n\n this.requestUpdate();\n }\n\n /** @readonly */\n render(): TemplateResult {\n return html`\n <foxy-internal-confirm-dialog\n message=\"undo_message\"\n confirm=\"undo_confirm\"\n cancel=\"undo_cancel\"\n header=\"undo_header\"\n theme=\"error\"\n lang=${this.lang}\n ns=${this.ns}\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => !evt.detail.cancelled && super.hide(true)}\n >\n </foxy-internal-confirm-dialog>\n\n ${super.render(() => {\n return html`${this.__renderForm?.({\n handleUpdate: this.__handleUpdate,\n handleFetch: this.__handleFetch,\n spread: spread,\n dialog: this,\n html,\n })}`;\n })}\n `;\n }\n\n async hide(cancelled = false): Promise<void> {\n if (cancelled && this.editable && !this.noConfirmWhenDirty) {\n const confirm = this.renderRoot.querySelector('#confirm') as InternalConfirmDialog;\n confirm.show();\n } else {\n return super.hide(cancelled);\n }\n }\n\n /** Submits the form. */\n async save(): Promise<void> {\n (this.renderRoot.querySelector('#form') as NucleonElement<never>).submit();\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import type { PropertyDeclarations } from 'lit-element';
2
2
  import type { TemplateResult } from 'lit-html';
3
3
  import type { Data } from './types';
4
- import { TwoLineCard } from '../CustomFieldCard/TwoLineCard';
5
- declare const Base: typeof TwoLineCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
4
+ import { InternalCard } from '../../internal/InternalCard/InternalCard';
5
+ declare const Base: typeof InternalCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
6
6
  defaultNS: string;
7
7
  };
8
8
  /**
@@ -1,8 +1,8 @@
1
1
  import { TranslatableMixin } from "../../../mixins/translatable.js";
2
- import { TwoLineCard } from "../CustomFieldCard/TwoLineCard.js";
2
+ import { InternalCard } from "../../internal/InternalCard/InternalCard.js";
3
3
  import { html } from 'lit-html';
4
4
  const NS = 'payments-api-payment-method-card';
5
- const Base = TranslatableMixin(TwoLineCard, NS);
5
+ const Base = TranslatableMixin(InternalCard, NS);
6
6
  /**
7
7
  * Card element representing a `fx:payment_method` resource of Payments API.
8
8
  *
@@ -34,12 +34,6 @@ export class PaymentsApiPaymentMethodCard extends Base {
34
34
  }
35
35
  renderBody() {
36
36
  var _a, _b;
37
- const defaultLayout = super.renderBody({
38
- title: data => html `${data.helper.name}`,
39
- subtitle: data => html `${data.description}`,
40
- });
41
- if (!this.in({ idle: 'snapshot' }))
42
- return defaultLayout;
43
37
  const defaultSrc = PaymentsApiPaymentMethodCard.defaultImageSrc;
44
38
  const data = this.data;
45
39
  return html `
@@ -53,8 +47,9 @@ export class PaymentsApiPaymentMethodCard extends Base {
53
47
  alt=${this.t('image_alt')}
54
48
  @error=${(evt) => (evt.currentTarget.src = defaultSrc)}
55
49
  />
56
-
57
- <figcaption class="min-w-0 flex-1">${defaultLayout}</figcaption>
50
+ <figcaption class="min-w-0 flex-1" data-testid="title">
51
+ ${data === null || data === void 0 ? void 0 : data.helper.name}&ZeroWidthSpace;
52
+ </figcaption>
58
53
  </figure>
59
54
  `;
60
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApiPaymentMethodCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,WAAW,EAAE,0CAAuC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kCAAkC,CAAC;AAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,4BAA6B,SAAQ,IAAU;IAA5D;;QAYE;;;WAGG;QACH,gBAAW,GAAsC,IAAI,CAAC;IA6BxD,CAAC;IA5CC,MAAM,KAAK,eAAe;QACxB,OAAO,goBAAgoB,CAAC;IAC1oB,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAClC,CAAC;IACJ,CAAC;IAQD,UAAU;;QACR,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACxC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,WAAW,EAAE;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAAE,OAAO,aAAa,CAAC;QAEzD,MAAM,UAAU,GAAG,4BAA4B,CAAC,eAAe,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,OAAO,IAAI,CAAA;;;;;;;gBAOC,MAAA,CAAC,IAAI,CAAC,CAAC,OAAC,IAAI,CAAC,WAAW,+CAAhB,IAAI,EAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAI,UAAU;gBAC3D,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;mBAChB,CAAC,GAAU,EAAE,EAAE,CAAC,CAAE,GAAG,CAAC,aAAkC,CAAC,GAAG,GAAG,UAAU,CAAC;;;6CAGhD,aAAa;;KAErD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { html } from 'lit-html';\n\nconst NS = 'payments-api-payment-method-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Card element representing a `fx:payment_method` resource of Payments API.\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 * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-card\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodCard extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getImageSrc: { attribute: false },\n };\n }\n\n /**\n * Payment method image/logo URL getter.\n * If left `null`, the card will display the default image.\n */\n getImageSrc: ((type: string) => string) | null = null;\n\n renderBody(): TemplateResult {\n const defaultLayout = super.renderBody({\n title: data => html`${data.helper.name}`,\n subtitle: data => html`${data.description}`,\n });\n\n if (!this.in({ idle: 'snapshot' })) return defaultLayout;\n\n const defaultSrc = PaymentsApiPaymentMethodCard.defaultImageSrc;\n const data = this.data;\n\n return html`\n <figure\n class=\"flex items-center\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <img\n class=\"relative h-s w-s object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs\"\n src=${(data ? this.getImageSrc?.(data.type) : null) ?? defaultSrc}\n alt=${this.t('image_alt')}\n @error=${(evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc)}\n />\n\n <figcaption class=\"min-w-0 flex-1\">${defaultLayout}</figcaption>\n </figure>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentsApiPaymentMethodCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kCAAkC,CAAC;AAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,4BAA6B,SAAQ,IAAU;IAA5D;;QAYE;;;WAGG;QACH,gBAAW,GAAsC,IAAI,CAAC;IAuBxD,CAAC;IAtCC,MAAM,KAAK,eAAe;QACxB,OAAO,goBAAgoB,CAAC;IAC1oB,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAClC,CAAC;IACJ,CAAC;IAQD,UAAU;;QACR,MAAM,UAAU,GAAG,4BAA4B,CAAC,eAAe,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,OAAO,IAAI,CAAA;;;;;;;gBAOC,MAAA,CAAC,IAAI,CAAC,CAAC,OAAC,IAAI,CAAC,WAAW,+CAAhB,IAAI,EAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAI,UAAU;gBAC3D,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;mBAChB,CAAC,GAAU,EAAE,EAAE,CAAC,CAAE,GAAG,CAAC,aAAkC,CAAC,GAAG,GAAG,UAAU,CAAC;;;YAGjF,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI;;;KAGxB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { html } from 'lit-html';\n\nconst NS = 'payments-api-payment-method-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing a `fx:payment_method` resource of Payments API.\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 * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @element foxy-payments-api-payment-method-card\n * @since 1.21.0\n */\nexport class PaymentsApiPaymentMethodCard extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='m29.3 14 14-14H32.1l-14 14h11.2Zm2.7 9.9 12-12V.7L30.62 14.1A2 2 0 0 1 32 16v7.9ZM13.31 44h11.18L44 24.5V13.3l-12 12V28a2 2 0 0 1-2 2h-2.69l-14 14Zm-1.41 0H.7l14-14h11.2l-14 14Zm14 0h11.2l6.9-6.9V25.9L25.9 44Zm12.6 0H44v-5.5L38.5 44Z'/%3E%3Cpath fill='%23fff' d='M30 28H14v-6h16v6Zm0-10v-2H14v2h16ZM0 43.3l13.4-13.4A2 2 0 0 1 12 28v-7.9L0 32.12V43.3Z'/%3E%3Cpath fill='%23fff' d='M16.7 14H14c-1.11 0-1.99.89-1.99 2v2.7L0 30.7V19.52L19.52 0H30.7l-14 14Zm1.4-14H6.92L0 6.92V18.1L18.1 0ZM5.5 0H0v5.5L5.5 0Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getImageSrc: { attribute: false },\n };\n }\n\n /**\n * Payment method image/logo URL getter.\n * If left `null`, the card will display the default image.\n */\n getImageSrc: ((type: string) => string) | null = null;\n\n renderBody(): TemplateResult {\n const defaultSrc = PaymentsApiPaymentMethodCard.defaultImageSrc;\n const data = this.data;\n\n return html`\n <figure\n class=\"flex items-center\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n <img\n class=\"relative h-s w-s object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs\"\n src=${(data ? this.getImageSrc?.(data.type) : null) ?? defaultSrc}\n alt=${this.t('image_alt')}\n @error=${(evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc)}\n />\n <figcaption class=\"min-w-0 flex-1\" data-testid=\"title\">\n ${data?.helper.name}&ZeroWidthSpace;\n </figcaption>\n </figure>\n `;\n }\n}\n"]}
@@ -1,5 +1,3 @@
1
- import '../../internal/InternalSandbox/index';
2
- import '../Spinner/index';
3
- import '../I18n/index';
1
+ import '../../internal/InternalCard/index';
4
2
  import { PaymentsApiPaymentMethodCard } from './PaymentsApiPaymentMethodCard';
5
3
  export { PaymentsApiPaymentMethodCard };
@@ -1,6 +1,4 @@
1
- import "../../internal/InternalSandbox/index.js";
2
- import "../Spinner/index.js";
3
- import "../I18n/index.js";
1
+ import "../../internal/InternalCard/index.js";
4
2
  import { PaymentsApiPaymentMethodCard } from "./PaymentsApiPaymentMethodCard.js";
5
3
  customElements.define('foxy-payments-api-payment-method-card', PaymentsApiPaymentMethodCard);
6
4
  export { PaymentsApiPaymentMethodCard };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodCard/index.ts"],"names":[],"mappings":"AAAA,iDAA8C;AAE9C,6BAA0B;AAC1B,0BAAuB;AAEvB,OAAO,EAAE,4BAA4B,EAAE,0CAAuC;AAE9E,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,4BAA4B,CAAC,CAAC;AAE7F,OAAO,EAAE,4BAA4B,EAAE,CAAC","sourcesContent":["import '../../internal/InternalSandbox/index';\n\nimport '../Spinner/index';\nimport '../I18n/index';\n\nimport { PaymentsApiPaymentMethodCard } from './PaymentsApiPaymentMethodCard';\n\ncustomElements.define('foxy-payments-api-payment-method-card', PaymentsApiPaymentMethodCard);\n\nexport { PaymentsApiPaymentMethodCard };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiPaymentMethodCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAE3C,OAAO,EAAE,4BAA4B,EAAE,0CAAuC;AAE9E,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,4BAA4B,CAAC,CAAC;AAE7F,OAAO,EAAE,4BAA4B,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\n\nimport { PaymentsApiPaymentMethodCard } from './PaymentsApiPaymentMethodCard';\n\ncustomElements.define('foxy-payments-api-payment-method-card', PaymentsApiPaymentMethodCard);\n\nexport { PaymentsApiPaymentMethodCard };\n"]}
@@ -37,6 +37,7 @@ export declare class PaymentsApiPaymentMethodForm extends Base<Data> {
37
37
  private readonly __threeDSecureToggleSetValue;
38
38
  private readonly __threeDSecureToggleOptions;
39
39
  private readonly __cardVerificationOptions;
40
+ private __search;
40
41
  get hiddenSelector(): BooleanSelector;
41
42
  renderHeader(...params: Parameters<InternalForm<Data>['renderHeader']>): TemplateResult;
42
43
  get headerTitleOptions(): Record<string, unknown>;