@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.
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-card.js +1 -1
- package/dist/cdn/foxy-api-browser.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-client-form.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-downloadable-form.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-category-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-payments-api.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-store-form.js +1 -1
- package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
- package/dist/cdn/foxy-subscription-card.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +2 -2
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/shared-4205699e.js +1 -0
- package/dist/cdn/shared-5280c80a.js +1 -0
- package/dist/cdn/{shared-baeef007.js → shared-94798eb5.js} +1 -1
- package/dist/cdn/shared-fa7539af.js +46 -0
- package/dist/cdn/translations/address-form/en.json +1 -1
- package/dist/cdn/translations/admin-subscription-card/en.json +1 -0
- package/dist/cdn/translations/attribute-form/en.json +1 -1
- package/dist/cdn/translations/cart-form/en.json +47 -65
- package/dist/cdn/translations/client-form/en.json +1 -1
- package/dist/cdn/translations/coupon-code-form/en.json +1 -1
- package/dist/cdn/translations/coupon-form/en.json +4 -4
- package/dist/cdn/translations/custom-field-form/en.json +1 -1
- package/dist/cdn/translations/customer/en.json +5 -3
- package/dist/cdn/translations/customer-form/en.json +1 -1
- package/dist/cdn/translations/customer-portal/en.json +4 -2
- package/dist/cdn/translations/downloadable-form/en.json +1 -1
- package/dist/cdn/translations/email-template-form/en.json +1 -1
- package/dist/cdn/translations/gift-card-code-form/en.json +1 -1
- package/dist/cdn/translations/gift-card-form/en.json +3 -3
- package/dist/cdn/translations/item-category-form/en.json +1 -1
- package/dist/cdn/translations/item-form/en.json +30 -32
- package/dist/cdn/translations/item-option-form/en.json +1 -1
- package/dist/cdn/translations/passkey-form/en.json +1 -1
- package/dist/cdn/translations/payments-api-fraud-protection-form/en.json +1 -1
- package/dist/cdn/translations/payments-api-payment-method-form/en.json +1 -1
- package/dist/cdn/translations/payments-api-payment-preset-form/en.json +1 -1
- package/dist/cdn/translations/report-form/en.json +1 -1
- package/dist/cdn/translations/shipment-card/en.json +47 -64
- package/dist/cdn/translations/store-form/en.json +2 -2
- package/dist/cdn/translations/store-shipping-method-form/en.json +1 -1
- package/dist/cdn/translations/subscription-card/en.json +1 -0
- package/dist/cdn/translations/subscription-form/en.json +3 -2
- package/dist/cdn/translations/subscription-settings-form/en.json +1 -1
- package/dist/cdn/translations/subscriptions-table/en.json +1 -0
- package/dist/cdn/translations/tax-form/en.json +1 -1
- package/dist/cdn/translations/template-form/en.json +1 -1
- package/dist/cdn/translations/template-set-form/en.json +1 -1
- package/dist/cdn/translations/transaction/en.json +54 -69
- package/dist/cdn/translations/webhook-form/en.json +1 -1
- package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +1 -3
- package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +18 -41
- package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -1
- package/dist/elements/private/Metadata/Metadata.d.ts +13 -0
- package/dist/elements/private/Metadata/Metadata.js +27 -0
- package/dist/elements/private/Metadata/Metadata.js.map +1 -0
- package/dist/elements/private/index.d.ts +1 -1
- package/dist/elements/private/index.js +1 -1
- package/dist/elements/private/index.js.map +1 -1
- package/dist/elements/public/AddressForm/AddressForm.js +3 -3
- package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +17 -6
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
- package/dist/elements/public/AttributeForm/AttributeForm.js +3 -3
- package/dist/elements/public/AttributeForm/AttributeForm.js.map +1 -1
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +4 -4
- package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
- package/dist/elements/public/CouponForm/CouponForm.js +4 -4
- package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
- package/dist/elements/public/CustomFieldForm/CustomFieldForm.js +3 -3
- package/dist/elements/public/CustomFieldForm/CustomFieldForm.js.map +1 -1
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +4 -4
- package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +4 -4
- package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
- package/dist/elements/public/GiftCardForm/GiftCardForm.js +4 -4
- package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
- package/dist/elements/public/ItemForm/ItemForm.js +26 -13
- package/dist/elements/public/ItemForm/ItemForm.js.map +1 -1
- package/dist/elements/public/ItemForm/index.d.ts +1 -1
- package/dist/elements/public/ItemForm/index.js +1 -1
- package/dist/elements/public/ItemForm/index.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +8 -14
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +13 -19
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +17 -23
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +14 -20
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +28 -26
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +0 -1
- package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -1
- package/dist/elements/public/PaymentsApi/PaymentsApi.js +7 -1
- package/dist/elements/public/PaymentsApi/PaymentsApi.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodForm/PaymentsApiPaymentMethodForm.js.map +1 -1
- package/dist/elements/public/ReportForm/ReportForm.js +4 -4
- package/dist/elements/public/ReportForm/ReportForm.js.map +1 -1
- package/dist/elements/public/StoreForm/StoreForm.js +1 -1
- package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js +24 -12
- package/dist/elements/public/SubscriptionCard/SubscriptionCard.js.map +1 -1
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js +11 -4
- package/dist/elements/public/SubscriptionForm/SubscriptionForm.js.map +1 -1
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js +22 -22
- package/dist/elements/public/SubscriptionsTable/SubscriptionsTable.js.map +1 -1
- package/dist/elements/public/TaxForm/TaxForm.js +4 -4
- package/dist/elements/public/TaxForm/TaxForm.js.map +1 -1
- package/dist/elements/public/TemplateForm/TemplateForm.js +4 -4
- package/dist/elements/public/TemplateForm/TemplateForm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-7fab31ac.js +0 -1
- package/dist/cdn/shared-e2e2ca6a.js +0 -1
- package/dist/cdn/shared-f29d410a.js +0 -46
- package/dist/elements/private/PropertyTable/PropertyTable.d.ts +0 -12
- package/dist/elements/private/PropertyTable/PropertyTable.js +0 -43
- 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": "
|
|
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": "
|
|
469
|
+
"label": "Subscription start",
|
|
467
470
|
"helper_text": "",
|
|
468
471
|
"placeholder": "01/01/2022"
|
|
469
472
|
},
|
|
470
473
|
"end": {
|
|
471
|
-
"label": "
|
|
474
|
+
"label": "Subscription end",
|
|
472
475
|
"helper_text": "",
|
|
473
476
|
"placeholder": "01/01/2022"
|
|
474
477
|
},
|
|
475
478
|
"next": {
|
|
476
|
-
"label": "Next
|
|
479
|
+
"label": "Next payment (subscriptions only)",
|
|
477
480
|
"helper_text": "",
|
|
478
481
|
"placeholder": "01/01/2022"
|
|
479
482
|
},
|
|
480
|
-
"
|
|
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
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
"
|
|
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
|
-
"
|
|
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",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
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
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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>•<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":"
|
|
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>•<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 `•`}${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`•`}${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 './
|
|
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 "./
|
|
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,
|
|
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 {
|
|
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-
|
|
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-
|
|
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"]}
|