@foxy.io/elements 1.16.0-beta.9 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-api-browser.js +3 -3
  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 -1
  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 -1
  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 +1 -1
  24. package/dist/cdn/foxy-customer.js +1 -1
  25. package/dist/cdn/foxy-customers-table.js +1 -1
  26. package/dist/cdn/foxy-discount-builder.js +1 -1
  27. package/dist/cdn/foxy-discount-card.js +1 -1
  28. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  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 -1
  40. package/dist/cdn/foxy-item-form.js +1 -1
  41. package/dist/cdn/foxy-item-option-card.js +1 -1
  42. package/dist/cdn/foxy-item-option-form.js +1 -1
  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 +4 -4
  50. package/dist/cdn/foxy-reports-table.js +3 -3
  51. package/dist/cdn/foxy-shipment-card.js +3 -7
  52. package/dist/cdn/foxy-sign-in-form.js +1 -1
  53. package/dist/cdn/foxy-spinner.js +1 -1
  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-table.js +1 -1
  58. package/dist/cdn/foxy-tax-card.js +1 -1
  59. package/dist/cdn/foxy-tax-form.js +1 -1
  60. package/dist/cdn/foxy-template-config-form.js +1 -1
  61. package/dist/cdn/foxy-template-form.js +1 -1
  62. package/dist/cdn/foxy-transaction-card.js +1 -1
  63. package/dist/cdn/foxy-transaction.js +1 -64
  64. package/dist/cdn/foxy-transactions-table.js +1 -1
  65. package/dist/cdn/foxy-user-form.js +1 -1
  66. package/dist/cdn/foxy-users-table.js +1 -1
  67. package/dist/cdn/foxy-webhook-card.js +1 -1
  68. package/dist/cdn/foxy-webhook-form.js +1 -1
  69. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  70. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  71. package/dist/cdn/{shared-3b318016.js → shared-195fd5af.js} +1 -1
  72. package/dist/cdn/{shared-f0ba30e8.js → shared-1bbd9b73.js} +1 -1
  73. package/dist/cdn/{shared-4764b995.js → shared-2188d5f7.js} +4 -4
  74. package/dist/cdn/{shared-40315eea.js → shared-26ce8d23.js} +1 -1
  75. package/dist/cdn/{shared-15d04c73.js → shared-2bdd4f74.js} +1 -1
  76. package/dist/cdn/{shared-f2a561f7.js → shared-31c43743.js} +1 -1
  77. package/dist/cdn/{shared-e9967127.js → shared-322e7efb.js} +5 -5
  78. package/dist/cdn/{shared-95b0cdf1.js → shared-39f2c345.js} +1 -1
  79. package/dist/cdn/{shared-eb1d4a32.js → shared-3b2dedf9.js} +1 -1
  80. package/dist/cdn/shared-45feee83.js +1 -0
  81. package/dist/cdn/{shared-addf6302.js → shared-4e201e09.js} +1 -1
  82. package/dist/cdn/{shared-5cb2c769.js → shared-5c3a88d2.js} +1 -1
  83. package/dist/cdn/{shared-855a1983.js → shared-62169210.js} +2 -2
  84. package/dist/cdn/{shared-3e14ffe1.js → shared-63685d2e.js} +2 -2
  85. package/dist/cdn/{shared-78adab3d.js → shared-6d104622.js} +1 -1
  86. package/dist/cdn/{shared-e6be392d.js → shared-7474af47.js} +1 -1
  87. package/dist/cdn/shared-7c612495.js +1 -0
  88. package/dist/cdn/shared-7c8bb60c.js +1 -0
  89. package/dist/cdn/shared-8d4fef94.js +1 -0
  90. package/dist/cdn/{shared-c0deb4cf.js → shared-8d937ae4.js} +3 -3
  91. package/dist/cdn/{shared-c6ed5394.js → shared-8e9a3bbb.js} +1 -1
  92. package/dist/cdn/shared-92327224.js +15 -0
  93. package/dist/cdn/shared-98497473.js +1 -0
  94. package/dist/cdn/{shared-107acd1f.js → shared-a052131e.js} +2 -2
  95. package/dist/cdn/{shared-e0a54dfc.js → shared-a0836fa5.js} +1 -1
  96. package/dist/cdn/{shared-d08fcc29.js → shared-a5e52b8f.js} +3 -3
  97. package/dist/cdn/shared-ac44429d.js +1 -0
  98. package/dist/cdn/{shared-abfe9262.js → shared-ae415a98.js} +2 -2
  99. package/dist/cdn/shared-b3df4f38.js +1 -0
  100. package/dist/cdn/{shared-85d4b53e.js → shared-baf79b0b.js} +1 -1
  101. package/dist/cdn/{shared-cea659c8.js → shared-bb686fc6.js} +1 -1
  102. package/dist/cdn/{shared-3474279e.js → shared-bf6fb415.js} +1 -1
  103. package/dist/cdn/shared-c309e0ef.js +1 -0
  104. package/dist/cdn/{shared-73cfd096.js → shared-c5c60417.js} +1 -1
  105. package/dist/cdn/{shared-e21c712d.js → shared-c8677ba3.js} +1 -1
  106. package/dist/cdn/{shared-c9757355.js → shared-c89ba319.js} +1 -1
  107. package/dist/cdn/{shared-8c41299f.js → shared-d28ac9dc.js} +1 -1
  108. package/dist/cdn/{shared-157cced2.js → shared-d699348f.js} +1 -1
  109. package/dist/cdn/shared-dc1c6edd.js +1 -0
  110. package/dist/cdn/{shared-78a2c66f.js → shared-dc23b751.js} +1 -1
  111. package/dist/cdn/shared-dc3ffd38.js +1 -0
  112. package/dist/cdn/{shared-5e228fca.js → shared-dd6d3c18.js} +1 -1
  113. package/dist/cdn/{shared-21f6c806.js → shared-dda2a74d.js} +1 -1
  114. package/dist/cdn/{shared-40c5712e.js → shared-e9a4a204.js} +1 -1
  115. package/dist/cdn/{shared-a2f5defb.js → shared-f1317609.js} +1 -1
  116. package/dist/cdn/{shared-af60799b.js → shared-f84686a8.js} +4 -4
  117. package/dist/cdn/{shared-2eee69db.js → shared-fadcb2e1.js} +0 -0
  118. package/dist/cdn/translations/api-browser/en.json +3 -0
  119. package/dist/cdn/translations/customer-portal/de.json +2 -2
  120. package/dist/cdn/translations/customer-portal/en.json +2 -2
  121. package/dist/cdn/translations/customer-portal/es.json +2 -2
  122. package/dist/cdn/translations/customer-portal/pl.json +2 -2
  123. package/dist/cdn/translations/customer-portal/se.json +223 -0
  124. package/dist/cdn/translations/customer-portal/zh-hk.json +2 -2
  125. package/dist/cdn/translations/discount-builder/en.json +14 -0
  126. package/dist/cdn/translations/item-form/en.json +24 -0
  127. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +1 -1
  128. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +1 -1
  129. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -1
  130. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.d.ts +2 -1
  131. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js +11 -2
  132. package/dist/elements/internal/InternalAsyncDetailsControl/InternalAsyncDetailsControl.js.map +1 -1
  133. package/dist/elements/internal/InternalAsyncDetailsControl/index.d.ts +1 -0
  134. package/dist/elements/internal/InternalAsyncDetailsControl/index.js +1 -0
  135. package/dist/elements/internal/InternalAsyncDetailsControl/index.js.map +1 -1
  136. package/dist/elements/internal/InternalCard/InternalCard.d.ts +1 -1
  137. package/dist/elements/internal/InternalCard/InternalCard.js +1 -1
  138. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  139. package/dist/elements/internal/InternalControl/InternalControl.d.ts +22 -2
  140. package/dist/elements/internal/InternalControl/InternalControl.js +29 -8
  141. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  142. package/dist/elements/internal/InternalControl/index.d.ts +2 -0
  143. package/dist/elements/internal/InternalControl/index.js +2 -0
  144. package/dist/elements/internal/InternalControl/index.js.map +1 -1
  145. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.d.ts +1 -1
  146. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js +1 -1
  147. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js.map +1 -1
  148. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +1 -1
  149. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +1 -1
  150. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
  151. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.d.ts +1 -1
  152. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js +1 -1
  153. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js.map +1 -1
  154. package/dist/elements/internal/InternalDetails/InternalDetails.d.ts +1 -1
  155. package/dist/elements/internal/InternalDetails/InternalDetails.js +1 -1
  156. package/dist/elements/internal/InternalDetails/InternalDetails.js.map +1 -1
  157. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +52 -0
  158. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +82 -7
  159. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -1
  160. package/dist/elements/internal/InternalForm/InternalForm.d.ts +16 -0
  161. package/dist/elements/internal/InternalForm/InternalForm.js +17 -0
  162. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  163. package/dist/elements/internal/InternalForm/index.d.ts +2 -2
  164. package/dist/elements/internal/InternalForm/index.js +2 -2
  165. package/dist/elements/internal/InternalForm/index.js.map +1 -1
  166. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +1 -1
  167. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +1 -1
  168. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
  169. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +1 -1
  170. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +1 -1
  171. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
  172. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +1 -1
  173. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +1 -1
  174. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
  175. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.d.ts +1 -1
  176. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +1 -1
  177. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -1
  178. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +1 -1
  179. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +1 -1
  180. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
  181. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +14 -0
  182. package/dist/elements/internal/{InternalForm/internal/InternalTimestampsControl → InternalTimestampsControl}/InternalTimestampsControl.js +12 -11
  183. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -0
  184. package/dist/elements/internal/{InternalForm/internal/InternalTimestampsControl → InternalTimestampsControl}/index.d.ts +2 -0
  185. package/dist/elements/internal/{InternalForm/internal/InternalTimestampsControl → InternalTimestampsControl}/index.js +2 -0
  186. package/dist/elements/internal/InternalTimestampsControl/index.js.map +1 -0
  187. package/dist/elements/public/ApiBrowser/ApiBrowser.d.ts +1 -1
  188. package/dist/elements/public/ApiBrowser/ApiBrowser.js +12 -6
  189. package/dist/elements/public/ApiBrowser/ApiBrowser.js.map +1 -1
  190. package/dist/elements/public/ApiBrowser/index.d.ts +1 -0
  191. package/dist/elements/public/ApiBrowser/index.js +1 -0
  192. package/dist/elements/public/ApiBrowser/index.js.map +1 -1
  193. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.d.ts +7 -0
  194. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +15 -3
  195. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  196. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.d.ts +1 -0
  197. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js +1 -0
  198. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/index.js.map +1 -1
  199. package/dist/elements/public/CopyToClipboard/CopyToClipboard.d.ts +9 -1
  200. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js +11 -2
  201. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js.map +1 -1
  202. package/dist/elements/public/CopyToClipboard/index.d.ts +1 -0
  203. package/dist/elements/public/CopyToClipboard/index.js +1 -0
  204. package/dist/elements/public/CopyToClipboard/index.js.map +1 -1
  205. package/dist/elements/public/CouponForm/CouponForm.js +1 -0
  206. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  207. package/dist/elements/public/DiscountBuilder/DiscountBuilder.d.ts +21 -9
  208. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +33 -30
  209. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  210. package/dist/elements/public/DiscountBuilder/index.d.ts +1 -0
  211. package/dist/elements/public/DiscountBuilder/index.js +1 -0
  212. package/dist/elements/public/DiscountBuilder/index.js.map +1 -1
  213. package/dist/elements/public/DiscountBuilder/types.d.ts +32 -0
  214. package/dist/elements/public/DiscountBuilder/types.js +2 -0
  215. package/dist/elements/public/DiscountBuilder/types.js.map +1 -0
  216. package/dist/elements/public/I18n/format/discount.js +1 -0
  217. package/dist/elements/public/I18n/format/discount.js.map +1 -1
  218. package/dist/elements/public/ItemCard/ItemCard.d.ts +6 -0
  219. package/dist/elements/public/ItemCard/ItemCard.js +10 -1
  220. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -1
  221. package/dist/elements/public/ItemForm/ItemForm.d.ts +45 -3
  222. package/dist/elements/public/ItemForm/ItemForm.js +50 -8
  223. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  224. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +1 -1
  225. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -1
  226. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +2 -1
  227. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +2 -1
  228. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -1
  229. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +3 -3
  230. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -1
  231. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +2 -1
  232. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +2 -1
  233. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -1
  234. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +16 -6
  235. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -1
  236. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +3 -3
  237. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -1
  238. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +2 -1
  239. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +2 -1
  240. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -1
  241. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +3 -8
  242. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -1
  243. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +2 -1
  244. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +2 -1
  245. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -1
  246. package/dist/elements/public/ItemOptionForm/ItemOptionForm.d.ts +18 -0
  247. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +18 -0
  248. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -1
  249. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +6 -0
  250. package/dist/elements/public/ShipmentCard/ShipmentCard.js +7 -5
  251. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -1
  252. package/dist/elements/public/ShipmentCard/index.d.ts +1 -0
  253. package/dist/elements/public/ShipmentCard/index.js +1 -0
  254. package/dist/elements/public/ShipmentCard/index.js.map +1 -1
  255. package/dist/elements/public/SwipeActions/SwipeActions.d.ts +16 -1
  256. package/dist/elements/public/SwipeActions/SwipeActions.js +15 -1
  257. package/dist/elements/public/SwipeActions/SwipeActions.js.map +1 -1
  258. package/dist/elements/public/Transaction/Transaction.d.ts +6 -0
  259. package/dist/elements/public/Transaction/Transaction.js +8 -2
  260. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  261. package/dist/elements/public/Transaction/index.d.ts +2 -4
  262. package/dist/elements/public/Transaction/index.js +2 -4
  263. package/dist/elements/public/Transaction/index.js.map +1 -1
  264. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +8 -12
  265. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -1
  266. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +1 -1
  267. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -1
  268. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.d.ts +4 -5
  269. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +15 -15
  270. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -1
  271. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +12 -23
  272. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -1
  273. package/dist/mixins/configurable.js +1 -0
  274. package/dist/mixins/configurable.js.map +1 -1
  275. package/dist/mixins/inferrable.js +1 -0
  276. package/dist/mixins/inferrable.js.map +1 -1
  277. package/dist/mixins/translatable.js +4 -2
  278. package/dist/mixins/translatable.js.map +1 -1
  279. package/package.json +9 -7
  280. package/dist/cdn/shared-25ef9e09.js +0 -1
  281. package/dist/cdn/shared-38bc104d.js +0 -1
  282. package/dist/cdn/shared-567c8c48.js +0 -1
  283. package/dist/cdn/shared-58a9174f.js +0 -1
  284. package/dist/cdn/shared-64657919.js +0 -1
  285. package/dist/cdn/shared-67651931.js +0 -1
  286. package/dist/cdn/shared-6eb57269.js +0 -15
  287. package/dist/cdn/shared-7a084a40.js +0 -1
  288. package/dist/cdn/shared-85618a7a.js +0 -1
  289. package/dist/cdn/shared-968add7f.js +0 -1
  290. package/dist/cdn/shared-c71f8ccc.js +0 -1
  291. package/dist/cdn/shared-cd65e716.js +0 -1
  292. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +0 -8
  293. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +0 -1
  294. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/index.js.map +0 -1
