@foxy.io/elements 1.21.0 → 1.22.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +2 -2
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-card.js +1 -1
  25. package/dist/cdn/foxy-customer-form.js +1 -1
  26. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  27. package/dist/cdn/foxy-customer-portal.js +7 -7
  28. package/dist/cdn/foxy-customer.js +5 -5
  29. package/dist/cdn/foxy-customers-table.js +1 -1
  30. package/dist/cdn/foxy-discount-builder.js +1 -1
  31. package/dist/cdn/foxy-discount-card.js +1 -1
  32. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  33. package/dist/cdn/foxy-donation.js +1 -1
  34. package/dist/cdn/foxy-email-template-card.js +1 -1
  35. package/dist/cdn/foxy-email-template-form.js +1 -1
  36. package/dist/cdn/foxy-error-entry-card.js +1 -1
  37. package/dist/cdn/foxy-form-dialog.js +1 -1
  38. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  39. package/dist/cdn/foxy-gift-card-card.js +1 -1
  40. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  42. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  43. package/dist/cdn/foxy-gift-card-form.js +1 -1
  44. package/dist/cdn/foxy-i18n-editor.js +2 -2
  45. package/dist/cdn/foxy-i18n.js +1 -1
  46. package/dist/cdn/foxy-integration-card.js +1 -1
  47. package/dist/cdn/foxy-integration-form.js +1 -1
  48. package/dist/cdn/foxy-item-card.js +1 -1
  49. package/dist/cdn/foxy-item-category-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-form.js +1 -1
  51. package/dist/cdn/foxy-item-form.js +1 -1
  52. package/dist/cdn/foxy-item-option-card.js +1 -1
  53. package/dist/cdn/foxy-item-option-form.js +1 -1
  54. package/dist/cdn/foxy-items-form.js +1 -1
  55. package/dist/cdn/foxy-pagination.js +1 -1
  56. package/dist/cdn/foxy-payment-card.js +1 -1
  57. package/dist/cdn/foxy-payment-method-card.js +1 -1
  58. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  59. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  60. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  64. package/dist/cdn/foxy-query-builder.js +1 -1
  65. package/dist/cdn/foxy-report-form.js +2 -2
  66. package/dist/cdn/foxy-reports-table.js +1 -1
  67. package/dist/cdn/foxy-shipment-card.js +1 -1
  68. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  69. package/dist/cdn/foxy-sign-in-form.js +1 -1
  70. package/dist/cdn/foxy-spinner.js +1 -1
  71. package/dist/cdn/foxy-store-card.js +1 -0
  72. package/dist/cdn/foxy-store-form.js +1 -1
  73. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  74. package/dist/cdn/foxy-subscription-card.js +1 -1
  75. package/dist/cdn/foxy-subscription-form.js +2 -2
  76. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  77. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  78. package/dist/cdn/foxy-table.js +1 -1
  79. package/dist/cdn/foxy-tax-card.js +1 -1
  80. package/dist/cdn/foxy-tax-form.js +1 -1
  81. package/dist/cdn/foxy-template-config-form.js +1 -1
  82. package/dist/cdn/foxy-template-form.js +1 -1
  83. package/dist/cdn/foxy-template-set-card.js +1 -1
  84. package/dist/cdn/foxy-template-set-form.js +1 -1
  85. package/dist/cdn/foxy-transaction-card.js +1 -1
  86. package/dist/cdn/foxy-transaction.js +1 -1
  87. package/dist/cdn/foxy-transactions-table.js +9 -9
  88. package/dist/cdn/foxy-user-card.js +1 -0
  89. package/dist/cdn/foxy-user-form.js +1 -1
  90. package/dist/cdn/foxy-users-table.js +1 -1
  91. package/dist/cdn/foxy-webhook-card.js +1 -1
  92. package/dist/cdn/foxy-webhook-form.js +1 -1
  93. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  95. package/dist/cdn/{shared-274c49b0.js → shared-01af9591.js} +1 -1
  96. package/dist/cdn/shared-0d2ac2bf.js +1 -0
  97. package/dist/cdn/shared-0e0632a7.js +1 -0
  98. package/dist/cdn/{shared-81f9dc9a.js → shared-14202046.js} +1 -1
  99. package/dist/cdn/{shared-efc1aeae.js → shared-146d31e3.js} +1 -1
  100. package/dist/cdn/shared-17e8a23b.js +1 -0
  101. package/dist/cdn/{shared-d3bf404a.js → shared-1a1f739c.js} +1 -1
  102. package/dist/cdn/{shared-62d636b5.js → shared-1c2b06d9.js} +1 -1
  103. package/dist/cdn/{shared-9f905d9f.js → shared-1e7e13c1.js} +1 -1
  104. package/dist/cdn/{shared-639c666f.js → shared-1f4510ea.js} +1 -1
  105. package/dist/cdn/{shared-0ce006b9.js → shared-22e7642d.js} +1 -1
  106. package/dist/cdn/{shared-83596b46.js → shared-2ab995c2.js} +1 -1
  107. package/dist/cdn/{shared-08156595.js → shared-2cdd9cfd.js} +2 -2
  108. package/dist/cdn/{shared-88c4cfec.js → shared-3945506e.js} +1 -1
  109. package/dist/cdn/shared-399a781f.js +1 -0
  110. package/dist/cdn/{shared-6cb1015f.js → shared-3d5adeab.js} +1 -1
  111. package/dist/cdn/{shared-be66c2e7.js → shared-3f04827e.js} +1 -1
  112. package/dist/cdn/{shared-e262920d.js → shared-412affb4.js} +1 -1
  113. package/dist/cdn/{shared-5378bd8c.js → shared-45a9193f.js} +1 -1
  114. package/dist/cdn/{shared-d8dc97f0.js → shared-4af5329d.js} +1 -1
  115. package/dist/cdn/{shared-404aa9cc.js → shared-4ce1c116.js} +1 -1
  116. package/dist/cdn/{shared-71d8d167.js → shared-4d441506.js} +1 -1
  117. package/dist/cdn/{shared-9f436277.js → shared-4e34cfb5.js} +1 -1
  118. package/dist/cdn/{shared-242b3ee9.js → shared-577cab08.js} +1 -1
  119. package/dist/cdn/{shared-f621ccee.js → shared-5db24a3c.js} +2 -2
  120. package/dist/cdn/{shared-be99323d.js → shared-606449c3.js} +1 -1
  121. package/dist/cdn/{shared-2092d86f.js → shared-63ed0be3.js} +1 -1
  122. package/dist/cdn/{shared-2cc638ad.js → shared-6fb007df.js} +2 -2
  123. package/dist/cdn/{shared-ed0dee03.js → shared-711b1d11.js} +1 -1
  124. package/dist/cdn/{shared-c8f5c306.js → shared-727058e8.js} +1 -1
  125. package/dist/cdn/{shared-08e27fe9.js → shared-889ec003.js} +3 -3
  126. package/dist/cdn/{shared-bd252323.js → shared-9227d2e5.js} +1 -1
  127. package/dist/cdn/{shared-5ea18e60.js → shared-959c976b.js} +1 -1
  128. package/dist/cdn/{shared-7097364f.js → shared-97a723fa.js} +1 -1
  129. package/dist/cdn/{shared-ee5a7812.js → shared-97da5c82.js} +1 -1
  130. package/dist/cdn/{shared-747b6d74.js → shared-9a11f821.js} +1 -1
  131. package/dist/cdn/{shared-f7e4cd67.js → shared-9be9d167.js} +1 -1
  132. package/dist/cdn/{shared-d807ae5c.js → shared-9c898ce5.js} +2 -2
  133. package/dist/cdn/{shared-4849ef5b.js → shared-9cfb3149.js} +1 -1
  134. package/dist/cdn/{shared-5a4829e3.js → shared-a2d07dc8.js} +1 -1
  135. package/dist/cdn/{shared-8f8abcd6.js → shared-b0508df4.js} +1 -1
  136. package/dist/cdn/shared-b22c63cc.js +1 -0
  137. package/dist/cdn/{shared-454f172e.js → shared-b5a6dea8.js} +1 -1
  138. package/dist/cdn/{shared-6f5c3101.js → shared-bb8287f7.js} +1 -1
  139. package/dist/cdn/{shared-8c11a711.js → shared-bd52f4a0.js} +1 -1
  140. package/dist/cdn/{shared-3dbe9aaa.js → shared-bd87e451.js} +1 -1
  141. package/dist/cdn/{shared-cbdf08d8.js → shared-bee7a953.js} +1 -1
  142. package/dist/cdn/{shared-a01b5597.js → shared-d2b2c3c3.js} +1 -1
  143. package/dist/cdn/{shared-62c088b7.js → shared-d5e7c2d0.js} +1 -1
  144. package/dist/cdn/{shared-bc814810.js → shared-e6b54b51.js} +1 -1
  145. package/dist/cdn/{shared-7d4fb1a2.js → shared-e9975921.js} +1 -1
  146. package/dist/cdn/{shared-a2d619b4.js → shared-ec5bb132.js} +1 -1
  147. package/dist/cdn/{shared-ca87cf22.js → shared-eed6272b.js} +1 -1
  148. package/dist/cdn/{shared-61e74612.js → shared-fac390a7.js} +4 -4
  149. package/dist/cdn/{shared-3d241b7f.js → shared-fe74f52a.js} +1 -1
  150. package/dist/cdn/shared-febaf6ac.js +1 -0
  151. package/dist/cdn/translations/store-card/en.json +7 -0
  152. package/dist/cdn/translations/user-card/en.json +8 -0
  153. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +1 -1
  154. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +5 -1
  155. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  156. package/dist/elements/internal/InternalDetails/InternalDetails.js +1 -1
  157. package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -1
  158. package/dist/elements/private/Page/Page.js +1 -1
  159. package/dist/elements/private/Page/Page.js.map +1 -1
  160. package/dist/elements/private/Section/Section.js +1 -1
  161. package/dist/elements/private/Section/Section.js.map +1 -1
  162. package/dist/elements/private/Switch/Switch.js +1 -1
  163. package/dist/elements/private/Switch/Switch.js.map +1 -1
  164. package/dist/elements/private/Tabs/Tabs.js +1 -1
  165. package/dist/elements/private/Tabs/Tabs.js.map +1 -1
  166. package/dist/elements/public/AddressCard/AddressCard.js +1 -1
  167. package/dist/elements/public/AddressCard/AddressCard.js.map +1 -1
  168. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +1 -1
  169. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
  170. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +2 -2
  171. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  172. package/dist/elements/public/CartCard/CartCard.js +1 -1
  173. package/dist/elements/public/CartCard/CartCard.js.map +1 -1
  174. package/dist/elements/public/CartForm/CartForm.js +4 -4
  175. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  176. package/dist/elements/public/CouponCard/CouponCard.js +1 -1
  177. package/dist/elements/public/CouponCard/CouponCard.js.map +1 -1
  178. package/dist/elements/public/CouponForm/CouponForm.js +3 -3
  179. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  180. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  181. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  182. package/dist/elements/public/Customer/Customer.js +4 -4
  183. package/dist/elements/public/Customer/Customer.js.map +1 -1
  184. package/dist/elements/public/CustomerCard/CustomerCard.js +1 -1
  185. package/dist/elements/public/CustomerCard/CustomerCard.js.map +1 -1
  186. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -2
  187. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  188. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +1 -1
  189. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  190. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js +1 -1
  191. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js.map +1 -1
  192. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +3 -3
  193. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  194. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js +4 -4
  195. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js.map +1 -1
  196. package/dist/elements/public/GiftCardCard/GiftCardCard.js +1 -1
  197. package/dist/elements/public/GiftCardCard/GiftCardCard.js.map +1 -1
  198. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +1 -1
  199. package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +1 -1
  200. package/dist/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.js +3 -3
  201. package/dist/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.js.map +1 -1
  202. package/dist/elements/public/IntegrationCard/IntegrationCard.js +3 -3
  203. package/dist/elements/public/IntegrationCard/IntegrationCard.js.map +1 -1
  204. package/dist/elements/public/IntegrationForm/IntegrationForm.js +3 -3
  205. package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
  206. package/dist/elements/public/ItemCard/ItemCard.js +1 -1
  207. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  208. package/dist/elements/public/PaymentCard/PaymentCard.js +3 -3
  209. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  210. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js +3 -3
  211. package/dist/elements/public/PaymentsApiFraudProtectionForm/PaymentsApiFraudProtectionForm.js.map +1 -1
  212. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +4 -4
  213. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  214. package/dist/elements/public/QueryBuilder/components/Group.js +1 -1
  215. package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
  216. package/dist/elements/public/ReportsTable/ReportsTable.js +1 -1
  217. package/dist/elements/public/ReportsTable/ReportsTable.js.map +1 -1
  218. package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js +1 -1
  219. package/dist/elements/public/ShippingMethodCard/ShippingMethodCard.js.map +1 -1
  220. package/dist/elements/public/SignInForm/SignInForm.js +1 -1
  221. package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
  222. package/dist/elements/public/StoreCard/StoreCard.d.ts +26 -0
  223. package/dist/elements/public/StoreCard/StoreCard.js +41 -0
  224. package/dist/elements/public/StoreCard/StoreCard.js.map +1 -0
  225. package/dist/elements/public/StoreCard/index.d.ts +5 -0
  226. package/dist/elements/public/StoreCard/index.js +7 -0
  227. package/dist/elements/public/StoreCard/index.js.map +1 -0
  228. package/dist/elements/public/StoreCard/types.d.ts +3 -0
  229. package/dist/elements/public/StoreCard/types.js +2 -0
  230. package/dist/elements/public/StoreCard/types.js.map +1 -0
  231. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  232. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  233. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +2 -2
  234. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  235. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +1 -1
  236. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  237. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +3 -3
  238. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
  239. package/dist/elements/public/TaxCard/TaxCard.js +1 -1
  240. package/dist/elements/public/TaxCard/TaxCard.js.map +1 -1
  241. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +2 -2
  242. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  243. package/dist/elements/public/TransactionCard/TransactionCard.js +1 -1
  244. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  245. package/dist/elements/public/TransactionsTable/TransactionsTable.js +2 -2
  246. package/dist/elements/public/TransactionsTable/TransactionsTable.js.map +1 -1
  247. package/dist/elements/public/UserCard/UserCard.d.ts +22 -0
  248. package/dist/elements/public/UserCard/UserCard.js +29 -0
  249. package/dist/elements/public/UserCard/UserCard.js.map +1 -0
  250. package/dist/elements/public/UserCard/index.d.ts +5 -0
  251. package/dist/elements/public/UserCard/index.js +7 -0
  252. package/dist/elements/public/UserCard/index.js.map +1 -0
  253. package/dist/elements/public/UserCard/types.d.ts +3 -0
  254. package/dist/elements/public/UserCard/types.js +2 -0
  255. package/dist/elements/public/UserCard/types.js.map +1 -0
  256. package/dist/elements/public/UserForm/UserForm.d.ts +32 -9
  257. package/dist/elements/public/UserForm/UserForm.js +116 -82
  258. package/dist/elements/public/UserForm/UserForm.js.map +1 -1
  259. package/dist/elements/public/UserForm/index.d.ts +1 -0
  260. package/dist/elements/public/UserForm/index.js +1 -0
  261. package/dist/elements/public/UserForm/index.js.map +1 -1
  262. package/dist/elements/public/UserForm/types.d.ts +22 -3
  263. package/dist/elements/public/UserForm/types.js.map +1 -1
  264. package/dist/elements/public/WebhookCard/WebhookCard.js +1 -1
  265. package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -1
  266. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js +1 -1
  267. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js.map +1 -1
  268. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js +1 -1
  269. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js.map +1 -1
  270. package/dist/elements/public/index.d.ts +2 -0
  271. package/dist/elements/public/index.defined.d.ts +2 -0
  272. package/dist/elements/public/index.defined.js +2 -0
  273. package/dist/elements/public/index.defined.js.map +1 -1
  274. package/dist/elements/public/index.js +2 -0
  275. package/dist/elements/public/index.js.map +1 -1
  276. package/dist/mixins/themeable.js +0 -8
  277. package/dist/mixins/themeable.js.map +1 -1
  278. package/package.json +2 -2
  279. package/dist/cdn/shared-1433fc29.js +0 -1
  280. package/dist/cdn/shared-45926e43.js +0 -1
  281. package/dist/cdn/shared-5c804971.js +0 -1
  282. package/dist/cdn/shared-94fc438b.js +0 -1
  283. package/dist/cdn/shared-a29b600a.js +0 -1
  284. package/dist/cdn/shared-c6a01446.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DiscountBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/DiscountBuilder/DiscountBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DiscountType,\n ParsedValue,\n RulesTierParams,\n RulesTierSelectParams,\n RulesTierSwitchParams,\n RulesTierFieldParams,\n} from './types';\n\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { operatorGreaterThanOrEqual } from '../QueryBuilder/icons/operatorGreaterThanOrEqual';\n\nconst NS = 'discount-builder';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)));\n\n/**\n * Visual builder for discount URL parameters in coupons and more.\n * Learn more about discounts here: [Foxy Wiki](https://wiki.foxycart.com/v/2.0/coupons_and_discounts).\n *\n * @element foxy-discount-builder\n * @since 1.17.0\n */\nexport class DiscountBuilder extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n value: { type: String },\n };\n }\n\n /**\n * Discount URL parameter.\n *\n * Note that if you set this value, it **must be encoded** for the\n * builder to work correctly. You can use either `encodeURIComponent` or `URLSearchParams` like so:\n *\n * ```ts\n * discountBuilder.value = new URLSearchParams([\n * ['discount_amount_percentage', 'Test{allunits|1-2|3-4}']\n * ]).toString();\n * ```\n */\n value: string | null = null;\n\n get parsedValue(): ParsedValue {\n let details = '';\n let name = '';\n let type: DiscountType = 'quantity_amount';\n\n try {\n const [[key, value]] = Array.from(new URLSearchParams(this.value ?? '').entries());\n\n const parsedType = key.substring('discount_'.length);\n const allowedTypes = [\n 'price_amount',\n 'price_percentage',\n 'quantity_amount',\n 'quantity_percentage',\n ];\n\n if (allowedTypes.includes(parsedType)) {\n type = parsedType as DiscountType;\n }\n\n const detailsStart = value.indexOf('{');\n const detailsEnd = value.lastIndexOf('}');\n\n if (detailsStart !== -1 && detailsEnd !== -1) {\n details = value.substring(detailsStart + 1, detailsEnd);\n name = value.substring(0, detailsStart);\n }\n } catch {\n // ignore and use the defaults\n }\n\n if (name.length === 0) name = 'Discount';\n\n return { type, name, details };\n }\n\n set parsedValue({ name, type, details }: ParsedValue) {\n this.value = new URLSearchParams([[`discount_${type}`, `${name}{${details}}`]]).toString();\n }\n\n render(): TemplateResult {\n const details = this.parsedValue.details;\n const tiers = details.split('|').filter(v => !!v.trim());\n const method = (/[-+]/.test(tiers[0]) ? null : tiers.shift()) ?? 'single';\n const renderedTiers = method === 'repeat' ? [tiers[0]] : [...tiers, undefined];\n\n const type = this.parsedValue.type;\n const [source, units] = type.split('_');\n\n return html`\n <div class=\"space-y-s\">\n ${repeat(renderedTiers, (tier, tierIndex) => {\n const onChange = (changedParams: Partial<RulesTierParams>) => {\n const newMethod = changedParams.method ?? method;\n const newSource = changedParams.source ?? source;\n const newUnits = changedParams.units ?? units;\n const newTier = changedParams.tier;\n const newTiers = [...tiers];\n\n if (newTier) {\n const newTierIndex = tier ? tierIndex : newTiers.length;\n const oldTiersCount = tier ? 1 : 0;\n newTiers.splice(newTierIndex, oldTiersCount, newTier);\n }\n\n this.parsedValue = {\n ...this.parsedValue,\n type: `${newSource}_${newUnits}` as DiscountType,\n details: `${newMethod}|${newTiers.join('|')}`,\n };\n\n this.dispatchEvent(new CustomEvent('change'));\n };\n\n const onDelete = () => {\n const newTiers = tiers.filter((_, i) => i !== tierIndex);\n const newDetails = `${method}|${newTiers.join('|')}`;\n\n this.parsedValue = { ...this.parsedValue, details: newDetails };\n this.dispatchEvent(new CustomEvent('change'));\n };\n\n return this.__renderTier({ source, method, units, tier, onChange, onDelete });\n })}\n </div>\n `;\n }\n\n private __renderSelect({ label, value, options, onChange }: RulesTierSelectParams) {\n const isInteractive = !this.disabled && !this.readonly;\n\n return html`\n <label\n class=${classMap({\n 'h-xs whitespace-nowrap block ring-primary-50 rounded pl-s transition-colors': true,\n 'hover-bg-primary hover-text-primary-contrast focus-within-ring-2': isInteractive,\n 'bg-primary-10 text-primary': isInteractive,\n 'bg-contrast-5 text-disabled': this.disabled,\n 'bg-contrast-5 text-secondary': this.readonly && !this.disabled,\n })}\n >\n <foxy-i18n class=\"sr-only\" infer=\"\" key=${label}></foxy-i18n>\n\n <span class=\"relative leading-none font-medium flex items-center h-full\">\n <span class=\"truncate\">${this.t(options[value])}</span>\n <iron-icon class=\"icon-inline text-xl ml-xs\" icon=\"icons:expand-more\"></iron-icon>\n\n <select\n data-testclass=\"interactive editable\"\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n ?disabled=${!isInteractive}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n onChange(select.options[select.selectedIndex].value);\n }}\n >\n ${Object.entries(options).map(([optionValue, optionKey]) => {\n return html`\n <option value=${optionValue} ?selected=${optionValue === value}>\n ${this.t(optionKey)}\n </option>\n `;\n })}\n </select>\n </span>\n </label>\n `;\n }\n\n private __renderSwitch({ value, options, onChange }: RulesTierSwitchParams) {\n const isInteractive = !this.disabled && !this.readonly;\n const name = `switch-${Math.floor(Math.random() * Math.pow(10, 10))}`;\n const dotStyle = 'width: 0.4rem; height: 0.4rem';\n\n return html`\n <div\n class=${classMap({\n 'h-xs px-xs space-x-xs flex items-center rounded-s transition-colors': true,\n 'hover-bg-primary hover-text-primary-contrast focus-within-ring-2': isInteractive,\n 'ring-primary-50 cursor-pointer bg-primary-10 text-primary': isInteractive,\n 'bg-contrast-5 text-disabled': this.disabled,\n 'bg-contrast-5 text-secondary': this.readonly && !this.disabled,\n })}\n @click=${(evt: Event) => {\n if (!isInteractive) return;\n\n const target = evt.currentTarget as HTMLDivElement;\n const firstInput = target.querySelector('input') as HTMLInputElement;\n\n firstInput.focus();\n onChange(value === 0 ? 1 : 0);\n }}\n >\n <div class=\"leading-none font-medium px-xs pointer-events-none\">\n ${options.map((option, optionIndex) => {\n return html`\n <label>\n <foxy-i18n\n class=${classMap({ 'sr-only': optionIndex !== value })}\n infer=\"\"\n key=${option}\n >\n </foxy-i18n>\n\n <input\n data-testclass=\"interactive editable\"\n class=\"sr-only\"\n value=${option}\n name=${name}\n type=\"radio\"\n ?disabled=${!isInteractive}\n ?checked=${optionIndex === value}\n @change=${(evt: Event) => {\n const input = evt.currentTarget as HTMLInputElement;\n if (input.checked) onChange(optionIndex);\n }}\n />\n </label>\n `;\n })}\n </div>\n\n <div class=\"flex justify-evenly h-full ${value ? 'flex-col-reverse' : 'flex-col'}\">\n <div style=${dotStyle} class=\"bg-current rounded-full\"></div>\n <div style=${dotStyle} class=\"border border-current rounded-full\"></div>\n </div>\n </div>\n `;\n }\n\n private __renderField({ value, label, onChange }: RulesTierFieldParams) {\n const isInteractive = !this.disabled && !this.readonly;\n\n return html`\n <label>\n <foxy-i18n class=\"sr-only\" infer=\"\" key=${label}></foxy-i18n>\n <input\n data-testclass=\"interactive editable\"\n class=${classMap({\n 'transition-colors border p-xs h-xs font-medium text-m rounded-s w-xl': true,\n 'ring-primary-50 text-body bg-contrast-10': isInteractive,\n 'hover-bg-contrast-20': isInteractive,\n 'focus-outline-none focus-ring-2': isInteractive,\n 'text-disabled bg-contrast-5': this.disabled,\n 'text-secondary': this.readonly && !this.disabled,\n 'border-transparent border-solid': !this.readonly,\n 'border-dashed border-contrast-30': this.readonly,\n })}\n type=\"number\"\n min=\"0\"\n ?disabled=${!isInteractive}\n .value=${value}\n @input=${(evt: InputEvent) => {\n const input = evt.currentTarget as HTMLInputElement;\n onChange(input.value);\n }}\n />\n </label>\n `;\n }\n\n private __renderTier(params: RulesTierParams) {\n const tier = params.tier ?? '0-0';\n const sign = tier.includes('+') ? '+' : '-';\n const [from, adjustment] = tier.split(/[-+]/).map(v => parseFloat(v));\n\n return html`\n <div\n data-testclass=\"rules:tier\"\n aria-label=${this.t('tier')}\n class=${classMap({\n 'flex items-start justify-between rounded': true,\n 'border border-contrast-10': true,\n 'border-dashed': !params.tier,\n })}\n >\n <div\n class=${classMap({\n 'transition-colors flex flex-wrap items-center gap-s p-s': true,\n 'text-tertiary': !this.disabled,\n 'text-disabled': this.disabled,\n })}\n >\n <foxy-i18n class=\"uppercase text-s font-semibold\" infer=\"\" key=\"tier_if\"></foxy-i18n>\n\n ${this.__renderSwitch({\n options: ['total', 'quantity'],\n value: params.source === 'price' ? 0 : 1,\n onChange: i => params.onChange({ source: i ? 'quantity' : 'price' }),\n })}\n\n <div class=\"h-s w-s\">${operatorGreaterThanOrEqual}</div>\n\n ${this.__renderField({\n label: 'from',\n value: String(from),\n onChange: v => params.onChange({ tier: `${v}${sign}${adjustment}` }),\n })}\n\n <foxy-i18n class=\"uppercase text-s font-semibold\" infer=\"\" key=\"tier_then\"></foxy-i18n>\n\n ${this.__renderSwitch({\n options: ['reduce', 'increase'],\n value: sign === '-' ? 0 : 1,\n onChange: i => params.onChange({ tier: `${from}${i ? '+' : '-'}${adjustment}` }),\n })}\n\n <!---->\n\n ${this.__renderSelect({\n options: {\n incremental: 'tier_incremental',\n allunits: 'tier_allunits',\n repeat: 'tier_repeat',\n single: 'tier_single',\n },\n value: params.method,\n label: 'target',\n onChange: v => params.onChange({ method: v }),\n })}\n\n <foxy-i18n class=\"uppercase text-s font-semibold\" infer=\"\" key=\"tier_by\"></foxy-i18n>\n\n ${this.__renderField({\n label: 'adjustment',\n value: String(adjustment),\n onChange: v => params.onChange({ tier: `${from}${sign}${v}` }),\n })}\n\n <!---->\n\n ${this.__renderSwitch({\n value: params.units === 'percentage' ? 0 : 1,\n options: ['%', '¤'],\n onChange: i => params.onChange({ units: i ? 'amount' : 'percentage' }),\n })}\n </div>\n\n ${params.tier\n ? html`\n <button\n data-testclass=\"interactive\"\n aria-label=${this.t('delete')}\n class=${classMap({\n 'w-s h-s m-s flex-shrink-0 rounded-s transition-colors ring-primary-50': true,\n 'text-tertiary hover-text-secondary focus-outline-none focus-ring-2':\n !this.disabled,\n 'text-disabled cursor-default': this.disabled,\n })}\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @click=${() => params.onDelete()}\n >\n <iron-icon icon=\"lumo:cross\"></iron-icon>\n </button>\n `\n : ''}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"DiscountBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/DiscountBuilder/DiscountBuilder.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,0BAA0B,EAAE,4DAAyD;AAE9F,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAC9B,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAI;IAAzC;;QAQE;;;;;;;;;;;WAWG;QACH,UAAK,GAAkB,IAAI,CAAC;IAkU9B,CAAC;IArVC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAgBD,IAAI,WAAW;;QACb,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,GAAiB,iBAAiB,CAAC;QAE3C,IAAI;YACF,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,eAAe,OAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnF,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG;gBACnB,cAAc;gBACd,kBAAkB;gBAClB,iBAAiB;gBACjB,qBAAqB;aACtB,CAAC;YAEF,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACrC,IAAI,GAAG,UAA0B,CAAC;aACnC;YAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAE1C,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;gBAC5C,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;aACzC;SACF;QAAC,WAAM;YACN,8BAA8B;SAC/B;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,GAAG,UAAU,CAAC;QAEzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAe;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7F,CAAC;IAED,MAAM;;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,mCAAI,QAAQ,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,CAAC;QAE/E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,OAAO,IAAI,CAAA;;UAEL,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,CAAC,aAAuC,EAAE,EAAE;;gBAC3D,MAAM,SAAS,SAAG,aAAa,CAAC,MAAM,mCAAI,MAAM,CAAC;gBACjD,MAAM,SAAS,SAAG,aAAa,CAAC,MAAM,mCAAI,MAAM,CAAC;gBACjD,MAAM,QAAQ,SAAG,aAAa,CAAC,KAAK,mCAAI,KAAK,CAAC;gBAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;gBACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;gBAE5B,IAAI,OAAO,EAAE;oBACX,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACxD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;iBACvD;gBAED,IAAI,CAAC,WAAW,GAAG;oBACjB,GAAG,IAAI,CAAC,WAAW;oBACnB,IAAI,EAAE,GAAG,SAAS,IAAI,QAAQ,EAAkB;oBAChD,OAAO,EAAE,GAAG,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;iBAC9C,CAAC;gBAEF,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAErD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;gBAChE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC;YAEF,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC;;KAEL,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAyB;QAC/E,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEvD,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC;YACf,6EAA6E,EAAE,IAAI;YACnF,kEAAkE,EAAE,aAAa;YACjF,4BAA4B,EAAE,aAAa;YAC3C,6BAA6B,EAAE,IAAI,CAAC,QAAQ;YAC5C,8BAA8B,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAChE,CAAC;;kDAEwC,KAAK;;;mCAGpB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;;;;;wBAMjC,CAAC,aAAa;sBAChB,CAAC,GAAU,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAkC,CAAC;YACtD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;;cAEC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE;YACzD,OAAO,IAAI,CAAA;gCACO,WAAW,cAAc,WAAW,KAAK,KAAK;oBAC1D,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;;eAEtB,CAAC;QACJ,CAAC,CAAC;;;;KAIT,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAyB;QACxE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvD,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,+BAA+B,CAAC;QAEjD,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC;YACf,qEAAqE,EAAE,IAAI;YAC3E,kEAAkE,EAAE,aAAa;YACjF,2DAA2D,EAAE,aAAa;YAC1E,6BAA6B,EAAE,IAAI,CAAC,QAAQ;YAC5C,8BAA8B,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAChE,CAAC;iBACO,CAAC,GAAU,EAAE,EAAE;YACtB,IAAI,CAAC,aAAa;gBAAE,OAAO;YAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,aAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAqB,CAAC;YAErE,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;;;YAGG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACpC,OAAO,IAAI,CAAA;;;0BAGG,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,KAAK,KAAK,EAAE,CAAC;;wBAEhD,MAAM;;;;;;;0BAOJ,MAAM;yBACP,IAAI;;8BAEC,CAAC,aAAa;6BACf,WAAW,KAAK,KAAK;4BACtB,CAAC,GAAU,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;gBACpD,IAAI,KAAK,CAAC,OAAO;oBAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;;;aAGN,CAAC;QACJ,CAAC,CAAC;;;iDAGqC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU;uBACjE,QAAQ;uBACR,QAAQ;;;KAG1B,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAwB;QACpE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEvD,OAAO,IAAI,CAAA;;kDAEmC,KAAK;;;kBAGrC,QAAQ,CAAC;YACf,sEAAsE,EAAE,IAAI;YAC5E,0CAA0C,EAAE,aAAa;YACzD,sBAAsB,EAAE,aAAa;YACrC,iCAAiC,EAAE,aAAa;YAChD,6BAA6B,EAAE,IAAI,CAAC,QAAQ;YAC5C,gBAAgB,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YACjD,iCAAiC,EAAE,CAAC,IAAI,CAAC,QAAQ;YACjD,kCAAkC,EAAE,IAAI,CAAC,QAAQ;SAClD,CAAC;;;sBAGU,CAAC,aAAa;mBACjB,KAAK;mBACL,CAAC,GAAe,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;;;KAGN,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,MAAuB;;QAC1C,MAAM,IAAI,SAAG,MAAM,CAAC,IAAI,mCAAI,KAAK,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5C,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAA;;;qBAGM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;gBACnB,QAAQ,CAAC;YACf,0CAA0C,EAAE,IAAI;YAChD,2BAA2B,EAAE,IAAI;YACjC,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI;SAC9B,CAAC;;;kBAGQ,QAAQ,CAAC;YACf,yDAAyD,EAAE,IAAI;YAC/D,eAAe,EAAE,CAAC,IAAI,CAAC,QAAQ;YAC/B,eAAe,EAAE,IAAI,CAAC,QAAQ;SAC/B,CAAC;;;;YAIA,IAAI,CAAC,cAAc,CAAC;YACpB,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACrE,CAAC;;iCAEqB,0BAA0B;;YAE/C,IAAI,CAAC,aAAa,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,UAAU,EAAE,EAAE,CAAC;SACrE,CAAC;;;;YAIA,IAAI,CAAC,cAAc,CAAC;YACpB,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC/B,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,EAAE,EAAE,CAAC;SACjF,CAAC;;;;YAIA,IAAI,CAAC,cAAc,CAAC;YACpB,OAAO,EAAE;gBACP,WAAW,EAAE,kBAAkB;gBAC/B,QAAQ,EAAE,eAAe;gBACzB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,aAAa;aACtB;YACD,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SAC9C,CAAC;;;;YAIA,IAAI,CAAC,aAAa,CAAC;YACnB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;SAC/D,CAAC;;;;YAIA,IAAI,CAAC,cAAc,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;SACvE,CAAC;;;UAGF,MAAM,CAAC,IAAI;YACX,CAAC,CAAC,IAAI,CAAA;;;6BAGa,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACrB,QAAQ,CAAC;gBACf,uEAAuE,EAAE,IAAI;gBAC7E,oEAAoE,EAClE,CAAC,IAAI,CAAC,QAAQ;gBAChB,8BAA8B,EAAE,IAAI,CAAC,QAAQ;aAC9C,CAAC;4BACU,IAAI,CAAC,QAAQ;0BACf,IAAI,CAAC,QAAQ;yBACd,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;;;;aAInC;YACH,CAAC,CAAC,EAAE;;KAET,CAAC;IACJ,CAAC;CACF","sourcesContent":["import {\n DiscountType,\n ParsedValue,\n RulesTierParams,\n RulesTierSelectParams,\n RulesTierSwitchParams,\n RulesTierFieldParams,\n} from './types';\n\nimport { html, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { operatorGreaterThanOrEqual } from '../QueryBuilder/icons/operatorGreaterThanOrEqual';\n\nconst NS = 'discount-builder';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)));\n\n/**\n * Visual builder for discount URL parameters in coupons and more.\n * Learn more about discounts here: [Foxy Wiki](https://wiki.foxycart.com/v/2.0/coupons_and_discounts).\n *\n * @element foxy-discount-builder\n * @since 1.17.0\n */\nexport class DiscountBuilder extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n value: { type: String },\n };\n }\n\n /**\n * Discount URL parameter.\n *\n * Note that if you set this value, it **must be encoded** for the\n * builder to work correctly. You can use either `encodeURIComponent` or `URLSearchParams` like so:\n *\n * ```ts\n * discountBuilder.value = new URLSearchParams([\n * ['discount_amount_percentage', 'Test{allunits|1-2|3-4}']\n * ]).toString();\n * ```\n */\n value: string | null = null;\n\n get parsedValue(): ParsedValue {\n let details = '';\n let name = '';\n let type: DiscountType = 'quantity_amount';\n\n try {\n const [[key, value]] = Array.from(new URLSearchParams(this.value ?? '').entries());\n\n const parsedType = key.substring('discount_'.length);\n const allowedTypes = [\n 'price_amount',\n 'price_percentage',\n 'quantity_amount',\n 'quantity_percentage',\n ];\n\n if (allowedTypes.includes(parsedType)) {\n type = parsedType as DiscountType;\n }\n\n const detailsStart = value.indexOf('{');\n const detailsEnd = value.lastIndexOf('}');\n\n if (detailsStart !== -1 && detailsEnd !== -1) {\n details = value.substring(detailsStart + 1, detailsEnd);\n name = value.substring(0, detailsStart);\n }\n } catch {\n // ignore and use the defaults\n }\n\n if (name.length === 0) name = 'Discount';\n\n return { type, name, details };\n }\n\n set parsedValue({ name, type, details }: ParsedValue) {\n this.value = new URLSearchParams([[`discount_${type}`, `${name}{${details}}`]]).toString();\n }\n\n render(): TemplateResult {\n const details = this.parsedValue.details;\n const tiers = details.split('|').filter(v => !!v.trim());\n const method = (/[-+]/.test(tiers[0]) ? null : tiers.shift()) ?? 'single';\n const renderedTiers = method === 'repeat' ? [tiers[0]] : [...tiers, undefined];\n\n const type = this.parsedValue.type;\n const [source, units] = type.split('_');\n\n return html`\n <div class=\"space-y-s\">\n ${repeat(renderedTiers, (tier, tierIndex) => {\n const onChange = (changedParams: Partial<RulesTierParams>) => {\n const newMethod = changedParams.method ?? method;\n const newSource = changedParams.source ?? source;\n const newUnits = changedParams.units ?? units;\n const newTier = changedParams.tier;\n const newTiers = [...tiers];\n\n if (newTier) {\n const newTierIndex = tier ? tierIndex : newTiers.length;\n const oldTiersCount = tier ? 1 : 0;\n newTiers.splice(newTierIndex, oldTiersCount, newTier);\n }\n\n this.parsedValue = {\n ...this.parsedValue,\n type: `${newSource}_${newUnits}` as DiscountType,\n details: `${newMethod}|${newTiers.join('|')}`,\n };\n\n this.dispatchEvent(new CustomEvent('change'));\n };\n\n const onDelete = () => {\n const newTiers = tiers.filter((_, i) => i !== tierIndex);\n const newDetails = `${method}|${newTiers.join('|')}`;\n\n this.parsedValue = { ...this.parsedValue, details: newDetails };\n this.dispatchEvent(new CustomEvent('change'));\n };\n\n return this.__renderTier({ source, method, units, tier, onChange, onDelete });\n })}\n </div>\n `;\n }\n\n private __renderSelect({ label, value, options, onChange }: RulesTierSelectParams) {\n const isInteractive = !this.disabled && !this.readonly;\n\n return html`\n <label\n class=${classMap({\n 'h-xs whitespace-nowrap block ring-primary-50 rounded pl-s transition-colors': true,\n 'hover-bg-primary hover-text-primary-contrast focus-within-ring-2': isInteractive,\n 'bg-primary-10 text-primary': isInteractive,\n 'bg-contrast-5 text-disabled': this.disabled,\n 'bg-contrast-5 text-secondary': this.readonly && !this.disabled,\n })}\n >\n <foxy-i18n class=\"sr-only\" infer=\"\" key=${label}></foxy-i18n>\n\n <span class=\"relative leading-none font-medium flex items-center h-full\">\n <span class=\"truncate\">${this.t(options[value])}</span>\n <iron-icon class=\"icon-inline text-xl ml-xs\" icon=\"icons:expand-more\"></iron-icon>\n\n <select\n data-testclass=\"interactive editable\"\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n ?disabled=${!isInteractive}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n onChange(select.options[select.selectedIndex].value);\n }}\n >\n ${Object.entries(options).map(([optionValue, optionKey]) => {\n return html`\n <option value=${optionValue} ?selected=${optionValue === value}>\n ${this.t(optionKey)}\n </option>\n `;\n })}\n </select>\n </span>\n </label>\n `;\n }\n\n private __renderSwitch({ value, options, onChange }: RulesTierSwitchParams) {\n const isInteractive = !this.disabled && !this.readonly;\n const name = `switch-${Math.floor(Math.random() * Math.pow(10, 10))}`;\n const dotStyle = 'width: 0.4rem; height: 0.4rem';\n\n return html`\n <div\n class=${classMap({\n 'h-xs px-xs space-x-xs flex items-center rounded-s transition-colors': true,\n 'hover-bg-primary hover-text-primary-contrast focus-within-ring-2': isInteractive,\n 'ring-primary-50 cursor-pointer bg-primary-10 text-primary': isInteractive,\n 'bg-contrast-5 text-disabled': this.disabled,\n 'bg-contrast-5 text-secondary': this.readonly && !this.disabled,\n })}\n @click=${(evt: Event) => {\n if (!isInteractive) return;\n\n const target = evt.currentTarget as HTMLDivElement;\n const firstInput = target.querySelector('input') as HTMLInputElement;\n\n firstInput.focus();\n onChange(value === 0 ? 1 : 0);\n }}\n >\n <div class=\"leading-none font-medium px-xs pointer-events-none\">\n ${options.map((option, optionIndex) => {\n return html`\n <label>\n <foxy-i18n\n class=${classMap({ 'sr-only': optionIndex !== value })}\n infer=\"\"\n key=${option}\n >\n </foxy-i18n>\n\n <input\n data-testclass=\"interactive editable\"\n class=\"sr-only\"\n value=${option}\n name=${name}\n type=\"radio\"\n ?disabled=${!isInteractive}\n ?checked=${optionIndex === value}\n @change=${(evt: Event) => {\n const input = evt.currentTarget as HTMLInputElement;\n if (input.checked) onChange(optionIndex);\n }}\n />\n </label>\n `;\n })}\n </div>\n\n <div class=\"flex justify-evenly h-full ${value ? 'flex-col-reverse' : 'flex-col'}\">\n <div style=${dotStyle} class=\"bg-current rounded-full\"></div>\n <div style=${dotStyle} class=\"border border-current rounded-full\"></div>\n </div>\n </div>\n `;\n }\n\n private __renderField({ value, label, onChange }: RulesTierFieldParams) {\n const isInteractive = !this.disabled && !this.readonly;\n\n return html`\n <label>\n <foxy-i18n class=\"sr-only\" infer=\"\" key=${label}></foxy-i18n>\n <input\n data-testclass=\"interactive editable\"\n class=${classMap({\n 'transition-colors border p-xs h-xs font-medium text-m rounded-s w-xl': true,\n 'ring-primary-50 text-body bg-contrast-10': isInteractive,\n 'hover-bg-contrast-20': isInteractive,\n 'focus-outline-none focus-ring-2': isInteractive,\n 'text-disabled bg-contrast-5': this.disabled,\n 'text-secondary': this.readonly && !this.disabled,\n 'border-transparent border-solid': !this.readonly,\n 'border-dashed border-contrast-30': this.readonly,\n })}\n type=\"number\"\n min=\"0\"\n ?disabled=${!isInteractive}\n .value=${value}\n @input=${(evt: InputEvent) => {\n const input = evt.currentTarget as HTMLInputElement;\n onChange(input.value);\n }}\n />\n </label>\n `;\n }\n\n private __renderTier(params: RulesTierParams) {\n const tier = params.tier ?? '0-0';\n const sign = tier.includes('+') ? '+' : '-';\n const [from, adjustment] = tier.split(/[-+]/).map(v => parseFloat(v));\n\n return html`\n <div\n data-testclass=\"rules:tier\"\n aria-label=${this.t('tier')}\n class=${classMap({\n 'flex items-start justify-between rounded': true,\n 'border border-contrast-10': true,\n 'border-dashed': !params.tier,\n })}\n >\n <div\n class=${classMap({\n 'transition-colors flex flex-wrap items-center gap-s p-s': true,\n 'text-tertiary': !this.disabled,\n 'text-disabled': this.disabled,\n })}\n >\n <foxy-i18n class=\"uppercase text-s font-medium\" infer=\"\" key=\"tier_if\"></foxy-i18n>\n\n ${this.__renderSwitch({\n options: ['total', 'quantity'],\n value: params.source === 'price' ? 0 : 1,\n onChange: i => params.onChange({ source: i ? 'quantity' : 'price' }),\n })}\n\n <div class=\"h-s w-s\">${operatorGreaterThanOrEqual}</div>\n\n ${this.__renderField({\n label: 'from',\n value: String(from),\n onChange: v => params.onChange({ tier: `${v}${sign}${adjustment}` }),\n })}\n\n <foxy-i18n class=\"uppercase text-s font-medium\" infer=\"\" key=\"tier_then\"></foxy-i18n>\n\n ${this.__renderSwitch({\n options: ['reduce', 'increase'],\n value: sign === '-' ? 0 : 1,\n onChange: i => params.onChange({ tier: `${from}${i ? '+' : '-'}${adjustment}` }),\n })}\n\n <!---->\n\n ${this.__renderSelect({\n options: {\n incremental: 'tier_incremental',\n allunits: 'tier_allunits',\n repeat: 'tier_repeat',\n single: 'tier_single',\n },\n value: params.method,\n label: 'target',\n onChange: v => params.onChange({ method: v }),\n })}\n\n <foxy-i18n class=\"uppercase text-s font-medium\" infer=\"\" key=\"tier_by\"></foxy-i18n>\n\n ${this.__renderField({\n label: 'adjustment',\n value: String(adjustment),\n onChange: v => params.onChange({ tier: `${from}${sign}${v}` }),\n })}\n\n <!---->\n\n ${this.__renderSwitch({\n value: params.units === 'percentage' ? 0 : 1,\n options: ['%', '¤'],\n onChange: i => params.onChange({ units: i ? 'amount' : 'percentage' }),\n })}\n </div>\n\n ${params.tier\n ? html`\n <button\n data-testclass=\"interactive\"\n aria-label=${this.t('delete')}\n class=${classMap({\n 'w-s h-s m-s flex-shrink-0 rounded-s transition-colors ring-primary-50': true,\n 'text-tertiary hover-text-secondary focus-outline-none focus-ring-2':\n !this.disabled,\n 'text-disabled cursor-default': this.disabled,\n })}\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @click=${() => params.onDelete()}\n >\n <iron-icon icon=\"lumo:cross\"></iron-icon>\n </button>\n `\n : ''}\n </div>\n `;\n }\n}\n"]}
@@ -101,7 +101,7 @@ export class ErrorEntryCard extends Base {
101
101
  const method = getValues ? 'GET' : 'POST';
102
102
  return html `
103
103
  <div class="relative leading-xs pt-s">
104
- <div class="absolute font-semibold right-0 text-tertiary text-xs top-0 mt-s">${method}</div>
104
+ <div class="absolute font-medium right-0 text-tertiary text-xs top-0 mt-s">${method}</div>
105
105
  <x-data-list data=${JSON.stringify(Array.from(params.entries()))}></x-data-list>
106
106
  </div>
107
107
  `;
@@ -111,7 +111,7 @@ export class ErrorEntryCard extends Base {
111
111
  <span class="text-secondary">Navigated from</span>
112
112
  <a
113
113
  target="_blank"
114
- class="font-semibold text-primary hover-underline"
114
+ class="font-medium text-primary hover-underline"
115
115
  href=${referrer}
116
116
  rel="nofollow noopener noreferrer"
117
117
  >
@@ -156,7 +156,7 @@ export class ErrorEntryCard extends Base {
156
156
 
157
157
  <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s">
158
158
  <p>
159
- <span class="block font-semibold">${data.url}</span>
159
+ <span class="block font-medium">${data.url}</span>
160
160
  ${data.referrer ? this.__renderReferrer(data.referrer) : ''}
161
161
  </p>
162
162
 
@@ -170,7 +170,7 @@ export class ErrorEntryCard extends Base {
170
170
  <foxy-i18n slot="header" lang=${this.lang} key="client" ns=${this.ns}></foxy-i18n>
171
171
 
172
172
  <div class="text-s flex flex-col mx-xs p-s">
173
- <span class="font-semibold">
173
+ <span class="font-medium">
174
174
  ${data.ip_address}
175
175
  ${data.ip_country
176
176
  ? html `<span class="text-tertiary"> • </span>${data.ip_country}`
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorEntryCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ErrorEntryCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data } from './types';\nimport { DataList } from './DataList';\nimport { Group } from '../../private/Group/Group';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { ResourceViewer } from './ResourceViewer';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'error-entry-card';\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)), NS);\n\n/**\n * Displays an ErrorEntry from the Log of FoxyAPI.\n *\n * @element foxy-error-entry-card\n */\nexport class ErrorEntryCard extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'x-resource-viewer': ResourceViewer,\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n /**\n * If true, displays the error details.\n * Additionally, sets `form.hide_error` to `true` and submits changes on first view.\n */\n open = false;\n\n render(): TemplateResult {\n const data = this.data;\n const isBusy = this.in('busy');\n\n if (data) {\n const { hide_error } = data;\n const { open } = this;\n\n return html`\n <details\n aria-busy=${isBusy}\n aria-live=\"polite\"\n class=\"text-body w-full\"\n ?open=${open}\n @toggle=${this.__handleToggle}\n >\n <summary\n class=\"rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2\"\n >\n <div\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=${classMap({\n 'border-l-2 leading-s relative cursor-pointer': true,\n 'border-contrast': hide_error && !open,\n 'border-primary': !hide_error,\n 'border-error': hide_error && open,\n 'h-l': !open,\n })}\n >\n ${this.__renderSummary(data)}\n </div>\n </summary>\n\n ${open ? this.__renderDetails(data) : ''}\n </details>\n `;\n } else {\n return html`\n <div\n aria-busy=${isBusy}\n aria-live=\"polite\"\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=\"flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l\"\n >\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${isBusy ? 'busy' : this.in('fail') ? 'error' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n `;\n }\n }\n\n private __renderGetOrPostValues(getValues: string, postValues: string) {\n const values = getValues || postValues;\n const params = new URLSearchParams(this.__decodeHtml(values));\n const method = getValues ? 'GET' : 'POST';\n\n return html`\n <div class=\"relative leading-xs pt-s\">\n <div class=\"absolute font-semibold right-0 text-tertiary text-xs top-0 mt-s\">${method}</div>\n <x-data-list data=${JSON.stringify(Array.from(params.entries()))}></x-data-list>\n </div>\n `;\n }\n\n private __renderReferrer(referrer: string) {\n return html`\n <span class=\"text-secondary\">Navigated from</span>\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary hover-underline\"\n href=${referrer}\n rel=\"nofollow noopener noreferrer\"\n >\n ${referrer}\n </a>\n `;\n }\n\n private __renderSummary(data: Data) {\n return html`\n <div class=\"text-s absolute right-0 top-0 text-tertiary\">\n <iron-icon icon=\"icons:expand-${this.open ? 'less' : 'more'}\"></iron-icon>\n </div>\n\n <div class=\"text-s mb-xs ${data.hide_error ? 'text-error' : 'text-primary'}\">\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"date\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n <p class=\"${this.open ? '' : 'truncate'} overflow-hidden font-medium\">\n ${data.error_message}\n </p>\n `;\n }\n\n private __renderDetails(data: Data) {\n return html`\n <div class=\"space-y-m pt-m\">\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"request\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"mx-xs p-s text-s divide-y divide-contrast-10 space-y-s\">\n <p>\n <span class=\"block font-semibold\">${data.url}</span>\n ${data.referrer ? this.__renderReferrer(data.referrer) : ''}\n </p>\n\n ${data.get_values || data.post_values\n ? this.__renderGetOrPostValues(data.get_values, data.post_values)\n : ''}\n </div>\n </x-group>\n\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"client\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"text-s flex flex-col mx-xs p-s\">\n <span class=\"font-semibold\">\n ${data.ip_address}\n ${data.ip_country\n ? html`<span class=\"text-tertiary\"> • </span>${data.ip_country}`\n : ''}\n </span>\n\n ${data.user_agent ? html`<span class=\"text-secondary\">${data.user_agent}</span>` : ''}\n </div>\n </x-group>\n\n ${Object.entries(data._links).map(([curie, link]) => {\n if (['self', 'fx:store', 'curies'].includes(curie)) return '';\n\n return html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=${curie.substr(3)} ns=${this.ns}>\n </foxy-i18n>\n\n <x-resource-viewer\n class=\"p-s mx-xs\"\n href=${link.href}\n lang=${this.lang}\n ns=${this.ns}\n >\n </x-resource-viewer>\n </x-group>\n `;\n })}\n </div>\n `;\n }\n\n private __handleToggle(event: Event) {\n const details = event.target as HTMLDetailsElement;\n\n if (details.open && this.data?.hide_error === false) {\n this.edit({ hide_error: true });\n this.submit();\n }\n\n this.open = details.open;\n }\n\n private __decodeHtml(html: string) {\n const areaElement = document.createElement('textarea');\n areaElement.innerHTML = html;\n return areaElement.value;\n }\n}\n"]}
1
+ {"version":3,"file":"ErrorEntryCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ErrorEntryCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data } from './types';\nimport { DataList } from './DataList';\nimport { Group } from '../../private/Group/Group';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { ResourceViewer } from './ResourceViewer';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'error-entry-card';\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)), NS);\n\n/**\n * Displays an ErrorEntry from the Log of FoxyAPI.\n *\n * @element foxy-error-entry-card\n */\nexport class ErrorEntryCard extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'x-resource-viewer': ResourceViewer,\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n /**\n * If true, displays the error details.\n * Additionally, sets `form.hide_error` to `true` and submits changes on first view.\n */\n open = false;\n\n render(): TemplateResult {\n const data = this.data;\n const isBusy = this.in('busy');\n\n if (data) {\n const { hide_error } = data;\n const { open } = this;\n\n return html`\n <details\n aria-busy=${isBusy}\n aria-live=\"polite\"\n class=\"text-body w-full\"\n ?open=${open}\n @toggle=${this.__handleToggle}\n >\n <summary\n class=\"rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2\"\n >\n <div\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=${classMap({\n 'border-l-2 leading-s relative cursor-pointer': true,\n 'border-contrast': hide_error && !open,\n 'border-primary': !hide_error,\n 'border-error': hide_error && open,\n 'h-l': !open,\n })}\n >\n ${this.__renderSummary(data)}\n </div>\n </summary>\n\n ${open ? this.__renderDetails(data) : ''}\n </details>\n `;\n } else {\n return html`\n <div\n aria-busy=${isBusy}\n aria-live=\"polite\"\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=\"flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l\"\n >\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${isBusy ? 'busy' : this.in('fail') ? 'error' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n `;\n }\n }\n\n private __renderGetOrPostValues(getValues: string, postValues: string) {\n const values = getValues || postValues;\n const params = new URLSearchParams(this.__decodeHtml(values));\n const method = getValues ? 'GET' : 'POST';\n\n return html`\n <div class=\"relative leading-xs pt-s\">\n <div class=\"absolute font-medium right-0 text-tertiary text-xs top-0 mt-s\">${method}</div>\n <x-data-list data=${JSON.stringify(Array.from(params.entries()))}></x-data-list>\n </div>\n `;\n }\n\n private __renderReferrer(referrer: string) {\n return html`\n <span class=\"text-secondary\">Navigated from</span>\n <a\n target=\"_blank\"\n class=\"font-medium text-primary hover-underline\"\n href=${referrer}\n rel=\"nofollow noopener noreferrer\"\n >\n ${referrer}\n </a>\n `;\n }\n\n private __renderSummary(data: Data) {\n return html`\n <div class=\"text-s absolute right-0 top-0 text-tertiary\">\n <iron-icon icon=\"icons:expand-${this.open ? 'less' : 'more'}\"></iron-icon>\n </div>\n\n <div class=\"text-s mb-xs ${data.hide_error ? 'text-error' : 'text-primary'}\">\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"date\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n <p class=\"${this.open ? '' : 'truncate'} overflow-hidden font-medium\">\n ${data.error_message}\n </p>\n `;\n }\n\n private __renderDetails(data: Data) {\n return html`\n <div class=\"space-y-m pt-m\">\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"request\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"mx-xs p-s text-s divide-y divide-contrast-10 space-y-s\">\n <p>\n <span class=\"block font-medium\">${data.url}</span>\n ${data.referrer ? this.__renderReferrer(data.referrer) : ''}\n </p>\n\n ${data.get_values || data.post_values\n ? this.__renderGetOrPostValues(data.get_values, data.post_values)\n : ''}\n </div>\n </x-group>\n\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"client\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"text-s flex flex-col mx-xs p-s\">\n <span class=\"font-medium\">\n ${data.ip_address}\n ${data.ip_country\n ? html`<span class=\"text-tertiary\"> • </span>${data.ip_country}`\n : ''}\n </span>\n\n ${data.user_agent ? html`<span class=\"text-secondary\">${data.user_agent}</span>` : ''}\n </div>\n </x-group>\n\n ${Object.entries(data._links).map(([curie, link]) => {\n if (['self', 'fx:store', 'curies'].includes(curie)) return '';\n\n return html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=${curie.substr(3)} ns=${this.ns}>\n </foxy-i18n>\n\n <x-resource-viewer\n class=\"p-s mx-xs\"\n href=${link.href}\n lang=${this.lang}\n ns=${this.ns}\n >\n </x-resource-viewer>\n </x-group>\n `;\n })}\n </div>\n `;\n }\n\n private __handleToggle(event: Event) {\n const details = event.target as HTMLDetailsElement;\n\n if (details.open && this.data?.hide_error === false) {\n this.edit({ hide_error: true });\n this.submit();\n }\n\n this.open = details.open;\n }\n\n private __decodeHtml(html: string) {\n const areaElement = document.createElement('textarea');\n areaElement.innerHTML = html;\n return areaElement.value;\n }\n}\n"]}
@@ -63,7 +63,7 @@ export class GiftCardCard extends Base {
63
63
  ${this.renderTemplateOrSlot('title:before')}
64
64
 
65
65
  <div class="flex items-center justify-between">
66
- <div class="font-semibold truncate">${name}</div>
66
+ <div class="font-medium truncate">${name}</div>
67
67
  <div class="text-tertiary uppercase text-s flex-shrink-0">${code}</div>
68
68
  </div>
69
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCard/GiftCardCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAClE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAU;IAA5C;;QACE,cAAS,GAAc,EAAE,CAAC;IAyE5B,CAAC;IAvEC,MAAM;;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;;;qBAId,QAAQ,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1E,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;YACjE,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;;;;kBAI7D,QAAQ,CAAC;YACf,8DAA8D,EAAE,IAAI;YACpE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SACzB,CAAC;;;;oBAIQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;mBAE7E,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;IAEO,aAAa;;QACnB,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAA,kBAAkB,CAAC;QACvD,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,0CAAE,aAAa,mCAAI,IAAI,CAAA,kBAAkB,CAAC;QAEhE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;gDAGH,IAAI;sEACkB,IAAI;;;UAGhE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;IACJ,CAAC;IAEO,cAAc;;QACpB,MAAM,YAAY,SAAG,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAC;QAE9C,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;oBAGhC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;;iBAE1C,IAAI,CAAC,IAAI;gBACV,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;eACvD,IAAI,CAAC,EAAE;;;;UAIZ,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst NS = 'gift-card-card';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Basic card displaying a gift card.\n *\n * @slot title:before\n * @slot title:after\n * @slot status:before\n * @slot status:after\n *\n * @element foxy-gift-card-card\n * @since 1.15.0\n */\nexport class GiftCardCard extends Base<Data> {\n templates: Templates = {};\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-s font-lumo text-m\"\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-0': !this.data })}>\n ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle()}\n ${hiddenSelector.matches('status', true) ? '' : this.__renderStatus()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderTitle() {\n const name = this.data?.name ?? html`&ZeroWidthSpace;`;\n const code = this.data?.currency_code ?? html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n\n <div class=\"flex items-center justify-between\">\n <div class=\"font-semibold truncate\">${name}</div>\n <div class=\"text-tertiary uppercase text-s flex-shrink-0\">${code}</div>\n </div>\n\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n }\n\n private __renderStatus() {\n const expiresAfter = this.data?.expires_after;\n\n return html`\n <div data-testid=\"status\">\n ${this.renderTemplateOrSlot('status:before')}\n\n <foxy-i18n\n options=${JSON.stringify({ value: expiresAfter })}\n class=\"block truncate text-s text-secondary\"\n lang=${this.lang}\n key=${expiresAfter ? 'expires_after_value' : 'never_expires'}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('status:after')}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCard/GiftCardCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAClE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAU;IAA5C;;QACE,cAAS,GAAc,EAAE,CAAC;IAyE5B,CAAC;IAvEC,MAAM;;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;;;qBAId,QAAQ,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1E,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;YACjE,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;;;;kBAI7D,QAAQ,CAAC;YACf,8DAA8D,EAAE,IAAI;YACpE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SACzB,CAAC;;;;oBAIQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;mBAE7E,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;IAEO,aAAa;;QACnB,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAA,kBAAkB,CAAC;QACvD,MAAM,IAAI,eAAG,IAAI,CAAC,IAAI,0CAAE,aAAa,mCAAI,IAAI,CAAA,kBAAkB,CAAC;QAEhE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;8CAGL,IAAI;sEACoB,IAAI;;;UAGhE,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;IACJ,CAAC;IAEO,cAAc;;QACpB,MAAM,YAAY,SAAG,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAC;QAE9C,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;oBAGhC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;;iBAE1C,IAAI,CAAC,IAAI;gBACV,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;eACvD,IAAI,CAAC,EAAE;;;;UAIZ,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst NS = 'gift-card-card';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Basic card displaying a gift card.\n *\n * @slot title:before\n * @slot title:after\n * @slot status:before\n * @slot status:after\n *\n * @element foxy-gift-card-card\n * @since 1.15.0\n */\nexport class GiftCardCard extends Base<Data> {\n templates: Templates = {};\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n\n return html`\n <div\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n class=\"relative leading-s font-lumo text-m\"\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-0': !this.data })}>\n ${hiddenSelector.matches('title', true) ? '' : this.__renderTitle()}\n ${hiddenSelector.matches('status', true) ? '' : this.__renderStatus()}\n </div>\n\n <div\n class=${classMap({\n 'pointer-events-none absolute inset-0 flex transition-opacity': true,\n 'opacity-0': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\n class=\"m-auto\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n private __renderTitle() {\n const name = this.data?.name ?? html`&ZeroWidthSpace;`;\n const code = this.data?.currency_code ?? html`&ZeroWidthSpace;`;\n\n return html`\n <div data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n\n <div class=\"flex items-center justify-between\">\n <div class=\"font-medium truncate\">${name}</div>\n <div class=\"text-tertiary uppercase text-s flex-shrink-0\">${code}</div>\n </div>\n\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n }\n\n private __renderStatus() {\n const expiresAfter = this.data?.expires_after;\n\n return html`\n <div data-testid=\"status\">\n ${this.renderTemplateOrSlot('status:before')}\n\n <foxy-i18n\n options=${JSON.stringify({ value: expiresAfter })}\n class=\"block truncate text-s text-secondary\"\n lang=${this.lang}\n key=${expiresAfter ? 'expires_after_value' : 'never_expires'}\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('status:after')}\n </div>\n `;\n }\n}\n"]}
@@ -53,7 +53,7 @@ export class GiftCardCodeLogCard extends Base {
53
53
 
54
54
  <div class="leading-s">
55
55
  <div class="flex justify-between items-center">
56
- <span class="text-body font-semibold truncate">
56
+ <span class="text-body font-medium truncate">
57
57
  <foxy-i18n infer="" key=${titleKey}></foxy-i18n>
58
58
  </span>
59
59
  <span class="text-s text-tertiary flex-shrink-0">
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-log-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing a gift card code log (`fx:gift_card_code_log`).\n *\n * @element foxy-gift-card-code-log-card\n * @since 1.21.1\n */\nexport class GiftCardCodeLogCard extends Base<Data> {\n private readonly __giftCardLoaderId = 'giftCardLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const data = this.data;\n\n const adjustment = data?.balance_adjustment ?? 0;\n const hasTransaction = typeof data?.transaction_id === 'number';\n\n const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';\n const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';\n const subtitleOptions = { transaction_id: data?.transaction_id };\n\n const dateOptions = {\n date_created: data?.date_created,\n month: 'short',\n };\n\n const adjustmentOptions = {\n currencyDisplay: this.__store?.use_international_currency_symbol ? 'code' : 'symbol',\n signDisplay: 'exceptZero',\n amount: `${adjustment} ${this.__giftCard?.currency_code}`,\n };\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links?.['fx:gift_card'].href)}\n id=${this.__giftCardLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"leading-s\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-body font-semibold truncate\">\n <foxy-i18n infer=\"\" key=${titleKey}></foxy-i18n>\n </span>\n <span class=\"text-s text-tertiary flex-shrink-0\">\n <foxy-i18n infer=\"\" key=\"date\" .options=${dateOptions}></foxy-i18n>\n </span>\n </div>\n\n <div class=\"text-s text-secondary truncate\">\n <foxy-i18n infer=\"\" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>\n <span class=\"text-tertiary\">&bull;</span>\n <span\n class=${classMap({\n 'text-tertiary': adjustment === 0,\n 'text-success': adjustment > 0,\n 'text-error': adjustment < 0,\n })}\n >\n <foxy-i18n infer=\"\" key=\"adjustment\" .options=${adjustmentOptions}></foxy-i18n>\n </span>\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n return super.isBodyReady && !!this.__giftCard && !!this.__store;\n }\n\n private get __giftCardLoader() {\n type Loader = NucleonElement<Resource<Rels.GiftCard>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__giftCardLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __giftCard() {\n return this.__giftCardLoader?.data;\n }\n\n private get __store() {\n return this.__storeLoader?.data;\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardCodeLogCard.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-log-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing a gift card code log (`fx:gift_card_code_log`).\n *\n * @element foxy-gift-card-code-log-card\n * @since 1.21.1\n */\nexport class GiftCardCodeLogCard extends Base<Data> {\n private readonly __giftCardLoaderId = 'giftCardLoader';\n\n private readonly __storeLoaderId = 'storeLoader';\n\n renderBody(): TemplateResult {\n const data = this.data;\n\n const adjustment = data?.balance_adjustment ?? 0;\n const hasTransaction = typeof data?.transaction_id === 'number';\n\n const titleKey = hasTransaction ? 'title_used' : 'title_updated_via_api';\n const subtitleKey = hasTransaction ? 'subtitle_transaction' : 'subtitle_no_transaction';\n const subtitleOptions = { transaction_id: data?.transaction_id };\n\n const dateOptions = {\n date_created: data?.date_created,\n month: 'short',\n };\n\n const adjustmentOptions = {\n currencyDisplay: this.__store?.use_international_currency_symbol ? 'code' : 'symbol',\n signDisplay: 'exceptZero',\n amount: `${adjustment} ${this.__giftCard?.currency_code}`,\n };\n\n return html`\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links?.['fx:gift_card'].href)}\n id=${this.__giftCardLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"leading-s\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-body font-medium truncate\">\n <foxy-i18n infer=\"\" key=${titleKey}></foxy-i18n>\n </span>\n <span class=\"text-s text-tertiary flex-shrink-0\">\n <foxy-i18n infer=\"\" key=\"date\" .options=${dateOptions}></foxy-i18n>\n </span>\n </div>\n\n <div class=\"text-s text-secondary truncate\">\n <foxy-i18n infer=\"\" key=${subtitleKey} .options=${subtitleOptions}></foxy-i18n>\n <span class=\"text-tertiary\">&bull;</span>\n <span\n class=${classMap({\n 'text-tertiary': adjustment === 0,\n 'text-success': adjustment > 0,\n 'text-error': adjustment < 0,\n })}\n >\n <foxy-i18n infer=\"\" key=\"adjustment\" .options=${adjustmentOptions}></foxy-i18n>\n </span>\n </div>\n </div>\n `;\n }\n\n get isBodyReady(): boolean {\n return super.isBodyReady && !!this.__giftCard && !!this.__store;\n }\n\n private get __giftCardLoader() {\n type Loader = NucleonElement<Resource<Rels.GiftCard>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__giftCardLoaderId}`);\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n\n private get __giftCard() {\n return this.__giftCardLoader?.data;\n }\n\n private get __store() {\n return this.__storeLoader?.data;\n }\n}\n"]}
@@ -73,14 +73,14 @@ vaadin-button{
73
73
  >
74
74
  <label class="group flex flex-col sm-flex-row">
75
75
  <div class="flex-1 p-xs break-all" style="max-width: 20rem">
76
- <span class="inline-block rounded text-s p-xs font-semibold">
76
+ <span class="inline-block rounded text-s p-xs font-medium">
77
77
  ${(_c = (_b = this.data) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : this.code}
78
78
  </span>
79
79
  </div>
80
80
 
81
81
  <div class="flex-1 flex">
82
82
  <div class="relative flex-1">
83
- <div class="opacity-0 text-s p-s font-semibold break-all">
83
+ <div class="opacity-0 text-s p-s font-medium break-all">
84
84
  <span class="whitespace-pre-wrap">${value}&ZeroWidthSpace;</span>
85
85
  </div>
86
86
 
@@ -88,7 +88,7 @@ vaadin-button{
88
88
  class=${classMap({
89
89
  'absolute inset-0 p-s resize-none': true,
90
90
  'sm-border-l sm-border-transparent': true,
91
- 'break-all text-body transition-colors text-s font-semibold': true,
91
+ 'break-all text-body transition-colors text-s font-medium': true,
92
92
  'rounded-b sm-rounded-bl-none sm-rounded-tr': isTemplate && !isDirty,
93
93
  'rounded-bl sm-rounded-bl-none': isSnapshot && !isDirty,
94
94
  'sm-rounded-tr': isTemplate && isDirty,
@@ -1 +1 @@
1
- {"version":3,"file":"InternalI18nEditorEntry.js","sourceRoot":"","sources":["../../../../../../src/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Data } from './types';\n\nimport { ConfigurableMixin } from '../../../../../mixins/configurable';\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../../../mixins/themeable';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { html, css } from 'lit-element';\nimport { classMap } from '../../../../../utils/class-map';\n\nconst Base = ResponsiveMixin(TranslatableMixin(ConfigurableMixin(ThemeableMixin(NucleonElement))));\n\nexport class InternalI18nEditorEntry extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultValue: { attribute: 'default-value' },\n gateway: {},\n code: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n --button-height: 1.703rem;\n }\n\n textarea {\n -webkit-text-fill-color: var(--lumo-body-text-color);\n }\n\n vaadin-button {\n height: var(--button-height);\n --lumo-primary-color-50pct: var(--lumo-success-contrast-color);\n }\n\n .h-bottom-bar {\n height: calc(var(--button-height) + (var(--lumo-space-xs) * 2));\n }\n\n .h-0 {\n height: 0;\n }\n `,\n ];\n }\n\n defaultValue: string | null = null;\n\n gateway: string | null = null;\n\n code: string | null = null;\n\n render(): TemplateResult {\n const value = this.form.custom_value ?? this.defaultValue;\n\n const isSnapshot = this.in({ idle: 'snapshot' });\n const isTemplate = this.in({ idle: 'template' });\n const isSnapshotDirty = this.in({ idle: { snapshot: 'dirty' } });\n const isTemplateDirty = this.in({ idle: { template: 'dirty' } });\n const isDirty = isSnapshotDirty || isTemplateDirty;\n\n const isDisabled = !this.in('idle') || this.disabled;\n const isReadonly = this.readonly;\n const isInteractive = !isDisabled && !isReadonly;\n const isFailed = this.in('fail');\n\n return html`\n <div\n class=${classMap({\n 'transition-all rounded ring-1 leading-s text-secondary': true,\n 'ring-contrast-10': !isFailed && (!isDirty || isReadonly),\n 'ring-success': !isFailed && isDirty && !isReadonly,\n 'ring-error': isFailed,\n 'opacity-75': isDisabled,\n 'hover-ring-contrast-20': !isFailed && !isDirty && isInteractive,\n 'hover-text-body': !isFailed && isInteractive,\n })}\n >\n <label class=\"group flex flex-col sm-flex-row\">\n <div class=\"flex-1 p-xs break-all\" style=\"max-width: 20rem\">\n <span class=\"inline-block rounded text-s p-xs font-semibold\">\n ${this.data?.code ?? this.code}\n </span>\n </div>\n\n <div class=\"flex-1 flex\">\n <div class=\"relative flex-1\">\n <div class=\"opacity-0 text-s p-s font-semibold break-all\">\n <span class=\"whitespace-pre-wrap\">${value}&ZeroWidthSpace;</span>\n </div>\n\n <textarea\n class=${classMap({\n 'absolute inset-0 p-s resize-none': true,\n 'sm-border-l sm-border-transparent': true,\n 'break-all text-body transition-colors text-s font-semibold': true,\n 'rounded-b sm-rounded-bl-none sm-rounded-tr': isTemplate && !isDirty,\n 'rounded-bl sm-rounded-bl-none': isSnapshot && !isDirty,\n 'sm-rounded-tr': isTemplate && isDirty,\n 'sm-border-contrast-10': isReadonly,\n 'bg-contrast-10': !isReadonly,\n 'group-hover-bg-contrast-20': isInteractive,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n })}\n .value=${value}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n @input=${(evt: InputEvent) => {\n const textarea = evt.currentTarget as HTMLTextAreaElement;\n\n if (this.gateway) this.edit({ gateway: this.gateway });\n if (this.code) this.edit({ code: this.code });\n this.edit({ custom_value: textarea.value });\n }}\n >\n </textarea>\n </div>\n\n ${isSnapshot\n ? html`\n <button\n class=${classMap({\n 'flex-shrink-0 w-m flex items-center justify-center': true,\n 'transition-colors text-tertiary ring-inset': true,\n 'rounded-br sm-rounded-tr': !isDirty,\n 'sm-rounded-tr': isDirty,\n 'bg-contrast-10': !isReadonly,\n 'cursor-default': !isInteractive,\n 'cursor-pointer': isInteractive,\n 'group-hover-bg-contrast-20 hover-text-body': isInteractive,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n title=${this.t('delete_button_title')}\n theme=\"contrast icon\"\n ?disabled=${isDisabled || isReadonly}\n @click=${() => this.delete()}\n >\n <iron-icon class=\"icon-inline text-xl\" icon=\"icons:restore\"></iron-icon>\n </button>\n `\n : ''}\n </div>\n </label>\n\n <div\n class=${classMap({\n 'transition-all bg-success rounded-b overflow-hidden': true,\n 'flex items-center justify-end gap-xs px-xs': true,\n 'h-bottom-bar': isDirty && !isReadonly,\n 'h-0': !isDirty || isReadonly,\n })}\n >\n <vaadin-button\n theme=\"primary success small\"\n ?disabled=${!isInteractive}\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"undo_button\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"primary success small\"\n ?disabled=${!isInteractive}\n @click=${() => this.submit()}\n >\n <foxy-i18n infer=\"\" key=\"save_button\"></foxy-i18n>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalI18nEditorEntry.js","sourceRoot":"","sources":["../../../../../../src/elements/public/I18nEditor/internal/InternalI18nEditorEntry/InternalI18nEditorEntry.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Data } from './types';\n\nimport { ConfigurableMixin } from '../../../../../mixins/configurable';\nimport { TranslatableMixin } from '../../../../../mixins/translatable';\nimport { ResponsiveMixin } from '../../../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../../../mixins/themeable';\nimport { NucleonElement } from '../../../NucleonElement/NucleonElement';\nimport { html, css } from 'lit-element';\nimport { classMap } from '../../../../../utils/class-map';\n\nconst Base = ResponsiveMixin(TranslatableMixin(ConfigurableMixin(ThemeableMixin(NucleonElement))));\n\nexport class InternalI18nEditorEntry extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultValue: { attribute: 'default-value' },\n gateway: {},\n code: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n --button-height: 1.703rem;\n }\n\n textarea {\n -webkit-text-fill-color: var(--lumo-body-text-color);\n }\n\n vaadin-button {\n height: var(--button-height);\n --lumo-primary-color-50pct: var(--lumo-success-contrast-color);\n }\n\n .h-bottom-bar {\n height: calc(var(--button-height) + (var(--lumo-space-xs) * 2));\n }\n\n .h-0 {\n height: 0;\n }\n `,\n ];\n }\n\n defaultValue: string | null = null;\n\n gateway: string | null = null;\n\n code: string | null = null;\n\n render(): TemplateResult {\n const value = this.form.custom_value ?? this.defaultValue;\n\n const isSnapshot = this.in({ idle: 'snapshot' });\n const isTemplate = this.in({ idle: 'template' });\n const isSnapshotDirty = this.in({ idle: { snapshot: 'dirty' } });\n const isTemplateDirty = this.in({ idle: { template: 'dirty' } });\n const isDirty = isSnapshotDirty || isTemplateDirty;\n\n const isDisabled = !this.in('idle') || this.disabled;\n const isReadonly = this.readonly;\n const isInteractive = !isDisabled && !isReadonly;\n const isFailed = this.in('fail');\n\n return html`\n <div\n class=${classMap({\n 'transition-all rounded ring-1 leading-s text-secondary': true,\n 'ring-contrast-10': !isFailed && (!isDirty || isReadonly),\n 'ring-success': !isFailed && isDirty && !isReadonly,\n 'ring-error': isFailed,\n 'opacity-75': isDisabled,\n 'hover-ring-contrast-20': !isFailed && !isDirty && isInteractive,\n 'hover-text-body': !isFailed && isInteractive,\n })}\n >\n <label class=\"group flex flex-col sm-flex-row\">\n <div class=\"flex-1 p-xs break-all\" style=\"max-width: 20rem\">\n <span class=\"inline-block rounded text-s p-xs font-medium\">\n ${this.data?.code ?? this.code}\n </span>\n </div>\n\n <div class=\"flex-1 flex\">\n <div class=\"relative flex-1\">\n <div class=\"opacity-0 text-s p-s font-medium break-all\">\n <span class=\"whitespace-pre-wrap\">${value}&ZeroWidthSpace;</span>\n </div>\n\n <textarea\n class=${classMap({\n 'absolute inset-0 p-s resize-none': true,\n 'sm-border-l sm-border-transparent': true,\n 'break-all text-body transition-colors text-s font-medium': true,\n 'rounded-b sm-rounded-bl-none sm-rounded-tr': isTemplate && !isDirty,\n 'rounded-bl sm-rounded-bl-none': isSnapshot && !isDirty,\n 'sm-rounded-tr': isTemplate && isDirty,\n 'sm-border-contrast-10': isReadonly,\n 'bg-contrast-10': !isReadonly,\n 'group-hover-bg-contrast-20': isInteractive,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n })}\n .value=${value}\n ?disabled=${isDisabled}\n ?readonly=${isReadonly}\n @input=${(evt: InputEvent) => {\n const textarea = evt.currentTarget as HTMLTextAreaElement;\n\n if (this.gateway) this.edit({ gateway: this.gateway });\n if (this.code) this.edit({ code: this.code });\n this.edit({ custom_value: textarea.value });\n }}\n >\n </textarea>\n </div>\n\n ${isSnapshot\n ? html`\n <button\n class=${classMap({\n 'flex-shrink-0 w-m flex items-center justify-center': true,\n 'transition-colors text-tertiary ring-inset': true,\n 'rounded-br sm-rounded-tr': !isDirty,\n 'sm-rounded-tr': isDirty,\n 'bg-contrast-10': !isReadonly,\n 'cursor-default': !isInteractive,\n 'cursor-pointer': isInteractive,\n 'group-hover-bg-contrast-20 hover-text-body': isInteractive,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n title=${this.t('delete_button_title')}\n theme=\"contrast icon\"\n ?disabled=${isDisabled || isReadonly}\n @click=${() => this.delete()}\n >\n <iron-icon class=\"icon-inline text-xl\" icon=\"icons:restore\"></iron-icon>\n </button>\n `\n : ''}\n </div>\n </label>\n\n <div\n class=${classMap({\n 'transition-all bg-success rounded-b overflow-hidden': true,\n 'flex items-center justify-end gap-xs px-xs': true,\n 'h-bottom-bar': isDirty && !isReadonly,\n 'h-0': !isDirty || isReadonly,\n })}\n >\n <vaadin-button\n theme=\"primary success small\"\n ?disabled=${!isInteractive}\n @click=${() => this.undo()}\n >\n <foxy-i18n infer=\"\" key=\"undo_button\"></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n theme=\"primary success small\"\n ?disabled=${!isInteractive}\n @click=${() => this.submit()}\n >\n <foxy-i18n infer=\"\" key=\"save_button\"></foxy-i18n>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -20,7 +20,7 @@ export class IntegrationCard extends Base {
20
20
  <div class="flex flex-wrap gap-xs leading-s">
21
21
  <div class="min-w-full">
22
22
  <div class="flex justify-between gap-s">
23
- <span class="font-semibold truncate min-w-0">
23
+ <span class="font-medium truncate min-w-0">
24
24
  ${data === null || data === void 0 ? void 0 : data.project_name}&ZeroWidthSpace;
25
25
  </span>
26
26
 
@@ -44,12 +44,12 @@ export class IntegrationCard extends Base {
44
44
  </div>
45
45
 
46
46
  <div class="text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex">
47
- <span class="font-semibold px-xs bg-contrast-5" lang="en">ID</span>
47
+ <span class="font-medium px-xs bg-contrast-5" lang="en">ID</span>
48
48
  <span class="px-xs"><code>${data === null || data === void 0 ? void 0 : data.client_id}</code>&ZeroWidthSpace;</span>
49
49
  </div>
50
50
 
51
51
  <div class="text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex">
52
- <span class="font-semibold px-xs bg-contrast-5" lang="en">Email</span>
52
+ <span class="font-medium px-xs bg-contrast-5" lang="en">Email</span>
53
53
  <span class="px-xs"><code>${data === null || data === void 0 ? void 0 : data.added_by_email}</code>&ZeroWidthSpace;</span>
54
54
  </div>
55
55
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationCard.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationCard/IntegrationCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAU;IAC7C,UAAU;;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAEtC,OAAO,IAAI,CAAA;;;;;gBAKC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY;;;;sBAIZ,QAAQ,CAAC;YACf,oCAAoC,EAAE,IAAI;YAC1C,eAAe,EAAE,QAAQ;YACzB,YAAY,EAAE,CAAC,QAAQ;SACxB,CAAC;;4BAEY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;yBAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;;;;;;cAM5D,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,EACzB,CAAC,CAAC,IAAI,CAAC,mBAAmB;YAC1B,CAAC,CAAC,IAAI,CAAA,uDAAuD;;;;;;sCAMrC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS;;;;;sCAKf,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc;;;KAGrD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing an integration (`fx:integration`).\n *\n * @element foxy-integration-card\n * @since 1.21.0\n */\nexport class IntegrationCard extends Base<Data> {\n renderBody(): TemplateResult {\n const data = this.data;\n const expires = new Date((data?.expires ?? 0) * 1000);\n const isActive = expires > new Date();\n\n return html`\n <div class=\"flex flex-wrap gap-xs leading-s\">\n <div class=\"min-w-full\">\n <div class=\"flex justify-between gap-s\">\n <span class=\"font-semibold truncate min-w-0\">\n ${data?.project_name}&ZeroWidthSpace;\n </span>\n\n <foxy-i18n\n class=${classMap({\n 'whitespace-nowrap font-tnum text-s': true,\n 'text-tertiary': isActive,\n 'text-error': !isActive,\n })}\n infer=\"\"\n key=\"status_${isActive ? 'active' : 'expired'}\"\n .options=${{ date: expires, month: 'short', day: '2-digit' }}\n >\n </foxy-i18n>\n </div>\n\n <div class=\"text-secondary text-s\">\n ${data?.project_description\n ? data.project_description\n : html`<foxy-i18n infer=\"\" key=\"no_description\"></foxy-i18n>`}\n </div>\n </div>\n\n <div class=\"text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex\">\n <span class=\"font-semibold px-xs bg-contrast-5\" lang=\"en\">ID</span>\n <span class=\"px-xs\"><code>${data?.client_id}</code>&ZeroWidthSpace;</span>\n </div>\n\n <div class=\"text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex\">\n <span class=\"font-semibold px-xs bg-contrast-5\" lang=\"en\">Email</span>\n <span class=\"px-xs\"><code>${data?.added_by_email}</code>&ZeroWidthSpace;</span>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"IntegrationCard.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationCard/IntegrationCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAU;IAC7C,UAAU;;QACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAEtC,OAAO,IAAI,CAAA;;;;;gBAKC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY;;;;sBAIZ,QAAQ,CAAC;YACf,oCAAoC,EAAE,IAAI;YAC1C,eAAe,EAAE,QAAQ;YACzB,YAAY,EAAE,CAAC,QAAQ;SACxB,CAAC;;4BAEY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;yBAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;;;;;;cAM5D,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,EACzB,CAAC,CAAC,IAAI,CAAC,mBAAmB;YAC1B,CAAC,CAAC,IAAI,CAAA,uDAAuD;;;;;;sCAMrC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS;;;;;sCAKf,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc;;;KAGrD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalCard } from '../../internal/InternalCard/InternalCard';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-card';\nconst Base = TranslatableMixin(InternalCard, NS);\n\n/**\n * Card element representing an integration (`fx:integration`).\n *\n * @element foxy-integration-card\n * @since 1.21.0\n */\nexport class IntegrationCard extends Base<Data> {\n renderBody(): TemplateResult {\n const data = this.data;\n const expires = new Date((data?.expires ?? 0) * 1000);\n const isActive = expires > new Date();\n\n return html`\n <div class=\"flex flex-wrap gap-xs leading-s\">\n <div class=\"min-w-full\">\n <div class=\"flex justify-between gap-s\">\n <span class=\"font-medium truncate min-w-0\">\n ${data?.project_name}&ZeroWidthSpace;\n </span>\n\n <foxy-i18n\n class=${classMap({\n 'whitespace-nowrap font-tnum text-s': true,\n 'text-tertiary': isActive,\n 'text-error': !isActive,\n })}\n infer=\"\"\n key=\"status_${isActive ? 'active' : 'expired'}\"\n .options=${{ date: expires, month: 'short', day: '2-digit' }}\n >\n </foxy-i18n>\n </div>\n\n <div class=\"text-secondary text-s\">\n ${data?.project_description\n ? data.project_description\n : html`<foxy-i18n infer=\"\" key=\"no_description\"></foxy-i18n>`}\n </div>\n </div>\n\n <div class=\"text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex\">\n <span class=\"font-medium px-xs bg-contrast-5\" lang=\"en\">ID</span>\n <span class=\"px-xs\"><code>${data?.client_id}</code>&ZeroWidthSpace;</span>\n </div>\n\n <div class=\"text-secondary text-xs bg-contrast-5 rounded overflow-hidden flex\">\n <span class=\"font-medium px-xs bg-contrast-5\" lang=\"en\">Email</span>\n <span class=\"px-xs\"><code>${data?.added_by_email}</code>&ZeroWidthSpace;</span>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -106,7 +106,7 @@ export class IntegrationForm extends Base {
106
106
  ${this.renderTemplateOrSlot('header:before')}
107
107
 
108
108
  <div class="space-y-xs">
109
- <div class="font-bold truncate text-xl">${data.project_name}&ZeroWidthSpace;</div>
109
+ <div class="font-medium truncate text-xl">${data.project_name}&ZeroWidthSpace;</div>
110
110
  <div class="text-secondary">${data.project_description || noDescription}</div>
111
111
  </div>
112
112
 
@@ -189,7 +189,7 @@ export class IntegrationForm extends Base {
189
189
  return html `
190
190
  <a
191
191
  target="_blank"
192
- class="font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50"
192
+ class="font-medium text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50"
193
193
  href=${href}
194
194
  >
195
195
  ${caption}
@@ -199,7 +199,7 @@ export class IntegrationForm extends Base {
199
199
  __renderTableRow(params) {
200
200
  const { label, value, highlight = false } = params;
201
201
  return html `
202
- <tr class=${classMap({ 'font-semibold text-success': highlight })}>
202
+ <tr class=${classMap({ 'font-medium text-success': highlight })}>
203
203
  <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">${label}</td>
204
204
  <td class="max-w-0 truncate py-s text-body w-2-3">${value}</td>
205
205
  </tr>
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/IntegrationForm.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,kBAAkB,CAAC;AAC9B,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,eAAgB,SAAQ,IAAU;IAA/C;;QAYU,mBAAc,GAA4B,IAAI,CAAC;IAiLzD,CAAC;IA5LC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC;IACvE,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC/E,CAAC;IAES,KAAK,CAAC,MAAM,CAAiB,GAAG,IAAiC;;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAqC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,OAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,QAAQ,CAAC;QAEjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,QAAO,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAExF,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,oBAAoB;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAEzC,OAAO,IAAI,CAAA;QACP,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;QACnE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;QACtF,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;;KAE9D,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAA;;;;;KAKV,CAAC;IACJ,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;;;;;;;sBAQ7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;mBACjD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;;;;;QAM7C,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;KAC7C,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAY,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAA,6DAA6D,CAAC;QAExF,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;kDAGA,IAAI,CAAC,YAAY;sCAC7B,IAAI,CAAC,mBAAmB,IAAI,aAAa;;;QAGvE,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;KAC5C,CAAC;IACJ,CAAC;IAEO,aAAa;;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAY,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAC,IAAI,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QAEzC,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;;YAIrC,IAAI,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YACzC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC;SACxE,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC;SACtE,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;SAC9D,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;SACjE,CAAC;YACA,IAAI,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;SACjD,CAAC;YACA,YAAY;YACZ,CAAC,CAAC,IAAI,CAAA;kBACA,IAAI,CAAC,gBAAgB,CAAC;gBACtB,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC;aAC7D,CAAC;kBACA,IAAI,CAAC,gBAAgB,CAAC;gBACtB,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC;aAC7D,CAAC;kBACA,IAAI,CAAC,gBAAgB,CAAC;gBACtB,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC;aAC5D,CAAC;eACH;YACH,CAAC,CAAC,EAAE;YACJ,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAA,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;;;;QAItF,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;KAC3C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,OAAO,IAAI,CAAA;;wCAEyB,IAAI;sFAC0C,IAAI;;;KAGrF,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,OAAe;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,OAAe;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA,GAAG,OAAO,EAAE,CAAC;QAEnC,OAAO,IAAI,CAAA;;;;eAIA,IAAI;;UAET,OAAO;;KAEZ,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAA+D;QACtF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;QACnD,OAAO,IAAI,CAAA;kBACG,QAAQ,CAAC,EAAE,4BAA4B,EAAE,SAAS,EAAE,CAAC;sEACD,KAAK;4DACf,KAAK;;KAE5D,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,GAAW,EAAE,OAAiB;QACtD,OAAO,IAAI,CAAA,gCAAgC,GAAG,aAAa,OAAO,eAAe,CAAC;IACpF,CAAC;CACF","sourcesContent":["import type { Data, PostResponseData } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing integrations (`fx:integration`).\n *\n * @slot project-name:before\n * @slot project-name:after\n *\n * @slot project-description:before\n * @slot project-description:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot header:before\n * @slot header:after\n *\n * @slot message:before\n * @slot message:after\n *\n * @slot table:before\n * @slot table:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @element foxy-integration-form\n * @since 1.21.0\n */\nexport class IntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __postResponse: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ project_name: v }) => !!v || 'project-name:v8n_required'];\n }\n\n private __postResponse: PostResponseData | null = null;\n\n renderBody(): TemplateResult {\n return this.data ? this.__renderSnapshotBody() : this.__renderTemplateBody();\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const constructor = this.constructor as typeof IntegrationForm;\n const response = await new constructor.API(this).fetch(...args);\n const method = typeof args[0] === 'string' ? args[1]?.method : args[0].method;\n const url = typeof args[0] === 'string' ? args[0] : args[0].url;\n\n if (!response.ok) throw response;\n\n const json = await response.json();\n if (method?.toUpperCase() === 'POST' && url === this.parent) this.__postResponse = json;\n\n return json;\n }\n\n private __renderSnapshotBody() {\n const hiddenSelector = this.hiddenSelector;\n const postResponse = this.__postResponse;\n\n return html`\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('message', true) || !postResponse ? '' : this.__renderMessage()}\n ${hiddenSelector.matches('table') ? '' : this.__renderTable()}\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `;\n }\n\n private __renderTemplateBody() {\n return html`\n <foxy-internal-text-control infer=\"project-name\"></foxy-internal-text-control>\n <foxy-internal-text-area-control infer=\"project-description\">\n </foxy-internal-text-area-control>\n <foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>\n `;\n }\n\n private __renderMessage() {\n return html`\n ${this.renderTemplateOrSlot('message:before')}\n\n <div class=\"bg-success-10 text-success p-m pb-s space-y-xs leading-s rounded-t-l rounded-b-l\">\n <foxy-i18n infer=\"message\" class=\"block\" key=\"text\"></foxy-i18n>\n <vaadin-button\n data-testid=\"message-action\"\n theme=\"tertiary contrast\"\n class=\"p-0\"\n ?disabled=${this.disabledSelector.matches('message', true)}\n @click=${() => (this.__postResponse = null)}\n >\n <foxy-i18n infer=\"message\" key=\"action\"></foxy-i18n>\n </vaadin-button>\n </div>\n\n ${this.renderTemplateOrSlot('message:after')}\n `;\n }\n\n private __renderHeader() {\n const data = this.data as Data;\n const noDescription = html`<foxy-i18n infer=\"header\" key=\"no_description\"></foxy-i18n>`;\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <div class=\"space-y-xs\">\n <div class=\"font-bold truncate text-xl\">${data.project_name}&ZeroWidthSpace;</div>\n <div class=\"text-secondary\">${data.project_description || noDescription}</div>\n </div>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n }\n\n private __renderTable() {\n const data = this.data as Data;\n const expires = new Date((data.expires ?? 0) * 1000);\n const postResponse = this.__postResponse;\n\n return html`\n ${this.renderTemplateOrSlot('table:before')}\n\n <table class=\"font-lumo text-m leading-m w-full\">\n <tbody class=\"divide-y divide-contrast-10\">\n ${this.__renderTableRow({\n label: this.__renderTableI18n('added_by'),\n value: this.__renderMailToLink(data.added_by_email, data.added_by_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('contact'),\n value: this.__renderMailToLink(data.contact_email, data.contact_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('company'),\n value: this.__renderLink(data.company_url, data.company_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('expires'),\n value: this.__renderTableI18n('expires_date', { date: expires }),\n })}\n ${this.__renderTableRow({\n label: 'Client ID',\n value: this.__renderCopiableText(data.client_id),\n })}\n ${postResponse\n ? html`\n ${this.__renderTableRow({\n highlight: true,\n label: 'Client secret',\n value: this.__renderCopiableText(postResponse.client_secret),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Refresh token',\n value: this.__renderCopiableText(postResponse.refresh_token),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Access token',\n value: this.__renderCopiableText(postResponse.access_token),\n })}\n `\n : ''}\n ${this.__renderTableRow({ label: 'Scope', value: html`<code>${data.scope}</code>` })}\n </tbody>\n </table>\n\n ${this.renderTemplateOrSlot('table:after')}\n `;\n }\n\n private __renderCopiableText(text: string) {\n return html`\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${text}</code>\n <foxy-copy-to-clipboard infer=\"copy-to-clipboard\" class=\"inline-block\" text=${text}>\n </foxy-copy-to-clipboard>\n </div>\n `;\n }\n\n private __renderMailToLink(email: string, caption: string) {\n if (!email) return html`${caption}`;\n return this.__renderLink(`mailto:${email}`, caption);\n }\n\n private __renderLink(href: string, caption: string) {\n if (!href) return html`${caption}`;\n\n return html`\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${href}\n >\n ${caption}\n </a>\n `;\n }\n\n private __renderTableRow(params: { label: unknown; value: unknown; highlight?: boolean }) {\n const { label, value, highlight = false } = params;\n return html`\n <tr class=${classMap({ 'font-semibold text-success': highlight })}>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">${label}</td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">${value}</td>\n </tr>\n `;\n }\n\n private __renderTableI18n(key: string, options?: unknown) {\n return html`<foxy-i18n infer=\"table\" key=${key} .options=${options}></foxy-i18n>`;\n }\n}\n"]}
1
+ {"version":3,"file":"IntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/IntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data, PostResponseData } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing integrations (`fx:integration`).\n *\n * @slot project-name:before\n * @slot project-name:after\n *\n * @slot project-description:before\n * @slot project-description:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot header:before\n * @slot header:after\n *\n * @slot message:before\n * @slot message:after\n *\n * @slot table:before\n * @slot table:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @element foxy-integration-form\n * @since 1.21.0\n */\nexport class IntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __postResponse: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ project_name: v }) => !!v || 'project-name:v8n_required'];\n }\n\n private __postResponse: PostResponseData | null = null;\n\n renderBody(): TemplateResult {\n return this.data ? this.__renderSnapshotBody() : this.__renderTemplateBody();\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const constructor = this.constructor as typeof IntegrationForm;\n const response = await new constructor.API(this).fetch(...args);\n const method = typeof args[0] === 'string' ? args[1]?.method : args[0].method;\n const url = typeof args[0] === 'string' ? args[0] : args[0].url;\n\n if (!response.ok) throw response;\n\n const json = await response.json();\n if (method?.toUpperCase() === 'POST' && url === this.parent) this.__postResponse = json;\n\n return json;\n }\n\n private __renderSnapshotBody() {\n const hiddenSelector = this.hiddenSelector;\n const postResponse = this.__postResponse;\n\n return html`\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('message', true) || !postResponse ? '' : this.__renderMessage()}\n ${hiddenSelector.matches('table') ? '' : this.__renderTable()}\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `;\n }\n\n private __renderTemplateBody() {\n return html`\n <foxy-internal-text-control infer=\"project-name\"></foxy-internal-text-control>\n <foxy-internal-text-area-control infer=\"project-description\">\n </foxy-internal-text-area-control>\n <foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>\n `;\n }\n\n private __renderMessage() {\n return html`\n ${this.renderTemplateOrSlot('message:before')}\n\n <div class=\"bg-success-10 text-success p-m pb-s space-y-xs leading-s rounded-t-l rounded-b-l\">\n <foxy-i18n infer=\"message\" class=\"block\" key=\"text\"></foxy-i18n>\n <vaadin-button\n data-testid=\"message-action\"\n theme=\"tertiary contrast\"\n class=\"p-0\"\n ?disabled=${this.disabledSelector.matches('message', true)}\n @click=${() => (this.__postResponse = null)}\n >\n <foxy-i18n infer=\"message\" key=\"action\"></foxy-i18n>\n </vaadin-button>\n </div>\n\n ${this.renderTemplateOrSlot('message:after')}\n `;\n }\n\n private __renderHeader() {\n const data = this.data as Data;\n const noDescription = html`<foxy-i18n infer=\"header\" key=\"no_description\"></foxy-i18n>`;\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <div class=\"space-y-xs\">\n <div class=\"font-medium truncate text-xl\">${data.project_name}&ZeroWidthSpace;</div>\n <div class=\"text-secondary\">${data.project_description || noDescription}</div>\n </div>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n }\n\n private __renderTable() {\n const data = this.data as Data;\n const expires = new Date((data.expires ?? 0) * 1000);\n const postResponse = this.__postResponse;\n\n return html`\n ${this.renderTemplateOrSlot('table:before')}\n\n <table class=\"font-lumo text-m leading-m w-full\">\n <tbody class=\"divide-y divide-contrast-10\">\n ${this.__renderTableRow({\n label: this.__renderTableI18n('added_by'),\n value: this.__renderMailToLink(data.added_by_email, data.added_by_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('contact'),\n value: this.__renderMailToLink(data.contact_email, data.contact_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('company'),\n value: this.__renderLink(data.company_url, data.company_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('expires'),\n value: this.__renderTableI18n('expires_date', { date: expires }),\n })}\n ${this.__renderTableRow({\n label: 'Client ID',\n value: this.__renderCopiableText(data.client_id),\n })}\n ${postResponse\n ? html`\n ${this.__renderTableRow({\n highlight: true,\n label: 'Client secret',\n value: this.__renderCopiableText(postResponse.client_secret),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Refresh token',\n value: this.__renderCopiableText(postResponse.refresh_token),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Access token',\n value: this.__renderCopiableText(postResponse.access_token),\n })}\n `\n : ''}\n ${this.__renderTableRow({ label: 'Scope', value: html`<code>${data.scope}</code>` })}\n </tbody>\n </table>\n\n ${this.renderTemplateOrSlot('table:after')}\n `;\n }\n\n private __renderCopiableText(text: string) {\n return html`\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${text}</code>\n <foxy-copy-to-clipboard infer=\"copy-to-clipboard\" class=\"inline-block\" text=${text}>\n </foxy-copy-to-clipboard>\n </div>\n `;\n }\n\n private __renderMailToLink(email: string, caption: string) {\n if (!email) return html`${caption}`;\n return this.__renderLink(`mailto:${email}`, caption);\n }\n\n private __renderLink(href: string, caption: string) {\n if (!href) return html`${caption}`;\n\n return html`\n <a\n target=\"_blank\"\n class=\"font-medium text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${href}\n >\n ${caption}\n </a>\n `;\n }\n\n private __renderTableRow(params: { label: unknown; value: unknown; highlight?: boolean }) {\n const { label, value, highlight = false } = params;\n return html`\n <tr class=${classMap({ 'font-medium text-success': highlight })}>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">${label}</td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">${value}</td>\n </tr>\n `;\n }\n\n private __renderTableI18n(key: string, options?: unknown) {\n return html`<foxy-i18n infer=\"table\" key=${key} .options=${options}></foxy-i18n>`;\n }\n}\n"]}
@@ -118,7 +118,7 @@ export class ItemCard extends Base {
118
118
  <div class="flex-1 min-w-0">
119
119
  <div class="flex-1 h-s flex items-center">
120
120
  <div class="flex-1">
121
- <div class="font-semibold text-m truncate">${(_h = this.data) === null || _h === void 0 ? void 0 : _h.name}</div>
121
+ <div class="font-medium text-m truncate">${(_h = this.data) === null || _h === void 0 ? void 0 : _h.name}</div>
122
122
  <div class="text-tertiary text-s truncate">
123
123
  ${quantity} &times;
124
124