@foxy.io/elements 1.40.0 → 1.41.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/foxy-address-form.js +1 -1
- package/dist/cdn/foxy-admin-subscription-form.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 +2 -2
- package/dist/cdn/foxy-client-form.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-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-settings-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-experimental-add-to-cart-builder.js +1 -1
- package/dist/cdn/foxy-filter-attribute-form.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-code-form.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-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-native-integration-form.js +1 -1
- package/dist/cdn/foxy-passkey-form.js +1 -1
- package/dist/cdn/foxy-payment-method-card.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-report-form.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-form.js +1 -1
- package/dist/cdn/foxy-subscription-settings-form.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-form.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-update-payment-method-form.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-user-invitation-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-5b4e2567.js → shared-109ec474.js} +1 -1
- package/dist/cdn/shared-1100bca8.js +1 -0
- package/dist/cdn/{shared-eef73355.js → shared-18e3b778.js} +1 -1
- package/dist/cdn/{shared-9e8ed3af.js → shared-35a49192.js} +1 -1
- package/dist/cdn/{shared-00e02b35.js → shared-43637d69.js} +1 -1
- package/dist/cdn/{shared-cc7e1dc6.js → shared-47d95cdd.js} +1 -1
- package/dist/cdn/{shared-17f2f27a.js → shared-57a179b3.js} +1 -1
- package/dist/cdn/{shared-3a952968.js → shared-6199cae2.js} +1 -1
- package/dist/cdn/{shared-5cd33249.js → shared-63eef674.js} +1 -1
- package/dist/cdn/{shared-e4119ddc.js → shared-67f73b81.js} +1 -1
- package/dist/cdn/{shared-c73c69bf.js → shared-697d44e6.js} +1 -1
- package/dist/cdn/{shared-0c2879b9.js → shared-6be00444.js} +1 -1
- package/dist/cdn/{shared-0098edce.js → shared-7097e2e1.js} +1 -1
- package/dist/cdn/{shared-e21ddeae.js → shared-77132fe8.js} +1 -1
- package/dist/cdn/{shared-653368ea.js → shared-864ff856.js} +1 -1
- package/dist/cdn/{shared-33ecc7ee.js → shared-86e9c57a.js} +1 -1
- package/dist/cdn/{shared-e0da7113.js → shared-88220d9e.js} +1 -1
- package/dist/cdn/{shared-4a4f6eb9.js → shared-888018de.js} +1 -1
- package/dist/cdn/{shared-4a32f76a.js → shared-9a64bf35.js} +1 -1
- package/dist/cdn/{shared-511fcf8e.js → shared-e41fced3.js} +1 -1
- package/dist/cdn/translations/admin-subscription-form/en.json +16 -0
- package/dist/elements/internal/InternalConfirmDialog/InternalConfirmDialog.d.ts +1 -0
- package/dist/elements/internal/InternalConfirmDialog/InternalConfirmDialog.js +3 -0
- package/dist/elements/internal/InternalConfirmDialog/InternalConfirmDialog.js.map +1 -1
- package/dist/elements/internal/InternalPostActionControl/InternalPostActionControl.d.ts +13 -0
- package/dist/elements/internal/InternalPostActionControl/InternalPostActionControl.js +98 -0
- package/dist/elements/internal/InternalPostActionControl/InternalPostActionControl.js.map +1 -0
- package/dist/elements/internal/InternalPostActionControl/index.d.ts +7 -0
- package/dist/elements/internal/InternalPostActionControl/index.js +9 -0
- package/dist/elements/internal/InternalPostActionControl/index.js.map +1 -0
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +21 -4
- package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -1
- package/dist/elements/public/AdminSubscriptionForm/index.d.ts +1 -0
- package/dist/elements/public/AdminSubscriptionForm/index.js +1 -0
- package/dist/elements/public/AdminSubscriptionForm/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-e5546d55.js +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { InternalControl } from "../InternalControl/InternalControl.js";
|
|
2
|
+
import { html, render } from 'lit-html';
|
|
3
|
+
import { ifDefined } from 'lit-html/directives/if-defined';
|
|
4
|
+
import { API } from "../../public/NucleonElement/API.js";
|
|
5
|
+
export class InternalPostActionControl extends InternalControl {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.messageOptions = {};
|
|
9
|
+
this.theme = null;
|
|
10
|
+
this.href = null;
|
|
11
|
+
this.__buttonState = 'idle';
|
|
12
|
+
this.__api = new API(this);
|
|
13
|
+
}
|
|
14
|
+
static get properties() {
|
|
15
|
+
return {
|
|
16
|
+
...super.properties,
|
|
17
|
+
messageOptions: { type: Object, attribute: 'message-options' },
|
|
18
|
+
theme: {},
|
|
19
|
+
href: {},
|
|
20
|
+
__buttonState: {},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
renderControl() {
|
|
24
|
+
var _a;
|
|
25
|
+
return html `
|
|
26
|
+
<foxy-internal-confirm-dialog
|
|
27
|
+
header="header"
|
|
28
|
+
infer="confirm-dialog"
|
|
29
|
+
id="confirm-dialog"
|
|
30
|
+
.messageOptions=${this.messageOptions}
|
|
31
|
+
@hide=${(evt) => {
|
|
32
|
+
if (!evt.detail.cancelled)
|
|
33
|
+
this.__sendPost();
|
|
34
|
+
}}
|
|
35
|
+
>
|
|
36
|
+
</foxy-internal-confirm-dialog>
|
|
37
|
+
|
|
38
|
+
<vaadin-notification
|
|
39
|
+
position="bottom-end"
|
|
40
|
+
duration="3000"
|
|
41
|
+
theme="success"
|
|
42
|
+
id="success-notification"
|
|
43
|
+
.renderer=${this.__getNotificationRenderer('success')}
|
|
44
|
+
>
|
|
45
|
+
</vaadin-notification>
|
|
46
|
+
|
|
47
|
+
<vaadin-notification
|
|
48
|
+
position="bottom-end"
|
|
49
|
+
duration="3000"
|
|
50
|
+
theme="error"
|
|
51
|
+
id="error-notification"
|
|
52
|
+
.renderer=${this.__getNotificationRenderer('error')}
|
|
53
|
+
>
|
|
54
|
+
</vaadin-notification>
|
|
55
|
+
|
|
56
|
+
<vaadin-button
|
|
57
|
+
theme=${ifDefined((_a = this.theme) !== null && _a !== void 0 ? _a : void 0)}
|
|
58
|
+
?disabled=${this.disabled || this.readonly || this.__buttonState !== 'idle'}
|
|
59
|
+
@click=${(evt) => {
|
|
60
|
+
const button = evt.currentTarget;
|
|
61
|
+
const dialog = this.renderRoot.querySelector('#confirm-dialog');
|
|
62
|
+
dialog === null || dialog === void 0 ? void 0 : dialog.show(button);
|
|
63
|
+
}}
|
|
64
|
+
>
|
|
65
|
+
<foxy-i18n infer="button" key=${this.__buttonState}></foxy-i18n>
|
|
66
|
+
</vaadin-button>
|
|
67
|
+
`;
|
|
68
|
+
}
|
|
69
|
+
async __sendPost() {
|
|
70
|
+
if (this.href && this.__buttonState === 'idle') {
|
|
71
|
+
this.__buttonState = 'busy';
|
|
72
|
+
const response = await this.__api.fetch(this.href, { method: 'POST' });
|
|
73
|
+
const result = response.ok ? 'success' : 'error';
|
|
74
|
+
const selector = `#${result}-notification`;
|
|
75
|
+
const notification = this.renderRoot.querySelector(selector);
|
|
76
|
+
notification === null || notification === void 0 ? void 0 : notification.open();
|
|
77
|
+
this.__buttonState = 'idle';
|
|
78
|
+
this.dispatchEvent(new CustomEvent(result));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
__getNotificationRenderer(state) {
|
|
82
|
+
return (root) => {
|
|
83
|
+
if (!root.firstElementChild)
|
|
84
|
+
root.innerHTML = '<span></span>';
|
|
85
|
+
const layout = html `
|
|
86
|
+
<foxy-i18n
|
|
87
|
+
style="color: var(--lumo-${state}-contrast-color)"
|
|
88
|
+
lang=${this.lang}
|
|
89
|
+
key=${state}
|
|
90
|
+
ns="${this.ns} notification"
|
|
91
|
+
>
|
|
92
|
+
</foxy-i18n>
|
|
93
|
+
`;
|
|
94
|
+
render(layout, root.firstElementChild);
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=InternalPostActionControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalPostActionControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPostActionControl/InternalPostActionControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { InternalConfirmDialog } from '../InternalConfirmDialog/InternalConfirmDialog';\nimport type { NotificationElement } from '@vaadin/vaadin-notification';\nimport type { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport type { ButtonElement } from '@vaadin/vaadin-button';\n\nimport { InternalControl } from '../InternalControl/InternalControl';\nimport { html, render } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { API } from '../../public/NucleonElement/API';\n\nexport class InternalPostActionControl extends InternalControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n messageOptions: { type: Object, attribute: 'message-options' },\n theme: {},\n href: {},\n __buttonState: {},\n };\n }\n\n messageOptions: Record<string, string> = {};\n\n theme: string | null = null;\n\n href: string | null = null;\n\n private __buttonState: 'idle' | 'busy' = 'idle';\n\n private readonly __api = new API(this);\n\n renderControl(): TemplateResult {\n return html`\n <foxy-internal-confirm-dialog\n header=\"header\"\n infer=\"confirm-dialog\"\n id=\"confirm-dialog\"\n .messageOptions=${this.messageOptions}\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) this.__sendPost();\n }}\n >\n </foxy-internal-confirm-dialog>\n\n <vaadin-notification\n position=\"bottom-end\"\n duration=\"3000\"\n theme=\"success\"\n id=\"success-notification\"\n .renderer=${this.__getNotificationRenderer('success')}\n >\n </vaadin-notification>\n\n <vaadin-notification\n position=\"bottom-end\"\n duration=\"3000\"\n theme=\"error\"\n id=\"error-notification\"\n .renderer=${this.__getNotificationRenderer('error')}\n >\n </vaadin-notification>\n\n <vaadin-button\n theme=${ifDefined(this.theme ?? void 0)}\n ?disabled=${this.disabled || this.readonly || this.__buttonState !== 'idle'}\n @click=${(evt: CustomEvent) => {\n const button = evt.currentTarget as ButtonElement;\n const dialog = this.renderRoot.querySelector<InternalConfirmDialog>('#confirm-dialog');\n dialog?.show(button);\n }}\n >\n <foxy-i18n infer=\"button\" key=${this.__buttonState}></foxy-i18n>\n </vaadin-button>\n `;\n }\n\n private async __sendPost() {\n if (this.href && this.__buttonState === 'idle') {\n this.__buttonState = 'busy';\n\n const response = await this.__api.fetch(this.href, { method: 'POST' });\n const result = response.ok ? 'success' : 'error';\n const selector = `#${result}-notification`;\n const notification = this.renderRoot.querySelector<NotificationElement>(selector);\n\n notification?.open();\n this.__buttonState = 'idle';\n this.dispatchEvent(new CustomEvent(result));\n }\n }\n\n private __getNotificationRenderer(state: 'success' | 'error') {\n return (root: HTMLElement) => {\n if (!root.firstElementChild) root.innerHTML = '<span></span>';\n\n const layout = html`\n <foxy-i18n\n style=\"color: var(--lumo-${state}-contrast-color)\"\n lang=${this.lang}\n key=${state}\n ns=\"${this.ns} notification\"\n >\n </foxy-i18n>\n `;\n\n render(layout, root.firstElementChild!);\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import '@vaadin/vaadin-notification';
|
|
2
|
+
import '@vaadin/vaadin-button';
|
|
3
|
+
import '../InternalConfirmDialog/index';
|
|
4
|
+
import '../InternalControl/index';
|
|
5
|
+
import '../../public/I18n/index';
|
|
6
|
+
import { InternalPostActionControl } from './InternalPostActionControl';
|
|
7
|
+
export { InternalPostActionControl };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import '@vaadin/vaadin-notification';
|
|
2
|
+
import '@vaadin/vaadin-button';
|
|
3
|
+
import "../InternalConfirmDialog/index.js";
|
|
4
|
+
import "../InternalControl/index.js";
|
|
5
|
+
import "../../public/I18n/index.js";
|
|
6
|
+
import { InternalPostActionControl } from "./InternalPostActionControl.js";
|
|
7
|
+
customElements.define('foxy-internal-post-action-control', InternalPostActionControl);
|
|
8
|
+
export { InternalPostActionControl };
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPostActionControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,uBAAuB,CAAC;AAE/B,2CAAwC;AACxC,qCAAkC;AAElC,oCAAiC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,uCAAoC;AAExE,cAAc,CAAC,MAAM,CAAC,mCAAmC,EAAE,yBAAyB,CAAC,CAAC;AAEtF,OAAO,EAAE,yBAAyB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-notification';\nimport '@vaadin/vaadin-button';\n\nimport '../InternalConfirmDialog/index';\nimport '../InternalControl/index';\n\nimport '../../public/I18n/index';\n\nimport { InternalPostActionControl } from './InternalPostActionControl';\n\ncustomElements.define('foxy-internal-post-action-control', InternalPostActionControl);\n\nexport { InternalPostActionControl };\n"]}
|
|
@@ -32,16 +32,20 @@ export class AdminSubscriptionForm extends Base {
|
|
|
32
32
|
return status ? `subtitle_${status}` : super.headerSubtitleKey;
|
|
33
33
|
}
|
|
34
34
|
renderBody() {
|
|
35
|
-
var _a, _b, _c, _d, _e;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
36
36
|
let transactionsHref;
|
|
37
37
|
try {
|
|
38
38
|
const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transactions'].href) !== null && _b !== void 0 ? _b : '');
|
|
39
39
|
url.searchParams.set('zoom', 'items');
|
|
40
40
|
transactionsHref = url.toString();
|
|
41
41
|
}
|
|
42
|
-
catch (
|
|
42
|
+
catch (_j) {
|
|
43
43
|
transactionsHref = undefined;
|
|
44
44
|
}
|
|
45
|
+
// @ts-expect-error - SDK doesn't know yet about the `fx:charge_past_due` link.
|
|
46
|
+
const chargePastDueHref = (_d = (_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:charge_past_due']) === null || _d === void 0 ? void 0 : _d.href;
|
|
47
|
+
const pastDueAmount = (_e = this.data) === null || _e === void 0 ? void 0 : _e.past_due_amount;
|
|
48
|
+
const currencyCode = (_f = this.data) === null || _f === void 0 ? void 0 : _f._embedded['fx:transaction_template'].currency_code;
|
|
45
49
|
return html `
|
|
46
50
|
${this.renderHeader()}
|
|
47
51
|
|
|
@@ -66,11 +70,24 @@ export class AdminSubscriptionForm extends Base {
|
|
|
66
70
|
<foxy-internal-summary-control infer="overdue">
|
|
67
71
|
<foxy-internal-number-control
|
|
68
72
|
layout="summary-item"
|
|
69
|
-
suffix=${ifDefined(
|
|
73
|
+
suffix=${ifDefined(currencyCode)}
|
|
70
74
|
infer="past-due-amount"
|
|
71
75
|
min="0"
|
|
72
76
|
>
|
|
73
77
|
</foxy-internal-number-control>
|
|
78
|
+
|
|
79
|
+
${chargePastDueHref && currencyCode && pastDueAmount
|
|
80
|
+
? html `
|
|
81
|
+
<foxy-internal-post-action-control
|
|
82
|
+
message-options=${JSON.stringify({ amount: `${pastDueAmount} ${currencyCode}` })}
|
|
83
|
+
theme="tertiary-inline"
|
|
84
|
+
infer="charge-past-due"
|
|
85
|
+
href=${chargePastDueHref}
|
|
86
|
+
@success=${() => this.refresh()}
|
|
87
|
+
>
|
|
88
|
+
</foxy-internal-post-action-control>
|
|
89
|
+
`
|
|
90
|
+
: ''}
|
|
74
91
|
</foxy-internal-summary-control>
|
|
75
92
|
|
|
76
93
|
<foxy-internal-summary-control infer="self-service-links">
|
|
@@ -122,7 +139,7 @@ export class AdminSubscriptionForm extends Base {
|
|
|
122
139
|
<foxy-internal-async-list-control
|
|
123
140
|
infer="attributes"
|
|
124
141
|
class="min-w-0"
|
|
125
|
-
first=${ifDefined((
|
|
142
|
+
first=${ifDefined((_h = (_g = this.data) === null || _g === void 0 ? void 0 : _g._links) === null || _h === void 0 ? void 0 : _h['fx:attributes'].href)}
|
|
126
143
|
item="foxy-attribute-card"
|
|
127
144
|
form="foxy-attribute-form"
|
|
128
145
|
alert
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminSubscriptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,kDAA+C;AAC/E,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,EAAE,GAAG,yBAAyB,CAAC;AACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD,MAAM,OAAO,qBAAsB,SAAQ,IAAU;IAArD;;QAQE,yHAAyH;QACzH,oBAAe,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"AdminSubscriptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { getSubscriptionStatus } from '../../../utils/get-subscription-status';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\n\nconst NS = 'admin-subscription-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\nexport class AdminSubscriptionForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n uoeSettingsPage: { attribute: 'uoe-settings-page' },\n };\n }\n\n /** URL of the UOE settings page in the admin. If set, displays a link to that page in the self-service links section. */\n uoeSettingsPage: string | null = null;\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['delete', super.hiddenSelector.toString()];\n if (!this.data?.error_message) alwaysMatch.unshift('error-message');\n if (!this.data?.is_active) alwaysMatch.unshift('view-action', 'cancel-action');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleKey(): string {\n const status = getSubscriptionStatus(this.data);\n return status ? `subtitle_${status}` : super.headerSubtitleKey;\n }\n\n renderBody(): TemplateResult {\n let transactionsHref: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'items');\n transactionsHref = url.toString();\n } catch {\n transactionsHref = undefined;\n }\n\n // @ts-expect-error - SDK doesn't know yet about the `fx:charge_past_due` link.\n const chargePastDueHref: string | undefined = this.data?._links['fx:charge_past_due']?.href;\n const pastDueAmount = this.data?.past_due_amount;\n const currencyCode = this.data?._embedded['fx:transaction_template'].currency_code;\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-admin-subscription-form-error infer=\"error-message\">\n </foxy-internal-admin-subscription-form-error>\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-date-control layout=\"summary-item\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"frequency\"\n allow-twice-a-month\n >\n </foxy-internal-frequency-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"next-transaction-date\">\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"overdue\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(currencyCode)}\n infer=\"past-due-amount\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n\n ${chargePastDueHref && currencyCode && pastDueAmount\n ? html`\n <foxy-internal-post-action-control\n message-options=${JSON.stringify({ amount: `${pastDueAmount} ${currencyCode}` })}\n theme=\"tertiary-inline\"\n infer=\"charge-past-due\"\n href=${chargePastDueHref}\n @success=${() => this.refresh()}\n >\n </foxy-internal-post-action-control>\n `\n : ''}\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"self-service-links\">\n <foxy-internal-admin-subscription-form-link-control infer=\"load-in-cart\">\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"cart=checkout\"\n infer=\"load-on-checkout\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=next_transaction_date\"\n infer=\"cancel-at-end-of-billing-period\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <foxy-internal-admin-subscription-form-link-control\n search=\"sub_cancel=true\"\n infer=\"cancel-next-day\"\n >\n </foxy-internal-admin-subscription-form-link-control>\n\n <div\n class=\"flex items-start leading-xs text-xs text-secondary\"\n style=\"gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z\" clip-rule=\"evenodd\" /></svg>`}\n <p>\n <foxy-i18n infer=\"\" key=\"uoe_hint_text\"></foxy-i18n>\n ${this.uoeSettingsPage\n ? html`\n <a\n target=\"_blank\"\n class=\"inline-block rounded font-medium text-body cursor-pointer hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.uoeSettingsPage}\n >\n <foxy-i18n infer=\"\" key=\"uoe_link_text\"></foxy-i18n>\n </a>\n `\n : ''}\n </p>\n </div>\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links?.['fx:attributes'].href)}\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"transactions\"\n class=\"min-w-0\"\n first=${ifDefined(transactionsHref)}\n item=\"foxy-transaction-card\"\n form=\"foxy-transaction\"\n hide-create-button\n hide-delete-button\n alert\n wide\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/index.ts"],"names":[],"mappings":"AAAA,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,mCAAgC;AAChC,mCAAgC;AAChC,iCAA8B;AAE9B,sEAAmE;AACnE,gEAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAEhE,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../TransactionCard/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../Transaction/index';\n\nimport './internal/InternalAdminSubscriptionFormLinkControl/index';\nimport './internal/InternalAdminSubscriptionFormError/index';\n\nimport { AdminSubscriptionForm } from './AdminSubscriptionForm';\n\ncustomElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);\n\nexport { AdminSubscriptionForm };\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/index.ts"],"names":[],"mappings":"AAAA,2DAAwD;AACxD,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,mCAAgC;AAChC,mCAAgC;AAChC,iCAA8B;AAE9B,sEAAmE;AACnE,gEAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAEhE,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalPostActionControl/index';\nimport '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../TransactionCard/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../Transaction/index';\n\nimport './internal/InternalAdminSubscriptionFormLinkControl/index';\nimport './internal/InternalAdminSubscriptionFormError/index';\n\nimport { AdminSubscriptionForm } from './AdminSubscriptionForm';\n\ncustomElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);\n\nexport { AdminSubscriptionForm };\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./shared-8ef0ca65.js";import"./shared-4d32d19e.js";import{_ as t}from"./shared-cb58dfcd.js";import{h as e}from"./shared-ba5c42c7.js";import{D as s}from"./shared-048d5cae.js";let i,n=t=>t;customElements.define("foxy-internal-confirm-dialog",class extends s{constructor(){super(...arguments),this.closable=!1,this.editable=!1,this.alert=!0,this.confirm="confirm",this.message="message",this.cancel="cancel",this.theme="primary"}static get properties(){return t(t({},super.properties),{},{confirm:{type:String},message:{type:String},cancel:{type:String},theme:{type:String}})}render(){return super.render((()=>e(i||(i=n` <foxy-i18n class="block font-lumo text-m text-body text-center mb-m" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <div class="grid grid-cols-2 gap-m"> <vaadin-button data-testid="cancelButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> <vaadin-button theme="${0}" data-testid="confirmButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> </div> `),this.lang,this.message,this.ns,this.__handleCancel,this.ns,this.lang,this.cancel,this.theme,this.__handleConfirm,this.ns,this.lang,this.confirm)))}async __handleCancel(){await this.hide(!0)}async __handleConfirm(){await this.hide()}});
|