@foxy.io/elements 1.16.0-beta.1 → 1.16.0-beta.12

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 (552) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-api-browser.js +5 -0
  5. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-card.js +1 -1
  7. package/dist/cdn/foxy-attribute-form.js +1 -1
  8. package/dist/cdn/foxy-cancellation-form.js +1 -1
  9. package/dist/cdn/foxy-collection-page.js +1 -1
  10. package/dist/cdn/foxy-collection-pages.js +1 -1
  11. package/dist/cdn/foxy-copy-to-clipboard.js +1 -0
  12. package/dist/cdn/foxy-coupon-card.js +1 -1
  13. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  15. package/dist/cdn/foxy-coupon-detail-card.js +1 -0
  16. package/dist/cdn/foxy-coupon-form.js +1 -1
  17. package/dist/cdn/foxy-custom-field-card.js +1 -1
  18. package/dist/cdn/foxy-custom-field-form.js +1 -1
  19. package/dist/cdn/foxy-customer-api.js +1 -1
  20. package/dist/cdn/foxy-customer-card.js +1 -1
  21. package/dist/cdn/foxy-customer-form.js +1 -1
  22. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  23. package/dist/cdn/foxy-customer-portal.js +15 -15
  24. package/dist/cdn/foxy-customer.js +6 -6
  25. package/dist/cdn/foxy-customers-table.js +1 -1
  26. package/dist/cdn/foxy-discount-builder.js +1 -0
  27. package/dist/cdn/foxy-discount-card.js +1 -1
  28. package/dist/cdn/foxy-discount-detail-card.js +1 -0
  29. package/dist/cdn/foxy-donation.js +1 -1
  30. package/dist/cdn/foxy-email-template-form.js +1 -1
  31. package/dist/cdn/foxy-error-entry-card.js +1 -1
  32. package/dist/cdn/foxy-form-dialog.js +1 -1
  33. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  34. package/dist/cdn/foxy-gift-card-card.js +1 -1
  35. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  36. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  37. package/dist/cdn/foxy-gift-card-form.js +1 -1
  38. package/dist/cdn/foxy-i18n.js +1 -1
  39. package/dist/cdn/foxy-item-card.js +1 -0
  40. package/dist/cdn/foxy-item-form.js +1 -0
  41. package/dist/cdn/foxy-item-option-card.js +1 -0
  42. package/dist/cdn/foxy-item-option-form.js +1 -0
  43. package/dist/cdn/foxy-items-form.js +1 -1
  44. package/dist/cdn/foxy-nucleon-element.js +1 -1
  45. package/dist/cdn/foxy-pagination.js +1 -1
  46. package/dist/cdn/foxy-payment-card.js +1 -1
  47. package/dist/cdn/foxy-payment-method-card.js +1 -1
  48. package/dist/cdn/foxy-query-builder.js +1 -1
  49. package/dist/cdn/foxy-report-form.js +15 -15
  50. package/dist/cdn/foxy-reports-table.js +6 -6
  51. package/dist/cdn/foxy-shipment-card.js +13 -0
  52. package/dist/cdn/foxy-sign-in-form.js +1 -1
  53. package/dist/cdn/foxy-spinner.js +2 -2
  54. package/dist/cdn/foxy-subscription-card.js +1 -1
  55. package/dist/cdn/foxy-subscription-form.js +4 -4
  56. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  57. package/dist/cdn/foxy-swipe-actions.js +1 -0
  58. package/dist/cdn/foxy-table.js +1 -1
  59. package/dist/cdn/foxy-tax-card.js +1 -1
  60. package/dist/cdn/foxy-tax-form.js +1 -1
  61. package/dist/cdn/foxy-template-config-form.js +1 -1
  62. package/dist/cdn/foxy-template-form.js +1 -1
  63. package/dist/cdn/foxy-transaction-card.js +1 -1
  64. package/dist/cdn/foxy-transaction.js +1 -0
  65. package/dist/cdn/foxy-transactions-table.js +1 -1
  66. package/dist/cdn/foxy-user-form.js +1 -1
  67. package/dist/cdn/foxy-users-table.js +1 -1
  68. package/dist/cdn/foxy-webhook-card.js +1 -0
  69. package/dist/cdn/foxy-webhook-form.js +318 -0
  70. package/dist/cdn/foxy-webhook-log-card.js +1 -0
  71. package/dist/cdn/foxy-webhook-status-card.js +1 -0
  72. package/dist/cdn/shared-04c2479b.js +1 -0
  73. package/dist/cdn/shared-0d72f6f1.js +9 -0
  74. package/dist/cdn/{shared-218ba06e.js → shared-0eb966c5.js} +1 -1
  75. package/dist/cdn/shared-0fbac4a9.js +1 -0
  76. package/dist/cdn/{shared-3821923d.js → shared-1424c48d.js} +1 -1
  77. package/dist/cdn/{shared-59e44f29.js → shared-1bbd9b73.js} +1 -1
  78. package/dist/cdn/{shared-e8abe6c6.js → shared-1dc8edbe.js} +5 -5
  79. package/dist/cdn/{shared-07134f93.js → shared-22ba9566.js} +1 -1
  80. package/dist/cdn/shared-2394b415.js +1 -0
  81. package/dist/cdn/{shared-278a8b9d.js → shared-26980c97.js} +13 -13
  82. package/dist/cdn/{shared-448781f9.js → shared-26ce8d23.js} +1 -1
  83. package/dist/cdn/shared-3bcc3800.js +29 -0
  84. package/dist/cdn/{shared-7f0a9790.js → shared-45feee83.js} +1 -1
  85. package/dist/cdn/shared-52a534b9.js +1 -0
  86. package/dist/cdn/shared-57dd3cdb.js +1 -0
  87. package/dist/cdn/{shared-15f2aeb5.js → shared-58a0bad5.js} +1 -1
  88. package/dist/cdn/{shared-ee53f7e5.js → shared-5aab96dd.js} +10 -10
  89. package/dist/cdn/shared-5d5c1295.js +1 -0
  90. package/dist/cdn/{shared-e367b5fc.js → shared-5df36a69.js} +9 -9
  91. package/dist/cdn/{shared-d9aed64e.js → shared-61893181.js} +1 -1
  92. package/dist/cdn/{shared-a81a95e8.js → shared-61b5e5e2.js} +4 -4
  93. package/dist/cdn/shared-62539ace.js +1 -0
  94. package/dist/cdn/{shared-7f463a38.js → shared-69041c94.js} +7 -7
  95. package/dist/cdn/shared-6a4f3dd7.js +1 -0
  96. package/dist/cdn/shared-7c8bb60c.js +1 -0
  97. package/dist/cdn/shared-80ca55ed.js +1 -0
  98. package/dist/cdn/{shared-e5937698.js → shared-85f1c22d.js} +14 -19
  99. package/dist/cdn/{shared-5535f38f.js → shared-92327224.js} +2 -2
  100. package/dist/cdn/shared-9419901c.js +1 -0
  101. package/dist/cdn/{shared-cb71ddbc.js → shared-950db2d5.js} +3 -3
  102. package/dist/cdn/{shared-6d45a07b.js → shared-9803aa7c.js} +1 -1
  103. package/dist/cdn/shared-98497473.js +1 -0
  104. package/dist/cdn/{shared-b0f0e8b5.js → shared-99940888.js} +1 -1
  105. package/dist/cdn/{shared-b710881a.js → shared-a0c6a159.js} +2 -2
  106. package/dist/cdn/{shared-24064bd3.js → shared-a525522f.js} +1 -1
  107. package/dist/cdn/{shared-31166bdc.js → shared-abe7759b.js} +1 -1
  108. package/dist/cdn/shared-ac44429d.js +1 -0
  109. package/dist/cdn/{shared-666e8a90.js → shared-ad0158dd.js} +1 -1
  110. package/dist/cdn/{shared-5d169043.js → shared-adc4bb5b.js} +1 -1
  111. package/dist/cdn/{shared-bf6c685e.js → shared-afbb10c5.js} +1 -1
  112. package/dist/cdn/shared-b35522f2.js +1 -0
  113. package/dist/cdn/{shared-b20f463a.js → shared-bdb8e495.js} +2 -11
  114. package/dist/cdn/shared-bf51c28e.js +1 -0
  115. package/dist/cdn/shared-c5d932fe.js +12 -0
  116. package/dist/cdn/shared-d6353669.js +201 -0
  117. package/dist/cdn/shared-d996b713.js +1 -0
  118. package/dist/cdn/shared-dc73b9a5.js +159 -0
  119. package/dist/cdn/{shared-9221e6b2.js → shared-e1c1e8e2.js} +1 -1
  120. package/dist/cdn/shared-e9a4a204.js +1 -0
  121. package/dist/cdn/shared-ebb53e4e.js +1 -0
  122. package/dist/cdn/shared-ec2dd0c8.js +1 -0
  123. package/dist/cdn/shared-f3e32aee.js +1 -0
  124. package/dist/cdn/shared-f9f9ed5b.js +6 -0
  125. package/dist/cdn/shared-fadcb2e1.js +1 -0
  126. package/dist/cdn/shared-fd54992f.js +1 -0
  127. package/dist/cdn/translations/api-browser/en.json +31 -0
  128. package/dist/cdn/translations/copy-to-clipboard/en.json +6 -0
  129. package/dist/cdn/translations/coupon-form/en.json +21 -2
  130. package/dist/cdn/translations/discount-builder/en.json +14 -0
  131. package/dist/cdn/translations/gift-card-form/en.json +21 -0
  132. package/dist/cdn/translations/item-card/en.json +9 -0
  133. package/dist/cdn/translations/item-form/en.json +411 -0
  134. package/dist/cdn/translations/item-option-form/en.json +43 -0
  135. package/dist/cdn/translations/report-form/en.json +14 -2
  136. package/dist/cdn/translations/shipment-card/en.json +470 -0
  137. package/dist/cdn/translations/transaction/en.json +965 -0
  138. package/dist/cdn/translations/webhook-card/en.json +7 -0
  139. package/dist/cdn/translations/webhook-form/en.json +101 -0
  140. package/dist/cdn/translations/webhook-log-card/en.json +8 -0
  141. package/dist/cdn/translations/webhook-status-card/en.json +11 -0
  142. package/dist/elements/index.d.ts +1 -0
  143. package/dist/elements/index.js +2 -0
  144. package/dist/elements/index.js.map +1 -0
  145. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +22 -0
  146. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +79 -0
  147. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -0
  148. package/dist/elements/internal/InternalAsyncComboBoxControl/index.d.ts +4 -0
  149. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js +6 -0
  150. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js.map +1 -0
  151. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.d.ts +31 -0
  152. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js +140 -0
  153. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js.map +1 -0
  154. package/dist/elements/internal/InternalAsyncDetailsControl/index.d.ts +8 -0
  155. package/dist/elements/internal/InternalAsyncDetailsControl/index.js +10 -0
  156. package/dist/elements/internal/InternalAsyncDetailsControl/index.js.map +1 -0
  157. package/dist/elements/internal/InternalCard/InternalCard.d.ts +21 -0
  158. package/dist/elements/internal/InternalCard/InternalCard.js +53 -0
  159. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -0
  160. package/dist/elements/internal/InternalCard/index.d.ts +3 -0
  161. package/dist/elements/internal/InternalCard/index.js +5 -0
  162. package/dist/elements/internal/InternalCard/index.js.map +1 -0
  163. package/dist/elements/internal/InternalControl/InternalControl.d.ts +41 -0
  164. package/dist/elements/internal/InternalControl/InternalControl.js +74 -0
  165. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -0
  166. package/dist/elements/internal/InternalControl/index.d.ts +4 -0
  167. package/dist/elements/internal/InternalControl/index.js +6 -0
  168. package/dist/elements/internal/InternalControl/index.js.map +1 -0
  169. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.d.ts +22 -0
  170. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js +60 -0
  171. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js.map +1 -0
  172. package/dist/elements/internal/InternalCreateControl/index.d.ts +5 -0
  173. package/dist/elements/internal/InternalCreateControl/index.js +7 -0
  174. package/dist/elements/internal/InternalCreateControl/index.js.map +1 -0
  175. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +14 -0
  176. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +60 -0
  177. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -0
  178. package/dist/elements/internal/InternalDateControl/index.d.ts +4 -0
  179. package/dist/elements/internal/InternalDateControl/index.js +6 -0
  180. package/dist/elements/internal/InternalDateControl/index.js.map +1 -0
  181. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.d.ts +15 -0
  182. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js +51 -0
  183. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js.map +1 -0
  184. package/dist/elements/internal/InternalDeleteControl/index.d.ts +6 -0
  185. package/dist/elements/internal/InternalDeleteControl/index.js +8 -0
  186. package/dist/elements/internal/InternalDeleteControl/index.js.map +1 -0
  187. package/dist/elements/internal/InternalDetails/InternalDetails.d.ts +22 -0
  188. package/dist/elements/internal/InternalDetails/InternalDetails.js +71 -0
  189. package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -0
  190. package/dist/elements/internal/InternalDetails/index.d.ts +6 -0
  191. package/dist/elements/internal/InternalDetails/index.js +8 -0
  192. package/dist/elements/internal/InternalDetails/index.js.map +1 -0
  193. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +77 -0
  194. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +153 -0
  195. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -0
  196. package/dist/elements/internal/InternalEditableControl/index.d.ts +3 -0
  197. package/dist/elements/internal/InternalEditableControl/index.js +5 -0
  198. package/dist/elements/internal/InternalEditableControl/index.js.map +1 -0
  199. package/dist/elements/internal/InternalForm/InternalForm.d.ts +27 -0
  200. package/dist/elements/internal/InternalForm/InternalForm.js +65 -0
  201. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -0
  202. package/dist/elements/internal/InternalForm/index.d.ts +6 -0
  203. package/dist/elements/internal/InternalForm/index.js +8 -0
  204. package/dist/elements/internal/InternalForm/index.js.map +1 -0
  205. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +14 -0
  206. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +115 -0
  207. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -0
  208. package/dist/elements/internal/InternalFrequencyControl/index.d.ts +6 -0
  209. package/dist/elements/internal/InternalFrequencyControl/index.js +8 -0
  210. package/dist/elements/internal/InternalFrequencyControl/index.js.map +1 -0
  211. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +13 -0
  212. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +41 -0
  213. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -0
  214. package/dist/elements/internal/InternalIntegerControl/index.d.ts +4 -0
  215. package/dist/elements/internal/InternalIntegerControl/index.js +6 -0
  216. package/dist/elements/internal/InternalIntegerControl/index.js.map +1 -0
  217. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +13 -0
  218. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +41 -0
  219. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -0
  220. package/dist/elements/internal/InternalNumberControl/index.d.ts +4 -0
  221. package/dist/elements/internal/InternalNumberControl/index.js +6 -0
  222. package/dist/elements/internal/InternalNumberControl/index.js.map +1 -0
  223. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.d.ts +17 -0
  224. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +51 -0
  225. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -0
  226. package/dist/elements/internal/InternalRadioGroupControl/index.d.ts +6 -0
  227. package/dist/elements/internal/InternalRadioGroupControl/index.js +8 -0
  228. package/dist/elements/internal/InternalRadioGroupControl/index.js.map +1 -0
  229. package/dist/elements/internal/InternalRadioGroupControl/types.d.ts +6 -0
  230. package/dist/elements/internal/InternalRadioGroupControl/types.js +2 -0
  231. package/dist/elements/internal/InternalRadioGroupControl/types.js.map +1 -0
  232. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +13 -0
  233. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +40 -0
  234. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -0
  235. package/dist/elements/internal/InternalTextControl/index.d.ts +4 -0
  236. package/dist/elements/internal/InternalTextControl/index.js +6 -0
  237. package/dist/elements/internal/InternalTextControl/index.js.map +1 -0
  238. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +14 -0
  239. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +57 -0
  240. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -0
  241. package/dist/elements/internal/InternalTimestampsControl/index.d.ts +4 -0
  242. package/dist/elements/internal/InternalTimestampsControl/index.js +6 -0
  243. package/dist/elements/internal/InternalTimestampsControl/index.js.map +1 -0
  244. package/dist/elements/private/Dialog/Dialog.d.ts +4 -2
  245. package/dist/elements/private/Dialog/Dialog.js +3 -1
  246. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  247. package/dist/elements/private/EditableList/EditableList.d.ts +4 -2
  248. package/dist/elements/private/EditableList/EditableList.js +3 -1
  249. package/dist/elements/private/EditableList/EditableList.js.map +1 -1
  250. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +3 -1
  251. package/dist/elements/private/FrequencyInput/FrequencyInput.js +2 -1
  252. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  253. package/dist/elements/public/ApiBrowser/ApiBrowser.d.ts +31 -0
  254. package/dist/elements/public/ApiBrowser/ApiBrowser.js +221 -0
  255. package/dist/elements/public/ApiBrowser/ApiBrowser.js.map +1 -0
  256. package/dist/elements/public/ApiBrowser/index.d.ts +10 -0
  257. package/dist/elements/public/ApiBrowser/index.js +12 -0
  258. package/dist/elements/public/ApiBrowser/index.js.map +1 -0
  259. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.d.ts +32 -0
  260. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +297 -0
  261. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -0
  262. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.d.ts +11 -0
  263. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js +13 -0
  264. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js.map +1 -0
  265. package/dist/elements/public/ApiBrowser/types.d.ts +10 -0
  266. package/dist/elements/public/ApiBrowser/types.js +2 -0
  267. package/dist/elements/public/ApiBrowser/types.js.map +1 -0
  268. package/dist/elements/public/CollectionPage/CollectionPage.d.ts +4 -3
  269. package/dist/elements/public/CollectionPage/CollectionPage.js +5 -3
  270. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  271. package/dist/elements/public/CollectionPage/types.d.ts +1 -0
  272. package/dist/elements/public/CollectionPage/types.js.map +1 -1
  273. package/dist/elements/public/CollectionPages/CollectionPages.d.ts +4 -2
  274. package/dist/elements/public/CollectionPages/CollectionPages.js +3 -1
  275. package/dist/elements/public/CollectionPages/CollectionPages.js.map +1 -1
  276. package/dist/elements/public/CopyToClipboard/CopyToClipboard.d.ts +22 -0
  277. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js +121 -0
  278. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js.map +1 -0
  279. package/dist/elements/public/CopyToClipboard/index.d.ts +5 -0
  280. package/dist/elements/public/CopyToClipboard/index.js +7 -0
  281. package/dist/elements/public/CopyToClipboard/index.js.map +1 -0
  282. package/dist/elements/public/CouponDetailCard/CouponDetailCard.d.ts +25 -0
  283. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js +58 -0
  284. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js.map +1 -0
  285. package/dist/elements/public/CouponDetailCard/index.d.ts +5 -0
  286. package/dist/elements/public/CouponDetailCard/index.js +7 -0
  287. package/dist/elements/public/CouponDetailCard/index.js.map +1 -0
  288. package/dist/elements/public/CouponDetailCard/types.d.ts +3 -0
  289. package/dist/elements/public/CouponDetailCard/types.js +2 -0
  290. package/dist/elements/public/CouponDetailCard/types.js.map +1 -0
  291. package/dist/elements/public/CouponForm/CouponForm.js +36 -34
  292. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  293. package/dist/elements/public/CouponForm/index.d.ts +1 -0
  294. package/dist/elements/public/CouponForm/index.js +1 -0
  295. package/dist/elements/public/CouponForm/index.js.map +1 -1
  296. package/dist/elements/public/CustomerApi/CustomerApi.d.ts +3 -1
  297. package/dist/elements/public/CustomerApi/CustomerApi.js +2 -1
  298. package/dist/elements/public/CustomerApi/CustomerApi.js.map +1 -1
  299. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.d.ts +3 -1
  300. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js +2 -1
  301. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js.map +1 -1
  302. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.d.ts +3 -1
  303. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -1
  304. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  305. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.d.ts +3 -1
  306. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -1
  307. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  308. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.d.ts +3 -1
  309. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js +2 -1
  310. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js.map +1 -1
  311. package/dist/elements/public/DiscountBuilder/DiscountBuilder.d.ts +40 -0
  312. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +342 -0
  313. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -0
  314. package/dist/elements/public/DiscountBuilder/index.d.ts +3 -0
  315. package/dist/elements/public/DiscountBuilder/index.js +5 -0
  316. package/dist/elements/public/DiscountBuilder/index.js.map +1 -0
  317. package/dist/elements/public/DiscountBuilder/types.d.ts +32 -0
  318. package/dist/elements/public/DiscountBuilder/types.js +2 -0
  319. package/dist/elements/public/DiscountBuilder/types.js.map +1 -0
  320. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.d.ts +25 -0
  321. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js +58 -0
  322. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js.map +1 -0
  323. package/dist/elements/public/DiscountDetailCard/index.d.ts +5 -0
  324. package/dist/elements/public/DiscountDetailCard/index.js +7 -0
  325. package/dist/elements/public/DiscountDetailCard/index.js.map +1 -0
  326. package/dist/elements/public/DiscountDetailCard/types.d.ts +3 -0
  327. package/dist/elements/public/DiscountDetailCard/types.js +2 -0
  328. package/dist/elements/public/DiscountDetailCard/types.js.map +1 -0
  329. package/dist/elements/public/GiftCardForm/GiftCardForm.js +28 -15
  330. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  331. package/dist/elements/public/GiftCardForm/index.d.ts +1 -0
  332. package/dist/elements/public/GiftCardForm/index.js +1 -0
  333. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  334. package/dist/elements/public/I18n/I18n.d.ts +3 -1
  335. package/dist/elements/public/I18n/I18n.js +2 -1
  336. package/dist/elements/public/I18n/I18n.js.map +1 -1
  337. package/dist/elements/public/I18n/format/discount.js +1 -0
  338. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  339. package/dist/elements/public/ItemCard/ItemCard.d.ts +22 -0
  340. package/dist/elements/public/ItemCard/ItemCard.js +151 -0
  341. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -0
  342. package/dist/elements/public/ItemCard/index.d.ts +4 -0
  343. package/dist/elements/public/ItemCard/index.js +6 -0
  344. package/dist/elements/public/ItemCard/index.js.map +1 -0
  345. package/dist/elements/public/ItemCard/types.d.ts +5 -0
  346. package/dist/elements/public/ItemCard/types.js +2 -0
  347. package/dist/elements/public/ItemCard/types.js.map +1 -0
  348. package/dist/elements/public/ItemForm/ItemForm.d.ts +61 -0
  349. package/dist/elements/public/ItemForm/ItemForm.js +138 -0
  350. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -0
  351. package/dist/elements/public/ItemForm/index.d.ts +19 -0
  352. package/dist/elements/public/ItemForm/index.js +21 -0
  353. package/dist/elements/public/ItemForm/index.js.map +1 -0
  354. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +6 -0
  355. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +23 -0
  356. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -0
  357. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +7 -0
  358. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +9 -0
  359. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -0
  360. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +6 -0
  361. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +31 -0
  362. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -0
  363. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +6 -0
  364. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +8 -0
  365. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -0
  366. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +6 -0
  367. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +58 -0
  368. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -0
  369. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +7 -0
  370. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +9 -0
  371. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -0
  372. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +6 -0
  373. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +32 -0
  374. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -0
  375. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +6 -0
  376. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +8 -0
  377. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -0
  378. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +6 -0
  379. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +70 -0
  380. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -0
  381. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +9 -0
  382. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +11 -0
  383. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -0
  384. package/dist/elements/public/ItemForm/types.d.ts +3 -0
  385. package/dist/elements/public/ItemForm/types.js +2 -0
  386. package/dist/elements/public/ItemForm/types.js.map +1 -0
  387. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +25 -0
  388. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +56 -0
  389. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -0
  390. package/dist/elements/public/ItemOptionCard/index.d.ts +6 -0
  391. package/dist/elements/public/ItemOptionCard/index.js +8 -0
  392. package/dist/elements/public/ItemOptionCard/index.js.map +1 -0
  393. package/dist/elements/public/ItemOptionCard/types.d.ts +11 -0
  394. package/dist/elements/public/ItemOptionCard/types.js +2 -0
  395. package/dist/elements/public/ItemOptionCard/types.js.map +1 -0
  396. package/dist/elements/public/ItemOptionForm/ItemOptionForm.d.ts +30 -0
  397. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +41 -0
  398. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -0
  399. package/dist/elements/public/ItemOptionForm/index.d.ts +5 -0
  400. package/dist/elements/public/ItemOptionForm/index.js +7 -0
  401. package/dist/elements/public/ItemOptionForm/index.js.map +1 -0
  402. package/dist/elements/public/ItemOptionForm/types.d.ts +3 -0
  403. package/dist/elements/public/ItemOptionForm/types.js +2 -0
  404. package/dist/elements/public/ItemOptionForm/types.js.map +1 -0
  405. package/dist/elements/public/NucleonElement/NucleonElement.d.ts +7 -1
  406. package/dist/elements/public/NucleonElement/NucleonElement.js +13 -1
  407. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  408. package/dist/elements/public/Pagination/Pagination.d.ts +3 -1
  409. package/dist/elements/public/Pagination/Pagination.js +3 -2
  410. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  411. package/dist/elements/public/PaymentCard/PaymentCard.js +1 -1
  412. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  413. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +3 -1
  414. package/dist/elements/public/QueryBuilder/QueryBuilder.js +2 -1
  415. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  416. package/dist/elements/public/ReportForm/ReportForm.d.ts +9 -9
  417. package/dist/elements/public/ReportForm/ReportForm.js +159 -73
  418. package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
  419. package/dist/elements/public/ReportForm/index.d.ts +4 -1
  420. package/dist/elements/public/ReportForm/index.js +4 -1
  421. package/dist/elements/public/ReportForm/index.js.map +1 -1
  422. package/dist/elements/public/ReportForm/types.d.ts +2 -4
  423. package/dist/elements/public/ReportForm/types.js.map +1 -1
  424. package/dist/elements/public/ReportForm/utils.d.ts +16 -0
  425. package/dist/elements/public/ReportForm/utils.js +73 -0
  426. package/dist/elements/public/ReportForm/utils.js.map +1 -0
  427. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +28 -0
  428. package/dist/elements/public/ShipmentCard/ShipmentCard.js +119 -0
  429. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -0
  430. package/dist/elements/public/ShipmentCard/index.d.ts +8 -0
  431. package/dist/elements/public/ShipmentCard/index.js +10 -0
  432. package/dist/elements/public/ShipmentCard/index.js.map +1 -0
  433. package/dist/elements/public/ShipmentCard/types.d.ts +18 -0
  434. package/dist/elements/public/ShipmentCard/types.js +2 -0
  435. package/dist/elements/public/ShipmentCard/types.js.map +1 -0
  436. package/dist/elements/public/Spinner/Spinner.d.ts +4 -2
  437. package/dist/elements/public/Spinner/Spinner.js +3 -1
  438. package/dist/elements/public/Spinner/Spinner.js.map +1 -1
  439. package/dist/elements/public/SwipeActions/SwipeActions.d.ts +28 -0
  440. package/dist/elements/public/SwipeActions/SwipeActions.js +130 -0
  441. package/dist/elements/public/SwipeActions/SwipeActions.js.map +1 -0
  442. package/dist/elements/public/SwipeActions/index.d.ts +2 -0
  443. package/dist/elements/public/SwipeActions/index.js +4 -0
  444. package/dist/elements/public/SwipeActions/index.js.map +1 -0
  445. package/dist/elements/public/Transaction/Transaction.d.ts +19 -0
  446. package/dist/elements/public/Transaction/Transaction.js +107 -0
  447. package/dist/elements/public/Transaction/Transaction.js.map +1 -0
  448. package/dist/elements/public/Transaction/index.d.ts +17 -0
  449. package/dist/elements/public/Transaction/index.js +19 -0
  450. package/dist/elements/public/Transaction/index.js.map +1 -0
  451. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +9 -0
  452. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +65 -0
  453. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -0
  454. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.d.ts +4 -0
  455. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js +6 -0
  456. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js.map +1 -0
  457. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.d.ts +5 -0
  458. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +36 -0
  459. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -0
  460. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.d.ts +7 -0
  461. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js +9 -0
  462. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js.map +1 -0
  463. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.d.ts +10 -0
  464. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +61 -0
  465. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -0
  466. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.d.ts +6 -0
  467. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js +8 -0
  468. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js.map +1 -0
  469. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +8 -0
  470. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +66 -0
  471. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -0
  472. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.d.ts +4 -0
  473. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js +6 -0
  474. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js.map +1 -0
  475. package/dist/elements/public/Transaction/types.d.ts +3 -0
  476. package/dist/elements/public/Transaction/types.js +2 -0
  477. package/dist/elements/public/Transaction/types.js.map +1 -0
  478. package/dist/elements/public/WebhookCard/WebhookCard.d.ts +16 -0
  479. package/dist/elements/public/WebhookCard/WebhookCard.js +36 -0
  480. package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -0
  481. package/dist/elements/public/WebhookCard/index.d.ts +5 -0
  482. package/dist/elements/public/WebhookCard/index.js +7 -0
  483. package/dist/elements/public/WebhookCard/index.js.map +1 -0
  484. package/dist/elements/public/WebhookCard/types.d.ts +3 -0
  485. package/dist/elements/public/WebhookCard/types.js +2 -0
  486. package/dist/elements/public/WebhookCard/types.js.map +1 -0
  487. package/dist/elements/public/WebhookForm/WebhookForm.d.ts +47 -0
  488. package/dist/elements/public/WebhookForm/WebhookForm.js +101 -0
  489. package/dist/elements/public/WebhookForm/WebhookForm.js.map +1 -0
  490. package/dist/elements/public/WebhookForm/index.d.ts +8 -0
  491. package/dist/elements/public/WebhookForm/index.js +10 -0
  492. package/dist/elements/public/WebhookForm/index.js.map +1 -0
  493. package/dist/elements/public/WebhookForm/types.d.ts +3 -0
  494. package/dist/elements/public/WebhookForm/types.js +2 -0
  495. package/dist/elements/public/WebhookForm/types.js.map +1 -0
  496. package/dist/elements/public/WebhookLogCard/WebhookLogCard.d.ts +16 -0
  497. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js +28 -0
  498. package/dist/elements/public/WebhookLogCard/WebhookLogCard.js.map +1 -0
  499. package/dist/elements/public/WebhookLogCard/index.d.ts +4 -0
  500. package/dist/elements/public/WebhookLogCard/index.js +6 -0
  501. package/dist/elements/public/WebhookLogCard/index.js.map +1 -0
  502. package/dist/elements/public/WebhookLogCard/types.d.ts +3 -0
  503. package/dist/elements/public/WebhookLogCard/types.js +2 -0
  504. package/dist/elements/public/WebhookLogCard/types.js.map +1 -0
  505. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.d.ts +16 -0
  506. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js +41 -0
  507. package/dist/elements/public/WebhookStatusCard/WebhookStatusCard.js.map +1 -0
  508. package/dist/elements/public/WebhookStatusCard/index.d.ts +4 -0
  509. package/dist/elements/public/WebhookStatusCard/index.js +6 -0
  510. package/dist/elements/public/WebhookStatusCard/index.js.map +1 -0
  511. package/dist/elements/public/WebhookStatusCard/types.d.ts +3 -0
  512. package/dist/elements/public/WebhookStatusCard/types.js +2 -0
  513. package/dist/elements/public/WebhookStatusCard/types.js.map +1 -0
  514. package/dist/elements/public/index.d.ts +16 -0
  515. package/dist/elements/public/index.defined.d.ts +16 -0
  516. package/dist/elements/public/index.defined.js +16 -0
  517. package/dist/elements/public/index.defined.js.map +1 -1
  518. package/dist/elements/public/index.js +16 -0
  519. package/dist/elements/public/index.js.map +1 -1
  520. package/dist/mixins/configurable.d.ts +5 -3
  521. package/dist/mixins/configurable.js +40 -4
  522. package/dist/mixins/configurable.js.map +1 -1
  523. package/dist/mixins/inferrable.d.ts +15 -0
  524. package/dist/mixins/inferrable.js +67 -0
  525. package/dist/mixins/inferrable.js.map +1 -0
  526. package/dist/mixins/themeable.js +6818 -17
  527. package/dist/mixins/themeable.js.map +1 -1
  528. package/dist/mixins/translatable.d.ts +3 -1
  529. package/dist/mixins/translatable.js +16 -2
  530. package/dist/mixins/translatable.js.map +1 -1
  531. package/package.json +10 -8
  532. package/dist/cdn/shared-061f64fc.js +0 -1
  533. package/dist/cdn/shared-21419f10.js +0 -1
  534. package/dist/cdn/shared-29db2caa.js +0 -230
  535. package/dist/cdn/shared-2a89f737.js +0 -1
  536. package/dist/cdn/shared-312fdfb6.js +0 -1
  537. package/dist/cdn/shared-385ab830.js +0 -1
  538. package/dist/cdn/shared-39e3ae67.js +0 -1
  539. package/dist/cdn/shared-4190da71.js +0 -1
  540. package/dist/cdn/shared-4792a0b8.js +0 -1
  541. package/dist/cdn/shared-56646cd3.js +0 -1
  542. package/dist/cdn/shared-63eaded9.js +0 -159
  543. package/dist/cdn/shared-756034e4.js +0 -1
  544. package/dist/cdn/shared-9783e5ce.js +0 -1
  545. package/dist/cdn/shared-9da4822a.js +0 -12
  546. package/dist/cdn/shared-b07ef791.js +0 -1
  547. package/dist/cdn/shared-da709e9d.js +0 -1
  548. package/dist/cdn/shared-db4aacb2.js +0 -1
  549. package/dist/cdn/shared-dd4971b5.js +0 -1
  550. package/dist/cdn/shared-df730f90.js +0 -1
  551. package/dist/cdn/shared-e94c2670.js +0 -1
  552. package/dist/cdn/shared-edfe5274.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(ConfigurableMixin(ThemeableMixin(TranslatableMixin(LitElement, NS))));\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid grid-cols-3 gap-s items-center\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../../src/elements/public/Pagination/Pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,IAAI,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAClE,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,GAAG,MAAM,eAAe,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAE7D,MAAM,EAAE,GAAG,YAAY,CAAC;AACxB,MAAM,IAAI,GAAG,eAAe,CAC1B,iBAAiB,CAAC,cAAc,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACtF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAW,SAAQ,IAAI;IAApC;;QASU,kBAAa,GAA+B,IAAI,CAAC;QAEjD,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,YAAO,GAAG,EAAE,CAAC;IAmIvB,CAAC;IA/IC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,aAAa,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACpC,CAAC;IACJ,CAAC;IAQD,8CAA8C;IAC9C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,QAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC7D,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM;;QACJ,MAAM,IAAI,SAAG,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QAEpC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAEhF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAEvE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAE3D,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;QAEpE,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAE5C,OAAO,IAAI,CAAA;0BACW,IAAI,CAAC,oBAAoB;;;;;;;wBAO3B,CAAC,SAAS;qBACb,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;;;+BAGhB,UAAU,SAAS,IAAI,mBAAmB,EAAE;;;;;;wBAMnD,CAAC,SAAS;qBACb,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;;+BAGf,UAAU,SAAS,IAAI,sBAAsB,EAAE;;;;;oBAK1D,IAAI,CAAC,SAAS,CAAC;YACvB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,EAAE,EAAE,MAAM,GAAG,aAAa;SAC3B,CAAC;kBACM,QAAQ,CAAC;YACf,qDAAqD,EAAE,IAAI;YAC3D,WAAW,EAAE,CAAC,IAAI;SACnB,CAAC;iBACK,IAAI;;eAEN,EAAE;;;;;;;;wBAQO,CAAC,UAAU;qBACd,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;+BAEf,UAAU,SAAS,IAAI,kBAAkB,EAAE;;;;;;;wBAOlD,CAAC,UAAU;qBACd,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;;+BAEf,UAAU,SAAS,IAAI,kBAAkB,EAAE;;;;;KAKrE,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,GAAW;;QACxB,IAAI,CAAC,aAAc,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,OAAC,IAAI,CAAC,aAAa,0CAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,uBAAuB;;QAC7B,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEO,oBAAoB;;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAkB,MAAM,CAAC,CAAC;QACpE,MAAM,gBAAgB,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,qCAAM,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,cAAc,CAEvE,CAAC;QAEd,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;SACtC;IACH,CAAC;CACF","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport get from 'lodash-es/get';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'pagination';\nconst Base = ResponsiveMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * Helper element that adds pagination controls to elements\n * representing Hypermedia API collection pages. Works with NucleonElement instances only.\n * Page element **MUST** be a direct descendant of `foxy-pagination`.\n *\n * @example\n * ```html\n * <foxy-pagination first=\"https://demo.api/hapi/customers?limit=3\">\n * <foxy-customers-table></foxy-customers-table>\n * </foxy-pagination>\n * ```\n *\n * @element foxy-pagination\n * @since 1.15.0\n */\nexport class Pagination extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n first: { type: String },\n __pageElement: { attribute: false },\n };\n }\n\n private __pageElement: NucleonElement<any> | null = null;\n\n private __rerender = () => this.requestUpdate();\n\n private __first = '';\n\n /** URL of the first page of the colletion. */\n get first(): string {\n return this.__first;\n }\n\n set first(newValue: string) {\n this.__first = newValue;\n if (this.__pageElement) this.__pageElement.href = newValue;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.__connectPageElement();\n }\n\n render(): TemplateResult {\n const data = this.__pageElement?.data;\n const { disabled, lang, ns } = this;\n\n const returnedItemsValue = Number(get(data, 'returned_items'));\n const returnedItems = Number.isNaN(returnedItemsValue) ? 0 : returnedItemsValue;\n\n const totalItemsValue = Number(get(data, 'total_items'));\n const totalItems = Number.isNaN(totalItemsValue) ? 0 : totalItemsValue;\n\n const offsetValue = Number(get(data, 'offset'));\n const offset = Number.isNaN(offsetValue) ? 0 : offsetValue;\n\n const canGoBack = !disabled && offset > 0;\n const canGoForth = !disabled && offset + returnedItems < totalItems;\n\n const labelClass = 'sr-only sm-not-sr-only';\n\n return html`\n <slot @slotchange=${this.__connectPageElement}></slot>\n\n <div class=\"grid grid-cols-3 gap-s items-center -mx-xs\">\n <div class=\"flex items-center space-x-s\">\n <vaadin-button\n data-testid=\"first\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('first')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:first-page\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"first\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"prev\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoBack}\n @click=${() => this.__goTo('prev')}\n >\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-left\"></iron-icon>\n <foxy-i18n class=${labelClass} lang=${lang} key=\"previous\" ns=${ns}></foxy-i18n>\n </vaadin-button>\n </div>\n\n <foxy-i18n\n options=${JSON.stringify({\n total: totalItems,\n from: offset ? offset + 1 : 0,\n to: offset + returnedItems,\n })}\n class=${classMap({\n 'flex-1 text-xs text-tertiary text-center leading-xs': true,\n 'opacity-0': !data,\n })}\n lang=${lang}\n key=\"pagination\"\n ns=${ns}\n >\n </foxy-i18n>\n\n <div class=\"flex items-center justify-end space-x-s\">\n <vaadin-button\n data-testid=\"next\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('next')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"next\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:chevron-right\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n data-testid=\"last\"\n theme=\"contrast tertiary-inline\"\n ?disabled=${!canGoForth}\n @click=${() => this.__goTo('last')}\n >\n <foxy-i18n class=${labelClass} lang=${lang} key=\"last\" ns=${ns}></foxy-i18n>\n <iron-icon class=\"icon-inline text-s\" icon=\"icons:last-page\"></iron-icon>\n </vaadin-button>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__disconnectPageElement();\n }\n\n private __goTo(rel: string): void {\n this.__pageElement!.href = String(get(this.__pageElement?.data, `_links.${rel}.href`));\n }\n\n private __disconnectPageElement() {\n this.__pageElement?.removeEventListener('update', this.__rerender);\n this.__pageElement = null;\n }\n\n private __connectPageElement() {\n this.__disconnectPageElement();\n\n const slot = this.renderRoot.querySelector<HTMLSlotElement>('slot');\n const assignedElements = slot?.assignedElements() ?? [];\n const firstNucleonElement = assignedElements.find(el => el instanceof NucleonElement) as\n | NucleonElement<any>\n | undefined;\n\n if (firstNucleonElement) {\n this.__pageElement = firstNucleonElement;\n this.__pageElement.addEventListener('update', this.__rerender);\n this.__pageElement.href = this.first;\n }\n }\n}\n"]}
@@ -60,7 +60,7 @@ export class PaymentCard extends Base {
60
60
  ${isCardInfoHidden && isFraudRiskHidden
61
61
  ? ''
62
62
  : html `
63
- <div class="my-s flex space-x-s">
63
+ <div class="my-s flex space-x-s overflow-auto">
64
64
  ${isCardInfoHidden ? '' : this.__renderCardInfo()}
65
65
  ${isFraudRiskHidden ? '' : this.__renderFraudRisk()}
66
66
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentCard/PaymentCard.ts"],"names":[],"mappings":"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","sourcesContent":["import * as logos from '../PaymentMethodCard/logos';\n\nimport { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'payment-card')));\n\n/**\n * Basic card displaying a payment.\n *\n * Note: payment gateway names need to be loaded separately. You can obtain\n * them from `fx:property_helpers` using your own Backend API proxy or just hardcode the values\n * you need. Once you have the gateway names, call `I18n.setGateways(names)`.\n *\n * @slot title:before\n * @slot title:after\n *\n * @slot subtitle:before\n * @slot subtitle:after\n *\n * @slot card-info:before\n * @slot card-info:after\n *\n * @slot fraud-risk:before\n * @slot fraud-risk:after\n *\n * @slot processor-response:before\n * @slot processor-response:after\n *\n * @element foxy-payment-card\n * @since 1.11.0\n */\nexport class PaymentCard extends Base<Data> {\n templates: Templates = {};\n\n private __currencyDisplay = '';\n\n private __currency = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n const isCardInfoHidden = hidden.matches('card-info', true);\n const isFraudRiskHidden = hidden.matches('fraud-risk', true);\n\n return html`\n <div\n aria-busy=${!this.data && this.in('busy')}\n aria-live=\"polite\"\n class=\"relative text-body text-m font-lumo leading-m focus-outline-none\"\n >\n <div\n class=${classMap({\n 'relative transition duration-250 ease-in-out': true,\n 'opacity-0 pointer-events-none': !this.data,\n })}\n >\n ${hidden.matches('title', true) ? '' : this.__renderTitle()}\n ${hidden.matches('subtitle', true) ? '' : this.__renderSubtitle()}\n ${isCardInfoHidden && isFraudRiskHidden\n ? ''\n : html`\n <div class=\"my-s flex space-x-s\">\n ${isCardInfoHidden ? '' : this.__renderCardInfo()}\n ${isFraudRiskHidden ? '' : this.__renderFraudRisk()}\n </div>\n `}\n ${hidden.matches('processor-response', true) ? '' : this.__renderProcessorResponse()}\n </div>\n\n <div\n class=${classMap({\n 'transition duration-250 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n class=\"m-auto\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\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 protected async _sendGet(): Promise<Data> {\n type Transaction = Resource<Rels.Transaction>;\n type Store = Resource<Rels.Store>;\n\n const payment = await super._sendGet();\n const [transaction, store] = await Promise.all([\n super._fetch<Transaction>(payment._links['fx:transaction'].href),\n super._fetch<Store>(payment._links['fx:store'].href),\n ]);\n\n this.__currency = transaction.currency_code;\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n\n return payment;\n }\n\n private __renderTitle() {\n const key = this.data ? `gateways.${this.data.gateway_type}` : '';\n const ns = `${this.ns} gateways`;\n\n return html`\n <div class=\"text-m flex text-secondary\" data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n <foxy-i18n lang=${this.lang} key=${key} ns=${ns}></foxy-i18n>&ZeroWidthSpace;\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n }\n\n private __renderSubtitle() {\n const amount = `${this.data?.amount ?? ''} ${this.__currency}`;\n const amountOptions = JSON.stringify({ amount, currencyDisplay: this.__currencyDisplay });\n\n const date = this.data?.date_created ?? '';\n const dateOptions = JSON.stringify({ value: date });\n\n const lang = this.lang;\n const ns = this.ns;\n\n return html`\n <div class=\"flex font-semibold text-m\" data-testid=\"subtitle\">\n ${this.renderTemplateOrSlot('subtitle:before')}\n\n <foxy-i18n options=${amountOptions} lang=${lang} key=\"price\" ns=${ns}></foxy-i18n>\n <span>&nbsp;&bull;&nbsp;</span>\n <foxy-i18n options=${dateOptions} lang=${lang} key=\"date\" ns=${ns}></foxy-i18n>\n\n ${this.renderTemplateOrSlot('subtitle:after')}\n </div>\n `;\n }\n\n private __renderCardInfo() {\n const data = this.data;\n const type = (data?.cc_type ?? 'unknown').toLowerCase() as keyof typeof logos;\n const year = data?.cc_exp_year?.substring(2);\n const month = data?.cc_exp_month;\n const last4Digits = data?.cc_number_masked?.replace(/x/gi, '');\n\n if (!month || !year || !last4Digits) return;\n\n return html`\n <div class=\"flex\" data-testid=\"card-info\">\n ${this.renderTemplateOrSlot('card-info:before')}\n\n <div class=\"truncate flex items-center h-s rounded overflow-hidden bg-contrast-5\">\n <div class=\"h-s\">${logos[type] ?? logos.unknown}</div>\n <div class=\"text-m font-semibold px-s\">•••• ${last4Digits} ${month}/${year}</div>\n </div>\n\n ${this.renderTemplateOrSlot('card-info:after')}\n </div>\n `;\n }\n\n private __renderFraudRisk() {\n const score = this.data?.fraud_protection_score ?? 0;\n const color = score > 0 ? 'text-error' : 'text-success';\n const background = score > 0 ? 'bg-error-10' : 'bg-success-10';\n\n return html`\n <div class=\"flex\" data-testid=\"fraud-risk\">\n ${this.renderTemplateOrSlot('fraud-risk:before')}\n\n <foxy-i18n\n options=${JSON.stringify({ score })}\n class=\"truncate flex font-semibold h-s items-center px-s rounded text-m ${color} ${background}\"\n lang=${this.lang}\n key=\"fraud_risk\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('fraud-risk:after')}\n </div>\n `;\n }\n\n private __renderProcessorResponse() {\n return html`\n <div class=\"text-m text-tertiary\" data-testid=\"processor-response\">\n ${this.renderTemplateOrSlot('processor-response:before')}\n ${this.data?.processor_response}&ZeroWidthSpace;\n ${this.renderTemplateOrSlot('processor-response:after')}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"PaymentCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentCard/PaymentCard.ts"],"names":[],"mappings":"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","sourcesContent":["import * as logos from '../PaymentMethodCard/logos';\n\nimport { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { Rels } from '@foxy.io/sdk/backend';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'payment-card')));\n\n/**\n * Basic card displaying a payment.\n *\n * Note: payment gateway names need to be loaded separately. You can obtain\n * them from `fx:property_helpers` using your own Backend API proxy or just hardcode the values\n * you need. Once you have the gateway names, call `I18n.setGateways(names)`.\n *\n * @slot title:before\n * @slot title:after\n *\n * @slot subtitle:before\n * @slot subtitle:after\n *\n * @slot card-info:before\n * @slot card-info:after\n *\n * @slot fraud-risk:before\n * @slot fraud-risk:after\n *\n * @slot processor-response:before\n * @slot processor-response:after\n *\n * @element foxy-payment-card\n * @since 1.11.0\n */\nexport class PaymentCard extends Base<Data> {\n templates: Templates = {};\n\n private __currencyDisplay = '';\n\n private __currency = '';\n\n render(): TemplateResult {\n const hidden = this.hiddenSelector;\n const isCardInfoHidden = hidden.matches('card-info', true);\n const isFraudRiskHidden = hidden.matches('fraud-risk', true);\n\n return html`\n <div\n aria-busy=${!this.data && this.in('busy')}\n aria-live=\"polite\"\n class=\"relative text-body text-m font-lumo leading-m focus-outline-none\"\n >\n <div\n class=${classMap({\n 'relative transition duration-250 ease-in-out': true,\n 'opacity-0 pointer-events-none': !this.data,\n })}\n >\n ${hidden.matches('title', true) ? '' : this.__renderTitle()}\n ${hidden.matches('subtitle', true) ? '' : this.__renderSubtitle()}\n ${isCardInfoHidden && isFraudRiskHidden\n ? ''\n : html`\n <div class=\"my-s flex space-x-s overflow-auto\">\n ${isCardInfoHidden ? '' : this.__renderCardInfo()}\n ${isFraudRiskHidden ? '' : this.__renderFraudRisk()}\n </div>\n `}\n ${hidden.matches('processor-response', true) ? '' : this.__renderProcessorResponse()}\n </div>\n\n <div\n class=${classMap({\n 'transition duration-250 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !!this.data,\n })}\n >\n <foxy-spinner\n data-testid=\"spinner\"\n class=\"m-auto\"\n state=${this.in('fail') ? 'error' : this.in({ idle: 'template' }) ? 'empty' : 'busy'}\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 protected async _sendGet(): Promise<Data> {\n type Transaction = Resource<Rels.Transaction>;\n type Store = Resource<Rels.Store>;\n\n const payment = await super._sendGet();\n const [transaction, store] = await Promise.all([\n super._fetch<Transaction>(payment._links['fx:transaction'].href),\n super._fetch<Store>(payment._links['fx:store'].href),\n ]);\n\n this.__currency = transaction.currency_code;\n this.__currencyDisplay = store.use_international_currency_symbol ? 'code' : 'symbol';\n\n return payment;\n }\n\n private __renderTitle() {\n const key = this.data ? `gateways.${this.data.gateway_type}` : '';\n const ns = `${this.ns} gateways`;\n\n return html`\n <div class=\"text-m flex text-secondary\" data-testid=\"title\">\n ${this.renderTemplateOrSlot('title:before')}\n <foxy-i18n lang=${this.lang} key=${key} ns=${ns}></foxy-i18n>&ZeroWidthSpace;\n ${this.renderTemplateOrSlot('title:after')}\n </div>\n `;\n }\n\n private __renderSubtitle() {\n const amount = `${this.data?.amount ?? ''} ${this.__currency}`;\n const amountOptions = JSON.stringify({ amount, currencyDisplay: this.__currencyDisplay });\n\n const date = this.data?.date_created ?? '';\n const dateOptions = JSON.stringify({ value: date });\n\n const lang = this.lang;\n const ns = this.ns;\n\n return html`\n <div class=\"flex font-semibold text-m\" data-testid=\"subtitle\">\n ${this.renderTemplateOrSlot('subtitle:before')}\n\n <foxy-i18n options=${amountOptions} lang=${lang} key=\"price\" ns=${ns}></foxy-i18n>\n <span>&nbsp;&bull;&nbsp;</span>\n <foxy-i18n options=${dateOptions} lang=${lang} key=\"date\" ns=${ns}></foxy-i18n>\n\n ${this.renderTemplateOrSlot('subtitle:after')}\n </div>\n `;\n }\n\n private __renderCardInfo() {\n const data = this.data;\n const type = (data?.cc_type ?? 'unknown').toLowerCase() as keyof typeof logos;\n const year = data?.cc_exp_year?.substring(2);\n const month = data?.cc_exp_month;\n const last4Digits = data?.cc_number_masked?.replace(/x/gi, '');\n\n if (!month || !year || !last4Digits) return;\n\n return html`\n <div class=\"flex\" data-testid=\"card-info\">\n ${this.renderTemplateOrSlot('card-info:before')}\n\n <div class=\"truncate flex items-center h-s rounded overflow-hidden bg-contrast-5\">\n <div class=\"h-s\">${logos[type] ?? logos.unknown}</div>\n <div class=\"text-m font-semibold px-s\">•••• ${last4Digits} ${month}/${year}</div>\n </div>\n\n ${this.renderTemplateOrSlot('card-info:after')}\n </div>\n `;\n }\n\n private __renderFraudRisk() {\n const score = this.data?.fraud_protection_score ?? 0;\n const color = score > 0 ? 'text-error' : 'text-success';\n const background = score > 0 ? 'bg-error-10' : 'bg-success-10';\n\n return html`\n <div class=\"flex\" data-testid=\"fraud-risk\">\n ${this.renderTemplateOrSlot('fraud-risk:before')}\n\n <foxy-i18n\n options=${JSON.stringify({ score })}\n class=\"truncate flex font-semibold h-s items-center px-s rounded text-m ${color} ${background}\"\n lang=${this.lang}\n key=\"fraud_risk\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n ${this.renderTemplateOrSlot('fraud-risk:after')}\n </div>\n `;\n }\n\n private __renderProcessorResponse() {\n return html`\n <div class=\"text-m text-tertiary\" data-testid=\"processor-response\">\n ${this.renderTemplateOrSlot('processor-response:before')}\n ${this.data?.processor_response}&ZeroWidthSpace;\n ${this.renderTemplateOrSlot('processor-response:after')}\n </div>\n `;\n }\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import { CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { Operator, Option, Type } from './types';
3
- declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
3
+ declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
4
+ inferredProperties: string[];
5
+ } & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
4
6
  defaultNS: string;
5
7
  } & {
6
8
  styles: CSSResultArray;
@@ -7,8 +7,9 @@ import { TranslatableMixin } from "../../../mixins/translatable.js";
7
7
  import { parse } from "./utils/parse.js";
8
8
  import { stringify } from "./utils/stringify.js";
9
9
  import { styles } from "./styles.js";
10
+ import { InferrableMixin } from "../../../mixins/inferrable.js";
10
11
  const NS = 'query-builder';
11
- const Base = ResponsiveMixin(ThemeableMixin(TranslatableMixin(LitElement, NS)));
12
+ const Base = ResponsiveMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)));
12
13
  /**
13
14
  * UI component for creating Foxy hAPI filters visually. Compatible with
14
15
  * Backend API, Customer API or any other API using the same format as described
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAwC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAU,IAAI,EAAE,mBAAgB;AAEjD,OAAO,EAAE,KAAK,EAAE,8BAA2B;AAC3C,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,KAAK,EAAE,yBAAsB;AACtC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAElC,MAAM,EAAE,GAAG,eAAe,CAAC;AAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,YAAa,SAAQ,IAAI;IAA/B;;QAsBE,gCAAgC;QAChC,YAAO,GAAoB,IAAI,CAAC;QAEhC,2CAA2C;QAC3C,UAAK,GAAkB,IAAI,CAAC;IAa9B,CAAC;IA7BC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAQD,MAAM;;QACJ,OAAO,KAAK,CAAC;YACX,YAAY,EAAE,KAAK,OAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;YACrC,OAAO,QAAE,IAAI,CAAC,OAAO,mCAAI,EAAE;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC,CAAC;IACL,CAAC;;AArCD,uEAAuE;AACvD,wBAAW,GAAG,KAAM,SAAQ,WAAiB;CAAG,CAAC;AAEjE,2DAA2D;AAC3C,qBAAQ,GAAG,QAAQ,CAAC;AAEpC,6DAA6D;AAC7C,iBAAI,GAAG,IAAI,CAAC;AAiC9B,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Operator, Option, Type } from './types';\n\nimport { Group } from './components/Group';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { parse } from './utils/parse';\nimport { stringify } from './utils/stringify';\nimport { styles } from './styles';\n\nconst NS = 'query-builder';\nconst Base = ResponsiveMixin(ThemeableMixin(TranslatableMixin(LitElement, NS)));\n\n/**\n * UI component for creating Foxy hAPI filters visually. Compatible with\n * Backend API, Customer API or any other API using the same format as described\n * in our [docs](https://api.foxy.io/docs/cheat-sheet).\n *\n * @element foxy-query-builder\n * @since 1.12.0\n */\nclass QueryBuilder extends Base {\n /** QueryBuilder dispatches this event on itself when value changes. */\n static readonly ChangeEvent = class extends CustomEvent<void> {};\n\n /** Operator dictionary for use in autocomplete options. */\n static readonly Operator = Operator;\n\n /** Field type dictionary for use in autocomplete options. */\n static readonly Type = Type;\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n value: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n /** Autocomplete suggestions. */\n options: Option[] | null = null;\n\n /** Current value as hAPI filter string. */\n value: string | null = null;\n\n render(): TemplateResult {\n return Group({\n parsedValues: parse(this.value ?? ''),\n options: this.options ?? [],\n t: this.t.bind(this),\n onChange: newValue => {\n this.value = stringify(newValue);\n this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));\n },\n });\n }\n}\n\nexport { QueryBuilder };\n"]}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAwC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAU,IAAI,EAAE,mBAAgB;AAEjD,OAAO,EAAE,KAAK,EAAE,8BAA2B;AAC3C,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAC7D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,KAAK,EAAE,yBAAsB;AACtC,OAAO,EAAE,SAAS,EAAE,6BAA0B;AAC9C,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAClC,OAAO,EAAE,eAAe,EAAE,sCAAmC;AAE7D,MAAM,EAAE,GAAG,eAAe,CAAC;AAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEjG;;;;;;;GAOG;AACH,MAAM,YAAa,SAAQ,IAAI;IAA/B;;QAsBE,gCAAgC;QAChC,YAAO,GAAoB,IAAI,CAAC;QAEhC,2CAA2C;QAC3C,UAAK,GAAkB,IAAI,CAAC;IAa9B,CAAC;IA7BC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAQD,MAAM;;QACJ,OAAO,KAAK,CAAC;YACX,YAAY,EAAE,KAAK,OAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;YACrC,OAAO,QAAE,IAAI,CAAC,OAAO,mCAAI,EAAE;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC,CAAC;IACL,CAAC;;AArCD,uEAAuE;AACvD,wBAAW,GAAG,KAAM,SAAQ,WAAiB;CAAG,CAAC;AAEjE,2DAA2D;AAC3C,qBAAQ,GAAG,QAAQ,CAAC;AAEpC,6DAA6D;AAC7C,iBAAI,GAAG,IAAI,CAAC;AAiC9B,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { Operator, Option, Type } from './types';\n\nimport { Group } from './components/Group';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { parse } from './utils/parse';\nimport { stringify } from './utils/stringify';\nimport { styles } from './styles';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst NS = 'query-builder';\nconst Base = ResponsiveMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)));\n\n/**\n * UI component for creating Foxy hAPI filters visually. Compatible with\n * Backend API, Customer API or any other API using the same format as described\n * in our [docs](https://api.foxy.io/docs/cheat-sheet).\n *\n * @element foxy-query-builder\n * @since 1.12.0\n */\nclass QueryBuilder extends Base {\n /** QueryBuilder dispatches this event on itself when value changes. */\n static readonly ChangeEvent = class extends CustomEvent<void> {};\n\n /** Operator dictionary for use in autocomplete options. */\n static readonly Operator = Operator;\n\n /** Field type dictionary for use in autocomplete options. */\n static readonly Type = Type;\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n value: { type: String },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n /** Autocomplete suggestions. */\n options: Option[] | null = null;\n\n /** Current value as hAPI filter string. */\n value: string | null = null;\n\n render(): TemplateResult {\n return Group({\n parsedValues: parse(this.value ?? ''),\n options: this.options ?? [],\n t: this.t.bind(this),\n onChange: newValue => {\n this.value = stringify(newValue);\n this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));\n },\n });\n }\n}\n\nexport { QueryBuilder };\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Data, Templates } from './types';
2
+ import { PropertyDeclarations, TemplateResult } from 'lit-element';
2
3
  import { ScopedElementsMap } from '@open-wc/scoped-elements';
