@foxy.io/elements 1.16.0-beta.2 → 1.16.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) 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-applied-tax-card.js +1 -1
  5. package/dist/cdn/foxy-attribute-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-collection-page.js +1 -1
  9. package/dist/cdn/foxy-collection-pages.js +1 -1
  10. package/dist/cdn/foxy-copy-to-clipboard.js +1 -0
  11. package/dist/cdn/foxy-coupon-card.js +1 -1
  12. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-detail-card.js +1 -0
  15. package/dist/cdn/foxy-coupon-form.js +1 -1
  16. package/dist/cdn/foxy-custom-field-card.js +1 -1
  17. package/dist/cdn/foxy-custom-field-form.js +1 -1
  18. package/dist/cdn/foxy-customer-api.js +1 -1
  19. package/dist/cdn/foxy-customer-card.js +1 -1
  20. package/dist/cdn/foxy-customer-form.js +1 -1
  21. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  22. package/dist/cdn/foxy-customer-portal.js +15 -15
  23. package/dist/cdn/foxy-customer.js +6 -6
  24. package/dist/cdn/foxy-customers-table.js +1 -1
  25. package/dist/cdn/foxy-discount-builder.js +1 -0
  26. package/dist/cdn/foxy-discount-card.js +1 -1
  27. package/dist/cdn/foxy-discount-detail-card.js +1 -0
  28. package/dist/cdn/foxy-donation.js +1 -1
  29. package/dist/cdn/foxy-email-template-form.js +1 -1
  30. package/dist/cdn/foxy-error-entry-card.js +1 -1
  31. package/dist/cdn/foxy-form-dialog.js +1 -1
  32. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  33. package/dist/cdn/foxy-gift-card-card.js +1 -1
  34. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  35. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  36. package/dist/cdn/foxy-gift-card-form.js +1 -1
  37. package/dist/cdn/foxy-i18n.js +1 -1
  38. package/dist/cdn/foxy-item-card.js +1 -0
  39. package/dist/cdn/foxy-item-form.js +1 -0
  40. package/dist/cdn/foxy-item-option-card.js +1 -0
  41. package/dist/cdn/foxy-item-option-form.js +1 -0
  42. package/dist/cdn/foxy-items-form.js +1 -1
  43. package/dist/cdn/foxy-nucleon-element.js +1 -1
  44. package/dist/cdn/foxy-pagination.js +1 -1
  45. package/dist/cdn/foxy-payment-card.js +1 -1
  46. package/dist/cdn/foxy-payment-method-card.js +1 -1
  47. package/dist/cdn/foxy-query-builder.js +1 -1
  48. package/dist/cdn/foxy-report-form.js +4 -4
  49. package/dist/cdn/foxy-reports-table.js +2 -2
  50. package/dist/cdn/foxy-shipment-card.js +17 -0
  51. package/dist/cdn/foxy-sign-in-form.js +1 -1
  52. package/dist/cdn/foxy-spinner.js +2 -2
  53. package/dist/cdn/foxy-subscription-card.js +1 -1
  54. package/dist/cdn/foxy-subscription-form.js +3 -3
  55. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  56. package/dist/cdn/foxy-swipe-actions.js +1 -0
  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 +64 -0
  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/{shared-85b8ae57.js → shared-007660a6.js} +1 -1
  68. package/dist/cdn/{shared-701d5a7c.js → shared-0479553e.js} +1 -1
  69. package/dist/cdn/shared-06014421.js +1 -0
  70. package/dist/cdn/{shared-d3cf78c1.js → shared-11c2efc8.js} +1 -1
  71. package/dist/cdn/shared-1b064836.js +1 -0
  72. package/dist/cdn/shared-1ddccf4d.js +1 -0
  73. package/dist/cdn/{shared-7d337241.js → shared-22103348.js} +1 -1
  74. package/dist/cdn/{shared-147e571b.js → shared-25e9c276.js} +1 -1
  75. package/dist/cdn/{shared-34f68715.js → shared-2bb49907.js} +1 -1
  76. package/dist/cdn/shared-2eee69db.js +1 -0
  77. package/dist/cdn/shared-3026cee0.js +15 -0
  78. package/dist/cdn/shared-34998df6.js +1 -0
  79. package/dist/cdn/{shared-01cbd43c.js → shared-35de1004.js} +1 -1
  80. package/dist/cdn/{shared-f1107e25.js → shared-368a2f85.js} +1 -1
  81. package/dist/cdn/{shared-4dc82211.js → shared-38f8a319.js} +7 -7
  82. package/dist/cdn/{shared-9728b5f8.js → shared-3ffd77da.js} +14 -19
  83. package/dist/cdn/shared-4e63d6e0.js +1 -0
  84. package/dist/cdn/{shared-b161b269.js → shared-5097c880.js} +2 -11
  85. package/dist/cdn/shared-518902c8.js +1 -0
  86. package/dist/cdn/shared-5e75308a.js +1 -0
  87. package/dist/cdn/{shared-41272a67.js → shared-60e98fbf.js} +1 -1
  88. package/dist/cdn/shared-64657919.js +1 -0
  89. package/dist/cdn/{shared-a82f8b58.js → shared-757bb517.js} +1 -1
  90. package/dist/cdn/{shared-e69e1ca3.js → shared-7819b0b0.js} +1 -1
  91. package/dist/cdn/shared-7f33a83a.js +159 -0
  92. package/dist/cdn/{shared-bec9e9ce.js → shared-7f3ca8e7.js} +5 -5
  93. package/dist/cdn/shared-874bbae5.js +1 -0
  94. package/dist/cdn/shared-92d6f937.js +1 -0
  95. package/dist/cdn/shared-96df3c85.js +1 -0
  96. package/dist/cdn/{shared-2b3f17cf.js → shared-99065f2a.js} +1 -1
  97. package/dist/cdn/shared-9a089d49.js +1 -0
  98. package/dist/cdn/shared-9d4835ed.js +1 -0
  99. package/dist/cdn/{shared-44633760.js → shared-9d7aaf7a.js} +1 -1
  100. package/dist/cdn/shared-a8e21a41.js +1 -0
  101. package/dist/cdn/shared-b4a4a92b.js +1 -0
  102. package/dist/cdn/{shared-3c85dcd8.js → shared-b8f492a4.js} +1 -1
  103. package/dist/cdn/{shared-cd262e68.js → shared-bbfdfee2.js} +10 -10
  104. package/dist/cdn/{shared-2f8bf5d9.js → shared-bc94606b.js} +1 -1
  105. package/dist/cdn/shared-c3c424cd.js +1 -0
  106. package/dist/cdn/{shared-5fd50b58.js → shared-c4f0a219.js} +1 -1
  107. package/dist/cdn/shared-cad5fe82.js +1 -0
  108. package/dist/cdn/shared-ce2aab66.js +1 -0
  109. package/dist/cdn/{shared-8695b424.js → shared-d3bf9ac0.js} +2 -2
  110. package/dist/cdn/{shared-0389f098.js → shared-d519a301.js} +2 -2
  111. package/dist/cdn/{shared-6974569c.js → shared-e090608c.js} +1 -1
  112. package/dist/cdn/{shared-a42088ee.js → shared-e59c65e3.js} +1 -1
  113. package/dist/cdn/shared-e6f3e9f0.js +6 -0
  114. package/dist/cdn/{shared-41f3f823.js → shared-ea9af4b0.js} +2 -2
  115. package/dist/cdn/{shared-25f67779.js → shared-f0ba30e8.js} +1 -1
  116. package/dist/cdn/{shared-916ef4d3.js → shared-f3655f42.js} +1 -1
  117. package/dist/cdn/{shared-2558daa0.js → shared-f3b35364.js} +1 -1
  118. package/dist/cdn/{shared-269fb742.js → shared-f3f9f752.js} +1 -1
  119. package/dist/cdn/shared-f7bddf72.js +9 -0
  120. package/dist/cdn/shared-fe8ec1f9.js +1 -0
  121. package/dist/cdn/translations/copy-to-clipboard/en.json +6 -0
  122. package/dist/cdn/translations/coupon-form/en.json +21 -2
  123. package/dist/cdn/translations/gift-card-form/en.json +21 -0
  124. package/dist/cdn/translations/item-card/en.json +9 -0
  125. package/dist/cdn/translations/item-form/en.json +387 -0
  126. package/dist/cdn/translations/item-option-form/en.json +43 -0
  127. package/dist/cdn/translations/shipment-card/en.json +470 -0
  128. package/dist/cdn/translations/transaction/en.json +941 -0
  129. package/dist/elements/index.d.ts +1 -0
  130. package/dist/elements/index.js +2 -0
  131. package/dist/elements/index.js.map +1 -0
  132. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +22 -0
  133. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +79 -0
  134. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -0
  135. package/dist/elements/internal/InternalAsyncComboBoxControl/index.d.ts +4 -0
  136. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js +6 -0
  137. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js.map +1 -0
  138. package/dist/elements/internal/InternalCard/InternalCard.d.ts +13 -0
  139. package/dist/elements/internal/InternalCard/InternalCard.js +43 -0
  140. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -0
  141. package/dist/elements/internal/InternalCard/index.d.ts +3 -0
  142. package/dist/elements/internal/InternalCard/index.js +5 -0
  143. package/dist/elements/internal/InternalCard/index.js.map +1 -0
  144. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.d.ts +16 -0
  145. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.js +63 -0
  146. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.js.map +1 -0
  147. package/dist/elements/internal/InternalCollapsibleCard/index.d.ts +5 -0
  148. package/dist/elements/internal/InternalCollapsibleCard/index.js +7 -0
  149. package/dist/elements/internal/InternalCollapsibleCard/index.js.map +1 -0
  150. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.d.ts +13 -0
  151. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.js +119 -0
  152. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.js.map +1 -0
  153. package/dist/elements/internal/InternalCollectionCard/index.d.ts +7 -0
  154. package/dist/elements/internal/InternalCollectionCard/index.js +9 -0
  155. package/dist/elements/internal/InternalCollectionCard/index.js.map +1 -0
  156. package/dist/elements/internal/InternalControl/InternalControl.d.ts +21 -0
  157. package/dist/elements/internal/InternalControl/InternalControl.js +53 -0
  158. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -0
  159. package/dist/elements/internal/InternalControl/index.d.ts +2 -0
  160. package/dist/elements/internal/InternalControl/index.js +4 -0
  161. package/dist/elements/internal/InternalControl/index.js.map +1 -0
  162. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +14 -0
  163. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +60 -0
  164. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -0
  165. package/dist/elements/internal/InternalDateControl/index.d.ts +4 -0
  166. package/dist/elements/internal/InternalDateControl/index.js +6 -0
  167. package/dist/elements/internal/InternalDateControl/index.js.map +1 -0
  168. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +25 -0
  169. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +78 -0
  170. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -0
  171. package/dist/elements/internal/InternalEditableControl/index.d.ts +3 -0
  172. package/dist/elements/internal/InternalEditableControl/index.js +5 -0
  173. package/dist/elements/internal/InternalEditableControl/index.js.map +1 -0
  174. package/dist/elements/internal/InternalForm/InternalForm.d.ts +13 -0
  175. package/dist/elements/internal/InternalForm/InternalForm.js +49 -0
  176. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -0
  177. package/dist/elements/internal/InternalForm/index.d.ts +6 -0
  178. package/dist/elements/internal/InternalForm/index.js +8 -0
  179. package/dist/elements/internal/InternalForm/index.js.map +1 -0
  180. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/InternalCreateControl.d.ts +13 -0
  181. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/InternalCreateControl.js +47 -0
  182. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/InternalCreateControl.js.map +1 -0
  183. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/index.d.ts +4 -0
  184. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/index.js +6 -0
  185. package/dist/elements/internal/InternalForm/internal/InternalCreateControl/index.js.map +1 -0
  186. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/InternalDeleteControl.d.ts +6 -0
  187. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/InternalDeleteControl.js +39 -0
  188. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/InternalDeleteControl.js.map +1 -0
  189. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/index.d.ts +5 -0
  190. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/index.js +7 -0
  191. package/dist/elements/internal/InternalForm/internal/InternalDeleteControl/index.js.map +1 -0
  192. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +8 -0
  193. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/InternalTimestampsControl.js +56 -0
  194. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -0
  195. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/index.d.ts +2 -0
  196. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/index.js +4 -0
  197. package/dist/elements/internal/InternalForm/internal/InternalTimestampsControl/index.js.map +1 -0
  198. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +9 -0
  199. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +115 -0
  200. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -0
  201. package/dist/elements/internal/InternalFrequencyControl/index.d.ts +7 -0
  202. package/dist/elements/internal/InternalFrequencyControl/index.js +9 -0
  203. package/dist/elements/internal/InternalFrequencyControl/index.js.map +1 -0
  204. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +13 -0
  205. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +41 -0
  206. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -0
  207. package/dist/elements/internal/InternalIntegerControl/index.d.ts +4 -0
  208. package/dist/elements/internal/InternalIntegerControl/index.js +6 -0
  209. package/dist/elements/internal/InternalIntegerControl/index.js.map +1 -0
  210. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +13 -0
  211. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +41 -0
  212. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -0
  213. package/dist/elements/internal/InternalNumberControl/index.d.ts +4 -0
  214. package/dist/elements/internal/InternalNumberControl/index.js +6 -0
  215. package/dist/elements/internal/InternalNumberControl/index.js.map +1 -0
  216. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +13 -0
  217. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +40 -0
  218. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -0
  219. package/dist/elements/internal/InternalTextControl/index.d.ts +4 -0
  220. package/dist/elements/internal/InternalTextControl/index.js +6 -0
  221. package/dist/elements/internal/InternalTextControl/index.js.map +1 -0
  222. package/dist/elements/private/Dialog/Dialog.d.ts +4 -2
  223. package/dist/elements/private/Dialog/Dialog.js +3 -1
  224. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  225. package/dist/elements/private/EditableList/EditableList.d.ts +4 -2
  226. package/dist/elements/private/EditableList/EditableList.js +3 -1
  227. package/dist/elements/private/EditableList/EditableList.js.map +1 -1
  228. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +3 -1
  229. package/dist/elements/private/FrequencyInput/FrequencyInput.js +2 -1
  230. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  231. package/dist/elements/public/CollectionPage/CollectionPage.d.ts +4 -3
  232. package/dist/elements/public/CollectionPage/CollectionPage.js +5 -3
  233. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  234. package/dist/elements/public/CollectionPage/types.d.ts +1 -0
  235. package/dist/elements/public/CollectionPage/types.js.map +1 -1
  236. package/dist/elements/public/CollectionPages/CollectionPages.d.ts +4 -2
  237. package/dist/elements/public/CollectionPages/CollectionPages.js +3 -1
  238. package/dist/elements/public/CollectionPages/CollectionPages.js.map +1 -1
  239. package/dist/elements/public/CopyToClipboard/CopyToClipboard.d.ts +14 -0
  240. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js +112 -0
  241. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js.map +1 -0
  242. package/dist/elements/public/CopyToClipboard/index.d.ts +4 -0
  243. package/dist/elements/public/CopyToClipboard/index.js +6 -0
  244. package/dist/elements/public/CopyToClipboard/index.js.map +1 -0
  245. package/dist/elements/public/CouponDetailCard/CouponDetailCard.d.ts +25 -0
  246. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js +58 -0
  247. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js.map +1 -0
  248. package/dist/elements/public/CouponDetailCard/index.d.ts +5 -0
  249. package/dist/elements/public/CouponDetailCard/index.js +7 -0
  250. package/dist/elements/public/CouponDetailCard/index.js.map +1 -0
  251. package/dist/elements/public/CouponDetailCard/types.d.ts +3 -0
  252. package/dist/elements/public/CouponDetailCard/types.js +2 -0
  253. package/dist/elements/public/CouponDetailCard/types.js.map +1 -0
  254. package/dist/elements/public/CouponForm/CouponForm.js +36 -35
  255. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  256. package/dist/elements/public/CouponForm/index.d.ts +1 -0
  257. package/dist/elements/public/CouponForm/index.js +1 -0
  258. package/dist/elements/public/CouponForm/index.js.map +1 -1
  259. package/dist/elements/public/CustomerApi/CustomerApi.d.ts +3 -1
  260. package/dist/elements/public/CustomerApi/CustomerApi.js +2 -1
  261. package/dist/elements/public/CustomerApi/CustomerApi.js.map +1 -1
  262. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.d.ts +3 -1
  263. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js +2 -1
  264. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js.map +1 -1
  265. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.d.ts +3 -1
  266. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -1
  267. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  268. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.d.ts +3 -1
  269. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -1
  270. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  271. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.d.ts +3 -1
  272. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js +2 -1
  273. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js.map +1 -1
  274. package/dist/elements/public/DiscountBuilder/DiscountBuilder.d.ts +28 -0
  275. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +339 -0
  276. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -0
  277. package/dist/elements/public/DiscountBuilder/index.d.ts +2 -0
  278. package/dist/elements/public/DiscountBuilder/index.js +4 -0
  279. package/dist/elements/public/DiscountBuilder/index.js.map +1 -0
  280. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.d.ts +25 -0
  281. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js +58 -0
  282. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js.map +1 -0
  283. package/dist/elements/public/DiscountDetailCard/index.d.ts +5 -0
  284. package/dist/elements/public/DiscountDetailCard/index.js +7 -0
  285. package/dist/elements/public/DiscountDetailCard/index.js.map +1 -0
  286. package/dist/elements/public/DiscountDetailCard/types.d.ts +3 -0
  287. package/dist/elements/public/DiscountDetailCard/types.js +2 -0
  288. package/dist/elements/public/DiscountDetailCard/types.js.map +1 -0
  289. package/dist/elements/public/GiftCardForm/GiftCardForm.js +28 -15
  290. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  291. package/dist/elements/public/GiftCardForm/index.d.ts +1 -0
  292. package/dist/elements/public/GiftCardForm/index.js +1 -0
  293. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  294. package/dist/elements/public/I18n/I18n.d.ts +3 -1
  295. package/dist/elements/public/I18n/I18n.js +2 -1
  296. package/dist/elements/public/I18n/I18n.js.map +1 -1
  297. package/dist/elements/public/ItemCard/ItemCard.d.ts +16 -0
  298. package/dist/elements/public/ItemCard/ItemCard.js +139 -0
  299. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -0
  300. package/dist/elements/public/ItemCard/index.d.ts +4 -0
  301. package/dist/elements/public/ItemCard/index.js +6 -0
  302. package/dist/elements/public/ItemCard/index.js.map +1 -0
  303. package/dist/elements/public/ItemCard/types.d.ts +5 -0
  304. package/dist/elements/public/ItemCard/types.js +2 -0
  305. package/dist/elements/public/ItemCard/types.js.map +1 -0
  306. package/dist/elements/public/ItemForm/ItemForm.d.ts +19 -0
  307. package/dist/elements/public/ItemForm/ItemForm.js +96 -0
  308. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -0
  309. package/dist/elements/public/ItemForm/index.d.ts +19 -0
  310. package/dist/elements/public/ItemForm/index.js +21 -0
  311. package/dist/elements/public/ItemForm/index.js.map +1 -0
  312. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +6 -0
  313. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +23 -0
  314. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -0
  315. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +6 -0
  316. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +8 -0
  317. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -0
  318. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +6 -0
  319. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +31 -0
  320. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -0
  321. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +5 -0
  322. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +7 -0
  323. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -0
  324. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +6 -0
  325. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +48 -0
  326. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -0
  327. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +7 -0
  328. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +9 -0
  329. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -0
  330. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +6 -0
  331. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +32 -0
  332. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -0
  333. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +5 -0
  334. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +7 -0
  335. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -0
  336. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +6 -0
  337. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +75 -0
  338. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -0
  339. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +8 -0
  340. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +10 -0
  341. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -0
  342. package/dist/elements/public/ItemForm/types.d.ts +3 -0
  343. package/dist/elements/public/ItemForm/types.js +2 -0
  344. package/dist/elements/public/ItemForm/types.js.map +1 -0
  345. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +25 -0
  346. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +56 -0
  347. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -0
  348. package/dist/elements/public/ItemOptionCard/index.d.ts +6 -0
  349. package/dist/elements/public/ItemOptionCard/index.js +8 -0
  350. package/dist/elements/public/ItemOptionCard/index.js.map +1 -0
  351. package/dist/elements/public/ItemOptionCard/types.d.ts +11 -0
  352. package/dist/elements/public/ItemOptionCard/types.js +2 -0
  353. package/dist/elements/public/ItemOptionCard/types.js.map +1 -0
  354. package/dist/elements/public/ItemOptionForm/ItemOptionForm.d.ts +12 -0
  355. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +23 -0
  356. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -0
  357. package/dist/elements/public/ItemOptionForm/index.d.ts +5 -0
  358. package/dist/elements/public/ItemOptionForm/index.js +7 -0
  359. package/dist/elements/public/ItemOptionForm/index.js.map +1 -0
  360. package/dist/elements/public/ItemOptionForm/types.d.ts +3 -0
  361. package/dist/elements/public/ItemOptionForm/types.js +2 -0
  362. package/dist/elements/public/ItemOptionForm/types.js.map +1 -0
  363. package/dist/elements/public/NucleonElement/NucleonElement.d.ts +7 -1
  364. package/dist/elements/public/NucleonElement/NucleonElement.js +13 -1
  365. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  366. package/dist/elements/public/Pagination/Pagination.d.ts +3 -1
  367. package/dist/elements/public/Pagination/Pagination.js +3 -2
  368. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  369. package/dist/elements/public/PaymentCard/PaymentCard.js +1 -1
  370. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  371. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +3 -1
  372. package/dist/elements/public/QueryBuilder/QueryBuilder.js +2 -1
  373. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  374. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +22 -0
  375. package/dist/elements/public/ShipmentCard/ShipmentCard.js +114 -0
  376. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -0
  377. package/dist/elements/public/ShipmentCard/index.d.ts +7 -0
  378. package/dist/elements/public/ShipmentCard/index.js +9 -0
  379. package/dist/elements/public/ShipmentCard/index.js.map +1 -0
  380. package/dist/elements/public/ShipmentCard/types.d.ts +18 -0
  381. package/dist/elements/public/ShipmentCard/types.js +2 -0
  382. package/dist/elements/public/ShipmentCard/types.js.map +1 -0
  383. package/dist/elements/public/Spinner/Spinner.d.ts +4 -2
  384. package/dist/elements/public/Spinner/Spinner.js +3 -1
  385. package/dist/elements/public/Spinner/Spinner.js.map +1 -1
  386. package/dist/elements/public/SwipeActions/SwipeActions.d.ts +13 -0
  387. package/dist/elements/public/SwipeActions/SwipeActions.js +116 -0
  388. package/dist/elements/public/SwipeActions/SwipeActions.js.map +1 -0
  389. package/dist/elements/public/SwipeActions/index.d.ts +2 -0
  390. package/dist/elements/public/SwipeActions/index.js +4 -0
  391. package/dist/elements/public/SwipeActions/index.js.map +1 -0
  392. package/dist/elements/public/Transaction/Transaction.d.ts +13 -0
  393. package/dist/elements/public/Transaction/Transaction.js +101 -0
  394. package/dist/elements/public/Transaction/Transaction.js.map +1 -0
  395. package/dist/elements/public/Transaction/index.d.ts +19 -0
  396. package/dist/elements/public/Transaction/index.js +21 -0
  397. package/dist/elements/public/Transaction/index.js.map +1 -0
  398. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +9 -0
  399. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +69 -0
  400. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -0
  401. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.d.ts +4 -0
  402. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js +6 -0
  403. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js.map +1 -0
  404. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.d.ts +5 -0
  405. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +36 -0
  406. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -0
  407. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.d.ts +7 -0
  408. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js +9 -0
  409. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js.map +1 -0
  410. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.d.ts +11 -0
  411. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +50 -0
  412. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -0
  413. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.d.ts +5 -0
  414. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js +7 -0
  415. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js.map +1 -0
  416. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +8 -0
  417. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +77 -0
  418. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -0
  419. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.d.ts +4 -0
  420. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js +6 -0
  421. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js.map +1 -0
  422. package/dist/elements/public/Transaction/types.d.ts +3 -0
  423. package/dist/elements/public/Transaction/types.js +2 -0
  424. package/dist/elements/public/Transaction/types.js.map +1 -0
  425. package/dist/elements/public/index.d.ts +11 -0
  426. package/dist/elements/public/index.defined.d.ts +11 -0
  427. package/dist/elements/public/index.defined.js +11 -0
  428. package/dist/elements/public/index.defined.js.map +1 -1
  429. package/dist/elements/public/index.js +11 -0
  430. package/dist/elements/public/index.js.map +1 -1
  431. package/dist/mixins/configurable.d.ts +5 -3
  432. package/dist/mixins/configurable.js +39 -4
  433. package/dist/mixins/configurable.js.map +1 -1
  434. package/dist/mixins/inferrable.d.ts +15 -0
  435. package/dist/mixins/inferrable.js +66 -0
  436. package/dist/mixins/inferrable.js.map +1 -0
  437. package/dist/mixins/themeable.js +148 -16
  438. package/dist/mixins/themeable.js.map +1 -1
  439. package/dist/mixins/translatable.d.ts +3 -1
  440. package/dist/mixins/translatable.js +13 -1
  441. package/dist/mixins/translatable.js.map +1 -1
  442. package/package.json +1 -1
  443. package/dist/cdn/shared-1d2cc2fb.js +0 -1
  444. package/dist/cdn/shared-1e57180b.js +0 -1
  445. package/dist/cdn/shared-1fa5f9a9.js +0 -1
  446. package/dist/cdn/shared-27277bbb.js +0 -1
  447. package/dist/cdn/shared-312131d3.js +0 -1
  448. package/dist/cdn/shared-3a06bd7f.js +0 -1
  449. package/dist/cdn/shared-3f26cae2.js +0 -1
  450. package/dist/cdn/shared-4ec62366.js +0 -159
  451. package/dist/cdn/shared-57a8ee05.js +0 -1
  452. package/dist/cdn/shared-5e9d8142.js +0 -1
  453. package/dist/cdn/shared-65cfddfd.js +0 -1
  454. package/dist/cdn/shared-7cf914d7.js +0 -1
  455. package/dist/cdn/shared-7e107668.js +0 -1
  456. package/dist/cdn/shared-8fc0b3ee.js +0 -1
  457. package/dist/cdn/shared-bad032de.js +0 -15
  458. package/dist/cdn/shared-c722fc23.js +0 -1
  459. package/dist/cdn/shared-d2228670.js +0 -1
  460. package/dist/cdn/shared-f0515999.js +0 -1
