@foxy.io/elements 1.22.0-beta.3 → 1.22.0-beta.5

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 (226) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-card.js +1 -1
  25. package/dist/cdn/foxy-customer-form.js +1 -1
  26. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  27. package/dist/cdn/foxy-customer-portal.js +1 -1
  28. package/dist/cdn/foxy-customer.js +1 -1
  29. package/dist/cdn/foxy-customers-table.js +1 -1
  30. package/dist/cdn/foxy-discount-builder.js +1 -1
  31. package/dist/cdn/foxy-discount-card.js +1 -1
  32. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  33. package/dist/cdn/foxy-donation.js +1 -1
  34. package/dist/cdn/foxy-downloadable-card.js +1 -0
  35. package/dist/cdn/foxy-downloadable-form.js +505 -0
  36. package/dist/cdn/foxy-email-template-card.js +1 -1
  37. package/dist/cdn/foxy-email-template-form.js +1 -1
  38. package/dist/cdn/foxy-error-entry-card.js +1 -1
  39. package/dist/cdn/foxy-form-dialog.js +1 -1
  40. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  41. package/dist/cdn/foxy-gift-card-card.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  43. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  44. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  45. package/dist/cdn/foxy-gift-card-form.js +1 -1
  46. package/dist/cdn/foxy-i18n-editor.js +2 -2
  47. package/dist/cdn/foxy-i18n.js +1 -1
  48. package/dist/cdn/foxy-integration-card.js +1 -1
  49. package/dist/cdn/foxy-integration-form.js +1 -1
  50. package/dist/cdn/foxy-item-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-card.js +1 -1
  52. package/dist/cdn/foxy-item-category-form.js +1 -1
  53. package/dist/cdn/foxy-item-form.js +1 -1
  54. package/dist/cdn/foxy-item-option-card.js +1 -1
  55. package/dist/cdn/foxy-item-option-form.js +1 -1
  56. package/dist/cdn/foxy-items-form.js +1 -1
  57. package/dist/cdn/foxy-pagination.js +1 -1
  58. package/dist/cdn/foxy-payment-card.js +1 -1
  59. package/dist/cdn/foxy-payment-method-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  66. package/dist/cdn/foxy-query-builder.js +1 -1
  67. package/dist/cdn/foxy-report-form.js +2 -2
  68. package/dist/cdn/foxy-reports-table.js +1 -1
  69. package/dist/cdn/foxy-shipment-card.js +1 -1
  70. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  71. package/dist/cdn/foxy-sign-in-form.js +1 -1
  72. package/dist/cdn/foxy-spinner.js +2 -2
  73. package/dist/cdn/foxy-store-card.js +1 -1
  74. package/dist/cdn/foxy-store-form.js +1 -1
  75. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  76. package/dist/cdn/foxy-subscription-card.js +1 -1
  77. package/dist/cdn/foxy-subscription-form.js +1 -1
  78. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  79. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  80. package/dist/cdn/foxy-table.js +1 -1
  81. package/dist/cdn/foxy-tax-card.js +1 -1
  82. package/dist/cdn/foxy-tax-form.js +1 -1
  83. package/dist/cdn/foxy-template-config-form.js +1 -1
  84. package/dist/cdn/foxy-template-form.js +1 -1
  85. package/dist/cdn/foxy-template-set-card.js +1 -1
  86. package/dist/cdn/foxy-template-set-form.js +1 -1
  87. package/dist/cdn/foxy-transaction-card.js +1 -1
  88. package/dist/cdn/foxy-transaction.js +1 -1
  89. package/dist/cdn/foxy-transactions-table.js +7 -7
  90. package/dist/cdn/foxy-user-card.js +1 -1
  91. package/dist/cdn/foxy-user-form.js +1 -1
  92. package/dist/cdn/foxy-users-table.js +1 -1
  93. package/dist/cdn/foxy-webhook-card.js +1 -1
  94. package/dist/cdn/foxy-webhook-form.js +1 -1
  95. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  96. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  97. package/dist/cdn/shared-014f1513.js +1 -0
  98. package/dist/cdn/{shared-e6d3d6f5.js → shared-01ad847f.js} +1 -1
  99. package/dist/cdn/{shared-698c9002.js → shared-03858aee.js} +1 -1
  100. package/dist/cdn/{shared-a306168b.js → shared-055ca9db.js} +1 -1
  101. package/dist/cdn/{shared-a19ce620.js → shared-06c64816.js} +1 -1
  102. package/dist/cdn/{shared-685ca959.js → shared-15c94a90.js} +1 -1
  103. package/dist/cdn/{shared-f628a723.js → shared-178f7222.js} +1 -1
  104. package/dist/cdn/{shared-aa5785d9.js → shared-1a6fb0f3.js} +1 -1
  105. package/dist/cdn/{shared-1bd28b9c.js → shared-1a9496d4.js} +1 -1
  106. package/dist/cdn/{shared-b590adb2.js → shared-1f4b9c6b.js} +1 -1
  107. package/dist/cdn/{shared-5c5d13bd.js → shared-24a762c1.js} +1 -1
  108. package/dist/cdn/{shared-f42077ab.js → shared-2c6ea96d.js} +1 -1
  109. package/dist/cdn/{shared-50c6daa1.js → shared-38ed7905.js} +1 -1
  110. package/dist/cdn/{shared-87405fc7.js → shared-3b8b5eda.js} +3 -3
  111. package/dist/cdn/{shared-26390fea.js → shared-3b9b9427.js} +1 -1
  112. package/dist/cdn/{shared-67790b63.js → shared-4055f94a.js} +1 -1
  113. package/dist/cdn/{shared-cf49ce0c.js → shared-473aaeff.js} +1 -1
  114. package/dist/cdn/{shared-fad30ff5.js → shared-499c6db5.js} +1 -1
  115. package/dist/cdn/{shared-5a09ad7e.js → shared-49b65f1e.js} +1 -1
  116. package/dist/cdn/{shared-ccfb87fb.js → shared-4ac2a677.js} +1 -1
  117. package/dist/cdn/{shared-9e18688d.js → shared-533c3914.js} +3 -3
  118. package/dist/cdn/{shared-83a12835.js → shared-5425e3d3.js} +3 -3
  119. package/dist/cdn/{shared-468eb208.js → shared-57c6cfd1.js} +2 -2
  120. package/dist/cdn/{shared-493b8bc1.js → shared-590d8dae.js} +1 -1
  121. package/dist/cdn/{shared-7163796c.js → shared-5fbda766.js} +1 -1
  122. package/dist/cdn/{shared-445dda5a.js → shared-668947de.js} +1 -1
  123. package/dist/cdn/{shared-ffb6c2d3.js → shared-6f4005e5.js} +1 -1
  124. package/dist/cdn/{shared-308e67f3.js → shared-72817759.js} +1 -1
  125. package/dist/cdn/{shared-a6deb2a4.js → shared-7e9c240a.js} +1 -1
  126. package/dist/cdn/{shared-5cf7e764.js → shared-809df8d2.js} +1 -1
  127. package/dist/cdn/{shared-53af541e.js → shared-82f873bd.js} +1 -1
  128. package/dist/cdn/{shared-6860c8d1.js → shared-8b0c77a7.js} +1 -1
  129. package/dist/cdn/{shared-d7b778b7.js → shared-9271a609.js} +1 -1
  130. package/dist/cdn/{shared-00d2cbe9.js → shared-950875f2.js} +1 -1
  131. package/dist/cdn/{shared-f8bcab5c.js → shared-963c4a87.js} +1 -1
  132. package/dist/cdn/{shared-5a445ebd.js → shared-9725c399.js} +1 -1
  133. package/dist/cdn/{shared-dfe7652e.js → shared-9e04b9c3.js} +1 -1
  134. package/dist/cdn/{shared-b2d6bbad.js → shared-9e8bff76.js} +1 -1
  135. package/dist/cdn/shared-b137f17a.js +1 -0
  136. package/dist/cdn/{shared-5897f089.js → shared-b23ccea9.js} +1 -1
  137. package/dist/cdn/{shared-2b1c3f7a.js → shared-b2474263.js} +1 -1
  138. package/dist/cdn/{shared-c5fe5675.js → shared-bc36bc72.js} +1 -1
  139. package/dist/cdn/{shared-643791c8.js → shared-bcc4cf7f.js} +1 -1
  140. package/dist/cdn/{shared-2bae351a.js → shared-be591e92.js} +1 -1
  141. package/dist/cdn/shared-c0816371.js +1 -0
  142. package/dist/cdn/{shared-5ec39f11.js → shared-c0ec65fa.js} +1 -1
  143. package/dist/cdn/{shared-2a9718a9.js → shared-c1dd32b6.js} +1 -1
  144. package/dist/cdn/{shared-01dd0fd6.js → shared-c27aaa05.js} +1 -1
  145. package/dist/cdn/{shared-3c20c295.js → shared-c2cfc26d.js} +1 -1
  146. package/dist/cdn/{shared-394981eb.js → shared-c2ec3291.js} +1 -1
  147. package/dist/cdn/{shared-46c6d1e6.js → shared-c3fa6df1.js} +1 -1
  148. package/dist/cdn/{shared-10f92654.js → shared-c5106979.js} +1 -1
  149. package/dist/cdn/shared-cb34d19f.js +1 -0
  150. package/dist/cdn/{shared-aa678ec4.js → shared-e2f4962c.js} +1 -1
  151. package/dist/cdn/{shared-14f0cf8e.js → shared-e9c81269.js} +1 -1
  152. package/dist/cdn/{shared-3a329baf.js → shared-f8e3be56.js} +1 -1
  153. package/dist/cdn/{shared-8db9452f.js → shared-fcce5337.js} +1 -1
  154. package/dist/cdn/translations/downloadable-card/en.json +7 -0
  155. package/dist/cdn/translations/downloadable-form/en.json +65 -0
  156. package/dist/cdn/translations/transaction/en.json +2 -0
  157. package/dist/elements/private/Choice/Choice.d.ts +3 -2
  158. package/dist/elements/private/Choice/Choice.js +5 -0
  159. package/dist/elements/private/Choice/Choice.js.map +1 -1
  160. package/dist/elements/private/Choice/machine.js +33 -0
  161. package/dist/elements/private/Choice/machine.js.map +1 -1
  162. package/dist/elements/public/CouponForm/CouponForm.d.ts +1 -5
  163. package/dist/elements/public/CouponForm/CouponForm.js +27 -289
  164. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  165. package/dist/elements/public/CouponForm/index.d.ts +1 -0
  166. package/dist/elements/public/CouponForm/index.js +1 -0
  167. package/dist/elements/public/CouponForm/index.js.map +1 -1
  168. package/dist/elements/public/CouponForm/types.d.ts +0 -24
  169. package/dist/elements/public/CouponForm/types.js.map +1 -1
  170. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +8 -4
  171. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  172. package/dist/elements/public/Donation/Donation.js +3 -3
  173. package/dist/elements/public/Donation/Donation.js.map +1 -1
  174. package/dist/elements/public/DownloadableCard/DownloadableCard.d.ts +21 -0
  175. package/dist/elements/public/DownloadableCard/DownloadableCard.js +84 -0
  176. package/dist/elements/public/DownloadableCard/DownloadableCard.js.map +1 -0
  177. package/dist/elements/public/DownloadableCard/index.d.ts +6 -0
  178. package/dist/elements/public/DownloadableCard/index.js +8 -0
  179. package/dist/elements/public/DownloadableCard/index.js.map +1 -0
  180. package/dist/elements/public/DownloadableCard/types.d.ts +8 -0
  181. package/dist/elements/public/DownloadableCard/types.js +2 -0
  182. package/dist/elements/public/DownloadableCard/types.js.map +1 -0
  183. package/dist/elements/public/DownloadableForm/DownloadableForm.d.ts +54 -0
  184. package/dist/elements/public/DownloadableForm/DownloadableForm.js +149 -0
  185. package/dist/elements/public/DownloadableForm/DownloadableForm.js.map +1 -0
  186. package/dist/elements/public/DownloadableForm/index.d.ts +8 -0
  187. package/dist/elements/public/DownloadableForm/index.js +10 -0
  188. package/dist/elements/public/DownloadableForm/index.js.map +1 -0
  189. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/InternalDownloadableFormUploadControl.d.ts +11 -0
  190. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/InternalDownloadableFormUploadControl.js +124 -0
  191. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/InternalDownloadableFormUploadControl.js.map +1 -0
  192. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/index.d.ts +6 -0
  193. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/index.js +8 -0
  194. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/index.js.map +1 -0
  195. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/style.d.ts +1 -0
  196. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/style.js +42 -0
  197. package/dist/elements/public/DownloadableForm/internal/InternalDownloadableFormUploadControl/style.js.map +1 -0
  198. package/dist/elements/public/DownloadableForm/types.d.ts +11 -0
  199. package/dist/elements/public/DownloadableForm/types.js +2 -0
  200. package/dist/elements/public/DownloadableForm/types.js.map +1 -0
  201. package/dist/elements/public/FormDialog/FormDialog.d.ts +4 -0
  202. package/dist/elements/public/FormDialog/FormDialog.js +18 -7
  203. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  204. package/dist/elements/public/I18n/format/discount.js +1 -1
  205. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  206. package/dist/elements/public/I18n/format/percent.js +4 -3
  207. package/dist/elements/public/I18n/format/percent.js.map +1 -1
  208. package/dist/elements/public/ItemCard/ItemCard.js +1 -1
  209. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  210. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +25 -8
  211. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  212. package/dist/elements/public/Transaction/types.d.ts +5 -1
  213. package/dist/elements/public/Transaction/types.js.map +1 -1
  214. package/dist/elements/public/index.d.ts +2 -0
  215. package/dist/elements/public/index.defined.d.ts +2 -0
  216. package/dist/elements/public/index.defined.js +2 -0
  217. package/dist/elements/public/index.defined.js.map +1 -1
  218. package/dist/elements/public/index.js +2 -0
  219. package/dist/elements/public/index.js.map +1 -1
  220. package/dist/mixins/themeable.js +4 -0
  221. package/dist/mixins/themeable.js.map +1 -1
  222. package/package.json +1 -1
  223. package/dist/cdn/shared-095ad002.js +0 -1
  224. package/dist/cdn/shared-349bbd7e.js +0 -1
  225. package/dist/cdn/shared-7f47c677.js +0 -1
  226. package/dist/cdn/shared-9eeb2bec.js +0 -1