3
- import { TemplateResult } from 'lit-element';
4
4
  import { NucleonElement } from '../NucleonElement/NucleonElement';
5
5
  import { NucleonV8N } from '../NucleonElement/types';
6
6
  declare const Base: typeof NucleonElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
@@ -14,11 +14,8 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
14
14
  * @slot name:before
15
15
  * @slot name:after
16
16
  *
17
- * @slot start:before
18
- * @slot start:after
19
- *
20
- * @slot end:before
21
- * @slot end:after
17
+ * @slot range:before
18
+ * @slot range:after
22
19
  *
23
20
  * @slot timestamps:before
24
21
  * @slot timestamps:after
@@ -34,15 +31,18 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
34
31
  */
35
32
  export declare class ReportForm extends Base<Data> {
36
33
  static get scopedElements(): ScopedElementsMap;
34
+ static get properties(): PropertyDeclarations;
37
35
  static get v8n(): NucleonV8N<Data>;
38
36
  templates: Templates;
37
+ private __showRangeTime;
39
38
  render(): TemplateResult;
40
39
  private __renderName;
41
- private __renderStart;
42
- private __renderEnd;
40
+ private __renderRangePreset;
41
+ private __renderRangeDateTimePicker;
42
+ private __renderRangeDatePicker;
43
+ private __renderRange;
43
44
  private __renderTimestamps;
44
45
  private __renderCreate;
45
46
  private __renderDelete;
46
- private __convertFormValueToPickerValue;
47
47
  }
