@mj-biz-apps/orders-ng 5.30.0 → 5.31.0
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/README.md +43 -13
- package/dist/checkout-element/main.js +162 -38
- package/dist/lib/checkout-widget/checkout-public-host.component.d.ts +7 -0
- package/dist/lib/checkout-widget/checkout-public-host.component.d.ts.map +1 -1
- package/dist/lib/checkout-widget/checkout-public-host.component.js +62 -38
- package/dist/lib/checkout-widget/checkout-public-host.component.js.map +1 -1
- package/dist/lib/checkout-widget/checkout-turnstile.d.ts +62 -0
- package/dist/lib/checkout-widget/checkout-turnstile.d.ts.map +1 -0
- package/dist/lib/checkout-widget/checkout-turnstile.js +121 -0
- package/dist/lib/checkout-widget/checkout-turnstile.js.map +1 -0
- package/dist/lib/custom/EventOrderLine/line-event-summary.js +3 -3
- package/dist/lib/custom/EventOrderLine/line-event-summary.js.map +1 -1
- package/dist/lib/custom/Product/product-save-guard-form.component.d.ts +1 -2
- package/dist/lib/custom/Product/product-save-guard-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Product/product-save-guard-form.component.js +2 -3
- package/dist/lib/custom/Product/product-save-guard-form.component.js.map +1 -1
- package/dist/lib/custom/Product/widgets/product-gl-links.component.d.ts +8 -2
- package/dist/lib/custom/Product/widgets/product-gl-links.component.d.ts.map +1 -1
- package/dist/lib/custom/Product/widgets/product-gl-links.component.js +9 -3
- package/dist/lib/custom/Product/widgets/product-gl-links.component.js.map +1 -1
- package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts +3 -0
- package/dist/lib/custom/Product/widgets/product-pricing-widget.component.d.ts.map +1 -1
- package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js +9 -8
- package/dist/lib/custom/Product/widgets/product-pricing-widget.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +23 -28
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +2 -32
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/data/orders-queries.js +1 -1
- package/dist/lib/data/orders-queries.js.map +1 -1
- package/dist/lib/form-panels/catalog-overviews.panels.js +3 -3
- package/dist/lib/form-panels/catalog-overviews.panels.js.map +1 -1
- package/dist/lib/form-panels/commercial-overviews.panels.js +2 -2
- package/dist/lib/form-panels/commercial-overviews.panels.js.map +1 -1
- package/dist/lib/form-panels/document-form.helpers.d.ts +9 -0
- package/dist/lib/form-panels/document-form.helpers.d.ts.map +1 -1
- package/dist/lib/form-panels/document-form.helpers.js +21 -6
- package/dist/lib/form-panels/document-form.helpers.js.map +1 -1
- package/dist/lib/form-panels/document-overviews.panels.js +5 -5
- package/dist/lib/form-panels/document-overviews.panels.js.map +1 -1
- package/dist/lib/form-panels/external-invoices.panel.d.ts +1 -0
- package/dist/lib/form-panels/external-invoices.panel.d.ts.map +1 -1
- package/dist/lib/form-panels/external-invoices.panel.js +3 -2
- package/dist/lib/form-panels/external-invoices.panel.js.map +1 -1
- package/dist/lib/form-panels/party-order-stats.js +2 -2
- package/dist/lib/form-panels/party-order-stats.js.map +1 -1
- package/dist/lib/form-panels/promotion-header.panel.js +2 -2
- package/dist/lib/form-panels/promotion-header.panel.js.map +1 -1
- package/dist/lib/pages/catalog/pricing.page.d.ts.map +1 -1
- package/dist/lib/pages/catalog/pricing.page.js +5 -3
- package/dist/lib/pages/catalog/pricing.page.js.map +1 -1
- package/dist/lib/pages/catalog/products.page.d.ts +1 -0
- package/dist/lib/pages/catalog/products.page.d.ts.map +1 -1
- package/dist/lib/pages/catalog/products.page.js +8 -7
- package/dist/lib/pages/catalog/products.page.js.map +1 -1
- package/dist/lib/pages/orders/order-document.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/order-document.page.js +2 -2
- package/dist/lib/pages/orders/order-document.page.js.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.js +13 -11
- package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -1
- package/dist/lib/pages/receivables/customer-ar.page.d.ts +2 -1
- package/dist/lib/pages/receivables/customer-ar.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/customer-ar.page.js +6 -4
- package/dist/lib/pages/receivables/customer-ar.page.js.map +1 -1
- package/dist/lib/pages/receivables/external-invoicing-queue.page.d.ts +20 -2
- package/dist/lib/pages/receivables/external-invoicing-queue.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/external-invoicing-queue.page.js +84 -15
- package/dist/lib/pages/receivables/external-invoicing-queue.page.js.map +1 -1
- package/dist/lib/pages/receivables/overdue.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/overdue.page.js +3 -3
- package/dist/lib/pages/receivables/overdue.page.js.map +1 -1
- package/dist/lib/pages/receivables/subscriptions.page.d.ts +9 -11
- package/dist/lib/pages/receivables/subscriptions.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/subscriptions.page.js +14 -18
- package/dist/lib/pages/receivables/subscriptions.page.js.map +1 -1
- package/dist/lib/panels/money-format.d.ts +43 -15
- package/dist/lib/panels/money-format.d.ts.map +1 -1
- package/dist/lib/panels/money-format.js +85 -40
- package/dist/lib/panels/money-format.js.map +1 -1
- package/dist/lib/panels/party-orders-overview.component.d.ts.map +1 -1
- package/dist/lib/panels/party-orders-overview.component.js +16 -18
- package/dist/lib/panels/party-orders-overview.component.js.map +1 -1
- package/dist/lib/panels/status-stepper.component.d.ts +1 -1
- package/dist/public-api.d.ts +0 -5
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +0 -5
- package/dist/public-api.js.map +1 -1
- package/package.json +6 -6
- package/dist/lib/custom/PriceList/price-list-form.component.d.ts +0 -46
- package/dist/lib/custom/PriceList/price-list-form.component.d.ts.map +0 -1
- package/dist/lib/custom/PriceList/price-list-form.component.js +0 -363
- package/dist/lib/custom/PriceList/price-list-form.component.js.map +0 -1
- package/dist/lib/custom/Product/product-form.component.d.ts +0 -98
- package/dist/lib/custom/Product/product-form.component.d.ts.map +0 -1
- package/dist/lib/custom/Product/product-form.component.js +0 -695
- package/dist/lib/custom/Product/product-form.component.js.map +0 -1
- package/dist/lib/custom/Product/written-key.d.ts +0 -20
- package/dist/lib/custom/Product/written-key.d.ts.map +0 -1
- package/dist/lib/custom/Product/written-key.js +0 -22
- package/dist/lib/custom/Product/written-key.js.map +0 -1
- package/dist/lib/custom/Promotion/promotion-form.component.d.ts +0 -33
- package/dist/lib/custom/Promotion/promotion-form.component.d.ts.map +0 -1
- package/dist/lib/custom/Promotion/promotion-form.component.js +0 -350
- package/dist/lib/custom/Promotion/promotion-form.component.js.map +0 -1
- package/dist/lib/custom/Subscription/subscription-form.component.d.ts +0 -96
- package/dist/lib/custom/Subscription/subscription-form.component.d.ts.map +0 -1
- package/dist/lib/custom/Subscription/subscription-form.component.js +0 -885
- package/dist/lib/custom/Subscription/subscription-form.component.js.map +0 -1
- package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.d.ts +0 -60
- package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.d.ts.map +0 -1
- package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.js +0 -567
- package/dist/lib/custom/SubscriptionTerm/subscription-term-form.component.js.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts +0 -55
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.d.ts.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js +0 -243
- package/dist/lib/transfer-pending/workspace-tabs/workspace-card.component.js.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts +0 -47
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.d.ts.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js +0 -112
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-store.js.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts +0 -36
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.d.ts.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js +0 -179
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tab-strip.component.js.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts +0 -36
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.d.ts.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js +0 -9
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tabs.types.js.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts +0 -35
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.d.ts.map +0 -1
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js +0 -124
- package/dist/lib/transfer-pending/workspace-tabs/workspace-tip.directive.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
# `@mj-biz-apps/orders-ng`
|
|
2
2
|
|
|
3
|
-
**Angular components for BizApps Orders** —
|
|
3
|
+
**Angular components for BizApps Orders** — the Orders application in MJ Explorer, its entity forms,
|
|
4
|
+
and the public checkout widget.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
The rules for UI work here are in [`docs/ui-architecture.md`](../../docs/ui-architecture.md), and
|
|
7
|
+
they are binding: components bind to entities and remote operations directly, with no data-access
|
|
8
|
+
service layer.
|
|
6
9
|
|
|
7
|
-
`src/lib
|
|
8
|
-
produces the entity classes — including field descriptions lifted from the migration's extended
|
|
9
|
-
properties. Do not edit them; see the Entities package README for the regeneration cycle.
|
|
10
|
+
## Layout of `src/lib/`
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
| Folder | What it holds |
|
|
13
|
+
|---|---|
|
|
14
|
+
| `generated/` | A CodeGen form per entity, driven by the same metadata that produces the entity classes, including field descriptions lifted from the migration's extended properties. Do not edit; see the Entities package README for the regeneration cycle. |
|
|
15
|
+
| `custom/` | Hand-written form components, one folder per entity. Four replace the generated form: `OrderHeader`, `PaymentHeader` and `EventOrderLine`, plus `Product` through `product-save-guard-form.component.ts`, each with `@RegisterClass` at an explicit priority; `custom-forms.module.ts` loads after the generated module. `Product/widgets/` holds the Product widgets the form panels mount. |
|
|
16
|
+
| `form-panels/` | Panels contributed to forms by entity (`@RegisterClassEx(BaseFormPanel, …)`), including the orders sections on bizapps-common's Person and Organization forms. |
|
|
17
|
+
| `sections/` | The four Explorer tabs (Orders, Payments, Receivables, Catalog) and the shell that gives each its left rail. Each registers under the `DriverClass` the Orders application's nav items name. |
|
|
18
|
+
| `pages/` | The screens inside those tabs, one folder per tab. |
|
|
19
|
+
| `panels/` | The shared panel library the screens are built from: worklist table, stat tile, money strip, status stepper, decomposition ladder and others. |
|
|
20
|
+
| `services/` | `MJOPricingScheduler`, which prices a draft as the user types, and save-error formatting. |
|
|
21
|
+
| `data/` | Entity names, the reads the list and detail screens make (`orders-queries.ts`), and grid view and column state. |
|
|
22
|
+
| `checkout-widget/` | The checkout widget and the public host page behind `GET /checkout/:slug`. |
|
|
23
|
+
| `styles/orders-kit.css` | This app's own component CSS, for classes MJ does not ship. The mockups import the same file. |
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
`src/public-api.ts` loads the forms, form panels and sections so their decorators fire, and exports
|
|
26
|
+
the rest. `LoadBizAppsOrdersClient()` is the `startupExport` that `mj-app.json` names for MJExplorer.
|
|
27
|
+
|
|
28
|
+
## Build
|
|
29
|
+
|
|
30
|
+
`pnpm run build` in this package, or the root build, runs:
|
|
31
|
+
|
|
32
|
+
1. `ngc`, then `tsc-alias -f`, compiling into `dist/`.
|
|
33
|
+
2. `build:styles` — copies `src/lib/styles/orders-kit.css` into `dist/lib/styles/`, because `ngc`
|
|
34
|
+
compiles TypeScript only. Exported as `@mj-biz-apps/orders-ng/styles/orders-kit.css`.
|
|
35
|
+
3. `build:checkout-element` — `scripts/build-checkout-element.mjs` bundles the
|
|
36
|
+
`<mj-orders-checkout>` Angular Element into `dist/checkout-element/main.js` with esbuild and the
|
|
37
|
+
Angular linker, so the payment page needs no JIT and no `unsafe-eval`. Exported as
|
|
38
|
+
`@mj-biz-apps/orders-ng/checkout-element`; the checkout edge serves it at
|
|
39
|
+
`GET /checkout/element/main.js` for the `GET /checkout/:slug` page.
|
|
40
|
+
|
|
41
|
+
## When you build UI here
|
|
16
42
|
|
|
17
43
|
Three things this app's rules make non-optional:
|
|
18
44
|
|
|
@@ -28,8 +54,12 @@ that shows only the number is hiding the answer to the question the user is abou
|
|
|
28
54
|
charges, tax, each with a running total and a link to what produced it. Any "why is this £847.32?"
|
|
29
55
|
affordance should read that rather than recompute.
|
|
30
56
|
|
|
31
|
-
##
|
|
57
|
+
## Price through the engine, never beside it
|
|
32
58
|
|
|
33
|
-
`
|
|
34
|
-
|
|
35
|
-
|
|
59
|
+
`OrderPricingService` is the pricing walk `Save()` runs, and it lives in
|
|
60
|
+
`@mj-biz-apps/orders-entities`, so a screen can run it too. `MJOPricingScheduler` prices a draft in
|
|
61
|
+
the browser when it can, and sends the whole order to `Orders.PriceOrder` when a pricing plugin or a
|
|
62
|
+
promotion code is involved; neither path writes anything. `Orders.PreviewPrice` answers for one
|
|
63
|
+
product — its unit price and how it resolved — not for what an order comes to. Do not estimate
|
|
64
|
+
client-side with arithmetic of your own: a preview that diverges from the invoice is worse than no
|
|
65
|
+
preview, because people trust it.
|
|
@@ -39670,6 +39670,106 @@ function memberDiscountNotice(draft, alreadyShown) {
|
|
|
39670
39670
|
return typedCodePriced ? `${message} Submit again to continue.` : `${message} Submit again to continue at the standard rate.`;
|
|
39671
39671
|
}
|
|
39672
39672
|
|
|
39673
|
+
// dist/lib/checkout-widget/checkout-turnstile.js
|
|
39674
|
+
var TURNSTILE_SCRIPT_URL = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
|
|
39675
|
+
function TurnstileChallengeSiteKey(reply) {
|
|
39676
|
+
if (!reply || reply._httpStatus !== 403 || reply.TurnstileRequired !== true) {
|
|
39677
|
+
return null;
|
|
39678
|
+
}
|
|
39679
|
+
return typeof reply.TurnstileSiteKey === "string" && reply.TurnstileSiteKey ? reply.TurnstileSiteKey : null;
|
|
39680
|
+
}
|
|
39681
|
+
async function PostWithTurnstile(post, path, body, getToken, state) {
|
|
39682
|
+
const first = state.siteKey ? { ...body, turnstileToken: await getToken(state.siteKey) } : body;
|
|
39683
|
+
const reply = await post(path, first);
|
|
39684
|
+
const siteKey = TurnstileChallengeSiteKey(reply);
|
|
39685
|
+
if (!siteKey) {
|
|
39686
|
+
return reply;
|
|
39687
|
+
}
|
|
39688
|
+
state.siteKey = siteKey;
|
|
39689
|
+
return post(path, { ...body, turnstileToken: await getToken(siteKey) });
|
|
39690
|
+
}
|
|
39691
|
+
var TurnstileError = class extends Error {
|
|
39692
|
+
};
|
|
39693
|
+
var turnstileScript = null;
|
|
39694
|
+
function loadTurnstile() {
|
|
39695
|
+
if (window.turnstile) {
|
|
39696
|
+
return Promise.resolve(window.turnstile);
|
|
39697
|
+
}
|
|
39698
|
+
if (!turnstileScript) {
|
|
39699
|
+
turnstileScript = new Promise((resolve, reject) => {
|
|
39700
|
+
const s = document.createElement("script");
|
|
39701
|
+
s.src = TURNSTILE_SCRIPT_URL;
|
|
39702
|
+
s.onload = () => window.turnstile ? resolve(window.turnstile) : reject(new TurnstileError("Human verification did not load."));
|
|
39703
|
+
s.onerror = () => {
|
|
39704
|
+
turnstileScript = null;
|
|
39705
|
+
reject(new TurnstileError("Could not load human verification. Check your connection and try again."));
|
|
39706
|
+
};
|
|
39707
|
+
document.head.appendChild(s);
|
|
39708
|
+
});
|
|
39709
|
+
}
|
|
39710
|
+
return turnstileScript;
|
|
39711
|
+
}
|
|
39712
|
+
var TurnstileWidget = class {
|
|
39713
|
+
container;
|
|
39714
|
+
widgetId = null;
|
|
39715
|
+
siteKey = "";
|
|
39716
|
+
pending = null;
|
|
39717
|
+
constructor(container) {
|
|
39718
|
+
this.container = container;
|
|
39719
|
+
}
|
|
39720
|
+
async Token(siteKey) {
|
|
39721
|
+
const api = await loadTurnstile();
|
|
39722
|
+
const host = this.container();
|
|
39723
|
+
if (!host) {
|
|
39724
|
+
throw new TurnstileError("Could not show human verification.");
|
|
39725
|
+
}
|
|
39726
|
+
return new Promise((resolve, reject) => {
|
|
39727
|
+
this.pending?.reject(new TurnstileError("Human verification was restarted."));
|
|
39728
|
+
this.pending = { resolve, reject };
|
|
39729
|
+
if (this.widgetId !== null && this.siteKey === siteKey) {
|
|
39730
|
+
api.reset(this.widgetId);
|
|
39731
|
+
} else {
|
|
39732
|
+
if (this.widgetId !== null) {
|
|
39733
|
+
api.remove(this.widgetId);
|
|
39734
|
+
}
|
|
39735
|
+
this.siteKey = siteKey;
|
|
39736
|
+
this.widgetId = api.render(host, {
|
|
39737
|
+
sitekey: siteKey,
|
|
39738
|
+
execution: "execute",
|
|
39739
|
+
appearance: "interaction-only",
|
|
39740
|
+
callback: (token) => this.settle(token),
|
|
39741
|
+
"error-callback": () => {
|
|
39742
|
+
this.fail(new TurnstileError("Human verification failed. Please try again."));
|
|
39743
|
+
return true;
|
|
39744
|
+
}
|
|
39745
|
+
}) ?? null;
|
|
39746
|
+
}
|
|
39747
|
+
if (this.widgetId === null) {
|
|
39748
|
+
this.fail(new TurnstileError("Could not show human verification."));
|
|
39749
|
+
return;
|
|
39750
|
+
}
|
|
39751
|
+
api.execute(this.widgetId);
|
|
39752
|
+
});
|
|
39753
|
+
}
|
|
39754
|
+
Destroy() {
|
|
39755
|
+
if (this.widgetId !== null) {
|
|
39756
|
+
window.turnstile?.remove(this.widgetId);
|
|
39757
|
+
this.widgetId = null;
|
|
39758
|
+
}
|
|
39759
|
+
this.pending = null;
|
|
39760
|
+
}
|
|
39761
|
+
settle(token) {
|
|
39762
|
+
const pending = this.pending;
|
|
39763
|
+
this.pending = null;
|
|
39764
|
+
pending?.resolve(token);
|
|
39765
|
+
}
|
|
39766
|
+
fail(err) {
|
|
39767
|
+
const pending = this.pending;
|
|
39768
|
+
this.pending = null;
|
|
39769
|
+
pending?.reject(err);
|
|
39770
|
+
}
|
|
39771
|
+
};
|
|
39772
|
+
|
|
39673
39773
|
// dist/lib/checkout-widget/checkout-public-host.component.js
|
|
39674
39774
|
var _c0 = (a0) => [a0];
|
|
39675
39775
|
function CheckoutPublicHostComponent_Conditional_1_Template(rf, ctx) {
|
|
@@ -39686,7 +39786,7 @@ function CheckoutPublicHostComponent_Conditional_1_Template(rf, ctx) {
|
|
|
39686
39786
|
}
|
|
39687
39787
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template(rf, ctx) {
|
|
39688
39788
|
if (rf & 1) {
|
|
39689
|
-
\u0275\u0275elementStart(0, "p",
|
|
39789
|
+
\u0275\u0275elementStart(0, "p", 8);
|
|
39690
39790
|
\u0275\u0275text(1);
|
|
39691
39791
|
\u0275\u0275elementEnd();
|
|
39692
39792
|
}
|
|
@@ -39698,7 +39798,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template(rf, ct
|
|
|
39698
39798
|
}
|
|
39699
39799
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template(rf, ctx) {
|
|
39700
39800
|
if (rf & 1) {
|
|
39701
|
-
\u0275\u0275elementStart(0, "p",
|
|
39801
|
+
\u0275\u0275elementStart(0, "p", 12);
|
|
39702
39802
|
\u0275\u0275text(1);
|
|
39703
39803
|
\u0275\u0275elementEnd();
|
|
39704
39804
|
}
|
|
@@ -39711,14 +39811,14 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template(rf, ct
|
|
|
39711
39811
|
}
|
|
39712
39812
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template(rf, ctx) {
|
|
39713
39813
|
if (rf & 1) {
|
|
39714
|
-
\u0275\u0275elementStart(0, "p",
|
|
39814
|
+
\u0275\u0275elementStart(0, "p", 10);
|
|
39715
39815
|
\u0275\u0275text(1, "Setting up your account\u2026");
|
|
39716
39816
|
\u0275\u0275elementEnd();
|
|
39717
39817
|
}
|
|
39718
39818
|
}
|
|
39719
39819
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template(rf, ctx) {
|
|
39720
39820
|
if (rf & 1) {
|
|
39721
|
-
\u0275\u0275elementStart(0, "p",
|
|
39821
|
+
\u0275\u0275elementStart(0, "p", 15);
|
|
39722
39822
|
\u0275\u0275text(1);
|
|
39723
39823
|
\u0275\u0275elementEnd();
|
|
39724
39824
|
}
|
|
@@ -39730,7 +39830,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_
|
|
|
39730
39830
|
}
|
|
39731
39831
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template(rf, ctx) {
|
|
39732
39832
|
if (rf & 1) {
|
|
39733
|
-
\u0275\u0275elementStart(0, "p",
|
|
39833
|
+
\u0275\u0275elementStart(0, "p", 20);
|
|
39734
39834
|
\u0275\u0275text(1);
|
|
39735
39835
|
\u0275\u0275elementEnd();
|
|
39736
39836
|
}
|
|
@@ -39743,42 +39843,42 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10
|
|
|
39743
39843
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template(rf, ctx) {
|
|
39744
39844
|
if (rf & 1) {
|
|
39745
39845
|
const _r2 = \u0275\u0275getCurrentView();
|
|
39746
|
-
\u0275\u0275elementStart(0, "form",
|
|
39846
|
+
\u0275\u0275elementStart(0, "form", 13);
|
|
39747
39847
|
\u0275\u0275listener("submit", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_form_submit_0_listener($event) {
|
|
39748
39848
|
\u0275\u0275restoreView(_r2);
|
|
39749
39849
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39750
39850
|
$event.preventDefault();
|
|
39751
39851
|
return \u0275\u0275resetView(ctx_r0.submitPassword());
|
|
39752
39852
|
});
|
|
39753
|
-
\u0275\u0275elementStart(1, "h2",
|
|
39853
|
+
\u0275\u0275elementStart(1, "h2", 14);
|
|
39754
39854
|
\u0275\u0275text(2, "Set a password for your account");
|
|
39755
39855
|
\u0275\u0275elementEnd();
|
|
39756
|
-
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template, 2, 1, "p",
|
|
39757
|
-
\u0275\u0275elementStart(4, "label",
|
|
39856
|
+
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template, 2, 1, "p", 15);
|
|
39857
|
+
\u0275\u0275elementStart(4, "label", 16);
|
|
39758
39858
|
\u0275\u0275text(5, "Password");
|
|
39759
39859
|
\u0275\u0275elementEnd();
|
|
39760
|
-
\u0275\u0275elementStart(6, "input",
|
|
39860
|
+
\u0275\u0275elementStart(6, "input", 17);
|
|
39761
39861
|
\u0275\u0275listener("input", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_input_input_6_listener($event) {
|
|
39762
39862
|
\u0275\u0275restoreView(_r2);
|
|
39763
39863
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39764
39864
|
return \u0275\u0275resetView(ctx_r0.password = $event.target.value);
|
|
39765
39865
|
});
|
|
39766
39866
|
\u0275\u0275elementEnd();
|
|
39767
|
-
\u0275\u0275elementStart(7, "label",
|
|
39867
|
+
\u0275\u0275elementStart(7, "label", 18);
|
|
39768
39868
|
\u0275\u0275text(8, "Confirm password");
|
|
39769
39869
|
\u0275\u0275elementEnd();
|
|
39770
|
-
\u0275\u0275elementStart(9, "input",
|
|
39870
|
+
\u0275\u0275elementStart(9, "input", 19);
|
|
39771
39871
|
\u0275\u0275listener("input", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_input_input_9_listener($event) {
|
|
39772
39872
|
\u0275\u0275restoreView(_r2);
|
|
39773
39873
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39774
39874
|
return \u0275\u0275resetView(ctx_r0.passwordConfirmation = $event.target.value);
|
|
39775
39875
|
});
|
|
39776
39876
|
\u0275\u0275elementEnd();
|
|
39777
|
-
\u0275\u0275conditionalCreate(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template, 2, 1, "p",
|
|
39778
|
-
\u0275\u0275elementStart(11, "button",
|
|
39877
|
+
\u0275\u0275conditionalCreate(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template, 2, 1, "p", 20);
|
|
39878
|
+
\u0275\u0275elementStart(11, "button", 21);
|
|
39779
39879
|
\u0275\u0275text(12);
|
|
39780
39880
|
\u0275\u0275elementEnd();
|
|
39781
|
-
\u0275\u0275elementStart(13, "button",
|
|
39881
|
+
\u0275\u0275elementStart(13, "button", 22);
|
|
39782
39882
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_button_click_13_listener() {
|
|
39783
39883
|
\u0275\u0275restoreView(_r2);
|
|
39784
39884
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -39808,7 +39908,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template(rf, c
|
|
|
39808
39908
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template(rf, ctx) {
|
|
39809
39909
|
if (rf & 1) {
|
|
39810
39910
|
const _r4 = \u0275\u0275getCurrentView();
|
|
39811
|
-
\u0275\u0275elementStart(0, "button",
|
|
39911
|
+
\u0275\u0275elementStart(0, "button", 26);
|
|
39812
39912
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template_button_click_0_listener() {
|
|
39813
39913
|
\u0275\u0275restoreView(_r4);
|
|
39814
39914
|
const ctx_r0 = \u0275\u0275nextContext(4);
|
|
@@ -39821,7 +39921,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39821
39921
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template(rf, ctx) {
|
|
39822
39922
|
if (rf & 1) {
|
|
39823
39923
|
const _r3 = \u0275\u0275getCurrentView();
|
|
39824
|
-
\u0275\u0275elementStart(0, "div",
|
|
39924
|
+
\u0275\u0275elementStart(0, "div", 23)(1, "button", 24);
|
|
39825
39925
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template_button_click_1_listener() {
|
|
39826
39926
|
\u0275\u0275restoreView(_r3);
|
|
39827
39927
|
const ctx_r0 = \u0275\u0275nextContext(3);
|
|
@@ -39829,7 +39929,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39829
39929
|
});
|
|
39830
39930
|
\u0275\u0275text(2, "Try again");
|
|
39831
39931
|
\u0275\u0275elementEnd();
|
|
39832
|
-
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template, 2, 0, "button",
|
|
39932
|
+
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template, 2, 0, "button", 25);
|
|
39833
39933
|
\u0275\u0275elementEnd();
|
|
39834
39934
|
}
|
|
39835
39935
|
if (rf & 2) {
|
|
@@ -39840,10 +39940,10 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39840
39940
|
}
|
|
39841
39941
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template(rf, ctx) {
|
|
39842
39942
|
if (rf & 1) {
|
|
39843
|
-
\u0275\u0275elementStart(0, "p",
|
|
39943
|
+
\u0275\u0275elementStart(0, "p", 10);
|
|
39844
39944
|
\u0275\u0275text(1);
|
|
39845
39945
|
\u0275\u0275elementEnd();
|
|
39846
|
-
\u0275\u0275conditionalCreate(2, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template, 4, 1, "div",
|
|
39946
|
+
\u0275\u0275conditionalCreate(2, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template, 4, 1, "div", 23);
|
|
39847
39947
|
}
|
|
39848
39948
|
if (rf & 2) {
|
|
39849
39949
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -39855,18 +39955,18 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template(rf, c
|
|
|
39855
39955
|
}
|
|
39856
39956
|
function CheckoutPublicHostComponent_Conditional_2_Template(rf, ctx) {
|
|
39857
39957
|
if (rf & 1) {
|
|
39858
|
-
\u0275\u0275elementStart(0, "div", 2)(1, "div",
|
|
39958
|
+
\u0275\u0275elementStart(0, "div", 2)(1, "div", 5);
|
|
39859
39959
|
\u0275\u0275text(2, "\u2713");
|
|
39860
39960
|
\u0275\u0275elementEnd();
|
|
39861
|
-
\u0275\u0275elementStart(3, "h1",
|
|
39961
|
+
\u0275\u0275elementStart(3, "h1", 6);
|
|
39862
39962
|
\u0275\u0275text(4, "You're all set");
|
|
39863
39963
|
\u0275\u0275elementEnd();
|
|
39864
|
-
\u0275\u0275elementStart(5, "p",
|
|
39964
|
+
\u0275\u0275elementStart(5, "p", 7);
|
|
39865
39965
|
\u0275\u0275text(6);
|
|
39866
39966
|
\u0275\u0275elementEnd();
|
|
39867
|
-
\u0275\u0275conditionalCreate(7, CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template, 2, 1, "p",
|
|
39868
|
-
\u0275\u0275conditionalCreate(8, CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template, 2, 3, "p",
|
|
39869
|
-
\u0275\u0275conditionalCreate(9, CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template, 2, 0, "p",
|
|
39967
|
+
\u0275\u0275conditionalCreate(7, CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template, 2, 1, "p", 8);
|
|
39968
|
+
\u0275\u0275conditionalCreate(8, CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template, 2, 3, "p", 9);
|
|
39969
|
+
\u0275\u0275conditionalCreate(9, CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template, 2, 0, "p", 10)(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template, 15, 7, "form", 11)(11, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template, 3, 2);
|
|
39870
39970
|
\u0275\u0275elementEnd();
|
|
39871
39971
|
}
|
|
39872
39972
|
if (rf & 2) {
|
|
@@ -39891,7 +39991,7 @@ function CheckoutPublicHostComponent_Conditional_3_Template(rf, ctx) {
|
|
|
39891
39991
|
function CheckoutPublicHostComponent_Conditional_4_For_1_Template(rf, ctx) {
|
|
39892
39992
|
if (rf & 1) {
|
|
39893
39993
|
const _r5 = \u0275\u0275getCurrentView();
|
|
39894
|
-
\u0275\u0275elementStart(0, "mj-checkout-widget",
|
|
39994
|
+
\u0275\u0275elementStart(0, "mj-checkout-widget", 28);
|
|
39895
39995
|
\u0275\u0275listener("promotionCodeApplied", function CheckoutPublicHostComponent_Conditional_4_For_1_Template_mj_checkout_widget_promotionCodeApplied_0_listener($event) {
|
|
39896
39996
|
\u0275\u0275restoreView(_r5);
|
|
39897
39997
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -39918,7 +40018,7 @@ function CheckoutPublicHostComponent_Conditional_4_For_1_Template(rf, ctx) {
|
|
|
39918
40018
|
}
|
|
39919
40019
|
function CheckoutPublicHostComponent_Conditional_4_Template(rf, ctx) {
|
|
39920
40020
|
if (rf & 1) {
|
|
39921
|
-
\u0275\u0275repeaterCreate(0, CheckoutPublicHostComponent_Conditional_4_For_1_Template, 1, 13, "mj-checkout-widget",
|
|
40021
|
+
\u0275\u0275repeaterCreate(0, CheckoutPublicHostComponent_Conditional_4_For_1_Template, 1, 13, "mj-checkout-widget", 27, \u0275\u0275repeaterTrackByIdentity);
|
|
39922
40022
|
}
|
|
39923
40023
|
if (rf & 2) {
|
|
39924
40024
|
const ctx_r0 = \u0275\u0275nextContext();
|
|
@@ -39984,6 +40084,9 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39984
40084
|
return AccessMessage(this.accessState, this.config?.accessMessages);
|
|
39985
40085
|
}
|
|
39986
40086
|
stripe = null;
|
|
40087
|
+
/** Turnstile for a widget that sets `requireTurnstile` (#592); idle until the edge asks for it. */
|
|
40088
|
+
turnstile = new TurnstileWidget(() => this.turnstileContainer());
|
|
40089
|
+
turnstileState = { siteKey: null };
|
|
39987
40090
|
card = null;
|
|
39988
40091
|
cardMounted = false;
|
|
39989
40092
|
destroyed = false;
|
|
@@ -40016,7 +40119,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40016
40119
|
}
|
|
40017
40120
|
this.setState("LOADING");
|
|
40018
40121
|
try {
|
|
40019
|
-
const init = await this.
|
|
40122
|
+
const init = await this.postGated("/initialize", {
|
|
40020
40123
|
slug: this.slug,
|
|
40021
40124
|
clientSessionKey: this.sessionKey
|
|
40022
40125
|
});
|
|
@@ -40038,8 +40141,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40038
40141
|
}
|
|
40039
40142
|
this.config = cfg;
|
|
40040
40143
|
this.setState("CHECKOUT");
|
|
40041
|
-
} catch {
|
|
40042
|
-
this.loadError = "Checkout is temporarily unavailable. Please try again.";
|
|
40144
|
+
} catch (err) {
|
|
40145
|
+
this.loadError = err instanceof TurnstileError ? err.message : "Checkout is temporarily unavailable. Please try again.";
|
|
40043
40146
|
} finally {
|
|
40044
40147
|
if (this.loadError)
|
|
40045
40148
|
this.reportError(this.loadError);
|
|
@@ -40061,6 +40164,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40061
40164
|
}
|
|
40062
40165
|
ngOnDestroy() {
|
|
40063
40166
|
this.destroyed = true;
|
|
40167
|
+
this.turnstile.Destroy();
|
|
40064
40168
|
this.hostEl?.nativeElement?.removeEventListener?.(CHECKOUT_RESET_REQUEST_EVENT, this.onResetRequested);
|
|
40065
40169
|
try {
|
|
40066
40170
|
this.card?.unmount?.();
|
|
@@ -40317,7 +40421,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40317
40421
|
}
|
|
40318
40422
|
async finish() {
|
|
40319
40423
|
this.rememberCompleting(this.sessionId);
|
|
40320
|
-
const done = await this.
|
|
40424
|
+
const done = await this.postGated("/complete", {
|
|
40321
40425
|
sessionId: this.sessionId,
|
|
40322
40426
|
clientSessionKey: this.sessionKey
|
|
40323
40427
|
});
|
|
@@ -40333,8 +40437,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40333
40437
|
productId: this.config?.productId,
|
|
40334
40438
|
totalGross: done.TotalGross,
|
|
40335
40439
|
currency: this.config?.currency,
|
|
40336
|
-
|
|
40337
|
-
coupon: null
|
|
40440
|
+
coupon: this.appliedPromotion?.code ?? null
|
|
40338
40441
|
}));
|
|
40339
40442
|
this.cdr.detectChanges();
|
|
40340
40443
|
const access = this.trackAccess();
|
|
@@ -40658,23 +40761,43 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40658
40761
|
json._httpStatus = res.status;
|
|
40659
40762
|
return json;
|
|
40660
40763
|
}
|
|
40764
|
+
/** `/initialize` and `/complete`: sends a Turnstile token when the widget requires one. */
|
|
40765
|
+
postGated(path, body) {
|
|
40766
|
+
return PostWithTurnstile((p, b) => this.post(p, b), path, body, (siteKey) => this.turnstile.Token(siteKey), this.turnstileState);
|
|
40767
|
+
}
|
|
40768
|
+
/** Where Turnstile renders: outside the template's state branches, so it survives every redraw. */
|
|
40769
|
+
turnstileContainer() {
|
|
40770
|
+
const el = this.hostEl?.nativeElement;
|
|
40771
|
+
if (!el) {
|
|
40772
|
+
return null;
|
|
40773
|
+
}
|
|
40774
|
+
const existing = el.querySelector(".mj-checkout-public__turnstile");
|
|
40775
|
+
if (existing) {
|
|
40776
|
+
return existing;
|
|
40777
|
+
}
|
|
40778
|
+
const created = document.createElement("div");
|
|
40779
|
+
created.className = "mj-checkout-public__turnstile";
|
|
40780
|
+
el.appendChild(created);
|
|
40781
|
+
return created;
|
|
40782
|
+
}
|
|
40661
40783
|
str(value, fallback = "") {
|
|
40662
40784
|
return typeof value === "string" && value ? value : fallback;
|
|
40663
40785
|
}
|
|
40664
40786
|
static \u0275fac = function CheckoutPublicHostComponent_Factory(__ngFactoryType__) {
|
|
40665
40787
|
return new (__ngFactoryType__ || _CheckoutPublicHostComponent)();
|
|
40666
40788
|
};
|
|
40667
|
-
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CheckoutPublicHostComponent, selectors: [["mj-orders-checkout"]], inputs: { slug: "slug", apiRoot: "apiRoot", memberToken: "memberToken" }, outputs: { alreadySubscribed: "checkout-already-subscribed" }, decls:
|
|
40789
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CheckoutPublicHostComponent, selectors: [["mj-orders-checkout"]], inputs: { slug: "slug", apiRoot: "apiRoot", memberToken: "memberToken" }, outputs: { alreadySubscribed: "checkout-already-subscribed" }, decls: 6, vars: 1, consts: [[1, "mj-checkout-public"], ["role", "alert", 1, "mj-widget-error-banner"], ["role", "status", 1, "mj-checkout-success"], ["role", "status", 1, "mj-checkout-public__status"], [1, "mj-checkout-public__turnstile"], ["aria-hidden", "true", 1, "mj-checkout-success__icon"], [1, "mj-checkout-success__title"], [1, "mj-checkout-success__msg"], [1, "mj-checkout-success__order"], ["role", "status", 1, "mj-checkout-success__access", 3, "is-failed"], ["role", "status", 1, "mj-checkout-account__msg"], [1, "mj-checkout-account"], ["role", "status", 1, "mj-checkout-success__access"], [1, "mj-checkout-account", 3, "submit"], [1, "mj-checkout-account__title"], [1, "mj-checkout-account__note"], ["for", "mj-checkout-password", 1, "mj-checkout-account__label"], ["id", "mj-checkout-password", "type", "password", "autocomplete", "new-password", 1, "mj-checkout-account__input", 3, "input", "value"], ["for", "mj-checkout-password-confirm", 1, "mj-checkout-account__label"], ["id", "mj-checkout-password-confirm", "type", "password", "autocomplete", "new-password", 1, "mj-checkout-account__input", 3, "input", "value"], ["role", "alert", 1, "mj-checkout-account__error"], ["type", "submit", 1, "mj-checkout-account__submit", 3, "disabled"], ["type", "button", 1, "mj-checkout-account__skip", 3, "click", "disabled"], [1, "mj-checkout-account", "mj-checkout-account--actions"], ["type", "button", 1, "mj-checkout-account__submit", 3, "click"], ["type", "button", 1, "mj-checkout-account__skip"], ["type", "button", 1, "mj-checkout-account__skip", 3, "click"], [3, "config", "distributionSlug", "sessionKey", "isProcessing", "isPaymentReady", "stripePaymentMethodId", "prefillEmail", "errorMessage", "appliedPromotion", "serverPricedTotal", "promotionError", "quotedTotal", "quotedTax"], [3, "promotionCodeApplied", "submitted", "cancelled", "quoteInvalidated", "config", "distributionSlug", "sessionKey", "isProcessing", "isPaymentReady", "stripePaymentMethodId", "prefillEmail", "errorMessage", "appliedPromotion", "serverPricedTotal", "promotionError", "quotedTotal", "quotedTax"]], template: function CheckoutPublicHostComponent_Template(rf, ctx) {
|
|
40668
40790
|
if (rf & 1) {
|
|
40669
40791
|
\u0275\u0275elementStart(0, "div", 0);
|
|
40670
40792
|
\u0275\u0275conditionalCreate(1, CheckoutPublicHostComponent_Conditional_1_Template, 2, 1, "div", 1)(2, CheckoutPublicHostComponent_Conditional_2_Template, 12, 4, "div", 2)(3, CheckoutPublicHostComponent_Conditional_3_Template, 2, 0, "p", 3)(4, CheckoutPublicHostComponent_Conditional_4_Template, 2, 2);
|
|
40793
|
+
\u0275\u0275element(5, "div", 4);
|
|
40671
40794
|
\u0275\u0275elementEnd();
|
|
40672
40795
|
}
|
|
40673
40796
|
if (rf & 2) {
|
|
40674
40797
|
\u0275\u0275advance();
|
|
40675
40798
|
\u0275\u0275conditional(ctx.loadError ? 1 : ctx.successMessage ? 2 : !ctx.config ? 3 : 4);
|
|
40676
40799
|
}
|
|
40677
|
-
}, dependencies: [CommonModule, MJCheckoutWidgetComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n}\n\n.mj-checkout-public[_ngcontent-%COMP%] {\n max-width: 580px;\n margin: 0 auto;\n}\n\n.mj-checkout-public__status[_ngcontent-%COMP%] {\n text-align: center;\n color: #64748b;\n font-size: 0.95rem;\n padding: 2rem 0;\n}\n\n.mj-widget-error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #fef2f2;\n border: 1px solid #f87171;\n color: #991b1b;\n padding: 10px 14px;\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.mj-checkout-success[_ngcontent-%COMP%] {\n text-align: center;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n padding: 2rem 1.5rem;\n box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);\n}\n\n.mj-checkout-success__icon[_ngcontent-%COMP%] {\n width: 3rem;\n height: 3rem;\n margin: 0 auto 1rem;\n border-radius: 50%;\n background: #dcfce7;\n color: #16a34a;\n font-size: 1.5rem;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-checkout-success__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n}\n\n.mj-checkout-success__msg[_ngcontent-%COMP%], \n.mj-checkout-success__order[_ngcontent-%COMP%] {\n margin: 0;\n color: #64748b;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-success__order[_ngcontent-%COMP%] {\n margin-top: 0.75rem;\n font-weight: 600;\n color: #334155;\n}\n\n\n\n.mj-checkout-success__access[_ngcontent-%COMP%] {\n margin: 0.75rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n}\n\n.mj-checkout-success__access.is-failed[_ngcontent-%COMP%] {\n color: #991b1b;\n}\n\n\n\n.mj-checkout-account[_ngcontent-%COMP%] {\n margin: 1.5rem auto 0;\n max-width: 320px;\n text-align: left;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.mj-checkout-account__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n font-size: 1.05rem;\n font-weight: 700;\n color: #0f172a;\n text-align: center;\n}\n\n.mj-checkout-account__label[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 600;\n color: #334155;\n}\n\n.mj-checkout-account__input[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border: 1px solid #cbd5e1;\n border-radius: 6px;\n font-size: 0.95rem;\n font-family: inherit;\n}\n\n.mj-checkout-account__input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n.mj-checkout-account__error[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n color: #991b1b;\n font-size: 0.85rem;\n}\n\n.mj-checkout-account__submit[_ngcontent-%COMP%] {\n margin-top: 10px;\n padding: 10px;\n border: 0;\n border-radius: 6px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-weight: 600;\n cursor: pointer;\n}\n\n.mj-checkout-account__skip[_ngcontent-%COMP%] {\n padding: 6px;\n border: 0;\n background: none;\n color: #64748b;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.mj-checkout-account__submit[_ngcontent-%COMP%]:disabled, \n.mj-checkout-account__skip[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mj-checkout-account__msg[_ngcontent-%COMP%] {\n margin: 1rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-account__note[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n color: #475569;\n font-size: 0.85rem;\n line-height: 1.45;\n text-align: center;\n}\n\n.mj-checkout-account--actions[_ngcontent-%COMP%] {\n margin-top: 0.75rem;\n}"] });
|
|
40800
|
+
}, dependencies: [CommonModule, MJCheckoutWidgetComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n}\n\n.mj-checkout-public[_ngcontent-%COMP%] {\n max-width: 580px;\n margin: 0 auto;\n}\n\n.mj-checkout-public__status[_ngcontent-%COMP%] {\n text-align: center;\n color: #64748b;\n font-size: 0.95rem;\n padding: 2rem 0;\n}\n\n.mj-widget-error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #fef2f2;\n border: 1px solid #f87171;\n color: #991b1b;\n padding: 10px 14px;\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.mj-checkout-success[_ngcontent-%COMP%] {\n text-align: center;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n padding: 2rem 1.5rem;\n box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);\n}\n\n.mj-checkout-success__icon[_ngcontent-%COMP%] {\n width: 3rem;\n height: 3rem;\n margin: 0 auto 1rem;\n border-radius: 50%;\n background: #dcfce7;\n color: #16a34a;\n font-size: 1.5rem;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-checkout-success__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n}\n\n.mj-checkout-success__msg[_ngcontent-%COMP%], \n.mj-checkout-success__order[_ngcontent-%COMP%] {\n margin: 0;\n color: #64748b;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-success__order[_ngcontent-%COMP%] {\n margin-top: 0.75rem;\n font-weight: 600;\n color: #334155;\n}\n\n\n\n.mj-checkout-success__access[_ngcontent-%COMP%] {\n margin: 0.75rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n}\n\n.mj-checkout-success__access.is-failed[_ngcontent-%COMP%] {\n color: #991b1b;\n}\n\n\n\n.mj-checkout-account[_ngcontent-%COMP%] {\n margin: 1.5rem auto 0;\n max-width: 320px;\n text-align: left;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.mj-checkout-account__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n font-size: 1.05rem;\n font-weight: 700;\n color: #0f172a;\n text-align: center;\n}\n\n.mj-checkout-account__label[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 600;\n color: #334155;\n}\n\n.mj-checkout-account__input[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border: 1px solid #cbd5e1;\n border-radius: 6px;\n font-size: 0.95rem;\n font-family: inherit;\n}\n\n.mj-checkout-account__input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n.mj-checkout-account__error[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n color: #991b1b;\n font-size: 0.85rem;\n}\n\n.mj-checkout-account__submit[_ngcontent-%COMP%] {\n margin-top: 10px;\n padding: 10px;\n border: 0;\n border-radius: 6px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-weight: 600;\n cursor: pointer;\n}\n\n.mj-checkout-account__skip[_ngcontent-%COMP%] {\n padding: 6px;\n border: 0;\n background: none;\n color: #64748b;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.mj-checkout-account__submit[_ngcontent-%COMP%]:disabled, \n.mj-checkout-account__skip[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mj-checkout-account__msg[_ngcontent-%COMP%] {\n margin: 1rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-account__note[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n color: #475569;\n font-size: 0.85rem;\n line-height: 1.45;\n text-align: center;\n}\n\n.mj-checkout-account--actions[_ngcontent-%COMP%] {\n margin-top: 0.75rem;\n}\n\n\n\n.mj-checkout-public__turnstile[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n margin-top: 0.75rem;\n}"] });
|
|
40678
40801
|
};
|
|
40679
40802
|
(() => {
|
|
40680
40803
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(CheckoutPublicHostComponent, [{
|
|
@@ -40764,8 +40887,9 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40764
40887
|
</mj-checkout-widget>
|
|
40765
40888
|
}
|
|
40766
40889
|
}
|
|
40890
|
+
<div class="mj-checkout-public__turnstile"></div>
|
|
40767
40891
|
</div>
|
|
40768
|
-
`, styles: [":host {\n display: block;\n}\n\n.mj-checkout-public {\n max-width: 580px;\n margin: 0 auto;\n}\n\n.mj-checkout-public__status {\n text-align: center;\n color: #64748b;\n font-size: 0.95rem;\n padding: 2rem 0;\n}\n\n.mj-widget-error-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #fef2f2;\n border: 1px solid #f87171;\n color: #991b1b;\n padding: 10px 14px;\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.mj-checkout-success {\n text-align: center;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n padding: 2rem 1.5rem;\n box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);\n}\n\n.mj-checkout-success__icon {\n width: 3rem;\n height: 3rem;\n margin: 0 auto 1rem;\n border-radius: 50%;\n background: #dcfce7;\n color: #16a34a;\n font-size: 1.5rem;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-checkout-success__title {\n margin: 0 0 0.5rem;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n}\n\n.mj-checkout-success__msg,\n.mj-checkout-success__order {\n margin: 0;\n color: #64748b;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-success__order {\n margin-top: 0.75rem;\n font-weight: 600;\n color: #334155;\n}\n\n/* Whether the buyer's access is ready yet (#325). */\n.mj-checkout-success__access {\n margin: 0.75rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n}\n\n.mj-checkout-success__access.is-failed {\n color: #991b1b;\n}\n\n/* Post-payment account step: set a password for the account the host created (#292). */\n.mj-checkout-account {\n margin: 1.5rem auto 0;\n max-width: 320px;\n text-align: left;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.mj-checkout-account__title {\n margin: 0 0 0.5rem;\n font-size: 1.05rem;\n font-weight: 700;\n color: #0f172a;\n text-align: center;\n}\n\n.mj-checkout-account__label {\n font-size: 0.85rem;\n font-weight: 600;\n color: #334155;\n}\n\n.mj-checkout-account__input {\n padding: 8px 10px;\n border: 1px solid #cbd5e1;\n border-radius: 6px;\n font-size: 0.95rem;\n font-family: inherit;\n}\n\n.mj-checkout-account__input:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n.mj-checkout-account__error {\n margin: 4px 0 0;\n color: #991b1b;\n font-size: 0.85rem;\n}\n\n.mj-checkout-account__submit {\n margin-top: 10px;\n padding: 10px;\n border: 0;\n border-radius: 6px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-weight: 600;\n cursor: pointer;\n}\n\n.mj-checkout-account__skip {\n padding: 6px;\n border: 0;\n background: none;\n color: #64748b;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.mj-checkout-account__submit:disabled,\n.mj-checkout-account__skip:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mj-checkout-account__msg {\n margin: 1rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-account__note {\n margin: 0 0 0.5rem;\n color: #475569;\n font-size: 0.85rem;\n line-height: 1.45;\n text-align: center;\n}\n\n.mj-checkout-account--actions {\n margin-top: 0.75rem;\n}\n"] }]
|
|
40892
|
+
`, styles: [":host {\n display: block;\n}\n\n.mj-checkout-public {\n max-width: 580px;\n margin: 0 auto;\n}\n\n.mj-checkout-public__status {\n text-align: center;\n color: #64748b;\n font-size: 0.95rem;\n padding: 2rem 0;\n}\n\n.mj-widget-error-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #fef2f2;\n border: 1px solid #f87171;\n color: #991b1b;\n padding: 10px 14px;\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.mj-checkout-success {\n text-align: center;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n padding: 2rem 1.5rem;\n box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);\n}\n\n.mj-checkout-success__icon {\n width: 3rem;\n height: 3rem;\n margin: 0 auto 1rem;\n border-radius: 50%;\n background: #dcfce7;\n color: #16a34a;\n font-size: 1.5rem;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-checkout-success__title {\n margin: 0 0 0.5rem;\n font-size: 1.5rem;\n font-weight: 800;\n color: #0f172a;\n}\n\n.mj-checkout-success__msg,\n.mj-checkout-success__order {\n margin: 0;\n color: #64748b;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-success__order {\n margin-top: 0.75rem;\n font-weight: 600;\n color: #334155;\n}\n\n/* Whether the buyer's access is ready yet (#325). */\n.mj-checkout-success__access {\n margin: 0.75rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n}\n\n.mj-checkout-success__access.is-failed {\n color: #991b1b;\n}\n\n/* Post-payment account step: set a password for the account the host created (#292). */\n.mj-checkout-account {\n margin: 1.5rem auto 0;\n max-width: 320px;\n text-align: left;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.mj-checkout-account__title {\n margin: 0 0 0.5rem;\n font-size: 1.05rem;\n font-weight: 700;\n color: #0f172a;\n text-align: center;\n}\n\n.mj-checkout-account__label {\n font-size: 0.85rem;\n font-weight: 600;\n color: #334155;\n}\n\n.mj-checkout-account__input {\n padding: 8px 10px;\n border: 1px solid #cbd5e1;\n border-radius: 6px;\n font-size: 0.95rem;\n font-family: inherit;\n}\n\n.mj-checkout-account__input:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n.mj-checkout-account__error {\n margin: 4px 0 0;\n color: #991b1b;\n font-size: 0.85rem;\n}\n\n.mj-checkout-account__submit {\n margin-top: 10px;\n padding: 10px;\n border: 0;\n border-radius: 6px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-weight: 600;\n cursor: pointer;\n}\n\n.mj-checkout-account__skip {\n padding: 6px;\n border: 0;\n background: none;\n color: #64748b;\n font-size: 0.85rem;\n cursor: pointer;\n}\n\n.mj-checkout-account__submit:disabled,\n.mj-checkout-account__skip:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.mj-checkout-account__msg {\n margin: 1rem 0 0;\n color: #334155;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-account__note {\n margin: 0 0 0.5rem;\n color: #475569;\n font-size: 0.85rem;\n line-height: 1.45;\n text-align: center;\n}\n\n.mj-checkout-account--actions {\n margin-top: 0.75rem;\n}\n\n/* Cloudflare Turnstile renders here only when it needs the buyer to interact (#592). */\n.mj-checkout-public__turnstile {\n display: flex;\n justify-content: center;\n margin-top: 0.75rem;\n}\n"] }]
|
|
40769
40893
|
}], null, { slug: [{
|
|
40770
40894
|
type: Input
|
|
40771
40895
|
}], apiRoot: [{
|
|
@@ -40778,7 +40902,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40778
40902
|
}] });
|
|
40779
40903
|
})();
|
|
40780
40904
|
(() => {
|
|
40781
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CheckoutPublicHostComponent, { className: "CheckoutPublicHostComponent", filePath: "lib/checkout-widget/checkout-public-host.component.ts", lineNumber:
|
|
40905
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CheckoutPublicHostComponent, { className: "CheckoutPublicHostComponent", filePath: "lib/checkout-widget/checkout-public-host.component.ts", lineNumber: 110 });
|
|
40782
40906
|
})();
|
|
40783
40907
|
|
|
40784
40908
|
// scripts/checkout-element-entry.ts
|
|
@@ -104,6 +104,9 @@ export declare class CheckoutPublicHostComponent implements OnInit, AfterViewChe
|
|
|
104
104
|
private accessTracking;
|
|
105
105
|
get accessMessage(): string | null;
|
|
106
106
|
private stripe;
|
|
107
|
+
/** Turnstile for a widget that sets `requireTurnstile` (#592); idle until the edge asks for it. */
|
|
108
|
+
private readonly turnstile;
|
|
109
|
+
private readonly turnstileState;
|
|
107
110
|
private card;
|
|
108
111
|
private cardMounted;
|
|
109
112
|
private destroyed;
|
|
@@ -213,6 +216,10 @@ export declare class CheckoutPublicHostComponent implements OnInit, AfterViewChe
|
|
|
213
216
|
private forgetCompleting;
|
|
214
217
|
private completingSession;
|
|
215
218
|
private post;
|
|
219
|
+
/** `/initialize` and `/complete`: sends a Turnstile token when the widget requires one. */
|
|
220
|
+
private postGated;
|
|
221
|
+
/** Where Turnstile renders: outside the template's state branches, so it survives every redraw. */
|
|
222
|
+
private turnstileContainer;
|
|
216
223
|
private str;
|
|
217
224
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckoutPublicHostComponent, never>;
|
|
218
225
|
static ɵcmp: i0.ɵɵComponentDeclaration<CheckoutPublicHostComponent, "mj-orders-checkout", never, { "slug": { "alias": "slug"; "required": false; }; "apiRoot": { "alias": "apiRoot"; "required": false; }; "memberToken": { "alias": "memberToken"; "required": false; }; }, { "alreadySubscribed": "checkout-already-subscribed"; }, never, never, true, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-public-host.component.d.ts","sourceRoot":"","sources":["../../../src/lib/checkout-widget/checkout-public-host.component.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACH,gBAAgB,EAIhB,YAAY,EAEZ,SAAS,EACT,MAAM,EAGT,MAAM,eAAe,CAAC;AAGvB,OAAO,EAQH,KAAK,mBAAmB,EAC3B,MAAM,oBAAoB,CAAC;AAa5B,OAAO,EAOH,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAIH,KAAK,+BAA+B,EAIvC,MAAM,uBAAuB,CAAC;;
|
|
1
|
+
{"version":3,"file":"checkout-public-host.component.d.ts","sourceRoot":"","sources":["../../../src/lib/checkout-widget/checkout-public-host.component.ts"],"names":[],"mappings":"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"}
|