@@ -0,0 +1,505 @@
1
+ import{I as e}from"./shared-38ed7905.js";import"./shared-b2474263.js";import{E as r,T as t}from"./shared-9e8bff76.js";import"./shared-57c6cfd1.js";import"./shared-c0ec65fa.js";import{h as o,P as a,B as i}from"./shared-533c3914.js";import"./shared-24a762c1.js";import"./shared-b137f17a.js";import{y as s,a as n}from"./shared-e9c81269.js";import{c as l,h as A}from"./shared-7f33a83a.js";import{i as d}from"./shared-d3bf9ac0.js";import{c as p}from"./shared-4e709717.js";import"./shared-055ca9db.js";import"./shared-bcc4cf7f.js";import"./shared-1a6fb0f3.js";import{I as u}from"./shared-6f4005e5.js";import"./foxy-nucleon-element.js";import{_ as c,B as m}from"./shared-98755831.js";import"./shared-0479553e.js";import"./shared-de790de9.js";import"./shared-a8cf402a.js";import"./shared-eb900735.js";import"./shared-509a2f52.js";import"./shared-64657919.js";import"./shared-d6276c83.js";import"./shared-a89cb472.js";import"./shared-178f7222.js";import"./shared-5425e3d3.js";import"./shared-06c64816.js";import"./shared-c5106979.js";import"./shared-15c94a90.js";import"./shared-bc36bc72.js";import"./foxy-spinner.js";import"./shared-668947de.js";const h=o`<dom-module id="lumo-progress-bar" theme-for="vaadin-progress-bar">
2
+ <template>
3
+ <style>
4
+ :host {
5
+ height: calc(var(--lumo-size-l) / 10);
6
+ margin: var(--lumo-space-s) 0;
7
+ }
8
+
9
+ [part="bar"] {
10
+ border-radius: var(--lumo-border-radius);
11
+ background-color: var(--lumo-contrast-10pct);
12
+ }
13
+
14
+ [part="value"] {
15
+ border-radius: var(--lumo-border-radius);
16
+ background-color: var(--lumo-primary-color);
17
+ /* Use width instead of transform to preserve border radius */
18
+ transform: none;
19
+ width: calc(var(--vaadin-progress-value) * 100%);
20
+ will-change: width;
21
+ transition: 0.1s width linear;
22
+ }
23
+
24
+ /* Indeterminate mode */
25
+
26
+ :host([indeterminate]) [part="value"] {
27
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to right, var(--lumo-primary-color-10pct) 10%, var(--lumo-primary-color));
28
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to left, var(--lumo-primary-color-10pct) 10%, var(--lumo-primary-color));
29
+ width: 100%;
30
+ background-color: transparent !important;
31
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background);
32
+ opacity: 0.75;
33
+ will-change: transform;
34
+ animation: vaadin-progress-indeterminate 1.6s infinite cubic-bezier(.645, .045, .355, 1);
35
+ }
36
+
37
+ @keyframes vaadin-progress-indeterminate {
38
+ 0% {
39
+ transform: scaleX(0.015);
40
+ transform-origin: 0% 0%;
41
+ }
42
+
43
+ 25% {
44
+ transform: scaleX(0.4);
45
+ }
46
+
47
+ 50% {
48
+ transform: scaleX(0.015);
49
+ transform-origin: 100% 0%;
50
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background);
51
+ }
52
+
53
+ 50.1% {
54
+ transform: scaleX(0.015);
55
+ transform-origin: 100% 0%;
56
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
57
+ }
58
+
59
+ 75% {
60
+ transform: scaleX(0.4);
61
+ }
62
+
63
+ 100% {
64
+ transform: scaleX(0.015);
65
+ transform-origin: 0% 0%;
66
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
67
+ }
68
+ }
69
+
70
+ :host(:not([aria-valuenow])) [part="value"]::before,
71
+ :host([indeterminate]) [part="value"]::before {
72
+ content: "";
73
+ display: block;
74
+ width: 100%;
75
+ height: 100%;
76
+ border-radius: inherit;
77
+ background-color: var(--lumo-primary-color);
78
+ will-change: opacity;
79
+ animation: vaadin-progress-pulse3 1.6s infinite cubic-bezier(.645, .045, .355, 1);
80
+ }
81
+
82
+ @keyframes vaadin-progress-pulse3 {
83
+ 0% { opacity: 1; }
84
+ 10% { opacity: 0; }
85
+ 40% { opacity: 0; }
86
+ 50% { opacity: 1; }
87
+ 50.1% { opacity: 1; }
88
+ 60% { opacity: 0; }
89
+ 90% { opacity: 0; }
90
+ 100% { opacity: 1; }
91
+ }
92
+
93
+ /* Contrast color */
94
+
95
+ :host([theme~="contrast"]) [part="value"],
96
+ :host([theme~="contrast"]) [part="value"]::before {
97
+ background-color: var(--lumo-contrast-80pct);
98
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to right, var(--lumo-contrast-5pct) 10%, var(--lumo-contrast-80pct));
99
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to left, var(--lumo-contrast-5pct) 10%, var(--lumo-contrast-60pct));
100
+ }
101
+
102
+ /* Error color */
103
+
104
+ :host([theme~="error"]) [part="value"],
105
+ :host([theme~="error"]) [part="value"]::before {
106
+ background-color: var(--lumo-error-color);
107
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to right, var(--lumo-error-color-10pct) 10%, var(--lumo-error-color));
108
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to left, var(--lumo-error-color-10pct) 10%, var(--lumo-error-color));
109
+ }
110
+
111
+ /* Primary color */
112
+
113
+ :host([theme~="success"]) [part="value"],
114
+ :host([theme~="success"]) [part="value"]::before {
115
+ background-color: var(--lumo-success-color);
116
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to right, var(--lumo-success-color-10pct) 10%, var(--lumo-success-color));
117
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to left, var(--lumo-success-color-10pct) 10%, var(--lumo-success-color));
118
+ }
119
+
120
+ /* RTL specific styles */
121
+
122
+ :host([indeterminate][dir="rtl"]) [part="value"] {
123
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to left, var(--lumo-primary-color-10pct) 10%, var(--lumo-primary-color));
124
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to right, var(--lumo-primary-color-10pct) 10%, var(--lumo-primary-color));
125
+ animation: vaadin-progress-indeterminate-rtl 1.6s infinite cubic-bezier(.355, .045, .645, 1);
126
+ }
127
+
128
+ :host(:not([aria-valuenow])[dir="rtl"]) [part="value"]::before,
129
+ :host([indeterminate][dir="rtl"]) [part="value"]::before {
130
+ animation: vaadin-progress-pulse3 1.6s infinite cubic-bezier(.355, .045, .645, 1);
131
+ }
132
+
133
+ @keyframes vaadin-progress-indeterminate-rtl {
134
+ 0% {
135
+ transform: scaleX(0.015);
136
+ transform-origin: 100% 0%;
137
+ }
138
+
139
+ 25% {
140
+ transform: scaleX(0.4);
141
+ }
142
+
143
+ 50% {
144
+ transform: scaleX(0.015);
145
+ transform-origin: 0% 0%;
146
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background);
147
+ }
148
+
149
+ 50.1% {
150
+ transform: scaleX(0.015);
151
+ transform-origin: 0% 0%;
152
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
153
+ }
154
+
155
+ 75% {
156
+ transform: scaleX(0.4);
157
+ }
158
+
159
+ 100% {
160
+ transform: scaleX(0.015);
161
+ transform-origin: 100% 0%;
162
+ background-image: var(--lumo-progress-indeterminate-progress-bar-background-reverse);
163
+ }
164
+ }
165
+
166
+ /* Contrast color */
167
+
168
+ :host([theme~="contrast"][dir="rtl"]) [part="value"],
169
+ :host([theme~="contrast"][dir="rtl"]) [part="value"]::before {
170
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to left, var(--lumo-contrast-5pct) 10%, var(--lumo-contrast-80pct));
171
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to right, var(--lumo-contrast-5pct) 10%, var(--lumo-contrast-60pct));
172
+ }
173
+
174
+ /* Error color */
175
+
176
+ :host([theme~="error"][dir="rtl"]) [part="value"],
177
+ :host([theme~="error"][dir="rtl"]) [part="value"]::before {
178
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to left, var(--lumo-error-color-10pct) 10%, var(--lumo-error-color));
179
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to right, var(--lumo-error-color-10pct) 10%, var(--lumo-error-color));
180
+ }
181
+
182
+ /* Primary color */
183
+
184
+ :host([theme~="success"][dir="rtl"]) [part="value"],
185
+ :host([theme~="success"][dir="rtl"]) [part="value"]::before {
186
+ --lumo-progress-indeterminate-progress-bar-background: linear-gradient(to left, var(--lumo-success-color-10pct) 10%, var(--lumo-success-color));
187
+ --lumo-progress-indeterminate-progress-bar-background-reverse: linear-gradient(to right, var(--lumo-success-color-10pct) 10%, var(--lumo-success-color));
188
+ }
189
+ </style>
190
+ </template>
191
+ </dom-module><custom-style>
192
+ <style>
193
+ @keyframes vaadin-progress-pulse3 {
194
+ 0% { opacity: 1; }
195
+ 10% { opacity: 0; }
196
+ 40% { opacity: 0; }
197
+ 50% { opacity: 1; }
198
+ 50.1% { opacity: 1; }
199
+ 60% { opacity: 0; }
200
+ 90% { opacity: 0; }
201
+ 100% { opacity: 1; }
202
+ }
203
+ </style>
204
+ </custom-style>`;document.head.appendChild(h.content);
205
+ /**
206
+ @license
207
+ Copyright (c) 2017 Vaadin Ltd.
208
+ This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
209
+ */
210
+ const g=e=>class extends e{static get properties(){return{value:{type:Number,observer:"_valueChanged"},min:{type:Number,value:0,observer:"_minChanged"},max:{type:Number,value:1,observer:"_maxChanged"},indeterminate:{type:Boolean,value:!1,reflectToAttribute:!0}}}static get observers(){return["_normalizedValueChanged(value, min, max)"]}ready(){super.ready(),this.setAttribute("role","progressbar")}_normalizedValueChanged(e,r,t){const o=this._normalizeValue(e,r,t);this.style.setProperty("--vaadin-progress-value",o),this.updateStyles({"--vaadin-progress-value":String(o)})}_valueChanged(e,r){this.setAttribute("aria-valuenow",e)}_minChanged(e,r){this.setAttribute("aria-valuemin",e)}_maxChanged(e,r){this.setAttribute("aria-valuemax",e)}_normalizeValue(e,r,t){let o;return e||0==e?r>=t?o=1:(o=(e-r)/(t-r),o=Math.min(Math.max(o,0),1)):o=0,o}}
211
+ /**
212
+ @license
213
+ Copyright (c) 2017 Vaadin Ltd.
214
+ This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
215
+ */;class f extends(r(t(g(a)))){static get template(){return o`
216
+ <style>
217
+ :host {
218
+ display: block;
219
+ width: 100%; /* prevent collapsing inside non-stretching column flex */
220
+ height: 8px;
221
+ }
222
+
223
+ :host([hidden]) {
224
+ display: none !important;
225
+ }
226
+
227
+ [part="bar"] {
228
+ height: 100%;
229
+ }
230
+
231
+ [part="value"] {
232
+ height: 100%;
233
+ transform-origin: 0 50%;
234
+ transform: scaleX(var(--vaadin-progress-value));
235
+ }
236
+
237
+ /* RTL specific styles */
238
+
239
+ :host([dir="rtl"]) [part="value"] {
240
+ transform-origin: 100% 50%;
241
+ }
242
+ </style>
243
+
244
+ <div part="bar">
245
+ <div part="value"></div>
246
+ </div>
247
+ `}static get is(){return"vaadin-progress-bar"}static get version(){return"1.3.0"}}customElements.define(f.is,f);const v=o`<dom-module id="lumo-upload" theme-for="vaadin-upload">
248
+ <template>
249
+ <style>
250
+ :host {
251
+ line-height: var(--lumo-line-height-m);
252
+ }
253
+
254
+ :host(:not([nodrop])) {
255
+ overflow: hidden;
256
+ border: 1px dashed var(--lumo-contrast-20pct);
257
+ border-radius: var(--lumo-border-radius);
258
+ padding: var(--lumo-space-m);
259
+ transition: background-color 0.6s, border-color 0.6s;
260
+ }
261
+
262
+ [part="primary-buttons"] > * {
263
+ display: inline-block;
264
+ white-space: nowrap;
265
+ }
266
+
267
+ [part="drop-label"] {
268
+ display: inline-block;
269
+ white-space: normal;
270
+ padding: 0 var(--lumo-space-s);
271
+ color: var(--lumo-secondary-text-color);
272
+ font-family: var(--lumo-font-family);
273
+ }
274
+
275
+ :host([dragover-valid]) {
276
+ border-color: var(--lumo-primary-color-50pct);
277
+ background: var(--lumo-primary-color-10pct);
278
+ transition: background-color 0.1s, border-color 0.1s;
279
+ }
280
+
281
+ :host([dragover-valid]) [part="drop-label"] {
282
+ color: var(--lumo-primary-text-color);
283
+ }
284
+
285
+ :host([max-files-reached]) [part='drop-label'] {
286
+ color: var(--lumo-disabled-text-color);
287
+ }
288
+
289
+ [part="drop-label-icon"] {
290
+ display: inline-block;
291
+ }
292
+
293
+ [part="drop-label-icon"]::before {
294
+ content: var(--lumo-icons-upload);
295
+ font-family: lumo-icons;
296
+ font-size: var(--lumo-icon-size-m);
297
+ line-height: 1;
298
+ vertical-align: -.25em;
299
+ }
300
+ </style>
301
+ </template>
302
+ </dom-module><dom-module id="lumo-upload-file" theme-for="vaadin-upload-file">
303
+ <template>
304
+ <style include="lumo-field-button">
305
+ :host {
306
+ padding: var(--lumo-space-s) 0;
307
+ }
308
+
309
+ :host(:not(:first-child)) {
310
+ border-top: 1px solid var(--lumo-contrast-10pct);
311
+ }
312
+
313
+ [part="row"] {
314
+ display: flex;
315
+ align-items: baseline;
316
+ justify-content: space-between;
317
+ }
318
+
319
+ [part="status"],
320
+ [part="error"] {
321
+ color: var(--lumo-secondary-text-color);
322
+ font-size: var(--lumo-font-size-s);
323
+ }
324
+
325
+ [part="info"] {
326
+ display: flex;
327
+ align-items: baseline;
328
+ flex: auto;
329
+ }
330
+
331
+ [part="meta"] {
332
+ width: 0.001px;
333
+ flex: 1 1 auto;
334
+ }
335
+
336
+ [part="name"] {
337
+ white-space: nowrap;
338
+ overflow: hidden;
339
+ text-overflow: ellipsis;
340
+ }
341
+
342
+ [part="commands"] {
343
+ display: flex;
344
+ align-items: baseline;
345
+ flex: none;
346
+ }
347
+
348
+ [part="done-icon"],
349
+ [part="warning-icon"] {
350
+ margin-right: var(--lumo-space-xs);
351
+ }
352
+
353
+ /* When both icons are hidden, let us keep space for one */
354
+ [part="done-icon"][hidden] + [part="warning-icon"][hidden] {
355
+ display: block !important;
356
+ visibility: hidden;
357
+ }
358
+
359
+ [part="done-icon"],
360
+ [part="warning-icon"] {
361
+ font-size: var(--lumo-icon-size-m);
362
+ font-family: 'lumo-icons';
363
+ line-height: 1;
364
+ }
365
+
366
+ [part="start-button"],
367
+ [part="retry-button"],
368
+ [part="clear-button"] {
369
+ flex: none;
370
+ margin-left: var(--lumo-space-xs);
371
+ }
372
+
373
+ [part="done-icon"]::before,
374
+ [part="warning-icon"]::before,
375
+ [part="start-button"]::before,
376
+ [part="retry-button"]::before,
377
+ [part="clear-button"]::before {
378
+ vertical-align: -.25em;
379
+ }
380
+
381
+ [part="done-icon"]::before {
382
+ content: var(--lumo-icons-checkmark);
383
+ color: var(--lumo-primary-text-color);
384
+ }
385
+
386
+ [part="warning-icon"]::before {
387
+ content: var(--lumo-icons-error);
388
+ color: var(--lumo-error-text-color);
389
+ }
390
+
391
+ [part="start-button"]::before {
392
+ content: var(--lumo-icons-play);
393
+ }
394
+
395
+ [part="retry-button"]::before {
396
+ content: var(--lumo-icons-reload);
397
+ }
398
+
399
+ [part="clear-button"]::before {
400
+ content: var(--lumo-icons-cross);
401
+ }
402
+
403
+ [part="error"] {
404
+ color: var(--lumo-error-text-color);
405
+ }
406
+
407
+ [part="progress"] {
408
+ width: auto;
409
+ margin-left: calc(var(--lumo-icon-size-m) + var(--lumo-space-xs));
410
+ margin-right: calc(var(--lumo-icon-size-m) + var(--lumo-space-xs));
411
+ }
412
+
413
+ [part="progress"][complete],
414
+ [part="progress"][error] {
415
+ display: none;
416
+ }
417
+
418
+ </style>
419
+ </template>
420
+ </dom-module>`;document.head.appendChild(v.content);const b=document.createElement("template");b.innerHTML="<custom-style>\n <style>\n @font-face {\n font-family: 'vaadin-upload-icons';\n src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAasAAsAAAAABmAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIF5mNtYXAAAAFoAAAAVAAAAFQXVtKMZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAfQAAAH0bBJxYWhlYWQAAAO4AAAANgAAADYPD267aGhlYQAAA/AAAAAkAAAAJAfCA8tobXR4AAAEFAAAACgAAAAoHgAAx2xvY2EAAAQ8AAAAFgAAABYCSgHsbWF4cAAABFQAAAAgAAAAIAAOADVuYW1lAAAEdAAAAhYAAAIWmmcHf3Bvc3QAAAaMAAAAIAAAACAAAwAAAAMDtwGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QUDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkF//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAgAA/8AEAAPAABkAMgAAEz4DMzIeAhczLgMjIg4CBycRIScFIRcOAyMiLgInIx4DMzI+AjcXphZGWmo6SH9kQwyADFiGrmJIhXJbIEYBAFoDWv76YBZGXGw8Rn5lRQyADFmIrWBIhHReIkYCWjJVPSIyVnVDXqN5RiVEYTxG/wBa2loyVT0iMlZ1Q16jeUYnRWE5RgAAAAABAIAAAAOAA4AAAgAAExEBgAMAA4D8gAHAAAAAAwAAAAAEAAOAAAIADgASAAAJASElIiY1NDYzMhYVFAYnETMRAgD+AAQA/gAdIyMdHSMjXYADgPyAgCMdHSMjHR0jwAEA/wAAAQANADMD5gNaAAUAACUBNwUBFwHT/jptATMBppMzAU2a4AIgdAAAAAEAOv/6A8YDhgALAAABJwkBBwkBFwkBNwEDxoz+xv7GjAFA/sCMAToBOoz+wAL6jP7AAUCM/sb+xowBQP7AjAE6AAAAAwAA/8AEAAPAAAcACwASAAABFSE1IREhEQEjNTMJAjMRIRECwP6A/sAEAP0AgIACQP7A/sDAAQABQICA/oABgP8AgAHAAUD+wP6AAYAAAAABAAAAAQAAdhiEdV8PPPUACwQAAAAAANX4FR8AAAAA1fgVHwAA/8AEAAPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAQAAAEAAAAAAAAAAAAAAAAAAAAKBAAAAAAAAAAAAAAAAgAAAAQAAAAEAACABAAAAAQAAA0EAAA6BAAAAAAAAAAACgAUAB4AagB4AJwAsADSAPoAAAABAAAACgAzAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAEwAAAAEAAAAAAAIABwDMAAEAAAAAAAMAEwBaAAEAAAAAAAQAEwDhAAEAAAAAAAUACwA5AAEAAAAAAAYAEwCTAAEAAAAAAAoAGgEaAAMAAQQJAAEAJgATAAMAAQQJAAIADgDTAAMAAQQJAAMAJgBtAAMAAQQJAAQAJgD0AAMAAQQJAAUAFgBEAAMAAQQJAAYAJgCmAAMAAQQJAAoANAE0dmFhZGluLXVwbG9hZC1pY29ucwB2AGEAYQBkAGkAbgAtAHUAcABsAG8AYQBkAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwdmFhZGluLXVwbG9hZC1pY29ucwB2AGEAYQBkAGkAbgAtAHUAcABsAG8AYQBkAC0AaQBjAG8AbgBzdmFhZGluLXVwbG9hZC1pY29ucwB2AGEAYQBkAGkAbgAtAHUAcABsAG8AYQBkAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQBydmFhZGluLXVwbG9hZC1pY29ucwB2AGEAYQBkAGkAbgAtAHUAcABsAG8AYQBkAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n</custom-style>",document.head.appendChild(b.content);
421
+ /**
422
+ @license
423
+ Copyright (c) 2017 Vaadin Ltd.
424
+ This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
425
+ */
426
+ class y extends(t(a)){static get template(){return o`
427
+ <style>
428
+ :host {
429
+ display: block;
430
+ }
431
+
432
+ [hidden] {
433
+ display: none;
434
+ }
435
+ </style>
436
+
437
+ <div part="row">
438
+ <div part="info">
439
+ <div part="done-icon" hidden\$="[[!file.complete]]"></div>
440
+ <div part="warning-icon" hidden\$="[[!file.error]]"></div>
441
+
442
+ <div part="meta">
443
+ <div part="name" id="name">[[file.name]]</div>
444
+ <div part="status" hidden\$="[[!file.status]]" id="status">[[file.status]]</div>
445
+ <div part="error" id="error" hidden\$="[[!file.error]]">[[file.error]]</div>
446
+ </div>
447
+ </div>
448
+ <div part="commands">
449
+ <div part="start-button" file-event="file-start" on-click="_fireFileEvent" hidden\$="[[!file.held]]"></div>
450
+ <div part="retry-button" file-event="file-retry" on-click="_fireFileEvent" hidden\$="[[!file.error]]"></div>
451
+ <div part="clear-button" file-event="file-abort" on-click="_fireFileEvent"></div>
452
+ </div>
453
+ </div>
454
+
455
+ <vaadin-progress-bar part="progress" id="progress" value\$="[[_formatProgressValue(file.progress)]]" error\$="[[file.error]]" indeterminate\$="[[file.indeterminate]]" uploading\$="[[file.uploading]]" complete\$="[[file.complete]]">
456
+ </vaadin-progress-bar>
457
+ `}static get is(){return"vaadin-upload-file"}static get properties(){return{file:Object}}static get observers(){return["_fileAborted(file.abort)",'_toggleHostAttribute(file.error, "error")','_toggleHostAttribute(file.indeterminate, "indeterminate")','_toggleHostAttribute(file.uploading, "uploading")','_toggleHostAttribute(file.complete, "complete")']}_fileAborted(e){e&&this._remove()}_remove(){this.dispatchEvent(new CustomEvent("file-remove",{detail:{file:this.file},bubbles:!0,composed:!0}))}_formatProgressValue(e){return e/100}_fireFileEvent(e){return e.preventDefault(),this.dispatchEvent(new CustomEvent(e.target.getAttribute("file-event"),{detail:{file:this.file},bubbles:!0,composed:!0}))}_toggleHostAttribute(e,r){const t=Boolean(e);this.hasAttribute(r)!==t&&(t?this.setAttribute(r,""):this.removeAttribute(r))}}customElements.define(y.is,y);
458
+ /**
459
+ @license
460
+ Copyright (c) 2017 Vaadin Ltd.
461
+ This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
462
+ */
463
+ class _ extends(r(t(a))){static get template(){return o`
464
+ <style>
465
+ :host {
466
+ display: block;
467
+ position: relative;
468
+ }
469
+
470
+ :host([hidden]) {
471
+ display: none !important;
472
+ }
473
+
474
+ [hidden] {
475
+ display: none !important;
476
+ }
477
+ </style>
478
+
479
+ <div part="primary-buttons">
480
+ <div id="addFiles" on-touchend="_onAddFilesTouchEnd" on-click="_onAddFilesClick">
481
+ <slot name="add-button">
482
+ <vaadin-button part="upload-button" id="addButton" disabled="[[maxFilesReached]]">
483
+ [[_i18nPlural(maxFiles, i18n.addFiles, i18n.addFiles.*)]]
484
+ </vaadin-button>
485
+ </slot>
486
+ </div>
487
+ <div part="drop-label" hidden\$="[[nodrop]]" id="dropLabelContainer">
488
+ <slot name="drop-label-icon">
489
+ <div part="drop-label-icon"></div>
490
+ </slot>
491
+ <slot name="drop-label" id="dropLabel">
492
+ [[_i18nPlural(maxFiles, i18n.dropFiles, i18n.dropFiles.*)]]
493
+ </slot>
494
+ </div>
495
+ </div>
496
+ <slot name="file-list">
497
+ <div id="fileList" part="file-list">
498
+ <template is="dom-repeat" items="[[files]]" as="file">
499
+ <vaadin-upload-file file="[[file]]"></vaadin-upload-file>
500
+ </template>
501
+ </div>
502
+ </slot>
503
+ <slot></slot>
504
+ <input type="file" id="fileInput" on-change="_onFileInputChange" hidden="" accept\$="{{accept}}" multiple\$="[[_isMultiple(maxFiles)]]" capture\$="[[capture]]">
505
+ `}static get is(){return"vaadin-upload"}static get version(){return"4.4.3"}static get properties(){return{nodrop:{type:Boolean,reflectToAttribute:!0,value:function(){try{return!!document.createEvent("TouchEvent")}catch(e){return!1}}},target:{type:String,value:""},method:{type:String,value:"POST"},headers:{type:Object,value:{}},timeout:{type:Number,value:0},_dragover:{type:Boolean,value:!1,observer:"_dragoverChanged"},files:{type:Array,notify:!0,value:function(){return[]}},maxFiles:{type:Number,value:1/0},maxFilesReached:{type:Boolean,value:!1,notify:!0,readOnly:!0,reflectToAttribute:!0,computed:"_maxFilesAdded(maxFiles, files.length)"},accept:{type:String,value:""},maxFileSize:{type:Number,value:1/0},_dragoverValid:{type:Boolean,value:!1,observer:"_dragoverValidChanged"},formDataName:{type:String,value:"file"},noAuto:{type:Boolean,value:!1},withCredentials:{type:Boolean,value:!1},capture:String,i18n:{type:Object,value:function(){return{dropFiles:{one:"Drop file here",many:"Drop files here"},addFiles:{one:"Upload File...",many:"Upload Files..."},cancel:"Cancel",error:{tooManyFiles:"Too Many Files.",fileIsTooBig:"File is Too Big.",incorrectFileType:"Incorrect File Type."},uploading:{status:{connecting:"Connecting...",stalled:"Stalled.",processing:"Processing File...",held:"Queued"},remainingTime:{prefix:"remaining time: ",unknown:"unknown remaining time"},error:{serverUnavailable:"Server Unavailable",unexpectedServerError:"Unexpected Server Error",forbidden:"Forbidden"}},units:{size:["B","kB","MB","GB","TB","PB","EB","ZB","YB"]}}}}}}ready(){super.ready(),this.addEventListener("dragover",this._onDragover.bind(this)),this.addEventListener("dragleave",this._onDragleave.bind(this)),this.addEventListener("drop",this._onDrop.bind(this)),this.addEventListener("file-retry",this._onFileRetry.bind(this)),this.addEventListener("file-abort",this._onFileAbort.bind(this)),this.addEventListener("file-remove",this._onFileRemove.bind(this)),this.addEventListener("file-start",this._onFileStart.bind(this))}_formatSize(e){if("function"==typeof this.i18n.formatSize)return this.i18n.formatSize(e);const r=this.i18n.units.sizeBase||1e3,t=~~(Math.log(e)/Math.log(r)),o=Math.max(0,Math.min(3,t-1));return parseFloat((e/Math.pow(r,t)).toFixed(o))+" "+this.i18n.units.size[t]}_splitTimeByUnits(e){const r=[60,60,24,1/0],t=[0];for(var o=0;o<r.length&&e>0;o++)t[o]=e%r[o],e=Math.floor(e/r[o]);return t}_formatTime(e,r){if("function"==typeof this.i18n.formatTime)return this.i18n.formatTime(e,r);for(;r.length<3;)r.push(0);return r.reverse().map((e=>(e<10?"0":"")+e)).join(":")}_formatFileProgress(e){return e.totalStr+": "+e.progress+"% ("+(e.loaded>0?this.i18n.uploading.remainingTime.prefix+e.remainingStr:this.i18n.uploading.remainingTime.unknown)+")"}_maxFilesAdded(e,r){return e>=0&&r>=e}_onDragover(e){e.preventDefault(),this.nodrop||this._dragover||(this._dragoverValid=!this.maxFilesReached,this._dragover=!0),e.dataTransfer.dropEffect=!this._dragoverValid||this.nodrop?"none":"copy"}_onDragleave(e){e.preventDefault(),this._dragover&&!this.nodrop&&(this._dragover=this._dragoverValid=!1)}_onDrop(e){this.nodrop||(e.preventDefault(),this._dragover=this._dragoverValid=!1,this._addFiles(e.dataTransfer.files))}_createXhr(){return new XMLHttpRequest}_configureXhr(e){if("string"==typeof this.headers)try{this.headers=JSON.parse(this.headers)}catch(e){this.headers=void 0}for(var r in this.headers)e.setRequestHeader(r,this.headers[r]);this.timeout&&(e.timeout=this.timeout),e.withCredentials=this.withCredentials}_setStatus(e,r,t,o){e.elapsed=o,e.elapsedStr=this._formatTime(e.elapsed,this._splitTimeByUnits(e.elapsed)),e.remaining=Math.ceil(o*(r/t-1)),e.remainingStr=this._formatTime(e.remaining,this._splitTimeByUnits(e.remaining)),e.speed=~~(r/o/1024),e.totalStr=this._formatSize(r),e.loadedStr=this._formatSize(t),e.status=this._formatFileProgress(e)}uploadFiles(e){e&&!Array.isArray(e)&&(e=[e]),e=(e=e||this.files).filter((e=>!e.complete)),Array.prototype.forEach.call(e,this._uploadFile.bind(this))}_uploadFile(e){if(e.uploading)return;const r=Date.now(),t=e.xhr=this._createXhr();let o,a;t.upload.onprogress=i=>{clearTimeout(o),a=Date.now();const s=(a-r)/1e3,n=i.loaded,l=i.total,A=~~(n/l*100);e.loaded=n,e.progress=A,e.indeterminate=n<=0||n>=l,e.error?e.indeterminate=e.status=void 0:e.abort||(A<100?(this._setStatus(e,l,n,s),o=setTimeout((()=>{e.status=this.i18n.uploading.status.stalled,this._notifyFileChanges(e)}),2e3)):(e.loadedStr=e.totalStr,e.status=this.i18n.uploading.status.processing)),this._notifyFileChanges(e),this.dispatchEvent(new CustomEvent("upload-progress",{detail:{file:e,xhr:t}}))},t.onreadystatechange=()=>{if(4==t.readyState){if(clearTimeout(o),e.indeterminate=e.uploading=!1,e.abort)return void this._notifyFileChanges(e);e.status="";if(!this.dispatchEvent(new CustomEvent("upload-response",{detail:{file:e,xhr:t},cancelable:!0})))return;0===t.status?e.error=this.i18n.uploading.error.serverUnavailable:t.status>=500?e.error=this.i18n.uploading.error.unexpectedServerError:t.status>=400&&(e.error=this.i18n.uploading.error.forbidden),e.complete=!e.error,this.dispatchEvent(new CustomEvent("upload-"+(e.error?"error":"success"),{detail:{file:e,xhr:t}})),this._notifyFileChanges(e)}};const i=new FormData;e.uploadTarget=e.uploadTarget||this.target||"",e.formDataName=this.formDataName;if(!this.dispatchEvent(new CustomEvent("upload-before",{detail:{file:e,xhr:t},cancelable:!0})))return;i.append(e.formDataName,e,e.name),t.open(this.method,e.uploadTarget,!0),this._configureXhr(t),e.status=this.i18n.uploading.status.connecting,e.uploading=e.indeterminate=!0,e.complete=e.abort=e.error=e.held=!1,t.upload.onloadstart=()=>{this.dispatchEvent(new CustomEvent("upload-start",{detail:{file:e,xhr:t}})),this._notifyFileChanges(e)};this.dispatchEvent(new CustomEvent("upload-request",{detail:{file:e,xhr:t,formData:i},cancelable:!0}))&&t.send(i)}_retryFileUpload(e){this.dispatchEvent(new CustomEvent("upload-retry",{detail:{file:e,xhr:e.xhr},cancelable:!0}))&&this._uploadFile(e)}_abortFileUpload(e){this.dispatchEvent(new CustomEvent("upload-abort",{detail:{file:e,xhr:e.xhr},cancelable:!0}))&&(e.abort=!0,e.xhr&&e.xhr.abort(),this._notifyFileChanges(e))}_notifyFileChanges(e){var r="files."+this.files.indexOf(e)+".";for(var t in e)e.hasOwnProperty(t)&&this.notifyPath(r+t,e[t])}_addFiles(e){Array.prototype.forEach.call(e,this._addFile.bind(this))}_addFile(e){if(this.maxFilesReached)return void this.dispatchEvent(new CustomEvent("file-reject",{detail:{file:e,error:this.i18n.error.tooManyFiles}}));if(this.maxFileSize>=0&&e.size>this.maxFileSize)return void this.dispatchEvent(new CustomEvent("file-reject",{detail:{file:e,error:this.i18n.error.fileIsTooBig}}));const r=e.name.match(/\.[^\.]*$|$/)[0],t=new RegExp("^("+this.accept.replace(/[, ]+/g,"|").replace(/\/\*/g,"/.*")+")$","i");!this.accept||t.test(e.type)||t.test(r)?(e.loaded=0,e.held=!0,e.status=this.i18n.uploading.status.held,this.unshift("files",e),this.noAuto||this._uploadFile(e)):this.dispatchEvent(new CustomEvent("file-reject",{detail:{file:e,error:this.i18n.error.incorrectFileType}}))}_removeFile(e){this.files.indexOf(e)>-1&&this.splice("files",this.files.indexOf(e),1)}_onAddFilesTouchEnd(e){e.preventDefault(),this.__resetMouseCanceller(),this._onAddFilesClick()}__resetMouseCanceller(){i()}_onAddFilesClick(){this.maxFilesReached||(this.$.fileInput.value="",this.$.fileInput.click())}_onFileInputChange(e){this._addFiles(e.target.files)}_onFileStart(e){this._uploadFile(e.detail.file)}_onFileRetry(e){this._retryFileUpload(e.detail.file)}_onFileAbort(e){this._abortFileUpload(e.detail.file)}_onFileRemove(e){this._removeFile(e.detail.file)}_dragoverChanged(e){e?this.setAttribute("dragover",e):this.removeAttribute("dragover")}_dragoverValidChanged(e){e?this.setAttribute("dragover-valid",e):this.removeAttribute("dragover-valid")}_i18nPlural(e,r){return 1==e?r.one:r.many}_isMultiple(e){return 1!=e}}customElements.define(_.is,_);let x;s("vaadin-upload",l(x||(x=(e=>e)`:host(.foxy-downloadable-form-upload) vaadin-upload-file{padding:var(--lumo-space-xs) 0 0 0;line-height:var(--lumo-line-height-xs)}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(commands){margin-right:-4px}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(progress){margin-right:2px;margin-left:0}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(clear-button),:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(retry-button),:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(start-button){display:none}:host(.foxy-downloadable-form-upload[disabled]) vaadin-upload-file::part(status){color:var(--lumo-disabled-text-color)}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(done-icon),:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(warning-icon){width:0;margin:0;opacity:0}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(info){align-items:flex-start}:host(.foxy-downloadable-form-upload) vaadin-upload-file::part(name){font-weight:500}`)));let w,B=e=>e;customElements.define("foxy-internal-downloadable-form-upload-control",class extends e{get uploadElement(){return this.renderRoot.querySelector("vaadin-upload")}renderControl(){return A(w||(w=B` <section class="${0}"> <foxy-i18n infer="" class="font-medium text-s" key="label"></foxy-i18n> <vaadin-upload max-file-size="524288000" max-files="${0}" style="padding:calc((.625em + (var(--lumo-border-radius)/ 4) - 1px) - var(--lumo-space-xs)) calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)" class="${0}" method="PUT" no-auto ?disabled="${0}" ?readonly="${0}" .i18n="${0}" @files-changed="${0}" @upload-request="${0}"> </vaadin-upload> <foxy-i18n infer="" class="text-xs" key="helper_text"></foxy-i18n> </section> `),p({"grid gap-xs group leading-xs transition-colors":!0,"hover-text-body":!this.disabled&&!this.readonly,"text-secondary":!this.disabled,"text-disabled":this.disabled}),d(this.disabled||this.readonly?"0":"2"),p({"rounded-t-l rounded-b-l border transition-colors":!0,"border-dashed border-contrast-30":this.readonly,"border-solid border-contrast-10":!this.readonly,"group-hover-border-contrast-20":!this.disabled&&!this.readonly,"foxy-downloadable-form-upload":!0}),this.disabled,this.readonly,this.__uploadI18n,this.__handleFilesChanged,this.__handleUploadRequest)}updated(e){super.updated(e);const r=this.nucleon,t=this.renderRoot.querySelector("vaadin-upload");t&&r&&(r.in({idle:{snapshot:"clean"}})&&0===t.files.length?t.files=[{complete:!0,progress:100,status:this.t("status_complete"),name:r.data.file_name}]:r.in({idle:{template:"clean"}})&&(t.files=[]))}get __uploadI18n(){return{dropFiles:{one:this.t("drop_label"),many:this.t("drop_label")},addFiles:{one:this.t("select_label"),many:this.t("select_label")},cancel:this.t("cancel"),error:{tooManyFiles:this.t("error_too_many_files"),fileIsTooBig:this.t("error_too_big"),incorrectFileType:""},uploading:{status:{connecting:this.t("status_connecting"),stalled:this.t("status_stalled"),processing:this.t("status_processing"),held:this.t("status_held")},remainingTime:{prefix:this.t("remaining_prefix"),unknown:this.t("remaining_unknown")},error:{serverUnavailable:this.t("error_server_unavailable"),unexpectedServerError:this.t("error_unexpected_server_error"),forbidden:this.t("error_forbidden")}},units:{size:["B","KB","MB","GB"],sizeBase:1024}}}__handleUploadRequest(e){e.preventDefault(),e.detail.xhr.send(e.detail.file)}__handleFilesChanged(e){var r,t,o;const a=e.currentTarget,i=this.nucleon,s=a.files;s.length>1&&(a.files=[a.files[0]]),(null===(r=s[0])||void 0===r?void 0:r.complete)&&!s[0].status&&(s[0].status=this.t("status_complete"));const n=null!==(o=null===(t=a.files[0])||void 0===t?void 0:t.name)&&void 0!==o?o:"";n!==(null==i?void 0:i.form.file_name)&&(null==i||i.edit({file_name:n}))}});let E,F=e=>e;const C=n(u,"downloadable-form");class k extends C{constructor(){super(...arguments),this.downloadableItemCategories=null,this.__downloadableItemCategoryLoaderId="downloadableItemCategoryLoader"}static get properties(){return c(c({},super.properties),{},{downloadableItemCategories:{attribute:"downloadable-item-categories"}})}static get v8n(){return[({item_category_uri:e})=>!!e||"item-category-uri:v8n_required",({file_name:e})=>!!e||"upload:v8n_required",({price:e})=>"number"==typeof e||"price:v8n_required",({price:e})=>!e||e>=0||"price:v8n_negative",({name:e})=>!!e||"name:v8n_required",({name:e})=>!e||e.length<=100||"name:v8n_too_long",({code:e})=>!!e||"code:v8n_required",({code:e})=>!e||e.length<=50||"code:v8n_too_long"]}get disabledSelector(){const e=[],r=this.__downloadableItemCategoryLoader;return(null==r?void 0:r.in("idle"))||e.push("item-category-uri"),new m(`${e.join(" ")}${super.disabledSelector}`)}renderBody(){var e,r;return A(E||(E=F` <foxy-nucleon class="hidden" infer="" href="${0}" id="${0}" @update="${0}"> </foxy-nucleon> <foxy-internal-async-combo-box-control item-label-path="name" item-value-path="_links.self.href" item-id-path="_links.self.href" infer="item-category-uri" first="${0}" .selectedItem="${0}" .setValue="${0}"> </foxy-internal-async-combo-box-control> <foxy-internal-text-control infer="name"></foxy-internal-text-control> <foxy-internal-text-control infer="code"></foxy-internal-text-control> <foxy-internal-number-control infer="price" min="0"></foxy-internal-number-control> <foxy-internal-downloadable-form-upload-control infer="upload"> </foxy-internal-downloadable-form-upload-control> ${0} `),d(this.form.item_category_uri||void 0),this.__downloadableItemCategoryLoaderId,(()=>this.requestUpdate()),d(null!==(e=this.downloadableItemCategories)&&void 0!==e?e:void 0),null===(r=this.__downloadableItemCategoryLoader)||void 0===r?void 0:r.data,(e=>{var r;this.edit({item_category_uri:e});const t=parseInt(null!==(r=e.split("/").pop())&&void 0!==r?r:"");isNaN(t)||this.edit({item_category_id:t})}),super.renderBody())}async _sendPatch(e){const r=await super._sendPatch(e),t=r._links["fx:create_upload_url"].href,o=this.renderRoot.querySelector('[infer="upload"]'),a=null==o?void 0:o.uploadElement;if(a&&1===a.files.length){const e=a.files[0],r=await this._fetch(t,{method:"POST",body:JSON.stringify({type:e.type})});a.files[0].uploadTarget=r.upload_url,a.uploadFiles()}return r}async _sendPost(e){const r=await super._sendPost(e),t=r._links["fx:create_upload_url"].href,o=this.renderRoot.querySelector('[infer="upload"]'),a=null==o?void 0:o.uploadElement;if(a&&1===a.files.length){const e=a.files[0],r=await this._fetch(t,{method:"POST",body:JSON.stringify({type:e.type})});a.files[0].uploadTarget=r.upload_url,a.uploadFiles()}return r}get __downloadableItemCategoryLoader(){return this.renderRoot.querySelector(`#${this.__downloadableItemCategoryLoaderId}`)}}customElements.define("foxy-downloadable-form",k);export{k as DownloadableForm};
@@ -1 +1 @@
1
- import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-349bbd7e.js";import{a as e}from"./shared-14f0cf8e.js";import{T as t}from"./shared-5a09ad7e.js";import{h as r}from"./shared-7f33a83a.js";import"./shared-5c5d13bd.js";import"./shared-9e18688d.js";import"./shared-445dda5a.js";import"./shared-98755831.js";import"./shared-a8cf402a.js";import"./shared-64657919.js";import"./shared-de790de9.js";import"./shared-d3bf9ac0.js";import"./shared-dfe7652e.js";import"./shared-eb900735.js";import"./shared-509a2f52.js";import"./shared-d6276c83.js";import"./shared-a89cb472.js";import"./shared-4e709717.js";let s,a,d=e=>e;const o=e(t,"email-template-card");class m extends o{renderBody(){return super.renderBody({title:e=>r(s||(s=d`${0}`),e.description),subtitle:e=>r(a||(a=d`<foxy-i18n infer="" key="${0}"></foxy-i18n>`),this.__getType(e))})}__getType(e){const{content_html_url:t,content_text_url:r}=e,{content_html:s,content_text:a}=e;return!a||r||s||t?!s||t||a||r?!t||r||s||a?!r||t||a||s?s||t||a||r?"type_mixed":"type_default":"type_custom_text_url":"type_custom_html_url":"type_custom_html":"type_custom_text"}}customElements.define("foxy-email-template-card",m);export{m as EmailTemplateCard};
1
+ import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-b137f17a.js";import{a as e}from"./shared-e9c81269.js";import{T as t}from"./shared-49b65f1e.js";import{h as r}from"./shared-7f33a83a.js";import"./shared-24a762c1.js";import"./shared-533c3914.js";import"./shared-668947de.js";import"./shared-98755831.js";import"./shared-a8cf402a.js";import"./shared-64657919.js";import"./shared-de790de9.js";import"./shared-d3bf9ac0.js";import"./shared-9e04b9c3.js";import"./shared-eb900735.js";import"./shared-509a2f52.js";import"./shared-d6276c83.js";import"./shared-a89cb472.js";import"./shared-4e709717.js";let s,o,a=e=>e;const m=e(t,"email-template-card");class d extends m{renderBody(){return super.renderBody({title:e=>r(s||(s=a`${0}`),e.description),subtitle:e=>r(o||(o=a`<foxy-i18n infer="" key="${0}"></foxy-i18n>`),this.__getType(e))})}__getType(e){const{content_html_url:t,content_text_url:r}=e,{content_html:s,content_text:o}=e;return!o||r||s||t?!s||t||o||r?!t||r||s||o?!r||t||o||s?s||t||o||r?"type_mixed":"type_default":"type_custom_text_url":"type_custom_html_url":"type_custom_html":"type_custom_text"}}customElements.define("foxy-email-template-card",d);export{d as EmailTemplateCard};
@@ -1 +1 @@
1
- import"./shared-468eb208.js";import"./shared-87405fc7.js";import"./shared-5ec39f11.js";import"./shared-493b8bc1.js";import"./shared-685ca959.js";import"./shared-aa5785d9.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-349bbd7e.js";import{_ as e}from"./shared-98755831.js";import{c as t,h as a}from"./shared-7f33a83a.js";import"./shared-5c5d13bd.js";import"./shared-b2d6bbad.js";import"./shared-00d2cbe9.js";import{S as s,T as i,a as r}from"./shared-14f0cf8e.js";import{c as n}from"./shared-4e709717.js";import{C as o,a as l}from"./shared-7f47c677.js";import"./shared-c5fe5675.js";import"./shared-5a445ebd.js";import"./shared-10f92654.js";import"./shared-b590adb2.js";import"./shared-3a329baf.js";import"./shared-f628a723.js";import{G as d}from"./shared-aa678ec4.js";import"./shared-2b1c3f7a.js";import{P as c}from"./shared-d7b778b7.js";import{C as h}from"./shared-de790de9.js";import{N as m}from"./shared-eb900735.js";import{i as p}from"./shared-d3bf9ac0.js";import"./shared-9e18688d.js";import"./shared-a19ce620.js";import"./shared-50c6daa1.js";import"./shared-a8cf402a.js";import"./shared-445dda5a.js";import"./shared-64657919.js";import"./shared-11c2efc8.js";import"./shared-a89cb472.js";import"./shared-509a2f52.js";import"./shared-698c9002.js";import"./shared-83a12835.js";import"./shared-d6276c83.js";let u,f,$,b,v,y,_,x,g,j=e=>e;const S=s(i(h(r(m,"email-template-form"))));class T extends S{constructor(){super(...arguments),this.templates={},this.__cacheState="idle",this.__contentChoice="default",this.__templateLanguageOptions=[{label:"Nunjucks",value:"nunjucks"},{label:"Handlebars",value:"handlebars"},{label:"Pug",value:"pug"},{label:"Twig",value:"twig"},{label:"EJS",value:"ejs"}]}static get properties(){return e(e({},super.properties),{},{__cacheState:{attribute:!1},__contentChoice:{attribute:!1}})}static get styles(){return[...super.styles,t(u||(u=j`#cached-content::part(input-field){max-height:15em}`))]}static get scopedElements(){return{"foxy-internal-select-control":customElements.get("foxy-internal-select-control"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-text-control":customElements.get("foxy-internal-text-control"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"vaadin-button":customElements.get("vaadin-button"),"x-property-table":c,"x-choice":o,"x-group":d}}render(){var e,t,s;const{hiddenSelector:i,href:r,lang:o,ns:l}=this,d=r?"delete":"create",c=this.in("busy"),h=this.in("fail");return a(f||(f=j` <div class="space-y-m"> ${0} <foxy-internal-text-control infer="subject"></foxy-internal-text-control> ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),i.matches("description",!0)?"":this.__renderDescription(),"Email Receipt Template"===(null===(e=this.data)||void 0===e?void 0:e.description)?"":a($||($=j` <foxy-internal-select-control infer="template-language" .options="${0}"> </foxy-internal-select-control> `),this.__templateLanguageOptions),i.matches("content",!0)?"":this.__renderContent(),i.matches("timestamps",!0)||!r?"":this.__renderTimestamps(),i.matches(d)?"":this.__renderAction(d),n({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!c&&!h}),h?"error":c?"busy":"empty",o,l,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__renderDescription(){var e,t;const s="description";return a(b||(b=j` <div> ${0} <vaadin-text-field data-testid="${0}" class="w-full mb-s" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${s}:before`),s,this.t(s),!this.in("idle")||this.disabledSelector.matches(s),this.readonlySelector.matches(s),null!==(t=null===(e=this.form)||void 0===e?void 0:e.description)&&void 0!==t?t:"",(e=>"Enter"===e.key&&this.submit()),(e=>{this.edit({description:e.currentTarget.value})}),this.renderTemplateOrSlot(`${s}:after`))}__renderContent(){return a(v||(v=j` <div data-testid="content"> ${0} <div class="space-y-l"> ${0} ${0} </div> ${0} </div> `),this.renderTemplateOrSlot("content:before"),this.__renderContentVariant("content_text_url","content_text","text_template"),this.__renderContentVariant("content_html_url","content_html","html_template"),this.renderTemplateOrSlot("content:after"))}__renderContentVariant(e,t,s){var i;const r=!this.in("idle")||this.disabledSelector.matches("content",!0),o=this.readonlySelector.matches("content",!0),d=this.form[e]?"url":this.form[t]?"clipboard":this.__contentChoice;return a(y||(y=j` <x-group frame> <foxy-i18n class="${0}" lang="${0}" slot="header" key="${0}" ns="${0}"> </foxy-i18n> <x-choice data-testid="${0}-type" .value="${0}" .items="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> ${0} <div style="--lumo-border-radius:var(--lumo-border-radius-s)" slot="url" ?hidden="${0}"> <div class="flex items-center mt-0 mb-m"> <vaadin-text-field data-testid="${0}-url" value="${0}" class="mr-s flex-grow" ?readonly="${0}" ?disabled="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> <vaadin-button data-testid="${0}-cache" class="relative" ?disabled="${0}" ?hidden="${0}" @click="${0}"> <foxy-i18n class="${0}" lang="${0}" key="cache" ns="${0}"> </foxy-i18n> <div class="${0}"> <foxy-spinner layout="no-label" class="m-auto" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> </vaadin-button> </div> </div> <div style="--lumo-border-radius:var(--lumo-border-radius-s)" slot="clipboard" ?hidden="${0}"> <vaadin-text-area data-testid="${0}-clipboard" id="cached-content" class="w-full mb-m" ?readonly="${0}" ?disabled="${0}" .value="${0}" @input="${0}"> </vaadin-text-area> </div> </x-choice> </x-group> `),n({"transition-colors":!0,"text-disabled":r}),this.lang,s,this.ns,t.replace("_","-"),d,["default","url","clipboard"],o,r,(a=>{a instanceof l&&(this.edit({[t]:"",[e]:""}),this.__contentChoice=a.detail)}),["default","url","clipboard"].map((e=>a(_||(_=j` <div slot="${0}-label" class="py-s leading-s"> <foxy-i18n class="block" lang="${0}" key="template_${0}" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-s opacity-70" lang="${0}" key="template_${0}_explainer" ns="${0}"> </foxy-i18n> </div> `),e,this.lang,e,this.ns,this.lang,e,this.ns))),"url"!==d,t.replace("_","-"),p(this.form[e]),o,r,(e=>"Enter"===e.key&&this.submit()),(a=>{const s=a.currentTarget.value;this.edit({[t]:"",[e]:s})}),t.replace("_","-"),r||"busy"===this.__cacheState,o||this.form[e]!==(null===(i=this.data)||void 0===i?void 0:i[e]),this.__cache,n({"relative transition-opacity":!0,"opacity-0":"idle"!==this.__cacheState}),this.lang,this.ns,n({"absolute inset-0 flex transition-opacity":!0,"opacity-0":"idle"===this.__cacheState}),"fail"===this.__cacheState?"error":"busy",this.lang,this.ns,"clipboard"!==d,t.replace("_","-"),o,r,this.form[t],(a=>{const s=a.currentTarget.value;this.edit({[t]:s,[e]:""})}))}__renderTimestamps(){const e="timestamps";return a(x||(x=j` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot(`${e}:after`))}__renderAction(e){const{disabledSelector:t,href:s,lang:i,ns:r}=this,n=this.in({idle:{template:{dirty:"valid"}}}),o=this.in({idle:{snapshot:{dirty:"valid"}}}),l=!this.in("idle")||t.matches(e,!0),d=n||o;return a(g||(g=j` <div> ${0} <foxy-internal-confirm-dialog message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" data-testid="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0}" data-testid="${0}" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="${0}" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),i,r,(e=>{e.detail.cancelled||this.delete()}),this.in("idle")?s?"error":"primary success":"",e,this.in({idle:"template"})&&!d||l,(t=>{if("delete"===e){this.renderRoot.querySelector("#confirm").show(t.currentTarget)}else this.submit()}),r,e,i,this.renderTemplateOrSlot(`${e}:after`))}async __cache(){var e,t;this.__cacheState="busy";try{const a=null!==(t=null===(e=this.data)||void 0===e?void 0:e._links["fx:cache"].href)&&void 0!==t?t:"",s=await new T.API(this).fetch(a,{method:"POST"});this.__cacheState=s.ok?"idle":"fail"}catch(e){this.__cacheState="fail"}}}customElements.define("foxy-email-template-form",T);export{T as EmailTemplateForm};
1
+ import"./shared-57c6cfd1.js";import"./shared-3b8b5eda.js";import"./shared-c0ec65fa.js";import"./shared-590d8dae.js";import"./shared-15c94a90.js";import"./shared-1a6fb0f3.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-b137f17a.js";import{_ as e}from"./shared-98755831.js";import{c as t,h as a}from"./shared-7f33a83a.js";import"./shared-24a762c1.js";import"./shared-9e8bff76.js";import"./shared-950875f2.js";import{S as s,T as i,a as r}from"./shared-e9c81269.js";import{c as n}from"./shared-4e709717.js";import{C as o,a as l}from"./shared-014f1513.js";import"./shared-bc36bc72.js";import"./shared-9725c399.js";import"./shared-c5106979.js";import"./shared-1f4b9c6b.js";import"./shared-f8e3be56.js";import"./shared-178f7222.js";import{G as d}from"./shared-e2f4962c.js";import"./shared-b2474263.js";import{P as c}from"./shared-9271a609.js";import{C as h}from"./shared-de790de9.js";import{N as m}from"./shared-eb900735.js";import{i as p}from"./shared-d3bf9ac0.js";import"./shared-533c3914.js";import"./shared-06c64816.js";import"./shared-38ed7905.js";import"./shared-a8cf402a.js";import"./shared-668947de.js";import"./shared-64657919.js";import"./shared-11c2efc8.js";import"./shared-a89cb472.js";import"./shared-509a2f52.js";import"./shared-03858aee.js";import"./shared-5425e3d3.js";import"./shared-d6276c83.js";let f,u,$,v,y,b,_,x,g,j=e=>e;const S=s(i(h(r(m,"email-template-form"))));class T extends S{constructor(){super(...arguments),this.templates={},this.__cacheState="idle",this.__contentChoice="default",this.__templateLanguageOptions=[{label:"Nunjucks",value:"nunjucks"},{label:"Handlebars",value:"handlebars"},{label:"Pug",value:"pug"},{label:"Twig",value:"twig"},{label:"EJS",value:"ejs"}]}static get properties(){return e(e({},super.properties),{},{__cacheState:{attribute:!1},__contentChoice:{attribute:!1}})}static get styles(){return[...super.styles,t(f||(f=j`#cached-content::part(input-field){max-height:15em}`))]}static get scopedElements(){return{"foxy-internal-select-control":customElements.get("foxy-internal-select-control"),"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"foxy-internal-text-control":customElements.get("foxy-internal-text-control"),"foxy-internal-sandbox":customElements.get("foxy-internal-sandbox"),"foxy-spinner":customElements.get("foxy-spinner"),"foxy-i18n":customElements.get("foxy-i18n"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-text-area":customElements.get("vaadin-text-area"),"vaadin-button":customElements.get("vaadin-button"),"x-property-table":c,"x-choice":o,"x-group":d}}render(){var e,t,s;const{hiddenSelector:i,href:r,lang:o,ns:l}=this,d=r?"delete":"create",c=this.in("busy"),h=this.in("fail");return a(u||(u=j` <div class="space-y-m"> ${0} <foxy-internal-text-control infer="subject"></foxy-internal-text-control> ${0} ${0} ${0} ${0} <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),i.matches("description",!0)?"":this.__renderDescription(),"Email Receipt Template"===(null===(e=this.data)||void 0===e?void 0:e.description)?"":a($||($=j` <foxy-internal-select-control infer="template-language" .options="${0}"> </foxy-internal-select-control> `),this.__templateLanguageOptions),i.matches("content",!0)?"":this.__renderContent(),i.matches("timestamps",!0)||!r?"":this.__renderTimestamps(),i.matches(d)?"":this.__renderAction(d),n({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!c&&!h}),h?"error":c?"busy":"empty",o,l,null!==(s=null===(t=customElements.get("foxy-spinner"))||void 0===t?void 0:t.defaultNS)&&void 0!==s?s:"")}__renderDescription(){var e,t;const s="description";return a(v||(v=j` <div> ${0} <vaadin-text-field data-testid="${0}" class="w-full mb-s" label="${0}" ?disabled="${0}" ?readonly="${0}" .value="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> ${0} </div> `),this.renderTemplateOrSlot(`${s}:before`),s,this.t(s),!this.in("idle")||this.disabledSelector.matches(s),this.readonlySelector.matches(s),null!==(t=null===(e=this.form)||void 0===e?void 0:e.description)&&void 0!==t?t:"",(e=>"Enter"===e.key&&this.submit()),(e=>{this.edit({description:e.currentTarget.value})}),this.renderTemplateOrSlot(`${s}:after`))}__renderContent(){return a(y||(y=j` <div data-testid="content"> ${0} <div class="space-y-l"> ${0} ${0} </div> ${0} </div> `),this.renderTemplateOrSlot("content:before"),this.__renderContentVariant("content_text_url","content_text","text_template"),this.__renderContentVariant("content_html_url","content_html","html_template"),this.renderTemplateOrSlot("content:after"))}__renderContentVariant(e,t,s){var i;const r=!this.in("idle")||this.disabledSelector.matches("content",!0),o=this.readonlySelector.matches("content",!0),d=this.form[e]?"url":this.form[t]?"clipboard":this.__contentChoice;return a(b||(b=j` <x-group frame> <foxy-i18n class="${0}" lang="${0}" slot="header" key="${0}" ns="${0}"> </foxy-i18n> <x-choice data-testid="${0}-type" .value="${0}" .items="${0}" ?readonly="${0}" ?disabled="${0}" @change="${0}"> ${0} <div style="--lumo-border-radius:var(--lumo-border-radius-s)" slot="url" ?hidden="${0}"> <div class="flex items-center mt-0 mb-m"> <vaadin-text-field data-testid="${0}-url" value="${0}" class="mr-s flex-grow" ?readonly="${0}" ?disabled="${0}" @keydown="${0}" @input="${0}"> </vaadin-text-field> <vaadin-button data-testid="${0}-cache" class="relative" ?disabled="${0}" ?hidden="${0}" @click="${0}"> <foxy-i18n class="${0}" lang="${0}" key="cache" ns="${0}"> </foxy-i18n> <div class="${0}"> <foxy-spinner layout="no-label" class="m-auto" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> </vaadin-button> </div> </div> <div style="--lumo-border-radius:var(--lumo-border-radius-s)" slot="clipboard" ?hidden="${0}"> <vaadin-text-area data-testid="${0}-clipboard" id="cached-content" class="w-full mb-m" ?readonly="${0}" ?disabled="${0}" .value="${0}" @input="${0}"> </vaadin-text-area> </div> </x-choice> </x-group> `),n({"transition-colors":!0,"text-disabled":r}),this.lang,s,this.ns,t.replace("_","-"),d,["default","url","clipboard"],o,r,(a=>{a instanceof l&&(this.edit({[t]:"",[e]:""}),this.__contentChoice=a.detail)}),["default","url","clipboard"].map((e=>a(_||(_=j` <div slot="${0}-label" class="py-s leading-s"> <foxy-i18n class="block" lang="${0}" key="template_${0}" ns="${0}"> </foxy-i18n> <foxy-i18n class="block text-s opacity-70" lang="${0}" key="template_${0}_explainer" ns="${0}"> </foxy-i18n> </div> `),e,this.lang,e,this.ns,this.lang,e,this.ns))),"url"!==d,t.replace("_","-"),p(this.form[e]),o,r,(e=>"Enter"===e.key&&this.submit()),(a=>{const s=a.currentTarget.value;this.edit({[t]:"",[e]:s})}),t.replace("_","-"),r||"busy"===this.__cacheState,o||this.form[e]!==(null===(i=this.data)||void 0===i?void 0:i[e]),this.__cache,n({"relative transition-opacity":!0,"opacity-0":"idle"!==this.__cacheState}),this.lang,this.ns,n({"absolute inset-0 flex transition-opacity":!0,"opacity-0":"idle"===this.__cacheState}),"fail"===this.__cacheState?"error":"busy",this.lang,this.ns,"clipboard"!==d,t.replace("_","-"),o,r,this.form[t],(a=>{const s=a.currentTarget.value;this.edit({[t]:s,[e]:""})}))}__renderTimestamps(){const e="timestamps";return a(x||(x=j` <div> ${0} <x-property-table data-testid="timestamps" .items="${0}"> </x-property-table> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),["date_modified","date_created"].map((e=>{var t;return{name:this.t(e),value:(null===(t=this.data)||void 0===t?void 0:t[e])?this.t("date",{value:new Date(this.data[e])}):""}})),this.renderTemplateOrSlot(`${e}:after`))}__renderAction(e){const{disabledSelector:t,href:s,lang:i,ns:r}=this,n=this.in({idle:{template:{dirty:"valid"}}}),o=this.in({idle:{snapshot:{dirty:"valid"}}}),l=!this.in("idle")||t.matches(e,!0),d=n||o;return a(g||(g=j` <div> ${0} <foxy-internal-confirm-dialog message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" data-testid="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0}" data-testid="${0}" ?disabled="${0}" @click="${0}"> <foxy-i18n ns="${0}" key="${0}" lang="${0}"></foxy-i18n> </vaadin-button> ${0} </div> `),this.renderTemplateOrSlot(`${e}:before`),i,r,(e=>{e.detail.cancelled||this.delete()}),this.in("idle")?s?"error":"primary success":"",e,this.in({idle:"template"})&&!d||l,(t=>{if("delete"===e){this.renderRoot.querySelector("#confirm").show(t.currentTarget)}else this.submit()}),r,e,i,this.renderTemplateOrSlot(`${e}:after`))}async __cache(){var e,t;this.__cacheState="busy";try{const a=null!==(t=null===(e=this.data)||void 0===e?void 0:e._links["fx:cache"].href)&&void 0!==t?t:"",s=await new T.API(this).fetch(a,{method:"POST"});this.__cacheState=s.ok?"idle":"fail"}catch(e){this.__cacheState="fail"}}}customElements.define("foxy-email-template-form",T);export{T as EmailTemplateForm};
@@ -1 +1 @@
1
- import{am as e,_ as s}from"./shared-98755831.js";import{L as t,c as r,h as a}from"./shared-7f33a83a.js";import{T as i,a as n,S as o}from"./shared-14f0cf8e.js";import{c as l}from"./shared-4e709717.js";import{G as d}from"./shared-aa678ec4.js";import"./foxy-nucleon-element.js";import{N as c}from"./shared-eb900735.js";import"./shared-509a2f52.js";import"./shared-64657919.js";import"./shared-d6276c83.js";import"./shared-a8cf402a.js";import"./shared-a89cb472.js";let p,u,m,f=e=>e;class x extends(i(t)){constructor(){super(...arguments),this.data=[]}static get properties(){return{data:{type:Array}}}static get styles(){return[super.styles,r(p||(p=f`dd,dt{display:inline-block;overflow:hidden;vertical-align:top;overflow-wrap:anywhere}dt{min-width:calc(5 * var(--lumo-size-l));padding-right:.5em}dd{max-width:calc(15 * var(--lumo-size-l));min-width:calc(10 * var(--lumo-size-l))}`))]}render(){return a(u||(u=f` <dl class="space-y-s"> ${0} </dl> `),this.data.map((e=>{const s=String(e[1]).trim();return a(m||(m=f` <div> <dt class="text-secondary truncate">${0}</dt> <dd class="${0}">${0}</dd> </div> `),e[0],l({"text-tertiary":!s}),s||"–")})))}}let y,h,g=e=>e;const v=["_links","_embedded"],$=n(i(o(c)));class _ extends ${static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x}}render(){if(this.in({idle:"snapshot"})){const s=this.data,t=e(s,v);return a(y||(y=g` <x-data-list aria-live="polite" aria-busy="false" class="leading-s text-s" data="${0}"> </x-data-list> `),JSON.stringify(Array.from(Object.entries(t))))}const s=this.in("busy");return a(h||(h=g` <div aria-live="polite" aria-busy="${0}" data-testid="wrapper" class="flex justify-center"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> `),s,this.in("fail")?"error":s?"busy":"empty",this.lang,this.ns)}}let b,j,w,S,k,E,O,N,T,z=e=>e;const G=n(i(o(c)),"error-entry-card");class J extends G{constructor(){super(...arguments),this.open=!1}static get scopedElements(){return{"x-resource-viewer":_,"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x,"iron-icon":customElements.get("iron-icon"),"foxy-i18n":customElements.get("foxy-i18n"),"x-group":d}}static get properties(){return s(s({},super.properties),{},{open:{type:Boolean,reflect:!0}})}render(){var e,s;const t=this.data,r=this.in("busy");if(t){const{hide_error:e}=t,{open:s}=this;return a(b||(b=z` <details aria-busy="${0}" aria-live="polite" class="text-body w-full" ?open="${0}" @toggle="${0}"> <summary class="rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2"> <div style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="${0}"> ${0} </div> </summary> ${0} </details> `),r,s,this.__handleToggle,l({"border-l-2 leading-s relative cursor-pointer":!0,"border-contrast":e&&!s,"border-primary":!e,"border-error":e&&s,"h-l":!s}),this.__renderSummary(t),s?this.__renderDetails(t):"")}return a(j||(j=z` <div aria-busy="${0}" aria-live="polite" style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> `),r,r?"busy":this.in("fail")?"error":"empty",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__renderGetOrPostValues(e,s){const t=e||s,r=new URLSearchParams(this.__decodeHtml(t));return a(w||(w=z` <div class="relative leading-xs pt-s"> <div class="absolute font-medium right-0 text-tertiary text-xs top-0 mt-s">${0}</div> <x-data-list data="${0}"></x-data-list> </div> `),e?"GET":"POST",JSON.stringify(Array.from(r.entries())))}__renderReferrer(e){return a(S||(S=z` <span class="text-secondary">Navigated from</span> <a target="_blank" class="font-medium text-primary hover-underline" href="${0}" rel="nofollow noopener noreferrer"> ${0} </a> `),e,e)}__renderSummary(e){return a(k||(k=z` <div class="text-s absolute right-0 top-0 text-tertiary"> <iron-icon icon="icons:expand-${0}"></iron-icon> </div> <div class="text-s mb-xs ${0}"> <foxy-i18n options="${0}" lang="${0}" key="date" ns="${0}"> </foxy-i18n> <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> </div> <p class="${0} overflow-hidden font-medium"> ${0} </p> `),this.open?"less":"more",e.hide_error?"text-error":"text-primary",JSON.stringify({value:e.date_created}),this.lang,this.ns,JSON.stringify({value:e.date_created}),this.lang,this.ns,this.open?"":"truncate",e.error_message)}__renderDetails(e){return a(E||(E=z` <div class="space-y-m pt-m"> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="request" ns="${0}"></foxy-i18n> <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s"> <p> <span class="block font-medium">${0}</span> ${0} </p> ${0} </div> </x-group> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="client" ns="${0}"></foxy-i18n> <div class="text-s flex flex-col mx-xs p-s"> <span class="font-medium"> ${0} ${0} </span> ${0} </div> </x-group> ${0} </div> `),this.lang,this.ns,e.url,e.referrer?this.__renderReferrer(e.referrer):"",e.get_values||e.post_values?this.__renderGetOrPostValues(e.get_values,e.post_values):"",this.lang,this.ns,e.ip_address,e.ip_country?a(O||(O=z`<span class="text-tertiary"> • </span>${0}`),e.ip_country):"",e.user_agent?a(N||(N=z`<span class="text-secondary">${0}</span>`),e.user_agent):"",Object.entries(e._links).map((([e,s])=>["self","fx:store","curies"].includes(e)?"":a(T||(T=z` <x-group frame> <foxy-i18n slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-resource-viewer class="p-s mx-xs" href="${0}" lang="${0}" ns="${0}"> </x-resource-viewer> </x-group> `),this.lang,e.substr(3),this.ns,s.href,this.lang,this.ns))))}__handleToggle(e){var s;const t=e.target;t.open&&!1===(null===(s=this.data)||void 0===s?void 0:s.hide_error)&&(this.edit({hide_error:!0}),this.submit()),this.open=t.open}__decodeHtml(e){const s=document.createElement("textarea");return s.innerHTML=e,s.value}}customElements.define("foxy-error-entry-card",J);export{J as ErrorEntryCard};
1
+ import{am as e,_ as s}from"./shared-98755831.js";import{L as t,c as r,h as a}from"./shared-7f33a83a.js";import{T as i,a as n,S as o}from"./shared-e9c81269.js";import{c as l}from"./shared-4e709717.js";import{G as d}from"./shared-e2f4962c.js";import"./foxy-nucleon-element.js";import{N as c}from"./shared-eb900735.js";import"./shared-509a2f52.js";import"./shared-64657919.js";import"./shared-d6276c83.js";import"./shared-a8cf402a.js";import"./shared-a89cb472.js";let p,u,m,f=e=>e;class x extends(i(t)){constructor(){super(...arguments),this.data=[]}static get properties(){return{data:{type:Array}}}static get styles(){return[super.styles,r(p||(p=f`dd,dt{display:inline-block;overflow:hidden;vertical-align:top;overflow-wrap:anywhere}dt{min-width:calc(5 * var(--lumo-size-l));padding-right:.5em}dd{max-width:calc(15 * var(--lumo-size-l));min-width:calc(10 * var(--lumo-size-l))}`))]}render(){return a(u||(u=f` <dl class="space-y-s"> ${0} </dl> `),this.data.map((e=>{const s=String(e[1]).trim();return a(m||(m=f` <div> <dt class="text-secondary truncate">${0}</dt> <dd class="${0}">${0}</dd> </div> `),e[0],l({"text-tertiary":!s}),s||"–")})))}}let y,h,g=e=>e;const v=["_links","_embedded"],$=n(i(o(c)));class _ extends ${static get scopedElements(){return{"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x}}render(){if(this.in({idle:"snapshot"})){const s=this.data,t=e(s,v);return a(y||(y=g` <x-data-list aria-live="polite" aria-busy="false" class="leading-s text-s" data="${0}"> </x-data-list> `),JSON.stringify(Array.from(Object.entries(t))))}const s=this.in("busy");return a(h||(h=g` <div aria-live="polite" aria-busy="${0}" data-testid="wrapper" class="flex justify-center"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0}"> </foxy-spinner> </div> `),s,this.in("fail")?"error":s?"busy":"empty",this.lang,this.ns)}}let b,j,w,S,k,E,O,N,T,z=e=>e;const G=n(i(o(c)),"error-entry-card");class J extends G{constructor(){super(...arguments),this.open=!1}static get scopedElements(){return{"x-resource-viewer":_,"foxy-spinner":customElements.get("foxy-spinner"),"x-data-list":x,"iron-icon":customElements.get("iron-icon"),"foxy-i18n":customElements.get("foxy-i18n"),"x-group":d}}static get properties(){return s(s({},super.properties),{},{open:{type:Boolean,reflect:!0}})}render(){var e,s;const t=this.data,r=this.in("busy");if(t){const{hide_error:e}=t,{open:s}=this;return a(b||(b=z` <details aria-busy="${0}" aria-live="polite" class="text-body w-full" ?open="${0}" @toggle="${0}"> <summary class="rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2"> <div style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="${0}"> ${0} </div> </summary> ${0} </details> `),r,s,this.__handleToggle,l({"border-l-2 leading-s relative cursor-pointer":!0,"border-contrast":e&&!s,"border-primary":!e,"border-error":e&&s,"h-l":!s}),this.__renderSummary(t),s?this.__renderDetails(t):"")}return a(j||(j=z` <div aria-busy="${0}" aria-live="polite" style="padding-left:calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)" class="flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l"> <foxy-spinner data-testid="spinner" layout="horizontal" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> `),r,r?"busy":this.in("fail")?"error":"empty",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__renderGetOrPostValues(e,s){const t=e||s,r=new URLSearchParams(this.__decodeHtml(t));return a(w||(w=z` <div class="relative leading-xs pt-s"> <div class="absolute font-medium right-0 text-tertiary text-xs top-0 mt-s">${0}</div> <x-data-list data="${0}"></x-data-list> </div> `),e?"GET":"POST",JSON.stringify(Array.from(r.entries())))}__renderReferrer(e){return a(S||(S=z` <span class="text-secondary">Navigated from</span> <a target="_blank" class="font-medium text-primary hover-underline" href="${0}" rel="nofollow noopener noreferrer"> ${0} </a> `),e,e)}__renderSummary(e){return a(k||(k=z` <div class="text-s absolute right-0 top-0 text-tertiary"> <iron-icon icon="icons:expand-${0}"></iron-icon> </div> <div class="text-s mb-xs ${0}"> <foxy-i18n options="${0}" lang="${0}" key="date" ns="${0}"> </foxy-i18n> <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> </div> <p class="${0} overflow-hidden font-medium"> ${0} </p> `),this.open?"less":"more",e.hide_error?"text-error":"text-primary",JSON.stringify({value:e.date_created}),this.lang,this.ns,JSON.stringify({value:e.date_created}),this.lang,this.ns,this.open?"":"truncate",e.error_message)}__renderDetails(e){return a(E||(E=z` <div class="space-y-m pt-m"> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="request" ns="${0}"></foxy-i18n> <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s"> <p> <span class="block font-medium">${0}</span> ${0} </p> ${0} </div> </x-group> <x-group frame> <foxy-i18n slot="header" lang="${0}" key="client" ns="${0}"></foxy-i18n> <div class="text-s flex flex-col mx-xs p-s"> <span class="font-medium"> ${0} ${0} </span> ${0} </div> </x-group> ${0} </div> `),this.lang,this.ns,e.url,e.referrer?this.__renderReferrer(e.referrer):"",e.get_values||e.post_values?this.__renderGetOrPostValues(e.get_values,e.post_values):"",this.lang,this.ns,e.ip_address,e.ip_country?a(O||(O=z`<span class="text-tertiary"> • </span>${0}`),e.ip_country):"",e.user_agent?a(N||(N=z`<span class="text-secondary">${0}</span>`),e.user_agent):"",Object.entries(e._links).map((([e,s])=>["self","fx:store","curies"].includes(e)?"":a(T||(T=z` <x-group frame> <foxy-i18n slot="header" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <x-resource-viewer class="p-s mx-xs" href="${0}" lang="${0}" ns="${0}"> </x-resource-viewer> </x-group> `),this.lang,e.substr(3),this.ns,s.href,this.lang,this.ns))))}__handleToggle(e){var s;const t=e.target;t.open&&!1===(null===(s=this.data)||void 0===s?void 0:s.hide_error)&&(this.edit({hide_error:!0}),this.submit()),this.open=t.open}__decodeHtml(e){const s=document.createElement("textarea");return s.innerHTML=e,s.value}}customElements.define("foxy-error-entry-card",J);export{J as ErrorEntryCard};