48
48
  export {};
@@ -1,26 +1,26 @@
1
1
  import { Choice, Group, PropertyTable } from "../../private/index.js";
2
- import { ScopedElementsMixin } from '@open-wc/scoped-elements';
3
2
  import { html } from 'lit-element';
3
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
4
+ import { getCurrentMonth, getCurrentQuarter, getCurrentYear, getLast30Days, getLast365Days, getPreviousMonth, getPreviousQuarter, getPreviousYear, toAPIDateTime, toDatePickerValue, toDateTimePickerValue, } from "./utils.js";
4
5
  import { ChoiceChangeEvent } from "../../private/Choice/ChoiceChangeEvent.js";
5
6
  import { ConfigurableMixin } from "../../../mixins/configurable.js";
6
- import { DateTimePicker } from '@vaadin/vaadin-date-time-picker';
7
7
  import { NucleonElement } from "../NucleonElement/NucleonElement.js";
8
+ import { ResponsiveMixin } from "../../../mixins/responsive.js";
8
9
  import { ThemeableMixin } from "../../../mixins/themeable.js";
9
10
  import { TranslatableMixin } from "../../../mixins/translatable.js";
10
11
  import { classMap } from "../../../utils/class-map.js";
11
12
  import { ifDefined } from 'lit-html/directives/if-defined';
