@foxy.io/elements 1.18.0-beta.18 → 1.18.0-beta.19

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 (315) 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 -0
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -0
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -0
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -0
  13. package/dist/cdn/foxy-cart-form.js +1 -0
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-api.js +1 -1
  25. package/dist/cdn/foxy-customer-card.js +1 -1
  26. package/dist/cdn/foxy-customer-form.js +1 -1
  27. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  28. package/dist/cdn/foxy-customer-portal.js +3 -2
  29. package/dist/cdn/foxy-customer.js +1 -1
  30. package/dist/cdn/foxy-customers-table.js +1 -1
  31. package/dist/cdn/foxy-discount-builder.js +1 -1
  32. package/dist/cdn/foxy-discount-card.js +1 -1
  33. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  34. package/dist/cdn/foxy-donation.js +1 -1
  35. package/dist/cdn/foxy-email-template-card.js +1 -1
  36. package/dist/cdn/foxy-email-template-form.js +1 -1
  37. package/dist/cdn/foxy-error-entry-card.js +1 -1
  38. package/dist/cdn/foxy-form-dialog.js +1 -1
  39. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  40. package/dist/cdn/foxy-gift-card-card.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  43. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  44. package/dist/cdn/foxy-gift-card-form.js +1 -1
  45. package/dist/cdn/foxy-i18n-editor.js +2 -2
  46. package/dist/cdn/foxy-i18n.js +1 -1
  47. package/dist/cdn/foxy-integration-card.js +1 -1
  48. package/dist/cdn/foxy-integration-form.js +1 -1
  49. package/dist/cdn/foxy-item-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-form.js +1 -1
  52. package/dist/cdn/foxy-item-form.js +1 -1
  53. package/dist/cdn/foxy-item-option-card.js +1 -1
  54. package/dist/cdn/foxy-item-option-form.js +1 -1
  55. package/dist/cdn/foxy-items-form.js +1 -1
  56. package/dist/cdn/foxy-nucleon-element.js +1 -1
  57. package/dist/cdn/foxy-pagination.js +1 -1
  58. package/dist/cdn/foxy-payment-card.js +1 -1
  59. package/dist/cdn/foxy-payment-method-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  66. package/dist/cdn/foxy-payments-api.js +1 -1
  67. package/dist/cdn/foxy-query-builder.js +1 -1
  68. package/dist/cdn/foxy-report-form.js +1 -1
  69. package/dist/cdn/foxy-reports-table.js +1 -1
  70. package/dist/cdn/foxy-shipment-card.js +1 -1
  71. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  72. package/dist/cdn/foxy-sign-in-form.js +1 -1
  73. package/dist/cdn/foxy-spinner.js +2 -2
  74. package/dist/cdn/foxy-store-form.js +1 -1
  75. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  76. package/dist/cdn/foxy-subscription-card.js +1 -1
  77. package/dist/cdn/foxy-subscription-form.js +4 -16
  78. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  79. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  80. package/dist/cdn/foxy-table.js +1 -1
  81. package/dist/cdn/foxy-tax-card.js +1 -1
  82. package/dist/cdn/foxy-tax-form.js +1 -1
  83. package/dist/cdn/foxy-template-card.js +1 -1
  84. package/dist/cdn/foxy-template-config-form.js +1 -1
  85. package/dist/cdn/foxy-template-form.js +1 -1
  86. package/dist/cdn/foxy-template-set-card.js +1 -1
  87. package/dist/cdn/foxy-template-set-form.js +1 -1
  88. package/dist/cdn/foxy-transaction-card.js +1 -1
  89. package/dist/cdn/foxy-transaction.js +1 -1
  90. package/dist/cdn/foxy-transactions-table.js +60 -1
  91. package/dist/cdn/foxy-user-form.js +1 -1
  92. package/dist/cdn/foxy-users-table.js +1 -1
  93. package/dist/cdn/foxy-webhook-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-form.js +1 -1
  95. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  96. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  97. package/dist/cdn/{shared-29e21467.js → shared-00752056.js} +1 -1
  98. package/dist/cdn/{shared-56d26968.js → shared-01d2cae6.js} +1 -1
  99. package/dist/cdn/{shared-d5f242df.js → shared-09c75a01.js} +1 -1
  100. package/dist/cdn/shared-09eb558f.js +1 -0
  101. package/dist/cdn/{shared-236d9b7e.js → shared-0a52b08c.js} +1 -1
  102. package/dist/cdn/{shared-55e20d5b.js → shared-0b17e9a6.js} +1 -1
  103. package/dist/cdn/{shared-f022673a.js → shared-124a17c1.js} +1 -1
  104. package/dist/cdn/{shared-344485cf.js → shared-15effede.js} +5 -5
  105. package/dist/cdn/{shared-196fa627.js → shared-17cb43f3.js} +2 -2
  106. package/dist/cdn/shared-181f51bd.js +1 -0
  107. package/dist/cdn/{shared-262caea4.js → shared-1936d1d5.js} +1 -1
  108. package/dist/cdn/{shared-f2d19582.js → shared-1e9fd9f1.js} +1 -1
  109. package/dist/cdn/{shared-c52d3772.js → shared-2470973b.js} +1 -1
  110. package/dist/cdn/{shared-923da875.js → shared-254ef6a4.js} +1 -1
  111. package/dist/cdn/shared-2afc2d3b.js +1 -0
  112. package/dist/cdn/{shared-0672e78b.js → shared-2bce9f91.js} +1 -1
  113. package/dist/cdn/{shared-b5cbbdd8.js → shared-2c067e88.js} +1 -1
  114. package/dist/cdn/{shared-dcbf57e0.js → shared-2f7dcefa.js} +1 -1
  115. package/dist/cdn/{shared-4975f86f.js → shared-37d6c723.js} +1 -1
  116. package/dist/cdn/{shared-3a3878c9.js → shared-39549b4e.js} +1 -1
  117. package/dist/cdn/{shared-f23d122e.js → shared-3aecf4e3.js} +1 -1
  118. package/dist/cdn/{shared-17d24760.js → shared-3ba49bac.js} +1 -1
  119. package/dist/cdn/shared-436f4187.js +1 -0
  120. package/dist/cdn/{shared-5ad8c9a0.js → shared-43bcce74.js} +1 -1
  121. package/dist/cdn/{shared-34b11d34.js → shared-4c32f1ad.js} +1 -1
  122. package/dist/cdn/{shared-ea316e64.js → shared-4cf568d8.js} +1 -1
  123. package/dist/cdn/{shared-2215e6c8.js → shared-50f97405.js} +1 -1
  124. package/dist/cdn/{shared-4308cdab.js → shared-54c5d16b.js} +1 -1
  125. package/dist/cdn/{shared-ff2f84c7.js → shared-63139d9e.js} +1 -1
  126. package/dist/cdn/{shared-ef0fc329.js → shared-6a53f85f.js} +1 -1
  127. package/dist/cdn/{shared-002b788f.js → shared-76b3d76a.js} +1 -1
  128. package/dist/cdn/shared-7a1de87a.js +1 -0
  129. package/dist/cdn/shared-7b6f4a11.js +1 -0
  130. package/dist/cdn/{shared-8a5bdad3.js → shared-7cc9cc71.js} +1 -1
  131. package/dist/cdn/{shared-162fc285.js → shared-7df6ee40.js} +1 -1
  132. package/dist/cdn/shared-7e2ea44c.js +1 -0
  133. package/dist/cdn/{shared-bb522838.js → shared-7ed14dc8.js} +1 -1
  134. package/dist/cdn/shared-839dd3a8.js +1 -0
  135. package/dist/cdn/{shared-da6cc488.js → shared-862b436d.js} +1 -1
  136. package/dist/cdn/{shared-b0a6d48f.js → shared-873b14d1.js} +1 -1
  137. package/dist/cdn/{shared-5b55627c.js → shared-875748d8.js} +1 -1
  138. package/dist/cdn/{shared-2d3027f4.js → shared-8b6addec.js} +1 -1
  139. package/dist/cdn/{shared-07fb5be2.js → shared-90b8ef49.js} +1 -1
  140. package/dist/cdn/{shared-b7f7f15f.js → shared-9923f00e.js} +1 -1
  141. package/dist/cdn/{shared-b28dbc68.js → shared-9c3934c8.js} +1 -1
  142. package/dist/cdn/{shared-6b8874a7.js → shared-9cba1b0e.js} +1 -1
  143. package/dist/cdn/{shared-aebbceea.js → shared-a2e9009b.js} +1 -1
  144. package/dist/cdn/{shared-d43fc5cc.js → shared-a696c602.js} +1 -1
  145. package/dist/cdn/shared-a85afa33.js +1 -0
  146. package/dist/cdn/{shared-e396ec04.js → shared-ab687b1e.js} +1 -1
  147. package/dist/cdn/{shared-c484320b.js → shared-aef0c294.js} +1 -1
  148. package/dist/cdn/shared-b51997d1.js +1 -0
  149. package/dist/cdn/{shared-8a5e01ae.js → shared-b90ddfc1.js} +1 -1
  150. package/dist/cdn/shared-bcc6e13b.js +1 -0
  151. package/dist/cdn/{shared-b8e9b536.js → shared-bfc37e75.js} +1 -1
  152. package/dist/cdn/{shared-6d2064e9.js → shared-c434e6d6.js} +3 -3
  153. package/dist/cdn/{shared-ce1ae7e1.js → shared-cce2fc5a.js} +1 -1
  154. package/dist/cdn/{shared-1f0841ec.js → shared-cd6381a5.js} +1 -1
  155. package/dist/cdn/{shared-a86761d3.js → shared-cef7c63d.js} +2 -2
  156. package/dist/cdn/{shared-7b167fe9.js → shared-cfae0154.js} +1 -1
  157. package/dist/cdn/{shared-98652709.js → shared-d34586cb.js} +1 -1
  158. package/dist/cdn/shared-d4f80692.js +1 -0
  159. package/dist/cdn/{shared-2c842660.js → shared-d7e653ae.js} +1 -1
  160. package/dist/cdn/shared-d8b07f4f.js +1 -0
  161. package/dist/cdn/{shared-85f9051e.js → shared-db61a5e8.js} +1 -1
  162. package/dist/cdn/{shared-b0ff4590.js → shared-ddf10c04.js} +1 -1
  163. package/dist/cdn/{shared-d302ad2c.js → shared-ea67b3f3.js} +1 -1
  164. package/dist/cdn/translations/admin-subscription-card/en.json +27 -0
  165. package/dist/cdn/translations/applied-coupon-code-card/en.json +7 -0
  166. package/dist/cdn/translations/applied-coupon-code-form/en.json +26 -0
  167. package/dist/cdn/translations/cart-card/en.json +15 -0
  168. package/dist/cdn/translations/cart-form/en.json +762 -0
  169. package/dist/cdn/translations/coupon-card/en.json +2 -2
  170. package/dist/cdn/translations/customer-portal/en.json +9 -9
  171. package/dist/cdn/translations/subscription-form/en.json +116 -21
  172. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +2 -0
  173. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +4 -0
  174. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -1
  175. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +3 -3
  176. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +12 -10
  177. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  178. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +1 -1
  179. package/dist/elements/internal/InternalAsyncListControl/index.js +1 -1
  180. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  181. package/dist/elements/internal/InternalCard/InternalCard.d.ts +1 -0
  182. package/dist/elements/internal/InternalCard/InternalCard.js +12 -4
  183. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  184. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +2 -1
  185. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
  186. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +6 -1
  187. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +21 -0
  188. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
  189. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -0
  190. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +6 -0
  191. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  192. package/dist/elements/private/Dialog/Dialog.js +1 -0
  193. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  194. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.d.ts +40 -0
  195. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +304 -0
  196. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -0
  197. package/dist/elements/public/AdminSubscriptionCard/index.d.ts +4 -0
  198. package/dist/elements/public/AdminSubscriptionCard/index.js +6 -0
  199. package/dist/elements/public/AdminSubscriptionCard/index.js.map +1 -0
  200. package/dist/elements/public/AdminSubscriptionCard/types.d.ts +9 -0
  201. package/dist/elements/public/AdminSubscriptionCard/types.js +2 -0
  202. package/dist/elements/public/AdminSubscriptionCard/types.js.map +1 -0
  203. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.d.ts +11 -0
  204. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js +33 -0
  205. package/dist/elements/public/AppliedCouponCodeCard/AppliedCouponCodeCard.js.map +1 -0
  206. package/dist/elements/public/AppliedCouponCodeCard/index.d.ts +4 -0
  207. package/dist/elements/public/AppliedCouponCodeCard/index.js +6 -0
  208. package/dist/elements/public/AppliedCouponCodeCard/index.js.map +1 -0
  209. package/dist/elements/public/AppliedCouponCodeCard/types.d.ts +3 -0
  210. package/dist/elements/public/AppliedCouponCodeCard/types.js +2 -0
  211. package/dist/elements/public/AppliedCouponCodeCard/types.js.map +1 -0
  212. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.d.ts +18 -0
  213. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js +54 -0
  214. package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js.map +1 -0
  215. package/dist/elements/public/AppliedCouponCodeForm/index.d.ts +5 -0
  216. package/dist/elements/public/AppliedCouponCodeForm/index.js +7 -0
  217. package/dist/elements/public/AppliedCouponCodeForm/index.js.map +1 -0
  218. package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +5 -0
  219. package/dist/elements/public/AppliedCouponCodeForm/types.js +2 -0
  220. package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -0
  221. package/dist/elements/public/AttributeCard/AttributeCard.js +5 -4
  222. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  223. package/dist/elements/public/CartCard/CartCard.d.ts +42 -0
  224. package/dist/elements/public/CartCard/CartCard.js +264 -0
  225. package/dist/elements/public/CartCard/CartCard.js.map +1 -0
  226. package/dist/elements/public/CartCard/index.d.ts +5 -0
  227. package/dist/elements/public/CartCard/index.js +7 -0
  228. package/dist/elements/public/CartCard/index.js.map +1 -0
  229. package/dist/elements/public/CartCard/types.d.ts +5 -0
  230. package/dist/elements/public/CartCard/types.js +2 -0
  231. package/dist/elements/public/CartCard/types.js.map +1 -0
  232. package/dist/elements/public/CartForm/CartForm.d.ts +59 -0
  233. package/dist/elements/public/CartForm/CartForm.js +603 -0
  234. package/dist/elements/public/CartForm/CartForm.js.map +1 -0
  235. package/dist/elements/public/CartForm/index.d.ts +19 -0
  236. package/dist/elements/public/CartForm/index.js +21 -0
  237. package/dist/elements/public/CartForm/index.js.map +1 -0
  238. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.d.ts +10 -0
  239. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js +83 -0
  240. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js.map +1 -0
  241. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.d.ts +4 -0
  242. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js +6 -0
  243. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js.map +1 -0
  244. package/dist/elements/public/CartForm/types.d.ts +3 -0
  245. package/dist/elements/public/CartForm/types.js +2 -0
  246. package/dist/elements/public/CartForm/types.js.map +1 -0
  247. package/dist/elements/public/CollectionPage/CollectionPage.js +11 -8
  248. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  249. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +5 -4
  250. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  251. package/dist/elements/public/CustomerCard/CustomerCard.js +1 -1
  252. package/dist/elements/public/CustomerCard/CustomerCard.js.map +1 -1
  253. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +3 -1
  254. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  255. package/dist/elements/public/DiscountCard/DiscountCard.js +2 -1
  256. package/dist/elements/public/DiscountCard/DiscountCard.js.map +1 -1
  257. package/dist/elements/public/GiftCardCard/GiftCardCard.js +2 -2
  258. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -1
  259. package/dist/elements/public/IntegrationCard/IntegrationCard.js +2 -2
  260. package/dist/elements/public/IntegrationCard/IntegrationCard.js.map +1 -1
  261. package/dist/elements/public/ItemCard/ItemCard.d.ts +26 -4
  262. package/dist/elements/public/ItemCard/ItemCard.js +216 -27
  263. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  264. package/dist/elements/public/ItemCard/index.d.ts +1 -0
  265. package/dist/elements/public/ItemCard/index.js +1 -0
  266. package/dist/elements/public/ItemCard/index.js.map +1 -1
  267. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.d.ts +3 -1
  268. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js +4 -3
  269. package/dist/elements/public/ItemCategoryCard/ItemCategoryCard.js.map +1 -1
  270. package/dist/elements/public/ItemForm/ItemForm.d.ts +3 -0
  271. package/dist/elements/public/ItemForm/ItemForm.js +58 -8
  272. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  273. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +25 -5
  274. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +200 -17
  275. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -1
  276. package/dist/elements/public/ItemOptionCard/index.d.ts +1 -0
  277. package/dist/elements/public/ItemOptionCard/index.js +1 -0
  278. package/dist/elements/public/ItemOptionCard/index.js.map +1 -1
  279. package/dist/elements/public/NucleonElement/NucleonElement.js +25 -14
  280. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  281. package/dist/elements/public/Pagination/Pagination.js +2 -2
  282. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  283. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  284. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  285. package/dist/elements/public/SubscriptionForm/SubscriptionForm.d.ts +46 -14
  286. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +300 -156
  287. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  288. package/dist/elements/public/SubscriptionForm/index.d.ts +9 -4
  289. package/dist/elements/public/SubscriptionForm/index.js +9 -4
  290. package/dist/elements/public/SubscriptionForm/index.js.map +1 -1
  291. package/dist/elements/public/SubscriptionForm/types.d.ts +2 -5
  292. package/dist/elements/public/SubscriptionForm/types.js.map +1 -1
  293. package/dist/elements/public/TransactionCard/TransactionCard.js +1 -1
  294. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  295. package/dist/elements/public/index.d.ts +5 -0
  296. package/dist/elements/public/index.defined.d.ts +5 -0
  297. package/dist/elements/public/index.defined.js +5 -0
  298. package/dist/elements/public/index.defined.js.map +1 -1
  299. package/dist/elements/public/index.js +5 -0
  300. package/dist/elements/public/index.js.map +1 -1
  301. package/dist/mixins/themeable.js +29 -8
  302. package/dist/mixins/themeable.js.map +1 -1
  303. package/package.json +1 -1
  304. package/dist/cdn/shared-1b3e1a0d.js +0 -1
  305. package/dist/cdn/shared-210387cb.js +0 -1
  306. package/dist/cdn/shared-222fe491.js +0 -1
  307. package/dist/cdn/shared-515f00b1.js +0 -1
  308. package/dist/cdn/shared-5643d0ed.js +0 -1
  309. package/dist/cdn/shared-62c8cfa2.js +0 -60
  310. package/dist/cdn/shared-6b622399.js +0 -1
  311. package/dist/cdn/shared-92926b1d.js +0 -1
  312. package/dist/cdn/shared-b7219771.js +0 -1
  313. package/dist/cdn/shared-dc798bf4.js +0 -1
  314. package/dist/cdn/shared-e08bcb6c.js +0 -1
  315. package/dist/cdn/shared-fdac2851.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent, UpdateResult } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n __state: { type: String, reflect: true, attribute: 'state' },\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n private __hrefToLoad: string | null = null;\n\n private __group = '';\n\n private __unsubscribeFromRumour!: () => void;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n constructor() {\n super();\n this.__createService();\n }\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state.context.failure;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state.context.errors;\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state.context;\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state.context.data;\n }\n\n set data(data: TData | null) {\n this.__service.send({ type: 'SET_DATA', data });\n this.__hrefToLoad = null;\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.form._links?.self.href ?? this.__hrefToLoad ?? '';\n }\n\n set href(value: string) {\n if (value) {\n this.__hrefToLoad = value;\n this.__service.send({ type: 'FETCH' });\n } else {\n this.__hrefToLoad = null;\n this.__service.send({ type: 'SET_DATA', data: null });\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return this.__service.state.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n if (typeof data._links?.self.href === 'string') this.__hrefToLoad = null;\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.reportValidity();\n this.__service.send({ type: 'SUBMIT' });\n }\n\n checkValidity(): boolean {\n const isTemplateDirtyValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotDirtyValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isTemplateCleanValid = this.in({ idle: { template: { clean: 'valid' } } });\n const isSnapshotCleanValid = this.in({ idle: { snapshot: { clean: 'valid' } } });\n const isTemplateValid = isTemplateCleanValid || isTemplateDirtyValid;\n const isSnapshotValid = isSnapshotCleanValid || isSnapshotDirtyValid;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return isValid;\n }\n\n reportValidity(): boolean {\n const walker = this.ownerDocument.createTreeWalker(this.renderRoot, NodeFilter.SHOW_ELEMENT);\n\n do {\n type Input = Node & Record<string, () => unknown>;\n\n const node = walker.currentNode as Input;\n const methods = ['reportValidity', 'validate'];\n\n for (const method of methods) {\n if (method in node) {\n try {\n node[method]();\n break;\n } catch {\n continue;\n }\n }\n }\n } while (walker.nextNode());\n\n return this.checkValidity();\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n if (this.href) this.refresh();\n\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n try {\n const body = JSON.stringify(edits);\n const postData = await this._fetch(this.parent, { body, method: 'POST' });\n const data = await this._fetch(postData._links.self.href);\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data, related, source: data._links.self.href });\n\n return data;\n } finally {\n this.__createRumour();\n }\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n\n try {\n const data = await this._fetch(this.href);\n NucleonElement.Rumour(this.group).share({ data, source: this.href });\n return data;\n } finally {\n this.__createRumour();\n }\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n\n try {\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.href, { body, method: 'PATCH' });\n\n const rumour = NucleonElement.Rumour(this.group);\n rumour.share({ data, source: this.href, related: this.related });\n\n return data;\n } finally {\n this.__createRumour();\n }\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<null> {\n this.__destroyRumour();\n\n try {\n await this._fetch(this.href, { method: 'DELETE' });\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data: null, source: this.href, related });\n\n return null;\n } finally {\n this.__createRumour();\n }\n }\n\n // this getter is used by LitElement to set the \"state\" attribute\n private get __state(): string {\n const state = this.__service.state;\n const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n return [...new Set(flags)].join(' ');\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n let result: UpdateResult | undefined = undefined;\n\n if (state.matches('idle')) {\n if (state.history?.matches({ busy: 'deleting' })) {\n result = UpdateResult.ResourceDeleted;\n } else if (state.history?.matches({ busy: 'creating' })) {\n result = UpdateResult.ResourceCreated;\n }\n }\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent('update', { detail: { result } }));\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n if (!oldData) return;\n\n const newData = update(oldData);\n if (newData !== oldData) this.__service.send({ data: newData, type: 'SET_DATA' });\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n this.__service.send({ type: 'REFRESH' });\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.__service.state.matches('busy')) this.__processFetchEventQueue();\n }\n}\n"]}
