@mj-biz-apps/orders-ng 5.36.1 → 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 +301 -75
- 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 +41 -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 +124 -38
- 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";
|
|
@@ -39791,17 +39924,21 @@ function CheckoutPublicHostComponent_Conditional_6_For_1_Template(rf, ctx) {
|
|
|
39791
39924
|
\u0275\u0275restoreView(_r6);
|
|
39792
39925
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39793
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));
|
|
39794
39931
|
});
|
|
39795
39932
|
\u0275\u0275elementEnd();
|
|
39796
39933
|
}
|
|
39797
39934
|
if (rf & 2) {
|
|
39798
39935
|
const ctx_r0 = \u0275\u0275nextContext(2);
|
|
39799
|
-
\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);
|
|
39800
39937
|
}
|
|
39801
39938
|
}
|
|
39802
39939
|
function CheckoutPublicHostComponent_Conditional_6_Template(rf, ctx) {
|
|
39803
39940
|
if (rf & 1) {
|
|
39804
|
-
\u0275\u0275repeaterCreate(0, CheckoutPublicHostComponent_Conditional_6_For_1_Template, 1,
|
|
39941
|
+
\u0275\u0275repeaterCreate(0, CheckoutPublicHostComponent_Conditional_6_For_1_Template, 1, 15, "mj-checkout-widget", 39, \u0275\u0275repeaterTrackByIdentity);
|
|
39805
39942
|
}
|
|
39806
39943
|
if (rf & 2) {
|
|
39807
39944
|
const ctx_r0 = \u0275\u0275nextContext();
|
|
@@ -39850,6 +39987,26 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39850
39987
|
/** The server's total and tax for the details last drafted — shown before the buyer is charged. */
|
|
39851
39988
|
quotedTotal = null;
|
|
39852
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
|
+
}
|
|
39853
40010
|
/** The post-payment account step, when the host registered one (#292). */
|
|
39854
40011
|
account = null;
|
|
39855
40012
|
password = "";
|
|
@@ -39973,6 +40130,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39973
40130
|
}
|
|
39974
40131
|
ngOnDestroy() {
|
|
39975
40132
|
this.destroyed = true;
|
|
40133
|
+
this.cancelBackgroundQuote();
|
|
39976
40134
|
this.turnstile.Destroy();
|
|
39977
40135
|
this.hostEl?.nativeElement?.removeEventListener?.(CHECKOUT_RESET_REQUEST_EVENT, this.onResetRequested);
|
|
39978
40136
|
try {
|
|
@@ -39988,18 +40146,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
39988
40146
|
this.processing = true;
|
|
39989
40147
|
this.promotionError = null;
|
|
39990
40148
|
try {
|
|
39991
|
-
|
|
39992
|
-
|
|
39993
|
-
clientSessionKey: this.sessionKey,
|
|
39994
|
-
email: event.email,
|
|
39995
|
-
lines: [buildCheckoutDraftLine(this.config.productId, event)],
|
|
39996
|
-
billingAddress: event.billingAddress,
|
|
39997
|
-
answers: event.answers,
|
|
39998
|
-
choices: event.choices,
|
|
39999
|
-
...this.attributionSource ? { attribution: { source: this.attributionSource, reference: this.attributionReference } } : {},
|
|
40000
|
-
...this.memberToken ? { memberToken: this.memberToken } : {},
|
|
40001
|
-
promotionCodes: [event.promotionCode]
|
|
40002
|
-
});
|
|
40149
|
+
await this.settleBackgroundQuote();
|
|
40150
|
+
const draft = await this.post("/draft", this.draftBody(this.config.productId, event, [event.promotionCode]));
|
|
40003
40151
|
this.applyPromotionOutcome(draft, event);
|
|
40004
40152
|
} catch {
|
|
40005
40153
|
this.promotionError = "The code could not be checked. Please try again.";
|
|
@@ -40096,6 +40244,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40096
40244
|
this.errorMessage = null;
|
|
40097
40245
|
this.stripePaymentMethodId = null;
|
|
40098
40246
|
this.serverPricedTotal = null;
|
|
40247
|
+
this.memberDiscount = null;
|
|
40248
|
+
this.cancelBackgroundQuote();
|
|
40099
40249
|
try {
|
|
40100
40250
|
this.card?.destroy?.();
|
|
40101
40251
|
} catch {
|
|
@@ -40111,6 +40261,87 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40111
40261
|
this.quotedTax = null;
|
|
40112
40262
|
this.serverPricedTotal = null;
|
|
40113
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
|
+
};
|
|
40114
40345
|
}
|
|
40115
40346
|
async onSubmitted(event) {
|
|
40116
40347
|
if (this.processing || !this.config?.productId) {
|
|
@@ -40120,19 +40351,8 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40120
40351
|
this.errorMessage = null;
|
|
40121
40352
|
this.setState("PROCESSING");
|
|
40122
40353
|
try {
|
|
40123
|
-
|
|
40124
|
-
const draft = await this.post("/draft",
|
|
40125
|
-
sessionId: this.sessionId,
|
|
40126
|
-
clientSessionKey: this.sessionKey,
|
|
40127
|
-
email: event.email,
|
|
40128
|
-
lines: [line],
|
|
40129
|
-
billingAddress: event.billingAddress,
|
|
40130
|
-
answers: event.answers,
|
|
40131
|
-
...this.attributionSource ? { attribution: { source: this.attributionSource, reference: this.attributionReference } } : {},
|
|
40132
|
-
choices: event.choices,
|
|
40133
|
-
...this.memberToken ? { memberToken: this.memberToken } : {},
|
|
40134
|
-
promotionCodes: event.promotionCode ? [event.promotionCode] : []
|
|
40135
|
-
});
|
|
40354
|
+
await this.settleBackgroundQuote();
|
|
40355
|
+
const draft = await this.post("/draft", this.draftBody(this.config.productId, event, event.promotionCode ? [event.promotionCode] : []));
|
|
40136
40356
|
if (!this.applyPromotionOutcome(draft, event)) {
|
|
40137
40357
|
return;
|
|
40138
40358
|
}
|
|
@@ -40141,6 +40361,9 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40141
40361
|
throw new Error(this.str(draft?.ErrorMessage, "Could not price this checkout."));
|
|
40142
40362
|
}
|
|
40143
40363
|
this.serverPricedTotal = { total: Number(draft.TotalGross ?? 0), quantity: event.quantity };
|
|
40364
|
+
if (this.memberToken) {
|
|
40365
|
+
this.memberDiscount = memberDiscountFromDraft(draft, event.quantity);
|
|
40366
|
+
}
|
|
40144
40367
|
const notice = memberDiscountNotice(draft, this.memberNoticeShown);
|
|
40145
40368
|
if (notice) {
|
|
40146
40369
|
this.memberNoticeShown = true;
|
|
@@ -40697,7 +40920,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40697
40920
|
static \u0275fac = function CheckoutPublicHostComponent_Factory(__ngFactoryType__) {
|
|
40698
40921
|
return new (__ngFactoryType__ || _CheckoutPublicHostComponent)();
|
|
40699
40922
|
};
|
|
40700
|
-
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", "promotionError", "quotedTotal", "quotedTax"], [3, "promotionCodeApplied", "submitted", "cancelled", "quoteInvalidated", "config", "distributionSlug", "sessionKey", "isProcessing", "isPaymentReady", "stripePaymentMethodId", "prefillEmail", "errorMessage", "appliedPromotion", "serverPricedTotal", "promotionError", "quotedTotal", "quotedTax"]], template: function CheckoutPublicHostComponent_Template(rf, ctx) {
|
|
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) {
|
|
40701
40924
|
if (rf & 1) {
|
|
40702
40925
|
\u0275\u0275elementStart(0, "div", 0);
|
|
40703
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);
|
|
@@ -40836,13 +41059,16 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40836
41059
|
[errorMessage]="errorMessage"
|
|
40837
41060
|
[appliedPromotion]="appliedPromotion"
|
|
40838
41061
|
[serverPricedTotal]="serverPricedTotal"
|
|
41062
|
+
[memberDiscount]="memberDiscount"
|
|
41063
|
+
[lockEmail]="emailLocked"
|
|
40839
41064
|
[promotionError]="promotionError"
|
|
40840
41065
|
(promotionCodeApplied)="onPromotionCodeApplied($event)"
|
|
40841
41066
|
[quotedTotal]="quotedTotal"
|
|
40842
41067
|
[quotedTax]="quotedTax"
|
|
40843
41068
|
(submitted)="onSubmitted($event)"
|
|
40844
41069
|
(cancelled)="onCancelled()"
|
|
40845
|
-
(quoteInvalidated)="onQuoteInvalidated()"
|
|
41070
|
+
(quoteInvalidated)="onQuoteInvalidated()"
|
|
41071
|
+
(quoteRequested)="onQuoteRequested($event)">
|
|
40846
41072
|
</mj-checkout-widget>
|
|
40847
41073
|
}
|
|
40848
41074
|
}
|
|
@@ -40863,7 +41089,7 @@ var CheckoutPublicHostComponent = class _CheckoutPublicHostComponent {
|
|
|
40863
41089
|
}] });
|
|
40864
41090
|
})();
|
|
40865
41091
|
(() => {
|
|
40866
|
-
(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 });
|
|
40867
41093
|
})();
|
|
40868
41094
|
|
|
40869
41095
|
// scripts/checkout-element-entry.ts
|