@@ -4,8 +4,24 @@ import { NucleonElement } from '../../public/NucleonElement/NucleonElement';
4
4
  declare const Base: typeof NucleonElement & {
5
5
  styles: import("lit-element").CSSResultArray;
6
6
  } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost>;
7
+ /**
8
+ * An internal base class for any nucleon-powered form. Renders create/delete
9
+ * buttons and timestamps by default, displays a spinner in non-idle states.
10
+ *
11
+ * @element foxy-internal-form
12
+ * @since 1.17.0
13
+ */
7
14
  export declare class InternalForm<TData extends HALJSONResource> extends Base<TData> {
15
+ /**
16
+ * Renders form body. This is the method you should implement in your forms
17
+ * instead of `.render()`. If you'd like to keep the submit button and the timestamps,
18
+ * don't forget to add `super.renderBody()` to your template.
19
+ */
8
20
  renderBody(): TemplateResult;
21
+ /**
22
+ * Renders the entire form. You should probably implement `.renderBody()`
23
+ * instead of this method in your form to keep the spinner and the common layout features.
24
+ */
9
25
  render(): TemplateResult;
10
26
  }
11
27
  export {};
@@ -4,7 +4,19 @@ import { NucleonElement } from "../../public/NucleonElement/NucleonElement.js";
4
4
  import { classMap } from "../../../utils/class-map.js";
