@foxy.io/elements 1.24.0 → 1.24.1-beta.2

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 (168) hide show
  1. package/dist/cdn/foxy-address-form.js +1 -1
  2. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  3. package/dist/cdn/foxy-api-browser.js +1 -1
  4. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  5. package/dist/cdn/foxy-attribute-form.js +1 -1
  6. package/dist/cdn/foxy-cart-form.js +1 -1
  7. package/dist/cdn/foxy-client-form.js +1 -1
  8. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-coupon-form.js +1 -1
  10. package/dist/cdn/foxy-custom-field-form.js +1 -1
  11. package/dist/cdn/foxy-customer-form.js +1 -1
  12. package/dist/cdn/foxy-customer-portal.js +1 -1
  13. package/dist/cdn/foxy-customer.js +1 -1
  14. package/dist/cdn/foxy-downloadable-form.js +1 -1
  15. package/dist/cdn/foxy-email-template-form.js +1 -1
  16. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  17. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  18. package/dist/cdn/foxy-gift-card-form.js +1 -1
  19. package/dist/cdn/foxy-integration-form.js +1 -1
  20. package/dist/cdn/foxy-item-category-form.js +1 -1
  21. package/dist/cdn/foxy-item-form.js +1 -1
  22. package/dist/cdn/foxy-item-option-form.js +1 -1
  23. package/dist/cdn/foxy-passkey-form.js +1 -1
  24. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  25. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  26. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  27. package/dist/cdn/foxy-payments-api.js +1 -1
  28. package/dist/cdn/foxy-report-form.js +2 -2
  29. package/dist/cdn/foxy-shipment-card.js +1 -1
  30. package/dist/cdn/foxy-store-form.js +1 -1
  31. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  32. package/dist/cdn/foxy-subscription-card.js +1 -1
  33. package/dist/cdn/foxy-subscription-form.js +2 -2
  34. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  35. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  36. package/dist/cdn/foxy-tax-form.js +1 -1
  37. package/dist/cdn/foxy-template-form.js +1 -1
  38. package/dist/cdn/foxy-template-set-form.js +1 -1
  39. package/dist/cdn/foxy-transaction.js +1 -1
  40. package/dist/cdn/foxy-user-form.js +1 -1
  41. package/dist/cdn/foxy-users-table.js +1 -1
  42. package/dist/cdn/foxy-webhook-form.js +1 -1
  43. package/dist/cdn/shared-4205699e.js +1 -0
  44. package/dist/cdn/shared-5280c80a.js +1 -0
  45. package/dist/cdn/{shared-baeef007.js → shared-94798eb5.js} +1 -1
  46. package/dist/cdn/shared-fa7539af.js +46 -0
  47. package/dist/cdn/translations/address-form/en.json +1 -1
  48. package/dist/cdn/translations/admin-subscription-card/en.json +1 -0
  49. package/dist/cdn/translations/attribute-form/en.json +1 -1
  50. package/dist/cdn/translations/cart-form/en.json +47 -65
  51. package/dist/cdn/translations/client-form/en.json +1 -1
  52. package/dist/cdn/translations/coupon-code-form/en.json +1 -1
  53. package/dist/cdn/translations/coupon-form/en.json +4 -4
  54. package/dist/cdn/translations/custom-field-form/en.json +1 -1
  55. package/dist/cdn/translations/customer/en.json +5 -3
  56. package/dist/cdn/translations/customer-form/en.json +1 -1
  57. package/dist/cdn/translations/customer-portal/en.json +4 -2
  58. package/dist/cdn/translations/downloadable-form/en.json +1 -1
  59. package/dist/cdn/translations/email-template-form/en.json +1 -1
  60. package/dist/cdn/translations/gift-card-code-form/en.json +1 -1
  61. package/dist/cdn/translations/gift-card-form/en.json +3 -3
  62. package/dist/cdn/translations/item-category-form/en.json +1 -1
  63. package/dist/cdn/translations/item-form/en.json +30 -32
  64. package/dist/cdn/translations/item-option-form/en.json +1 -1
  65. package/dist/cdn/translations/passkey-form/en.json +1 -1
  66. package/dist/cdn/translations/payments-api-fraud-protection-form/en.json +1 -1
  67. package/dist/cdn/translations/payments-api-payment-method-form/en.json +1 -1
  68. package/dist/cdn/translations/payments-api-payment-preset-form/en.json +1 -1
  69. package/dist/cdn/translations/report-form/en.json +1 -1
  70. package/dist/cdn/translations/shipment-card/en.json +47 -64
  71. package/dist/cdn/translations/store-form/en.json +2 -2
  72. package/dist/cdn/translations/store-shipping-method-form/en.json +1 -1
  73. package/dist/cdn/translations/subscription-card/en.json +1 -0
  74. package/dist/cdn/translations/subscription-form/en.json +3 -2
  75. package/dist/cdn/translations/subscription-settings-form/en.json +1 -1
  76. package/dist/cdn/translations/subscriptions-table/en.json +1 -0
  77. package/dist/cdn/translations/tax-form/en.json +1 -1
  78. package/dist/cdn/translations/template-form/en.json +1 -1
  79. package/dist/cdn/translations/template-set-form/en.json +1 -1
  80. package/dist/cdn/translations/transaction/en.json +54 -69
  81. package/dist/cdn/translations/webhook-form/en.json +1 -1
  82. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +1 -3
  83. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +18 -41
  84. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -1
  85. package/dist/elements/private/Metadata/Metadata.d.ts +13 -0
  86. package/dist/elements/private/Metadata/Metadata.js +27 -0
  87. package/dist/elements/private/Metadata/Metadata.js.map +1 -0
  88. package/dist/elements/private/index.d.ts +1 -1
  89. package/dist/elements/private/index.js +1 -1
  90. package/dist/elements/private/index.js.map +1 -1
  91. package/dist/elements/public/AddressForm/AddressForm.js +3 -3
  92. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  93. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +17 -6
  94. package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
  95. package/dist/elements/public/AttributeForm/AttributeForm.js +3 -3
  96. package/dist/elements/public/AttributeForm/AttributeForm.js.map +1 -1
  97. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +4 -4
  98. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
  99. package/dist/elements/public/CouponForm/CouponForm.js +4 -4
  100. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  101. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js +3 -3
  102. package/dist/elements/public/CustomFieldForm/CustomFieldForm.js.map +1 -1
  103. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +4 -4
  104. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
  105. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +4 -4
  106. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  107. package/dist/elements/public/GiftCardForm/GiftCardForm.js +4 -4
  108. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  109. package/dist/elements/public/ItemForm/ItemForm.js +26 -13
  110. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
  111. package/dist/elements/public/ItemForm/index.d.ts +1 -1
  112. package/dist/elements/public/ItemForm/index.js +1 -1
  113. package/dist/elements/public/ItemForm/index.js.map +1 -1
  114. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +0 -1
  115. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +8 -14
  116. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -1
  117. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +0 -1
  118. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +0 -1
  119. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -1
  120. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +0 -1
  121. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +13 -19
  122. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -1
  123. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +0 -1
  124. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +0 -1
  125. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -1
  126. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +0 -1
  127. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +17 -23
  128. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -1
  129. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +0 -1
  130. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +0 -1
  131. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -1
  132. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +0 -1
  133. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +14 -20
  134. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -1
  135. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +0 -1
  136. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +0 -1
  137. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -1
  138. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +0 -1
  139. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +28 -26
  140. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -1
  141. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +0 -1
  142. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +0 -1
  143. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -1
  144. package/dist/elements/public/PaymentsApi/PaymentsApi.js +7 -1
  145. package/dist/elements/public/PaymentsApi/PaymentsApi.js.map +1 -1
  146. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +1 -1
  147. package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
  148. package/dist/elements/public/ReportForm/ReportForm.js +4 -4
  149. package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
  150. package/dist/elements/public/StoreForm/StoreForm.js +1 -1
  151. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  152. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +24 -12
  153. package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
  154. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +11 -4
  155. package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
  156. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +22 -22
  157. package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
  158. package/dist/elements/public/TaxForm/TaxForm.js +4 -4
  159. package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
  160. package/dist/elements/public/TemplateForm/TemplateForm.js +4 -4
  161. package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
  162. package/package.json +1 -1
  163. package/dist/cdn/shared-7fab31ac.js +0 -1
  164. package/dist/cdn/shared-e2e2ca6a.js +0 -1
  165. package/dist/cdn/shared-f29d410a.js +0 -46
  166. package/dist/elements/private/PropertyTable/PropertyTable.d.ts +0 -12
  167. package/dist/elements/private/PropertyTable/PropertyTable.js +0 -43
  168. package/dist/elements/private/PropertyTable/PropertyTable.js.map +0 -1