@@ -0,0 +1,115 @@
1
+ import { css, html } from 'lit-element';
2
+ import memoize from 'lodash-es/memoize';
3
+ import { parseDuration } from "../../../utils/parse-duration.js";
4
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
5
+ export class InternalFrequencyControl extends InternalEditableControl {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.__i18n = {
9
+ formatValue: inputValues => inputValues.join(''),
10
+ parseValue: value => {
11
+ const { count, units } = parseDuration(value);
12
+ return [count.toString(), units];
13
+ },
14
+ };
15
+ this.__getItems = memoize((value) => {
16
+ const count = parseDuration(value).count;
17
+ return [
18
+ { value: 'd', label: this.t('day', { count }) },
19
+ { value: 'w', label: this.t('week', { count }) },
20
+ { value: 'm', label: this.t('month', { count }) },
21
+ { value: 'y', label: this.t('year', { count }) },
22
+ ];
23
+ });
24
+ }
25
+ static get styles() {
26
+ return [
27
+ super.styles,
28
+ css `:host{
29
+ display:block;
30
+ }
31
+
32
+ vaadin-custom-field{
33
+ width:100%;
34
+ font-size:0;
35
+ line-height:0;
36
+ padding-top:0 !important;
37
+ }
38
+
39
+ vaadin-custom-field::part(label){
40
+ padding-bottom:var(--lumo-space-s);
41
+ }
42
+
43
+ vaadin-custom-field::part(error-message)[aria-hidden='false']{
44
+ padding-top:var(--lumo-space-xs);
45
+ }
46
+
47
+ vaadin-integer-field,
48
+ vaadin-combo-box{
49
+ width:calc(50% - (var(--lumo-space-s) / 2));
50
+ }
51
+
52
+ vaadin-integer-field{
53
+ margin-right:var(--lumo-space-s);
54
+ padding:0;
55
+ }
56
+
57
+ vaadin-combo-box::part(text-field){
58
+ padding:0;
59
+ }
60
+ `,
61
+ ];
62
+ }
63
+ renderControl() {
64
+ var _a;
65
+ const value = ((_a = this._value) !== null && _a !== void 0 ? _a : '');
66
+ return html `
67
+ <vaadin-custom-field
68
+ data-testid="field"
69
+ .i18n=${this.__i18n}
70
+ .label=${this.label}
71
+ .value=${value}
72
+ ?disabled=${this.disabled}
73
+ ?readonly=${this.readonly}
74
+ .errorMessage=${this._errorMessage}
75
+ .checkValidity=${this._checkValidity}
76
+ @change=${(evt) => {
77
+ const field = evt.currentTarget;
78
+ this._value = field.value;
79
+ }}
80
+ >
81
+ <vaadin-integer-field
82
+ data-testid="value"
83
+ min="1"
84
+ max="999"
85
+ has-controls
86
+ prevent-invalid-input
87
+ ?invalid=${!!this._error}
88
+ ?disabled=${this.disabled}
89
+ ?readonly=${this.readonly}
90
+ >
91
+ </vaadin-integer-field>
92
+
93
+ <vaadin-combo-box
94
+ data-testid="units"
95
+ item-value-path="value"
96
+ item-label-path="label"
97
+ .items=${this.__getItems(value)}
98
+ ?invalid=${!!this._error}
99
+ ?disabled=${this.disabled}
100
+ ?readonly=${this.readonly}
101
+ >
102
+ </vaadin-combo-box>
103
+ </vaadin-custom-field>
104
+ `;
105
+ }
106
+ updated(changes) {
107
+ var _a;
108
+ super.updated(changes);
109
+ const field = this.renderRoot.firstElementChild;
110
+ const value = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.form[this.property];
111
+ if (field.value !== value)
112
+ field.value = value;
113
+ }
114
+ }
115
+ //# sourceMappingURL=InternalFrequencyControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,yCAAsC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAE7F,MAAM,OAAO,wBAAyB,SAAQ,uBAAuB;IAArE;;QAyCU,WAAM,GAAoB;YAChC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,UAAU,EAAE,KAAK,CAAC,EAAE;gBAClB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;SACF,CAAC;QAEM,eAAU,GAAG,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAEzC,OAAO;gBACL,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBAC/C,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBAChD,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBACjD,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;aACjD,CAAC;QACJ,CAAC,CAAC,CAAC;IAsDL,CAAC;IA/GC,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCF;SACF,CAAC;IACJ,CAAC;IAqBD,aAAa;;QACX,MAAM,KAAK,GAAG,OAAC,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAW,CAAC;QAE5C,OAAO,IAAI,CAAA;;;gBAGC,IAAI,CAAC,MAAM;iBACV,IAAI,CAAC,KAAK;iBACV,KAAK;oBACF,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;wBACT,IAAI,CAAC,aAAa;yBACjB,IAAI,CAAC,cAAc;kBAC1B,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAmC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAe,CAAC;QACtC,CAAC;;;;;;;;qBAQY,CAAC,CAAC,IAAI,CAAC,MAAM;sBACZ,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ;;;;;;;;mBAQhB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;qBACpB,CAAC,CAAC,IAAI,CAAC,MAAM;sBACZ,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ;;;;KAI9B,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAiC;;QACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAuC,CAAC;QACtE,MAAM,KAAK,SAAG,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACjD,CAAC;CACF","sourcesContent":["import { CSSResultArray, TemplateResult, css, html } from 'lit-element';\nimport type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\n\nimport memoize from 'lodash-es/memoize';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\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 private __getItems = memoize((value: string) => {\n const count = parseDuration(value).count;\n\n return [\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 });\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n\n return html`\n <vaadin-custom-field\n data-testid=\"field\"\n .i18n=${this.__i18n}\n .label=${this.label}\n .value=${value}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .errorMessage=${this._errorMessage}\n .checkValidity=${this._checkValidity}\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 data-testid=\"value\"\n min=\"1\"\n max=\"999\"\n has-controls\n prevent-invalid-input\n ?invalid=${!!this._error}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n data-testid=\"units\"\n item-value-path=\"value\"\n item-label-path=\"label\"\n .items=${this.__getItems(value)}\n ?invalid=${!!this._error}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\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\n const field = this.renderRoot.firstElementChild as CustomFieldElement;\n const value = this.nucleon?.form[this.property];\n\n if (field.value !== value) field.value = value;\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
+ import '@vaadin/vaadin-custom-field';
3
+ import '@vaadin/vaadin-combo-box';
4
+ import '../InternalEditableControl/index';
5
+ import '../../public/I18n/index';
6
+ import { InternalFrequencyControl } from './InternalFrequencyControl';
7
+ export { InternalFrequencyControl };
@@ -0,0 +1,9 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
+ import '@vaadin/vaadin-custom-field';
3
+ import '@vaadin/vaadin-combo-box';
4
+ import "../InternalEditableControl/index.js";
5
+ import "../../public/I18n/index.js";
6
+ import { InternalFrequencyControl } from "./InternalFrequencyControl.js";
7
+ customElements.define('foxy-internal-frequency-control', InternalFrequencyControl);
8
+ export { InternalFrequencyControl };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAgD,CAAC;AACxD,OAAO,6BAA6B,CAAC;AACrC,OAAO,0BAA0B,CAAC;AAClC,6CAA0C;AAC1C,oCAAiC;AACjC,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAEtE,cAAc,CAAC,MAAM,CAAC,iCAAiC,EAAE,wBAAwB,CAAC,CAAC;AAEnF,OAAO,EAAE,wBAAwB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '@vaadin/vaadin-custom-field';\nimport '@vaadin/vaadin-combo-box';\nimport '../InternalEditableControl/index';\nimport '../../public/I18n/index';\nimport { InternalFrequencyControl } from './InternalFrequencyControl';\n\ncustomElements.define('foxy-internal-frequency-control', InternalFrequencyControl);\n\nexport { InternalFrequencyControl };\n"]}
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-element';
2
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
+ /**
4
+ * Internal control displaying a basic integer box.
5
+ *
6
+ * @since 1.17.0
7
+ * @tag foxy-internal-integer-control
8
+ */
9
+ export declare class InternalIntegerControl extends InternalEditableControl {
10
+ renderControl(): TemplateResult;
11
+ protected get _value(): number;
12
+ protected set _value(newValue: number);
13
+ }
@@ -0,0 +1,41 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-element';
4
+ /**
5
+ * Internal control displaying a basic integer box.
6
+ *
7
+ * @since 1.17.0
8
+ * @tag foxy-internal-integer-control
9
+ */
10
+ export class InternalIntegerControl extends InternalEditableControl {
11
+ renderControl() {
12
+ return html `
13
+ <vaadin-integer-field
14
+ error-message=${ifDefined(this._errorMessage)}
15
+ placeholder=${this.placeholder}
16
+ helper-text=${this.helperText}
17
+ label=${this.label}
18
+ class="w-full"
19
+ ?disabled=${this.disabled}
20
+ ?readonly=${this.readonly}
21
+ .checkValidity=${this._checkValidity}
22
+ .value=${String(this._value)}
23
+ has-controls
24
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
25
+ @change=${(evt) => {
26
+ const field = evt.currentTarget;
27
+ this._value = parseInt(field.value);
28
+ }}
29
+ >
30
+ </vaadin-integer-field>
31
+ `;
32
+ }
33
+ get _value() {
34
+ var _a;
35
+ return (_a = super._value) !== null && _a !== void 0 ? _a : 0;
36
+ }
37
+ set _value(newValue) {
38
+ super._value = newValue;
39
+ }
40
+ }
41
+ //# sourceMappingURL=InternalIntegerControl.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,4 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
+ import '../InternalEditableControl/index';
3
+ import { InternalIntegerControl as Control } from './InternalIntegerControl';
4
+ export { Control as InternalIntegerControl };
@@ -0,0 +1,6 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-integer-field';
2
+ import "../InternalEditableControl/index.js";
3
+ import { InternalIntegerControl as Control } from "./InternalIntegerControl.js";
4
+ customElements.define('foxy-internal-integer-control', Control);
5
+ export { Control as InternalIntegerControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,gDAAgD,CAAC;AACxD,6CAA0C;AAC1C,OAAO,EAAE,sBAAsB,IAAI,OAAO,EAAE,oCAAiC;AAE7E,cAAc,CAAC,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;AAEhE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '../InternalEditableControl/index';\nimport { InternalIntegerControl as Control } from './InternalIntegerControl';\n\ncustomElements.define('foxy-internal-integer-control', Control);\n\nexport { Control as InternalIntegerControl };\n"]}
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-element';
2
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
+ /**
4
+ * Internal control displaying a basic number box.
5
+ *
6
+ * @since 1.17.0
7
+ * @tag foxy-internal-number-control
8
+ */
9
+ export declare class InternalNumberControl extends InternalEditableControl {
10
+ renderControl(): TemplateResult;
11
+ protected get _value(): number;
12
+ protected set _value(newValue: number);
13
+ }
@@ -0,0 +1,41 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-element';
4
+ /**
5
+ * Internal control displaying a basic number box.
6
+ *
7
+ * @since 1.17.0
8
+ * @tag foxy-internal-number-control
9
+ */
10
+ export class InternalNumberControl extends InternalEditableControl {
11
+ renderControl() {
12
+ return html `
13
+ <vaadin-number-field
14
+ error-message=${ifDefined(this._errorMessage)}
15
+ placeholder=${this.placeholder}
16
+ helper-text=${this.helperText}
17
+ label=${this.label}
18
+ class="w-full"
19
+ ?disabled=${this.disabled}
20
+ ?readonly=${this.readonly}
21
+ .checkValidity=${this._checkValidity}
22
+ .value=${String(this._value)}
23
+ has-controls
24
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
25
+ @change=${(evt) => {
26
+ const field = evt.currentTarget;
27
+ this._value = parseFloat(field.value);
28
+ }}
29
+ >
30
+ </vaadin-number-field>
31
+ `;
32
+ }
33
+ get _value() {
34
+ var _a;
35
+ return (_a = super._value) !== null && _a !== void 0 ? _a : 0;
36
+ }
37
+ set _value(newValue) {
38
+ super._value = newValue;
39
+ }
40
+ }
41
+ //# sourceMappingURL=InternalNumberControl.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,4 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-number-field';
2
+ import '../InternalEditableControl/index';
3
+ import { InternalNumberControl as Control } from './InternalNumberControl';
4
+ export { Control as InternalNumberControl };
@@ -0,0 +1,6 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-number-field';
2
+ import "../InternalEditableControl/index.js";
3
+ import { InternalNumberControl as Control } from "./InternalNumberControl.js";
4
+ customElements.define('foxy-internal-number-control', Control);
5
+ export { Control as InternalNumberControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalNumberControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,+CAA+C,CAAC;AACvD,6CAA0C;AAC1C,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,mCAAgC;AAE3E,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-number-field';\nimport '../InternalEditableControl/index';\nimport { InternalNumberControl as Control } from './InternalNumberControl';\n\ncustomElements.define('foxy-internal-number-control', Control);\n\nexport { Control as InternalNumberControl };\n"]}
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-element';
2
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
+ /**
4
+ * Internal control displaying a basic text box.
5
+ *
6
+ * @since 1.17.0
7
+ * @tag foxy-internal-text-control
8
+ */
9
+ export declare class InternalTextControl extends InternalEditableControl {
10
+ renderControl(): TemplateResult;
11
+ protected get _value(): string;
12
+ protected set _value(newValue: string);
13
+ }
@@ -0,0 +1,40 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-element';
4
+ /**
5
+ * Internal control displaying a basic text box.
6
+ *
7
+ * @since 1.17.0
8
+ * @tag foxy-internal-text-control
9
+ */
10
+ export class InternalTextControl extends InternalEditableControl {
11
+ renderControl() {
12
+ return html `
13
+ <vaadin-text-field
14
+ error-message=${ifDefined(this._errorMessage)}
15
+ helper-text=${this.helperText}
16
+ placeholder=${this.placeholder}
17
+ label=${this.label}
18
+ class="w-full"
19
+ ?disabled=${this.disabled}
20
+ ?readonly=${this.readonly}
21
+ .checkValidity=${this._checkValidity}
22
+ .value=${this._value}
23
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
24
+ @input=${(evt) => {
25
+ const field = evt.currentTarget;
26
+ this._value = field.value;
27
+ }}
28
+ >
29
+ </vaadin-text-field>
30
+ `;
31
+ }
32
+ get _value() {
33
+ var _a;
34
+ return (_a = super._value) !== null && _a !== void 0 ? _a : '';
35
+ }
36
+ set _value(newValue) {
37
+ super._value = newValue;
38
+ }
39
+ }
40
+ //# sourceMappingURL=InternalTextControl.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,4 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-text-field';
2
+ import '../InternalEditableControl/index';
3
+ import { InternalTextControl as Control } from './InternalTextControl';
4
+ export { Control as InternalTextControl };
@@ -0,0 +1,6 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-text-field';
2
+ import "../InternalEditableControl/index.js";
3
+ import { InternalTextControl as Control } from "./InternalTextControl.js";
4
+ customElements.define('foxy-internal-text-control', Control);
5
+ export { Control as InternalTextControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,6CAA0C;AAC1C,OAAO,EAAE,mBAAmB,IAAI,OAAO,EAAE,iCAA8B;AAEvE,cAAc,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-text-field';\nimport '../InternalEditableControl/index';\nimport { InternalTextControl as Control } from './InternalTextControl';\n\ncustomElements.define('foxy-internal-text-control', Control);\n\nexport { Control as InternalTextControl };\n"]}
@@ -3,12 +3,14 @@ import { TemplateResult } from 'lit-html';
3
3
  import { DialogHideEvent } from './DialogHideEvent';
4
4
  import { DialogShowEvent } from './DialogShowEvent';
5
5
  import { DialogWindow } from './DialogWindow';
6
- declare const Dialog_base: typeof LitElement & {
6
+ declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
7
+ inferredProperties: string[];
8
+ } & {
7
9
  styles: CSSResultArray;
8
10
  } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
9
11
  defaultNS: string;
10
12
  };
11
- export declare abstract class Dialog extends Dialog_base {
13
+ export declare abstract class Dialog extends Base {
12
14
  /**
13
15
  * Selector of an element that will serve as a mounting point to all dialog windows.
14
16
  * It's `<body>` by default, but you can add your own element with `id="foxy-dialog-windows-host"`
@@ -9,7 +9,9 @@ import { FetchEvent } from "../../public/NucleonElement/FetchEvent.js";
9
9
  import { ThemeableMixin } from "../../../mixins/themeable.js";
10
10
  import { TranslatableMixin } from "../../../mixins/translatable.js";
11
11
  import { classMap } from "../../../utils/class-map.js";
12
- export class Dialog extends TranslatableMixin(ConfigurableMixin(ThemeableMixin(LitElement))) {
12
+ import { InferrableMixin } from "../../../mixins/inferrable.js";
13
+ const Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));
14
+ export class Dialog extends Base {
13
15
  constructor() {
14
16
  super(...arguments);
15
17
  /** When true, renders Close button in the header. */
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, css } from 'lit-element';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { API } from '../../public/NucleonElement/API';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from './DialogHideEvent';\nimport { DialogShowEvent } from './DialogShowEvent';\nimport { DialogWindow } from './DialogWindow';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\n\nexport abstract class Dialog extends TranslatableMixin(\n ConfigurableMixin(ThemeableMixin(LitElement))\n) {\n /**\n * Selector of an element that will serve as a mounting point to all dialog windows.\n * It's `<body>` by default, but you can add your own element with `id=\"foxy-dialog-windows-host\"`\n * anywhere in the light DOM to render dialogs there.\n */\n static readonly dialogWindowsHost = '#foxy-dialog-windows-host, body';\n\n /** Map of all dialog windows linked to their dialog elements. */\n static readonly dialogWindows = new WeakMap<Dialog, DialogWindow>();\n\n /** List of all currently open dialogs. */\n static readonly openDialogs: Dialog[] = [];\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes entering the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly ShowEvent = DialogShowEvent;\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes leaving the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly HideEvent = DialogHideEvent;\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __connected: { attribute: false },\n __visible: { attribute: false },\n centered: { type: Boolean },\n closable: { type: Boolean },\n editable: { type: Boolean },\n header: { type: String },\n alert: { type: Boolean },\n open: { type: Boolean, noAccessor: true },\n };\n }\n\n /** @readonly */\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .grid-cols-header {\n grid-template-columns: 1fr auto 1fr;\n }\n\n .scale-85 {\n --tw-scale-x: 0.85;\n --tw-scale-y: 0.85;\n }\n `,\n ];\n }\n\n /** When true, renders Close button in the header. */\n closable = false;\n\n /** When true, renders Save button in the header. */\n editable = false;\n\n /** Header text or a i18next key for it. */\n header = '';\n\n /** When true, centers a dialog on the screen and does not animate the stack under. */\n alert = false;\n\n private __returnFocusTo?: HTMLElement;\n\n private __handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape' && Dialog.openDialogs[0] === this && this.closable)\n this.hide(this.editable);\n };\n\n private __connected = false;\n\n private __visible = false;\n\n /** True if dialog is mounted and has finished entering the screen. */\n get open(): boolean {\n return this.__visible && this.__connected;\n }\n\n set open(newValue: boolean) {\n newValue === this.open ? void 0 : newValue ? this.show() : this.hide(this.editable);\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n addEventListener('keydown', this.__handleKeyDown);\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n removeEventListener('keydown', this.__handleKeyDown);\n\n Dialog.dialogWindows.get(this)?.remove();\n Dialog.dialogWindows.delete(this);\n }\n\n /** @readonly */\n createRenderRoot(): Element | ShadowRoot {\n const dialogWindow = new DialogWindow();\n const dialogWindowsHosts = document.querySelectorAll(Dialog.dialogWindowsHost);\n const dialogWindowsHost = Array.from(dialogWindowsHosts).pop();\n\n dialogWindow.addEventListener('fetch', (evt: Event) => {\n if (evt instanceof FetchEvent) {\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n }\n });\n\n dialogWindowsHost?.appendChild(dialogWindow);\n Dialog.dialogWindows.set(this, dialogWindow);\n\n return dialogWindow.shadowRoot!;\n }\n\n /** @readonly */\n render(content?: () => TemplateResult): TemplateResult {\n if (!this.__connected) return html``;\n\n const isFirst = Dialog.openDialogs[0] === this;\n const isSecond = Dialog.openDialogs[1] === this;\n const isThird = Dialog.openDialogs[2] === this;\n const isForthAndGreater = !isFirst && !isSecond && !isThird;\n\n return html`\n <div\n class=${classMap({ 'z-50 fixed inset-0': true, 'pointer-events-none': !this.__visible })}\n >\n <div\n id=\"backdrop\"\n class=${classMap({\n 'select-none ease-in-out transition duration-500 absolute inset-0 bg-shade-50 focus-outline-none':\n true,\n 'opacity-100': this.__visible,\n 'opacity-0': !this.__visible,\n })}\n tabindex=\"-1\"\n @click=${() => this.closable && this.hide(this.editable)}\n ></div>\n\n <div\n role=\"dialog\"\n aria-labelledby=\"dialog-title\"\n class=${classMap({\n 'transform origin-bottom ease-in-out transition duration-500 relative h-full ml-auto sm-origin-center sm-max-w-modal':\n true,\n 'flex justify-center items-end sm-items-center mr-auto': this.alert,\n 'translate-y-full sm-translate-y-0': !this.__visible,\n 'sm-translate-x-full': !this.alert && !this.__visible,\n 'sm-opacity-0 sm-scale-110': this.alert && !this.__visible,\n 'translate-y-0 translate-x-0': isFirst && this.__visible,\n 'scale-95 -translate-y-s sm-translate-y-0': isSecond && this.__visible,\n 'scale-90 -translate-y-m sm-translate-y-0': isThird && this.__visible,\n 'opacity-0 scale-85 -translate-y-l sm-translate-y-0':\n isForthAndGreater && this.__visible,\n })}\n >\n <div\n class=${classMap({\n 'overflow-hidden flex flex-col bg-base rounded-t-l sm-rounded-b-l': true,\n 'absolute inset-0 mt-xl sm-m-xl': !this.alert,\n 'shadow-xxl': this.__visible,\n })}\n >\n <div\n class=\"h-l grid grid-cols-header text-m font-lumo font-medium border-b border-contrast-10\"\n >\n ${this.closable && !this.hiddenSelector.matches('close-button', true)\n ? html`\n <vaadin-button\n id=\"close-button\"\n theme=\"tertiary-inline\"\n class=\"mr-auto m-s px-s\"\n ?disabled=${this.disabledSelector.matches('close-button', true)}\n @click=${() => this.hide(this.editable)}\n >\n <foxy-i18n\n lang=${this.lang}\n key=${this.editable ? 'cancel' : 'close'}\n ns=${this.ns}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n\n <h1 id=\"dialog-title\" class=\"truncate self-center text-center\">\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=${this.header}></foxy-i18n>\n </h1>\n\n ${this.editable && !this.hiddenSelector.matches('save-button', true)\n ? html`\n <vaadin-button\n data-testid=\"save-button\"\n ?disabled=${this.disabledSelector.matches('save-button', true)}\n theme=\"primary\"\n class=\"ml-auto h-auto min-h-0 min-w-0 m-xs px-m\"\n @click=${this.save}\n >\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=\"save\"></foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n </div>\n\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden overscroll-contain\">\n <div class=\"p-m relative\">${content?.()}</div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n /**\n * Hides the dialog. Returns a promise that resolves when the dialog\n * finishes leaving the screen.\n *\n * @param cancelled Set this to `true` if closing an editable dialog without saving changes.\n */\n async hide(cancelled = false): Promise<void> {\n this.__returnFocusTo?.focus();\n\n await this.__setOpenDialogs(Dialog.openDialogs.filter(d => d !== this));\n await this.__setConnected(false);\n\n this.dispatchEvent(new Dialog.HideEvent(!!cancelled));\n }\n\n /**\n * Shows the dialog. Returns a promise that resolves when the dialog\n * finishes entering the screen.\n *\n * @param returnFocusTo If provided, the dialog will call `.focus()` on that element once it's closed.\n */\n async show(returnFocusTo?: HTMLElement): Promise<void> {\n this.__returnFocusTo = returnFocusTo;\n\n await this.__setConnected(true);\n await this.__setOpenDialogs([this, ...Dialog.openDialogs]);\n\n const closeButton = this.renderRoot.querySelector('#close-button') as HTMLButtonElement;\n closeButton?.focus();\n\n this.dispatchEvent(new Dialog.ShowEvent());\n }\n\n /** Alias for `dialog.hide(false)`. */\n async save(): Promise<void> {\n await this.hide(false);\n }\n\n private async __setOpenDialogs(newValue: Dialog[]) {\n Dialog.openDialogs.length = 0;\n Dialog.openDialogs.push(...newValue);\n\n await Promise.all([\n // animate dialog stack\n Promise.all(Dialog.openDialogs.map(dialog => dialog.requestUpdate())),\n\n // trigger exit transition\n new Promise(resolve => {\n const backdrop = this.renderRoot.querySelector('#backdrop') as HTMLDivElement;\n backdrop.addEventListener('transitionend', resolve, { once: true });\n this.__visible = Dialog.openDialogs.includes(this);\n }),\n ]);\n }\n\n private async __setConnected(newValue: boolean) {\n this.__connected = newValue;\n await this.updateComplete.then(() => this.getBoundingClientRect());\n }\n}\n\ncustomElements.define('foxy-dialog-window', DialogWindow);\n"]}
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, css } from 'lit-element';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { API } from '../../public/NucleonElement/API';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from './DialogHideEvent';\nimport { DialogShowEvent } from './DialogShowEvent';\nimport { DialogWindow } from './DialogWindow';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport abstract class Dialog extends Base {\n /**\n * Selector of an element that will serve as a mounting point to all dialog windows.\n * It's `<body>` by default, but you can add your own element with `id=\"foxy-dialog-windows-host\"`\n * anywhere in the light DOM to render dialogs there.\n */\n static readonly dialogWindowsHost = '#foxy-dialog-windows-host, body';\n\n /** Map of all dialog windows linked to their dialog elements. */\n static readonly dialogWindows = new WeakMap<Dialog, DialogWindow>();\n\n /** List of all currently open dialogs. */\n static readonly openDialogs: Dialog[] = [];\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes entering the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly ShowEvent = DialogShowEvent;\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes leaving the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly HideEvent = DialogHideEvent;\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __connected: { attribute: false },\n __visible: { attribute: false },\n centered: { type: Boolean },\n closable: { type: Boolean },\n editable: { type: Boolean },\n header: { type: String },\n alert: { type: Boolean },\n open: { type: Boolean, noAccessor: true },\n };\n }\n\n /** @readonly */\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .grid-cols-header {\n grid-template-columns: 1fr auto 1fr;\n }\n\n .scale-85 {\n --tw-scale-x: 0.85;\n --tw-scale-y: 0.85;\n }\n `,\n ];\n }\n\n /** When true, renders Close button in the header. */\n closable = false;\n\n /** When true, renders Save button in the header. */\n editable = false;\n\n /** Header text or a i18next key for it. */\n header = '';\n\n /** When true, centers a dialog on the screen and does not animate the stack under. */\n alert = false;\n\n private __returnFocusTo?: HTMLElement;\n\n private __handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape' && Dialog.openDialogs[0] === this && this.closable)\n this.hide(this.editable);\n };\n\n private __connected = false;\n\n private __visible = false;\n\n /** True if dialog is mounted and has finished entering the screen. */\n get open(): boolean {\n return this.__visible && this.__connected;\n }\n\n set open(newValue: boolean) {\n newValue === this.open ? void 0 : newValue ? this.show() : this.hide(this.editable);\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n addEventListener('keydown', this.__handleKeyDown);\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n removeEventListener('keydown', this.__handleKeyDown);\n\n Dialog.dialogWindows.get(this)?.remove();\n Dialog.dialogWindows.delete(this);\n }\n\n /** @readonly */\n createRenderRoot(): Element | ShadowRoot {\n const dialogWindow = new DialogWindow();\n const dialogWindowsHosts = document.querySelectorAll(Dialog.dialogWindowsHost);\n const dialogWindowsHost = Array.from(dialogWindowsHosts).pop();\n\n dialogWindow.addEventListener('fetch', (evt: Event) => {\n if (evt instanceof FetchEvent) {\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n }\n });\n\n dialogWindowsHost?.appendChild(dialogWindow);\n Dialog.dialogWindows.set(this, dialogWindow);\n\n return dialogWindow.shadowRoot!;\n }\n\n /** @readonly */\n render(content?: () => TemplateResult): TemplateResult {\n if (!this.__connected) return html``;\n\n const isFirst = Dialog.openDialogs[0] === this;\n const isSecond = Dialog.openDialogs[1] === this;\n const isThird = Dialog.openDialogs[2] === this;\n const isForthAndGreater = !isFirst && !isSecond && !isThird;\n\n return html`\n <div\n class=${classMap({ 'z-50 fixed inset-0': true, 'pointer-events-none': !this.__visible })}\n >\n <div\n id=\"backdrop\"\n class=${classMap({\n 'select-none ease-in-out transition duration-500 absolute inset-0 bg-shade-50 focus-outline-none':\n true,\n 'opacity-100': this.__visible,\n 'opacity-0': !this.__visible,\n })}\n tabindex=\"-1\"\n @click=${() => this.closable && this.hide(this.editable)}\n ></div>\n\n <div\n role=\"dialog\"\n aria-labelledby=\"dialog-title\"\n class=${classMap({\n 'transform origin-bottom ease-in-out transition duration-500 relative h-full ml-auto sm-origin-center sm-max-w-modal':\n true,\n 'flex justify-center items-end sm-items-center mr-auto': this.alert,\n 'translate-y-full sm-translate-y-0': !this.__visible,\n 'sm-translate-x-full': !this.alert && !this.__visible,\n 'sm-opacity-0 sm-scale-110': this.alert && !this.__visible,\n 'translate-y-0 translate-x-0': isFirst && this.__visible,\n 'scale-95 -translate-y-s sm-translate-y-0': isSecond && this.__visible,\n 'scale-90 -translate-y-m sm-translate-y-0': isThird && this.__visible,\n 'opacity-0 scale-85 -translate-y-l sm-translate-y-0':\n isForthAndGreater && this.__visible,\n })}\n >\n <div\n class=${classMap({\n 'overflow-hidden flex flex-col bg-base rounded-t-l sm-rounded-b-l': true,\n 'absolute inset-0 mt-xl sm-m-xl': !this.alert,\n 'shadow-xxl': this.__visible,\n })}\n >\n <div\n class=\"h-l grid grid-cols-header text-m font-lumo font-medium border-b border-contrast-10\"\n >\n ${this.closable && !this.hiddenSelector.matches('close-button', true)\n ? html`\n <vaadin-button\n id=\"close-button\"\n theme=\"tertiary-inline\"\n class=\"mr-auto m-s px-s\"\n ?disabled=${this.disabledSelector.matches('close-button', true)}\n @click=${() => this.hide(this.editable)}\n >\n <foxy-i18n\n lang=${this.lang}\n key=${this.editable ? 'cancel' : 'close'}\n ns=${this.ns}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n\n <h1 id=\"dialog-title\" class=\"truncate self-center text-center\">\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=${this.header}></foxy-i18n>\n </h1>\n\n ${this.editable && !this.hiddenSelector.matches('save-button', true)\n ? html`\n <vaadin-button\n data-testid=\"save-button\"\n ?disabled=${this.disabledSelector.matches('save-button', true)}\n theme=\"primary\"\n class=\"ml-auto h-auto min-h-0 min-w-0 m-xs px-m\"\n @click=${this.save}\n >\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=\"save\"></foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n </div>\n\n <div class=\"flex-1 overflow-y-auto overflow-x-hidden overscroll-contain\">\n <div class=\"p-m relative\">${content?.()}</div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n /**\n * Hides the dialog. Returns a promise that resolves when the dialog\n * finishes leaving the screen.\n *\n * @param cancelled Set this to `true` if closing an editable dialog without saving changes.\n */\n async hide(cancelled = false): Promise<void> {\n this.__returnFocusTo?.focus();\n\n await this.__setOpenDialogs(Dialog.openDialogs.filter(d => d !== this));\n await this.__setConnected(false);\n\n this.dispatchEvent(new Dialog.HideEvent(!!cancelled));\n }\n\n /**\n * Shows the dialog. Returns a promise that resolves when the dialog\n * finishes entering the screen.\n *\n * @param returnFocusTo If provided, the dialog will call `.focus()` on that element once it's closed.\n */\n async show(returnFocusTo?: HTMLElement): Promise<void> {\n this.__returnFocusTo = returnFocusTo;\n\n await this.__setConnected(true);\n await this.__setOpenDialogs([this, ...Dialog.openDialogs]);\n\n const closeButton = this.renderRoot.querySelector('#close-button') as HTMLButtonElement;\n closeButton?.focus();\n\n this.dispatchEvent(new Dialog.ShowEvent());\n }\n\n /** Alias for `dialog.hide(false)`. */\n async save(): Promise<void> {\n await this.hide(false);\n }\n\n private async __setOpenDialogs(newValue: Dialog[]) {\n Dialog.openDialogs.length = 0;\n Dialog.openDialogs.push(...newValue);\n\n await Promise.all([\n // animate dialog stack\n Promise.all(Dialog.openDialogs.map(dialog => dialog.requestUpdate())),\n\n // trigger exit transition\n new Promise(resolve => {\n const backdrop = this.renderRoot.querySelector('#backdrop') as HTMLDivElement;\n backdrop.addEventListener('transitionend', resolve, { once: true });\n this.__visible = Dialog.openDialogs.includes(this);\n }),\n ]);\n }\n\n private async __setConnected(newValue: boolean) {\n this.__connected = newValue;\n await this.updateComplete.then(() => this.getBoundingClientRect());\n }\n}\n\ncustomElements.define('foxy-dialog-window', DialogWindow);\n"]}
@@ -1,10 +1,12 @@
1
1
  import { LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
2
- declare const EditableList_base: typeof LitElement & {
2
+ declare const Base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
3
+ inferredProperties: string[];
4
+ } & {
3
5
  styles: import("lit-element").CSSResultArray;
4
6
  } & import("lit-element").Constructor<import("../../../mixins/configurable").ConfigurableMixinHost> & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
5
7
  defaultNS: string;
6
8
  };