5
5
  import { html } from 'lit-html';
6
6
  const Base = ConfigurableMixin(ThemeableMixin(NucleonElement));
7
+ /**
8
+ * An internal base class for any nucleon-powered form. Renders create/delete
9
+ * buttons and timestamps by default, displays a spinner in non-idle states.
10
+ *
11
+ * @element foxy-internal-form
12
+ * @since 1.17.0
13
+ */
7
14
  export class InternalForm extends Base {
15
+ /**
16
+ * Renders form body. This is the method you should implement in your forms
17
+ * instead of `.render()`. If you'd like to keep the submit button and the timestamps,
18
+ * don't forget to add `super.renderBody()` to your template.
19
+ */
8
20
  renderBody() {
9
21
  return this.data
10
22
  ? html `
@@ -13,6 +25,10 @@ export class InternalForm extends Base {
13
25
  `
14
26
  : html `<foxy-internal-create-control infer="create"></foxy-internal-create-control>`;
15
27
  }
28
+ /**
29
+ * Renders the entire form. You should probably implement `.renderBody()`
30
+ * instead of this method in your form to keep the spinner and the common layout features.
31
+ */
16
32
  render() {
17
33
  const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);
18
34
  return html `
@@ -28,6 +44,7 @@ export class InternalForm extends Base {
28
44
  </div>
29
45
 
30
46
  <div
47
+ data-testid="spinner"
31
48
  class=${classMap({
32
49
  'transition-opacity absolute inset-0 flex': true,
33
50
  'opacity-0 pointer-events-none': !isSpinnerVisible,
@@ -1 +1 @@
1
- {"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,cAAc,EAAE,sDAAmD;AAC5E,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAE/D,MAAM,OAAO,YAA4C,SAAQ,IAAW;IAC1E,UAAU;QACR,OAAO,IAAI,CAAC,IAAI;YACd,CAAC,CAAC,IAAI,CAAA;;;SAGH;YACH,CAAC,CAAC,IAAI,CAAA,8EAA8E,CAAC;IACzF,CAAC;IAED,MAAM;QACJ,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5F,OAAO,IAAI,CAAA;uBACQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;kBAEpB,QAAQ,CAAC;YACf,wBAAwB,EAAE,IAAI;YAC9B,oBAAoB,EAAE,IAAI;YAC1B,+BAA+B,EAAE,gBAAgB;SAClD,CAAC;;YAEA,IAAI,CAAC,UAAU,EAAE;;;;kBAIX,QAAQ,CAAC;YACf,0CAA0C,EAAE,IAAI;YAChD,+BAA+B,EAAE,CAAC,gBAAgB;SACnD,CAAC;;;qBAGS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;;oBAE1C,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;;;;;KAMjD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst Base = ConfigurableMixin(ThemeableMixin(NucleonElement));\n\nexport class InternalForm<TData extends HALJSONResource> extends Base<TData> {\n renderBody(): TemplateResult {\n return this.data\n ? html`\n <foxy-internal-timestamps-control infer=\"timestamps\"></foxy-internal-timestamps-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `\n : html`<foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>`;\n }\n\n render(): TemplateResult {\n const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);\n\n return html`\n <div aria-busy=${this.in('busy')} aria-live=\"polite\" class=\"relative\">\n <div\n class=${classMap({\n 'grid grid-cols-1 gap-m': true,\n 'transition-opacity': true,\n 'opacity-0 pointer-events-none': isSpinnerVisible,\n })}\n >\n ${this.renderBody()}\n </div>\n\n <div\n class=${classMap({\n 'transition-opacity absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isSpinnerVisible,\n })}\n >\n <foxy-spinner\n layout=${this.in('fail') ? 'vertical' : 'no-label'}\n class=\"m-auto\"\n state=${this.in('fail') ? 'error' : 'busy'}\n infer=\"spinner\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/InternalForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,cAAc,EAAE,sDAAmD;AAC5E,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,OAAO,YAA4C,SAAQ,IAAW;IAC1E;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,IAAI;YACd,CAAC,CAAC,IAAI,CAAA;;;SAGH;YACH,CAAC,CAAC,IAAI,CAAA,8EAA8E,CAAC;IACzF,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5F,OAAO,IAAI,CAAA;uBACQ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;;kBAEpB,QAAQ,CAAC;YACf,wBAAwB,EAAE,IAAI;YAC9B,oBAAoB,EAAE,IAAI;YAC1B,+BAA+B,EAAE,gBAAgB;SAClD,CAAC;;YAEA,IAAI,CAAC,UAAU,EAAE;;;;;kBAKX,QAAQ,CAAC;YACf,0CAA0C,EAAE,IAAI;YAChD,+BAA+B,EAAE,CAAC,gBAAgB;SACnD,CAAC;;;qBAGS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;;oBAE1C,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;;;;;KAMjD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { TemplateResult } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst Base = ConfigurableMixin(ThemeableMixin(NucleonElement));\n\n/**\n * An internal base class for any nucleon-powered form. Renders create/delete\n * buttons and timestamps by default, displays a spinner in non-idle states.\n *\n * @element foxy-internal-form\n * @since 1.17.0\n */\nexport class InternalForm<TData extends HALJSONResource> extends Base<TData> {\n /**\n * Renders form body. This is the method you should implement in your forms\n * instead of `.render()`. If you'd like to keep the submit button and the timestamps,\n * don't forget to add `super.renderBody()` to your template.\n */\n renderBody(): TemplateResult {\n return this.data\n ? html`\n <foxy-internal-timestamps-control infer=\"timestamps\"></foxy-internal-timestamps-control>\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `\n : html`<foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>`;\n }\n\n /**\n * Renders the entire form. You should probably implement `.renderBody()`\n * instead of this method in your form to keep the spinner and the common layout features.\n */\n render(): TemplateResult {\n const isSpinnerVisible = !this.in('idle') && (!this.in({ busy: 'fetching' }) || !this.data);\n\n return html`\n <div aria-busy=${this.in('busy')} aria-live=\"polite\" class=\"relative\">\n <div\n class=${classMap({\n 'grid grid-cols-1 gap-m': true,\n 'transition-opacity': true,\n 'opacity-0 pointer-events-none': isSpinnerVisible,\n })}\n >\n ${this.renderBody()}\n </div>\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition-opacity absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isSpinnerVisible,\n })}\n >\n <foxy-spinner\n layout=${this.in('fail') ? 'vertical' : 'no-label'}\n class=\"m-auto\"\n state=${this.in('fail') ? 'error' : 'busy'}\n infer=\"spinner\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import '../../public/Spinner/index';
1
+ import '../InternalTimestampsControl/index';
2
2
  import '../InternalCreateControl/index';
3
3
  import '../InternalDeleteControl/index';
4
- import './internal/InternalTimestampsControl/index';
4
+ import '../../public/Spinner/index';
5
5
  import { InternalForm } from './InternalForm';
6
6
  export { InternalForm };
@@ -1,7 +1,7 @@
1
- import "../../public/Spinner/index.js";
1
+ import "../InternalTimestampsControl/index.js";
2
2
  import "../InternalCreateControl/index.js";
3
3
  import "../InternalDeleteControl/index.js";
4
- import "./internal/InternalTimestampsControl/index.js";
4
+ import "../../public/Spinner/index.js";
5
5
  import { InternalForm } from "./InternalForm.js";
6
6
  customElements.define('foxy-internal-form', InternalForm);
7
7
  export { InternalForm };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AACpC,2CAAwC;AACxC,2CAAwC;AACxC,uDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '../../public/Spinner/index';\nimport '../InternalCreateControl/index';\nimport '../InternalDeleteControl/index';\nimport './internal/InternalTimestampsControl/index';\nimport { InternalForm } from './InternalForm';\n\ncustomElements.define('foxy-internal-form', InternalForm);\n\nexport { InternalForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalForm/index.ts"],"names":[],"mappings":"AAAA,+CAA4C;AAC5C,2CAAwC;AACxC,2CAAwC;AAExC,uCAAoC;AAEpC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,CAAC","sourcesContent":["import '../InternalTimestampsControl/index';\nimport '../InternalCreateControl/index';\nimport '../InternalDeleteControl/index';\n\nimport '../../public/Spinner/index';\n\nimport { InternalForm } from './InternalForm';\n\ncustomElements.define('foxy-internal-form', InternalForm);\n\nexport { InternalForm };\n"]}
@@ -4,7 +4,7 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
4
4
  * Internal control displaying a custom field for frequency input.
5
5
  *
6
6
  * @since 1.17.0
7
- * @tag foxy-internal-frequency-control
7
+ * @element foxy-internal-frequency-control
8
8
  */
9
9
  export declare class InternalFrequencyControl extends InternalEditableControl {
10
10
  static get styles(): CSSResultArray;
@@ -5,7 +5,7 @@ import { css, html } from 'lit-element';
5
5
  * Internal control displaying a custom field for frequency input.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-frequency-control
8
+ * @element foxy-internal-frequency-control
9
9
  */
10
10
  export class InternalFrequencyControl extends InternalEditableControl {
11
11
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\nimport type { CSSResultArray, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { css, html } from 'lit-element';\n\n/**\n * Internal control displaying a custom field for frequency input.\n *\n * @since 1.17.0\n * @tag foxy-internal-frequency-control\n */\nexport class InternalFrequencyControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `,\n ];\n }\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const { count, units } = parseDuration(value);\n return [count.toString(), units];\n },\n };\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n const count = parseDuration(value).count;\n\n return html`\n <vaadin-custom-field\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .errorMessage=${this._errorMessage ?? ''}\n .helperText=${this.helperText}\n .label=${this.label}\n .value=${value}\n .i18n=${this.__i18n}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as CustomFieldElement;\n this._value = field.value as string;\n }}\n >\n <vaadin-integer-field\n max=\"999\"\n min=\"1\"\n prevent-invalid-input\n has-controls\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n .items=${[\n { value: 'd', label: this.t('day', { count }) },\n { value: 'w', label: this.t('week', { count }) },\n { value: 'm', label: this.t('month', { count }) },\n { value: 'y', label: this.t('year', { count }) },\n ]}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.firstElementChild as CustomFieldElement;\n if (field.value !== this._value) field.value = this._value as string;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\nimport type { CSSResultArray, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { css, html } from 'lit-element';\n\n/**\n * Internal control displaying a custom field for frequency input.\n *\n * @since 1.17.0\n * @element foxy-internal-frequency-control\n */\nexport class InternalFrequencyControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `,\n ];\n }\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const { count, units } = parseDuration(value);\n return [count.toString(), units];\n },\n };\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n const count = parseDuration(value).count;\n\n return html`\n <vaadin-custom-field\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .errorMessage=${this._errorMessage ?? ''}\n .helperText=${this.helperText}\n .label=${this.label}\n .value=${value}\n .i18n=${this.__i18n}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as CustomFieldElement;\n this._value = field.value as string;\n }}\n >\n <vaadin-integer-field\n max=\"999\"\n min=\"1\"\n prevent-invalid-input\n has-controls\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n .items=${[\n { value: 'd', label: this.t('day', { count }) },\n { value: 'w', label: this.t('week', { count }) },\n { value: 'm', label: this.t('month', { count }) },\n { value: 'y', label: this.t('year', { count }) },\n ]}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.firstElementChild as CustomFieldElement;\n if (field.value !== this._value) field.value = this._value as string;\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
4
4
  * Internal control displaying a basic integer box.
5
5
  *
6
6
  * @since 1.17.0
7
- * @tag foxy-internal-integer-control
7
+ * @element foxy-internal-integer-control
8
8
  */
9
9
  export declare class InternalIntegerControl extends InternalEditableControl {
10
10
  renderControl(): TemplateResult;
@@ -5,7 +5,7 @@ import { html } from 'lit-element';
5
5
  * Internal control displaying a basic integer box.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-integer-control
8
+ * @element foxy-internal-integer-control
9
9
  */
10
10
  export class InternalIntegerControl extends InternalEditableControl {
11
11
  renderControl() {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAoC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic integer box.\n *\n * @since 1.17.0\n * @tag foxy-internal-integer-control\n */\nexport class InternalIntegerControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-integer-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n has-controls\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this._value = parseInt(field.value);\n }}\n >\n </vaadin-integer-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAoC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic integer box.\n *\n * @since 1.17.0\n * @element foxy-internal-integer-control\n */\nexport class InternalIntegerControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-integer-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n has-controls\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this._value = parseInt(field.value);\n }}\n >\n </vaadin-integer-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
4
4
  * Internal control displaying a basic number box.
5
5
  *
6
6
  * @since 1.17.0
7
- * @tag foxy-internal-number-control
7
+ * @element foxy-internal-number-control
8
8
  */
9
9
  export declare class InternalNumberControl extends InternalEditableControl {
10
10
  renderControl(): TemplateResult;
@@ -5,7 +5,7 @@ import { html } from 'lit-element';
5
5
  * Internal control displaying a basic number box.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-number-control
8
+ * @element foxy-internal-number-control
9
9
  */
10
10
  export class InternalNumberControl extends InternalEditableControl {
11
11
  renderControl() {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalNumberControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalNumberControl/InternalNumberControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAChE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAmC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { NumberFieldElement } from '@vaadin/vaadin-text-field/vaadin-number-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic number box.\n *\n * @since 1.17.0\n * @tag foxy-internal-number-control\n */\nexport class InternalNumberControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-number-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n has-controls\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as NumberFieldElement;\n this._value = parseFloat(field.value);\n }}\n >\n </vaadin-number-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalNumberControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalNumberControl/InternalNumberControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAChE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAmC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { NumberFieldElement } from '@vaadin/vaadin-text-field/vaadin-number-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic number box.\n *\n * @since 1.17.0\n * @element foxy-internal-number-control\n */\nexport class InternalNumberControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-number-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n has-controls\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as NumberFieldElement;\n this._value = parseFloat(field.value);\n }}\n >\n </vaadin-number-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -5,7 +5,7 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
5
5
  * Internal control wrapper for `vaadin-radio-group` element.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-radio-group-control
8
+ * @element foxy-internal-radio-group-control
9
9
  */
10
10
  export declare class InternalRadioGroupControl extends InternalEditableControl {
11
11
  static get properties(): PropertyDeclarations;
@@ -5,7 +5,7 @@ import { html } from 'lit-html';
5
5
  * Internal control wrapper for `vaadin-radio-group` element.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-radio-group-control
8
+ * @element foxy-internal-radio-group-control
9
9
  */
10
10
  export class InternalRadioGroupControl extends InternalEditableControl {
11
11
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalRadioGroupControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAAtE;;QASE,uCAAuC;QACvC,YAAO,GAAa,EAAE,CAAC;QAEvB,sEAAsE;QACtE,UAAK,GAAkB,IAAI,CAAC;IA4B9B,CAAC;IAxCC,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;IAQD,aAAa;;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;gBAEV,SAAS,OAAC,IAAI,CAAC,KAAK,mCAAI,SAAS,CAAC;oBAC9B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;yBACzB,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAuB;kBAC3B,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAkC,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;yCACiB,MAAM,CAAC,KAAK;wCACb,MAAM,CAAC,KAAK;;WAEzC,CACF;;KAEJ,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { RadioGroupElement } from '@vaadin/vaadin-radio-button/vaadin-radio-group';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\n/**\n * Internal control wrapper for `vaadin-radio-group` element.\n *\n * @since 1.17.0\n * @tag foxy-internal-radio-group-control\n */\nexport class InternalRadioGroupControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Same as the \"theme\" attribute/property of `vaadin-radio-group`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-radio-group\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled || this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value as string | null}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as RadioGroupElement;\n this._value = field.value;\n }}\n >\n ${this.options.map(\n option => html`\n <vaadin-radio-button value=${option.value}>\n <foxy-i18n infer=\"\" key=${option.label}></foxy-i18n>\n </vaadin-radio-button>\n `\n )}\n </vaadin-radio-group>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalRadioGroupControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAAtE;;QASE,uCAAuC;QACvC,YAAO,GAAa,EAAE,CAAC;QAEvB,sEAAsE;QACtE,UAAK,GAAkB,IAAI,CAAC;IA4B9B,CAAC;IAxCC,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;IAQD,aAAa;;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;gBAEV,SAAS,OAAC,IAAI,CAAC,KAAK,mCAAI,SAAS,CAAC;oBAC9B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;yBACzB,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAuB;kBAC3B,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAkC,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;yCACiB,MAAM,CAAC,KAAK;wCACb,MAAM,CAAC,KAAK;;WAEzC,CACF;;KAEJ,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { RadioGroupElement } from '@vaadin/vaadin-radio-button/vaadin-radio-group';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\n/**\n * Internal control wrapper for `vaadin-radio-group` element.\n *\n * @since 1.17.0\n * @element foxy-internal-radio-group-control\n */\nexport class InternalRadioGroupControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Same as the \"theme\" attribute/property of `vaadin-radio-group`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-radio-group\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled || this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value as string | null}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as RadioGroupElement;\n this._value = field.value;\n }}\n >\n ${this.options.map(\n option => html`\n <vaadin-radio-button value=${option.value}>\n <foxy-i18n infer=\"\" key=${option.label}></foxy-i18n>\n </vaadin-radio-button>\n `\n )}\n </vaadin-radio-group>\n `;\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
4
4
  * Internal control displaying a basic text box.
5
5
  *
6
6
  * @since 1.17.0
7
- * @tag foxy-internal-text-control
7
+ * @element foxy-internal-text-control
8
8
  */
9
9
  export declare class InternalTextControl extends InternalEditableControl {
10
10
  renderControl(): TemplateResult;
@@ -5,7 +5,7 @@ import { html } from 'lit-element';
5
5
  * Internal control displaying a basic text box.
6
6
  *
7
7
  * @since 1.17.0
8
- * @tag foxy-internal-text-control
8
+ * @element foxy-internal-text-control
9
9
  */
10
10
  export class InternalTextControl extends InternalEditableControl {
11
11
  renderControl() {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAC9D,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @tag foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAC9D,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { CSSResultArray } from 'lit-element';
2
+ import { TemplateResult } from 'lit-html';
3
+ import { InternalControl } from '../InternalControl/InternalControl';
4
+ /**
5
+ * Internal control displaying creation and last modification date
6
+ * for a hAPI resource in a table.
7
+ *
8
+ * @element foxy-internal-timestamps-control
9
+ * @since 1.17.0
10
+ */
11
+ export declare class InternalTimestampsControl extends InternalControl {
12
+ static get styles(): CSSResultArray;
13
+ renderControl(): TemplateResult;
14
+ }
@@ -1,12 +1,15 @@
1
1
  import { css } from 'lit-element';
2
2
  import { html } from 'lit-html';
3
3
  import { get } from 'lodash-es';
4
- import { InternalControl } from "../../../InternalControl/InternalControl.js";
4
+ import { InternalControl } from "../InternalControl/InternalControl.js";
5
+ /**
6
+ * Internal control displaying creation and last modification date
7
+ * for a hAPI resource in a table.
8
+ *
9
+ * @element foxy-internal-timestamps-control
10
+ * @since 1.17.0
11
+ */
5
12
  export class InternalTimestampsControl extends InternalControl {
6
- constructor() {
7
- super(...arguments);
8
- this.infer = 'timestamps';
9
- }
10
13
  static get styles() {
11
14
  return [
12
15
  super.styles,
@@ -22,28 +25,26 @@ export class InternalTimestampsControl extends InternalControl {
22
25
  <tbody class="divide-y divide-contrast-10">
23
26
  <tr>
24
27
  <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">
25
- <foxy-i18n lang=${this.lang} key="date_created" ns=${this.ns}></foxy-i18n>
28
+ <foxy-i18n infer="" key="date_created"></foxy-i18n>
26
29
  </td>
27
30
  <td class="max-w-0 truncate py-s text-body w-2-3">
28
31
  <foxy-i18n
29
32
  options=${JSON.stringify({ value: get(this, 'nucleon.form.date_created') })}
30
- lang=${this.lang}
33
+ infer=""
31
34
  key="date"
32
- ns=${this.ns}
33
35
  >
34
36
  </foxy-i18n>
35
37
  </td>
36
38
  </tr>
37
39
  <tr>
38
40
  <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">
39
- <foxy-i18n lang=${this.lang} key="date_modified" ns=${this.ns}></foxy-i18n>
41
+ <foxy-i18n infer="" key="date_modified"></foxy-i18n>
40
42
  </td>
41
43
  <td class="max-w-0 truncate py-s text-body w-2-3">
42
44
  <foxy-i18n
43
45
  options=${JSON.stringify({ value: get(this, 'nucleon.form.date_modified') })}
44
- lang=${this.lang}
46
+ infer=""
45
47
  key="date"
46
- ns=${this.ns}
47
48
  >
48
49
  </foxy-i18n>
49
50
  </td>
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalTimestampsControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTimestampsControl/InternalTimestampsControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,8CAA2C;AAErE;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;OAIF;SACF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;;;;;;;;;0BASW,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,CAAC;;;;;;;;;;;;;0BAajE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC;;;;;;;;;KASvF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { css, CSSResultArray } from 'lit-element';\nimport { html, TemplateResult } from 'lit-html';\nimport { get } from 'lodash-es';\nimport { InternalControl } from '../InternalControl/InternalControl';\n\n/**\n * Internal control displaying creation and last modification date\n * for a hAPI resource in a table.\n *\n * @element foxy-internal-timestamps-control\n * @since 1.17.0\n */\nexport class InternalTimestampsControl extends InternalControl {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-0 {\n max-width: 0;\n }\n `,\n ];\n }\n\n renderControl(): TemplateResult {\n return html`\n <table class=\"font-lumo text-m leading-m w-full\">\n <tbody class=\"divide-y divide-contrast-10\">\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">\n <foxy-i18n infer=\"\" key=\"date_created\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <foxy-i18n\n options=${JSON.stringify({ value: get(this, 'nucleon.form.date_created') })}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n </td>\n </tr>\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">\n <foxy-i18n infer=\"\" key=\"date_modified\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <foxy-i18n\n options=${JSON.stringify({ value: get(this, 'nucleon.form.date_modified') })}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n </td>\n </tr>\n </tbody>\n </table>\n `;\n }\n}\n"]}
@@ -1,2 +1,4 @@
1
+ import '../../public/I18n/index';
2
+ import '../InternalControl/index';
1
3
  import { InternalTimestampsControl } from './InternalTimestampsControl';
2
4
  export { InternalTimestampsControl };
@@ -1,3 +1,5 @@
1
+ import "../../public/I18n/index.js";
2
+ import "../InternalControl/index.js";
1
3
  import { InternalTimestampsControl } from "./InternalTimestampsControl.js";
2
4
  customElements.define('foxy-internal-timestamps-control', InternalTimestampsControl);
3
5
  export { InternalTimestampsControl };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTimestampsControl/index.ts"],"names":[],"mappings":"AAAA,oCAAiC;AACjC,qCAAkC;AAElC,OAAO,EAAE,yBAAyB,EAAE,uCAAoC;AAExE,cAAc,CAAC,MAAM,CAAC,kCAAkC,EAAE,yBAAyB,CAAC,CAAC;AAErF,OAAO,EAAE,yBAAyB,EAAE,CAAC","sourcesContent":["import '../../public/I18n/index';\nimport '../InternalControl/index';\n\nimport { InternalTimestampsControl } from './InternalTimestampsControl';\n\ncustomElements.define('foxy-internal-timestamps-control', InternalTimestampsControl);\n\nexport { InternalTimestampsControl };\n"]}
@@ -5,7 +5,7 @@ declare const Base: typeof NucleonElement & import("lit-element").Constructor<im
5
5
  defaultNS: string;
6
6
  } & {
7
7
  styles: import("lit-element").CSSResultArray;
8
- };
8
+ } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost>;
9
9
  /**
10
10
  * Interactive hAPI explorer.
11
11
  *
@@ -1,10 +1,11 @@
1
1
  import { TranslatableMixin } from "../../../mixins/translatable.js";
2
+ import { ConfigurableMixin } from "../../../mixins/configurable.js";
2
3
  import { ThemeableMixin } from "../../../mixins/themeable.js";
3
4
  import { NucleonElement } from "../NucleonElement/NucleonElement.js";
4
5
  import { html } from 'lit-element';
5
6
  import debounce from 'lodash-es/debounce';
6
7
  const NS = 'api-browser';
7
- const Base = ThemeableMixin(TranslatableMixin(NucleonElement, NS));
8
+ const Base = ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)));
8
9
  /**
9
10
  * Interactive hAPI explorer.
10
11
  *
@@ -63,7 +64,7 @@ export class ApiBrowser extends Base {
63
64
  title=${this.t('go_back')}
64
65
  theme="icon contrast"
65
66
  class="p-0"
66
- ?disabled=${!this.__canGoBack}
67
+ ?disabled=${this.disabled || !this.__canGoBack}
67
68
  @click=${() => this.__goBack()}
68
69
  >
69
70
  <iron-icon class="icon-inline text-m" icon="icons:arrow-back"></iron-icon>
@@ -73,7 +74,7 @@ export class ApiBrowser extends Base {
73
74
  title=${this.t('go_home')}
74
75
  theme="icon contrast"
75
76
  class="p-0"
76
- ?disabled=${!this.__canGoHome}
77
+ ?disabled=${this.disabled || !this.__canGoHome}
77
78
  @click=${() => this.__goHome()}
78
79
  >
79
80
  <iron-icon class="icon-inline text-m" icon="icons:home"></iron-icon>
@@ -81,7 +82,10 @@ export class ApiBrowser extends Base {
81
82
 
82
83
  <vaadin-text-field
83
84
  placeholder="https://api.foxy.io/stores/0"
85
+ aria-label=${this.t('current_url')}
84
86
  class="flex-1"
87
+ ?disabled=${this.disabled}
88
+ ?readonly=${this.readonly}
85
89
  .value=${this.href || this.parent}
86
90
  @input=${(evt) => {
87
91
  const field = evt.currentTarget;
@@ -96,7 +100,7 @@ export class ApiBrowser extends Base {
96
100
  title=${this.t('refresh')}
97
101
  theme="icon contrast"
98
102
  class="p-0"
99
- ?disabled=${this.in('busy')}
103
+ ?disabled=${this.disabled || this.in('busy')}
100
104
  @click=${() => this.refresh()}
101
105
  >
102
106
  <iron-icon class="icon-inline text-m" icon="icons:refresh"></iron-icon>
@@ -104,18 +108,20 @@ export class ApiBrowser extends Base {
104
108
 
105
109
  <div class="grid grid-cols-2">
106
110
  <vaadin-button
111
+ title=${this.t('get_mode')}
107
112
  theme=${this.href ? 'contrast primary' : 'contrast'}
108
113
  class="rounded-r-none p-0"
109
- ?disabled=${this.__mode === 'get'}
114
+ ?disabled=${this.disabled || this.__mode === 'get'}
110
115
  @click=${() => (this.__mode = 'get')}
111
116
  >
112
117
  GET
113
118
  </vaadin-button>
114
119
 
115
120
  <vaadin-button
121
+ title=${this.t('post_mode')}
116
122
  theme=${this.href ? 'contrast' : 'contrast primary'}
117
123
  class="rounded-l-none p-0"
118
- ?disabled=${this.__mode === 'post'}
124
+ ?disabled=${this.disabled || this.__mode === 'post'}
119
125
  @click=${() => (this.__mode = 'post')}
120
126
  >
121
127
  POST
@@ -1 +1 @@
1
- {"version":3,"file":"ApiBrowser.js","sourceRoot":"","sources":["../../../../src/elements/public/ApiBrowser/ApiBrowser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { InternalApiBrowserResourceForm } from './internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm';\nimport type { ItemRendererContext } from '../CollectionPage/types';\nimport type { FetchEvent } from '../NucleonElement/FetchEvent';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { html } from 'lit-element';\n\nimport debounce from 'lodash-es/debounce';\n\nconst NS = 'api-browser';\nconst Base = ThemeableMixin(TranslatableMixin(NucleonElement, NS));\n\n/**\n * Interactive hAPI explorer.\n *\n * @element foxy-api-explorer\n * @since 1.17.0\n */\nexport class ApiBrowser extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __history: { attribute: false },\n home: { type: String },\n };\n }\n\n /** Bookmark URL of your API. */\n home: string | null = null;\n\n private __history: { href: string; parent: string }[] = [];\n\n private __debounce = debounce((callback: () => void) => callback(), 250);\n\n private __renderItem = ({ href, html }: ItemRendererContext<Data>) => {\n if (!href) return html``;\n return html`\n <foxy-internal-api-browser-resource-form infer=\"\" href=${href}>\n </foxy-internal-api-browser-resource-form>\n `;\n };\n\n private __handleExistingResourceFetch = (evt: FetchEvent) => {\n if (evt.request.method === 'DELETE') {\n evt.preventDefault();\n evt.respondWith(\n new ApiBrowser.API(this).fetch(evt.request).then(response => {\n if (response.ok) {\n if (this.__canGoBack) {\n this.__goBack();\n } else if (this.__canGoHome) {\n this.__goHome();\n } else {\n this.parent = '';\n this.href = '';\n }\n }\n\n return response;\n })\n );\n }\n };\n\n render(): TemplateResult {\n return html`\n <div class=\"space-y-m\">\n <div class=\"flex items-center gap-s flex-wrap-reverse\">\n <vaadin-button\n title=${this.t('go_back')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${!this.__canGoBack}\n @click=${() => this.__goBack()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:arrow-back\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n title=${this.t('go_home')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${!this.__canGoHome}\n @click=${() => this.__goHome()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:home\"></iron-icon>\n </vaadin-button>\n\n <vaadin-text-field\n placeholder=\"https://api.foxy.io/stores/0\"\n class=\"flex-1\"\n .value=${this.href || this.parent}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n const value = field.value;\n const property = this.href ? 'href' : 'parent';\n\n this.__debounce(() => (this[property] = value));\n }}\n >\n </vaadin-text-field>\n\n <vaadin-button\n title=${this.t('refresh')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${this.in('busy')}\n @click=${() => this.refresh()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:refresh\"></iron-icon>\n </vaadin-button>\n\n <div class=\"grid grid-cols-2\">\n <vaadin-button\n theme=${this.href ? 'contrast primary' : 'contrast'}\n class=\"rounded-r-none p-0\"\n ?disabled=${this.__mode === 'get'}\n @click=${() => (this.__mode = 'get')}\n >\n GET\n </vaadin-button>\n\n <vaadin-button\n theme=${this.href ? 'contrast' : 'contrast primary'}\n class=\"rounded-l-none p-0\"\n ?disabled=${this.__mode === 'post'}\n @click=${() => (this.__mode = 'post')}\n >\n POST\n </vaadin-button>\n </div>\n </div>\n\n <div\n @navigate:get=${(evt: CustomEvent<string>) => {\n evt.stopPropagation();\n this.__history.push({ href: this.href, parent: this.parent });\n this.parent = '';\n this.href = evt.detail;\n }}\n @navigate:post=${(evt: CustomEvent<string>) => {\n evt.stopPropagation();\n this.__history.push({ href: this.href, parent: this.parent });\n this.parent = evt.detail;\n this.href = '';\n }}\n >\n ${this.href\n ? html`\n ${this.data?._links.first\n ? html`\n <foxy-pagination first=${this.href} infer=\"\">\n <foxy-collection-page\n class=\"block space-y-m mb-m\"\n infer=\"\"\n .item=${this.__renderItem as any}\n >\n </foxy-collection-page>\n </foxy-pagination>\n `\n : html`\n <foxy-internal-api-browser-resource-form\n infer=\"\"\n href=${this.href}\n open\n @fetch=${this.__handleExistingResourceFetch}\n >\n </foxy-internal-api-browser-resource-form>\n `}\n `\n : html`\n <foxy-internal-api-browser-resource-form\n infer=\"\"\n parent=${this.parent}\n open\n @update=${(evt: CustomEvent) => {\n const form = evt.currentTarget as InternalApiBrowserResourceForm;\n if (form.in({ idle: 'snapshot' })) {\n this.href = form.data._links.self.href;\n this.parent = '';\n }\n }}\n >\n </foxy-internal-api-browser-resource-form>\n `}\n </div>\n </div>\n `;\n }\n\n private get __canGoBack() {\n return this.__history.length > 0;\n }\n\n private get __canGoHome() {\n return this.href !== this.home;\n }\n\n private get __mode() {\n return this.href ? 'get' : 'post';\n }\n\n private set __mode(newValue: 'get' | 'post') {\n if (newValue === 'get') {\n this.href = this.parent;\n this.parent = '';\n } else {\n this.parent = this.href;\n this.href = '';\n }\n }\n\n private __goBack() {\n const index = this.__history.length - 1;\n const entry = this.__history[index];\n\n this.parent = entry?.parent ?? '';\n this.href = entry?.href ?? '';\n this.__history = this.__history.slice(0, index);\n }\n\n private __goHome() {\n this.__history = [];\n this.parent = '';\n this.href = this.home ?? '';\n }\n}\n"]}
1
+ {"version":3,"file":"ApiBrowser.js","sourceRoot":"","sources":["../../../../src/elements/public/ApiBrowser/ApiBrowser.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { InternalApiBrowserResourceForm } from './internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm';\nimport type { ItemRendererContext } from '../CollectionPage/types';\nimport type { FetchEvent } from '../NucleonElement/FetchEvent';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { html } from 'lit-element';\n\nimport debounce from 'lodash-es/debounce';\n\nconst NS = 'api-browser';\nconst Base = ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Interactive hAPI explorer.\n *\n * @element foxy-api-explorer\n * @since 1.17.0\n */\nexport class ApiBrowser extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __history: { attribute: false },\n home: { type: String },\n };\n }\n\n /** Bookmark URL of your API. */\n home: string | null = null;\n\n private __history: { href: string; parent: string }[] = [];\n\n private __debounce = debounce((callback: () => void) => callback(), 250);\n\n private __renderItem = ({ href, html }: ItemRendererContext<Data>) => {\n if (!href) return html``;\n return html`\n <foxy-internal-api-browser-resource-form infer=\"\" href=${href}>\n </foxy-internal-api-browser-resource-form>\n `;\n };\n\n private __handleExistingResourceFetch = (evt: FetchEvent) => {\n if (evt.request.method === 'DELETE') {\n evt.preventDefault();\n evt.respondWith(\n new ApiBrowser.API(this).fetch(evt.request).then(response => {\n if (response.ok) {\n if (this.__canGoBack) {\n this.__goBack();\n } else if (this.__canGoHome) {\n this.__goHome();\n } else {\n this.parent = '';\n this.href = '';\n }\n }\n\n return response;\n })\n );\n }\n };\n\n render(): TemplateResult {\n return html`\n <div class=\"space-y-m\">\n <div class=\"flex items-center gap-s flex-wrap-reverse\">\n <vaadin-button\n title=${this.t('go_back')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${this.disabled || !this.__canGoBack}\n @click=${() => this.__goBack()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:arrow-back\"></iron-icon>\n </vaadin-button>\n\n <vaadin-button\n title=${this.t('go_home')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${this.disabled || !this.__canGoHome}\n @click=${() => this.__goHome()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:home\"></iron-icon>\n </vaadin-button>\n\n <vaadin-text-field\n placeholder=\"https://api.foxy.io/stores/0\"\n aria-label=${this.t('current_url')}\n class=\"flex-1\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .value=${this.href || this.parent}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n const value = field.value;\n const property = this.href ? 'href' : 'parent';\n\n this.__debounce(() => (this[property] = value));\n }}\n >\n </vaadin-text-field>\n\n <vaadin-button\n title=${this.t('refresh')}\n theme=\"icon contrast\"\n class=\"p-0\"\n ?disabled=${this.disabled || this.in('busy')}\n @click=${() => this.refresh()}\n >\n <iron-icon class=\"icon-inline text-m\" icon=\"icons:refresh\"></iron-icon>\n </vaadin-button>\n\n <div class=\"grid grid-cols-2\">\n <vaadin-button\n title=${this.t('get_mode')}\n theme=${this.href ? 'contrast primary' : 'contrast'}\n class=\"rounded-r-none p-0\"\n ?disabled=${this.disabled || this.__mode === 'get'}\n @click=${() => (this.__mode = 'get')}\n >\n GET\n </vaadin-button>\n\n <vaadin-button\n title=${this.t('post_mode')}\n theme=${this.href ? 'contrast' : 'contrast primary'}\n class=\"rounded-l-none p-0\"\n ?disabled=${this.disabled || this.__mode === 'post'}\n @click=${() => (this.__mode = 'post')}\n >\n POST\n </vaadin-button>\n </div>\n </div>\n\n <div\n @navigate:get=${(evt: CustomEvent<string>) => {\n evt.stopPropagation();\n this.__history.push({ href: this.href, parent: this.parent });\n this.parent = '';\n this.href = evt.detail;\n }}\n @navigate:post=${(evt: CustomEvent<string>) => {\n evt.stopPropagation();\n this.__history.push({ href: this.href, parent: this.parent });\n this.parent = evt.detail;\n this.href = '';\n }}\n >\n ${this.href\n ? html`\n ${this.data?._links.first\n ? html`\n <foxy-pagination first=${this.href} infer=\"\">\n <foxy-collection-page\n class=\"block space-y-m mb-m\"\n infer=\"\"\n .item=${this.__renderItem as any}\n >\n </foxy-collection-page>\n </foxy-pagination>\n `\n : html`\n <foxy-internal-api-browser-resource-form\n infer=\"\"\n href=${this.href}\n open\n @fetch=${this.__handleExistingResourceFetch}\n >\n </foxy-internal-api-browser-resource-form>\n `}\n `\n : html`\n <foxy-internal-api-browser-resource-form\n infer=\"\"\n parent=${this.parent}\n open\n @update=${(evt: CustomEvent) => {\n const form = evt.currentTarget as InternalApiBrowserResourceForm;\n if (form.in({ idle: 'snapshot' })) {\n this.href = form.data._links.self.href;\n this.parent = '';\n }\n }}\n >\n </foxy-internal-api-browser-resource-form>\n `}\n </div>\n </div>\n `;\n }\n\n private get __canGoBack() {\n return this.__history.length > 0;\n }\n\n private get __canGoHome() {\n return this.href !== this.home;\n }\n\n private get __mode() {\n return this.href ? 'get' : 'post';\n }\n\n private set __mode(newValue: 'get' | 'post') {\n if (newValue === 'get') {\n this.href = this.parent;\n this.parent = '';\n } else {\n this.parent = this.href;\n this.href = '';\n }\n }\n\n private __goBack() {\n const index = this.__history.length - 1;\n const entry = this.__history[index];\n\n this.parent = entry?.parent ?? '';\n this.href = entry?.href ?? '';\n this.__history = this.__history.slice(0, index);\n }\n\n private __goHome() {\n this.__history = [];\n this.parent = '';\n this.href = this.home ?? '';\n }\n}\n"]}
@@ -4,6 +4,7 @@ import '@polymer/iron-icons';
4
4
  import '@polymer/iron-icon';
5
5
  import '../CollectionPage/index';
6
6
  import '../Pagination/index';
7
+ import '../I18n/index';
7
8
  import './internal/InternalApiBrowserResourceForm/index';
8
9
  import { ApiBrowser } from './ApiBrowser';
9
10
  export { ApiBrowser };
@@ -4,6 +4,7 @@ import '@polymer/iron-icons';
4
4
  import '@polymer/iron-icon';
5
5
  import "../CollectionPage/index.js";
6
6
  import "../Pagination/index.js";
7
+ import "../I18n/index.js";
7
8
  import "./internal/InternalApiBrowserResourceForm/index.js";
8
9
  import { ApiBrowser } from "./ApiBrowser.js";
9
10
  customElements.define('foxy-api-browser', ApiBrowser);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ApiBrowser/index.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,oCAAiC;AACjC,gCAA6B;AAE7B,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field';\nimport '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../CollectionPage/index';\nimport '../Pagination/index';\n\nimport './internal/InternalApiBrowserResourceForm/index';\n\nimport { ApiBrowser } from './ApiBrowser';\n\ncustomElements.define('foxy-api-browser', ApiBrowser);\n\nexport { ApiBrowser };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ApiBrowser/index.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAE5B,oCAAiC;AACjC,gCAA6B;AAC7B,0BAAuB;AAEvB,4DAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAE1C,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field';\nimport '@vaadin/vaadin-button';\nimport '@polymer/iron-icons';\nimport '@polymer/iron-icon';\n\nimport '../CollectionPage/index';\nimport '../Pagination/index';\nimport '../I18n/index';\n\nimport './internal/InternalApiBrowserResourceForm/index';\n\nimport { ApiBrowser } from './ApiBrowser';\n\ncustomElements.define('foxy-api-browser', ApiBrowser);\n\nexport { ApiBrowser };\n"]}
@@ -6,10 +6,17 @@ import { InternalForm } from '../../../../internal/InternalForm/InternalForm';
6
6
  declare const InternalApiBrowserResourceForm_base: typeof InternalForm & import("lit-element").Constructor<import("../../../../../mixins/translatable").TranslatableMixinHost> & {
7
7
  defaultNS: string;
8
8
  };
9
+ /**
10
+ * Internal raw resource JSON editor for use with ApiBrowser.
11
+ *
12
+ * @element foxy-internal-api-browser-resource-form
13
+ * @since 1.17.0
14
+ */
9
15
  export declare class InternalApiBrowserResourceForm extends InternalApiBrowserResourceForm_base<Data> {
10
16
  static get properties(): PropertyDeclarations;
11
17
  static get styles(): CSSResultArray;
12
18
  static get v8n(): NucleonV8N<any>;
19
+ /** Same as the "open" attribute/property of the details element. */
13
20
  open: boolean;
14
21
  renderBody(): TemplateResult;
15
22
  updated(changes: Map<keyof this, unknown>): void;