@@ -43,7 +43,7 @@
43
43
  "create": "Create",
44
44
  "date": "{{value, date}}",
45
45
  "date_created": "Created on",
46
- "date_modified": "Last updated",
46
+ "date_modified": "Last updated on",
47
47
  "delete": "Delete",
48
48
  "delete_prompt": "This resource will be permanently removed. Are you sure?",
49
49
  "first_name": "First name",
@@ -71,7 +71,7 @@
71
71
  "create": "Create",
72
72
  "date": "{{value, date}}",
73
73
  "date_created": "Created on",
74
- "date_modified": "Last updated",
74
+ "date_modified": "Last updated on",
75
75
  "delete": "Delete",
76
76
  "delete_prompt": "This resource will be permanently removed. Are you sure?",
77
77
  "name": "Name",
@@ -156,7 +156,7 @@
156
156
  },
157
157
  "timestamps": {
158
158
  "date_created": "Created on",
159
- "date_modified": "Last updated",
159
+ "date_modified": "Last updated on",
160
160
  "date": "{{value, date}}"
161
161
  },
162
162
  "delete": {
@@ -214,6 +214,7 @@
214
214
  "subscription_failed": "Payment failed on {{date, date}}",
215
215
  "subscription_inactive": "Inactive",
216
216
  "subscription_will_be_cancelled": "Ends on {{date, date}}",
217
+ "subscription_will_be_active": "Starts on {{date, date}}",
217
218
  "transaction_plural": "Transactions",
218
219
  "twice_a_month": "Twice a month",
219
220
  "undo_cancel": "Review",
@@ -278,6 +279,7 @@
278
279
  "subscription_failed": "Payment failed on {{date, date}}",
279
280
  "subscription_inactive": "Inactive",
280
281
  "subscription_will_be_cancelled": "Ends on {{date, date}}",
282
+ "subscription_will_be_active": "Starts on {{date, date}}",
281
283
  "transaction_summary": "{{most_expensive_item.name}}",
282
284
  "twice_a_month": "Twice a month",
283
285
  "update": "Update",
@@ -452,7 +454,8 @@
452
454
  "subscription": {
453
455
  "title": "Subscription",
454
456
  "frequency": {
455
- "label": "Frequency",
457
+ "label": "Subscription frequency",
458
+ "helper_text": "",
456
459
  "day": "Day",
457
460
  "day_plural": "Days",
458
461
  "week": "Week",
@@ -463,21 +466,21 @@
463
466
  "year_plural": "Years"
464
467
  },
465
468
  "start": {
466
- "label": "Start date",
469
+ "label": "Subscription start",
467
470
  "helper_text": "",
468
471
  "placeholder": "01/01/2022"
469
472
  },
470
473
  "end": {
471
- "label": "End date",
474
+ "label": "Subscription end",
472
475
  "helper_text": "",
473
476
  "placeholder": "01/01/2022"
474
477
  },
475
478
  "next": {
476
- "label": "Next transaction date",
479
+ "label": "Next payment (subscriptions only)",
477
480
  "helper_text": "",
478
481
  "placeholder": "01/01/2022"
479
482
  },
480
- "dialog": {
483
+ "form": {
481
484
  "save": "Save",
482
485
  "update": "Update",
483
486
  "day": "Day",
@@ -508,6 +511,7 @@
508
511
  "subscription_failed": "Payment failed on {{date, date}}",
509
512
  "subscription_inactive": "Inactive",
510
513
  "subscription_will_be_cancelled": "Ends on {{date, date}}",
514
+ "subscription_will_be_active": "Starts on {{date, date}}",
511
515
  "transaction_plural": "Transactions",
512
516
  "twice_a_month": "Twice a month",
513
517
  "undo_cancel": "Review",
@@ -569,6 +573,7 @@
569
573
  "subscription_inactive": "Inactive",
570
574
  "subscription_plural": "Subscriptions",
571
575
  "subscription_will_be_cancelled": "Ends on {{date, date}}",
576
+ "subscription_will_be_active": "Starts on {{date, date}}",
572
577
  "transaction_summary": "{{most_expensive_item.name}}",
573
578
  "twice_a_month": "Twice a month",
574
579
  "weekly": "Weekly",
@@ -583,7 +588,6 @@
583
588
  }
584
589
  },
585
590
  "line-item-discount": {
586
- "title": "Line item discount",
587
591
  "coupon": {
588
592
  "label": "Coupon",
589
593
  "helper_text": "",
@@ -610,7 +614,6 @@
610
614
  }
611
615
  },
612
616
  "cart": {
613
- "title": "Cart",
614
617
  "expires": {
615
618
  "label": "Expires",
616
619
  "helper_text": "",
@@ -638,7 +641,6 @@
638
641
  }
639
642
  },
640
643
  "shipping": {
641
- "title": "Shipping",
642
644
  "shipto": {
643
645
  "label": "Shipping address",
644
646
  "helper_text": "",
@@ -666,7 +668,6 @@
666
668
  }
667
669
  },
668
670
  "inventory": {
669
- "title": "Inventory",
670
671
  "category": {
671
672
  "label": "Item category",
672
673
  "helper_text": "",
@@ -719,73 +720,37 @@
719
720
  },
720
721
  "attributes": {
721
722
  "title": "Attributes",
722
- "card": {
723
- "spinner": {
724
- "loading_busy": "Loading",
725
- "loading_empty": "No data",
726
- "loading_error": "Failed to load"
727
- }
728
- },
729
- "pagination": {
730
- "first": "First",
731
- "last": "Last",
732
- "next": "Next",
733
- "pagination": "{{from}}-{{to}} out of {{total}}",
734
- "previous": "Previous"
735
- },
736
723
  "dialog": {
724
+ "header_create": "Create attribute",
725
+ "header_update": "Update attribute",
737
726
  "close": "Close",
738
- "cancel": "Cancel",
739
- "header_update": "Attribute",
740
- "header_create": "New attribute",
741
727
  "save": "Save",
728
+ "cancel": "Cancel",
742
729
  "undo_header": "Unsaved changes",
743
730
  "undo_message": "Looks like you didn't save your changes! What would you like to do with them?",
744
731
  "undo_cancel": "Review",
745
- "undo_confirm": "Discard",
746
- "confirm": "Confirm",
747
- "attribute-form": {
748
- "create": "Create",
749
- "date": "{{value, date}}",
750
- "date_created": "Created on",
751
- "date_modified": "Last updated",
752
- "delete": "Delete",
753
- "delete_prompt": "This resource will be permanently removed. Are you sure?",
754
- "name": "Name",
755
- "v8n_required": "Required",
756
- "v8n_too_long": "Too long",
757
- "value": "Value",
758
- "visibility": "Visibility",
759
- "visibility_private": "Only me",
760
- "visibility_public": "Everyone",
761
- "visibility_restricted": "Store admins",
732
+ "undo_confirm": "Discard"
733
+ },
734
+ "pagination": {
735
+ "create_button_text": "Add attribute",
736
+ "card": {
737
+ "delete_button_text": "Delete",
762
738
  "spinner": {
763
739
  "loading_busy": "Loading",
740
+ "loading_empty": "No data",
764
741
  "loading_error": "Failed to load"
765
742
  }
766
- }
743
+ },
744
+ "first": "First",
745
+ "last": "Last",
746
+ "next": "Next",
747
+ "pagination": "{{from}}-{{to}} out of {{total}}",
748
+ "previous": "Previous"
767
749
  }
768
750
  },
769
751
  "item-options": {
770
752
  "title": "Item options",
771
- "card": {
772
- "spinner": {
773
- "loading_busy": "Loading",
774
- "loading_empty": "No data",
775
- "loading_error": "Failed to load"
776
- }
777
- },
778
- "dialog": {
779
- "close": "Close",
780
- "cancel": "Cancel",
781
- "header_update": "Item option",
782
- "header_create": "New item option",
783
- "save": "Save",
784
- "undo_header": "Unsaved changes",
785
- "undo_message": "Looks like you didn't save your changes! What would you like to do with them?",
786
- "undo_cancel": "Review",
787
- "undo_confirm": "Discard",
788
- "confirm": "Confirm",
753
+ "form": {
789
754
  "name": {
790
755
  "label": "Name",
791
756
  "helper_text": "",
@@ -812,7 +777,7 @@
812
777
  },
813
778
  "timestamps": {
814
779
  "date_created": "Created on",
815
- "date_modified": "Last updated",
780
+ "date_modified": "Last updated on",
816
781
  "date": "{{value, date}}"
817
782
  },
818
783
  "spinner": {
@@ -828,7 +793,27 @@
828
793
  "create": "Create"
829
794
  }
830
795
  },
796
+ "dialog": {
797
+ "header_create": "Create option",
798
+ "header_update": "Update option",
799
+ "close": "Close",
800
+ "save": "Save",
801
+ "cancel": "Cancel",
802
+ "undo_header": "Unsaved changes",
803
+ "undo_message": "Looks like you didn't save your changes! What would you like to do with them?",
804
+ "undo_cancel": "Review",
805
+ "undo_confirm": "Discard"
806
+ },
831
807
  "pagination": {
808
+ "card": {
809
+ "delete_button_text": "Delete",
810
+ "spinner": {
811
+ "loading_busy": "Loading",
812
+ "loading_empty": "No data",
813
+ "loading_error": "Failed to load"
814
+ }
815
+ },
816
+ "create_button_text": "Add option",
832
817
  "first": "First",
833
818
  "last": "Last",
834
819
  "next": "Next",
@@ -838,7 +823,7 @@
838
823
  },
839
824
  "timestamps": {
840
825
  "date_created": "Created on",
841
- "date_modified": "Last updated",
826
+ "date_modified": "Last updated on",
842
827
  "date": "{{value, date}}"
843
828
  },
844
829
  "delete": {
@@ -948,7 +933,7 @@
948
933
  "create": "Create",
949
934
  "date": "{{value, date}}",
950
935
  "date_created": "Created on",
951
- "date_modified": "Last updated",
936
+ "date_modified": "Last updated on",
952
937
  "delete": "Delete",
953
938
  "delete_prompt": "This resource will be permanently removed. Are you sure?",
954
939
  "name": "Name",
@@ -996,7 +981,7 @@
996
981
  "create": "Create",
997
982
  "date": "{{value, date}}",
998
983
  "date_created": "Created on",
999
- "date_modified": "Last updated",
984
+ "date_modified": "Last updated on",
1000
985
  "delete": "Delete",
1001
986
  "delete_prompt": "This resource will be permanently removed. Are you sure?",
1002
987
  "name": "Name",
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "timestamps": {
85
85
  "date_created": "Created on",
86
- "date_modified": "Last updated",
86
+ "date_modified": "Last updated on",
87
87
  "date": "{{value, date}}"
88
88
  },
89
89
  "delete": {
@@ -1,5 +1,4 @@
1
- import { CSSResultArray } from 'lit-element';
2
- import { TemplateResult } from 'lit-html';
1
+ import type { TemplateResult } from 'lit-html';
3
2
  import { InternalControl } from '../InternalControl/InternalControl';
4
3
  /**
5
4
  * Internal control displaying creation and last modification date
@@ -9,6 +8,5 @@ import { InternalControl } from '../InternalControl/InternalControl';
9
8
  * @since 1.17.0
10
9
  */
11
10
  export declare class InternalTimestampsControl extends InternalControl {
12
- static get styles(): CSSResultArray;
13
11
  renderControl(): TemplateResult;
14
12
  }
@@ -1,7 +1,6 @@
1
- import { css } from 'lit-element';
1
+ import { InternalControl } from "../InternalControl/InternalControl.js";
2
2
  import { html } from 'lit-html';
3
3
  import { get } from 'lodash-es';
4
- import { InternalControl } from "../InternalControl/InternalControl.js";
5
4
  /**
6
5
  * Internal control displaying creation and last modification date
7
6
  * for a hAPI resource in a table.
@@ -10,47 +9,25 @@ import { InternalControl } from "../InternalControl/InternalControl.js";
10
9
  * @since 1.17.0
11
10
  */
12
11
  export class InternalTimestampsControl extends InternalControl {
13
- static get styles() {
14
- return [
15
- super.styles,
16
- css `.max-w-0{
17
- max-width:0;
18
- }
19
- `,
20
- ];
21
- }
22
12
  renderControl() {
23
13
  return html `
24
- <table class="font-lumo text-m leading-m w-full">
25
- <tbody class="divide-y divide-contrast-10">
26
- <tr>
27
- <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">
28
- <foxy-i18n infer="" key="date_created"></foxy-i18n>
29
- </td>
30
- <td class="max-w-0 truncate py-s text-body w-2-3">
31
- <foxy-i18n
32
- options=${JSON.stringify({ value: get(this, 'nucleon.form.date_created') })}
33
- infer=""
34
- key="date"
35
- >
36
- </foxy-i18n>
37
- </td>
38
- </tr>
39
- <tr>
40
- <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">
41
- <foxy-i18n infer="" key="date_modified"></foxy-i18n>
42
- </td>
43
- <td class="max-w-0 truncate py-s text-body w-2-3">
44
- <foxy-i18n
45
- options=${JSON.stringify({ value: get(this, 'nucleon.form.date_modified') })}
46
- infer=""
47
- key="date"
48
- >
49
- </foxy-i18n>
50
- </td>
51
- </tr>
52
- </tbody>
53
- </table>
14
+ <p class="font-lumo text-xs leading-s text-secondary">
15
+ <foxy-i18n infer="" key="date_created"></foxy-i18n>
16
+ <foxy-i18n
17
+ .options=${{ value: get(this, 'nucleon.data.date_created') }}
18
+ infer=""
19
+ key="date"
20
+ >
21
+ </foxy-i18n>
22
+ <span>&bull;<span>
23
+ <foxy-i18n infer="" key="date_modified"></foxy-i18n>
24
+ <foxy-i18n
25
+ .options=${{ value: get(this, 'nucleon.data.date_modified') }}
26
+ infer=""
27
+ key="date"
28
+ >
29
+ </foxy-i18n>
30
+ </p>
54
31
  `;
55
32
  }
56
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTimestampsControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTimestampsControl/InternalTimestampsControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAkB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAkB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,8CAA2C;AAErE;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;OAIF;SACF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;;;;;;;;;0BASW,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,CAAC;;;;;;;;;;;;;0BAajE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC;;;;;;;;;KASvF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { css, CSSResultArray } from 'lit-element';\nimport { html, TemplateResult } from 'lit-html';\nimport { get } from 'lodash-es';\nimport { InternalControl } from '../InternalControl/InternalControl';\n\n/**\n * Internal control displaying creation and last modification date\n * for a hAPI resource in a table.\n *\n * @element foxy-internal-timestamps-control\n * @since 1.17.0\n */\nexport class InternalTimestampsControl extends InternalControl {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .max-w-0 {\n max-width: 0;\n }\n `,\n ];\n }\n\n renderControl(): TemplateResult {\n return html`\n <table class=\"font-lumo text-m leading-m w-full\">\n <tbody class=\"divide-y divide-contrast-10\">\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">\n <foxy-i18n infer=\"\" key=\"date_created\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <foxy-i18n\n options=${JSON.stringify({ value: get(this, 'nucleon.form.date_created') })}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n </td>\n </tr>\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">\n <foxy-i18n infer=\"\" key=\"date_modified\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <foxy-i18n\n options=${JSON.stringify({ value: get(this, 'nucleon.form.date_modified') })}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n </td>\n </tr>\n </tbody>\n </table>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTimestampsControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTimestampsControl/InternalTimestampsControl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,8CAA2C;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,aAAa;QACX,OAAO,IAAI,CAAA;;;;qBAIM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE;;;;;;;;qBAQjD,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,4BAA4B,CAAC,EAAE;;;;;;KAMlE,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../InternalControl/InternalControl';\nimport { html } from 'lit-html';\nimport { get } from 'lodash-es';\n\n/**\n * Internal control displaying creation and last modification date\n * for a hAPI resource in a table.\n *\n * @element foxy-internal-timestamps-control\n * @since 1.17.0\n */\nexport class InternalTimestampsControl extends InternalControl {\n renderControl(): TemplateResult {\n return html`\n <p class=\"font-lumo text-xs leading-s text-secondary\">\n <foxy-i18n infer=\"\" key=\"date_created\"></foxy-i18n>\n <foxy-i18n\n .options=${{ value: get(this, 'nucleon.data.date_created') }}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n <span>&bull;<span>\n <foxy-i18n infer=\"\" key=\"date_modified\"></foxy-i18n>\n <foxy-i18n\n .options=${{ value: get(this, 'nucleon.data.date_modified') }}\n infer=\"\"\n key=\"date\"\n >\n </foxy-i18n>\n </p>\n `;\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import { Themeable } from '../../../mixins/themeable';
4
+ export declare class Metadata extends Themeable {
5
+ static get properties(): PropertyDeclarations;
6
+ /** @deprecated */
7
+ disabled: boolean;
8
+ items: {
9
+ name: string;
10
+ value: string;
11
+ }[];
12
+ render(): TemplateResult;
13
+ }
@@ -0,0 +1,27 @@
1
+ import { Themeable } from "../../../mixins/themeable.js";
2
+ import { html } from 'lit-html';
3
+ export class Metadata extends Themeable {
4
+ constructor() {
5
+ super(...arguments);
6
+ /** @deprecated */
7
+ this.disabled = false;
8
+ this.items = [];
9
+ }
10
+ static get properties() {
11
+ return {
12
+ ...super.properties,
13
+ disabled: { type: Boolean, reflect: true },
14
+ items: { attribute: false },
15
+ };
16
+ }
17
+ render() {
18
+ return html `
19
+ <p class="font-lumo text-xs leading-s text-secondary">
20
+ ${this.items.map(({ name, value }, i) => {
21
+ return html `${i === 0 ? '' : html `&bull;`}${name} ${value}`;
22
+ })}
23
+ </p>
24
+ `;
25
+ }
26
+ }
27
+ //# sourceMappingURL=Metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../../src/elements/private/Metadata/Metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,qCAAkC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,OAAO,QAAS,SAAQ,SAAS;IAAvC;;QASE,kBAAkB;QAClB,aAAQ,GAAG,KAAK,CAAC;QAEjB,UAAK,GAAsC,EAAE,CAAC;IAWhD,CAAC;IAtBC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;YAC1C,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC5B,CAAC;IACJ,CAAC;IAOD,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;YACtC,OAAO,IAAI,CAAA,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA,QAAQ,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QAC9D,CAAC,CAAC;;KAEL,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\n\nimport { Themeable } from '../../../mixins/themeable';\nimport { html } from 'lit-html';\n\nexport class Metadata extends Themeable {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n disabled: { type: Boolean, reflect: true },\n items: { attribute: false },\n };\n }\n\n /** @deprecated */\n disabled = false;\n\n items: { name: string; value: string }[] = [];\n\n render(): TemplateResult {\n return html`\n <p class=\"font-lumo text-xs leading-s text-secondary\">\n ${this.items.map(({ name, value }, i) => {\n return html`${i === 0 ? '' : html`&bull;`}${name} ${value}`;\n })}\n </p>\n `;\n }\n}\n"]}
@@ -10,7 +10,7 @@ export * from './List/List';
10
10
  export * from './LoadingScreen/LoadingScreen';
11
11
  export * from './MonthdayPicker/MonthdayPicker';
12
12
  export * from './Page/Page';
13
- export * from './PropertyTable/PropertyTable';
13
+ export * from './Metadata/Metadata';
14
14
  export * from './Section/Section';
15
15
  export * from './Skeleton/Skeleton';
16
16
  export * from './Switch/Switch';
@@ -10,7 +10,7 @@ export * from "./List/List.js";
10
10
  export * from "./LoadingScreen/LoadingScreen.js";
11
11
  export * from "./MonthdayPicker/MonthdayPicker.js";
12
12
  export * from "./Page/Page.js";
13
- export * from "./PropertyTable/PropertyTable.js";
13
+ export * from "./Metadata/Metadata.js";
14
14
  export * from "./Section/Section.js";
15
15
  export * from "./Skeleton/Skeleton.js";
16
16
  export * from "./Switch/Switch.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/elements/private/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AACpC,mCAAgC;AAChC,mCAAgC;AAChC,uCAAoC;AACpC,6CAA0C;AAC1C,mDAAgD;AAChD,iCAA8B;AAC9B,+BAA4B;AAC5B,+BAA4B;AAC5B,iDAA8C;AAC9C,mDAAgD;AAChD,+BAA4B;AAC5B,iDAA8C;AAC9C,qCAAkC;AAClC,uCAAoC;AACpC,mCAAgC;AAChC,+BAA4B;AAC5B,qCAAkC;AAClC,iDAA8C","sourcesContent":["export * from './Checkbox/Checkbox';\nexport * from './Choice/Choice';\nexport * from './Dialog/Dialog';\nexport * from './Dropdown/Dropdown';\nexport * from './ErrorScreen/ErrorScreen';\nexport * from './FrequencyInput/FrequencyInput';\nexport * from './Group/Group';\nexport * from './I18N/I18N';\nexport * from './List/List';\nexport * from './LoadingScreen/LoadingScreen';\nexport * from './MonthdayPicker/MonthdayPicker';\nexport * from './Page/Page';\nexport * from './PropertyTable/PropertyTable';\nexport * from './Section/Section';\nexport * from './Skeleton/Skeleton';\nexport * from './Switch/Switch';\nexport * from './Tabs/Tabs';\nexport * from './Warning/Warning';\nexport * from './WeekdayPicker/WeekdayPicker';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/elements/private/index.ts"],"names":[],"mappings":"AAAA,uCAAoC;AACpC,mCAAgC;AAChC,mCAAgC;AAChC,uCAAoC;AACpC,6CAA0C;AAC1C,mDAAgD;AAChD,iCAA8B;AAC9B,+BAA4B;AAC5B,+BAA4B;AAC5B,iDAA8C;AAC9C,mDAAgD;AAChD,+BAA4B;AAC5B,uCAAoC;AACpC,qCAAkC;AAClC,uCAAoC;AACpC,mCAAgC;AAChC,+BAA4B;AAC5B,qCAAkC;AAClC,iDAA8C","sourcesContent":["export * from './Checkbox/Checkbox';\nexport * from './Choice/Choice';\nexport * from './Dialog/Dialog';\nexport * from './Dropdown/Dropdown';\nexport * from './ErrorScreen/ErrorScreen';\nexport * from './FrequencyInput/FrequencyInput';\nexport * from './Group/Group';\nexport * from './I18N/I18N';\nexport * from './List/List';\nexport * from './LoadingScreen/LoadingScreen';\nexport * from './MonthdayPicker/MonthdayPicker';\nexport * from './Page/Page';\nexport * from './Metadata/Metadata';\nexport * from './Section/Section';\nexport * from './Skeleton/Skeleton';\nexport * from './Switch/Switch';\nexport * from './Tabs/Tabs';\nexport * from './Warning/Warning';\nexport * from './WeekdayPicker/WeekdayPicker';\n"]}
@@ -2,7 +2,7 @@ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
2
2
  import { html } from 'lit-html';
3
3
  import { ConfigurableMixin } from "../../../mixins/configurable.js";
4
4
  import { NucleonElement } from "../NucleonElement/NucleonElement.js";
5
- import { PropertyTable } from "../../private/PropertyTable/PropertyTable.js";
5
+ import { Metadata } from "../../private/Metadata/Metadata.js";
6
6
  import { ThemeableMixin } from "../../../mixins/themeable.js";
7
7
  import { TranslatableMixin } from "../../../mixins/translatable.js";
8
8
  import { classMap } from "../../../utils/class-map.js";
@@ -184,7 +184,7 @@ export class AddressForm extends Base {
184
184
  return html `
185
185
  <div>
186
186
  ${this.renderTemplateOrSlot('timestamps:before')}
187
- <x-property-table .items=${items} data-testid="timestamps"></x-property-table>
187
+ <x-metadata .items=${items} data-testid="timestamps"></x-metadata>
188
188
  ${this.renderTemplateOrSlot('timestamps:after')}
189
189
  </div>
190
190
  `;
@@ -223,7 +223,7 @@ export class AddressForm extends Base {
223
223
  'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),
224
224
  'vaadin-text-field': customElements.get('vaadin-text-field'),
225
225
  'vaadin-combo-box': customElements.get('vaadin-combo-box'),
226
- 'x-property-table': PropertyTable,
226
+ 'x-metadata': Metadata,
227
227
  'vaadin-button': customElements.get('vaadin-button'),
228
228
  'foxy-spinner': customElements.get('foxy-spinner'),
229
229
  'foxy-i18n': customElements.get('foxy-i18n'),
@@ -1 +1 @@
1
- {"version":3,"file":"AddressForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AddressForm/AddressForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, Templates, TextFieldParams } from './types';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { PropertyTable } from '../../private/PropertyTable/PropertyTable';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { countries } from './countries';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'address-form';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Basic form displaying customer address.\n *\n * @slot address-name:before - **new in v1.4.0**\n * @slot address-name:after - **new in v1.4.0**\n *\n * @slot first-name:before - **new in v1.4.0**\n * @slot first-name:after - **new in v1.4.0**\n *\n * @slot last-name:before - **new in v1.4.0**\n * @slot last-name:after - **new in v1.4.0**\n *\n * @slot region:before - **new in v1.4.0**\n * @slot region:after - **new in v1.4.0**\n *\n * @slot city:before - **new in v1.4.0**\n * @slot city:after - **new in v1.4.0**\n *\n * @slot phone:before - **new in v1.4.0**\n * @slot phone:after - **new in v1.4.0**\n *\n * @slot company:before - **new in v1.4.0**\n * @slot company:after - **new in v1.4.0**\n *\n * @slot address-one:before - **new in v1.4.0**\n * @slot address-one:after - **new in v1.4.0**\n *\n * @slot address-two:before - **new in v1.4.0**\n * @slot address-two:after - **new in v1.4.0**\n *\n * @slot country:before - **new in v1.4.0**\n * @slot country:after - **new in v1.4.0**\n *\n * @slot postal-code:before - **new in v1.4.0**\n * @slot postal-code:after - **new in v1.4.0**\n *\n * @slot timestamps:before - **new in v1.4.0**\n * @slot timestamps:after - **new in v1.4.0**\n *\n * @slot create:before - **new in v1.4.0**\n * @slot create:after - **new in v1.4.0**\n *\n * @slot delete:before - **new in v1.4.0**\n * @slot delete:after - **new in v1.4.0**\n *\n * @element foxy-address-form\n * @since 1.2.0\n */\nexport class AddressForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'x-property-table': PropertyTable,\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ address_name: v }) => (v && v.length > 0) || 'address_name_required',\n ({ address_name: v }) => !v || v.length <= 100 || 'address_name_too_long',\n ({ first_name: v }) => !v || v.length <= 50 || 'first_name_too_long',\n ({ last_name: v }) => !v || v.length <= 50 || 'last_name_too_long',\n ({ region: v }) => !v || v.length <= 50 || 'region_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city_too_long',\n ({ phone: v }) => !v || v.length <= 50 || 'phone_too_long',\n ({ company: v }) => !v || v.length <= 50 || 'company_too_long',\n ({ address2: v }) => !v || v.length <= 100 || 'address2_too_long',\n ({ address1: v }) => (v && v.length > 0) || 'address1_required',\n ({ address1: v }) => (v && v.length <= 100) || 'address1_too_long',\n ({ postal_code: v }) => !v || v.length <= 50 || 'postal_code_too_long',\n ];\n }\n\n templates: Templates = {};\n\n private readonly __getValidator = memoize((prefix: string) => () => {\n return !this.errors.some(err => err.startsWith(prefix));\n });\n\n private readonly __bindField = memoize((key: keyof Data) => {\n return (evt: CustomEvent) => {\n const target = evt.currentTarget as HTMLInputElement;\n this.edit({ [key]: target.value });\n };\n });\n\n private readonly __maybeRenderCountry = () => {\n const field = 'country';\n if (this.hiddenSelector.matches(field)) return '';\n const source = Object.keys(countries);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${field}:before`)}\n\n <vaadin-combo-box\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${field}\n item-value-path=\"code\"\n item-label-path=\"text\"\n .checkValidity=${this.__getValidator(field)}\n .items=${source.map(code => ({\n text: this.t(`country_${code.toLowerCase()}`),\n code,\n }))}\n ?readonly=${this.readonlySelector.matches(field, true)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(field, true)}\n @change=${(evt: CustomEvent) => {\n const target = evt.currentTarget as HTMLInputElement;\n this.edit({ country: target.value, region: '' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot(`${field}:after`)}\n </div>\n `;\n };\n\n private readonly __maybeRenderRegion = () => {\n const field = 'region';\n if (this.hiddenSelector.matches(field)) return '';\n const source = countries[this.form.country ?? ''] ?? [];\n const country = this.form.country ?? '';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${field}:before`)}\n\n <vaadin-combo-box\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${field}\n item-value-path=\"code\"\n item-label-path=\"text\"\n .checkValidity=${this.__getValidator(field)}\n .items=${source.map(code => ({\n text: this.t(`country_${country.toLowerCase()}_region_${code.toLowerCase()}`),\n code,\n }))}\n ?allow-custom-value=${source.length === 0}\n ?readonly=${this.readonlySelector.matches(field, true)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(field, true)}\n @change=${this.__bindField(field)}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot(`${field}:after`)}\n </div>\n `;\n };\n\n private readonly __maybeRenderTextField = (params: TextFieldParams) => {\n const { field, wide = false, readonly = false, required = false } = params;\n const bsid = field.replace(/_/, '-').replace('1', '-one').replace('2', '-two');\n if (this.hiddenSelector.matches(bsid)) return '';\n\n return html`\n <div class=${classMap({ 'col-span-2': wide })}>\n ${this.renderTemplateOrSlot(`${bsid}:before`)}\n\n <vaadin-text-field\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${bsid}\n .checkValidity=${this.__getValidator(field)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(bsid)}\n ?required=${required}\n ?readonly=${readonly || this.readonlySelector.matches(bsid)}\n @input=${this.__bindField(field)}\n @keydown=${this.__handleKeyDown}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot(`${bsid}:after`)}\n </div>\n `;\n };\n\n private readonly __renderTimestamps = () => {\n const items = (['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }));\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n <x-property-table .items=${items} data-testid=\"timestamps\"></x-property-table>\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n };\n\n private readonly __renderAction = (action: string) => {\n const isTemplateValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(action, true);\n const isDefaultShipping = !!this.form?.is_default_shipping;\n const isDefaultBilling = !!this.form?.is_default_billing;\n const isDefault = isDefaultShipping || isDefaultBilling;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${action}:before`)}\n\n <vaadin-button\n class=\"w-full\"\n theme=${this.in('idle') ? `${this.href ? 'error' : 'primary success'}` : ''}\n data-testid=${action}\n ?disabled=${(this.in({ idle: 'template' }) && !isValid) || isDisabled || isDefault}\n @click=${this.__handleActionClick}\n >\n <foxy-i18n ns=${this.ns} key=${action} lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${action}:after`)}\n </div>\n `;\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n customElements.get('foxy-i18n').i18next.loadNamespaces(['country', 'region']);\n }\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const action = this.href ? 'delete' : 'create';\n\n const isDefaultShipping = !!this.form?.is_default_shipping;\n const isDefaultBilling = !!this.form?.is_default_billing;\n const isDefault = isDefaultShipping || isDefaultBilling;\n const isBusy = this.in('busy');\n const isFail = this.in('fail');\n\n return html`\n <foxy-internal-confirm-dialog\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${lang}\n ns=${ns}\n id=\"confirm\"\n data-testid=\"confirm\"\n @hide=${this.__handleConfirmHide}\n >\n </foxy-internal-confirm-dialog>\n\n <div\n class=\"space-y-l font-lumo text-m leading-m text-body relative\"\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n data-testid=\"wrapper\"\n >\n <div class=\"grid grid-cols-2 gap-m\">\n ${this.__maybeRenderTextField({\n field: 'address_name',\n wide: true,\n readonly: isDefault,\n required: true,\n })}\n ${this.__maybeRenderTextField({ field: 'first_name' })}\n ${this.__maybeRenderTextField({ field: 'last_name' })}\n ${this.__maybeRenderTextField({ field: 'company' })}\n ${this.__maybeRenderTextField({ field: 'phone' })}\n ${this.__maybeRenderTextField({ field: 'address1', wide: true, required: true })}\n ${this.__maybeRenderTextField({ field: 'address2', wide: true })}\n ${this.__maybeRenderCountry()} ${this.__maybeRenderRegion()}\n ${this.__maybeRenderTextField({ field: 'city' })}\n ${this.__maybeRenderTextField({ field: 'postal_code' })}\n </div>\n\n ${!this.data || hiddenSelector.matches('timestamps', true) ? '' : this.__renderTimestamps()}\n ${hiddenSelector.matches(action, true) ? '' : this.__renderAction(action)}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isBusy && !isFail,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${isFail ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__getValidator.cache.clear?.();\n }\n\n private __handleKeyDown(evt: KeyboardEvent) {\n if (evt.key === 'Enter') this.submit();\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __handleActionClick(evt: Event) {\n if (this.in({ idle: 'snapshot' })) {\n const confirm = this.renderRoot.querySelector('#confirm');\n (confirm as InternalConfirmDialog).show(evt.currentTarget as HTMLElement);\n } else {\n this.submit();\n }\n }\n\n private __handleConfirmHide(evt: DialogHideEvent) {\n if (!evt.detail.cancelled) this.delete();\n }\n}\n"]}
1
+ {"version":3,"file":"AddressForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AddressForm/AddressForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, Templates, TextFieldParams } from './types';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport { InternalConfirmDialog } from '../../internal/InternalConfirmDialog/InternalConfirmDialog';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { Metadata } from '../../private/Metadata/Metadata';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { countries } from './countries';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'address-form';\nconst Base = ScopedElementsMixin(\n ConfigurableMixin(ThemeableMixin(TranslatableMixin(NucleonElement, NS)))\n);\n\n/**\n * Basic form displaying customer address.\n *\n * @slot address-name:before - **new in v1.4.0**\n * @slot address-name:after - **new in v1.4.0**\n *\n * @slot first-name:before - **new in v1.4.0**\n * @slot first-name:after - **new in v1.4.0**\n *\n * @slot last-name:before - **new in v1.4.0**\n * @slot last-name:after - **new in v1.4.0**\n *\n * @slot region:before - **new in v1.4.0**\n * @slot region:after - **new in v1.4.0**\n *\n * @slot city:before - **new in v1.4.0**\n * @slot city:after - **new in v1.4.0**\n *\n * @slot phone:before - **new in v1.4.0**\n * @slot phone:after - **new in v1.4.0**\n *\n * @slot company:before - **new in v1.4.0**\n * @slot company:after - **new in v1.4.0**\n *\n * @slot address-one:before - **new in v1.4.0**\n * @slot address-one:after - **new in v1.4.0**\n *\n * @slot address-two:before - **new in v1.4.0**\n * @slot address-two:after - **new in v1.4.0**\n *\n * @slot country:before - **new in v1.4.0**\n * @slot country:after - **new in v1.4.0**\n *\n * @slot postal-code:before - **new in v1.4.0**\n * @slot postal-code:after - **new in v1.4.0**\n *\n * @slot timestamps:before - **new in v1.4.0**\n * @slot timestamps:after - **new in v1.4.0**\n *\n * @slot create:before - **new in v1.4.0**\n * @slot create:after - **new in v1.4.0**\n *\n * @slot delete:before - **new in v1.4.0**\n * @slot delete:after - **new in v1.4.0**\n *\n * @element foxy-address-form\n * @since 1.2.0\n */\nexport class AddressForm extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-internal-confirm-dialog': customElements.get('foxy-internal-confirm-dialog'),\n 'foxy-internal-sandbox': customElements.get('foxy-internal-sandbox'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'vaadin-combo-box': customElements.get('vaadin-combo-box'),\n 'x-metadata': Metadata,\n 'vaadin-button': customElements.get('vaadin-button'),\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ address_name: v }) => (v && v.length > 0) || 'address_name_required',\n ({ address_name: v }) => !v || v.length <= 100 || 'address_name_too_long',\n ({ first_name: v }) => !v || v.length <= 50 || 'first_name_too_long',\n ({ last_name: v }) => !v || v.length <= 50 || 'last_name_too_long',\n ({ region: v }) => !v || v.length <= 50 || 'region_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city_too_long',\n ({ phone: v }) => !v || v.length <= 50 || 'phone_too_long',\n ({ company: v }) => !v || v.length <= 50 || 'company_too_long',\n ({ address2: v }) => !v || v.length <= 100 || 'address2_too_long',\n ({ address1: v }) => (v && v.length > 0) || 'address1_required',\n ({ address1: v }) => (v && v.length <= 100) || 'address1_too_long',\n ({ postal_code: v }) => !v || v.length <= 50 || 'postal_code_too_long',\n ];\n }\n\n templates: Templates = {};\n\n private readonly __getValidator = memoize((prefix: string) => () => {\n return !this.errors.some(err => err.startsWith(prefix));\n });\n\n private readonly __bindField = memoize((key: keyof Data) => {\n return (evt: CustomEvent) => {\n const target = evt.currentTarget as HTMLInputElement;\n this.edit({ [key]: target.value });\n };\n });\n\n private readonly __maybeRenderCountry = () => {\n const field = 'country';\n if (this.hiddenSelector.matches(field)) return '';\n const source = Object.keys(countries);\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${field}:before`)}\n\n <vaadin-combo-box\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${field}\n item-value-path=\"code\"\n item-label-path=\"text\"\n .checkValidity=${this.__getValidator(field)}\n .items=${source.map(code => ({\n text: this.t(`country_${code.toLowerCase()}`),\n code,\n }))}\n ?readonly=${this.readonlySelector.matches(field, true)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(field, true)}\n @change=${(evt: CustomEvent) => {\n const target = evt.currentTarget as HTMLInputElement;\n this.edit({ country: target.value, region: '' });\n }}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot(`${field}:after`)}\n </div>\n `;\n };\n\n private readonly __maybeRenderRegion = () => {\n const field = 'region';\n if (this.hiddenSelector.matches(field)) return '';\n const source = countries[this.form.country ?? ''] ?? [];\n const country = this.form.country ?? '';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${field}:before`)}\n\n <vaadin-combo-box\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${field}\n item-value-path=\"code\"\n item-label-path=\"text\"\n .checkValidity=${this.__getValidator(field)}\n .items=${source.map(code => ({\n text: this.t(`country_${country.toLowerCase()}_region_${code.toLowerCase()}`),\n code,\n }))}\n ?allow-custom-value=${source.length === 0}\n ?readonly=${this.readonlySelector.matches(field, true)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(field, true)}\n @change=${this.__bindField(field)}\n >\n </vaadin-combo-box>\n\n ${this.renderTemplateOrSlot(`${field}:after`)}\n </div>\n `;\n };\n\n private readonly __maybeRenderTextField = (params: TextFieldParams) => {\n const { field, wide = false, readonly = false, required = false } = params;\n const bsid = field.replace(/_/, '-').replace('1', '-one').replace('2', '-two');\n if (this.hiddenSelector.matches(bsid)) return '';\n\n return html`\n <div class=${classMap({ 'col-span-2': wide })}>\n ${this.renderTemplateOrSlot(`${bsid}:before`)}\n\n <vaadin-text-field\n class=\"w-full\"\n label=${this.t(field).toString()}\n value=${ifDefined(this.form?.[field]?.toString())}\n error-message=${this.__getErrorMessage(field)}\n data-testid=${bsid}\n .checkValidity=${this.__getValidator(field)}\n ?disabled=${!this.in('idle') || this.disabledSelector.matches(bsid)}\n ?required=${required}\n ?readonly=${readonly || this.readonlySelector.matches(bsid)}\n @input=${this.__bindField(field)}\n @keydown=${this.__handleKeyDown}\n >\n </vaadin-text-field>\n\n ${this.renderTemplateOrSlot(`${bsid}:after`)}\n </div>\n `;\n };\n\n private readonly __renderTimestamps = () => {\n const items = (['date_modified', 'date_created'] as const).map(field => ({\n name: this.t(field),\n value: this.data?.[field]\n ? this.t('date', { value: new Date(this.data[field] as string) })\n : '',\n }));\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('timestamps:before')}\n <x-metadata .items=${items} data-testid=\"timestamps\"></x-metadata>\n ${this.renderTemplateOrSlot('timestamps:after')}\n </div>\n `;\n };\n\n private readonly __renderAction = (action: string) => {\n const isTemplateValid = this.in({ idle: { template: { dirty: 'valid' } } });\n const isSnapshotValid = this.in({ idle: { snapshot: { dirty: 'valid' } } });\n const isDisabled = !this.in('idle') || this.disabledSelector.matches(action, true);\n const isDefaultShipping = !!this.form?.is_default_shipping;\n const isDefaultBilling = !!this.form?.is_default_billing;\n const isDefault = isDefaultShipping || isDefaultBilling;\n const isValid = isTemplateValid || isSnapshotValid;\n\n return html`\n <div>\n ${this.renderTemplateOrSlot(`${action}:before`)}\n\n <vaadin-button\n class=\"w-full\"\n theme=${this.in('idle') ? `${this.href ? 'error' : 'primary success'}` : ''}\n data-testid=${action}\n ?disabled=${(this.in({ idle: 'template' }) && !isValid) || isDisabled || isDefault}\n @click=${this.__handleActionClick}\n >\n <foxy-i18n ns=${this.ns} key=${action} lang=${this.lang}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot(`${action}:after`)}\n </div>\n `;\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n customElements.get('foxy-i18n').i18next.loadNamespaces(['country', 'region']);\n }\n\n render(): TemplateResult {\n const { hiddenSelector, lang, ns } = this;\n const action = this.href ? 'delete' : 'create';\n\n const isDefaultShipping = !!this.form?.is_default_shipping;\n const isDefaultBilling = !!this.form?.is_default_billing;\n const isDefault = isDefaultShipping || isDefaultBilling;\n const isBusy = this.in('busy');\n const isFail = this.in('fail');\n\n return html`\n <foxy-internal-confirm-dialog\n message=\"delete_prompt\"\n confirm=\"delete\"\n cancel=\"cancel\"\n header=\"delete\"\n theme=\"primary error\"\n lang=${lang}\n ns=${ns}\n id=\"confirm\"\n data-testid=\"confirm\"\n @hide=${this.__handleConfirmHide}\n >\n </foxy-internal-confirm-dialog>\n\n <div\n class=\"space-y-l font-lumo text-m leading-m text-body relative\"\n aria-busy=${this.in('busy')}\n aria-live=\"polite\"\n data-testid=\"wrapper\"\n >\n <div class=\"grid grid-cols-2 gap-m\">\n ${this.__maybeRenderTextField({\n field: 'address_name',\n wide: true,\n readonly: isDefault,\n required: true,\n })}\n ${this.__maybeRenderTextField({ field: 'first_name' })}\n ${this.__maybeRenderTextField({ field: 'last_name' })}\n ${this.__maybeRenderTextField({ field: 'company' })}\n ${this.__maybeRenderTextField({ field: 'phone' })}\n ${this.__maybeRenderTextField({ field: 'address1', wide: true, required: true })}\n ${this.__maybeRenderTextField({ field: 'address2', wide: true })}\n ${this.__maybeRenderCountry()} ${this.__maybeRenderRegion()}\n ${this.__maybeRenderTextField({ field: 'city' })}\n ${this.__maybeRenderTextField({ field: 'postal_code' })}\n </div>\n\n ${!this.data || hiddenSelector.matches('timestamps', true) ? '' : this.__renderTimestamps()}\n ${hiddenSelector.matches(action, true) ? '' : this.__renderAction(action)}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isBusy && !isFail,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=${isFail ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__getValidator.cache.clear?.();\n }\n\n private __handleKeyDown(evt: KeyboardEvent) {\n if (evt.key === 'Enter') this.submit();\n }\n\n private __getErrorMessage(prefix: string) {\n const error = this.errors.find(err => err.startsWith(prefix));\n return error ? this.t(error.replace(prefix, 'v8n')).toString() : '';\n }\n\n private __handleActionClick(evt: Event) {\n if (this.in({ idle: 'snapshot' })) {\n const confirm = this.renderRoot.querySelector('#confirm');\n (confirm as InternalConfirmDialog).show(evt.currentTarget as HTMLElement);\n } else {\n this.submit();\n }\n }\n\n private __handleConfirmHide(evt: DialogHideEvent) {\n if (!evt.detail.cancelled) this.delete();\n }\n}\n"]}