7
- export declare class EditableList extends EditableList_base {
9
+ export declare class EditableList extends Base {
8
10
  static get properties(): PropertyDeclarations;
9
11
  options: {
10
12
  label?: string;
@@ -5,7 +5,9 @@ import { TranslatableMixin } from "../../../mixins/translatable.js";
5
5
  import { classMap } from "../../../utils/class-map.js";
6
6
  import { live } from 'lit-html/directives/live';
7
7
  import { repeat } from 'lit-html/directives/repeat';
8
- export class EditableList extends TranslatableMixin(ConfigurableMixin(ThemeableMixin(LitElement))) {
8
+ import { InferrableMixin } from "../../../mixins/inferrable.js";
9
+ const Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));
10
+ export class EditableList extends Base {
9
11
  constructor() {
10
12
  super(...arguments);
11
13
  this.options = [];
@@ -1 +1 @@
1
- {"version":3,"file":"EditableList.js","sourceRoot":"","sources":["../../../../src/elements/private/EditableList/EditableList.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { live } from 'lit-html/directives/live';\nimport { repeat } from 'lit-html/directives/repeat';\n\nexport class EditableList extends TranslatableMixin(ConfigurableMixin(ThemeableMixin(LitElement))) {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n items: { type: Array },\n __newItem: { attribute: false },\n };\n }\n\n options: { label?: string; value: string }[] = [];\n\n items: { label?: string | TemplateResult; value: string }[] = [];\n\n private __newItem = '';\n\n render(): TemplateResult {\n const deleteButtonClass = classMap({\n 'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n });\n\n const itemClass = classMap({\n 'transition-colors h-l ml-m flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n if (!this.__newItem) return;\n this.items.push({ value: this.__newItem });\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n this.__newItem = '';\n };\n\n return html`\n <slot></slot>\n\n <ol class=\"divide-y divide-contrast-10\">\n ${repeat(\n this.items,\n item => item.value,\n (item, index) => {\n return html`\n <li class=${itemClass}>\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this.items.splice(index, 1);\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n class=${classMap({\n 'ml-m h-l flex items-center': true,\n 'border-t border-contrast-10': this.items.length > 0,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n })}\n >\n <input\n placeholder=${this.t('type_here')}\n class=\"w-full bg-transparent appearance-none h-m focus-outline-none\"\n list=\"list\"\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n />\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this.items.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}\">\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,\n 'flex items-center justify-center rounded-full transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"EditableList.js","sourceRoot":"","sources":["../../../../src/elements/private/EditableList/EditableList.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { live } from 'lit-html/directives/live';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport class EditableList extends Base {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n items: { type: Array },\n __newItem: { attribute: false },\n };\n }\n\n options: { label?: string; value: string }[] = [];\n\n items: { label?: string | TemplateResult; value: string }[] = [];\n\n private __newItem = '';\n\n render(): TemplateResult {\n const deleteButtonClass = classMap({\n 'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n });\n\n const itemClass = classMap({\n 'transition-colors h-l ml-m flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n if (!this.__newItem) return;\n this.items.push({ value: this.__newItem });\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n this.__newItem = '';\n };\n\n return html`\n <slot></slot>\n\n <ol class=\"divide-y divide-contrast-10\">\n ${repeat(\n this.items,\n item => item.value,\n (item, index) => {\n return html`\n <li class=${itemClass}>\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this.items.splice(index, 1);\n this.requestUpdate('items');\n this.dispatchEvent(new CustomEvent('change'));\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n class=${classMap({\n 'ml-m h-l flex items-center': true,\n 'border-t border-contrast-10': this.items.length > 0,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n })}\n >\n <input\n placeholder=${this.t('type_here')}\n class=\"w-full bg-transparent appearance-none h-m focus-outline-none\"\n list=\"list\"\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n />\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this.items.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}\">\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,\n 'flex items-center justify-center rounded-full transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -3,7 +3,9 @@ import '@vaadin/vaadin-custom-field';
3
3
  import '@vaadin/vaadin-combo-box';
4
4
  import '../../public/I18n/index';
5
5
  import { CSSResult, CSSResultArray, LitElement, PropertyDeclarations, TemplateResult } from 'lit-element';
6
- declare const FrequencyInput_base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
6
+ declare const FrequencyInput_base: typeof LitElement & import("lit-element").Constructor<import("../../../mixins/inferrable").InferrableMixinHost> & {
7
+ inferredProperties: string[];
8
+ } & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
7
9
  defaultNS: string;
8
10
  };
9
11
  export declare class FrequencyInput extends FrequencyInput_base {