@mj-biz-apps/orders-ng 5.36.0 → 5.37.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/dist/checkout-element/main.js +491 -154
- package/dist/lib/checkout-widget/checkout-complete.d.ts +53 -0
- package/dist/lib/checkout-widget/checkout-complete.d.ts.map +1 -0
- package/dist/lib/checkout-widget/checkout-complete.js +92 -0
- package/dist/lib/checkout-widget/checkout-complete.js.map +1 -0
- package/dist/lib/checkout-widget/checkout-draft-line.d.ts +7 -1
- package/dist/lib/checkout-widget/checkout-draft-line.d.ts.map +1 -1
- package/dist/lib/checkout-widget/checkout-draft-line.js +18 -0
- package/dist/lib/checkout-widget/checkout-draft-line.js.map +1 -1
- package/dist/lib/checkout-widget/checkout-public-host.component.d.ts +56 -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 +245 -113
- package/dist/lib/checkout-widget/checkout-public-host.component.js.map +1 -1
- package/dist/lib/checkout-widget/checkout-widget.component.d.ts +35 -2
- package/dist/lib/checkout-widget/checkout-widget.component.d.ts.map +1 -1
- package/dist/lib/checkout-widget/checkout-widget.component.js +145 -45
- package/dist/lib/checkout-widget/checkout-widget.component.js.map +1 -1
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts +7 -0
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts.map +1 -1
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js +23 -22
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js.map +1 -1
- package/dist/lib/data/orders-queries.d.ts +3 -1
- package/dist/lib/data/orders-queries.d.ts.map +1 -1
- package/dist/lib/data/orders-queries.js.map +1 -1
- package/package.json +2 -2
|
@@ -37189,7 +37189,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Conditional_3_Template(r
|
|
|
37189
37189
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_4_Template(rf, ctx) {
|
|
37190
37190
|
if (rf & 1) {
|
|
37191
37191
|
const _r3 = \u0275\u0275getCurrentView();
|
|
37192
|
-
\u0275\u0275elementStart(0, "textarea",
|
|
37192
|
+
\u0275\u0275elementStart(0, "textarea", 37);
|
|
37193
37193
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_4_Template_textarea_ngModelChange_0_listener($event) {
|
|
37194
37194
|
\u0275\u0275restoreView(_r3);
|
|
37195
37195
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37222,7 +37222,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_For_4_Template(rf
|
|
|
37222
37222
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_Template(rf, ctx) {
|
|
37223
37223
|
if (rf & 1) {
|
|
37224
37224
|
const _r5 = \u0275\u0275getCurrentView();
|
|
37225
|
-
\u0275\u0275elementStart(0, "select",
|
|
37225
|
+
\u0275\u0275elementStart(0, "select", 38);
|
|
37226
37226
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_Template_select_ngModelChange_0_listener($event) {
|
|
37227
37227
|
\u0275\u0275restoreView(_r5);
|
|
37228
37228
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37251,7 +37251,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_Template(rf, ctx)
|
|
|
37251
37251
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_6_Template(rf, ctx) {
|
|
37252
37252
|
if (rf & 1) {
|
|
37253
37253
|
const _r7 = \u0275\u0275getCurrentView();
|
|
37254
|
-
\u0275\u0275elementStart(0, "label", 34)(1, "input",
|
|
37254
|
+
\u0275\u0275elementStart(0, "label", 34)(1, "input", 39);
|
|
37255
37255
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_6_Template_input_ngModelChange_1_listener($event) {
|
|
37256
37256
|
\u0275\u0275restoreView(_r7);
|
|
37257
37257
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37276,7 +37276,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_6_Template(rf, ctx)
|
|
|
37276
37276
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_7_Template(rf, ctx) {
|
|
37277
37277
|
if (rf & 1) {
|
|
37278
37278
|
const _r8 = \u0275\u0275getCurrentView();
|
|
37279
|
-
\u0275\u0275elementStart(0, "input",
|
|
37279
|
+
\u0275\u0275elementStart(0, "input", 40);
|
|
37280
37280
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_7_Template_input_ngModelChange_0_listener($event) {
|
|
37281
37281
|
\u0275\u0275restoreView(_r8);
|
|
37282
37282
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37295,7 +37295,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_7_Template(rf, ctx)
|
|
|
37295
37295
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_8_Template(rf, ctx) {
|
|
37296
37296
|
if (rf & 1) {
|
|
37297
37297
|
const _r9 = \u0275\u0275getCurrentView();
|
|
37298
|
-
\u0275\u0275elementStart(0, "input",
|
|
37298
|
+
\u0275\u0275elementStart(0, "input", 41);
|
|
37299
37299
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_8_Template_input_ngModelChange_0_listener($event) {
|
|
37300
37300
|
\u0275\u0275restoreView(_r9);
|
|
37301
37301
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37311,10 +37311,17 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_8_Template(rf, ctx)
|
|
|
37311
37311
|
\u0275\u0275property("ngModel", (tmp_12_0 = ctx_r0.units()[0]) == null ? null : tmp_12_0[field_r4.name])("required", field_r4.required || false);
|
|
37312
37312
|
}
|
|
37313
37313
|
}
|
|
37314
|
+
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Conditional_1_Template(rf, ctx) {
|
|
37315
|
+
if (rf & 1) {
|
|
37316
|
+
\u0275\u0275elementStart(0, "p", 43);
|
|
37317
|
+
\u0275\u0275text(1, "Your member discount is tied to this verified e-mail.");
|
|
37318
|
+
\u0275\u0275elementEnd();
|
|
37319
|
+
}
|
|
37320
|
+
}
|
|
37314
37321
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Template(rf, ctx) {
|
|
37315
37322
|
if (rf & 1) {
|
|
37316
37323
|
const _r10 = \u0275\u0275getCurrentView();
|
|
37317
|
-
\u0275\u0275elementStart(0, "input",
|
|
37324
|
+
\u0275\u0275elementStart(0, "input", 42);
|
|
37318
37325
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Template_input_ngModelChange_0_listener($event) {
|
|
37319
37326
|
\u0275\u0275restoreView(_r10);
|
|
37320
37327
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
@@ -37322,12 +37329,15 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Template(rf, ctx)
|
|
|
37322
37329
|
return \u0275\u0275resetView(ctx_r0.updateUnitField(0, field_r4.name, $event));
|
|
37323
37330
|
});
|
|
37324
37331
|
\u0275\u0275elementEnd();
|
|
37332
|
+
\u0275\u0275conditionalCreate(1, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Conditional_1_Template, 2, 0, "p", 43);
|
|
37325
37333
|
}
|
|
37326
37334
|
if (rf & 2) {
|
|
37327
37335
|
let tmp_13_0;
|
|
37328
37336
|
const field_r4 = \u0275\u0275nextContext().$implicit;
|
|
37329
37337
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
37330
|
-
\u0275\u0275property("type", field_r4.name.toLowerCase().includes("email") ? "email" : "text")("ngModel", (tmp_13_0 = ctx_r0.units()[0]) == null ? null : tmp_13_0[field_r4.name])("placeholder", field_r4.placeholder || "")("required", field_r4.required || false);
|
|
37338
|
+
\u0275\u0275property("type", field_r4.name.toLowerCase().includes("email") ? "email" : "text")("ngModel", (tmp_13_0 = ctx_r0.units()[0]) == null ? null : tmp_13_0[field_r4.name])("placeholder", field_r4.placeholder || "")("readonly", ctx_r0.isLockedEmail(0, field_r4.name))("required", field_r4.required || false);
|
|
37339
|
+
\u0275\u0275advance();
|
|
37340
|
+
\u0275\u0275conditional(ctx_r0.isLockedEmail(0, field_r4.name) ? 1 : -1);
|
|
37331
37341
|
}
|
|
37332
37342
|
}
|
|
37333
37343
|
function MJCheckoutWidgetComponent_Conditional_17_For_4_Template(rf, ctx) {
|
|
@@ -37336,7 +37346,7 @@ function MJCheckoutWidgetComponent_Conditional_17_For_4_Template(rf, ctx) {
|
|
|
37336
37346
|
\u0275\u0275text(2);
|
|
37337
37347
|
\u0275\u0275conditionalCreate(3, MJCheckoutWidgetComponent_Conditional_17_For_4_Conditional_3_Template, 2, 0, "span", 19);
|
|
37338
37348
|
\u0275\u0275elementEnd();
|
|
37339
|
-
\u0275\u0275conditionalCreate(4, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_4_Template, 2, 3, "textarea", 32)(5, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_Template, 5, 4, "select", 33)(6, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_6_Template, 4, 2, "label", 34)(7, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_7_Template, 1, 3, "input", 35)(8, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_8_Template, 1, 2, "input", 36)(9, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Template,
|
|
37349
|
+
\u0275\u0275conditionalCreate(4, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_4_Template, 2, 3, "textarea", 32)(5, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_5_Template, 5, 4, "select", 33)(6, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_6_Template, 4, 2, "label", 34)(7, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_7_Template, 1, 3, "input", 35)(8, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_8_Template, 1, 2, "input", 36)(9, MJCheckoutWidgetComponent_Conditional_17_For_4_Case_9_Template, 2, 6);
|
|
37340
37350
|
\u0275\u0275elementEnd();
|
|
37341
37351
|
}
|
|
37342
37352
|
if (rf & 2) {
|
|
@@ -37376,7 +37386,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Conditional_3_Temp
|
|
|
37376
37386
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_4_Template(rf, ctx) {
|
|
37377
37387
|
if (rf & 1) {
|
|
37378
37388
|
const _r12 = \u0275\u0275getCurrentView();
|
|
37379
|
-
\u0275\u0275elementStart(0, "textarea",
|
|
37389
|
+
\u0275\u0275elementStart(0, "textarea", 37);
|
|
37380
37390
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_4_Template_textarea_ngModelChange_0_listener($event) {
|
|
37381
37391
|
\u0275\u0275restoreView(_r12);
|
|
37382
37392
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37410,7 +37420,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_For_4_Templ
|
|
|
37410
37420
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_Template(rf, ctx) {
|
|
37411
37421
|
if (rf & 1) {
|
|
37412
37422
|
const _r17 = \u0275\u0275getCurrentView();
|
|
37413
|
-
\u0275\u0275elementStart(0, "select",
|
|
37423
|
+
\u0275\u0275elementStart(0, "select", 38);
|
|
37414
37424
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_Template_select_ngModelChange_0_listener($event) {
|
|
37415
37425
|
\u0275\u0275restoreView(_r17);
|
|
37416
37426
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37440,7 +37450,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_Template(rf
|
|
|
37440
37450
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_6_Template(rf, ctx) {
|
|
37441
37451
|
if (rf & 1) {
|
|
37442
37452
|
const _r19 = \u0275\u0275getCurrentView();
|
|
37443
|
-
\u0275\u0275elementStart(0, "label", 34)(1, "input",
|
|
37453
|
+
\u0275\u0275elementStart(0, "label", 34)(1, "input", 39);
|
|
37444
37454
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_6_Template_input_ngModelChange_1_listener($event) {
|
|
37445
37455
|
\u0275\u0275restoreView(_r19);
|
|
37446
37456
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37466,7 +37476,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_6_Template(rf
|
|
|
37466
37476
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_7_Template(rf, ctx) {
|
|
37467
37477
|
if (rf & 1) {
|
|
37468
37478
|
const _r20 = \u0275\u0275getCurrentView();
|
|
37469
|
-
\u0275\u0275elementStart(0, "input",
|
|
37479
|
+
\u0275\u0275elementStart(0, "input", 40);
|
|
37470
37480
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_7_Template_input_ngModelChange_0_listener($event) {
|
|
37471
37481
|
\u0275\u0275restoreView(_r20);
|
|
37472
37482
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37486,7 +37496,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_7_Template(rf
|
|
|
37486
37496
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_8_Template(rf, ctx) {
|
|
37487
37497
|
if (rf & 1) {
|
|
37488
37498
|
const _r21 = \u0275\u0275getCurrentView();
|
|
37489
|
-
\u0275\u0275elementStart(0, "input",
|
|
37499
|
+
\u0275\u0275elementStart(0, "input", 41);
|
|
37490
37500
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_8_Template_input_ngModelChange_0_listener($event) {
|
|
37491
37501
|
\u0275\u0275restoreView(_r21);
|
|
37492
37502
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37503,10 +37513,17 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_8_Template(rf
|
|
|
37503
37513
|
\u0275\u0275property("ngModel", unit_r16[field_r14.name])("required", field_r14.required || false);
|
|
37504
37514
|
}
|
|
37505
37515
|
}
|
|
37516
|
+
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Conditional_1_Template(rf, ctx) {
|
|
37517
|
+
if (rf & 1) {
|
|
37518
|
+
\u0275\u0275elementStart(0, "p", 43);
|
|
37519
|
+
\u0275\u0275text(1, "Your member discount is tied to this verified e-mail.");
|
|
37520
|
+
\u0275\u0275elementEnd();
|
|
37521
|
+
}
|
|
37522
|
+
}
|
|
37506
37523
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Template(rf, ctx) {
|
|
37507
37524
|
if (rf & 1) {
|
|
37508
37525
|
const _r22 = \u0275\u0275getCurrentView();
|
|
37509
|
-
\u0275\u0275elementStart(0, "input",
|
|
37526
|
+
\u0275\u0275elementStart(0, "input", 42);
|
|
37510
37527
|
\u0275\u0275listener("ngModelChange", function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Template_input_ngModelChange_0_listener($event) {
|
|
37511
37528
|
\u0275\u0275restoreView(_r22);
|
|
37512
37529
|
const ctx_r12 = \u0275\u0275nextContext();
|
|
@@ -37516,11 +37533,17 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Template(rf
|
|
|
37516
37533
|
return \u0275\u0275resetView(ctx_r0.updateUnitField($index_r15, field_r14.name, $event));
|
|
37517
37534
|
});
|
|
37518
37535
|
\u0275\u0275elementEnd();
|
|
37536
|
+
\u0275\u0275conditionalCreate(1, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Conditional_1_Template, 2, 0, "p", 43);
|
|
37519
37537
|
}
|
|
37520
37538
|
if (rf & 2) {
|
|
37521
|
-
const
|
|
37539
|
+
const ctx_r12 = \u0275\u0275nextContext();
|
|
37540
|
+
const field_r14 = ctx_r12.$implicit;
|
|
37541
|
+
const $index_r15 = ctx_r12.$index;
|
|
37522
37542
|
const unit_r16 = \u0275\u0275nextContext().$implicit;
|
|
37523
|
-
\u0275\
|
|
37543
|
+
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
37544
|
+
\u0275\u0275property("type", field_r14.name.toLowerCase().includes("email") ? "email" : "text")("ngModel", unit_r16[field_r14.name])("placeholder", field_r14.placeholder || "")("readonly", ctx_r0.isLockedEmail($index_r15, field_r14.name))("required", field_r14.required || false);
|
|
37545
|
+
\u0275\u0275advance();
|
|
37546
|
+
\u0275\u0275conditional(ctx_r0.isLockedEmail($index_r15, field_r14.name) ? 1 : -1);
|
|
37524
37547
|
}
|
|
37525
37548
|
}
|
|
37526
37549
|
function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Template(rf, ctx) {
|
|
@@ -37529,7 +37552,7 @@ function MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Template(rf, ctx)
|
|
|
37529
37552
|
\u0275\u0275text(2);
|
|
37530
37553
|
\u0275\u0275conditionalCreate(3, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Conditional_3_Template, 2, 0, "span", 19);
|
|
37531
37554
|
\u0275\u0275elementEnd();
|
|
37532
|
-
\u0275\u0275conditionalCreate(4, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_4_Template, 2, 3, "textarea", 32)(5, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_Template, 5, 4, "select", 33)(6, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_6_Template, 4, 2, "label", 34)(7, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_7_Template, 1, 3, "input", 35)(8, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_8_Template, 1, 2, "input", 36)(9, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Template,
|
|
37555
|
+
\u0275\u0275conditionalCreate(4, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_4_Template, 2, 3, "textarea", 32)(5, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_5_Template, 5, 4, "select", 33)(6, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_6_Template, 4, 2, "label", 34)(7, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_7_Template, 1, 3, "input", 35)(8, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_8_Template, 1, 2, "input", 36)(9, MJCheckoutWidgetComponent_Conditional_18_For_7_For_5_Case_9_Template, 2, 6);
|
|
37533
37556
|
\u0275\u0275elementEnd();
|
|
37534
37557
|
}
|
|
37535
37558
|
if (rf & 2) {
|
|
@@ -37839,7 +37862,7 @@ function MJCheckoutWidgetComponent_For_41_Template(rf, ctx) {
|
|
|
37839
37862
|
}
|
|
37840
37863
|
function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_7_Template(rf, ctx) {
|
|
37841
37864
|
if (rf & 1) {
|
|
37842
|
-
\u0275\u0275elementStart(0, "p",
|
|
37865
|
+
\u0275\u0275elementStart(0, "p", 76);
|
|
37843
37866
|
\u0275\u0275text(1);
|
|
37844
37867
|
\u0275\u0275elementEnd();
|
|
37845
37868
|
}
|
|
@@ -37851,7 +37874,7 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_7_T
|
|
|
37851
37874
|
}
|
|
37852
37875
|
function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_8_Template(rf, ctx) {
|
|
37853
37876
|
if (rf & 1) {
|
|
37854
|
-
\u0275\u0275elementStart(0, "p",
|
|
37877
|
+
\u0275\u0275elementStart(0, "p", 77);
|
|
37855
37878
|
\u0275\u0275text(1);
|
|
37856
37879
|
\u0275\u0275elementEnd();
|
|
37857
37880
|
}
|
|
@@ -37865,10 +37888,10 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_8_T
|
|
|
37865
37888
|
function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template(rf, ctx) {
|
|
37866
37889
|
if (rf & 1) {
|
|
37867
37890
|
const _r35 = \u0275\u0275getCurrentView();
|
|
37868
|
-
\u0275\u0275elementStart(0, "div", 66)(1, "label",
|
|
37891
|
+
\u0275\u0275elementStart(0, "div", 66)(1, "label", 72);
|
|
37869
37892
|
\u0275\u0275text(2, "Promo code");
|
|
37870
37893
|
\u0275\u0275elementEnd();
|
|
37871
|
-
\u0275\u0275elementStart(3, "div",
|
|
37894
|
+
\u0275\u0275elementStart(3, "div", 73)(4, "input", 74);
|
|
37872
37895
|
\u0275\u0275listener("input", function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template_input_input_4_listener($event) {
|
|
37873
37896
|
\u0275\u0275restoreView(_r35);
|
|
37874
37897
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -37879,7 +37902,7 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template(rf, ct
|
|
|
37879
37902
|
return \u0275\u0275resetView(ctx_r0.applyPromotionCode());
|
|
37880
37903
|
});
|
|
37881
37904
|
\u0275\u0275elementEnd();
|
|
37882
|
-
\u0275\u0275elementStart(5, "button",
|
|
37905
|
+
\u0275\u0275elementStart(5, "button", 75);
|
|
37883
37906
|
\u0275\u0275listener("click", function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template_button_click_5_listener() {
|
|
37884
37907
|
\u0275\u0275restoreView(_r35);
|
|
37885
37908
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -37887,7 +37910,7 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template(rf, ct
|
|
|
37887
37910
|
});
|
|
37888
37911
|
\u0275\u0275text(6, "Apply");
|
|
37889
37912
|
\u0275\u0275elementEnd()();
|
|
37890
|
-
\u0275\u0275conditionalCreate(7, MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_7_Template, 2, 1, "p",
|
|
37913
|
+
\u0275\u0275conditionalCreate(7, MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_7_Template, 2, 1, "p", 76)(8, MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Conditional_8_Template, 2, 3, "p", 77);
|
|
37891
37914
|
\u0275\u0275elementEnd();
|
|
37892
37915
|
}
|
|
37893
37916
|
if (rf & 2) {
|
|
@@ -37905,10 +37928,23 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template(rf, ct
|
|
|
37905
37928
|
}
|
|
37906
37929
|
function MJCheckoutWidgetComponent_Conditional_42_Conditional_11_Template(rf, ctx) {
|
|
37907
37930
|
if (rf & 1) {
|
|
37908
|
-
|
|
37909
|
-
\u0275\
|
|
37910
|
-
\u0275\
|
|
37911
|
-
|
|
37931
|
+
\u0275\u0275elementStart(0, "p", 67);
|
|
37932
|
+
\u0275\u0275text(1);
|
|
37933
|
+
\u0275\u0275elementEnd();
|
|
37934
|
+
}
|
|
37935
|
+
if (rf & 2) {
|
|
37936
|
+
const member_r37 = ctx;
|
|
37937
|
+
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
37938
|
+
\u0275\u0275advance();
|
|
37939
|
+
\u0275\u0275textInterpolate3(" ", member_r37.code ? member_r37.code + " member discount" : "Member discount", ": \u2212", ctx_r0.currencySymbol(), "", member_r37.discount.toFixed(2), " ");
|
|
37940
|
+
}
|
|
37941
|
+
}
|
|
37942
|
+
function MJCheckoutWidgetComponent_Conditional_42_Conditional_12_Template(rf, ctx) {
|
|
37943
|
+
if (rf & 1) {
|
|
37944
|
+
const _r38 = \u0275\u0275getCurrentView();
|
|
37945
|
+
\u0275\u0275elementStart(0, "label", 68)(1, "input", 60);
|
|
37946
|
+
\u0275\u0275listener("change", function MJCheckoutWidgetComponent_Conditional_42_Conditional_12_Template_input_change_1_listener($event) {
|
|
37947
|
+
\u0275\u0275restoreView(_r38);
|
|
37912
37948
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
37913
37949
|
return \u0275\u0275resetView(ctx_r0.autoRenewConsent.set($event.target.checked));
|
|
37914
37950
|
});
|
|
@@ -37925,12 +37961,12 @@ function MJCheckoutWidgetComponent_Conditional_42_Conditional_11_Template(rf, ct
|
|
|
37925
37961
|
\u0275\u0275textInterpolate(ctx);
|
|
37926
37962
|
}
|
|
37927
37963
|
}
|
|
37928
|
-
function
|
|
37964
|
+
function MJCheckoutWidgetComponent_Conditional_42_Conditional_13_Template(rf, ctx) {
|
|
37929
37965
|
if (rf & 1) {
|
|
37930
|
-
\u0275\u0275elementStart(0, "div",
|
|
37966
|
+
\u0275\u0275elementStart(0, "div", 69)(1, "span", 70);
|
|
37931
37967
|
\u0275\u0275text(2, "Sales Tax");
|
|
37932
37968
|
\u0275\u0275elementEnd();
|
|
37933
|
-
\u0275\u0275elementStart(3, "span",
|
|
37969
|
+
\u0275\u0275elementStart(3, "span", 71);
|
|
37934
37970
|
\u0275\u0275text(4);
|
|
37935
37971
|
\u0275\u0275elementEnd()();
|
|
37936
37972
|
}
|
|
@@ -37954,31 +37990,35 @@ function MJCheckoutWidgetComponent_Conditional_42_Template(rf, ctx) {
|
|
|
37954
37990
|
\u0275\u0275text(9, "Secured by Stripe \u2022 PCI-DSS Level 1 Certified \u2022 End-to-end Encrypted");
|
|
37955
37991
|
\u0275\u0275elementEnd()()()();
|
|
37956
37992
|
\u0275\u0275conditionalCreate(10, MJCheckoutWidgetComponent_Conditional_42_Conditional_10_Template, 9, 8, "div", 66);
|
|
37957
|
-
\u0275\u0275conditionalCreate(11, MJCheckoutWidgetComponent_Conditional_42_Conditional_11_Template,
|
|
37958
|
-
\u0275\u0275conditionalCreate(12, MJCheckoutWidgetComponent_Conditional_42_Conditional_12_Template,
|
|
37959
|
-
\u0275\
|
|
37960
|
-
\u0275\
|
|
37993
|
+
\u0275\u0275conditionalCreate(11, MJCheckoutWidgetComponent_Conditional_42_Conditional_11_Template, 2, 3, "p", 67);
|
|
37994
|
+
\u0275\u0275conditionalCreate(12, MJCheckoutWidgetComponent_Conditional_42_Conditional_12_Template, 4, 3, "label", 68);
|
|
37995
|
+
\u0275\u0275conditionalCreate(13, MJCheckoutWidgetComponent_Conditional_42_Conditional_13_Template, 5, 2, "div", 69);
|
|
37996
|
+
\u0275\u0275elementStart(14, "div", 69)(15, "span", 70);
|
|
37997
|
+
\u0275\u0275text(16, "Total Due");
|
|
37961
37998
|
\u0275\u0275elementEnd();
|
|
37962
|
-
\u0275\u0275elementStart(
|
|
37963
|
-
\u0275\u0275text(
|
|
37999
|
+
\u0275\u0275elementStart(17, "span", 71);
|
|
38000
|
+
\u0275\u0275text(18);
|
|
37964
38001
|
\u0275\u0275elementEnd()();
|
|
37965
38002
|
}
|
|
37966
38003
|
if (rf & 2) {
|
|
37967
38004
|
let tmp_2_0;
|
|
38005
|
+
let tmp_3_0;
|
|
37968
38006
|
const ctx_r0 = \u0275\u0275nextContext();
|
|
37969
38007
|
\u0275\u0275advance(10);
|
|
37970
38008
|
\u0275\u0275conditional(ctx_r0.allowsPromotionCodes() ? 10 : -1);
|
|
37971
38009
|
\u0275\u0275advance();
|
|
37972
|
-
\u0275\u0275conditional((tmp_2_0 = ctx_r0.
|
|
38010
|
+
\u0275\u0275conditional((tmp_2_0 = ctx_r0.activeMemberDiscount()) ? 11 : -1, tmp_2_0);
|
|
38011
|
+
\u0275\u0275advance();
|
|
38012
|
+
\u0275\u0275conditional((tmp_3_0 = ctx_r0.autoRenewConsentText()) ? 12 : -1, tmp_3_0);
|
|
37973
38013
|
\u0275\u0275advance();
|
|
37974
|
-
\u0275\u0275conditional(ctx_r0.quotedTax !== null ?
|
|
38014
|
+
\u0275\u0275conditional(ctx_r0.quotedTax !== null ? 13 : -1);
|
|
37975
38015
|
\u0275\u0275advance(5);
|
|
37976
38016
|
\u0275\u0275textInterpolate2("", ctx_r0.currencySymbol(), "", ctx_r0.totalGross().toFixed(2));
|
|
37977
38017
|
}
|
|
37978
38018
|
}
|
|
37979
38019
|
function MJCheckoutWidgetComponent_Conditional_45_Template(rf, ctx) {
|
|
37980
38020
|
if (rf & 1) {
|
|
37981
|
-
\u0275\u0275element(0, "span",
|
|
38021
|
+
\u0275\u0275element(0, "span", 78);
|
|
37982
38022
|
\u0275\u0275elementStart(1, "span");
|
|
37983
38023
|
\u0275\u0275text(2, "Processing...");
|
|
37984
38024
|
\u0275\u0275elementEnd();
|
|
@@ -38046,6 +38086,23 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38046
38086
|
}
|
|
38047
38087
|
/** Why the last code could not be used, in the server's words. Set by the host. */
|
|
38048
38088
|
promotionError = null;
|
|
38089
|
+
_memberDiscount = signal(null, ...ngDevMode ? [{ debugName: "_memberDiscount" }] : []);
|
|
38090
|
+
/**
|
|
38091
|
+
* The verified member's discount the server priced this checkout with, or null (#919). Set by the
|
|
38092
|
+
* host from a draft. While it holds, the widget shows it as a discount line and hides the
|
|
38093
|
+
* promo-code box: the member code is the one the order carries, as it was on CDP's checkout.
|
|
38094
|
+
*/
|
|
38095
|
+
set memberDiscount(val) {
|
|
38096
|
+
this._memberDiscount.set(val);
|
|
38097
|
+
}
|
|
38098
|
+
get memberDiscount() {
|
|
38099
|
+
return this._memberDiscount();
|
|
38100
|
+
}
|
|
38101
|
+
/**
|
|
38102
|
+
* True when the e-mail is the one a member token was signed for (#919). The field is read-only,
|
|
38103
|
+
* since the discount is bound to that address and a changed one would price at full rate.
|
|
38104
|
+
*/
|
|
38105
|
+
lockEmail = false;
|
|
38049
38106
|
_serverPricedTotal = signal(null, ...ngDevMode ? [{ debugName: "_serverPricedTotal" }] : []);
|
|
38050
38107
|
/**
|
|
38051
38108
|
* The total the server last priced this checkout at, or null. Set by the host after a draft, so a
|
|
@@ -38082,6 +38139,12 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38082
38139
|
cancelled = new EventEmitter();
|
|
38083
38140
|
/** Emitted when an input that changes the price (quantity, location) changes, so the host drops its quote. */
|
|
38084
38141
|
quoteInvalidated = new EventEmitter();
|
|
38142
|
+
/**
|
|
38143
|
+
* The form as it stands, with no typed code, each time a price input changes while the e-mail
|
|
38144
|
+
* and billing location are complete (#919). A host with a member token prices it in the
|
|
38145
|
+
* background so the buyer sees the member discount before Pay; other hosts ignore it.
|
|
38146
|
+
*/
|
|
38147
|
+
quoteRequested = new EventEmitter();
|
|
38085
38148
|
// Internal error message for client-side validation failures
|
|
38086
38149
|
internalErrorMessage = signal(null, ...ngDevMode ? [{ debugName: "internalErrorMessage" }] : []);
|
|
38087
38150
|
displayErrorMessage = computed(() => this._errorMessage() || this.internalErrorMessage(), ...ngDevMode ? [{ debugName: "displayErrorMessage" }] : []);
|
|
@@ -38221,8 +38284,16 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38221
38284
|
const price = this._config()?.unitPrice ?? 0;
|
|
38222
38285
|
return price * this.quantity();
|
|
38223
38286
|
}, ...ngDevMode ? [{ debugName: "subtotal" }] : []);
|
|
38224
|
-
/**
|
|
38225
|
-
|
|
38287
|
+
/** The member discount, when it was priced for the current quantity; a stale one is ignored. */
|
|
38288
|
+
activeMemberDiscount = computed(() => {
|
|
38289
|
+
const discount = this._memberDiscount();
|
|
38290
|
+
return discount && discount.quantity === this.quantity() ? discount : null;
|
|
38291
|
+
}, ...ngDevMode ? [{ debugName: "activeMemberDiscount" }] : []);
|
|
38292
|
+
/**
|
|
38293
|
+
* Whether this widget takes promotion codes — only for a paid checkout whose configuration invites
|
|
38294
|
+
* them, and not while a verified member's discount applies (#919).
|
|
38295
|
+
*/
|
|
38296
|
+
allowsPromotionCodes = computed(() => this._config()?.allowCoupons === true && !this.isFree() && !this.activeMemberDiscount(), ...ngDevMode ? [{ debugName: "allowsPromotionCodes" }] : []);
|
|
38226
38297
|
/** The applied promotion, when it was priced for the current quantity; a stale one is ignored. */
|
|
38227
38298
|
activePromotion = computed(() => {
|
|
38228
38299
|
const applied = this._appliedPromotion();
|
|
@@ -38361,20 +38432,38 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38361
38432
|
this.quantity.set(clamped);
|
|
38362
38433
|
this.syncUnits();
|
|
38363
38434
|
this.quoteInvalidated.emit();
|
|
38435
|
+
this.requestQuote();
|
|
38364
38436
|
this.executeLifecycleHook("onQuantityChange", { quantity: clamped });
|
|
38365
38437
|
}
|
|
38366
38438
|
onBillingCountryChange(country) {
|
|
38367
38439
|
this.billingCountry.set(country ?? "");
|
|
38368
38440
|
this.billingRegion.set("");
|
|
38369
38441
|
this.quoteInvalidated.emit();
|
|
38442
|
+
this.requestQuote();
|
|
38370
38443
|
}
|
|
38371
38444
|
onBillingRegionChange(region) {
|
|
38372
38445
|
this.billingRegion.set(region ?? "");
|
|
38373
38446
|
this.quoteInvalidated.emit();
|
|
38447
|
+
this.requestQuote();
|
|
38374
38448
|
}
|
|
38375
38449
|
onBillingPostalCodeChange(postalCode) {
|
|
38376
38450
|
this.billingPostalCode.set(postalCode ?? "");
|
|
38377
38451
|
this.quoteInvalidated.emit();
|
|
38452
|
+
this.requestQuote();
|
|
38453
|
+
}
|
|
38454
|
+
/** The buyer's e-mail looks complete: the same check `isFormValid` makes. */
|
|
38455
|
+
hasValidEmail() {
|
|
38456
|
+
const em = String(this.units()[0]?.["email"] || this.email()).trim();
|
|
38457
|
+
return em.includes("@");
|
|
38458
|
+
}
|
|
38459
|
+
/**
|
|
38460
|
+
* Ask the host for a background price once the e-mail and the billing location are complete
|
|
38461
|
+
* (#919). Never blocks the form; the host decides whether to price at all.
|
|
38462
|
+
*/
|
|
38463
|
+
requestQuote() {
|
|
38464
|
+
if (!this.hasValidEmail() || !this.isBillingLocationValid())
|
|
38465
|
+
return;
|
|
38466
|
+
this.quoteRequested.emit({ ...this.buildSubmission(), promotionCode: void 0 });
|
|
38378
38467
|
}
|
|
38379
38468
|
syncUnits() {
|
|
38380
38469
|
const currentQty = this.quantity();
|
|
@@ -38433,8 +38522,17 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38433
38522
|
this.title.set(String(value ?? ""));
|
|
38434
38523
|
}
|
|
38435
38524
|
this.units.set(list);
|
|
38525
|
+
if (index === 0 && fieldName === "email") {
|
|
38526
|
+
if (this._memberDiscount())
|
|
38527
|
+
this.quoteInvalidated.emit();
|
|
38528
|
+
this.requestQuote();
|
|
38529
|
+
}
|
|
38436
38530
|
}
|
|
38437
38531
|
}
|
|
38532
|
+
/** True for the first unit's e-mail field while it is locked to a member token's address (#919). */
|
|
38533
|
+
isLockedEmail(index, fieldName) {
|
|
38534
|
+
return this.lockEmail && index === 0 && fieldName.toLowerCase() === "email";
|
|
38535
|
+
}
|
|
38438
38536
|
updateAttendee(index, field, value) {
|
|
38439
38537
|
this.updateUnitField(index, field, value);
|
|
38440
38538
|
}
|
|
@@ -38564,13 +38662,15 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38564
38662
|
stripePaymentMethodId: this.isFree() ? void 0 : this.stripePaymentMethodId ?? void 0,
|
|
38565
38663
|
sessionKey: finalSessionKey,
|
|
38566
38664
|
autoRenewConsent: this.autoRenewConsentText() ? this.autoRenewConsent() : void 0,
|
|
38665
|
+
// allowsPromotionCodes is false while a member discount applies: the box is hidden, so a
|
|
38666
|
+
// code typed before it appeared is not sent behind the buyer's back.
|
|
38567
38667
|
promotionCode: this.allowsPromotionCodes() && typedCode ? typedCode : void 0
|
|
38568
38668
|
};
|
|
38569
38669
|
}
|
|
38570
38670
|
static \u0275fac = function MJCheckoutWidgetComponent_Factory(__ngFactoryType__) {
|
|
38571
38671
|
return new (__ngFactoryType__ || _MJCheckoutWidgetComponent)(\u0275\u0275directiveInject(ElementRef), \u0275\u0275directiveInject(Renderer2));
|
|
38572
38672
|
};
|
|
38573
|
-
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _MJCheckoutWidgetComponent, selectors: [["mj-checkout-widget"]], inputs: { config: "config", distributionSlug: "distributionSlug", sessionKey: "sessionKey", isProcessing: "isProcessing", errorMessage: "errorMessage", isPaymentReady: "isPaymentReady", stripePaymentMethodId: "stripePaymentMethodId", prefillEmail: "prefillEmail", appliedPromotion: "appliedPromotion", promotionError: "promotionError", serverPricedTotal: "serverPricedTotal", quotedTotal: "quotedTotal", quotedTax: "quotedTax" }, outputs: { submitted: "submitted", promotionCodeApplied: "promotionCodeApplied", cancelled: "cancelled", quoteInvalidated: "quoteInvalidated" }, features: [\u0275\u0275NgOnChangesFeature], decls: 50, vars: 35, consts: [[1, "mj-checkout-widget-container"], [1, "mj-widget-header"], [1, "mj-widget-title"], [1, "mj-widget-description"], ["role", "alert", 1, "mj-widget-error-banner"], [1, "mj-widget-summary-card"], [1, "mj-summary-row"], [1, "mj-summary-item-info"], [1, "mj-product-name"], [1, "mj-badge-free"], [1, "mj-summary-price"], [1, "mj-price-free"], [1, "mj-price-amount"], [1, "mj-quantity-selector-row"], [1, "mj-widget-form-section"], [1, "mj-section-title"], [1, "mj-form-grid"], [1, "mj-form-group"], [1, "mj-label"], [1, "mj-required"], ["autocomplete", "country", "required", "", 1, "mj-select", 3, "ngModelChange", "id", "ngModel"], [3, "ngValue"], ["type", "text", "autocomplete", "postal-code", "maxlength", "20", 1, "mj-input", 3, "ngModelChange", "id", "ngModel", "required"], [1, "mj-widget-actions"], ["type", "button", 1, "mj-btn-submit", 3, "click", "disabled"], ["type", "button", 1, "mj-btn-cancel", 3, "click", "disabled"], [1, "mj-error-icon"], ["for", "quantityInput", 1, "mj-label"], [1, "mj-qty-controls"], ["type", "button", 1, "mj-qty-btn", 3, "click", "disabled"], ["id", "quantityInput", "type", "number", "min", "1", 1, "mj-qty-input", 3, "ngModelChange", "ngModel", "max"], [1, "mj-form-group", 3, "full-width"], [1, "mj-input", "mj-textarea", 3, "ngModel", "placeholder", "required"], [1, "mj-select", 3, "ngModel", "required"], [1, "mj-checkbox-label"], ["type", "number", 1, "mj-input", 3, "ngModel", "placeholder", "required"], ["type", "date", 1, "mj-input", 3, "ngModel", "required"], [1, "mj-input",
|
|
38673
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _MJCheckoutWidgetComponent, selectors: [["mj-checkout-widget"]], inputs: { config: "config", distributionSlug: "distributionSlug", sessionKey: "sessionKey", isProcessing: "isProcessing", errorMessage: "errorMessage", isPaymentReady: "isPaymentReady", stripePaymentMethodId: "stripePaymentMethodId", prefillEmail: "prefillEmail", appliedPromotion: "appliedPromotion", promotionError: "promotionError", memberDiscount: "memberDiscount", lockEmail: "lockEmail", serverPricedTotal: "serverPricedTotal", quotedTotal: "quotedTotal", quotedTax: "quotedTax" }, outputs: { submitted: "submitted", promotionCodeApplied: "promotionCodeApplied", cancelled: "cancelled", quoteInvalidated: "quoteInvalidated", quoteRequested: "quoteRequested" }, features: [\u0275\u0275NgOnChangesFeature], decls: 50, vars: 35, consts: [[1, "mj-checkout-widget-container"], [1, "mj-widget-header"], [1, "mj-widget-title"], [1, "mj-widget-description"], ["role", "alert", 1, "mj-widget-error-banner"], [1, "mj-widget-summary-card"], [1, "mj-summary-row"], [1, "mj-summary-item-info"], [1, "mj-product-name"], [1, "mj-badge-free"], [1, "mj-summary-price"], [1, "mj-price-free"], [1, "mj-price-amount"], [1, "mj-quantity-selector-row"], [1, "mj-widget-form-section"], [1, "mj-section-title"], [1, "mj-form-grid"], [1, "mj-form-group"], [1, "mj-label"], [1, "mj-required"], ["autocomplete", "country", "required", "", 1, "mj-select", 3, "ngModelChange", "id", "ngModel"], [3, "ngValue"], ["type", "text", "autocomplete", "postal-code", "maxlength", "20", 1, "mj-input", 3, "ngModelChange", "id", "ngModel", "required"], [1, "mj-widget-actions"], ["type", "button", 1, "mj-btn-submit", 3, "click", "disabled"], ["type", "button", 1, "mj-btn-cancel", 3, "click", "disabled"], [1, "mj-error-icon"], ["for", "quantityInput", 1, "mj-label"], [1, "mj-qty-controls"], ["type", "button", 1, "mj-qty-btn", 3, "click", "disabled"], ["id", "quantityInput", "type", "number", "min", "1", 1, "mj-qty-input", 3, "ngModelChange", "ngModel", "max"], [1, "mj-form-group", 3, "full-width"], [1, "mj-input", "mj-textarea", 3, "ngModel", "placeholder", "required"], [1, "mj-select", 3, "ngModel", "required"], [1, "mj-checkbox-label"], ["type", "number", 1, "mj-input", 3, "ngModel", "placeholder", "required"], ["type", "date", 1, "mj-input", 3, "ngModel", "required"], [1, "mj-input", "mj-textarea", 3, "ngModelChange", "ngModel", "placeholder", "required"], [1, "mj-select", 3, "ngModelChange", "ngModel", "required"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], ["type", "number", 1, "mj-input", 3, "ngModelChange", "ngModel", "placeholder", "required"], ["type", "date", 1, "mj-input", 3, "ngModelChange", "ngModel", "required"], [1, "mj-input", 3, "ngModelChange", "type", "ngModel", "placeholder", "readonly", "required"], [1, "mj-field-hint"], [1, "mj-multi-attendee-header"], ["type", "button", 1, "mj-btn-link", 3, "click"], [1, "mj-attendee-matrix"], [1, "mj-attendee-card"], [1, "mj-attendee-card-title"], ["autocomplete", "address-level1", "required", "", 1, "mj-select", 3, "ngModelChange", "id", "ngModel"], [1, "mj-form-group", "full-width"], ["type", "text", 1, "mj-input", 3, "id", "ngModel", "required"], [1, "mj-select", 3, "ngModelChange", "id", "ngModel", "required"], ["type", "text", "placeholder", "Please specify", "required", "", 1, "mj-input", "mj-question-other", 3, "ngModel"], ["type", "text", "placeholder", "Please specify", "required", "", 1, "mj-input", "mj-question-other", 3, "ngModelChange", "ngModel"], ["type", "text", 1, "mj-input", 3, "ngModelChange", "id", "ngModel", "required"], [1, "mj-choice-group"], [1, "mj-choice-count"], [1, "mj-choice-options"], [1, "mj-checkbox-label", 3, "is-disabled"], ["type", "checkbox", 3, "change", "checked", "disabled"], [1, "mj-widget-payment-section"], [1, "mj-stripe-container"], ["id", "stripe-card-element", 1, "mj-stripe-mount-point"], [1, "mj-stripe-badge"], [1, "mj-stripe-lock-icon"], [1, "mj-checkout-promo"], ["role", "status", 1, "mj-checkout-promo__applied", "mj-checkout-member-discount"], [1, "mj-checkout-consent"], [1, "mj-checkout-total-row"], [1, "mj-total-label"], [1, "mj-total-amount"], [1, "mj-checkout-promo__label", 3, "for"], [1, "mj-checkout-promo__row"], ["type", "text", "autocomplete", "off", "maxlength", "60", 1, "mj-input", "mj-checkout-promo__input", 3, "input", "keydown.enter", "id", "value", "disabled"], ["type", "button", 1, "mj-checkout-promo__apply", 3, "click", "disabled"], ["role", "alert", 1, "mj-checkout-promo__error"], ["role", "status", 1, "mj-checkout-promo__applied"], [1, "mj-spinner"]], template: function MJCheckoutWidgetComponent_Template(rf, ctx) {
|
|
38574
38674
|
if (rf & 1) {
|
|
38575
38675
|
\u0275\u0275elementStart(0, "div", 0)(1, "header", 1)(2, "h2", 2);
|
|
38576
38676
|
\u0275\u0275text(3);
|
|
@@ -38620,7 +38720,7 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38620
38720
|
\u0275\u0275elementEnd()()()();
|
|
38621
38721
|
\u0275\u0275conditionalCreate(39, MJCheckoutWidgetComponent_Conditional_39_Template, 6, 0, "section", 14);
|
|
38622
38722
|
\u0275\u0275repeaterCreate(40, MJCheckoutWidgetComponent_For_41_Template, 10, 3, "section", 14, _forTrack1);
|
|
38623
|
-
\u0275\u0275conditionalCreate(42, MJCheckoutWidgetComponent_Conditional_42_Template,
|
|
38723
|
+
\u0275\u0275conditionalCreate(42, MJCheckoutWidgetComponent_Conditional_42_Template, 19, 6);
|
|
38624
38724
|
\u0275\u0275elementStart(43, "div", 23)(44, "button", 24);
|
|
38625
38725
|
\u0275\u0275listener("click", function MJCheckoutWidgetComponent_Template_button_click_44_listener() {
|
|
38626
38726
|
return ctx.handleSubmit();
|
|
@@ -38687,7 +38787,7 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38687
38787
|
\u0275\u0275advance(3);
|
|
38688
38788
|
\u0275\u0275property("disabled", ctx.isProcessing);
|
|
38689
38789
|
}
|
|
38690
|
-
}, dependencies: [CommonModule, FormsModule, NgSelectOption, \u0275NgSelectMultipleOption, DefaultValueAccessor, NumberValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgControlStatus, RequiredValidator, MaxLengthValidator, MinValidator, MaxValidator, NgModel], styles: ['[_nghost-%COMP%] {\n display: block;\n font-family: var(--mj-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);\n color: var(--mj-text-color, #1e293b);\n}\n\n.mj-checkout-widget-container[_ngcontent-%COMP%] {\n max-width: 560px;\n margin: 0 auto;\n background: var(--mj-bg-color, #ffffff);\n border: 1px solid #e2e8f0;\n border-radius: var(--mj-border-radius, 8px);\n padding: 24px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);\n}\n\n.mj-widget-header[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.mj-widget-title[_ngcontent-%COMP%] {\n margin: 0 0 6px 0;\n font-size: 1.35rem;\n font-weight: 700;\n color: var(--mj-text-color, #0f172a);\n}\n\n.mj-widget-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9rem;\n color: #64748b;\n line-height: 1.4;\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 margin-bottom: 18px;\n font-size: 0.875rem;\n}\n\n.mj-error-icon[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n\n.mj-widget-summary-card[_ngcontent-%COMP%] {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px 16px;\n margin-bottom: 20px;\n}\n\n.mj-summary-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.mj-summary-price[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.mj-widget-form-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.mj-summary-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-product-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 1rem;\n color: #1e293b;\n}\n\n.mj-badge-free[_ngcontent-%COMP%] {\n background: #dcfce7;\n color: #166534;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mj-price-free[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #166534;\n font-size: 1.1rem;\n}\n\n.mj-price-amount[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #0f172a;\n font-size: 1.1rem;\n}\n\n.mj-quantity-selector-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px dashed #cbd5e1;\n}\n\n.mj-qty-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mj-qty-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n background: #ffffff;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-qty-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-qty-input[_ngcontent-%COMP%] {\n width: 44px;\n height: 28px;\n text-align: center;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.mj-section-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n font-weight: 600;\n margin: 0 0 12px 0;\n color: #334155;\n}\n\n.mj-form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 18px;\n}\n\n.mj-form-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mj-form-group.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.mj-label[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n}\n\n.mj-required[_ngcontent-%COMP%] {\n color: #ef4444;\n}\n\n.mj-input[_ngcontent-%COMP%], .mj-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n font-size: 0.9rem;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #ffffff;\n color: #1e293b;\n outline: none;\n transition: border-color 0.15s ease;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-textarea[_ngcontent-%COMP%] {\n min-height: 70px;\n resize: vertical;\n font-family: inherit;\n}\n\n.mj-select[_ngcontent-%COMP%] {\n min-height: 38px;\n}\n\n.mj-checkbox-label[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 400;\n color: #334155;\n margin-top: 4px;\n}\n\n\n\n.mj-question-other[_ngcontent-%COMP%] {\n margin-top: 8px;\n}\n\n\n\n.mj-choice-group[_ngcontent-%COMP%] {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.mj-choice-count[_ngcontent-%COMP%] {\n font-weight: normal;\n color: #64748b;\n}\n\n.mj-choice-options[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mj-checkbox-label.is-disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.mj-input[_ngcontent-%COMP%]:focus, .mj-select[_ngcontent-%COMP%]:focus {\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-multi-attendee-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.mj-btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-primary-color, #2563eb);\n font-size: 0.8rem;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.mj-attendee-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 14px;\n margin-bottom: 20px;\n}\n\n.mj-attendee-card[_ngcontent-%COMP%] {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 12px 14px;\n}\n\n.mj-attendee-card-title[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 600;\n color: #475569;\n margin-bottom: 10px;\n}\n\n\n\n.mj-widget-payment-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #e2e8f0;\n}\n\n.mj-stripe-container[_ngcontent-%COMP%] {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px;\n margin-bottom: 16px;\n}\n\n.mj-stripe-mount-point[_ngcontent-%COMP%] {\n min-height: 40px;\n}\n\n.mj-stripe-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 10px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.mj-stripe-lock-icon[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n}\n\n.mj-checkout-total-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 0;\n border-top: 1px solid #e2e8f0;\n margin-top: 10px;\n margin-bottom: 18px;\n}\n\n.mj-total-label[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: 1.05rem;\n color: #0f172a;\n}\n\n.mj-total-amount[_ngcontent-%COMP%] {\n font-weight: 800;\n font-size: 1.25rem;\n color: var(--mj-primary-color, #2563eb);\n}\n\n.mj-widget-actions[_ngcontent-%COMP%] {\n margin-top: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-size: 1rem;\n font-weight: 600;\n border: none;\n border-radius: var(--mj-border-radius, 8px);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.15s ease;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%]:hover:not(:disabled) {\n opacity: 0.92;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mj-btn-cancel[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n color: #64748b;\n font-size: 0.875rem;\n font-weight: 500;\n border: none;\n cursor: pointer;\n text-align: center;\n}\n\n.mj-btn-cancel[_ngcontent-%COMP%]:hover:not(:disabled) {\n color: #334155;\n text-decoration: underline;\n}\n\n.mj-spinner[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n border: 2px solid #ffffff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_mj-spin 0.8s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_mj-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-checkout-consent[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n align-items: flex-start;\n margin: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n.mj-checkout-consent[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-top: 0.2rem;\n}\n\n\n\n\n\n.mj-checkbox-label[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%], \n.mj-checkout-consent[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n width: auto;\n height: auto;\n padding: 0;\n border: 0;\n flex: 0 0 auto;\n}\n\n.mj-checkout-promo[_ngcontent-%COMP%] {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__label[_ngcontent-%COMP%] {\n display: block;\n font-size: 0.875rem;\n margin-bottom: 0.25rem;\n}\n.mj-checkout-promo__row[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.mj-checkout-promo__input[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n.mj-checkout-promo__error[_ngcontent-%COMP%] {\n color: var(--mj-error-color, #b91c1c);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__applied[_ngcontent-%COMP%] {\n color: var(--mj-success-color, #15803d);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__apply[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n padding: 8px 14px;\n background: transparent;\n color: var(--mj-primary-color, #2563eb);\n border: 1px solid var(--mj-border-color, #cbd5e1);\n border-radius: var(--mj-border-radius, 8px);\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n}\n.mj-checkout-promo__apply[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}'], changeDetection: 0 });
|
|
38790
|
+
}, dependencies: [CommonModule, FormsModule, NgSelectOption, \u0275NgSelectMultipleOption, DefaultValueAccessor, NumberValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, NgControlStatus, RequiredValidator, MaxLengthValidator, MinValidator, MaxValidator, NgModel], styles: ['[_nghost-%COMP%] {\n display: block;\n font-family: var(--mj-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);\n color: var(--mj-text-color, #1e293b);\n}\n\n.mj-checkout-widget-container[_ngcontent-%COMP%] {\n max-width: 560px;\n margin: 0 auto;\n background: var(--mj-bg-color, #ffffff);\n border: 1px solid #e2e8f0;\n border-radius: var(--mj-border-radius, 8px);\n padding: 24px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);\n}\n\n.mj-widget-header[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.mj-widget-title[_ngcontent-%COMP%] {\n margin: 0 0 6px 0;\n font-size: 1.35rem;\n font-weight: 700;\n color: var(--mj-text-color, #0f172a);\n}\n\n.mj-widget-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9rem;\n color: #64748b;\n line-height: 1.4;\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 margin-bottom: 18px;\n font-size: 0.875rem;\n}\n\n.mj-error-icon[_ngcontent-%COMP%] {\n font-size: 1rem;\n}\n\n.mj-widget-summary-card[_ngcontent-%COMP%] {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px 16px;\n margin-bottom: 20px;\n}\n\n.mj-summary-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.mj-summary-price[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n}\n\n.mj-widget-form-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n}\n\n.mj-summary-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-product-name[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 1rem;\n color: #1e293b;\n}\n\n.mj-badge-free[_ngcontent-%COMP%] {\n background: #dcfce7;\n color: #166534;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mj-price-free[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #166534;\n font-size: 1.1rem;\n}\n\n.mj-price-amount[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #0f172a;\n font-size: 1.1rem;\n}\n\n.mj-quantity-selector-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px dashed #cbd5e1;\n}\n\n.mj-qty-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mj-qty-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n background: #ffffff;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-qty-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-qty-input[_ngcontent-%COMP%] {\n width: 44px;\n height: 28px;\n text-align: center;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.mj-section-title[_ngcontent-%COMP%] {\n font-size: 1rem;\n font-weight: 600;\n margin: 0 0 12px 0;\n color: #334155;\n}\n\n.mj-form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 18px;\n}\n\n.mj-form-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mj-form-group.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.mj-label[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n}\n\n.mj-required[_ngcontent-%COMP%] {\n color: #ef4444;\n}\n\n.mj-input[_ngcontent-%COMP%], .mj-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n font-size: 0.9rem;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #ffffff;\n color: #1e293b;\n outline: none;\n transition: border-color 0.15s ease;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-textarea[_ngcontent-%COMP%] {\n min-height: 70px;\n resize: vertical;\n font-family: inherit;\n}\n\n.mj-select[_ngcontent-%COMP%] {\n min-height: 38px;\n}\n\n.mj-checkbox-label[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 400;\n color: #334155;\n margin-top: 4px;\n}\n\n\n\n.mj-question-other[_ngcontent-%COMP%] {\n margin-top: 8px;\n}\n\n\n\n.mj-choice-group[_ngcontent-%COMP%] {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.mj-choice-count[_ngcontent-%COMP%] {\n font-weight: normal;\n color: #64748b;\n}\n\n.mj-choice-options[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mj-checkbox-label.is-disabled[_ngcontent-%COMP%] {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.mj-input[_ngcontent-%COMP%]:focus, .mj-select[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n\n\n.mj-input[readonly][_ngcontent-%COMP%] {\n background: #f1f5f9;\n color: #475569;\n cursor: default;\n}\n\n.mj-field-hint[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #64748b;\n margin: 0.25rem 0 0;\n}\n\n.mj-multi-attendee-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.mj-btn-link[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-primary-color, #2563eb);\n font-size: 0.8rem;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.mj-attendee-matrix[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 14px;\n margin-bottom: 20px;\n}\n\n.mj-attendee-card[_ngcontent-%COMP%] {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 12px 14px;\n}\n\n.mj-attendee-card-title[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 600;\n color: #475569;\n margin-bottom: 10px;\n}\n\n\n\n.mj-widget-payment-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #e2e8f0;\n}\n\n.mj-stripe-container[_ngcontent-%COMP%] {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px;\n margin-bottom: 16px;\n}\n\n.mj-stripe-mount-point[_ngcontent-%COMP%] {\n min-height: 40px;\n}\n\n.mj-stripe-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 10px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.mj-stripe-lock-icon[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n}\n\n.mj-checkout-total-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 0;\n border-top: 1px solid #e2e8f0;\n margin-top: 10px;\n margin-bottom: 18px;\n}\n\n.mj-total-label[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: 1.05rem;\n color: #0f172a;\n}\n\n.mj-total-amount[_ngcontent-%COMP%] {\n font-weight: 800;\n font-size: 1.25rem;\n color: var(--mj-primary-color, #2563eb);\n}\n\n.mj-widget-actions[_ngcontent-%COMP%] {\n margin-top: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-size: 1rem;\n font-weight: 600;\n border: none;\n border-radius: var(--mj-border-radius, 8px);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.15s ease;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%]:hover:not(:disabled) {\n opacity: 0.92;\n}\n\n.mj-btn-submit[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mj-btn-cancel[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n color: #64748b;\n font-size: 0.875rem;\n font-weight: 500;\n border: none;\n cursor: pointer;\n text-align: center;\n}\n\n.mj-btn-cancel[_ngcontent-%COMP%]:hover:not(:disabled) {\n color: #334155;\n text-decoration: underline;\n}\n\n.mj-spinner[_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n border: 2px solid #ffffff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: _ngcontent-%COMP%_mj-spin 0.8s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_mj-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-checkout-consent[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n align-items: flex-start;\n margin: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n.mj-checkout-consent[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n margin-top: 0.2rem;\n}\n\n\n\n\n\n.mj-checkbox-label[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%], \n.mj-checkout-consent[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%] {\n width: auto;\n height: auto;\n padding: 0;\n border: 0;\n flex: 0 0 auto;\n}\n\n.mj-checkout-promo[_ngcontent-%COMP%] {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__label[_ngcontent-%COMP%] {\n display: block;\n font-size: 0.875rem;\n margin-bottom: 0.25rem;\n}\n.mj-checkout-promo__row[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n}\n.mj-checkout-promo__input[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n}\n.mj-checkout-promo__error[_ngcontent-%COMP%] {\n color: var(--mj-error-color, #b91c1c);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__applied[_ngcontent-%COMP%] {\n color: var(--mj-success-color, #15803d);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-member-discount[_ngcontent-%COMP%] {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__apply[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n padding: 8px 14px;\n background: transparent;\n color: var(--mj-primary-color, #2563eb);\n border: 1px solid var(--mj-border-color, #cbd5e1);\n border-radius: var(--mj-border-radius, 8px);\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n}\n.mj-checkout-promo__apply[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}'], changeDetection: 0 });
|
|
38691
38791
|
};
|
|
38692
38792
|
(() => {
|
|
38693
38793
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MJCheckoutWidgetComponent, [{
|
|
@@ -38816,7 +38916,11 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38816
38916
|
[ngModel]="units()[0]?.[field.name]"
|
|
38817
38917
|
(ngModelChange)="updateUnitField(0, field.name, $event)"
|
|
38818
38918
|
[placeholder]="field.placeholder || ''"
|
|
38919
|
+
[readonly]="isLockedEmail(0, field.name)"
|
|
38819
38920
|
[required]="field.required || false" />
|
|
38921
|
+
@if (isLockedEmail(0, field.name)) {
|
|
38922
|
+
<p class="mj-field-hint">Your member discount is tied to this verified e-mail.</p>
|
|
38923
|
+
}
|
|
38820
38924
|
}
|
|
38821
38925
|
}
|
|
38822
38926
|
</div>
|
|
@@ -38898,7 +39002,11 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
38898
39002
|
[ngModel]="unit[field.name]"
|
|
38899
39003
|
(ngModelChange)="updateUnitField($index, field.name, $event)"
|
|
38900
39004
|
[placeholder]="field.placeholder || ''"
|
|
39005
|
+
[readonly]="isLockedEmail($index, field.name)"
|
|
38901
39006
|
[required]="field.required || false" />
|
|
39007
|
+
@if (isLockedEmail($index, field.name)) {
|
|
39008
|
+
<p class="mj-field-hint">Your member discount is tied to this verified e-mail.</p>
|
|
39009
|
+
}
|
|
38902
39010
|
}
|
|
38903
39011
|
}
|
|
38904
39012
|
</div>
|
|
@@ -39088,6 +39196,12 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
39088
39196
|
</div>
|
|
39089
39197
|
}
|
|
39090
39198
|
|
|
39199
|
+
@if (activeMemberDiscount(); as member) {
|
|
39200
|
+
<p class="mj-checkout-promo__applied mj-checkout-member-discount" role="status">
|
|
39201
|
+
{{ member.code ? member.code + ' member discount' : 'Member discount' }}: \u2212{{ currencySymbol() }}{{ member.discount.toFixed(2) }}
|
|
39202
|
+
</p>
|
|
39203
|
+
}
|
|
39204
|
+
|
|
39091
39205
|
@if (autoRenewConsentText(); as consentText) {
|
|
39092
39206
|
<label class="mj-checkout-consent">
|
|
39093
39207
|
<input type="checkbox"
|
|
@@ -39129,7 +39243,7 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
39129
39243
|
</button>
|
|
39130
39244
|
</div>
|
|
39131
39245
|
</div>
|
|
39132
|
-
`, styles: [':host {\n display: block;\n font-family: var(--mj-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);\n color: var(--mj-text-color, #1e293b);\n}\n\n.mj-checkout-widget-container {\n max-width: 560px;\n margin: 0 auto;\n background: var(--mj-bg-color, #ffffff);\n border: 1px solid #e2e8f0;\n border-radius: var(--mj-border-radius, 8px);\n padding: 24px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);\n}\n\n.mj-widget-header {\n margin-bottom: 20px;\n}\n\n.mj-widget-title {\n margin: 0 0 6px 0;\n font-size: 1.35rem;\n font-weight: 700;\n color: var(--mj-text-color, #0f172a);\n}\n\n.mj-widget-description {\n margin: 0;\n font-size: 0.9rem;\n color: #64748b;\n line-height: 1.4;\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 margin-bottom: 18px;\n font-size: 0.875rem;\n}\n\n.mj-error-icon {\n font-size: 1rem;\n}\n\n.mj-widget-summary-card {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px 16px;\n margin-bottom: 20px;\n}\n\n.mj-summary-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.mj-summary-price {\n display: flex;\n align-items: center;\n}\n\n.mj-widget-form-section {\n margin-bottom: 20px;\n}\n\n.mj-summary-item-info {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-product-name {\n font-weight: 600;\n font-size: 1rem;\n color: #1e293b;\n}\n\n.mj-badge-free {\n background: #dcfce7;\n color: #166534;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mj-price-free {\n font-weight: 700;\n color: #166534;\n font-size: 1.1rem;\n}\n\n.mj-price-amount {\n font-weight: 700;\n color: #0f172a;\n font-size: 1.1rem;\n}\n\n.mj-quantity-selector-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px dashed #cbd5e1;\n}\n\n.mj-qty-controls {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mj-qty-btn {\n width: 28px;\n height: 28px;\n background: #ffffff;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-qty-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-qty-input {\n width: 44px;\n height: 28px;\n text-align: center;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.mj-section-title {\n font-size: 1rem;\n font-weight: 600;\n margin: 0 0 12px 0;\n color: #334155;\n}\n\n.mj-form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 18px;\n}\n\n.mj-form-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mj-form-group.full-width {\n grid-column: 1 / -1;\n}\n\n.mj-label {\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n}\n\n.mj-required {\n color: #ef4444;\n}\n\n.mj-input, .mj-select {\n padding: 8px 12px;\n font-size: 0.9rem;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #ffffff;\n color: #1e293b;\n outline: none;\n transition: border-color 0.15s ease;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-textarea {\n min-height: 70px;\n resize: vertical;\n font-family: inherit;\n}\n\n.mj-select {\n min-height: 38px;\n}\n\n.mj-checkbox-label {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 400;\n color: #334155;\n margin-top: 4px;\n}\n\n/* The free-text answer that appears under a question\'s "Other" choice. */\n.mj-question-other {\n margin-top: 8px;\n}\n\n/* A choice group: its options stacked, with how many to pick beside the heading. */\n.mj-choice-group {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.mj-choice-count {\n font-weight: normal;\n color: #64748b;\n}\n\n.mj-choice-options {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mj-checkbox-label.is-disabled {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.mj-input:focus, .mj-select:focus {\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-multi-attendee-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.mj-btn-link {\n background: none;\n border: none;\n color: var(--mj-primary-color, #2563eb);\n font-size: 0.8rem;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.mj-attendee-matrix {\n display: flex;\n flex-direction: column;\n gap: 14px;\n margin-bottom: 20px;\n}\n\n.mj-attendee-card {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 12px 14px;\n}\n\n.mj-attendee-card-title {\n font-size: 0.85rem;\n font-weight: 600;\n color: #475569;\n margin-bottom: 10px;\n}\n\n/* Stripe Payment Container */\n.mj-widget-payment-section {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #e2e8f0;\n}\n\n.mj-stripe-container {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px;\n margin-bottom: 16px;\n}\n\n.mj-stripe-mount-point {\n min-height: 40px;\n}\n\n.mj-stripe-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 10px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.mj-stripe-lock-icon {\n font-size: 0.85rem;\n}\n\n.mj-checkout-total-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 0;\n border-top: 1px solid #e2e8f0;\n margin-top: 10px;\n margin-bottom: 18px;\n}\n\n.mj-total-label {\n font-weight: 700;\n font-size: 1.05rem;\n color: #0f172a;\n}\n\n.mj-total-amount {\n font-weight: 800;\n font-size: 1.25rem;\n color: var(--mj-primary-color, #2563eb);\n}\n\n.mj-widget-actions {\n margin-top: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-btn-submit {\n width: 100%;\n padding: 12px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-size: 1rem;\n font-weight: 600;\n border: none;\n border-radius: var(--mj-border-radius, 8px);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.15s ease;\n}\n\n.mj-btn-submit:hover:not(:disabled) {\n opacity: 0.92;\n}\n\n.mj-btn-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mj-btn-cancel {\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n color: #64748b;\n font-size: 0.875rem;\n font-weight: 500;\n border: none;\n cursor: pointer;\n text-align: center;\n}\n\n.mj-btn-cancel:hover:not(:disabled) {\n color: #334155;\n text-decoration: underline;\n}\n\n.mj-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid #ffffff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: mj-spin 0.8s linear infinite;\n}\n\n@keyframes mj-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-checkout-consent {\n display: flex;\n gap: 0.5rem;\n align-items: flex-start;\n margin: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n.mj-checkout-consent input {\n margin-top: 0.2rem;\n}\n\n/* Checkboxes keep their native size even when the host page styles every input\n (e.g. `input { width: 100% }`): this rule is scoped to the widget, so it outranks\n a plain element or class selector on the host page. */\n.mj-checkbox-label input[type=checkbox],\n.mj-checkout-consent input[type=checkbox] {\n width: auto;\n height: auto;\n padding: 0;\n border: 0;\n flex: 0 0 auto;\n}\n\n.mj-checkout-promo {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__label {\n display: block;\n font-size: 0.875rem;\n margin-bottom: 0.25rem;\n}\n.mj-checkout-promo__row {\n display: flex;\n gap: 0.5rem;\n}\n.mj-checkout-promo__input {\n flex: 1 1 auto;\n}\n.mj-checkout-promo__error {\n color: var(--mj-error-color, #b91c1c);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__applied {\n color: var(--mj-success-color, #15803d);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__apply {\n flex: 0 0 auto;\n padding: 8px 14px;\n background: transparent;\n color: var(--mj-primary-color, #2563eb);\n border: 1px solid var(--mj-border-color, #cbd5e1);\n border-radius: var(--mj-border-radius, 8px);\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n}\n.mj-checkout-promo__apply:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n'] }]
|
|
39246
|
+
`, styles: [':host {\n display: block;\n font-family: var(--mj-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);\n color: var(--mj-text-color, #1e293b);\n}\n\n.mj-checkout-widget-container {\n max-width: 560px;\n margin: 0 auto;\n background: var(--mj-bg-color, #ffffff);\n border: 1px solid #e2e8f0;\n border-radius: var(--mj-border-radius, 8px);\n padding: 24px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);\n}\n\n.mj-widget-header {\n margin-bottom: 20px;\n}\n\n.mj-widget-title {\n margin: 0 0 6px 0;\n font-size: 1.35rem;\n font-weight: 700;\n color: var(--mj-text-color, #0f172a);\n}\n\n.mj-widget-description {\n margin: 0;\n font-size: 0.9rem;\n color: #64748b;\n line-height: 1.4;\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 margin-bottom: 18px;\n font-size: 0.875rem;\n}\n\n.mj-error-icon {\n font-size: 1rem;\n}\n\n.mj-widget-summary-card {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px 16px;\n margin-bottom: 20px;\n}\n\n.mj-summary-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.mj-summary-price {\n display: flex;\n align-items: center;\n}\n\n.mj-widget-form-section {\n margin-bottom: 20px;\n}\n\n.mj-summary-item-info {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.mj-product-name {\n font-weight: 600;\n font-size: 1rem;\n color: #1e293b;\n}\n\n.mj-badge-free {\n background: #dcfce7;\n color: #166534;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.mj-price-free {\n font-weight: 700;\n color: #166534;\n font-size: 1.1rem;\n}\n\n.mj-price-amount {\n font-weight: 700;\n color: #0f172a;\n font-size: 1.1rem;\n}\n\n.mj-quantity-selector-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px dashed #cbd5e1;\n}\n\n.mj-qty-controls {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.mj-qty-btn {\n width: 28px;\n height: 28px;\n background: #ffffff;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.mj-qty-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.mj-qty-input {\n width: 44px;\n height: 28px;\n text-align: center;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-weight: 600;\n}\n\n.mj-section-title {\n font-size: 1rem;\n font-weight: 600;\n margin: 0 0 12px 0;\n color: #334155;\n}\n\n.mj-form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 18px;\n}\n\n.mj-form-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mj-form-group.full-width {\n grid-column: 1 / -1;\n}\n\n.mj-label {\n font-size: 0.8rem;\n font-weight: 500;\n color: #475569;\n}\n\n.mj-required {\n color: #ef4444;\n}\n\n.mj-input, .mj-select {\n padding: 8px 12px;\n font-size: 0.9rem;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background: #ffffff;\n color: #1e293b;\n outline: none;\n transition: border-color 0.15s ease;\n width: 100%;\n box-sizing: border-box;\n}\n\n.mj-textarea {\n min-height: 70px;\n resize: vertical;\n font-family: inherit;\n}\n\n.mj-select {\n min-height: 38px;\n}\n\n.mj-checkbox-label {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 0.9rem;\n font-weight: 400;\n color: #334155;\n margin-top: 4px;\n}\n\n/* The free-text answer that appears under a question\'s "Other" choice. */\n.mj-question-other {\n margin-top: 8px;\n}\n\n/* A choice group: its options stacked, with how many to pick beside the heading. */\n.mj-choice-group {\n border: 0;\n margin: 0;\n padding: 0;\n}\n\n.mj-choice-count {\n font-weight: normal;\n color: #64748b;\n}\n\n.mj-choice-options {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.mj-checkbox-label.is-disabled {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.mj-input:focus, .mj-select:focus {\n border-color: var(--mj-primary-color, #2563eb);\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);\n}\n\n/* The e-mail a member token was signed for (#919): shown, not editable. */\n.mj-input[readonly] {\n background: #f1f5f9;\n color: #475569;\n cursor: default;\n}\n\n.mj-field-hint {\n font-size: 0.8rem;\n color: #64748b;\n margin: 0.25rem 0 0;\n}\n\n.mj-multi-attendee-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.mj-btn-link {\n background: none;\n border: none;\n color: var(--mj-primary-color, #2563eb);\n font-size: 0.8rem;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.mj-attendee-matrix {\n display: flex;\n flex-direction: column;\n gap: 14px;\n margin-bottom: 20px;\n}\n\n.mj-attendee-card {\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 12px 14px;\n}\n\n.mj-attendee-card-title {\n font-size: 0.85rem;\n font-weight: 600;\n color: #475569;\n margin-bottom: 10px;\n}\n\n/* Stripe Payment Container */\n.mj-widget-payment-section {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #e2e8f0;\n}\n\n.mj-stripe-container {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 6px;\n padding: 14px;\n margin-bottom: 16px;\n}\n\n.mj-stripe-mount-point {\n min-height: 40px;\n}\n\n.mj-stripe-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 10px;\n font-size: 0.75rem;\n color: #64748b;\n}\n\n.mj-stripe-lock-icon {\n font-size: 0.85rem;\n}\n\n.mj-checkout-total-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 0;\n border-top: 1px solid #e2e8f0;\n margin-top: 10px;\n margin-bottom: 18px;\n}\n\n.mj-total-label {\n font-weight: 700;\n font-size: 1.05rem;\n color: #0f172a;\n}\n\n.mj-total-amount {\n font-weight: 800;\n font-size: 1.25rem;\n color: var(--mj-primary-color, #2563eb);\n}\n\n.mj-widget-actions {\n margin-top: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.mj-btn-submit {\n width: 100%;\n padding: 12px;\n background: var(--mj-primary-color, #2563eb);\n color: #ffffff;\n font-size: 1rem;\n font-weight: 600;\n border: none;\n border-radius: var(--mj-border-radius, 8px);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.15s ease;\n}\n\n.mj-btn-submit:hover:not(:disabled) {\n opacity: 0.92;\n}\n\n.mj-btn-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.mj-btn-cancel {\n width: 100%;\n padding: 8px 12px;\n background: transparent;\n color: #64748b;\n font-size: 0.875rem;\n font-weight: 500;\n border: none;\n cursor: pointer;\n text-align: center;\n}\n\n.mj-btn-cancel:hover:not(:disabled) {\n color: #334155;\n text-decoration: underline;\n}\n\n.mj-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid #ffffff;\n border-top-color: transparent;\n border-radius: 50%;\n animation: mj-spin 0.8s linear infinite;\n}\n\n@keyframes mj-spin {\n to { transform: rotate(360deg); }\n}\n\n.mj-checkout-consent {\n display: flex;\n gap: 0.5rem;\n align-items: flex-start;\n margin: 0.75rem 0;\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.4;\n}\n.mj-checkout-consent input {\n margin-top: 0.2rem;\n}\n\n/* Checkboxes keep their native size even when the host page styles every input\n (e.g. `input { width: 100% }`): this rule is scoped to the widget, so it outranks\n a plain element or class selector on the host page. */\n.mj-checkbox-label input[type=checkbox],\n.mj-checkout-consent input[type=checkbox] {\n width: auto;\n height: auto;\n padding: 0;\n border: 0;\n flex: 0 0 auto;\n}\n\n.mj-checkout-promo {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__label {\n display: block;\n font-size: 0.875rem;\n margin-bottom: 0.25rem;\n}\n.mj-checkout-promo__row {\n display: flex;\n gap: 0.5rem;\n}\n.mj-checkout-promo__input {\n flex: 1 1 auto;\n}\n.mj-checkout-promo__error {\n color: var(--mj-error-color, #b91c1c);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-promo__applied {\n color: var(--mj-success-color, #15803d);\n font-size: 0.875rem;\n margin: 0.35rem 0 0;\n}\n.mj-checkout-member-discount {\n margin: 0.75rem 0;\n}\n.mj-checkout-promo__apply {\n flex: 0 0 auto;\n padding: 8px 14px;\n background: transparent;\n color: var(--mj-primary-color, #2563eb);\n border: 1px solid var(--mj-border-color, #cbd5e1);\n border-radius: var(--mj-border-radius, 8px);\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n}\n.mj-checkout-promo__apply:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n'] }]
|
|
39133
39247
|
}], () => [{ type: ElementRef }, { type: Renderer2 }], { config: [{
|
|
39134
39248
|
type: Input
|
|
39135
39249
|
}], distributionSlug: [{
|
|
@@ -39150,6 +39264,10 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
39150
39264
|
type: Input
|
|
39151
39265
|
}], promotionError: [{
|
|
39152
39266
|
type: Input
|
|
39267
|
+
}], memberDiscount: [{
|
|
39268
|
+
type: Input
|
|
39269
|
+
}], lockEmail: [{
|
|
39270
|
+
type: Input
|
|
39153
39271
|
}], serverPricedTotal: [{
|
|
39154
39272
|
type: Input
|
|
39155
39273
|
}], quotedTotal: [{
|
|
@@ -39164,6 +39282,8 @@ var MJCheckoutWidgetComponent = class _MJCheckoutWidgetComponent {
|
|
|
39164
39282
|
type: Output
|
|
39165
39283
|
}], quoteInvalidated: [{
|
|
39166
39284
|
type: Output
|
|
39285
|
+
}], quoteRequested: [{
|
|
39286
|
+
type: Output
|
|
39167
39287
|
}] });
|
|
39168
39288
|
})();
|
|
39169
39289
|
(() => {
|
|
@@ -39225,6 +39345,19 @@ function memberDiscountNotice(draft, alreadyShown) {
|
|
|
39225
39345
|
const typedCodePriced = Array.isArray(applied) && applied.length > 0;
|
|
39226
39346
|
return typedCodePriced ? `${message} Submit again to continue.` : `${message} Submit again to continue at the standard rate.`;
|
|
39227
39347
|
}
|
|
39348
|
+
function memberDiscountFromDraft(draft, quantity) {
|
|
39349
|
+
if (!draft?.["Success"] || draft["MemberDiscountApplied"] !== true) {
|
|
39350
|
+
return null;
|
|
39351
|
+
}
|
|
39352
|
+
const applied = draft["AppliedPromotionCodes"];
|
|
39353
|
+
const code = Array.isArray(applied) && typeof applied[0] === "string" ? applied[0] : "";
|
|
39354
|
+
return {
|
|
39355
|
+
code,
|
|
39356
|
+
discount: Number(draft["Discount"] ?? 0),
|
|
39357
|
+
total: Number(draft["TotalGross"] ?? 0),
|
|
39358
|
+
quantity
|
|
39359
|
+
};
|
|
39360
|
+
}
|
|
39228
39361
|
|
|
39229
39362
|
// dist/lib/checkout-widget/checkout-turnstile.js
|
|
39230
39363
|
var TURNSTILE_SCRIPT_URL = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
|
|
@@ -39326,6 +39459,66 @@ var TurnstileWidget = class {
|
|
|
39326
39459
|
}
|
|
39327
39460
|
};
|
|
39328
39461
|
|
|
39462
|
+
// dist/lib/checkout-widget/checkout-complete.js
|
|
39463
|
+
var COMPLETE_RETRY_INTERVAL_MS = 3e3;
|
|
39464
|
+
var COMPLETE_RETRY_TIMEOUT_MS = 12e4;
|
|
39465
|
+
var COMPLETE_FINISHING_MESSAGE = "Payment received. Finishing your order\u2026";
|
|
39466
|
+
var COMPLETE_DELAYED_MESSAGE = "Your payment went through, but confirming your order is taking longer than usual. Please do not pay again. Contact support if you need your order confirmation.";
|
|
39467
|
+
var CHECKOUT_UNREACHABLE_MESSAGE = "Checkout could not reach the server. Please try again.";
|
|
39468
|
+
var CheckoutTransportError = class extends Error {
|
|
39469
|
+
HttpStatus;
|
|
39470
|
+
constructor(HttpStatus) {
|
|
39471
|
+
super(CHECKOUT_UNREACHABLE_MESSAGE);
|
|
39472
|
+
this.HttpStatus = HttpStatus;
|
|
39473
|
+
this.name = "CheckoutTransportError";
|
|
39474
|
+
}
|
|
39475
|
+
};
|
|
39476
|
+
async function ReadCheckoutReply(res) {
|
|
39477
|
+
let json;
|
|
39478
|
+
try {
|
|
39479
|
+
json = await res.json();
|
|
39480
|
+
} catch {
|
|
39481
|
+
throw new CheckoutTransportError(res.status);
|
|
39482
|
+
}
|
|
39483
|
+
if (!json || typeof json !== "object" || Array.isArray(json)) {
|
|
39484
|
+
throw new CheckoutTransportError(res.status);
|
|
39485
|
+
}
|
|
39486
|
+
const reply = json;
|
|
39487
|
+
reply._httpStatus = res.status;
|
|
39488
|
+
return reply;
|
|
39489
|
+
}
|
|
39490
|
+
function CompleteStillProcessing(reply) {
|
|
39491
|
+
return !!reply && reply.Success !== true && reply.Status === "Processing";
|
|
39492
|
+
}
|
|
39493
|
+
async function CompleteWithRetry(send, options = {}) {
|
|
39494
|
+
const interval = options.intervalMs ?? COMPLETE_RETRY_INTERVAL_MS;
|
|
39495
|
+
const now = options.now ?? (() => Date.now());
|
|
39496
|
+
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
39497
|
+
const deadline = now() + (options.timeoutMs ?? COMPLETE_RETRY_TIMEOUT_MS);
|
|
39498
|
+
let waiting = false;
|
|
39499
|
+
for (; ; ) {
|
|
39500
|
+
let reply = null;
|
|
39501
|
+
try {
|
|
39502
|
+
reply = await send();
|
|
39503
|
+
} catch (err) {
|
|
39504
|
+
if (!(err instanceof CheckoutTransportError)) {
|
|
39505
|
+
throw err;
|
|
39506
|
+
}
|
|
39507
|
+
}
|
|
39508
|
+
if (reply && !CompleteStillProcessing(reply)) {
|
|
39509
|
+
return reply;
|
|
39510
|
+
}
|
|
39511
|
+
if (!waiting) {
|
|
39512
|
+
waiting = true;
|
|
39513
|
+
options.onWaiting?.();
|
|
39514
|
+
}
|
|
39515
|
+
if (now() >= deadline) {
|
|
39516
|
+
return null;
|
|
39517
|
+
}
|
|
39518
|
+
await sleep(interval);
|
|
39519
|
+
}
|
|
39520
|
+
}
|
|
39521
|
+
|
|
39329
39522
|
// dist/lib/checkout-widget/checkout-renewal.js
|
|
39330
39523
|
function ReadRenewalPayment(response) {
|
|
39331
39524
|
if (!response || typeof response !== "object")
|
|
@@ -39369,7 +39562,7 @@ function CheckoutPublicHostComponent_Conditional_1_Template(rf, ctx) {
|
|
|
39369
39562
|
}
|
|
39370
39563
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template(rf, ctx) {
|
|
39371
39564
|
if (rf & 1) {
|
|
39372
|
-
\u0275\u0275elementStart(0, "p",
|
|
39565
|
+
\u0275\u0275elementStart(0, "p", 10);
|
|
39373
39566
|
\u0275\u0275text(1);
|
|
39374
39567
|
\u0275\u0275elementEnd();
|
|
39375
39568
|
}
|
|
@@ -39381,7 +39574,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template(rf, ct
|
|
|
39381
39574
|
}
|
|
39382
39575
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template(rf, ctx) {
|
|
39383
39576
|
if (rf & 1) {
|
|
39384
|
-
\u0275\u0275elementStart(0, "p",
|
|
39577
|
+
\u0275\u0275elementStart(0, "p", 14);
|
|
39385
39578
|
\u0275\u0275text(1);
|
|
39386
39579
|
\u0275\u0275elementEnd();
|
|
39387
39580
|
}
|
|
@@ -39394,14 +39587,14 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template(rf, ct
|
|
|
39394
39587
|
}
|
|
39395
39588
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template(rf, ctx) {
|
|
39396
39589
|
if (rf & 1) {
|
|
39397
|
-
\u0275\u0275elementStart(0, "p",
|
|
39590
|
+
\u0275\u0275elementStart(0, "p", 12);
|
|
39398
39591
|
\u0275\u0275text(1, "Setting up your account\u2026");
|
|
39399
39592
|
\u0275\u0275elementEnd();
|
|
39400
39593
|
}
|
|
39401
39594
|
}
|
|
39402
39595
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template(rf, ctx) {
|
|
39403
39596
|
if (rf & 1) {
|
|
39404
|
-
\u0275\u0275elementStart(0, "p",
|
|
39597
|
+
\u0275\u0275elementStart(0, "p", 17);
|
|
39405
39598
|
\u0275\u0275text(1);
|
|
39406
39599
|
\u0275\u0275elementEnd();
|
|
39407
39600
|
}
|
|
@@ -39413,7 +39606,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_
|
|
|
39413
39606
|
}
|
|
39414
39607
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template(rf, ctx) {
|
|
39415
39608
|
if (rf & 1) {
|
|
39416
|
-
\u0275\u0275elementStart(0, "p",
|
|
39609
|
+
\u0275\u0275elementStart(0, "p", 22);
|
|
39417
39610
|
\u0275\u0275text(1);
|
|
39418
39611
|
\u0275\u0275elementEnd();
|
|
39419
39612
|
}
|
|
@@ -39426,42 +39619,42 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10
|
|
|
39426
39619
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template(rf, ctx) {
|
|
39427
39620
|
if (rf & 1) {
|
|
39428
39621
|
const _r2 = \u0275\u0275getCurrentView();
|
|
39429
|
-
\u0275\u0275elementStart(0, "form",
|
|
39622
|
+
\u0275\u0275elementStart(0, "form", 15);
|
|
39430
39623
|
\u0275\u0275listener("submit", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_form_submit_0_listener($event) {
|
|
39431
39624
|
\u0275\u0275restoreView(_r2);
|
|
39432
39625
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39433
39626
|
$event.preventDefault();
|
|
39434
39627
|
return \u0275\u0275resetView(ctx_r0.submitPassword());
|
|
39435
39628
|
});
|
|
39436
|
-
\u0275\u0275elementStart(1, "h2",
|
|
39629
|
+
\u0275\u0275elementStart(1, "h2", 16);
|
|
39437
39630
|
\u0275\u0275text(2, "Set a password for your account");
|
|
39438
39631
|
\u0275\u0275elementEnd();
|
|
39439
|
-
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template, 2, 1, "p",
|
|
39440
|
-
\u0275\u0275elementStart(4, "label",
|
|
39632
|
+
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_3_Template, 2, 1, "p", 17);
|
|
39633
|
+
\u0275\u0275elementStart(4, "label", 18);
|
|
39441
39634
|
\u0275\u0275text(5, "Password");
|
|
39442
39635
|
\u0275\u0275elementEnd();
|
|
39443
|
-
\u0275\u0275elementStart(6, "input",
|
|
39636
|
+
\u0275\u0275elementStart(6, "input", 19);
|
|
39444
39637
|
\u0275\u0275listener("input", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_input_input_6_listener($event) {
|
|
39445
39638
|
\u0275\u0275restoreView(_r2);
|
|
39446
39639
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39447
39640
|
return \u0275\u0275resetView(ctx_r0.password = $event.target.value);
|
|
39448
39641
|
});
|
|
39449
39642
|
\u0275\u0275elementEnd();
|
|
39450
|
-
\u0275\u0275elementStart(7, "label",
|
|
39643
|
+
\u0275\u0275elementStart(7, "label", 20);
|
|
39451
39644
|
\u0275\u0275text(8, "Confirm password");
|
|
39452
39645
|
\u0275\u0275elementEnd();
|
|
39453
|
-
\u0275\u0275elementStart(9, "input",
|
|
39646
|
+
\u0275\u0275elementStart(9, "input", 21);
|
|
39454
39647
|
\u0275\u0275listener("input", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_input_input_9_listener($event) {
|
|
39455
39648
|
\u0275\u0275restoreView(_r2);
|
|
39456
39649
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39457
39650
|
return \u0275\u0275resetView(ctx_r0.passwordConfirmation = $event.target.value);
|
|
39458
39651
|
});
|
|
39459
39652
|
\u0275\u0275elementEnd();
|
|
39460
|
-
\u0275\u0275conditionalCreate(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template, 2, 1, "p",
|
|
39461
|
-
\u0275\u0275elementStart(11, "button",
|
|
39653
|
+
\u0275\u0275conditionalCreate(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Conditional_10_Template, 2, 1, "p", 22);
|
|
39654
|
+
\u0275\u0275elementStart(11, "button", 23);
|
|
39462
39655
|
\u0275\u0275text(12);
|
|
39463
39656
|
\u0275\u0275elementEnd();
|
|
39464
|
-
\u0275\u0275elementStart(13, "button",
|
|
39657
|
+
\u0275\u0275elementStart(13, "button", 24);
|
|
39465
39658
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template_button_click_13_listener() {
|
|
39466
39659
|
\u0275\u0275restoreView(_r2);
|
|
39467
39660
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -39491,7 +39684,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template(rf, c
|
|
|
39491
39684
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template(rf, ctx) {
|
|
39492
39685
|
if (rf & 1) {
|
|
39493
39686
|
const _r4 = \u0275\u0275getCurrentView();
|
|
39494
|
-
\u0275\u0275elementStart(0, "button",
|
|
39687
|
+
\u0275\u0275elementStart(0, "button", 28);
|
|
39495
39688
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template_button_click_0_listener() {
|
|
39496
39689
|
\u0275\u0275restoreView(_r4);
|
|
39497
39690
|
const ctx_r0 = \u0275\u0275nextContext(4);
|
|
@@ -39504,7 +39697,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39504
39697
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template(rf, ctx) {
|
|
39505
39698
|
if (rf & 1) {
|
|
39506
39699
|
const _r3 = \u0275\u0275getCurrentView();
|
|
39507
|
-
\u0275\u0275elementStart(0, "div",
|
|
39700
|
+
\u0275\u0275elementStart(0, "div", 25)(1, "button", 26);
|
|
39508
39701
|
\u0275\u0275listener("click", function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template_button_click_1_listener() {
|
|
39509
39702
|
\u0275\u0275restoreView(_r3);
|
|
39510
39703
|
const ctx_r0 = \u0275\u0275nextContext(3);
|
|
@@ -39512,7 +39705,7 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39512
39705
|
});
|
|
39513
39706
|
\u0275\u0275text(2, "Try again");
|
|
39514
39707
|
\u0275\u0275elementEnd();
|
|
39515
|
-
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template, 2, 0, "button",
|
|
39708
|
+
\u0275\u0275conditionalCreate(3, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Conditional_3_Template, 2, 0, "button", 27);
|
|
39516
39709
|
\u0275\u0275elementEnd();
|
|
39517
39710
|
}
|
|
39518
39711
|
if (rf & 2) {
|
|
@@ -39523,10 +39716,10 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_
|
|
|
39523
39716
|
}
|
|
39524
39717
|
function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template(rf, ctx) {
|
|
39525
39718
|
if (rf & 1) {
|
|
39526
|
-
\u0275\u0275elementStart(0, "p",
|
|
39719
|
+
\u0275\u0275elementStart(0, "p", 12);
|
|
39527
39720
|
\u0275\u0275text(1);
|
|
39528
39721
|
\u0275\u0275elementEnd();
|
|
39529
|
-
\u0275\u0275conditionalCreate(2, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template, 4, 1, "div",
|
|
39722
|
+
\u0275\u0275conditionalCreate(2, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Conditional_2_Template, 4, 1, "div", 25);
|
|
39530
39723
|
}
|
|
39531
39724
|
if (rf & 2) {
|
|
39532
39725
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
@@ -39538,18 +39731,18 @@ function CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template(rf, c
|
|
|
39538
39731
|
}
|
|
39539
39732
|
function CheckoutPublicHostComponent_Conditional_2_Template(rf, ctx) {
|
|
39540
39733
|
if (rf & 1) {
|
|
39541
|
-
\u0275\u0275elementStart(0, "div", 2)(1, "div",
|
|
39734
|
+
\u0275\u0275elementStart(0, "div", 2)(1, "div", 7);
|
|
39542
39735
|
\u0275\u0275text(2, "\u2713");
|
|
39543
39736
|
\u0275\u0275elementEnd();
|
|
39544
|
-
\u0275\u0275elementStart(3, "h1",
|
|
39737
|
+
\u0275\u0275elementStart(3, "h1", 8);
|
|
39545
39738
|
\u0275\u0275text(4, "You're all set");
|
|
39546
39739
|
\u0275\u0275elementEnd();
|
|
39547
|
-
\u0275\u0275elementStart(5, "p",
|
|
39740
|
+
\u0275\u0275elementStart(5, "p", 9);
|
|
39548
39741
|
\u0275\u0275text(6);
|
|
39549
39742
|
\u0275\u0275elementEnd();
|
|
39550
|
-
\u0275\u0275conditionalCreate(7, CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template, 2, 1, "p",
|
|
39551
|
-
\u0275\u0275conditionalCreate(8, CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template, 2, 3, "p",
|
|
39552
|
-
\u0275\u0275conditionalCreate(9, CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template, 2, 0, "p",
|
|
39743
|
+
\u0275\u0275conditionalCreate(7, CheckoutPublicHostComponent_Conditional_2_Conditional_7_Template, 2, 1, "p", 10);
|
|
39744
|
+
\u0275\u0275conditionalCreate(8, CheckoutPublicHostComponent_Conditional_2_Conditional_8_Template, 2, 3, "p", 11);
|
|
39745
|
+
\u0275\u0275conditionalCreate(9, CheckoutPublicHostComponent_Conditional_2_Conditional_9_Template, 2, 0, "p", 12)(10, CheckoutPublicHostComponent_Conditional_2_Conditional_10_Template, 15, 7, "form", 13)(11, CheckoutPublicHostComponent_Conditional_2_Conditional_11_Template, 3, 2);
|
|
39553
39746
|
\u0275\u0275elementEnd();
|
|
39554
39747
|
}
|
|
39555
39748
|
if (rf & 2) {
|
|
@@ -39566,14 +39759,26 @@ function CheckoutPublicHostComponent_Conditional_2_Template(rf, ctx) {
|
|
|
39566
39759
|
}
|
|
39567
39760
|
function CheckoutPublicHostComponent_Conditional_3_Template(rf, ctx) {
|
|
39568
39761
|
if (rf & 1) {
|
|
39569
|
-
\u0275\u0275elementStart(0, "
|
|
39762
|
+
\u0275\u0275elementStart(0, "div", 3)(1, "p", 9);
|
|
39763
|
+
\u0275\u0275text(2);
|
|
39764
|
+
\u0275\u0275elementEnd()();
|
|
39765
|
+
}
|
|
39766
|
+
if (rf & 2) {
|
|
39767
|
+
const ctx_r0 = \u0275\u0275nextContext();
|
|
39768
|
+
\u0275\u0275advance(2);
|
|
39769
|
+
\u0275\u0275textInterpolate(ctx_r0.finishingMessage);
|
|
39770
|
+
}
|
|
39771
|
+
}
|
|
39772
|
+
function CheckoutPublicHostComponent_Conditional_4_Template(rf, ctx) {
|
|
39773
|
+
if (rf & 1) {
|
|
39774
|
+
\u0275\u0275elementStart(0, "p", 4);
|
|
39570
39775
|
\u0275\u0275text(1, "Loading checkout\u2026");
|
|
39571
39776
|
\u0275\u0275elementEnd();
|
|
39572
39777
|
}
|
|
39573
39778
|
}
|
|
39574
|
-
function
|
|
39779
|
+
function CheckoutPublicHostComponent_Conditional_5_Conditional_6_Template(rf, ctx) {
|
|
39575
39780
|
if (rf & 1) {
|
|
39576
|
-
\u0275\u0275elementStart(0, "div",
|
|
39781
|
+
\u0275\u0275elementStart(0, "div", 33)(1, "dt");
|
|
39577
39782
|
\u0275\u0275text(2, "Renewal of");
|
|
39578
39783
|
\u0275\u0275elementEnd();
|
|
39579
39784
|
\u0275\u0275elementStart(3, "dd");
|
|
@@ -39586,9 +39791,9 @@ function CheckoutPublicHostComponent_Conditional_4_Conditional_6_Template(rf, ct
|
|
|
39586
39791
|
\u0275\u0275textInterpolate(ctx_r0.renewal.Description);
|
|
39587
39792
|
}
|
|
39588
39793
|
}
|
|
39589
|
-
function
|
|
39794
|
+
function CheckoutPublicHostComponent_Conditional_5_Conditional_7_Template(rf, ctx) {
|
|
39590
39795
|
if (rf & 1) {
|
|
39591
|
-
\u0275\u0275elementStart(0, "div",
|
|
39796
|
+
\u0275\u0275elementStart(0, "div", 33)(1, "dt");
|
|
39592
39797
|
\u0275\u0275text(2, "Subscription");
|
|
39593
39798
|
\u0275\u0275elementEnd();
|
|
39594
39799
|
\u0275\u0275elementStart(3, "dd");
|
|
@@ -39601,9 +39806,9 @@ function CheckoutPublicHostComponent_Conditional_4_Conditional_7_Template(rf, ct
|
|
|
39601
39806
|
\u0275\u0275textInterpolate(ctx_r0.renewal.SubscriptionNumber);
|
|
39602
39807
|
}
|
|
39603
39808
|
}
|
|
39604
|
-
function
|
|
39809
|
+
function CheckoutPublicHostComponent_Conditional_5_Conditional_13_Template(rf, ctx) {
|
|
39605
39810
|
if (rf & 1) {
|
|
39606
|
-
\u0275\u0275elementStart(0, "div",
|
|
39811
|
+
\u0275\u0275elementStart(0, "div", 33)(1, "dt");
|
|
39607
39812
|
\u0275\u0275text(2, "Due");
|
|
39608
39813
|
\u0275\u0275elementEnd();
|
|
39609
39814
|
\u0275\u0275elementStart(3, "dd");
|
|
@@ -39616,15 +39821,15 @@ function CheckoutPublicHostComponent_Conditional_4_Conditional_13_Template(rf, c
|
|
|
39616
39821
|
\u0275\u0275textInterpolate(ctx_r0.renewal.DueDate);
|
|
39617
39822
|
}
|
|
39618
39823
|
}
|
|
39619
|
-
function
|
|
39824
|
+
function CheckoutPublicHostComponent_Conditional_5_Conditional_19_Template(rf, ctx) {
|
|
39620
39825
|
if (rf & 1) {
|
|
39621
|
-
\u0275\u0275elementStart(0, "label",
|
|
39826
|
+
\u0275\u0275elementStart(0, "label", 37);
|
|
39622
39827
|
\u0275\u0275text(1, "Card");
|
|
39623
39828
|
\u0275\u0275elementEnd();
|
|
39624
|
-
\u0275\u0275element(2, "div",
|
|
39829
|
+
\u0275\u0275element(2, "div", 38);
|
|
39625
39830
|
}
|
|
39626
39831
|
}
|
|
39627
|
-
function
|
|
39832
|
+
function CheckoutPublicHostComponent_Conditional_5_Conditional_22_Template(rf, ctx) {
|
|
39628
39833
|
if (rf & 1) {
|
|
39629
39834
|
\u0275\u0275elementStart(0, "div", 1);
|
|
39630
39835
|
\u0275\u0275text(1);
|
|
@@ -39636,44 +39841,44 @@ function CheckoutPublicHostComponent_Conditional_4_Conditional_22_Template(rf, c
|
|
|
39636
39841
|
\u0275\u0275textInterpolate(ctx_r0.errorMessage);
|
|
39637
39842
|
}
|
|
39638
39843
|
}
|
|
39639
|
-
function
|
|
39844
|
+
function CheckoutPublicHostComponent_Conditional_5_Template(rf, ctx) {
|
|
39640
39845
|
if (rf & 1) {
|
|
39641
39846
|
const _r5 = \u0275\u0275getCurrentView();
|
|
39642
|
-
\u0275\u0275elementStart(0, "form",
|
|
39643
|
-
\u0275\u0275listener("submit", function
|
|
39847
|
+
\u0275\u0275elementStart(0, "form", 29);
|
|
39848
|
+
\u0275\u0275listener("submit", function CheckoutPublicHostComponent_Conditional_5_Template_form_submit_0_listener($event) {
|
|
39644
39849
|
\u0275\u0275restoreView(_r5);
|
|
39645
39850
|
const ctx_r0 = \u0275\u0275nextContext();
|
|
39646
39851
|
$event.preventDefault();
|
|
39647
39852
|
return \u0275\u0275resetView(ctx_r0.payRenewal());
|
|
39648
39853
|
});
|
|
39649
|
-
\u0275\u0275elementStart(1, "h1",
|
|
39854
|
+
\u0275\u0275elementStart(1, "h1", 30);
|
|
39650
39855
|
\u0275\u0275text(2, "Renew your subscription");
|
|
39651
39856
|
\u0275\u0275elementEnd();
|
|
39652
|
-
\u0275\u0275elementStart(3, "p",
|
|
39857
|
+
\u0275\u0275elementStart(3, "p", 31);
|
|
39653
39858
|
\u0275\u0275text(4, "Your saved card could not be charged. Pay with a new card to keep your subscription active.");
|
|
39654
39859
|
\u0275\u0275elementEnd();
|
|
39655
|
-
\u0275\u0275elementStart(5, "dl",
|
|
39656
|
-
\u0275\u0275conditionalCreate(6,
|
|
39657
|
-
\u0275\u0275conditionalCreate(7,
|
|
39658
|
-
\u0275\u0275elementStart(8, "div",
|
|
39860
|
+
\u0275\u0275elementStart(5, "dl", 32);
|
|
39861
|
+
\u0275\u0275conditionalCreate(6, CheckoutPublicHostComponent_Conditional_5_Conditional_6_Template, 5, 1, "div", 33);
|
|
39862
|
+
\u0275\u0275conditionalCreate(7, CheckoutPublicHostComponent_Conditional_5_Conditional_7_Template, 5, 1, "div", 33);
|
|
39863
|
+
\u0275\u0275elementStart(8, "div", 33)(9, "dt");
|
|
39659
39864
|
\u0275\u0275text(10, "Renewal order");
|
|
39660
39865
|
\u0275\u0275elementEnd();
|
|
39661
39866
|
\u0275\u0275elementStart(11, "dd");
|
|
39662
39867
|
\u0275\u0275text(12);
|
|
39663
39868
|
\u0275\u0275elementEnd()();
|
|
39664
|
-
\u0275\u0275conditionalCreate(13,
|
|
39665
|
-
\u0275\u0275elementStart(14, "div",
|
|
39869
|
+
\u0275\u0275conditionalCreate(13, CheckoutPublicHostComponent_Conditional_5_Conditional_13_Template, 5, 1, "div", 33);
|
|
39870
|
+
\u0275\u0275elementStart(14, "div", 34)(15, "dt");
|
|
39666
39871
|
\u0275\u0275text(16, "Amount due");
|
|
39667
39872
|
\u0275\u0275elementEnd();
|
|
39668
39873
|
\u0275\u0275elementStart(17, "dd");
|
|
39669
39874
|
\u0275\u0275text(18);
|
|
39670
39875
|
\u0275\u0275elementEnd()()();
|
|
39671
|
-
\u0275\u0275conditionalCreate(19,
|
|
39672
|
-
\u0275\u0275elementStart(20, "p",
|
|
39876
|
+
\u0275\u0275conditionalCreate(19, CheckoutPublicHostComponent_Conditional_5_Conditional_19_Template, 3, 0);
|
|
39877
|
+
\u0275\u0275elementStart(20, "p", 35);
|
|
39673
39878
|
\u0275\u0275text(21, "The card you pay with will be charged for future renewals.");
|
|
39674
39879
|
\u0275\u0275elementEnd();
|
|
39675
|
-
\u0275\u0275conditionalCreate(22,
|
|
39676
|
-
\u0275\u0275elementStart(23, "button",
|
|
39880
|
+
\u0275\u0275conditionalCreate(22, CheckoutPublicHostComponent_Conditional_5_Conditional_22_Template, 2, 1, "div", 1);
|
|
39881
|
+
\u0275\u0275elementStart(23, "button", 36);
|
|
39677
39882
|
\u0275\u0275text(24);
|
|
39678
39883
|
\u0275\u0275elementEnd()();
|
|
39679
39884
|
}
|
|
@@ -39699,37 +39904,41 @@ function CheckoutPublicHostComponent_Conditional_4_Template(rf, ctx) {
|
|
|
39699
39904
|
\u0275\u0275textInterpolate1(" ", ctx_r0.processing ? "Processing\u2026" : "Pay " + ctx_r0.renewalAmount, " ");
|
|
39700
39905
|
}
|
|
39701
39906
|
}
|
|
39702
|
-
function
|
|
39907
|
+
function CheckoutPublicHostComponent_Conditional_6_For_1_Template(rf, ctx) {
|
|
39703
39908
|
if (rf & 1) {
|
|
39704
39909
|
const _r6 = \u0275\u0275getCurrentView();
|
|
39705
|
-
\u0275\u0275elementStart(0, "mj-checkout-widget",
|
|
39706
|
-
\u0275\u0275listener("promotionCodeApplied", function
|
|
39910
|
+
\u0275\u0275elementStart(0, "mj-checkout-widget", 40);
|
|
39911
|
+
\u0275\u0275listener("promotionCodeApplied", function CheckoutPublicHostComponent_Conditional_6_For_1_Template_mj_checkout_widget_promotionCodeApplied_0_listener($event) {
|
|
39707
39912
|
\u0275\u0275restoreView(_r6);
|
|
39708
39913
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39709
39914
|
return \u0275\u0275resetView(ctx_r0.onPromotionCodeApplied($event));
|
|
39710
|
-
})("submitted", function
|
|
39915
|
+
})("submitted", function CheckoutPublicHostComponent_Conditional_6_For_1_Template_mj_checkout_widget_submitted_0_listener($event) {
|
|
39711
39916
|
\u0275\u0275restoreView(_r6);
|
|
39712
39917
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39713
39918
|
return \u0275\u0275resetView(ctx_r0.onSubmitted($event));
|
|
39714
|
-
})("cancelled", function
|
|
39919
|
+
})("cancelled", function CheckoutPublicHostComponent_Conditional_6_For_1_Template_mj_checkout_widget_cancelled_0_listener() {
|
|
39715
39920
|
\u0275\u0275restoreView(_r6);
|
|
39716
39921
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39717
39922
|
return \u0275\u0275resetView(ctx_r0.onCancelled());
|
|
39718
|
-
})("quoteInvalidated", function
|
|
39923
|
+
})("quoteInvalidated", function CheckoutPublicHostComponent_Conditional_6_For_1_Template_mj_checkout_widget_quoteInvalidated_0_listener() {
|
|
39719
39924
|
\u0275\u0275restoreView(_r6);
|
|
39720
39925
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39721
39926
|
return \u0275\u0275resetView(ctx_r0.onQuoteInvalidated());
|
|
39927
|
+
})("quoteRequested", function CheckoutPublicHostComponent_Conditional_6_For_1_Template_mj_checkout_widget_quoteRequested_0_listener($event) {
|
|
39928
|
+
\u0275\u0275restoreView(_r6);
|
|
39929
|
+
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39930
|
+
return \u0275\u0275resetView(ctx_r0.onQuoteRequested($event));
|
|
39722
39931
|
});
|
|
39723
39932
|
\u0275\u0275elementEnd();
|
|
39724
39933
|
}
|
|
39725
39934
|
if (rf & 2) {
|
|
39726
39935
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39727
|
-
\u0275\u0275property("config", ctx_r0.config)("distributionSlug", ctx_r0.slug)("sessionKey", ctx_r0.sessionKey)("isProcessing", ctx_r0.processing)("isPaymentReady", ctx_r0.isPaymentReady)("stripePaymentMethodId", ctx_r0.stripePaymentMethodId)("prefillEmail", ctx_r0.prefillEmail)("errorMessage", ctx_r0.errorMessage)("appliedPromotion", ctx_r0.appliedPromotion)("serverPricedTotal", ctx_r0.serverPricedTotal)("promotionError", ctx_r0.promotionError)("quotedTotal", ctx_r0.quotedTotal)("quotedTax", ctx_r0.quotedTax);
|
|
39936
|
+
\u0275\u0275property("config", ctx_r0.config)("distributionSlug", ctx_r0.slug)("sessionKey", ctx_r0.sessionKey)("isProcessing", ctx_r0.processing)("isPaymentReady", ctx_r0.isPaymentReady)("stripePaymentMethodId", ctx_r0.stripePaymentMethodId)("prefillEmail", ctx_r0.prefillEmail)("errorMessage", ctx_r0.errorMessage)("appliedPromotion", ctx_r0.appliedPromotion)("serverPricedTotal", ctx_r0.serverPricedTotal)("memberDiscount", ctx_r0.memberDiscount)("lockEmail", ctx_r0.emailLocked)("promotionError", ctx_r0.promotionError)("quotedTotal", ctx_r0.quotedTotal)("quotedTax", ctx_r0.quotedTax);
|
|
39728
39937
|
}
|
|
39729
39938
|
}
|
|
39730
|
-
function
|
|
39939
|
+
function CheckoutPublicHostComponent_Conditional_6_Template(rf, ctx) {
|
|
39731
39940
|
if (rf & 1) {
|
|
39732
|
-
\u0275\u0275repeaterCreate(0,
|
|
39941
|
+
\u0275\u0275repeaterCreate(0, CheckoutPublicHostComponent_Conditional_6_For_1_Template, 1, 15, "mj-checkout-widget", 39, \u0275\u0275repeaterTrackByIdentity);
|
|
39733
39942
|
}
|
|
39734
39943
|
if (rf & 2) {
|
|
39735
39944
|
const ctx_r0 = \u0275\u0275nextContext();
|
|
@@ -39778,6 +39987,26 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39778
39987
|
/** The server's total and tax for the details last drafted — shown before the buyer is charged. */
|
|
39779
39988
|
quotedTotal = null;
|
|
39780
39989
|
quotedTax = null;
|
|
39990
|
+
/** The verified member's discount the server last priced, shown before Pay (#919). */
|
|
39991
|
+
memberDiscount = null;
|
|
39992
|
+
/** How long the form must be still before a member's price is asked for. A field so a test can shorten it. */
|
|
39993
|
+
quoteDebounceMs = 400;
|
|
39994
|
+
quoteTimer = null;
|
|
39995
|
+
/** Bumped by every price change; a background answer for an older generation is dropped. */
|
|
39996
|
+
quoteGeneration = 0;
|
|
39997
|
+
/**
|
|
39998
|
+
* Every background draft still in flight. Pay and Apply wait for all of them, not only the latest: an older
|
|
39999
|
+
* one that lands after Pay's own draft would replace it on the session, and `/payment-intent` charges the
|
|
40000
|
+
* total the session's last draft saved.
|
|
40001
|
+
*/
|
|
40002
|
+
backgroundQuotes = /* @__PURE__ */ new Set();
|
|
40003
|
+
/**
|
|
40004
|
+
* The e-mail is locked while a member token is attached and the host supplied the address (#919):
|
|
40005
|
+
* the discount is bound to it. Without a prefilled address the buyer must still be able to type one.
|
|
40006
|
+
*/
|
|
40007
|
+
get emailLocked() {
|
|
40008
|
+
return !!this.memberToken && !!this.prefillEmail?.trim();
|
|
40009
|
+
}
|
|
39781
40010
|
/** The post-payment account step, when the host registered one (#292). */
|
|
39782
40011
|
account = null;
|
|
39783
40012
|
password = "";
|
|
@@ -39802,6 +40031,14 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39802
40031
|
accessPollTimeoutMs = ACCESS_POLL_TIMEOUT_MS;
|
|
39803
40032
|
/** True while access is being asked for; the redirect waits on it. */
|
|
39804
40033
|
accessTracking = false;
|
|
40034
|
+
/**
|
|
40035
|
+
* Shown in place of the form once the buyer has paid and `/complete` has not given a final
|
|
40036
|
+
* answer (the reply was a gateway error page, or the session is still Processing).
|
|
40037
|
+
*/
|
|
40038
|
+
finishingMessage = null;
|
|
40039
|
+
/** How often, and for how long, `/complete` is asked again. Fields so a test can shorten them. */
|
|
40040
|
+
completeRetryIntervalMs = COMPLETE_RETRY_INTERVAL_MS;
|
|
40041
|
+
completeRetryTimeoutMs = COMPLETE_RETRY_TIMEOUT_MS;
|
|
39805
40042
|
get accessMessage() {
|
|
39806
40043
|
return AccessMessage(this.accessState, this.config?.accessMessages);
|
|
39807
40044
|
}
|
|
@@ -39893,6 +40130,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39893
40130
|
}
|
|
39894
40131
|
ngOnDestroy() {
|
|
39895
40132
|
this.destroyed = true;
|
|
40133
|
+
this.cancelBackgroundQuote();
|
|
39896
40134
|
this.turnstile.Destroy();
|
|
39897
40135
|
this.hostEl?.nativeElement?.removeEventListener?.(CHECKOUT_RESET_REQUEST_EVENT, this.onResetRequested);
|
|
39898
40136
|
try {
|
|
@@ -39908,18 +40146,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39908
40146
|
this.processing = true;
|
|
39909
40147
|
this.promotionError = null;
|
|
39910
40148
|
try {
|
|
39911
|
-
|
|
39912
|
-
|
|
39913
|
-
clientSessionKey: this.sessionKey,
|
|
39914
|
-
email: event.email,
|
|
39915
|
-
lines: [buildCheckoutDraftLine(this.config.productId, event)],
|
|
39916
|
-
billingAddress: event.billingAddress,
|
|
39917
|
-
answers: event.answers,
|
|
39918
|
-
choices: event.choices,
|
|
39919
|
-
...this.attributionSource ? { attribution: { source: this.attributionSource, reference: this.attributionReference } } : {},
|
|
39920
|
-
...this.memberToken ? { memberToken: this.memberToken } : {},
|
|
39921
|
-
promotionCodes: [event.promotionCode]
|
|
39922
|
-
});
|
|
40149
|
+
await this.settleBackgroundQuote();
|
|
40150
|
+
const draft = await this.post("/draft", this.draftBody(this.config.productId, event, [event.promotionCode]));
|
|
39923
40151
|
this.applyPromotionOutcome(draft, event);
|
|
39924
40152
|
} catch {
|
|
39925
40153
|
this.promotionError = "The code could not be checked. Please try again.";
|
|
@@ -40016,6 +40244,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40016
40244
|
this.errorMessage = null;
|
|
40017
40245
|
this.stripePaymentMethodId = null;
|
|
40018
40246
|
this.serverPricedTotal = null;
|
|
40247
|
+
this.memberDiscount = null;
|
|
40248
|
+
this.cancelBackgroundQuote();
|
|
40019
40249
|
try {
|
|
40020
40250
|
this.card?.destroy?.();
|
|
40021
40251
|
} catch {
|
|
@@ -40031,6 +40261,87 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40031
40261
|
this.quotedTax = null;
|
|
40032
40262
|
this.serverPricedTotal = null;
|
|
40033
40263
|
this.appliedPromotion = null;
|
|
40264
|
+
this.memberDiscount = null;
|
|
40265
|
+
this.cancelBackgroundQuote();
|
|
40266
|
+
}
|
|
40267
|
+
/**
|
|
40268
|
+
* The widget's e-mail and billing location are complete and a price input changed (#919). With a
|
|
40269
|
+
* member token, the form is drafted in the background once it has been still for
|
|
40270
|
+
* `quoteDebounceMs`, so a verified member sees the discount, the total and the Pay button at the
|
|
40271
|
+
* member price before pressing Pay, and one press pays. Without a token nothing is sent.
|
|
40272
|
+
*/
|
|
40273
|
+
onQuoteRequested(event) {
|
|
40274
|
+
if (!this.memberToken || this.renewalToken || !this.config?.productId) {
|
|
40275
|
+
return;
|
|
40276
|
+
}
|
|
40277
|
+
this.cancelBackgroundQuote();
|
|
40278
|
+
const generation = this.quoteGeneration;
|
|
40279
|
+
this.quoteTimer = setTimeout(() => {
|
|
40280
|
+
this.quoteTimer = null;
|
|
40281
|
+
const run = this.priceInBackground(event, generation);
|
|
40282
|
+
this.backgroundQuotes.add(run);
|
|
40283
|
+
void run.finally(() => this.backgroundQuotes.delete(run));
|
|
40284
|
+
}, this.quoteDebounceMs);
|
|
40285
|
+
}
|
|
40286
|
+
/**
|
|
40287
|
+
* Drafts the form with the member token and no typed code. Never blocks the form and never
|
|
40288
|
+
* reports an error: on any failure the price stays as it is, and Pay drafts it again. An answer
|
|
40289
|
+
* for an older generation, or one that arrives while Pay is being processed, is dropped. A token
|
|
40290
|
+
* that earned nothing changes nothing here; Pay shows its notice as before.
|
|
40291
|
+
*/
|
|
40292
|
+
async priceInBackground(event, generation) {
|
|
40293
|
+
const productId = this.config?.productId;
|
|
40294
|
+
if (!productId || this.processing || this.destroyed) {
|
|
40295
|
+
return;
|
|
40296
|
+
}
|
|
40297
|
+
let draft;
|
|
40298
|
+
try {
|
|
40299
|
+
draft = await this.post("/draft", this.draftBody(productId, event, []));
|
|
40300
|
+
} catch {
|
|
40301
|
+
return;
|
|
40302
|
+
}
|
|
40303
|
+
if (generation !== this.quoteGeneration || this.processing || this.destroyed) {
|
|
40304
|
+
return;
|
|
40305
|
+
}
|
|
40306
|
+
this.memberDiscount = memberDiscountFromDraft(draft, event.quantity);
|
|
40307
|
+
if (this.memberDiscount) {
|
|
40308
|
+
const tax = typeof draft.Tax === "number" ? draft.Tax : 0;
|
|
40309
|
+
this.serverPricedTotal = { total: this.memberDiscount.total, quantity: event.quantity };
|
|
40310
|
+
this.quotedTotal = this.memberDiscount.total;
|
|
40311
|
+
this.quotedTax = tax > 0 ? tax : null;
|
|
40312
|
+
}
|
|
40313
|
+
this.cdr.detectChanges();
|
|
40314
|
+
}
|
|
40315
|
+
/** Drops a pending background draft and makes any answer already on its way stale. */
|
|
40316
|
+
cancelBackgroundQuote() {
|
|
40317
|
+
if (this.quoteTimer) {
|
|
40318
|
+
clearTimeout(this.quoteTimer);
|
|
40319
|
+
this.quoteTimer = null;
|
|
40320
|
+
}
|
|
40321
|
+
this.quoteGeneration++;
|
|
40322
|
+
}
|
|
40323
|
+
/**
|
|
40324
|
+
* Before Pay or Apply drafts: no background draft may start after it, and every one already sent is
|
|
40325
|
+
* waited for, so the server's session holds the buyer's draft rather than a background one.
|
|
40326
|
+
*/
|
|
40327
|
+
async settleBackgroundQuote() {
|
|
40328
|
+
this.cancelBackgroundQuote();
|
|
40329
|
+
await Promise.all([...this.backgroundQuotes]);
|
|
40330
|
+
}
|
|
40331
|
+
/** The `/draft` body for a widget submission, priced with the given typed codes. */
|
|
40332
|
+
draftBody(productId, event, promotionCodes) {
|
|
40333
|
+
return {
|
|
40334
|
+
sessionId: this.sessionId,
|
|
40335
|
+
clientSessionKey: this.sessionKey,
|
|
40336
|
+
email: event.email,
|
|
40337
|
+
lines: [buildCheckoutDraftLine(productId, event)],
|
|
40338
|
+
billingAddress: event.billingAddress,
|
|
40339
|
+
answers: event.answers,
|
|
40340
|
+
...this.attributionSource ? { attribution: { source: this.attributionSource, reference: this.attributionReference } } : {},
|
|
40341
|
+
choices: event.choices,
|
|
40342
|
+
...this.memberToken ? { memberToken: this.memberToken } : {},
|
|
40343
|
+
promotionCodes
|
|
40344
|
+
};
|
|
40034
40345
|
}
|
|
40035
40346
|
async onSubmitted(event) {
|
|
40036
40347
|
if (this.processing || !this.config?.productId) {
|
|
@@ -40040,19 +40351,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40040
40351
|
this.errorMessage = null;
|
|
40041
40352
|
this.setState("PROCESSING");
|
|
40042
40353
|
try {
|
|
40043
|
-
|
|
40044
|
-
const draft = await this.post("/draft",
|
|
40045
|
-
sessionId: this.sessionId,
|
|
40046
|
-
clientSessionKey: this.sessionKey,
|
|
40047
|
-
email: event.email,
|
|
40048
|
-
lines: [line],
|
|
40049
|
-
billingAddress: event.billingAddress,
|
|
40050
|
-
answers: event.answers,
|
|
40051
|
-
...this.attributionSource ? { attribution: { source: this.attributionSource, reference: this.attributionReference } } : {},
|
|
40052
|
-
choices: event.choices,
|
|
40053
|
-
...this.memberToken ? { memberToken: this.memberToken } : {},
|
|
40054
|
-
promotionCodes: event.promotionCode ? [event.promotionCode] : []
|
|
40055
|
-
});
|
|
40354
|
+
await this.settleBackgroundQuote();
|
|
40355
|
+
const draft = await this.post("/draft", this.draftBody(this.config.productId, event, event.promotionCode ? [event.promotionCode] : []));
|
|
40056
40356
|
if (!this.applyPromotionOutcome(draft, event)) {
|
|
40057
40357
|
return;
|
|
40058
40358
|
}
|
|
@@ -40061,6 +40361,9 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40061
40361
|
throw new Error(this.str(draft?.ErrorMessage, "Could not price this checkout."));
|
|
40062
40362
|
}
|
|
40063
40363
|
this.serverPricedTotal = { total: Number(draft.TotalGross ?? 0), quantity: event.quantity };
|
|
40364
|
+
if (this.memberToken) {
|
|
40365
|
+
this.memberDiscount = memberDiscountFromDraft(draft, event.quantity);
|
|
40366
|
+
}
|
|
40064
40367
|
const notice = memberDiscountNotice(draft, this.memberNoticeShown);
|
|
40065
40368
|
if (notice) {
|
|
40066
40369
|
this.memberNoticeShown = true;
|
|
@@ -40167,12 +40470,15 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40167
40470
|
}
|
|
40168
40471
|
}
|
|
40169
40472
|
}
|
|
40170
|
-
const done = await this.post("/complete", {
|
|
40473
|
+
const done = await this.completeAfterPayment(() => this.post("/complete", {
|
|
40171
40474
|
sessionId: this.sessionId,
|
|
40172
40475
|
clientSessionKey: this.sessionKey
|
|
40173
|
-
});
|
|
40174
|
-
if (!done
|
|
40175
|
-
|
|
40476
|
+
}));
|
|
40477
|
+
if (!done) {
|
|
40478
|
+
return;
|
|
40479
|
+
}
|
|
40480
|
+
if (!done.Success) {
|
|
40481
|
+
throw new Error(this.str(done.ErrorMessage, "Could not complete the payment."));
|
|
40176
40482
|
}
|
|
40177
40483
|
this.orderNumber = this.renewal.OrderNumber;
|
|
40178
40484
|
this.successMessage = RenewalPaidMessage(this.renewal);
|
|
@@ -40217,12 +40523,15 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40217
40523
|
}
|
|
40218
40524
|
async finish() {
|
|
40219
40525
|
this.rememberCompleting(this.sessionId);
|
|
40220
|
-
const done = await this.postGated("/complete", {
|
|
40526
|
+
const done = await this.completeAfterPayment(() => this.postGated("/complete", {
|
|
40221
40527
|
sessionId: this.sessionId,
|
|
40222
40528
|
clientSessionKey: this.sessionKey
|
|
40223
|
-
});
|
|
40224
|
-
if (!done
|
|
40225
|
-
|
|
40529
|
+
}));
|
|
40530
|
+
if (!done) {
|
|
40531
|
+
return;
|
|
40532
|
+
}
|
|
40533
|
+
if (!done.Success) {
|
|
40534
|
+
throw new Error(this.str(done.ErrorMessage, "Could not complete checkout."));
|
|
40226
40535
|
}
|
|
40227
40536
|
this.orderNumber = done.OrderNumber ? String(done.OrderNumber) : null;
|
|
40228
40537
|
this.successMessage = this.config?.successMessage || (this.orderNumber ? `Thank you. Order ${this.orderNumber} is confirmed.` : "Thank you. Your order is confirmed.");
|
|
@@ -40554,16 +40863,37 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40554
40863
|
return null;
|
|
40555
40864
|
}
|
|
40556
40865
|
}
|
|
40557
|
-
|
|
40558
|
-
|
|
40559
|
-
|
|
40560
|
-
|
|
40561
|
-
|
|
40562
|
-
|
|
40866
|
+
/**
|
|
40867
|
+
* Sends `/complete` for a checkout the buyer has paid for, asking again while the server may
|
|
40868
|
+
* still be finishing. Returns the server's final answer, or null when the wait ran out; the
|
|
40869
|
+
* buyer then sees that the payment went through, never a failure.
|
|
40870
|
+
*/
|
|
40871
|
+
async completeAfterPayment(send) {
|
|
40872
|
+
const done = await CompleteWithRetry(send, {
|
|
40873
|
+
intervalMs: this.completeRetryIntervalMs,
|
|
40874
|
+
timeoutMs: this.completeRetryTimeoutMs,
|
|
40875
|
+
onWaiting: () => {
|
|
40876
|
+
this.finishingMessage = COMPLETE_FINISHING_MESSAGE;
|
|
40877
|
+
this.cdr.detectChanges();
|
|
40878
|
+
}
|
|
40563
40879
|
});
|
|
40564
|
-
|
|
40565
|
-
|
|
40566
|
-
|
|
40880
|
+
this.finishingMessage = done ? null : COMPLETE_DELAYED_MESSAGE;
|
|
40881
|
+
return done;
|
|
40882
|
+
}
|
|
40883
|
+
/** Throws {@link CheckoutTransportError}, whose message is written for the buyer, when no JSON reply arrives. */
|
|
40884
|
+
async post(path, body) {
|
|
40885
|
+
let res;
|
|
40886
|
+
try {
|
|
40887
|
+
res = await fetch(`${this.apiRoot}${path}`, {
|
|
40888
|
+
method: "POST",
|
|
40889
|
+
headers: { "Content-Type": "application/json" },
|
|
40890
|
+
credentials: "same-origin",
|
|
40891
|
+
body: JSON.stringify(body)
|
|
40892
|
+
});
|
|
40893
|
+
} catch {
|
|
40894
|
+
throw new CheckoutTransportError(null);
|
|
40895
|
+
}
|
|
40896
|
+
return ReadCheckoutReply(res);
|
|
40567
40897
|
}
|
|
40568
40898
|
/** `/initialize` and `/complete`: sends a Turnstile token when the widget requires one. */
|
|
40569
40899
|
postGated(path, body) {
|
|
@@ -40590,16 +40920,16 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40590
40920
|
static \u0275fac = function CheckoutPublicHostComponent_Factory(__ngFactoryType__) {
|
|
40591
40921
|
return new (__ngFactoryType__ || _CheckoutPublicHostComponent)();
|
|
40592
40922
|
};
|
|
40593
|
-
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CheckoutPublicHostComponent, selectors: [["mj-orders-checkout"]], inputs: { slug: "slug", apiRoot: "apiRoot", memberToken: "memberToken", renewalToken: "renewalToken" }, outputs: { alreadySubscribed: "checkout-already-subscribed" }, decls:
|
|
40923
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _CheckoutPublicHostComponent, selectors: [["mj-orders-checkout"]], inputs: { slug: "slug", apiRoot: "apiRoot", memberToken: "memberToken", renewalToken: "renewalToken" }, outputs: { alreadySubscribed: "checkout-already-subscribed" }, decls: 8, vars: 1, consts: [[1, "mj-checkout-public"], ["role", "alert", 1, "mj-widget-error-banner"], ["role", "status", 1, "mj-checkout-success"], ["role", "status", "aria-live", "polite", 1, "mj-checkout-success"], ["role", "status", 1, "mj-checkout-public__status"], [1, "mj-checkout-renewal"], [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"], [1, "mj-checkout-renewal", 3, "submit"], [1, "mj-checkout-renewal__title"], [1, "mj-checkout-renewal__lead"], [1, "mj-checkout-renewal__summary"], [1, "mj-checkout-renewal__row"], [1, "mj-checkout-renewal__row", "mj-checkout-renewal__row--total"], [1, "mj-checkout-renewal__note"], ["type", "submit", 1, "mj-checkout-renewal__pay", 3, "disabled"], ["for", "stripe-card-element", 1, "mj-checkout-renewal__label"], ["id", "stripe-card-element", 1, "mj-checkout-renewal__card"], [3, "config", "distributionSlug", "sessionKey", "isProcessing", "isPaymentReady", "stripePaymentMethodId", "prefillEmail", "errorMessage", "appliedPromotion", "serverPricedTotal", "memberDiscount", "lockEmail", "promotionError", "quotedTotal", "quotedTax"], [3, "promotionCodeApplied", "submitted", "cancelled", "quoteInvalidated", "quoteRequested", "config", "distributionSlug", "sessionKey", "isProcessing", "isPaymentReady", "stripePaymentMethodId", "prefillEmail", "errorMessage", "appliedPromotion", "serverPricedTotal", "memberDiscount", "lockEmail", "promotionError", "quotedTotal", "quotedTax"]], template: function CheckoutPublicHostComponent_Template(rf, ctx) {
|
|
40594
40924
|
if (rf & 1) {
|
|
40595
40925
|
\u0275\u0275elementStart(0, "div", 0);
|
|
40596
|
-
\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,
|
|
40597
|
-
\u0275\u0275element(
|
|
40926
|
+
\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, 3, 1, "div", 3)(4, CheckoutPublicHostComponent_Conditional_4_Template, 2, 0, "p", 4)(5, CheckoutPublicHostComponent_Conditional_5_Template, 25, 9, "form", 5)(6, CheckoutPublicHostComponent_Conditional_6_Template, 2, 2);
|
|
40927
|
+
\u0275\u0275element(7, "div", 6);
|
|
40598
40928
|
\u0275\u0275elementEnd();
|
|
40599
40929
|
}
|
|
40600
40930
|
if (rf & 2) {
|
|
40601
40931
|
\u0275\u0275advance();
|
|
40602
|
-
\u0275\u0275conditional(ctx.loadError ? 1 : ctx.successMessage ? 2 : !ctx.config ?
|
|
40932
|
+
\u0275\u0275conditional(ctx.loadError ? 1 : ctx.successMessage ? 2 : ctx.finishingMessage ? 3 : !ctx.config ? 4 : ctx.renewal ? 5 : 6);
|
|
40603
40933
|
}
|
|
40604
40934
|
}, 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}\n\n\n\n\n.mj-checkout-renewal[_ngcontent-%COMP%] {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n padding: 1.75rem 1.5rem;\n box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);\n display: flex;\n flex-direction: column;\n gap: 0.85rem;\n}\n\n.mj-checkout-renewal__title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.4rem;\n font-weight: 800;\n color: #0f172a;\n}\n\n.mj-checkout-renewal__lead[_ngcontent-%COMP%], \n.mj-checkout-renewal__note[_ngcontent-%COMP%] {\n margin: 0;\n color: #475569;\n font-size: 0.95rem;\n line-height: 1.5;\n}\n\n.mj-checkout-renewal__note[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n}\n\n.mj-checkout-renewal__summary[_ngcontent-%COMP%] {\n margin: 0.25rem 0;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n padding: 0.25rem 0.9rem;\n}\n\n.mj-checkout-renewal__row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 1rem;\n padding: 0.55rem 0;\n border-bottom: 1px solid #f1f5f9;\n font-size: 0.92rem;\n}\n\n.mj-checkout-renewal__row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.mj-checkout-renewal__row[_ngcontent-%COMP%] dt[_ngcontent-%COMP%] {\n color: #64748b;\n}\n\n.mj-checkout-renewal__row[_ngcontent-%COMP%] dd[_ngcontent-%COMP%] {\n margin: 0;\n color: #0f172a;\n text-align: right;\n}\n\n.mj-checkout-renewal__row--total[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], \n.mj-checkout-renewal__row--total[_ngcontent-%COMP%] dd[_ngcontent-%COMP%] {\n font-weight: 700;\n color: #0f172a;\n}\n\n.mj-checkout-renewal__label[_ngcontent-%COMP%] {\n font-size: 0.85rem;\n font-weight: 600;\n color: #334155;\n}\n\n.mj-checkout-renewal__card[_ngcontent-%COMP%] {\n border: 1px solid #cbd5e1;\n border-radius: 6px;\n padding: 0.75rem;\n background: #ffffff;\n}\n\n.mj-checkout-renewal__pay[_ngcontent-%COMP%] {\n margin-top: 0.25rem;\n padding: 0.8rem 1rem;\n border: none;\n border-radius: 6px;\n background: var(--mj-checkout-primary, #2563eb);\n color: #ffffff;\n font-size: 1rem;\n font-weight: 700;\n cursor: pointer;\n}\n\n.mj-checkout-renewal__pay[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}"] });
|
|
40605
40935
|
};
|
|
@@ -40666,6 +40996,10 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40666
40996
|
}
|
|
40667
40997
|
}
|
|
40668
40998
|
</div>
|
|
40999
|
+
} @else if (finishingMessage) {
|
|
41000
|
+
<div class="mj-checkout-success" role="status" aria-live="polite">
|
|
41001
|
+
<p class="mj-checkout-success__msg">{{ finishingMessage }}</p>
|
|
41002
|
+
</div>
|
|
40669
41003
|
} @else if (!config) {
|
|
40670
41004
|
<p class="mj-checkout-public__status" role="status">Loading checkout\u2026</p>
|
|
40671
41005
|
} @else if (renewal) {
|
|
@@ -40725,13 +41059,16 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40725
41059
|
[errorMessage]="errorMessage"
|
|
40726
41060
|
[appliedPromotion]="appliedPromotion"
|
|
40727
41061
|
[serverPricedTotal]="serverPricedTotal"
|
|
41062
|
+
[memberDiscount]="memberDiscount"
|
|
41063
|
+
[lockEmail]="emailLocked"
|
|
40728
41064
|
[promotionError]="promotionError"
|
|
40729
41065
|
(promotionCodeApplied)="onPromotionCodeApplied($event)"
|
|
40730
41066
|
[quotedTotal]="quotedTotal"
|
|
40731
41067
|
[quotedTax]="quotedTax"
|
|
40732
41068
|
(submitted)="onSubmitted($event)"
|
|
40733
41069
|
(cancelled)="onCancelled()"
|
|
40734
|
-
(quoteInvalidated)="onQuoteInvalidated()"
|
|
41070
|
+
(quoteInvalidated)="onQuoteInvalidated()"
|
|
41071
|
+
(quoteRequested)="onQuoteRequested($event)">
|
|
40735
41072
|
</mj-checkout-widget>
|
|
40736
41073
|
}
|
|
40737
41074
|
}
|
|
@@ -40752,7 +41089,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40752
41089
|
}] });
|
|
40753
41090
|
})();
|
|
40754
41091
|
(() => {
|
|
40755
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CheckoutPublicHostComponent, { className: "CheckoutPublicHostComponent", filePath: "lib/checkout-widget/checkout-public-host.component.ts", lineNumber:
|
|
41092
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(CheckoutPublicHostComponent, { className: "CheckoutPublicHostComponent", filePath: "lib/checkout-widget/checkout-public-host.component.ts", lineNumber: 122 });
|
|
40756
41093
|
})();
|
|
40757
41094
|
|
|
40758
41095
|
// scripts/checkout-element-entry.ts
|