12
- const Base = ScopedElementsMixin(ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'report-form'))));
13
+ import { live } from 'lit-html/directives/live';
14
+ import { render } from 'lit-html';
15
+ const Base = ScopedElementsMixin(ResponsiveMixin(ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, 'report-form')))));
13
16
  /**
14
17
  * Form element for creating or editing reports (`fx:report`).
15
18
  *
16
19
  * @slot name:before
17
20
  * @slot name:after
18
21
  *
19
- * @slot start:before
20
- * @slot start:after
21
- *
22
- * @slot end:before
23
- * @slot end:after
22
+ * @slot range:before
23
+ * @slot range:after
24
24
  *
25
25
  * @slot timestamps:before
26
26
  * @slot timestamps:after
@@ -38,12 +38,17 @@ export class ReportForm extends Base {
38
38
  constructor() {
39
39
  super(...arguments);
40
40
  this.templates = {};
41
+ this.__showRangeTime = false;
41
42
  }
42
43
  static get scopedElements() {
43
44
  return {
44
- 'vaadin-date-time-picker': DateTimePicker,
45
+ 'vaadin-date-time-picker': customElements.get('vaadin-date-time-picker'),
46
+ 'vaadin-date-picker': customElements.get('vaadin-date-picker'),
47
+ 'vaadin-checkbox': customElements.get('vaadin-checkbox'),
48
+ 'vaadin-select': customElements.get('vaadin-select'),
45
49
  'vaadin-button': customElements.get('vaadin-button'),
46
50
  'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),
51
+ 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),
47
52
  'foxy-spinner': customElements.get('foxy-spinner'),
48
53
  'foxy-i18n': customElements.get('foxy-i18n'),
49
54
  'x-property-table': PropertyTable,
@@ -51,11 +56,17 @@ export class ReportForm extends Base {
51
56
  'x-group': Group,
52
57
  };
53
58
  }
59
+ static get properties() {
60
+ return {
61
+ ...super.properties,
62
+ __showRangeTime: { attribute: false },
63
+ };
64
+ }
54
65
  static get v8n() {
55
66
  return [
56
67
  ({ name: v }) => !!v || 'name_required',
57
- ({ datetime_start: v }) => !!v || 'start_required',
58
- ({ datetime_end: v }) => !!v || 'end_required',
68
+ ({ datetime_start: v }) => !!v || 'datetime_start_required',
69
+ ({ datetime_end: v }) => !!v || 'datetime_end_required',
59
70
  ];
60
71
  }
61
72
  render() {
@@ -70,8 +81,7 @@ export class ReportForm extends Base {
70
81
  >
71
82
  <div class="space-y-m">
72
83
  ${hidden.matches('name', true) ? '' : this.__renderName()}
73
- ${hidden.matches('start', true) ? '' : this.__renderStart()}
74
- ${hidden.matches('end', true) ? '' : this.__renderEnd()}
84
+ ${hidden.matches('range', true) ? '' : this.__renderRange()}
75
85
  ${hidden.matches('timestamps', true) || !this.data ? '' : this.__renderTimestamps()}
76
86
  ${hidden.matches('create', true) || this.data ? '' : this.__renderCreate()}
77
87
  ${hidden.matches('delete', true) || !this.data ? '' : this.__renderDelete()}
@@ -106,17 +116,10 @@ export class ReportForm extends Base {
106
116
  ${this.renderTemplateOrSlot(`${scope}:before`)}
107
117
 
108
118
  <x-group frame>
109
- <foxy-i18n
110
- class=${classMap({ 'transition-colors': true, 'text-disabled': isDisabled })}
111
- lang=${this.lang}
112
- slot="header"
113
- key="name"
114
- ns=${this.ns}
115
- >
116
- </foxy-i18n>
119
+ <foxy-i18n lang=${this.lang} slot="header" key="name" ns=${this.ns}></foxy-i18n>
117
120
 
118
121
  <x-choice
119
- data-testid="content-type"
122
+ data-testid="name-choice"
120
123
  .value=${this.form.name}
121
124
  .items=${items}
122
125
  ?readonly=${isReadonly}
@@ -150,65 +153,152 @@ export class ReportForm extends Base {
150
153
  </div>
151
154
  `;
152
155
  }
153
- __renderStart() {
154
- const error = this.errors.find(error => error.startsWith('start_'));
155
- const value = this.form.datetime_start;
156
+ __renderRangePreset() {
157
+ var _a;
158
+ const options = [
159
+ [
160
+ { value: '0', label: 'preset_previous_quarter', ...getPreviousQuarter() },
161
+ { value: '1', label: 'preset_previous_month', ...getPreviousMonth() },
162
+ { value: '2', label: 'preset_previous_year', ...getPreviousYear() },
163
+ ],
164
+ [
165
+ { value: '3', label: 'preset_this_quarter', ...getCurrentQuarter() },
166
+ { value: '4', label: 'preset_this_month', ...getCurrentMonth() },
167
+ { value: '5', label: 'preset_this_year', ...getCurrentYear() },
168
+ ],
169
+ [
170
+ { value: '6', label: 'preset_last_365_days', ...getLast365Days() },
171
+ { value: '7', label: 'preset_last_30_days', ...getLast30Days() },
172
+ ],
173
+ ];
174
+ const currentOption = options.flat(1).find(option => {
175
+ const { datetime_end: end, datetime_start: start } = this.form;
176
+ return (start && end && toAPIDateTime(option.start) === start && toAPIDateTime(option.end) === end);
177
+ });
178
+ const renderer = (root) => {
179
+ const custom = html `<vaadin-item value="custom">${this.t('preset_custom')}</vaadin-item>`;
180
+ const separator = html `<hr />`;
181
+ const predefined = options.map(group => {
182
+ const items = group.map(({ value, label }) => {
183
+ return html `<vaadin-item value=${value}>${this.t(label)}</vaadin-item>`;
184
+ });
185
+ return html `${items}${separator}`;
186
+ });
187
+ if (!root.firstElementChild)
188
+ root.appendChild(document.createElement('vaadin-list-box'));
189
+ render(html `${predefined}${custom}`, root.firstElementChild);
190
+ };
156
191
  return html `
157
192
  <div>
158
- ${this.renderTemplateOrSlot('start:before')}
159
-
160
- <vaadin-date-time-picker
161
- date-placeholder=${this.t('select_date')}
162
- time-placeholder=${this.t('select_time')}
163
- error-message=${ifDefined(error ? this.t(error) : undefined)}
164
- data-testid="start"
165
- class="-mt-m"
166
- label=${this.t('start')}
167
- step="1"
168
- ?disabled=${!this.in('idle') || this.disabledSelector.matches('start', true)}
169
- ?readonly=${this.readonlySelector.matches('start', true)}
170
- .checkValidity=${() => !error}
171
- .value=${value ? this.__convertFormValueToPickerValue(value) : ''}
172
- @keydown=${(evt) => evt.key === 'Enter' && this.submit()}
193
+ <vaadin-select
194
+ data-testid="range:preset"
195
+ label=${this.t('preset')}
196
+ class="w-full -mt-m -mb-xs"
197
+ ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
198
+ ?readonly=${this.readonlySelector.matches('range', true)}
199
+ .value=${live((_a = currentOption === null || currentOption === void 0 ? void 0 : currentOption.value) !== null && _a !== void 0 ? _a : 'custom')}
200
+ .renderer=${renderer}
173
201
  @change=${(evt) => {
174
- const picker = evt.currentTarget;
175
- this.edit({ datetime_start: picker.value });
202
+ const select = evt.currentTarget;
203
+ const option = options.flat(1).find(option => option.value === select.value);
204
+ if (option) {
205
+ this.edit({
206
+ datetime_start: toAPIDateTime(option.start),
207
+ datetime_end: toAPIDateTime(option.end),
208
+ });
209
+ }
176
210
  }}
177
211
  >
178
- </vaadin-date-time-picker>
179
-
180
- ${this.renderTemplateOrSlot('start:after')}
212
+ </vaadin-select>
181
213
  </div>
182
214
  `;
183
215
  }
184
- __renderEnd() {
185
- const error = this.errors.find(error => error.startsWith('end_'));
186
- const value = this.form.datetime_end;
216
+ __renderRangeDateTimePicker(type) {
217
+ const field = type === 'end' ? 'datetime_end' : 'datetime_start';
218
+ const error = this.errors.find(error => error.startsWith(`${field}_`));
219
+ const value = this.form[field];
187
220
  return html `
188
- <div>
189
- ${this.renderTemplateOrSlot('end:before')}
190
-
191
- <vaadin-date-time-picker
192
- date-placeholder=${this.t('select_date')}
193
- time-placeholder=${this.t('select_time')}
194
- error-message=${ifDefined(error ? this.t(error) : undefined)}
195
- data-testid="end"
196
- label=${this.t('end')}
197
- class="-mt-m"
198
- step="1"
199
- ?disabled=${!this.in('idle') || this.disabledSelector.matches('end', true)}
200
- ?readonly=${this.readonlySelector.matches('end', true)}
201
- .checkValidity=${() => !error}
202
- .value=${value ? this.__convertFormValueToPickerValue(value) : ''}
203
- @keydown=${(evt) => evt.key === 'Enter' && this.submit()}
204
- @change=${(evt) => {
221
+ <vaadin-date-time-picker
222
+ date-placeholder=${this.t('select_date')}
223
+ time-placeholder=${this.t('select_time')}
224
+ error-message=${ifDefined(error ? this.t(error) : undefined)}
225
+ data-testid="range:${type}"
226
+ class="w-full"
227
+ label=${this.t(type)}
228
+ step="1"
229
+ ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
230
+ ?readonly=${this.readonlySelector.matches('range', true)}
231
+ .checkValidity=${() => !error}
232
+ .value=${value ? toDateTimePickerValue(value) : ''}
233
+ @keydown=${(evt) => evt.key === 'Enter' && this.submit()}
234
+ @change=${(evt) => {
205
235
  const picker = evt.currentTarget;
206
- this.edit({ datetime_end: picker.value });
236
+ this.edit({ [field]: picker.value });
207
237
  }}
208
- >
209
- </vaadin-date-time-picker>
238
+ >
239
+ </vaadin-date-time-picker>
240
+ `;
241
+ }
242
+ __renderRangeDatePicker(type) {
243
+ const field = type === 'end' ? 'datetime_end' : 'datetime_start';
244
+ const error = this.errors.find(error => error.startsWith(`${field}_`));
245
+ const value = this.form[field];
246
+ return html `
247
+ <vaadin-date-picker
248
+ error-message=${ifDefined(error ? this.t(error) : undefined)}
249
+ placeholder=${this.t('select_date')}
250
+ data-testid="range:${type}"
251
+ class="w-full"
252
+ label=${this.t(type)}
253
+ step="1"
254
+ ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
255
+ ?readonly=${this.readonlySelector.matches('range', true)}
256
+ .checkValidity=${() => !error}
257
+ .value=${value ? toDatePickerValue(value) : ''}
258
+ @keydown=${(evt) => evt.key === 'Enter' && this.submit()}
259
+ @change=${(evt) => {
260
+ const picker = evt.currentTarget;
261
+ const time = type === 'end' ? '23:59:59' : '00:00:00';
262
+ this.edit({ [field]: `${picker.value}T${time}` });
263
+ }}
264
+ >
265
+ </vaadin-date-picker>
266
+ `;
267
+ }
268
+ __renderRange() {
269
+ const renderer = this.__showRangeTime
270
+ ? this.__renderRangeDateTimePicker
271
+ : this.__renderRangeDatePicker;
272
+ return html `
273
+ <div data-testid="range">
274
+ ${this.renderTemplateOrSlot('range:before')}
210
275
 
211
- ${this.renderTemplateOrSlot('end:after')}
276
+ <x-group frame>
277
+ <foxy-i18n slot="header" lang=${this.lang} key="range" ns=${this.ns}></foxy-i18n>
278
+
279
+ <div class="p-m grid gap-m ${this.__showRangeTime ? 'grid-cols-1' : 'sm-grid-cols-2'}">
280
+ <div class=${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}>
281
+ ${this.__renderRangePreset()}
282
+ </div>
283
+
284
+ ${renderer.call(this, 'start')} ${renderer.call(this, 'end')}
285
+
286
+ <vaadin-checkbox
287
+ data-testid="range:toggle"
288
+ class="-my-xs w-full ${this.__showRangeTime ? 'col-span-1' : 'sm-col-span-2'}"
289
+ ?disabled=${!this.in('idle') || this.disabledSelector.matches('range', true)}
290
+ ?checked=${this.__showRangeTime}
291
+ @change=${(evt) => {
292
+ const checkbox = evt.currentTarget;
293
+ this.__showRangeTime = checkbox.checked;
294
+ }}
295
+ >
296
+ <foxy-i18n lang=${this.lang} key="use_precise_time" ns=${this.ns}></foxy-i18n>
297
+ </vaadin-checkbox>
298
+ </div>
299
+ </x-group>
300
+
301
+ ${this.renderTemplateOrSlot('range:after')}
212
302
  </div>
213
303
  `;
214
304
  }
@@ -297,9 +387,5 @@ export class ReportForm extends Base {
297
387
  </div>
298
388
  `;
299
389
  }
300
- __convertFormValueToPickerValue(formValue) {
301
- var _a, _b;
302
- return (_b = (_a = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.exec(formValue)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '';
303
- }
304
390
  }
305
391
  //# sourceMappingURL=ReportForm.js.map