@foxy.io/elements 1.18.0-beta.20 → 1.18.0-beta.21
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-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-address-card.js +1 -1
- 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-card.js +1 -1
- package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-applied-tax-card.js +1 -1
- package/dist/cdn/foxy-attribute-card.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-card.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-collection-page.js +1 -1
- package/dist/cdn/foxy-collection-pages.js +1 -1
- package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
- package/dist/cdn/foxy-coupon-card.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-codes-form.js +1 -1
- package/dist/cdn/foxy-coupon-detail-card.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-card.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-card.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +2 -2
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-customers-table.js +1 -1
- package/dist/cdn/foxy-discount-builder.js +1 -1
- package/dist/cdn/foxy-discount-card.js +1 -1
- package/dist/cdn/foxy-discount-detail-card.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-email-template-card.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-error-entry-card.js +1 -1
- package/dist/cdn/foxy-form-dialog.js +1 -1
- package/dist/cdn/foxy-generate-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-card.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
- package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-i18n-editor.js +2 -2
- package/dist/cdn/foxy-i18n.js +1 -1
- package/dist/cdn/foxy-integration-card.js +1 -1
- package/dist/cdn/foxy-integration-form.js +1 -1
- package/dist/cdn/foxy-item-card.js +1 -1
- package/dist/cdn/foxy-item-category-card.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-card.js +1 -1
- package/dist/cdn/foxy-item-option-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-pagination.js +1 -1
- package/dist/cdn/foxy-payment-card.js +1 -1
- package/dist/cdn/foxy-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
- package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
- package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
- package/dist/cdn/foxy-query-builder.js +1 -1
- package/dist/cdn/foxy-report-form.js +2 -2
- package/dist/cdn/foxy-reports-table.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-shipping-method-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-spinner.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 +1 -1
- package/dist/cdn/foxy-subscription-settings-form.js +1 -1
- package/dist/cdn/foxy-subscriptions-table.js +1 -1
- package/dist/cdn/foxy-table.js +1 -1
- package/dist/cdn/foxy-tax-card.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-template-set-card.js +1 -1
- package/dist/cdn/foxy-template-set-form.js +1 -1
- package/dist/cdn/foxy-transaction-card.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-transactions-table.js +4 -4
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/foxy-webhook-card.js +1 -1
- package/dist/cdn/foxy-webhook-form.js +1 -1
- package/dist/cdn/foxy-webhook-log-card.js +1 -1
- package/dist/cdn/foxy-webhook-status-card.js +1 -1
- package/dist/cdn/{shared-2b2002ac.js → shared-02d4bc14.js} +1 -1
- package/dist/cdn/shared-0301f5c5.js +1 -0
- package/dist/cdn/{shared-6cc53630.js → shared-0a40a749.js} +1 -1
- package/dist/cdn/{shared-869df7ed.js → shared-0d3bec9f.js} +1 -1
- package/dist/cdn/{shared-bae9da44.js → shared-0f29fba2.js} +1 -1
- package/dist/cdn/{shared-88c7755d.js → shared-1392183b.js} +1 -1
- package/dist/cdn/{shared-68e0cf30.js → shared-13e6fe8a.js} +1 -1
- package/dist/cdn/{shared-b48e5aaf.js → shared-18d42566.js} +1 -1
- package/dist/cdn/{shared-df462496.js → shared-206b4ae2.js} +1 -1
- package/dist/cdn/{shared-9d7bbdd8.js → shared-25ecdf66.js} +1 -1
- package/dist/cdn/{shared-179ff8af.js → shared-2bd47510.js} +3 -3
- package/dist/cdn/{shared-bf47ead0.js → shared-2d2ce3b1.js} +1 -1
- package/dist/cdn/{shared-17c1eab2.js → shared-307382e5.js} +1 -1
- package/dist/cdn/{shared-fafafc09.js → shared-324f9551.js} +1 -1
- package/dist/cdn/{shared-7fb8ecc5.js → shared-33912f50.js} +1 -1
- package/dist/cdn/{shared-13982611.js → shared-3b249b20.js} +1 -1
- package/dist/cdn/{shared-d4a652b7.js → shared-3e8cd935.js} +1 -1
- package/dist/cdn/{shared-1e94e6dd.js → shared-459a5ec4.js} +1 -1
- package/dist/cdn/{shared-cdc183c5.js → shared-45db2087.js} +1 -1
- package/dist/cdn/{shared-776f948d.js → shared-46e22714.js} +1 -1
- package/dist/cdn/{shared-0d4f9b06.js → shared-4817dcd1.js} +1 -1
- package/dist/cdn/{shared-79d6a262.js → shared-4cbd9a4f.js} +1 -1
- package/dist/cdn/{shared-ae588315.js → shared-674c1c04.js} +1 -1
- package/dist/cdn/{shared-23bf6ee6.js → shared-6ac71f60.js} +1 -1
- package/dist/cdn/{shared-0f649dc6.js → shared-715ee51e.js} +5 -5
- package/dist/cdn/{shared-5c6eb602.js → shared-71beb422.js} +1 -1
- package/dist/cdn/{shared-a41f2200.js → shared-72279946.js} +1 -1
- package/dist/cdn/shared-7304a1ab.js +1 -0
- package/dist/cdn/{shared-5b3ae513.js → shared-7788977c.js} +1 -1
- package/dist/cdn/{shared-a90a5235.js → shared-780ead03.js} +1 -1
- package/dist/cdn/{shared-e94165e9.js → shared-78f6e15f.js} +1 -1
- package/dist/cdn/{shared-1db07286.js → shared-7992035c.js} +3 -3
- package/dist/cdn/{shared-9d511d7e.js → shared-7a739f89.js} +1 -1
- package/dist/cdn/{shared-a343ec6b.js → shared-80378a15.js} +1 -1
- package/dist/cdn/{shared-dbd4a5e8.js → shared-8e6a8a88.js} +1 -1
- package/dist/cdn/{shared-c379590f.js → shared-915e8780.js} +1 -1
- package/dist/cdn/{shared-1351c1e3.js → shared-9291d900.js} +1 -1
- package/dist/cdn/{shared-7d658c02.js → shared-9643b6c8.js} +1 -1
- package/dist/cdn/{shared-21689ac0.js → shared-9862ca28.js} +1 -1
- package/dist/cdn/{shared-5ada1ccb.js → shared-a4165acb.js} +1 -1
- package/dist/cdn/{shared-ea6c8bae.js → shared-a6de944b.js} +1 -1
- package/dist/cdn/{shared-b7636a23.js → shared-ad3c1ddc.js} +1 -1
- package/dist/cdn/{shared-11ffd643.js → shared-c6567654.js} +1 -1
- package/dist/cdn/{shared-e99fa3d6.js → shared-d0c5c38f.js} +1 -1
- package/dist/cdn/{shared-90c7dbdb.js → shared-d6a78c23.js} +1 -1
- package/dist/cdn/{shared-2f6e33b6.js → shared-d7c271d2.js} +1 -1
- package/dist/cdn/{shared-d384d6a3.js → shared-d7dfd3d8.js} +1 -1
- package/dist/cdn/{shared-413415b0.js → shared-daab7e76.js} +1 -1
- package/dist/cdn/{shared-8eb4c8d7.js → shared-e0615601.js} +1 -1
- package/dist/cdn/{shared-3ca1e8e4.js → shared-e39be772.js} +1 -1
- package/dist/cdn/{shared-cf784db1.js → shared-e7e0ee80.js} +1 -1
- package/dist/cdn/{shared-034c6aeb.js → shared-ef98812b.js} +1 -1
- package/dist/cdn/{shared-39b184de.js → shared-f69afa4b.js} +1 -1
- package/dist/cdn/{shared-e06b70cc.js → shared-f821859e.js} +1 -1
- package/dist/cdn/shared-fedeb7b2.js +1 -0
- package/dist/cdn/translations/cart-card/en.json +3 -3
- package/dist/cdn/translations/gift-card-code-form/en.json +6 -3
- package/dist/cdn/translations/gift-card-code-log-card/en.json +6 -3
- package/dist/cdn/translations/integration-form/en.json +13 -15
- package/dist/cdn/translations/payments-api-fraud-protection-card/en.json +0 -2
- package/dist/cdn/translations/payments-api-payment-method-card/en.json +0 -2
- package/dist/cdn/translations/template-set-form/en.json +10 -0
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +1 -1
- package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.d.ts +12 -0
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js +12 -0
- package/dist/elements/public/AdminSubscriptionCard/AdminSubscriptionCard.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionCard/index.d.ts +1 -0
- package/dist/elements/public/AdminSubscriptionCard/index.js +1 -0
- package/dist/elements/public/AdminSubscriptionCard/index.js.map +1 -1
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.d.ts +23 -4
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js +19 -0
- package/dist/elements/public/AppliedCouponCodeForm/AppliedCouponCodeForm.js.map +1 -1
- package/dist/elements/public/AppliedCouponCodeForm/types.d.ts +12 -0
- package/dist/elements/public/AppliedCouponCodeForm/types.js.map +1 -1
- package/dist/elements/public/CartCard/CartCard.d.ts +7 -2
- package/dist/elements/public/CartCard/CartCard.js +16 -9
- package/dist/elements/public/CartCard/CartCard.js.map +1 -1
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.d.ts +13 -2
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js +66 -76
- package/dist/elements/public/GiftCardCodeLogCard/GiftCardCodeLogCard.js.map +1 -1
- package/dist/elements/public/GiftCardCodeLogCard/index.d.ts +1 -2
- package/dist/elements/public/GiftCardCodeLogCard/index.js +1 -2
- package/dist/elements/public/GiftCardCodeLogCard/index.js.map +1 -1
- package/dist/elements/public/I18n/format/price.js +1 -0
- package/dist/elements/public/I18n/format/price.js.map +1 -1
- package/dist/elements/public/IntegrationForm/IntegrationForm.d.ts +35 -0
- package/dist/elements/public/IntegrationForm/IntegrationForm.js +156 -164
- package/dist/elements/public/IntegrationForm/IntegrationForm.js.map +1 -1
- package/dist/elements/public/IntegrationForm/index.d.ts +1 -0
- package/dist/elements/public/IntegrationForm/index.js +1 -0
- package/dist/elements/public/IntegrationForm/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.d.ts +24 -3
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js +33 -20
- package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.d.ts +2 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js +2 -1
- package/dist/elements/public/PaymentsApiFraudProtectionCard/index.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.d.ts +24 -4
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js +32 -21
- package/dist/elements/public/PaymentsApiPaymentMethodCard/PaymentsApiPaymentMethodCard.js.map +1 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.d.ts +2 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js +2 -1
- package/dist/elements/public/PaymentsApiPaymentMethodCard/index.js.map +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.d.ts +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js +1 -1
- package/dist/elements/public/StoreShippingMethodForm/StoreShippingMethodForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.d.ts +49 -8
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js +100 -64
- package/dist/elements/public/TemplateSetForm/TemplateSetForm.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/index.d.ts +1 -0
- package/dist/elements/public/TemplateSetForm/index.js +1 -0
- package/dist/elements/public/TemplateSetForm/index.js.map +1 -1
- package/dist/elements/public/TemplateSetForm/types.d.ts +22 -0
- package/dist/elements/public/TemplateSetForm/types.js.map +1 -1
- package/dist/mixins/themeable.js +0 -4
- package/dist/mixins/themeable.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-004f1a77.js +0 -1
- package/dist/cdn/shared-2f9b7791.js +0 -1
- package/dist/cdn/shared-888d690a.js +0 -1
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
2
2
|
import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
|
|
3
|
+
import { classMap } from "../../../utils/class-map.js";
|
|
3
4
|
import { html } from 'lit-html';
|
|
4
5
|
const NS = 'integration-form';
|
|
5
6
|
const Base = TranslatableMixin(InternalForm, NS);
|
|
7
|
+
/**
|
|
8
|
+
* Form element for managing integrations (`fx:integration`).
|
|
9
|
+
*
|
|
10
|
+
* @slot project-name:before
|
|
11
|
+
* @slot project-name:after
|
|
12
|
+
*
|
|
13
|
+
* @slot project-description:before
|
|
14
|
+
* @slot project-description:after
|
|
15
|
+
*
|
|
16
|
+
* @slot create:before
|
|
17
|
+
* @slot create:after
|
|
18
|
+
*
|
|
19
|
+
* @slot header:before
|
|
20
|
+
* @slot header:after
|
|
21
|
+
*
|
|
22
|
+
* @slot message:before
|
|
23
|
+
* @slot message:after
|
|
24
|
+
*
|
|
25
|
+
* @slot table:before
|
|
26
|
+
* @slot table:after
|
|
27
|
+
*
|
|
28
|
+
* @slot delete:before
|
|
29
|
+
* @slot delete:after
|
|
30
|
+
*
|
|
31
|
+
* @element foxy-integration-form
|
|
32
|
+
* @since 1.21.0
|
|
33
|
+
*/
|
|
6
34
|
export class IntegrationForm extends Base {
|
|
7
35
|
constructor() {
|
|
8
36
|
super(...arguments);
|
|
@@ -34,187 +62,151 @@ export class IntegrationForm extends Base {
|
|
|
34
62
|
return json;
|
|
35
63
|
}
|
|
36
64
|
__renderSnapshotBody() {
|
|
37
|
-
|
|
65
|
+
const hiddenSelector = this.hiddenSelector;
|
|
66
|
+
const postResponse = this.__postResponse;
|
|
67
|
+
return html `
|
|
68
|
+
${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}
|
|
69
|
+
${hiddenSelector.matches('message', true) || !postResponse ? '' : this.__renderMessage()}
|
|
70
|
+
${hiddenSelector.matches('table') ? '' : this.__renderTable()}
|
|
71
|
+
<foxy-internal-delete-control infer="delete"></foxy-internal-delete-control>
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
74
|
+
__renderTemplateBody() {
|
|
75
|
+
return html `
|
|
76
|
+
<foxy-internal-text-control infer="project-name"></foxy-internal-text-control>
|
|
77
|
+
<foxy-internal-text-area-control infer="project-description">
|
|
78
|
+
</foxy-internal-text-area-control>
|
|
79
|
+
<foxy-internal-create-control infer="create"></foxy-internal-create-control>
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
__renderMessage() {
|
|
83
|
+
return html `
|
|
84
|
+
${this.renderTemplateOrSlot('message:before')}
|
|
85
|
+
|
|
86
|
+
<div class="bg-success-10 text-success p-m pb-s space-y-xs leading-s rounded-t-l rounded-b-l">
|
|
87
|
+
<foxy-i18n infer="message" class="block" key="text"></foxy-i18n>
|
|
88
|
+
<vaadin-button
|
|
89
|
+
data-testid="message-action"
|
|
90
|
+
theme="tertiary contrast"
|
|
91
|
+
class="p-0"
|
|
92
|
+
?disabled=${this.disabledSelector.matches('message', true)}
|
|
93
|
+
@click=${() => (this.__postResponse = null)}
|
|
94
|
+
>
|
|
95
|
+
<foxy-i18n infer="message" key="action"></foxy-i18n>
|
|
96
|
+
</vaadin-button>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
${this.renderTemplateOrSlot('message:after')}
|
|
100
|
+
`;
|
|
101
|
+
}
|
|
102
|
+
__renderHeader() {
|
|
38
103
|
const data = this.data;
|
|
39
|
-
const
|
|
40
|
-
const description = ((_b = data.project_description) === null || _b === void 0 ? void 0 : _b.trim()) || this.t('no_description');
|
|
104
|
+
const noDescription = html `<foxy-i18n infer="header" key="no_description"></foxy-i18n>`;
|
|
41
105
|
return html `
|
|
42
|
-
|
|
43
|
-
<dt class="sr-only">${this.t('title_description')}</dt>
|
|
44
|
-
<dd class="font-bold truncate text-xl">${data.project_name}​</dd>
|
|
106
|
+
${this.renderTemplateOrSlot('header:before')}
|
|
45
107
|
|
|
46
|
-
|
|
47
|
-
<
|
|
48
|
-
|
|
108
|
+
<div class="space-y-xs">
|
|
109
|
+
<div class="font-bold truncate text-xl">${data.project_name}​</div>
|
|
110
|
+
<div class="text-secondary">${data.project_description || noDescription}</div>
|
|
111
|
+
</div>
|
|
49
112
|
|
|
50
|
-
${this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
>
|
|
61
|
-
<foxy-i18n infer="" key="post_success_action"></foxy-i18n>
|
|
62
|
-
</vaadin-button>
|
|
63
|
-
</div>
|
|
64
|
-
`
|
|
65
|
-
: ''}
|
|
113
|
+
${this.renderTemplateOrSlot('header:after')}
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
__renderTable() {
|
|
117
|
+
var _a;
|
|
118
|
+
const data = this.data;
|
|
119
|
+
const expires = new Date(((_a = data.expires) !== null && _a !== void 0 ? _a : 0) * 1000);
|
|
120
|
+
const postResponse = this.__postResponse;
|
|
121
|
+
return html `
|
|
122
|
+
${this.renderTemplateOrSlot('table:before')}
|
|
66
123
|
|
|
67
124
|
<table class="font-lumo text-m leading-m w-full">
|
|
68
125
|
<tbody class="divide-y divide-contrast-10">
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
126
|
+
${this.__renderTableRow({
|
|
127
|
+
label: this.__renderTableI18n('added_by'),
|
|
128
|
+
value: this.__renderMailToLink(data.added_by_email, data.added_by_name),
|
|
129
|
+
})}
|
|
130
|
+
${this.__renderTableRow({
|
|
131
|
+
label: this.__renderTableI18n('contact'),
|
|
132
|
+
value: this.__renderMailToLink(data.contact_email, data.contact_name),
|
|
133
|
+
})}
|
|
134
|
+
${this.__renderTableRow({
|
|
135
|
+
label: this.__renderTableI18n('company'),
|
|
136
|
+
value: this.__renderLink(data.company_url, data.company_name),
|
|
137
|
+
})}
|
|
138
|
+
${this.__renderTableRow({
|
|
139
|
+
label: this.__renderTableI18n('expires'),
|
|
140
|
+
value: this.__renderTableI18n('expires_date', { date: expires }),
|
|
141
|
+
})}
|
|
142
|
+
${this.__renderTableRow({
|
|
143
|
+
label: 'Client ID',
|
|
144
|
+
value: this.__renderCopiableText(data.client_id),
|
|
145
|
+
})}
|
|
146
|
+
${postResponse
|
|
75
147
|
? html `
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</td>
|
|
92
|
-
<td class="max-w-0 truncate py-s text-body w-2-3">
|
|
93
|
-
${data.contact_email
|
|
94
|
-
? html `
|
|
95
|
-
<a
|
|
96
|
-
target="_blank"
|
|
97
|
-
class="font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50"
|
|
98
|
-
href="mailto:${data.contact_email}"
|
|
99
|
-
>
|
|
100
|
-
${data.contact_name}
|
|
101
|
-
</a>
|
|
102
|
-
`
|
|
103
|
-
: data.contact_name}
|
|
104
|
-
</td>
|
|
105
|
-
</tr>
|
|
106
|
-
|
|
107
|
-
<tr>
|
|
108
|
-
<td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold">
|
|
109
|
-
<foxy-i18n infer="" key="company"></foxy-i18n>
|
|
110
|
-
</td>
|
|
111
|
-
<td class="max-w-0 truncate py-s text-body w-2-3">
|
|
112
|
-
${data.company_url
|
|
113
|
-
? html `
|
|
114
|
-
<a
|
|
115
|
-
target="_blank"
|
|
116
|
-
class="font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50"
|
|
117
|
-
href=${data.company_url}
|
|
118
|
-
>
|
|
119
|
-
${data.company_name}
|
|
120
|
-
</a>
|
|
121
|
-
`
|
|
122
|
-
: data.company_name}
|
|
123
|
-
</td>
|
|
124
|
-
</tr>
|
|
125
|
-
|
|
126
|
-
<tr>
|
|
127
|
-
<td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold">
|
|
128
|
-
<foxy-i18n infer="" key="expires"></foxy-i18n>
|
|
129
|
-
</td>
|
|
130
|
-
<td class="max-w-0 truncate py-s text-body w-2-3">
|
|
131
|
-
<foxy-i18n infer="" key="expires_date" .options=${{ date: expires }}></foxy-i18n>
|
|
132
|
-
</td>
|
|
133
|
-
</tr>
|
|
134
|
-
|
|
135
|
-
<tr>
|
|
136
|
-
<td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold">Client ID</td>
|
|
137
|
-
<td class="max-w-0 truncate py-s text-body w-2-3">
|
|
138
|
-
<div class="flex items-center gap-s">
|
|
139
|
-
<code class="truncate flex-1">${data.client_id}</code>
|
|
140
|
-
<foxy-copy-to-clipboard
|
|
141
|
-
infer="copy-to-clipboard"
|
|
142
|
-
class="inline-block"
|
|
143
|
-
text=${data.client_id}
|
|
144
|
-
>
|
|
145
|
-
</foxy-copy-to-clipboard>
|
|
146
|
-
</div>
|
|
147
|
-
</td>
|
|
148
|
-
</tr>
|
|
149
|
-
|
|
150
|
-
${this.__postResponse
|
|
151
|
-
? html `
|
|
152
|
-
<tr class="font-semibold text-success">
|
|
153
|
-
<td class="max-w-0 truncate py-s w-1-3 pr-m font-semibold">Client secret</td>
|
|
154
|
-
<td class="max-w-0 py-s w-2-3">
|
|
155
|
-
<div class="flex items-center gap-s">
|
|
156
|
-
<code class="truncate flex-1">${this.__postResponse.client_secret}</code>
|
|
157
|
-
<foxy-copy-to-clipboard
|
|
158
|
-
infer="copy-to-clipboard"
|
|
159
|
-
class="inline-block"
|
|
160
|
-
text=${this.__postResponse.client_secret}
|
|
161
|
-
>
|
|
162
|
-
</foxy-copy-to-clipboard>
|
|
163
|
-
</div>
|
|
164
|
-
</td>
|
|
165
|
-
</tr>
|
|
166
|
-
|
|
167
|
-
<tr class="font-semibold text-success">
|
|
168
|
-
<td class="max-w-0 truncate py-s w-1-3 pr-m font-semibold">Refresh token</td>
|
|
169
|
-
<td class="max-w-0 py-s w-2-3">
|
|
170
|
-
<div class="flex items-center gap-s">
|
|
171
|
-
<code class="truncate flex-1">${this.__postResponse.refresh_token}</code>
|
|
172
|
-
<foxy-copy-to-clipboard
|
|
173
|
-
infer="copy-to-clipboard"
|
|
174
|
-
class="inline-block"
|
|
175
|
-
text=${this.__postResponse.refresh_token}
|
|
176
|
-
>
|
|
177
|
-
</foxy-copy-to-clipboard>
|
|
178
|
-
</div>
|
|
179
|
-
</td>
|
|
180
|
-
</tr>
|
|
181
|
-
|
|
182
|
-
<tr class="font-semibold text-success">
|
|
183
|
-
<td class="max-w-0 truncate py-s w-1-3 pr-m font-semibold">Access token</td>
|
|
184
|
-
<td class="max-w-0 py-s w-2-3">
|
|
185
|
-
<div class="flex items-center gap-s">
|
|
186
|
-
<code class="truncate flex-1">${this.__postResponse.access_token}</code>
|
|
187
|
-
<foxy-copy-to-clipboard
|
|
188
|
-
infer="copy-to-clipboard"
|
|
189
|
-
class="inline-block"
|
|
190
|
-
text=${this.__postResponse.access_token}
|
|
191
|
-
>
|
|
192
|
-
</foxy-copy-to-clipboard>
|
|
193
|
-
</div>
|
|
194
|
-
</td>
|
|
195
|
-
</tr>
|
|
148
|
+
${this.__renderTableRow({
|
|
149
|
+
highlight: true,
|
|
150
|
+
label: 'Client secret',
|
|
151
|
+
value: this.__renderCopiableText(postResponse.client_secret),
|
|
152
|
+
})}
|
|
153
|
+
${this.__renderTableRow({
|
|
154
|
+
highlight: true,
|
|
155
|
+
label: 'Refresh token',
|
|
156
|
+
value: this.__renderCopiableText(postResponse.refresh_token),
|
|
157
|
+
})}
|
|
158
|
+
${this.__renderTableRow({
|
|
159
|
+
highlight: true,
|
|
160
|
+
label: 'Access token',
|
|
161
|
+
value: this.__renderCopiableText(postResponse.access_token),
|
|
162
|
+
})}
|
|
196
163
|
`
|
|
197
164
|
: ''}
|
|
198
|
-
|
|
199
|
-
<tr>
|
|
200
|
-
<td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold">Scope</td>
|
|
201
|
-
<td class="max-w-0 truncate py-s text-body w-2-3"><code>${data.scope}</code></td>
|
|
202
|
-
</tr>
|
|
165
|
+
${this.__renderTableRow({ label: 'Scope', value: html `<code>${data.scope}</code>` })}
|
|
203
166
|
</tbody>
|
|
204
167
|
</table>
|
|
205
168
|
|
|
206
|
-
|
|
169
|
+
${this.renderTemplateOrSlot('table:after')}
|
|
207
170
|
`;
|
|
208
171
|
}
|
|
209
|
-
|
|
172
|
+
__renderCopiableText(text) {
|
|
210
173
|
return html `
|
|
211
|
-
<
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
<foxy-internal-create-control infer="create"></foxy-internal-create-control>
|
|
174
|
+
<div class="flex items-center gap-s">
|
|
175
|
+
<code class="truncate flex-1">${text}</code>
|
|
176
|
+
<foxy-copy-to-clipboard infer="copy-to-clipboard" class="inline-block" text=${text}>
|
|
177
|
+
</foxy-copy-to-clipboard>
|
|
178
|
+
</div>
|
|
217
179
|
`;
|
|
218
180
|
}
|
|
181
|
+
__renderMailToLink(email, caption) {
|
|
182
|
+
if (!email)
|
|
183
|
+
return html `${caption}`;
|
|
184
|
+
return this.__renderLink(`mailto:${email}`, caption);
|
|
185
|
+
}
|
|
186
|
+
__renderLink(href, caption) {
|
|
187
|
+
if (!href)
|
|
188
|
+
return html `${caption}`;
|
|
189
|
+
return html `
|
|
190
|
+
<a
|
|
191
|
+
target="_blank"
|
|
192
|
+
class="font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50"
|
|
193
|
+
href=${href}
|
|
194
|
+
>
|
|
195
|
+
${caption}
|
|
196
|
+
</a>
|
|
197
|
+
`;
|
|
198
|
+
}
|
|
199
|
+
__renderTableRow(params) {
|
|
200
|
+
const { label, value, highlight = false } = params;
|
|
201
|
+
return html `
|
|
202
|
+
<tr class=${classMap({ 'font-semibold text-success': highlight })}>
|
|
203
|
+
<td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m">${label}</td>
|
|
204
|
+
<td class="max-w-0 truncate py-s text-body w-2-3">${value}</td>
|
|
205
|
+
</tr>
|
|
206
|
+
`;
|
|
207
|
+
}
|
|
208
|
+
__renderTableI18n(key, options) {
|
|
209
|
+
return html `<foxy-i18n infer="table" key=${key} .options=${options}></foxy-i18n>`;
|
|
210
|
+
}
|
|
219
211
|
}
|
|
220
212
|
//# sourceMappingURL=IntegrationForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/IntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data, PostResponseData } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\nexport class IntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __postResponse: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ project_name: v }) => !!v || 'project-name:v8n_required'];\n }\n\n private __postResponse: PostResponseData | null = null;\n\n renderBody(): TemplateResult {\n return this.data ? this.__renderSnapshotBody() : this.__renderTemplateBody();\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const constructor = this.constructor as typeof IntegrationForm;\n const response = await new constructor.API(this).fetch(...args);\n const method = typeof args[0] === 'string' ? args[1]?.method : args[0].method;\n const url = typeof args[0] === 'string' ? args[0] : args[0].url;\n\n if (!response.ok) throw response;\n\n const json = await response.json();\n if (method?.toUpperCase() === 'POST' && url === this.parent) this.__postResponse = json;\n\n return json;\n }\n\n private __renderSnapshotBody() {\n const data = this.data as Data;\n const expires = new Date((data.expires ?? 0) * 1000);\n const description = data.project_description?.trim() || this.t('no_description');\n\n return html`\n <dl class=\"grid grid-cols-1 gap-s\">\n <dt class=\"sr-only\">${this.t('title_description')}</dt>\n <dd class=\"font-bold truncate text-xl\">${data.project_name}​</dd>\n\n <dt class=\"sr-only\">${this.t('subtitle_description')}</dt>\n <dd class=\"text-secondary\">${description}​</dd>\n </dl>\n\n ${this.__postResponse\n ? html`\n <div\n class=\"bg-success-10 text-success p-m pb-s space-y-xs leading-s rounded-t-l rounded-b-l\"\n >\n <foxy-i18n infer=\"\" class=\"block\" key=\"post_success_message\"></foxy-i18n>\n <vaadin-button\n theme=\"tertiary contrast\"\n class=\"p-0\"\n @click=${() => (this.__postResponse = null)}\n >\n <foxy-i18n infer=\"\" key=\"post_success_action\"></foxy-i18n>\n </vaadin-button>\n </div>\n `\n : ''}\n\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 font-semibold\">\n <foxy-i18n infer=\"\" key=\"added_by\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n ${data.added_by_email\n ? html`\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"mailto:${data.added_by_email}\"\n >\n ${data.added_by_name}\n </a>\n `\n : data.added_by_name}\n </td>\n </tr>\n\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold\">\n <foxy-i18n infer=\"\" key=\"contact\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n ${data.contact_email\n ? html`\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"mailto:${data.contact_email}\"\n >\n ${data.contact_name}\n </a>\n `\n : data.contact_name}\n </td>\n </tr>\n\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold\">\n <foxy-i18n infer=\"\" key=\"company\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n ${data.company_url\n ? html`\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${data.company_url}\n >\n ${data.company_name}\n </a>\n `\n : data.company_name}\n </td>\n </tr>\n\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold\">\n <foxy-i18n infer=\"\" key=\"expires\"></foxy-i18n>\n </td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <foxy-i18n infer=\"\" key=\"expires_date\" .options=${{ date: expires }}></foxy-i18n>\n </td>\n </tr>\n\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold\">Client ID</td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${data.client_id}</code>\n <foxy-copy-to-clipboard\n infer=\"copy-to-clipboard\"\n class=\"inline-block\"\n text=${data.client_id}\n >\n </foxy-copy-to-clipboard>\n </div>\n </td>\n </tr>\n\n ${this.__postResponse\n ? html`\n <tr class=\"font-semibold text-success\">\n <td class=\"max-w-0 truncate py-s w-1-3 pr-m font-semibold\">Client secret</td>\n <td class=\"max-w-0 py-s w-2-3\">\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${this.__postResponse.client_secret}</code>\n <foxy-copy-to-clipboard\n infer=\"copy-to-clipboard\"\n class=\"inline-block\"\n text=${this.__postResponse.client_secret}\n >\n </foxy-copy-to-clipboard>\n </div>\n </td>\n </tr>\n\n <tr class=\"font-semibold text-success\">\n <td class=\"max-w-0 truncate py-s w-1-3 pr-m font-semibold\">Refresh token</td>\n <td class=\"max-w-0 py-s w-2-3\">\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${this.__postResponse.refresh_token}</code>\n <foxy-copy-to-clipboard\n infer=\"copy-to-clipboard\"\n class=\"inline-block\"\n text=${this.__postResponse.refresh_token}\n >\n </foxy-copy-to-clipboard>\n </div>\n </td>\n </tr>\n\n <tr class=\"font-semibold text-success\">\n <td class=\"max-w-0 truncate py-s w-1-3 pr-m font-semibold\">Access token</td>\n <td class=\"max-w-0 py-s w-2-3\">\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${this.__postResponse.access_token}</code>\n <foxy-copy-to-clipboard\n infer=\"copy-to-clipboard\"\n class=\"inline-block\"\n text=${this.__postResponse.access_token}\n >\n </foxy-copy-to-clipboard>\n </div>\n </td>\n </tr>\n `\n : ''}\n\n <tr>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m font-semibold\">Scope</td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\"><code>${data.scope}</code></td>\n </tr>\n </tbody>\n </table>\n\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `;\n }\n\n private __renderTemplateBody() {\n return html`\n <foxy-internal-text-control infer=\"project-name\"></foxy-internal-text-control>\n\n <foxy-internal-text-area-control infer=\"project-description\">\n </foxy-internal-text-area-control>\n\n <foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"IntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/IntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data, PostResponseData } from './types';\nimport type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for managing integrations (`fx:integration`).\n *\n * @slot project-name:before\n * @slot project-name:after\n *\n * @slot project-description:before\n * @slot project-description:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot header:before\n * @slot header:after\n *\n * @slot message:before\n * @slot message:after\n *\n * @slot table:before\n * @slot table:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n * @element foxy-integration-form\n * @since 1.21.0\n */\nexport class IntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __postResponse: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ project_name: v }) => !!v || 'project-name:v8n_required'];\n }\n\n private __postResponse: PostResponseData | null = null;\n\n renderBody(): TemplateResult {\n return this.data ? this.__renderSnapshotBody() : this.__renderTemplateBody();\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n const constructor = this.constructor as typeof IntegrationForm;\n const response = await new constructor.API(this).fetch(...args);\n const method = typeof args[0] === 'string' ? args[1]?.method : args[0].method;\n const url = typeof args[0] === 'string' ? args[0] : args[0].url;\n\n if (!response.ok) throw response;\n\n const json = await response.json();\n if (method?.toUpperCase() === 'POST' && url === this.parent) this.__postResponse = json;\n\n return json;\n }\n\n private __renderSnapshotBody() {\n const hiddenSelector = this.hiddenSelector;\n const postResponse = this.__postResponse;\n\n return html`\n ${hiddenSelector.matches('header', true) ? '' : this.__renderHeader()}\n ${hiddenSelector.matches('message', true) || !postResponse ? '' : this.__renderMessage()}\n ${hiddenSelector.matches('table') ? '' : this.__renderTable()}\n <foxy-internal-delete-control infer=\"delete\"></foxy-internal-delete-control>\n `;\n }\n\n private __renderTemplateBody() {\n return html`\n <foxy-internal-text-control infer=\"project-name\"></foxy-internal-text-control>\n <foxy-internal-text-area-control infer=\"project-description\">\n </foxy-internal-text-area-control>\n <foxy-internal-create-control infer=\"create\"></foxy-internal-create-control>\n `;\n }\n\n private __renderMessage() {\n return html`\n ${this.renderTemplateOrSlot('message:before')}\n\n <div class=\"bg-success-10 text-success p-m pb-s space-y-xs leading-s rounded-t-l rounded-b-l\">\n <foxy-i18n infer=\"message\" class=\"block\" key=\"text\"></foxy-i18n>\n <vaadin-button\n data-testid=\"message-action\"\n theme=\"tertiary contrast\"\n class=\"p-0\"\n ?disabled=${this.disabledSelector.matches('message', true)}\n @click=${() => (this.__postResponse = null)}\n >\n <foxy-i18n infer=\"message\" key=\"action\"></foxy-i18n>\n </vaadin-button>\n </div>\n\n ${this.renderTemplateOrSlot('message:after')}\n `;\n }\n\n private __renderHeader() {\n const data = this.data as Data;\n const noDescription = html`<foxy-i18n infer=\"header\" key=\"no_description\"></foxy-i18n>`;\n\n return html`\n ${this.renderTemplateOrSlot('header:before')}\n\n <div class=\"space-y-xs\">\n <div class=\"font-bold truncate text-xl\">${data.project_name}​</div>\n <div class=\"text-secondary\">${data.project_description || noDescription}</div>\n </div>\n\n ${this.renderTemplateOrSlot('header:after')}\n `;\n }\n\n private __renderTable() {\n const data = this.data as Data;\n const expires = new Date((data.expires ?? 0) * 1000);\n const postResponse = this.__postResponse;\n\n return html`\n ${this.renderTemplateOrSlot('table:before')}\n\n <table class=\"font-lumo text-m leading-m w-full\">\n <tbody class=\"divide-y divide-contrast-10\">\n ${this.__renderTableRow({\n label: this.__renderTableI18n('added_by'),\n value: this.__renderMailToLink(data.added_by_email, data.added_by_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('contact'),\n value: this.__renderMailToLink(data.contact_email, data.contact_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('company'),\n value: this.__renderLink(data.company_url, data.company_name),\n })}\n ${this.__renderTableRow({\n label: this.__renderTableI18n('expires'),\n value: this.__renderTableI18n('expires_date', { date: expires }),\n })}\n ${this.__renderTableRow({\n label: 'Client ID',\n value: this.__renderCopiableText(data.client_id),\n })}\n ${postResponse\n ? html`\n ${this.__renderTableRow({\n highlight: true,\n label: 'Client secret',\n value: this.__renderCopiableText(postResponse.client_secret),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Refresh token',\n value: this.__renderCopiableText(postResponse.refresh_token),\n })}\n ${this.__renderTableRow({\n highlight: true,\n label: 'Access token',\n value: this.__renderCopiableText(postResponse.access_token),\n })}\n `\n : ''}\n ${this.__renderTableRow({ label: 'Scope', value: html`<code>${data.scope}</code>` })}\n </tbody>\n </table>\n\n ${this.renderTemplateOrSlot('table:after')}\n `;\n }\n\n private __renderCopiableText(text: string) {\n return html`\n <div class=\"flex items-center gap-s\">\n <code class=\"truncate flex-1\">${text}</code>\n <foxy-copy-to-clipboard infer=\"copy-to-clipboard\" class=\"inline-block\" text=${text}>\n </foxy-copy-to-clipboard>\n </div>\n `;\n }\n\n private __renderMailToLink(email: string, caption: string) {\n if (!email) return html`${caption}`;\n return this.__renderLink(`mailto:${email}`, caption);\n }\n\n private __renderLink(href: string, caption: string) {\n if (!href) return html`${caption}`;\n\n return html`\n <a\n target=\"_blank\"\n class=\"font-semibold text-primary rounded hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${href}\n >\n ${caption}\n </a>\n `;\n }\n\n private __renderTableRow(params: { label: unknown; value: unknown; highlight?: boolean }) {\n const { label, value, highlight = false } = params;\n return html`\n <tr class=${classMap({ 'font-semibold text-success': highlight })}>\n <td class=\"max-w-0 truncate py-s text-secondary w-1-3 pr-m\">${label}</td>\n <td class=\"max-w-0 truncate py-s text-body w-2-3\">${value}</td>\n </tr>\n `;\n }\n\n private __renderTableI18n(key: string, options?: unknown) {\n return html`<foxy-i18n infer=\"table\" key=${key} .options=${options}></foxy-i18n>`;\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import '../../internal/InternalTextAreaControl/index';
|
|
|
3
3
|
import '../../internal/InternalDeleteControl/index';
|
|
4
4
|
import '../../internal/InternalCreateControl/index';
|
|
5
5
|
import '../../internal/InternalTextControl/index';
|
|
6
|
+
import '../../internal/InternalSandbox/index';
|
|
6
7
|
import '../../internal/InternalForm/index';
|
|
7
8
|
import '../CopyToClipboard/index';
|
|
8
9
|
import '../I18n/index';
|
|
@@ -3,6 +3,7 @@ import "../../internal/InternalTextAreaControl/index.js";
|
|
|
3
3
|
import "../../internal/InternalDeleteControl/index.js";
|
|
4
4
|
import "../../internal/InternalCreateControl/index.js";
|
|
5
5
|
import "../../internal/InternalTextControl/index.js";
|
|
6
|
+
import "../../internal/InternalSandbox/index.js";
|
|
6
7
|
import "../../internal/InternalForm/index.js";
|
|
7
8
|
import "../CopyToClipboard/index.js";
|
|
8
9
|
import "../I18n/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,yDAAsD;AACtD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,0BAAuB;AAEvB,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../internal/InternalTextAreaControl/index';\nimport '../../internal/InternalDeleteControl/index';\nimport '../../internal/InternalCreateControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../CopyToClipboard/index';\nimport '../I18n/index';\n\nimport { IntegrationForm } from './IntegrationForm';\n\ncustomElements.define('foxy-integration-form', IntegrationForm);\n\nexport { IntegrationForm };\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/IntegrationForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,yDAAsD;AACtD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,iDAA8C;AAC9C,8CAA2C;AAE3C,qCAAkC;AAClC,0BAAuB;AAEvB,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,cAAc,CAAC,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-button';\n\nimport '../../internal/InternalTextAreaControl/index';\nimport '../../internal/InternalDeleteControl/index';\nimport '../../internal/InternalCreateControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalSandbox/index';\nimport '../../internal/InternalForm/index';\n\nimport '../CopyToClipboard/index';\nimport '../I18n/index';\n\nimport { IntegrationForm } from './IntegrationForm';\n\ncustomElements.define('foxy-integration-form', IntegrationForm);\n\nexport { IntegrationForm };\n"]}
|
package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.d.ts
CHANGED
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
import type { PropertyDeclarations } from 'lit-element';
|
|
2
2
|
import type { TemplateResult } from 'lit-html';
|
|
3
3
|
import type { Data } from './types';
|
|
4
|
-
import {
|
|
5
|
-
declare const Base: typeof
|
|
4
|
+
import { TwoLineCard } from '../CustomFieldCard/TwoLineCard';
|
|
5
|
+
declare const Base: typeof TwoLineCard & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
|
|
6
6
|
defaultNS: string;
|
|
7
7
|
};
|
|
8
|
+
/**
|
|
9
|
+
* Card element representing a `fx:fraud_protection` resource of Payments API.
|
|
10
|
+
*
|
|
11
|
+
* _Payments API is a client-side virtual API layer built on top of hAPI
|
|
12
|
+
* in an attempt to streamline access to stores' payment method settings
|
|
13
|
+
* that is currently a bit quirky due to the legacy functionality. To use
|
|
14
|
+
* this element with hAPI, wrap it into a foxy-payments-api node._
|
|
15
|
+
*
|
|
16
|
+
* @slot title:before
|
|
17
|
+
* @slot title:after
|
|
18
|
+
*
|
|
19
|
+
* @slot subtitle:before
|
|
20
|
+
* @slot subtitle:after
|
|
21
|
+
*
|
|
22
|
+
* @element foxy-payments-api-fraud-protection-card
|
|
23
|
+
* @since 1.21.0
|
|
24
|
+
*/
|
|
8
25
|
export declare class PaymentsApiFraudProtectionCard extends Base<Data> {
|
|
9
26
|
static get defaultImageSrc(): string;
|
|
10
27
|
static get properties(): PropertyDeclarations;
|
|
28
|
+
/**
|
|
29
|
+
* Fraud protection image/logo URL getter.
|
|
30
|
+
* If left `null`, the card will display the default image.
|
|
31
|
+
*/
|
|
11
32
|
getImageSrc: ((type: string) => string) | null;
|
|
12
|
-
|
|
33
|
+
render(): TemplateResult;
|
|
13
34
|
}
|
|
14
35
|
export {};
|
package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
import { TranslatableMixin } from "../../../mixins/translatable.js";
|
|
2
|
-
import {
|
|
2
|
+
import { TwoLineCard } from "../CustomFieldCard/TwoLineCard.js";
|
|
3
3
|
import { html } from 'lit-html';
|
|
4
4
|
const NS = 'payments-api-fraud-protection-card';
|
|
5
|
-
const Base = TranslatableMixin(
|
|
5
|
+
const Base = TranslatableMixin(TwoLineCard, NS);
|
|
6
|
+
/**
|
|
7
|
+
* Card element representing a `fx:fraud_protection` resource of Payments API.
|
|
8
|
+
*
|
|
9
|
+
* _Payments API is a client-side virtual API layer built on top of hAPI
|
|
10
|
+
* in an attempt to streamline access to stores' payment method settings
|
|
11
|
+
* that is currently a bit quirky due to the legacy functionality. To use
|
|
12
|
+
* this element with hAPI, wrap it into a foxy-payments-api node._
|
|
13
|
+
*
|
|
14
|
+
* @slot title:before
|
|
15
|
+
* @slot title:after
|
|
16
|
+
*
|
|
17
|
+
* @slot subtitle:before
|
|
18
|
+
* @slot subtitle:after
|
|
19
|
+
*
|
|
20
|
+
* @element foxy-payments-api-fraud-protection-card
|
|
21
|
+
* @since 1.21.0
|
|
22
|
+
*/
|
|
6
23
|
export class PaymentsApiFraudProtectionCard extends Base {
|
|
7
24
|
constructor() {
|
|
8
25
|
super(...arguments);
|
|
26
|
+
/**
|
|
27
|
+
* Fraud protection image/logo URL getter.
|
|
28
|
+
* If left `null`, the card will display the default image.
|
|
29
|
+
*/
|
|
9
30
|
this.getImageSrc = null;
|
|
10
31
|
}
|
|
11
32
|
static get defaultImageSrc() {
|
|
@@ -17,12 +38,18 @@ export class PaymentsApiFraudProtectionCard extends Base {
|
|
|
17
38
|
getImageSrc: { attribute: false },
|
|
18
39
|
};
|
|
19
40
|
}
|
|
20
|
-
|
|
41
|
+
render() {
|
|
21
42
|
var _a, _b;
|
|
22
|
-
const
|
|
43
|
+
const defaultLayout = super.render({
|
|
44
|
+
title: data => html `${data.helper.name}`,
|
|
45
|
+
subtitle: data => html `${data.description}`,
|
|
46
|
+
});
|
|
47
|
+
if (!this.in({ idle: 'snapshot' }))
|
|
48
|
+
return defaultLayout;
|
|
23
49
|
const defaultSrc = PaymentsApiFraudProtectionCard.defaultImageSrc;
|
|
50
|
+
const data = this.data;
|
|
24
51
|
return html `
|
|
25
|
-
<figure class="flex items-center gap-m
|
|
52
|
+
<figure class="flex items-center gap-m">
|
|
26
53
|
<img
|
|
27
54
|
class="relative h-s w-s object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs"
|
|
28
55
|
src=${(_b = (data ? (_a = this.getImageSrc) === null || _a === void 0 ? void 0 : _a.call(this, data.type) : null)) !== null && _b !== void 0 ? _b : defaultSrc}
|
|
@@ -30,21 +57,7 @@ export class PaymentsApiFraudProtectionCard extends Base {
|
|
|
30
57
|
@error=${(evt) => (evt.currentTarget.src = defaultSrc)}
|
|
31
58
|
/>
|
|
32
59
|
|
|
33
|
-
<figcaption class="min-w-0 flex-1">
|
|
34
|
-
<dl class="flex justify-between gap-s">
|
|
35
|
-
<dt class="sr-only">${this.t('title_description')}</dt>
|
|
36
|
-
<dd class="font-semibold truncate flex-shrink-0">
|
|
37
|
-
${data === null || data === void 0 ? void 0 : data.helper.name}​
|
|
38
|
-
</dd>
|
|
39
|
-
|
|
40
|
-
${(data === null || data === void 0 ? void 0 : data.helper.name) !== (data === null || data === void 0 ? void 0 : data.description)
|
|
41
|
-
? html `
|
|
42
|
-
<dt class="sr-only">${this.t('subtitle_description')}</dt>
|
|
43
|
-
<dd class="truncate text-tertiary">${data === null || data === void 0 ? void 0 : data.description}</dd>
|
|
44
|
-
`
|
|
45
|
-
: ''}
|
|
46
|
-
</dl>
|
|
47
|
-
</figcaption>
|
|
60
|
+
<figcaption class="min-w-0 flex-1">${defaultLayout}</figcaption>
|
|
48
61
|
</figure>
|
|
49
62
|
`;
|
|
50
63
|
}
|
package/dist/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentsApiFraudProtectionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PaymentsApiFraudProtectionCard.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiFraudProtectionCard/PaymentsApiFraudProtectionCard.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,WAAW,EAAE,0CAAuC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,oCAAoC,CAAC;AAChD,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,8BAA+B,SAAQ,IAAU;IAA9D;;QAYE;;;WAGG;QACH,gBAAW,GAAsC,IAAI,CAAC;IA0BxD,CAAC;IAzCC,MAAM,KAAK,eAAe;QACxB,OAAO,uuBAAuuB,CAAC;IACjvB,CAAC;IAED,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAClC,CAAC;IACJ,CAAC;IAQD,MAAM;;QACJ,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACxC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAA,GAAG,IAAI,CAAC,WAAW,EAAE;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAAE,OAAO,aAAa,CAAC;QAEzD,MAAM,UAAU,GAAG,8BAA8B,CAAC,eAAe,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,OAAO,IAAI,CAAA;;;;gBAIC,MAAA,CAAC,IAAI,CAAC,CAAC,OAAC,IAAI,CAAC,WAAW,+CAAhB,IAAI,EAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,mCAAI,UAAU;gBAC3D,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;mBAChB,CAAC,GAAU,EAAE,EAAE,CAAC,CAAE,GAAG,CAAC,aAAkC,CAAC,GAAG,GAAG,UAAU,CAAC;;;6CAGhD,aAAa;;KAErD,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { TwoLineCard } from '../CustomFieldCard/TwoLineCard';\nimport { html } from 'lit-html';\n\nconst NS = 'payments-api-fraud-protection-card';\nconst Base = TranslatableMixin(TwoLineCard, NS);\n\n/**\n * Card element representing a `fx:fraud_protection` resource of Payments API.\n *\n * _Payments API is a client-side virtual API layer built on top of hAPI\n * in an attempt to streamline access to stores' payment method settings\n * that is currently a bit quirky due to the legacy functionality. To use\n * this element with hAPI, wrap it into a foxy-payments-api node._\n *\n * @slot title:before\n * @slot title:after\n *\n * @slot subtitle:before\n * @slot subtitle:after\n *\n * @element foxy-payments-api-fraud-protection-card\n * @since 1.21.0\n */\nexport class PaymentsApiFraudProtectionCard extends Base<Data> {\n static get defaultImageSrc(): string {\n return \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 44 44'%3E%3Cpath fill='%23fff' d='M0 20.73v-9.9L10.83 0h9.9L0 20.73ZM0 0h9.41L0 9.41V0Zm0 22.14L22.14 0h9.9l-9.43 9.44-.61-.27-10.5 4.66v7-.29L0 32.04v-9.9Zm11.54-.23L0 33.46v9.9l14.14-14.14a15 15 0 0 1-2.6-7.3Zm3.2 8.12L.77 44h9.9l9.7-9.7a13.75 13.75 0 0 1-5.63-4.27Zm6.67 4.64L12.08 44h9.9L44 21.98v-9.9L32.16 23.92C31.01 29.15 27.05 33.6 22 34.83l-.59-.16Zm11.02-12.43L44 10.67V.77L31.42 13.35l1.08.48v7a13 13 0 0 1-.07 1.4Zm-1.99-9.32L43.35 0h-9.9l-9.87 9.87 6.86 3.05ZM23.4 44 44 23.4v9.9L33.3 44h-9.9Zm11.31 0L44 34.71V44h-9.29Z'/%3E%3Cpath fill='%23fff' d='M30.17 21.99H22V11.72l-8.17 3.63V22H22v10.42c4.34-1.34 7.55-5.63 8.17-10.43Z'/%3E%3C/svg%3E\";\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getImageSrc: { attribute: false },\n };\n }\n\n /**\n * Fraud protection image/logo URL getter.\n * If left `null`, the card will display the default image.\n */\n getImageSrc: ((type: string) => string) | null = null;\n\n render(): TemplateResult {\n const defaultLayout = super.render({\n title: data => html`${data.helper.name}`,\n subtitle: data => html`${data.description}`,\n });\n\n if (!this.in({ idle: 'snapshot' })) return defaultLayout;\n\n const defaultSrc = PaymentsApiFraudProtectionCard.defaultImageSrc;\n const data = this.data;\n\n return html`\n <figure class=\"flex items-center gap-m\">\n <img\n class=\"relative h-s w-s object-cover rounded-full bg-contrast-20 flex-shrink-0 shadow-xs\"\n src=${(data ? this.getImageSrc?.(data.type) : null) ?? defaultSrc}\n alt=${this.t('image_alt')}\n @error=${(evt: Event) => ((evt.currentTarget as HTMLImageElement).src = defaultSrc)}\n />\n\n <figcaption class=\"min-w-0 flex-1\">${defaultLayout}</figcaption>\n </figure>\n `;\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import '../../internal/
|
|
1
|
+
import '../../internal/InternalSandbox/index';
|
|
2
|
+
import '../Spinner/index';
|
|
2
3
|
import '../I18n/index';
|
|
3
4
|
import { PaymentsApiFraudProtectionCard } from './PaymentsApiFraudProtectionCard';
|
|
4
5
|
export { PaymentsApiFraudProtectionCard };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import "../../internal/
|
|
1
|
+
import "../../internal/InternalSandbox/index.js";
|
|
2
|
+
import "../Spinner/index.js";
|
|
2
3
|
import "../I18n/index.js";
|
|
3
4
|
import { PaymentsApiFraudProtectionCard } from "./PaymentsApiFraudProtectionCard.js";
|
|
4
5
|
customElements.define('foxy-payments-api-fraud-protection-card', PaymentsApiFraudProtectionCard);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiFraudProtectionCard/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/PaymentsApiFraudProtectionCard/index.ts"],"names":[],"mappings":"AAAA,iDAA8C;AAE9C,6BAA0B;AAC1B,0BAAuB;AAEvB,OAAO,EAAE,8BAA8B,EAAE,4CAAyC;AAElF,cAAc,CAAC,MAAM,CAAC,yCAAyC,EAAE,8BAA8B,CAAC,CAAC;AAEjG,OAAO,EAAE,8BAA8B,EAAE,CAAC","sourcesContent":["import '../../internal/InternalSandbox/index';\n\nimport '../Spinner/index';\nimport '../I18n/index';\n\nimport { PaymentsApiFraudProtectionCard } from './PaymentsApiFraudProtectionCard';\n\ncustomElements.define('foxy-payments-api-fraud-protection-card', PaymentsApiFraudProtectionCard);\n\nexport { PaymentsApiFraudProtectionCard };\n"]}
|