1
+ {"version":3,"file":"NucleonElement.js","sourceRoot":"","sources":["../../../../src/elements/public/NucleonElement/NucleonElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComputedElementProperties, HALJSONResource, NucleonMachine, NucleonV8N } from './types';\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Nucleon, Rumour } from '@foxy.io/sdk/core';\nimport { assign, interpret } from 'xstate';\n\nimport { API } from './API';\nimport { FetchEvent } from './FetchEvent';\nimport { UpdateEvent, UpdateResult } from './UpdateEvent';\nimport memoize from 'lodash-es/memoize';\nimport { serveFromCache } from './serveFromCache';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\n/**\n * Base class for custom elements working with remote HAL+JSON resources.\n *\n * @fires NucleonElement#update - Instance of `NucleonElement.UpdateEvent`. Dispatched on an element whenever it changes its state.\n * @fires NucleonElement#fetch - Instance of `NucleonElement.API.FetchEvent`. Emitted before each API request.\n *\n * @element foxy-nucleon\n * @since 1.1.0\n */\nexport class NucleonElement<TData extends HALJSONResource> extends InferrableMixin(LitElement) {\n /**\n * Instances of this event are dispatched on an element whenever it changes its\n * state (e.g. when going from `busy` to `idle` or on `form` data change).\n * This event isn't cancelable, and it does not bubble.\n * @readonly\n */\n static readonly UpdateEvent = UpdateEvent;\n\n /**\n * Creates a tagged [Rumour](https://sdk.foxy.dev/classes/_core_index_.rumour.html)\n * instance if it doesn't exist or returns cached one otherwise. NucleonElements\n * use empty Rumour group by default.\n * @readonly\n */\n static readonly Rumour = memoize<(group: string) => Rumour>(() => new Rumour());\n\n /**\n * Universal [API](https://sdk.foxy.dev/classes/_core_index_.api.html) client\n * that dispatches cancellable `FetchEvent` on an element before each request.\n * @readonly\n */\n static readonly API = API;\n\n static get inferredProperties(): string[] {\n return [...super.inferredProperties, 'group', 'lang'];\n }\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n __state: { type: String, reflect: true, attribute: 'state' },\n related: { type: Array },\n parent: { type: String },\n group: { type: String, noAccessor: true },\n href: { type: String, noAccessor: true },\n lang: { type: String },\n };\n }\n\n /**\n * Array of validation functions. Each function accepts `element.form` and must return\n * either an error code string if form data fails the check or `true` otherwise.\n * Error codes are collected in `element.errors`. Empty by default.\n */\n static get v8n(): NucleonV8N<any> {\n return [];\n }\n\n /**\n * Optional ISO 639-1 code describing the language element content is written in.\n * Changing the `lang` attribute will update the value of this property.\n */\n lang = '';\n\n /**\n * Optional URL of the collection this element's resource belongs to.\n * Changing the `parent` attribute will update the value of this property.\n */\n parent = '';\n\n /**\n * Optional URI list of the related resources. If Rumour encounters a related\n * resource on creation or deletion, it will be reloaded from source.\n */\n related: string[] = [];\n\n private __hrefToLoad: string | null = null;\n\n private __group = '';\n\n private __unsubscribeFromRumour: (() => void) | null = null;\n\n private __fetchEventHandler!: (evt: Event) => void;\n\n private __fetchEventQueue: FetchEvent[] = [];\n\n private readonly __service = interpret(\n (Nucleon.machine as NucleonMachine<TData>).withConfig({\n services: {\n sendDelete: () => this._sendDelete(),\n sendPatch: ({ edits }) => this._sendPatch(edits!),\n sendPost: ({ edits }) => this._sendPost(edits!),\n sendGet: () => this._sendGet(),\n },\n\n actions: {\n validate: assign<Nucleon.Context<TData, string>, Nucleon.Event<TData>>({\n errors: context => {\n const rules = (this.constructor as typeof NucleonElement).v8n;\n const form = { ...context.data, ...context.edits };\n\n return rules\n .map(validate => validate(form))\n .filter(v8nResult => typeof v8nResult === 'string')\n .filter((err, errIndex, errs) => errs.indexOf(err) === errIndex) as string[];\n },\n }),\n },\n })\n );\n\n constructor() {\n super();\n this.__createService();\n }\n\n /**\n * If network request returns non-2XX code, the entire error response\n * will be available via this getter.\n *\n * This property is readonly. Changing failure records via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override error status.\n *\n * @since 1.4.0\n */\n get failure(): Response | null {\n return this.__service.state.context.failure;\n }\n\n /**\n * Array of validation errors returned from `NucleonElement.v8n` checks.\n *\n * This property is readonly. Adding or removing error codes via this property is\n * not guaranteed to work. NucleonElement does not provide a way to override validity status.\n */\n get errors(): string[] {\n return this.__service.state.context.errors;\n }\n\n /**\n * Resource snapshot with edits applied. Empty object if unavailable.\n *\n * This property and its value are readonly. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please use `element.edit({ foo: 'bar' })` instead.\n * If you need to replace the entire data object, consider using `element.data`.\n */\n get form(): Partial<TData> {\n const { data, edits } = this.__service.state.context;\n return { ...data, ...edits } as Partial<TData>;\n }\n\n /**\n * Resource snapshot as-is, no edits applied. Null if unavailable.\n *\n * Returned value is not reactive. Assignments like `element.data.foo = 'bar'`\n * are not guaranteed to work. Please set the property instead: `element.data = { ...element.data, foo: 'bar' }`.\n * If you're processing user input, consider using `element.form` and `element.edit()` instead.\n */\n get data(): TData | null {\n return this.__service.state.context.data;\n }\n\n set data(data: TData | null) {\n this.__destroyRumour();\n this.__service.send({ type: 'SET_DATA', data });\n this.__hrefToLoad = null;\n if (data) this.__createRumour();\n }\n\n /**\n * Rumour group. Elements in different groups will not share updates. Empty by default.\n * @example element.group = 'my-group'\n */\n get group(): string {\n return this.__group;\n }\n\n set group(value: string) {\n this.__group = value;\n this.__destroyRumour();\n this.__createRumour();\n }\n\n /**\n * Optional URL of the resource to load. Switches element to `idle.template` state if empty (default).\n * @example element.href = 'https://demo.foxycart.com/s/customer/attributes/0'\n */\n get href(): string {\n return this.form._links?.self.href ?? this.__hrefToLoad ?? '';\n }\n\n set href(value: string) {\n if (value) {\n this.__hrefToLoad = value;\n this.__service.send({ type: 'FETCH' });\n } else {\n this.data = null;\n }\n }\n\n /**\n * Checks if this element is in the given state.\n * @example element.in({ idle: 'snapshot' })\n */\n in<TStateValue extends Nucleon.State<TData, string>['value']>(\n stateValue: TStateValue\n ): this is this & ComputedElementProperties<TData, TStateValue> {\n return this.__service.state.matches(stateValue);\n }\n\n /**\n * Clears all edits and emits the `update` event.\n * @example element.undo()\n */\n undo(): void {\n this.__service.send({ type: 'UNDO' });\n }\n\n /**\n * Applies an edit to the local resource snapshot or its template and emits the `update` event.\n * @example element.edit({ first_name: 'Alex' })\n */\n edit(data: Partial<TData>): void {\n if (typeof data._links?.self.href === 'string') this.__hrefToLoad = null;\n this.__service.send({ type: 'EDIT', data });\n }\n\n /**\n * Submits the form, updating the resource if href isn't empty or creating it otherwise.\n * Emits multiple `update` events as element state changes. Has no effect on invalid forms.\n * @example element.submit()\n */\n submit(): void {\n this.reportValidity();\n this.__service.send({ type: 'SUBMIT' });\n }\n\n checkValidity(): boolean {\n const isTemplateDirtyValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotDirtyValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isTemplateCleanValid = this.in({ idle: { template: { clean: 'valid' } } });\n const isSnapshotCleanValid = this.in({ idle: { snapshot: { clean: 'valid' } } });\n const isTemplateValid = isTemplateCleanValid || isTemplateDirtyValid;\n const isSnapshotValid = isSnapshotCleanValid || isSnapshotDirtyValid;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return isValid;\n }\n\n reportValidity(): boolean {\n const walker = this.ownerDocument.createTreeWalker(this.renderRoot, NodeFilter.SHOW_ELEMENT);\n\n do {\n type Input = Node & Record<string, () => unknown>;\n\n const node = walker.currentNode as Input;\n const methods = ['reportValidity', 'validate'];\n\n for (const method of methods) {\n if (method in node) {\n try {\n node[method]();\n break;\n } catch {\n continue;\n }\n }\n }\n } while (walker.nextNode());\n\n return this.checkValidity();\n }\n\n /**\n * Sends a DELETE request to `element.href` and clears local data on success.\n * Emits multiple update events as element state changes.\n * @example element.delete()\n */\n delete(): void {\n this.__service.send({ type: 'DELETE' });\n }\n\n /**\n * Fetches data from `element.href` in background, keeping the edits and v8n errors.\n * @example element.refresh()\n */\n refresh(): void {\n this.__service.send({ type: 'REFRESH' });\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n if (this.href) this.refresh();\n\n this.__createRumour();\n this.__createServer();\n this.__processFetchEventQueue();\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.__destroyRumour();\n this.__destroyServer();\n this.__flushFetchEventQueue('parent element was disconnected');\n\n this.dispatchEvent(new UpdateEvent());\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n if (this.infer === null) return;\n\n this.group = (context.get('group') as string | undefined) ?? '';\n this.lang = (context.get('lang') as string | undefined) ?? '';\n }\n\n /** Sends API request. Throws an error on non-2XX response. */\n protected async _fetch<TResult = TData>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const response = await new API(this).fetch(...args);\n if (!response.ok) throw response;\n return response.json();\n }\n\n /** POSTs to `element.parent`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPost(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n const postData = await this._fetch(this.parent, { body, method: 'POST' });\n data = await this._fetch(postData._links.self.href);\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data, related, source: data._links.self.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** GETs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendGet(): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n data = await this._fetch(this.href);\n NucleonElement.Rumour(this.group).share({ data, source: this.href });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** PATCHes `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendPatch(edits: Partial<TData>): Promise<TData> {\n this.__destroyRumour();\n let data: TData;\n\n try {\n const body = JSON.stringify(edits);\n data = await this._fetch(this.href, { body, method: 'PATCH' });\n\n const rumour = NucleonElement.Rumour(this.group);\n rumour.share({ data, source: this.href, related: this.related });\n } finally {\n this.__createRumour();\n }\n\n return data;\n }\n\n /** DELETEs `element.href`, shares response with the Rumour group and returns parsed JSON. */\n protected async _sendDelete(): Promise<null> {\n this.__destroyRumour();\n\n try {\n await this._fetch(this.href, { method: 'DELETE' });\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data: null, source: this.href, related });\n } finally {\n this.__createRumour();\n }\n\n return null;\n }\n\n // this getter is used by LitElement to set the \"state\" attribute\n private get __state(): string {\n const state = this.__service.state;\n const flags = state.toStrings().reduce((p, c) => [...p, ...c.split('.')], [] as string[]);\n return [...new Set(flags)].join(' ');\n }\n\n private __createService() {\n this.__service.onTransition(state => {\n if (!state.changed) return;\n\n let result: UpdateResult | undefined = undefined;\n\n if (state.matches('idle')) {\n if (state.history?.matches({ busy: 'deleting' })) {\n result = UpdateResult.ResourceDeleted;\n } else if (state.history?.matches({ busy: 'creating' })) {\n result = UpdateResult.ResourceCreated;\n }\n }\n\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent('update', { detail: { result } }));\n\n if (!state.matches('busy')) this.__processFetchEventQueue();\n });\n\n this.__service.onChange(() => {\n this.requestUpdate();\n this.dispatchEvent(new UpdateEvent());\n });\n\n this.__service.start();\n }\n\n private __createRumour() {\n const rumour = NucleonElement.Rumour(this.group);\n this.__unsubscribeFromRumour = rumour.track(update => this.__handleRumourUpdate(update));\n }\n\n private __destroyRumour() {\n this.__unsubscribeFromRumour?.();\n this.__unsubscribeFromRumour = null;\n }\n\n private __createServer() {\n this.__fetchEventHandler = this.__handleFetchEvent.bind(this);\n this.addEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __destroyServer() {\n this.removeEventListener('fetch', this.__fetchEventHandler);\n }\n\n private __handleRumourUpdate(update: (oldData: TData) => TData | null) {\n try {\n const oldData = this.__service.state?.context.data;\n const newData = oldData ? update(oldData) : oldData;\n\n if (newData !== oldData) {\n this.data = newData;\n\n if (!newData) {\n const result = UpdateResult.ResourceDeleted;\n const event = new UpdateEvent('update', { detail: { result } });\n this.dispatchEvent(event);\n }\n }\n } catch (err) {\n if (err instanceof Rumour.UpdateError) {\n this.__service.send({ type: 'REFRESH' });\n } else {\n throw err;\n }\n }\n }\n\n private __processFetchEventQueue() {\n const api = new NucleonElement.API(this);\n\n this.__fetchEventQueue.forEach(event => {\n const request = event.request;\n const cacheResponse = serveFromCache(request.url, this.data);\n const whenResponseReady = cacheResponse.ok ? cacheResponse : api.fetch(request);\n\n event.respondWith(Promise.resolve(whenResponseReady));\n\n if (cacheResponse.ok) {\n console.debug(\n `%c@foxy.io/elements::${this.localName}\\n%c200%c GET ${request.url}`,\n 'color: gray',\n `background: gray; padding: 0 .2em; border-radius: .2em; color: white;`,\n ''\n );\n }\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __flushFetchEventQueue(errorMessage: string) {\n this.__fetchEventQueue.forEach(event => {\n event.respondWith(Promise.reject(new Error(errorMessage)));\n });\n\n this.__fetchEventQueue = [];\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n if (event.request.method !== 'GET') return;\n if (event.request.url.startsWith('foxy://')) return;\n if (event.composedPath()[0] === this) return;\n\n event.preventDefault();\n this.__fetchEventQueue.push(event);\n\n if (!this.__service.state.matches('busy')) this.__processFetchEventQueue();\n }\n}\n"]}
@@ -67,7 +67,7 @@ export class Pagination extends Base {
67
67
  return html `
68
68
  <slot @slotchange=${this.__connectPageElement}></slot>
69
69
 
70
- <div class="grid grid-cols-3 gap-s items-center -mx-xs">
70
+ <div class="grid gap-s items-center -mx-xs" style="grid-template-columns: 1fr auto 1fr">
71
71
  <div class="flex items-center space-x-s">
72
72
  <vaadin-button
73
73
  data-testid="first"
@@ -97,7 +97,7 @@ export class Pagination extends Base {
97
97
  to: offset + returnedItems,
98
98
  })}
99
99
  class=${classMap({
100
- 'flex-1 text-xs text-tertiary text-center leading-xs': true,
100
+ 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,
101
101
  'opacity-0': !data,
102
102
  })}
103
103
  lang=${lang}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid grid-cols-3 gap-s items-center -mx-xs\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid gap-s items-center -mx-xs\" style=\"grid-template-columns: 1fr auto 1fr\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs truncate': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
@@ -585,7 +585,7 @@ export class StoreForm extends Base {
585
585
  class="grid grid-cols-3 bg-contrast-10"
586
586
  style="gap: 1px; padding: 1px; border-radius: calc(var(--lumo-border-radius-m) + 1px)"
587
587
  >
588
- ${['12.34', '$12.34', 'USD 12.34', '12', '$12', 'USD 12'].map((example, index) => {
588
+ ${['12.34', 'USD 12.34', '$12.34', '12', 'USD 12', '$12'].map((example, index) => {
589
589
  return html `
590
590
  <label
591
591
  class=${classMap({
@@ -1 +1 @@
1
- {"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n\n ({ store_domain: v }) => !!v || 'store-domain:v8n_required',\n\n ({ store_domain: v }) => (v && v.length <= 50) || 'store-domain:v8n_too_long',\n\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n\n ({ region: v }) => !!v || 'region:v8n_required',\n\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n\n ({ country: v }) => !!v || 'country:v8n_required',\n\n ({ logo_url: v }) => !v || v.length <= 100 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => !use_webhook || !!v || 'webhook-url:v8n_required',\n\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || (v && v.length <= 300) || 'webhook-url:too_long';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !!v || 'webhook-key:v8n_required';\n },\n\n ({ webhook_url: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || (v && v.length <= 200) || 'webhook-key:v8n_too_long';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || (v && v.length <= 300) || 'single-sign-on-url:too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n\n ({ custom_display_id_config: v }) => {\n return !v || String(v).length <= 100 || 'custom-display-id-config-enabled:v8n_too_long';\n },\n ];\n }\n\n customerPasswordHashTypes: string | null = null;\n\n shippingAddressTypes: string | null = null;\n\n storeVersions: string | null = null;\n\n checkoutTypes: string | null = null;\n\n localeCodes: string | null = null;\n\n languages: string | null = null;\n\n timezones: string | null = null;\n\n countries: string | null = null;\n\n regions: string | null = null;\n\n private __singleCheckboxGroupOptions = [{ label: 'option_checked', value: 'checked' }];\n\n private __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private __getBccOnReceiptEmailValue = () => {\n return this.form.bcc_on_receipt_email ? ['checked'] : [];\n };\n\n private __setBccOnReceiptEmailValue = (newValue: string[]) => {\n this.edit({ bcc_on_receipt_email: newValue.includes('checked') });\n };\n\n private __getUseEmailDnsValue = () => {\n return this.form.use_email_dns ? ['checked'] : [];\n };\n\n private __setUseEmailDnsValue = (newValue: string[]) => {\n this.edit({ use_email_dns: newValue.includes('checked') });\n };\n\n private __getUseSmtpConfigValue = () => {\n return this.form.smtp_config ? ['checked'] : [];\n };\n\n private __setUseSmtpConfigValue = (newValue: string[]) => {\n if (newValue.includes('checked')) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private __getFeaturesMultishipValue = () => {\n return this.form.features_multiship ? ['checked'] : [];\n };\n\n private __setFeaturesMultishipValue = (newValue: string[]) => {\n this.edit({ features_multiship: newValue.includes('checked') });\n };\n\n private __getRequireSignedShippingRatesValue = () => {\n return this.form.require_signed_shipping_rates ? ['checked'] : [];\n };\n\n private __setRequireSignedShippingRatesValue = (newValue: string[]) => {\n this.edit({ require_signed_shipping_rates: newValue.includes('checked') });\n };\n\n private __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private __getProductsRequireExpiresPropertyValue = () => {\n return this.form.products_require_expires_property ? ['checked'] : [];\n };\n\n private __setProductsRequireExpiresPropertyValue = (newValue: string[]) => {\n this.edit({ products_require_expires_property: newValue.includes('checked') });\n };\n\n private __getUseCartValidationValue = () => {\n return this.form.use_cart_validation ? ['checked'] : [];\n };\n\n private __setUseCartValidationValue = (newValue: string[]) => {\n this.edit({ use_cart_validation: newValue.includes('checked') });\n };\n\n private __getSingleSignOnUrlValue = () => {\n return this.form.use_single_sign_on ? this.form.single_sign_on_url ?? '' : '';\n };\n\n private __setSingleSignOnUrlValue = (newValue: string) => {\n this.edit({ use_single_sign_on: !!newValue, single_sign_on_url: newValue });\n };\n\n private __getWebhookUrlValue = () => {\n return this.form.use_webhook ? this.form.webhook_url ?? '' : '';\n };\n\n private __setWebhookUrlValue = (newValue: string) => {\n this.edit({ use_webhook: !!newValue, webhook_url: newValue });\n };\n\n private __setStoreDomainValue = (newValue: string) => {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: domain.includes('.') });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n };\n\n renderBody(): TemplateResult {\n const isUseEmailDnsWarningVisible =\n this.form.use_email_dns &&\n !this.data?.use_email_dns &&\n !this.hiddenSelector.matches('use-email-dns', true);\n\n const isRequireSignedShippingRatesWarningVisible =\n this.form.require_signed_shipping_rates &&\n !this.data?.require_signed_shipping_rates &&\n !this.hiddenSelector.matches('require-signed-shipping-rates', true);\n\n const isProductsRequireExpiresPropertyWarningVisible =\n this.form.products_require_expires_property &&\n !this.data?.products_require_expires_property &&\n !this.hiddenSelector.matches('products-require-expires-property', true);\n\n const isUseCartValidationWarningVisible =\n this.form.use_cart_validation &&\n !this.data?.use_cart_validation &&\n !this.hiddenSelector.matches('use-cart-validation', true);\n\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'store-domain.custom_domain_note'\n : 'store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const checkoutTypesLoader = this.__renderLoader<Rels.CheckoutTypes>(3);\n const storeVersionLoader = this.__renderLoader<Rels.StoreVersion>(4);\n const localeCodesLoader = this.__renderLoader<Rels.LocaleCodes>(5);\n const languagesLoader = this.__renderLoader<Rels.Languages>(6);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const storeVersion = storeVersionLoader?.data;\n const localeCodes = localeCodesLoader?.data;\n const languages = languagesLoader?.data;\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const checkoutTypeEntries = Object.entries(checkoutTypesLoader?.data?.values ?? {});\n const localeCodeEntries = Object.entries(localeCodes?.values ?? {});\n const languageEntries = Object.entries(languages?.values ?? {});\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n label: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, label]) => ({\n label,\n value,\n }));\n\n const checkoutTypeOptions = checkoutTypeEntries.map(([value, label]) => ({ label, value }));\n const localeCodeOptions = localeCodeEntries.map(([value, label]) => ({ value, label }));\n const languageOptions = languageEntries.map(([value, label]) => ({ value, label }));\n const timezoneOptions = timezones.map(t => ({ label: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ label: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ label: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n return html`\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${checkoutTypesLoader.render(this.checkoutTypes)}\n ${storeVersionLoader.render(this.form.store_version_uri)}\n ${localeCodesLoader.render(this.localeCodes)} ${timezonesLoader.render(this.timezones)}\n ${countriesLoader.render(this.countries)} ${languagesLoader.render(this.languages)}\n ${regionsLoader.render(regionsUrl)}\n\n <div class=\"grid gap-m grid-cols-1 sm-grid-cols-2\">\n <foxy-internal-text-control infer=\"store-name\"></foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"logo-url\"></foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"store-url\"></foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"store-email\"\n class=\"sm-col-span-2\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-select-control\n infer=\"timezone\"\n class=\"sm-col-span-2\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"version\"\n item-value-path=\"_links.self.href\"\n infer=\"store-version-uri\"\n first=${ifDefined(this.storeVersions ?? undefined)}\n .selectedItem=${storeVersion}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-text-control\n infer=\"from-email\"\n class=\"sm-col-span-2\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ?? this.t('from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"bcc-on-receipt-email\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getBccOnReceiptEmailValue}\n .setValue=${this.__setBccOnReceiptEmailValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"use-email-dns\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseEmailDnsValue}\n .setValue=${this.__setUseEmailDnsValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isUseEmailDnsWarningVisible\n ? this.__renderWarning('use_email_dns_helper_text', {\n href: 'https://wiki.foxycart.com/v/1.1/emails#how_emails_are_sent_spf_dkim_dmarc_etc',\n caption: 'How Emails Are Sent (SPF, DKIM, DMARC, etc.)',\n })\n : ''}\n\n <foxy-internal-checkbox-group-control\n infer=\"use-smtp-config\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${this.form.smtp_config && !this.hiddenSelector.matches('smtp-config', true)\n ? this.__renderSmtpConfig()\n : ''}\n\n <foxy-internal-select-control infer=\"country\" .options=${countryOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"region\" .options=${regionOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-text-control infer=\"postal-code\"></foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"features-multiship\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getFeaturesMultishipValue}\n .setValue=${this.__setFeaturesMultishipValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"require-signed-shipping-rates\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getRequireSignedShippingRatesValue}\n .setValue=${this.__setRequireSignedShippingRatesValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isRequireSignedShippingRatesWarningVisible\n ? this.__renderWarning('require_signed_shipping_rates_helper_text')\n : ''}\n\n <foxy-internal-select-control infer=\"language\" .options=${languageOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"locale-code\" .options=${localeCodeOptions}>\n </foxy-internal-select-control>\n\n ${!this.hiddenSelector.matches('currency-style', true)\n ? this.__renderCurrencyStyleSelector()\n : ''}\n\n <!-- -->\n\n ${!this.hiddenSelector.matches('custom-display-id-config', true)\n ? this.__renderCustomIDSettings()\n : ''}\n\n <!-- -->\n\n <foxy-internal-text-control class=\"sm-col-span-2\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-frequency-control\n class=\"sm-col-span-2\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"products-require-expires-property\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getProductsRequireExpiresPropertyValue}\n .setValue=${this.__setProductsRequireExpiresPropertyValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isProductsRequireExpiresPropertyWarningVisible\n ? this.__renderWarning('products_require_expires_property_helper_text')\n : ''}\n\n <foxy-internal-checkbox-group-control\n infer=\"use-cart-validation\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseCartValidationValue}\n .setValue=${this.__setUseCartValidationValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isUseCartValidationWarningVisible\n ? this.__renderWarning('use_cart_validation_helper_text', {\n href: 'https://wiki.foxycart.com/v/2.0/hmac_validation',\n caption: 'HMAC Product Verification: Locking Down your Add-To-Cart Links and Forms',\n })\n : ''}\n\n <foxy-internal-select-control\n infer=\"checkout-type\"\n class=\"sm-col-span-2\"\n .options=${checkoutTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control infer=\"customer-password-hash-config\">\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control infer=\"customer-password-hash-config\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-password-control infer=\"unified-order-entry-password\">\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n infer=\"single-sign-on-url\"\n .getValue=${this.__getSingleSignOnUrlValue}\n .setValue=${this.__setSingleSignOnUrlValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-url\"\n class=\"sm-col-span-2\"\n .getValue=${this.__getWebhookUrlValue}\n .setValue=${this.__setWebhookUrlValue}\n >\n </foxy-internal-text-control>\n\n ${this.__renderWebhookKey()}\n\n <!-- -->\n\n ${this.data && !this.hiddenSelector.matches('is-maintenance-mode', true)\n ? this.__renderMaintenanceModeSwitch()\n : ''}\n </div>\n\n ${super.renderBody()}\n `;\n }\n\n private __renderWebhookKey() {\n type ParsedKey = {\n cart_signing: string;\n xml_datafeed: string;\n api_legacy: string;\n sso: string;\n };\n\n let parsedKey: ParsedKey;\n\n try {\n parsedKey = JSON.parse(this.form.webhook_key ?? '');\n } catch {\n const v = this.form.webhook_key ?? '';\n parsedKey = { cart_signing: v, xml_datafeed: v, api_legacy: v, sso: v };\n }\n\n return Object.keys(parsedKey).map(key => {\n return html`\n <foxy-internal-password-control\n infer=\"webhook-key-${key.replace('_', '-')}\"\n .getValue=${() => parsedKey[key as keyof ParsedKey]}\n .setValue=${(newValue: string) => {\n parsedKey[key as keyof ParsedKey] = newValue;\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }}\n >\n </foxy-internal-password-control>\n `;\n });\n }\n\n private __renderMaintenanceModeSwitch() {\n const isActive = !!this.data?.is_maintenance_mode;\n const buttonKey = `${isActive ? 'disable' : 'enable'}_maintenance_mode`;\n const explainerKey = `maintenance_mode_${isActive ? 'on' : 'off'}_explainer`;\n\n return html`\n <div\n class=${classMap({\n 'rounded-t-l rounded-b-l leading-s text-s sm-col-span-2': true,\n 'text-tertiary': !isActive,\n 'text-error': isActive,\n })}\n >\n <foxy-i18n infer=\"\" class=\"block mb-s\" key=${explainerKey}></foxy-i18n>\n\n <vaadin-button\n theme=\"tertiary small ${isActive ? 'contrast' : ''}\"\n class=\"p-0\"\n @click=${() => {\n this.edit({ is_maintenance_mode: !this.form.is_maintenance_mode });\n this.submit();\n }}\n >\n <foxy-i18n infer=\"\" key=${buttonKey}></foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n\n private __renderCurrencyStyleSelector() {\n const map: Record<string, number> = {\n '101': 0,\n '100': 0,\n '001': 1,\n '000': 2,\n '111': 3,\n '110': 3,\n '011': 4,\n '010': 5,\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n const selectionIndex = map[selectionCode];\n\n return html`\n <div\n class=\"grid grid-cols-1 gap-xs transition-colors text-secondary hover-text-body sm-col-span-2\"\n >\n <foxy-i18n infer=\"\" class=\"font-medium text-s\" key=\"currency_style_label\"> </foxy-i18n>\n\n <div\n class=\"grid grid-cols-3 bg-contrast-10\"\n style=\"gap: 1px; padding: 1px; border-radius: calc(var(--lumo-border-radius-m) + 1px)\"\n >\n ${['12.34', '$12.34', 'USD 12.34', '12', '$12', 'USD 12'].map((example, index) => {\n return html`\n <label\n class=${classMap({\n 'relative z-0 px-s h-m flex items-center transition-colors': true,\n 'hover-cursor-pointer': true,\n 'focus-within-z-10 focus-within-ring-2 focus-within-ring-primary-50': true,\n 'bg-base text-body hover-bg-transparent': index !== selectionIndex,\n 'bg-primary text-primary-contrast': index === selectionIndex,\n 'rounded-tl': index === 0,\n 'rounded-tr': index === 2,\n 'rounded-bl': index === 3,\n 'rounded-br': index === 5,\n })}\n >\n <span class=\"font-medium font-tnum\">${example}</span>\n <input\n class=\"sr-only\"\n value=${index}\n type=\"radio\"\n name=\"currency-style\"\n ?checked=${index === selectionIndex}\n @change=${() => {\n const set = Object.entries(map).find(v => v[1] === index)![0];\n\n this.edit({\n hide_currency_symbol: Boolean(Number(set[0])),\n hide_decimal_characters: Boolean(Number(set[1])),\n use_international_currency_symbol: Boolean(Number(set[2])),\n });\n }}\n />\n </label>\n `;\n })}\n </div>\n\n <foxy-i18n infer=\"\" class=\"text-xs\" key=\"currency_style_helper_text\"> </foxy-i18n>\n </div>\n `;\n }\n\n private __renderCustomIDSettings() {\n const defaultConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n let config: typeof defaultConfig;\n\n try {\n config = JSON.parse(this.form.custom_display_id_config ?? '');\n } catch {\n config = cloneDeep(defaultConfig);\n }\n\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const numericLength = lengthAsInt - config.prefix.length - config.suffix.length;\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n const randomExampleId = `${config.prefix}${randomExampleNumericId\n .toString()\n .padStart(numericLength, '0')}${config.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n return html`\n <foxy-internal-checkbox-group-control\n infer=\"custom-display-id-config-enabled\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${() => (config.enabled ? ['checked'] : [])}\n .setValue=${(newValue: string[]) => {\n config.enabled = newValue.includes('checked');\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${config.enabled\n ? html`\n <div\n class=\"rounded-t-l rounded-b-l border border-contrast-10 p-m grid grid-cols-2 gap-m sm-col-span-2\"\n >\n <foxy-internal-integer-control\n infer=\"custom-display-id-config-start\"\n min=\"0\"\n .getValue=${() => parseInt(config.start || '0')}\n .setValue=${(newValue: number) => {\n config.start = String(newValue);\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"custom-display-id-config-length\"\n min=\"0\"\n .getValue=${() => parseInt(config.length || '0')}\n .setValue=${(newValue: number) => {\n config.length = String(newValue);\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => config.prefix}\n .setValue=${(newValue: string) => {\n config.prefix = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => config.suffix}\n .setValue=${(newValue: string) => {\n config.suffix = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n ${config.start && config.length && startAsInt / 10 <= numericLength\n ? html`\n <table\n style=\"font-family: monospace\"\n class=\"col-span-2 text-xs text-secondary whitespace-nowrap\"\n >\n <tbody>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\">\n </foxy-i18n>\n </td>\n <td>\n ${config.prefix}${startAsInt\n .toString()\n .padStart(numericLength, '0')}${config.suffix}\n </td>\n </tr>\n <tr style=\"width: 1%\">\n <td>\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\">\n </foxy-i18n>\n </td>\n <td>${randomExampleId}</td>\n </tr>\n </tbody>\n </table>\n `\n : ''}\n </div>\n\n <foxy-internal-checkbox-group-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${() => (config.transaction_journal_entries.enabled ? ['checked'] : [])}\n .setValue=${(newValue: string[]) => {\n config.transaction_journal_entries.enabled = newValue.includes('checked');\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${config.transaction_journal_entries.enabled\n ? html`\n <div\n class=\"rounded-t-l rounded-b-l border border-contrast-10 p-m grid grid-cols-2 gap-m sm-col-span-2\"\n >\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => config.transaction_journal_entries.transaction_separator}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.transaction_separator = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_authcapture.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_capture.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types.transaction_void\n .prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_void.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_refund.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n ${config.start && config.length && startAsInt / 10 <= numericLength\n ? html`\n <table\n style=\"font-family: monospace\"\n class=\"col-span-2 text-xs text-secondary whitespace-nowrap\"\n >\n <tbody>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_authcapture\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_capture\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_void\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_refund\n .prefix}${randomEntryId}\n </td>\n </tr>\n </tbody>\n </table>\n `\n : ''}\n </div>\n `\n : ''}\n `\n : ''}\n `;\n }\n\n private __renderSmtpConfig() {\n return html`\n <div\n class=\"grid grid-cols-2 gap-m p-m rounded-t-l rounded-b-l border border-contrast-10 sm-col-span-2\"\n >\n ${['host', 'port', 'username', 'password', 'security'].map(prop => {\n const getValue = () => {\n const config = JSON.parse(this.form.smtp_config || '{}');\n return config[prop];\n };\n\n const setValue = (newValue: string) => {\n const config = JSON.parse(this.form.smtp_config || '{}');\n this.edit({\n smtp_config: JSON.stringify({\n username: config.username ?? '',\n password: config.password ?? '',\n security: config.security ?? '',\n host: config.host ?? '',\n port: config.port ?? '',\n [prop]: newValue,\n }),\n });\n };\n\n const infer = `smtp-config-${prop}`;\n\n if (prop === 'password') {\n return html`\n <foxy-internal-password-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-password-control>\n `;\n } else if (prop === 'port') {\n return html`\n <foxy-internal-integer-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-integer-control>\n `;\n } else if (prop === 'security') {\n return html`\n <foxy-internal-radio-group-control\n infer=${infer}\n class=\"-mt-xs -mx-xs -mb-m col-span-2\"\n .getValue=${getValue}\n .setValue=${setValue}\n .options=${[\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ]}\n >\n </foxy-internal-radio-group-control>\n `;\n } else {\n return html`\n <foxy-internal-text-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `;\n }\n })}\n </div>\n `;\n }\n\n private __renderWarning(key: string, link?: { href: string; caption: string }) {\n return html`\n <div class=\"p-s leading-m text-s rounded bg-primary-10 text-primary sm-col-span-2\">\n <foxy-i18n infer=\"\" key=${key}></foxy-i18n>\n\n ${link\n ? html`\n <a\n target=\"_blank\"\n class=\"font-semibold hover-underline rounded focus-outline-none focus-ring-2 focus-ring-primary\"\n href=${link.href}\n lang=\"en\"\n >\n ${link.caption}\n <iron-icon class=\"icon-inline\" icon=\"icons:open-in-new\"></iron-icon>\n </a>\n `\n : ''}\n </div>\n `;\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"StoreForm.js","sourceRoot":"","sources":["../../../../src/elements/public/StoreForm/StoreForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Resource, Graph } from '@foxy.io/sdk/core';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nconst NS = 'store-form';\nconst Base = ResponsiveMixin(TranslatableMixin(InternalForm, NS));\n\nexport class StoreForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n customerPasswordHashTypes: { attribute: 'customer-password-hash-types' },\n shippingAddressTypes: { attribute: 'shipping-address-types' },\n storeVersions: { attribute: 'store-versions' },\n checkoutTypes: { attribute: 'checkout-types' },\n localeCodes: { attribute: 'locale-codes' },\n languages: {},\n timezones: {},\n countries: {},\n regions: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ store_name: v }) => !!v || 'store-name:v8n_required',\n\n ({ store_name: v }) => (v && v.length <= 50) || 'store-name:v8n_too_long',\n\n ({ store_domain: v }) => !!v || 'store-domain:v8n_required',\n\n ({ store_domain: v }) => (v && v.length <= 50) || 'store-domain:v8n_too_long',\n\n ({ store_url: v }) => !!v || 'store-url:v8n_required',\n\n ({ store_url: v }) => (v && v.length <= 300) || 'store-url:v8n_too_long',\n\n ({ receipt_continue_url: v }) => !v || v.length <= 300 || 'receipt-continue-url:v8n_too_long',\n\n ({ store_email: v }) => !!v || 'store-email:v8n_required',\n\n ({ store_email: v }) => (v && v.length <= 300) || 'store-email:v8n_too_long',\n\n ({ from_email: v }) => !v || v.length <= 100 || 'from-email:v8n_too_long',\n\n ({ smtp_config: v }) => !v || v.length <= 1000 || 'use-smtp-config:v8n_too_long',\n\n ({ postal_code: v }) => !!v || 'postal-code:v8n_required',\n\n ({ postal_code: v }) => (v && v.length <= 50) || 'postal-code:v8n_too_long',\n\n ({ region: v }) => !!v || 'region:v8n_required',\n\n ({ region: v }) => (v && v.length <= 100) || 'region:v8n_too_long',\n\n ({ country: v }) => !!v || 'country:v8n_required',\n\n ({ logo_url: v }) => !v || v.length <= 100 || 'logo-url:v8n_too_long',\n\n ({ webhook_url: v, use_webhook }) => !use_webhook || !!v || 'webhook-url:v8n_required',\n\n ({ webhook_url: v, use_webhook }) => {\n return !use_webhook || (v && v.length <= 300) || 'webhook-url:too_long';\n },\n\n ({ webhook_key: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || !!v || 'webhook-key:v8n_required';\n },\n\n ({ webhook_url: v, use_webhook: on, use_cart_validation: hmac }) => {\n return (!on && !hmac) || (v && v.length <= 200) || 'webhook-key:v8n_too_long';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || !!v || 'single-sign-on-url:v8n_required';\n },\n\n ({ single_sign_on_url: v, use_single_sign_on: on }) => {\n return !on || (v && v.length <= 300) || 'single-sign-on-url:too_long';\n },\n\n ({ customer_password_hash_config: v }) => {\n return !v || String(v).length <= 100 || 'customer-password-hash-config:v8n_too_long';\n },\n\n ({ unified_order_entry_password: v }) => {\n return !v || String(v).length <= 100 || 'unified-order-entry-password:v8n_too_long';\n },\n\n ({ custom_display_id_config: v }) => {\n return !v || String(v).length <= 100 || 'custom-display-id-config-enabled:v8n_too_long';\n },\n ];\n }\n\n customerPasswordHashTypes: string | null = null;\n\n shippingAddressTypes: string | null = null;\n\n storeVersions: string | null = null;\n\n checkoutTypes: string | null = null;\n\n localeCodes: string | null = null;\n\n languages: string | null = null;\n\n timezones: string | null = null;\n\n countries: string | null = null;\n\n regions: string | null = null;\n\n private __singleCheckboxGroupOptions = [{ label: 'option_checked', value: 'checked' }];\n\n private __appSessionTimeOptions = [\n { value: 's', label: 'second' },\n { value: 'm', label: 'minute' },\n { value: 'h', label: 'hour' },\n { value: 'd', label: 'day' },\n ];\n\n private __getStoreEmailValue = (): Item[] => {\n const emails = this.form.store_email ?? '';\n return emails\n .split(',')\n .map(v => ({ value: v.trim() }))\n .filter(({ value }) => value.length > 0);\n };\n\n private __setStoreEmailValue = (newValue: Item[]) => {\n this.edit({ store_email: newValue.map(v => v.value).join(',') });\n };\n\n private __getBccOnReceiptEmailValue = () => {\n return this.form.bcc_on_receipt_email ? ['checked'] : [];\n };\n\n private __setBccOnReceiptEmailValue = (newValue: string[]) => {\n this.edit({ bcc_on_receipt_email: newValue.includes('checked') });\n };\n\n private __getUseEmailDnsValue = () => {\n return this.form.use_email_dns ? ['checked'] : [];\n };\n\n private __setUseEmailDnsValue = (newValue: string[]) => {\n this.edit({ use_email_dns: newValue.includes('checked') });\n };\n\n private __getUseSmtpConfigValue = () => {\n return this.form.smtp_config ? ['checked'] : [];\n };\n\n private __setUseSmtpConfigValue = (newValue: string[]) => {\n if (newValue.includes('checked')) {\n this.edit({\n smtp_config: JSON.stringify({\n username: '',\n password: '',\n security: '',\n host: '',\n port: '',\n }),\n });\n } else {\n this.edit({ smtp_config: '' });\n }\n };\n\n private __getFeaturesMultishipValue = () => {\n return this.form.features_multiship ? ['checked'] : [];\n };\n\n private __setFeaturesMultishipValue = (newValue: string[]) => {\n this.edit({ features_multiship: newValue.includes('checked') });\n };\n\n private __getRequireSignedShippingRatesValue = () => {\n return this.form.require_signed_shipping_rates ? ['checked'] : [];\n };\n\n private __setRequireSignedShippingRatesValue = (newValue: string[]) => {\n this.edit({ require_signed_shipping_rates: newValue.includes('checked') });\n };\n\n private __getAppSessionTimeValue = () => {\n const valueInSeconds = this.form.app_session_time || 43200;\n\n if (valueInSeconds % 86400 === 0) return `${valueInSeconds / 86400}d`;\n if (valueInSeconds % 3600 === 0) return `${valueInSeconds / 3600}h`;\n if (valueInSeconds % 60 === 0) return `${valueInSeconds / 60}m`;\n\n return `${valueInSeconds}s`;\n };\n\n private __setAppSessionTimeValue = (newValue: string) => {\n const units = newValue[newValue.length - 1];\n const count = parseInt(newValue.substring(0, newValue.length - 1));\n const map: Record<string, number> = { d: 86400, h: 3600, m: 60, s: 1 };\n\n this.edit({ app_session_time: map[units] * count });\n };\n\n private __getProductsRequireExpiresPropertyValue = () => {\n return this.form.products_require_expires_property ? ['checked'] : [];\n };\n\n private __setProductsRequireExpiresPropertyValue = (newValue: string[]) => {\n this.edit({ products_require_expires_property: newValue.includes('checked') });\n };\n\n private __getUseCartValidationValue = () => {\n return this.form.use_cart_validation ? ['checked'] : [];\n };\n\n private __setUseCartValidationValue = (newValue: string[]) => {\n this.edit({ use_cart_validation: newValue.includes('checked') });\n };\n\n private __getSingleSignOnUrlValue = () => {\n return this.form.use_single_sign_on ? this.form.single_sign_on_url ?? '' : '';\n };\n\n private __setSingleSignOnUrlValue = (newValue: string) => {\n this.edit({ use_single_sign_on: !!newValue, single_sign_on_url: newValue });\n };\n\n private __getWebhookUrlValue = () => {\n return this.form.use_webhook ? this.form.webhook_url ?? '' : '';\n };\n\n private __setWebhookUrlValue = (newValue: string) => {\n this.edit({ use_webhook: !!newValue, webhook_url: newValue });\n };\n\n private __setStoreDomainValue = (newValue: string) => {\n if (newValue.endsWith('.foxycart.com')) {\n const domain = newValue.substring(0, newValue.length - 13);\n this.edit({ store_domain: domain, use_remote_domain: domain.includes('.') });\n } else {\n this.edit({ store_domain: newValue, use_remote_domain: newValue.includes('.') });\n }\n };\n\n renderBody(): TemplateResult {\n const isUseEmailDnsWarningVisible =\n this.form.use_email_dns &&\n !this.data?.use_email_dns &&\n !this.hiddenSelector.matches('use-email-dns', true);\n\n const isRequireSignedShippingRatesWarningVisible =\n this.form.require_signed_shipping_rates &&\n !this.data?.require_signed_shipping_rates &&\n !this.hiddenSelector.matches('require-signed-shipping-rates', true);\n\n const isProductsRequireExpiresPropertyWarningVisible =\n this.form.products_require_expires_property &&\n !this.data?.products_require_expires_property &&\n !this.hiddenSelector.matches('products-require-expires-property', true);\n\n const isUseCartValidationWarningVisible =\n this.form.use_cart_validation &&\n !this.data?.use_cart_validation &&\n !this.hiddenSelector.matches('use-cart-validation', true);\n\n const storeDomainHelperText = this.t(\n this.form.use_remote_domain && !this.data?.use_remote_domain\n ? 'store-domain.custom_domain_note'\n : 'store-domain.helper_text'\n );\n\n const storeDomainSuffix =\n !this.form.store_domain || this.form.store_domain.includes('.') ? '' : '.foxycart.com';\n\n const customerPasswordHashTypesLoader = this.__renderLoader<Rels.CustomerPasswordHashTypes>(1);\n const shippingAddressTypesLoader = this.__renderLoader<Rels.ShippingAddressTypes>(2);\n const checkoutTypesLoader = this.__renderLoader<Rels.CheckoutTypes>(3);\n const storeVersionLoader = this.__renderLoader<Rels.StoreVersion>(4);\n const localeCodesLoader = this.__renderLoader<Rels.LocaleCodes>(5);\n const languagesLoader = this.__renderLoader<Rels.Languages>(6);\n const timezonesLoader = this.__renderLoader<Rels.Timezones>(7);\n const countriesLoader = this.__renderLoader<Rels.Countries>(8);\n const regionsLoader = this.__renderLoader<Rels.Regions>(9);\n\n const shippingAddressTypeEntries = Object.entries(\n shippingAddressTypesLoader?.data?.values ?? {}\n );\n\n const storeVersion = storeVersionLoader?.data;\n const localeCodes = localeCodesLoader?.data;\n const languages = languagesLoader?.data;\n const timezones = timezonesLoader?.data?.values.timezone ?? [];\n const countries = Object.values(countriesLoader?.data?.values ?? {});\n const regions = Object.values(regionsLoader?.data?.values ?? {});\n\n const customerPasswordHashTypeEntries = Object.entries(\n customerPasswordHashTypesLoader?.data?.values ?? {}\n );\n\n const checkoutTypeEntries = Object.entries(checkoutTypesLoader?.data?.values ?? {});\n const localeCodeEntries = Object.entries(localeCodes?.values ?? {});\n const languageEntries = Object.entries(languages?.values ?? {});\n\n const customerPasswordHashTypeOptions = customerPasswordHashTypeEntries.map(v => ({\n label: v[1].description,\n value: v[0],\n }));\n\n const shippingAddressTypeOptions = shippingAddressTypeEntries.map(([value, label]) => ({\n label,\n value,\n }));\n\n const checkoutTypeOptions = checkoutTypeEntries.map(([value, label]) => ({ label, value }));\n const localeCodeOptions = localeCodeEntries.map(([value, label]) => ({ value, label }));\n const languageOptions = languageEntries.map(([value, label]) => ({ value, label }));\n const timezoneOptions = timezones.map(t => ({ label: t.description, value: t.timezone }));\n const countryOptions = countries.map(c => ({ label: c.default, value: c.cc2 }));\n const regionOptions = regions.map(r => ({ label: r.default, value: r.code }));\n\n let regionsUrl: string | undefined;\n\n try {\n const regionsURL = new URL(this.regions ?? '');\n const country = this.form.country;\n if (country) regionsURL.searchParams.set('country_code', country);\n regionsUrl = regionsURL.toString();\n } catch {\n regionsUrl = undefined;\n }\n\n return html`\n ${customerPasswordHashTypesLoader.render(this.customerPasswordHashTypes)}\n ${shippingAddressTypesLoader.render(this.shippingAddressTypes)}\n ${checkoutTypesLoader.render(this.checkoutTypes)}\n ${storeVersionLoader.render(this.form.store_version_uri)}\n ${localeCodesLoader.render(this.localeCodes)} ${timezonesLoader.render(this.timezones)}\n ${countriesLoader.render(this.countries)} ${languagesLoader.render(this.languages)}\n ${regionsLoader.render(regionsUrl)}\n\n <div class=\"grid gap-m grid-cols-1 sm-grid-cols-2\">\n <foxy-internal-text-control infer=\"store-name\"></foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"logo-url\"></foxy-internal-text-control>\n\n <foxy-internal-text-control\n helper-text=${storeDomainHelperText}\n suffix=${storeDomainSuffix}\n infer=\"store-domain\"\n .setValue=${this.__setStoreDomainValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"store-url\"></foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n infer=\"store-email\"\n class=\"sm-col-span-2\"\n .getValue=${this.__getStoreEmailValue}\n .setValue=${this.__setStoreEmailValue}\n >\n </foxy-internal-editable-list-control>\n\n <foxy-internal-select-control\n infer=\"timezone\"\n class=\"sm-col-span-2\"\n .options=${timezoneOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"version\"\n item-value-path=\"_links.self.href\"\n infer=\"store-version-uri\"\n first=${ifDefined(this.storeVersions ?? undefined)}\n .selectedItem=${storeVersion}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-text-control\n infer=\"from-email\"\n class=\"sm-col-span-2\"\n placeholder=${this.__getStoreEmailValue()[0]?.value ?? this.t('from-email.placeholder')}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"bcc-on-receipt-email\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getBccOnReceiptEmailValue}\n .setValue=${this.__setBccOnReceiptEmailValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"use-email-dns\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseEmailDnsValue}\n .setValue=${this.__setUseEmailDnsValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isUseEmailDnsWarningVisible\n ? this.__renderWarning('use_email_dns_helper_text', {\n href: 'https://wiki.foxycart.com/v/1.1/emails#how_emails_are_sent_spf_dkim_dmarc_etc',\n caption: 'How Emails Are Sent (SPF, DKIM, DMARC, etc.)',\n })\n : ''}\n\n <foxy-internal-checkbox-group-control\n infer=\"use-smtp-config\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseSmtpConfigValue}\n .setValue=${this.__setUseSmtpConfigValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${this.form.smtp_config && !this.hiddenSelector.matches('smtp-config', true)\n ? this.__renderSmtpConfig()\n : ''}\n\n <foxy-internal-select-control infer=\"country\" .options=${countryOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"region\" .options=${regionOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-text-control infer=\"postal-code\"></foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"shipping-address-type\"\n .options=${shippingAddressTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"features-multiship\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getFeaturesMultishipValue}\n .setValue=${this.__setFeaturesMultishipValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"require-signed-shipping-rates\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getRequireSignedShippingRatesValue}\n .setValue=${this.__setRequireSignedShippingRatesValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isRequireSignedShippingRatesWarningVisible\n ? this.__renderWarning('require_signed_shipping_rates_helper_text')\n : ''}\n\n <foxy-internal-select-control infer=\"language\" .options=${languageOptions}>\n </foxy-internal-select-control>\n\n <foxy-internal-select-control infer=\"locale-code\" .options=${localeCodeOptions}>\n </foxy-internal-select-control>\n\n ${!this.hiddenSelector.matches('currency-style', true)\n ? this.__renderCurrencyStyleSelector()\n : ''}\n\n <!-- -->\n\n ${!this.hiddenSelector.matches('custom-display-id-config', true)\n ? this.__renderCustomIDSettings()\n : ''}\n\n <!-- -->\n\n <foxy-internal-text-control class=\"sm-col-span-2\" infer=\"receipt-continue-url\">\n </foxy-internal-text-control>\n\n <foxy-internal-frequency-control\n class=\"sm-col-span-2\"\n infer=\"app-session-time\"\n .getValue=${this.__getAppSessionTimeValue}\n .setValue=${this.__setAppSessionTimeValue}\n .options=${this.__appSessionTimeOptions}\n >\n </foxy-internal-frequency-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"products-require-expires-property\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getProductsRequireExpiresPropertyValue}\n .setValue=${this.__setProductsRequireExpiresPropertyValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isProductsRequireExpiresPropertyWarningVisible\n ? this.__renderWarning('products_require_expires_property_helper_text')\n : ''}\n\n <foxy-internal-checkbox-group-control\n infer=\"use-cart-validation\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${this.__getUseCartValidationValue}\n .setValue=${this.__setUseCartValidationValue}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${isUseCartValidationWarningVisible\n ? this.__renderWarning('use_cart_validation_helper_text', {\n href: 'https://wiki.foxycart.com/v/2.0/hmac_validation',\n caption: 'HMAC Product Verification: Locking Down your Add-To-Cart Links and Forms',\n })\n : ''}\n\n <foxy-internal-select-control\n infer=\"checkout-type\"\n class=\"sm-col-span-2\"\n .options=${checkoutTypeOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n infer=\"customer-password-hash-type\"\n .options=${customerPasswordHashTypeOptions}\n .setValue=${(newValue: string) => {\n const entry = customerPasswordHashTypeEntries.find(([v]) => v === newValue);\n this.edit({\n customer_password_hash_type: newValue,\n customer_password_hash_config: entry?.[1].config ?? '',\n });\n }}\n >\n </foxy-internal-select-control>\n\n ${typeof this.form.customer_password_hash_config === 'number'\n ? html`\n <foxy-internal-number-control infer=\"customer-password-hash-config\">\n </foxy-internal-number-control>\n `\n : html`\n <foxy-internal-text-control infer=\"customer-password-hash-config\">\n </foxy-internal-text-control>\n `}\n\n <foxy-internal-password-control infer=\"unified-order-entry-password\">\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n infer=\"single-sign-on-url\"\n .getValue=${this.__getSingleSignOnUrlValue}\n .setValue=${this.__setSingleSignOnUrlValue}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"webhook-url\"\n class=\"sm-col-span-2\"\n .getValue=${this.__getWebhookUrlValue}\n .setValue=${this.__setWebhookUrlValue}\n >\n </foxy-internal-text-control>\n\n ${this.__renderWebhookKey()}\n\n <!-- -->\n\n ${this.data && !this.hiddenSelector.matches('is-maintenance-mode', true)\n ? this.__renderMaintenanceModeSwitch()\n : ''}\n </div>\n\n ${super.renderBody()}\n `;\n }\n\n private __renderWebhookKey() {\n type ParsedKey = {\n cart_signing: string;\n xml_datafeed: string;\n api_legacy: string;\n sso: string;\n };\n\n let parsedKey: ParsedKey;\n\n try {\n parsedKey = JSON.parse(this.form.webhook_key ?? '');\n } catch {\n const v = this.form.webhook_key ?? '';\n parsedKey = { cart_signing: v, xml_datafeed: v, api_legacy: v, sso: v };\n }\n\n return Object.keys(parsedKey).map(key => {\n return html`\n <foxy-internal-password-control\n infer=\"webhook-key-${key.replace('_', '-')}\"\n .getValue=${() => parsedKey[key as keyof ParsedKey]}\n .setValue=${(newValue: string) => {\n parsedKey[key as keyof ParsedKey] = newValue;\n this.edit({ webhook_key: JSON.stringify(parsedKey) });\n }}\n >\n </foxy-internal-password-control>\n `;\n });\n }\n\n private __renderMaintenanceModeSwitch() {\n const isActive = !!this.data?.is_maintenance_mode;\n const buttonKey = `${isActive ? 'disable' : 'enable'}_maintenance_mode`;\n const explainerKey = `maintenance_mode_${isActive ? 'on' : 'off'}_explainer`;\n\n return html`\n <div\n class=${classMap({\n 'rounded-t-l rounded-b-l leading-s text-s sm-col-span-2': true,\n 'text-tertiary': !isActive,\n 'text-error': isActive,\n })}\n >\n <foxy-i18n infer=\"\" class=\"block mb-s\" key=${explainerKey}></foxy-i18n>\n\n <vaadin-button\n theme=\"tertiary small ${isActive ? 'contrast' : ''}\"\n class=\"p-0\"\n @click=${() => {\n this.edit({ is_maintenance_mode: !this.form.is_maintenance_mode });\n this.submit();\n }}\n >\n <foxy-i18n infer=\"\" key=${buttonKey}></foxy-i18n>\n </vaadin-button>\n </div>\n `;\n }\n\n private __renderCurrencyStyleSelector() {\n const map: Record<string, number> = {\n '101': 0,\n '100': 0,\n '001': 1,\n '000': 2,\n '111': 3,\n '110': 3,\n '011': 4,\n '010': 5,\n };\n\n const selectionCode = [\n this.form.hide_currency_symbol,\n this.form.hide_decimal_characters,\n this.form.use_international_currency_symbol,\n ]\n .map(v => Number(Boolean(v)))\n .join('');\n\n const selectionIndex = map[selectionCode];\n\n return html`\n <div\n class=\"grid grid-cols-1 gap-xs transition-colors text-secondary hover-text-body sm-col-span-2\"\n >\n <foxy-i18n infer=\"\" class=\"font-medium text-s\" key=\"currency_style_label\"> </foxy-i18n>\n\n <div\n class=\"grid grid-cols-3 bg-contrast-10\"\n style=\"gap: 1px; padding: 1px; border-radius: calc(var(--lumo-border-radius-m) + 1px)\"\n >\n ${['12.34', 'USD 12.34', '$12.34', '12', 'USD 12', '$12'].map((example, index) => {\n return html`\n <label\n class=${classMap({\n 'relative z-0 px-s h-m flex items-center transition-colors': true,\n 'hover-cursor-pointer': true,\n 'focus-within-z-10 focus-within-ring-2 focus-within-ring-primary-50': true,\n 'bg-base text-body hover-bg-transparent': index !== selectionIndex,\n 'bg-primary text-primary-contrast': index === selectionIndex,\n 'rounded-tl': index === 0,\n 'rounded-tr': index === 2,\n 'rounded-bl': index === 3,\n 'rounded-br': index === 5,\n })}\n >\n <span class=\"font-medium font-tnum\">${example}</span>\n <input\n class=\"sr-only\"\n value=${index}\n type=\"radio\"\n name=\"currency-style\"\n ?checked=${index === selectionIndex}\n @change=${() => {\n const set = Object.entries(map).find(v => v[1] === index)![0];\n\n this.edit({\n hide_currency_symbol: Boolean(Number(set[0])),\n hide_decimal_characters: Boolean(Number(set[1])),\n use_international_currency_symbol: Boolean(Number(set[2])),\n });\n }}\n />\n </label>\n `;\n })}\n </div>\n\n <foxy-i18n infer=\"\" class=\"text-xs\" key=\"currency_style_helper_text\"> </foxy-i18n>\n </div>\n `;\n }\n\n private __renderCustomIDSettings() {\n const defaultConfig = {\n enabled: false,\n start: '0',\n length: '0',\n prefix: '',\n suffix: '',\n transaction_journal_entries: {\n enabled: false,\n transaction_separator: '',\n log_detail_request_types: {\n transaction_authcapture: { prefix: '' },\n transaction_capture: { prefix: '' },\n transaction_refund: { prefix: '' },\n transaction_void: { prefix: '' },\n },\n },\n };\n\n let config: typeof defaultConfig;\n\n try {\n config = JSON.parse(this.form.custom_display_id_config ?? '');\n } catch {\n config = cloneDeep(defaultConfig);\n }\n\n const startAsInt = parseInt(config.start || '0');\n const lengthAsInt = parseInt(config.length || '0');\n const numericLength = lengthAsInt - config.prefix.length - config.suffix.length;\n const randomExampleNumericId = Math.min(\n startAsInt + Math.floor(Math.random() * Math.pow(10, numericLength)),\n Math.pow(10, numericLength) - 1\n );\n\n const randomExampleId = `${config.prefix}${randomExampleNumericId\n .toString()\n .padStart(numericLength, '0')}${config.suffix}`;\n\n const randomNumericEntryId = Math.floor(Math.random() * 1000);\n const randomEntryId = String(randomNumericEntryId).padStart(3, '0');\n\n return html`\n <foxy-internal-checkbox-group-control\n infer=\"custom-display-id-config-enabled\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${() => (config.enabled ? ['checked'] : [])}\n .setValue=${(newValue: string[]) => {\n config.enabled = newValue.includes('checked');\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${config.enabled\n ? html`\n <div\n class=\"rounded-t-l rounded-b-l border border-contrast-10 p-m grid grid-cols-2 gap-m sm-col-span-2\"\n >\n <foxy-internal-integer-control\n infer=\"custom-display-id-config-start\"\n min=\"0\"\n .getValue=${() => parseInt(config.start || '0')}\n .setValue=${(newValue: number) => {\n config.start = String(newValue);\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control\n infer=\"custom-display-id-config-length\"\n min=\"0\"\n .getValue=${() => parseInt(config.length || '0')}\n .setValue=${(newValue: number) => {\n config.length = String(newValue);\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-integer-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-prefix\"\n .getValue=${() => config.prefix}\n .setValue=${(newValue: string) => {\n config.prefix = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-suffix\"\n .getValue=${() => config.suffix}\n .setValue=${(newValue: string) => {\n config.suffix = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n ${config.start && config.length && startAsInt / 10 <= numericLength\n ? html`\n <table\n style=\"font-family: monospace\"\n class=\"col-span-2 text-xs text-secondary whitespace-nowrap\"\n >\n <tbody>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-first-example\">\n </foxy-i18n>\n </td>\n <td>\n ${config.prefix}${startAsInt\n .toString()\n .padStart(numericLength, '0')}${config.suffix}\n </td>\n </tr>\n <tr style=\"width: 1%\">\n <td>\n <foxy-i18n infer=\"\" key=\"custom-display-id-config-random-example\">\n </foxy-i18n>\n </td>\n <td>${randomExampleId}</td>\n </tr>\n </tbody>\n </table>\n `\n : ''}\n </div>\n\n <foxy-internal-checkbox-group-control\n infer=\"custom-display-id-config-transaction-journal-entries-enabled\"\n class=\"-mt-xs -mb-m sm-col-span-2\"\n .getValue=${() => (config.transaction_journal_entries.enabled ? ['checked'] : [])}\n .setValue=${(newValue: string[]) => {\n config.transaction_journal_entries.enabled = newValue.includes('checked');\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n .options=${this.__singleCheckboxGroupOptions}\n >\n </foxy-internal-checkbox-group-control>\n\n ${config.transaction_journal_entries.enabled\n ? html`\n <div\n class=\"rounded-t-l rounded-b-l border border-contrast-10 p-m grid grid-cols-2 gap-m sm-col-span-2\"\n >\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-transaction-separator\"\n class=\"col-span-2\"\n .getValue=${() => config.transaction_journal_entries.transaction_separator}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.transaction_separator = newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-authcapture-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_authcapture.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_authcapture.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-capture-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_capture.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_capture.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-void-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types.transaction_void\n .prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_void.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n infer=\"custom-display-id-config-transaction-journal-entries-log-detail-request-types-transaction-refund-prefix\"\n .getValue=${() =>\n config.transaction_journal_entries.log_detail_request_types\n .transaction_refund.prefix}\n .setValue=${(newValue: string) => {\n config.transaction_journal_entries.log_detail_request_types.transaction_refund.prefix =\n newValue;\n this.edit({ custom_display_id_config: JSON.stringify(config) });\n }}\n >\n </foxy-internal-text-control>\n\n ${config.start && config.length && startAsInt / 10 <= numericLength\n ? html`\n <table\n style=\"font-family: monospace\"\n class=\"col-span-2 text-xs text-secondary whitespace-nowrap\"\n >\n <tbody>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-authcapture-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_authcapture\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-capture-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_capture\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-void-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_void\n .prefix}${randomEntryId}\n </td>\n </tr>\n <tr>\n <td style=\"width: 1%\">\n <foxy-i18n\n infer=\"\"\n key=\"custom-display-id-config-transaction-journal-entries-refund-example\"\n >\n </foxy-i18n>\n </td>\n <td>\n ${randomExampleId}${config.transaction_journal_entries\n .transaction_separator}${config.transaction_journal_entries\n .log_detail_request_types.transaction_refund\n .prefix}${randomEntryId}\n </td>\n </tr>\n </tbody>\n </table>\n `\n : ''}\n </div>\n `\n : ''}\n `\n : ''}\n `;\n }\n\n private __renderSmtpConfig() {\n return html`\n <div\n class=\"grid grid-cols-2 gap-m p-m rounded-t-l rounded-b-l border border-contrast-10 sm-col-span-2\"\n >\n ${['host', 'port', 'username', 'password', 'security'].map(prop => {\n const getValue = () => {\n const config = JSON.parse(this.form.smtp_config || '{}');\n return config[prop];\n };\n\n const setValue = (newValue: string) => {\n const config = JSON.parse(this.form.smtp_config || '{}');\n this.edit({\n smtp_config: JSON.stringify({\n username: config.username ?? '',\n password: config.password ?? '',\n security: config.security ?? '',\n host: config.host ?? '',\n port: config.port ?? '',\n [prop]: newValue,\n }),\n });\n };\n\n const infer = `smtp-config-${prop}`;\n\n if (prop === 'password') {\n return html`\n <foxy-internal-password-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-password-control>\n `;\n } else if (prop === 'port') {\n return html`\n <foxy-internal-integer-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-integer-control>\n `;\n } else if (prop === 'security') {\n return html`\n <foxy-internal-radio-group-control\n infer=${infer}\n class=\"-mt-xs -mx-xs -mb-m col-span-2\"\n .getValue=${getValue}\n .setValue=${setValue}\n .options=${[\n { label: 'option_ssl', value: 'ssl' },\n { label: 'option_tls', value: 'tls' },\n { label: 'option_none', value: '' },\n ]}\n >\n </foxy-internal-radio-group-control>\n `;\n } else {\n return html`\n <foxy-internal-text-control\n infer=${infer}\n .getValue=${getValue}\n .setValue=${setValue}\n >\n </foxy-internal-text-control>\n `;\n }\n })}\n </div>\n `;\n }\n\n private __renderWarning(key: string, link?: { href: string; caption: string }) {\n return html`\n <div class=\"p-s leading-m text-s rounded bg-primary-10 text-primary sm-col-span-2\">\n <foxy-i18n infer=\"\" key=${key}></foxy-i18n>\n\n ${link\n ? html`\n <a\n target=\"_blank\"\n class=\"font-semibold hover-underline rounded focus-outline-none focus-ring-2 focus-ring-primary\"\n href=${link.href}\n lang=\"en\"\n >\n ${link.caption}\n <iron-icon class=\"icon-inline\" icon=\"icons:open-in-new\"></iron-icon>\n </a>\n `\n : ''}\n </div>\n `;\n }\n\n private __renderLoader<T extends Graph & { links: { self: unknown } }>(index: number) {\n const id = `loader-${index}`;\n return {\n data: this.renderRoot.querySelector<NucleonElement<Resource<T>>>(`#${id}`)?.data,\n render: (href?: string | null) => html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(href ?? undefined)}\n id=${id}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `,\n };\n }\n}\n"]}