@mj-biz-apps/sales-ng 6.8.1 → 6.8.2
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/lib/form-panels/deal-form.panels.js +83 -78
- package/dist/lib/form-panels/deal-form.panels.js.map +1 -1
- package/dist/lib/form-panels/deal-hero.panel.js +2 -2
- package/dist/lib/form-panels/deal-hero.panel.js.map +1 -1
- package/dist/lib/form-panels/deal-line-editor.component.js +9 -9
- package/dist/lib/form-panels/deal-line-editor.component.js.map +1 -1
- package/dist/lib/sections/sales-section.component.js +2 -2
- package/dist/lib/sections/sales-section.component.js.map +1 -1
- package/package.json +2 -2
|
@@ -371,18 +371,19 @@ const _forTrack0 = ($index, $item) => $item.name;
|
|
|
371
371
|
const _forTrack1 = ($index, $item) => $item.ID;
|
|
372
372
|
function MJSDealPipelinePanel_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
373
373
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
374
|
-
i0.ɵɵelementStart(0, "div",
|
|
374
|
+
i0.ɵɵelementStart(0, "div", 9)(1, "mj-form-field", 10);
|
|
375
375
|
i0.ɵɵlistener("Navigate", function MJSDealPipelinePanel_For_3_Template_mj_form_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.FormComponent.OnFormNavigate($event)); });
|
|
376
376
|
i0.ɵɵelementEnd()();
|
|
377
377
|
} if (rf & 2) {
|
|
378
378
|
const f_r3 = ctx.$implicit;
|
|
379
379
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
380
380
|
i0.ɵɵclassProp("mjs-field--span", f_r3.span);
|
|
381
|
+
i0.ɵɵattribute("data-field", f_r3.name);
|
|
381
382
|
i0.ɵɵadvance();
|
|
382
383
|
i0.ɵɵproperty("Record", ctx_r1.Record)("ShowLabel", true)("FieldName", f_r3.name)("Type", f_r3.type)("EditMode", ctx_r1.EditMode && ctx_r1.FieldEditable(f_r3.name))("FormContext", ctx_r1.FormContext)("LinkType", f_r3.link ?? "None");
|
|
383
384
|
} }
|
|
384
385
|
function MJSDealPipelinePanel_Conditional_8_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
385
|
-
i0.ɵɵelementStart(0, "option",
|
|
386
|
+
i0.ɵɵelementStart(0, "option", 13);
|
|
386
387
|
i0.ɵɵtext(1);
|
|
387
388
|
i0.ɵɵelementEnd();
|
|
388
389
|
} if (rf & 2) {
|
|
@@ -392,7 +393,7 @@ function MJSDealPipelinePanel_Conditional_8_For_4_Template(rf, ctx) { if (rf & 1
|
|
|
392
393
|
i0.ɵɵtextInterpolate(s_r5.Name);
|
|
393
394
|
} }
|
|
394
395
|
function MJSDealPipelinePanel_Conditional_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
395
|
-
i0.ɵɵelementStart(0, "option",
|
|
396
|
+
i0.ɵɵelementStart(0, "option", 14);
|
|
396
397
|
i0.ɵɵtext(1);
|
|
397
398
|
i0.ɵɵelementEnd();
|
|
398
399
|
} if (rf & 2) {
|
|
@@ -402,7 +403,7 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_5_Template(rf, ctx) { if
|
|
|
402
403
|
i0.ɵɵtextInterpolate(ctx_r1.CurrentStatusName);
|
|
403
404
|
} }
|
|
404
405
|
function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
405
|
-
i0.ɵɵelementStart(0, "option",
|
|
406
|
+
i0.ɵɵelementStart(0, "option", 13);
|
|
406
407
|
i0.ɵɵtext(1);
|
|
407
408
|
i0.ɵɵelementEnd();
|
|
408
409
|
} if (rf & 2) {
|
|
@@ -413,12 +414,12 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_For_7_Te
|
|
|
413
414
|
} }
|
|
414
415
|
function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
415
416
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
416
|
-
i0.ɵɵelementStart(0, "label",
|
|
417
|
+
i0.ɵɵelementStart(0, "label", 18)(1, "span");
|
|
417
418
|
i0.ɵɵtext(2, "Loss notes ");
|
|
418
419
|
i0.ɵɵelementStart(3, "em");
|
|
419
420
|
i0.ɵɵtext(4, "(required for this reason)");
|
|
420
421
|
i0.ɵɵelementEnd()();
|
|
421
|
-
i0.ɵɵelementStart(5, "textarea",
|
|
422
|
+
i0.ɵɵelementStart(5, "textarea", 24);
|
|
422
423
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Conditional_8_Template_textarea_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.LossNotes, $event) || (ctx_r1.LossNotes = $event); return i0.ɵɵresetView($event); });
|
|
423
424
|
i0.ɵɵelementEnd()();
|
|
424
425
|
} if (rf & 2) {
|
|
@@ -429,18 +430,18 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Conditio
|
|
|
429
430
|
} }
|
|
430
431
|
function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
431
432
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
432
|
-
i0.ɵɵelementStart(0, "label",
|
|
433
|
+
i0.ɵɵelementStart(0, "label", 18)(1, "span");
|
|
433
434
|
i0.ɵɵtext(2, "Loss reason");
|
|
434
435
|
i0.ɵɵelementEnd();
|
|
435
|
-
i0.ɵɵelementStart(3, "select",
|
|
436
|
+
i0.ɵɵelementStart(3, "select", 23);
|
|
436
437
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.LossReasonID, $event) || (ctx_r1.LossReasonID = $event); return i0.ɵɵresetView($event); });
|
|
437
438
|
i0.ɵɵlistener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Template_select_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnLossReasonChange()); });
|
|
438
|
-
i0.ɵɵelementStart(4, "option",
|
|
439
|
+
i0.ɵɵelementStart(4, "option", 13);
|
|
439
440
|
i0.ɵɵtext(5, "\u2014 choose \u2014");
|
|
440
441
|
i0.ɵɵelementEnd();
|
|
441
|
-
i0.ɵɵrepeaterCreate(6, MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_For_7_Template, 2, 2, "option",
|
|
442
|
+
i0.ɵɵrepeaterCreate(6, MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_For_7_Template, 2, 2, "option", 13, _forTrack1);
|
|
442
443
|
i0.ɵɵelementEnd()();
|
|
443
|
-
i0.ɵɵconditionalCreate(8, MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Conditional_8_Template, 6, 2, "label",
|
|
444
|
+
i0.ɵɵconditionalCreate(8, MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Conditional_8_Template, 6, 2, "label", 18);
|
|
444
445
|
} if (rf & 2) {
|
|
445
446
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
446
447
|
i0.ɵɵadvance(3);
|
|
@@ -455,21 +456,21 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Template
|
|
|
455
456
|
} }
|
|
456
457
|
function MJSDealPipelinePanel_Conditional_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
457
458
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
458
|
-
i0.ɵɵelementStart(0, "div",
|
|
459
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
459
460
|
i0.ɵɵconditionalCreate(1, MJSDealPipelinePanel_Conditional_8_Conditional_6_Conditional_1_Template, 9, 4);
|
|
460
|
-
i0.ɵɵelementStart(2, "label",
|
|
461
|
+
i0.ɵɵelementStart(2, "label", 18)(3, "span");
|
|
461
462
|
i0.ɵɵtext(4, "Notes ");
|
|
462
463
|
i0.ɵɵelementStart(5, "em");
|
|
463
464
|
i0.ɵɵtext(6, "(optional)");
|
|
464
465
|
i0.ɵɵelementEnd()();
|
|
465
|
-
i0.ɵɵelementStart(7, "textarea",
|
|
466
|
+
i0.ɵɵelementStart(7, "textarea", 19);
|
|
466
467
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.CloseNotes, $event) || (ctx_r1.CloseNotes = $event); return i0.ɵɵresetView($event); });
|
|
467
468
|
i0.ɵɵelementEnd()();
|
|
468
|
-
i0.ɵɵelementStart(8, "div",
|
|
469
|
+
i0.ɵɵelementStart(8, "div", 20)(9, "button", 21);
|
|
469
470
|
i0.ɵɵlistener("click", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ConfirmClose()); });
|
|
470
471
|
i0.ɵɵtext(10);
|
|
471
472
|
i0.ɵɵelementEnd();
|
|
472
|
-
i0.ɵɵelementStart(11, "button",
|
|
473
|
+
i0.ɵɵelementStart(11, "button", 22);
|
|
473
474
|
i0.ɵɵlistener("click", function MJSDealPipelinePanel_Conditional_8_Conditional_6_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.CancelClose()); });
|
|
474
475
|
i0.ɵɵtext(12, "Cancel");
|
|
475
476
|
i0.ɵɵelementEnd()()();
|
|
@@ -489,19 +490,19 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_6_Template(rf, ctx) { if
|
|
|
489
490
|
} }
|
|
490
491
|
function MJSDealPipelinePanel_Conditional_8_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
491
492
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
492
|
-
i0.ɵɵelementStart(0, "div",
|
|
493
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "label", 18)(2, "span");
|
|
493
494
|
i0.ɵɵtext(3);
|
|
494
495
|
i0.ɵɵelementStart(4, "em");
|
|
495
496
|
i0.ɵɵtext(5, "(optional)");
|
|
496
497
|
i0.ɵɵelementEnd()();
|
|
497
|
-
i0.ɵɵelementStart(6, "textarea",
|
|
498
|
+
i0.ɵɵelementStart(6, "textarea", 25);
|
|
498
499
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Conditional_7_Template_textarea_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ReopenReason, $event) || (ctx_r1.ReopenReason = $event); return i0.ɵɵresetView($event); });
|
|
499
500
|
i0.ɵɵelementEnd()();
|
|
500
|
-
i0.ɵɵelementStart(7, "div",
|
|
501
|
+
i0.ɵɵelementStart(7, "div", 20)(8, "button", 26);
|
|
501
502
|
i0.ɵɵlistener("click", function MJSDealPipelinePanel_Conditional_8_Conditional_7_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ConfirmReopen()); });
|
|
502
503
|
i0.ɵɵtext(9);
|
|
503
504
|
i0.ɵɵelementEnd();
|
|
504
|
-
i0.ɵɵelementStart(10, "button",
|
|
505
|
+
i0.ɵɵelementStart(10, "button", 22);
|
|
505
506
|
i0.ɵɵlistener("click", function MJSDealPipelinePanel_Conditional_8_Conditional_7_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.CancelReopen()); });
|
|
506
507
|
i0.ɵɵtext(11, "Cancel");
|
|
507
508
|
i0.ɵɵelementEnd()()();
|
|
@@ -520,28 +521,28 @@ function MJSDealPipelinePanel_Conditional_8_Conditional_7_Template(rf, ctx) { if
|
|
|
520
521
|
i0.ɵɵproperty("disabled", ctx_r1.Busy);
|
|
521
522
|
} }
|
|
522
523
|
function MJSDealPipelinePanel_Conditional_8_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
523
|
-
i0.ɵɵelementStart(0, "small",
|
|
524
|
+
i0.ɵɵelementStart(0, "small", 17);
|
|
524
525
|
i0.ɵɵtext(1, "Closed. Pick an open status to reopen it, or use Reopen on the Close panel.");
|
|
525
526
|
i0.ɵɵelementEnd();
|
|
526
527
|
} }
|
|
527
528
|
function MJSDealPipelinePanel_Conditional_8_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
528
|
-
i0.ɵɵelementStart(0, "small",
|
|
529
|
+
i0.ɵɵelementStart(0, "small", 17);
|
|
529
530
|
i0.ɵɵtext(1, "Open. Pick a closing status to close the deal, or use Close on the Close panel.");
|
|
530
531
|
i0.ɵɵelementEnd();
|
|
531
532
|
} }
|
|
532
533
|
function MJSDealPipelinePanel_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
533
534
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
534
|
-
i0.ɵɵelementStart(0, "select",
|
|
535
|
+
i0.ɵɵelementStart(0, "select", 11);
|
|
535
536
|
i0.ɵɵlistener("ngModelChange", function MJSDealPipelinePanel_Conditional_8_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SetStatus($event)); });
|
|
536
|
-
i0.ɵɵelementStart(1, "option",
|
|
537
|
+
i0.ɵɵelementStart(1, "option", 12);
|
|
537
538
|
i0.ɵɵtext(2, "\u2014 choose \u2014");
|
|
538
539
|
i0.ɵɵelementEnd();
|
|
539
|
-
i0.ɵɵrepeaterCreate(3, MJSDealPipelinePanel_Conditional_8_For_4_Template, 2, 2, "option",
|
|
540
|
-
i0.ɵɵconditionalCreate(5, MJSDealPipelinePanel_Conditional_8_Conditional_5_Template, 2, 2, "option",
|
|
540
|
+
i0.ɵɵrepeaterCreate(3, MJSDealPipelinePanel_Conditional_8_For_4_Template, 2, 2, "option", 13, _forTrack1);
|
|
541
|
+
i0.ɵɵconditionalCreate(5, MJSDealPipelinePanel_Conditional_8_Conditional_5_Template, 2, 2, "option", 14);
|
|
541
542
|
i0.ɵɵelementEnd();
|
|
542
|
-
i0.ɵɵconditionalCreate(6, MJSDealPipelinePanel_Conditional_8_Conditional_6_Template, 13, 6, "div",
|
|
543
|
-
i0.ɵɵconditionalCreate(7, MJSDealPipelinePanel_Conditional_8_Conditional_7_Template, 12, 6, "div",
|
|
544
|
-
i0.ɵɵconditionalCreate(8, MJSDealPipelinePanel_Conditional_8_Conditional_8_Template, 2, 0, "small",
|
|
543
|
+
i0.ɵɵconditionalCreate(6, MJSDealPipelinePanel_Conditional_8_Conditional_6_Template, 13, 6, "div", 15);
|
|
544
|
+
i0.ɵɵconditionalCreate(7, MJSDealPipelinePanel_Conditional_8_Conditional_7_Template, 12, 6, "div", 16);
|
|
545
|
+
i0.ɵɵconditionalCreate(8, MJSDealPipelinePanel_Conditional_8_Conditional_8_Template, 2, 0, "small", 17)(9, MJSDealPipelinePanel_Conditional_8_Conditional_9_Template, 2, 0, "small", 17);
|
|
545
546
|
} if (rf & 2) {
|
|
546
547
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
547
548
|
i0.ɵɵproperty("ngModel", ctx_r1.Record.DealStatusTypeID)("compareWith", ctx_r1.CompareStatus)("disabled", !ctx_r1.StatusIsEditable);
|
|
@@ -568,7 +569,7 @@ function MJSDealPipelinePanel_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
|
568
569
|
i0.ɵɵtextInterpolate(ctx_r1.CurrentStatusName || "\u2014");
|
|
569
570
|
} }
|
|
570
571
|
function MJSDealPipelinePanel_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
571
|
-
i0.ɵɵelementStart(0, "div",
|
|
572
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
572
573
|
i0.ɵɵtext(1);
|
|
573
574
|
i0.ɵɵelementEnd();
|
|
574
575
|
} if (rf & 2) {
|
|
@@ -595,6 +596,7 @@ function MJSDealPartyPanel_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
595
596
|
const f_r3 = ctx.$implicit;
|
|
596
597
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
597
598
|
i0.ɵɵclassProp("mjs-field--span", f_r3.span);
|
|
599
|
+
i0.ɵɵattribute("data-field", f_r3.name);
|
|
598
600
|
i0.ɵɵadvance();
|
|
599
601
|
i0.ɵɵproperty("Record", ctx_r1.Record)("ShowLabel", true)("FieldName", f_r3.name)("Type", f_r3.type)("EditMode", ctx_r1.EditMode && ctx_r1.FieldEditable(f_r3.name))("FormContext", ctx_r1.FormContext)("LinkType", f_r3.link ?? "None");
|
|
600
602
|
} }
|
|
@@ -639,6 +641,7 @@ function MJSDealCommercialPanel_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
639
641
|
const f_r1 = ctx.$implicit;
|
|
640
642
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
641
643
|
i0.ɵɵclassProp("mjs-field--span", f_r1.span);
|
|
644
|
+
i0.ɵɵattribute("data-field", f_r1.name);
|
|
642
645
|
i0.ɵɵadvance();
|
|
643
646
|
i0.ɵɵconditional(ctx_r1.DrawsOwnMoney(f_r1) ? 1 : 2);
|
|
644
647
|
} }
|
|
@@ -701,6 +704,7 @@ function MJSDealMotionPanel_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
701
704
|
const f_r3 = ctx.$implicit;
|
|
702
705
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
703
706
|
i0.ɵɵclassProp("mjs-field--span", f_r3.span);
|
|
707
|
+
i0.ɵɵattribute("data-field", f_r3.name);
|
|
704
708
|
i0.ɵɵadvance();
|
|
705
709
|
i0.ɵɵproperty("Record", ctx_r1.Record)("ShowLabel", true)("FieldName", f_r3.name)("Type", f_r3.type)("EditMode", ctx_r1.EditMode && ctx_r1.FieldEditable(f_r3.name))("FormContext", ctx_r1.FormContext)("LinkType", f_r3.link ?? "None");
|
|
706
710
|
} }
|
|
@@ -750,7 +754,7 @@ function MJSDealClosePanel_Conditional_1_Conditional_2_Conditional_4_Conditional
|
|
|
750
754
|
i0.ɵɵelementStart(3, "em");
|
|
751
755
|
i0.ɵɵtext(4, "(required for this reason)");
|
|
752
756
|
i0.ɵɵelementEnd()();
|
|
753
|
-
i0.ɵɵelementStart(5, "textarea",
|
|
757
|
+
i0.ɵɵelementStart(5, "textarea", 16);
|
|
754
758
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealClosePanel_Conditional_1_Conditional_2_Conditional_4_Conditional_8_Template_textarea_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.LossNotes, $event) || (ctx_r1.LossNotes = $event); return i0.ɵɵresetView($event); });
|
|
755
759
|
i0.ɵɵelementEnd()();
|
|
756
760
|
} if (rf & 2) {
|
|
@@ -834,9 +838,9 @@ function MJSDealClosePanel_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
834
838
|
} }
|
|
835
839
|
function MJSDealClosePanel_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
836
840
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
837
|
-
i0.ɵɵelementStart(0, "button",
|
|
841
|
+
i0.ɵɵelementStart(0, "button", 18);
|
|
838
842
|
i0.ɵɵlistener("click", function MJSDealClosePanel_Conditional_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenReopenPanel()); });
|
|
839
|
-
i0.ɵɵelement(1, "i",
|
|
843
|
+
i0.ɵɵelement(1, "i", 19);
|
|
840
844
|
i0.ɵɵtext(2, " Reopen this deal ");
|
|
841
845
|
i0.ɵɵelementEnd();
|
|
842
846
|
i0.ɵɵelementStart(3, "small", 7);
|
|
@@ -845,15 +849,15 @@ function MJSDealClosePanel_Conditional_2_Conditional_1_Template(rf, ctx) { if (r
|
|
|
845
849
|
} }
|
|
846
850
|
function MJSDealClosePanel_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
847
851
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
848
|
-
i0.ɵɵelementStart(0, "div",
|
|
852
|
+
i0.ɵɵelementStart(0, "div", 17)(1, "label", 9)(2, "span");
|
|
849
853
|
i0.ɵɵtext(3, "Reason ");
|
|
850
854
|
i0.ɵɵelementStart(4, "em");
|
|
851
855
|
i0.ɵɵtext(5, "(optional)");
|
|
852
856
|
i0.ɵɵelementEnd()();
|
|
853
|
-
i0.ɵɵelementStart(6, "textarea",
|
|
857
|
+
i0.ɵɵelementStart(6, "textarea", 20);
|
|
854
858
|
i0.ɵɵtwoWayListener("ngModelChange", function MJSDealClosePanel_Conditional_2_Conditional_2_Template_textarea_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ReopenReason, $event) || (ctx_r1.ReopenReason = $event); return i0.ɵɵresetView($event); });
|
|
855
859
|
i0.ɵɵelementEnd()();
|
|
856
|
-
i0.ɵɵelementStart(7, "div", 8)(8, "button",
|
|
860
|
+
i0.ɵɵelementStart(7, "div", 8)(8, "button", 21);
|
|
857
861
|
i0.ɵɵlistener("click", function MJSDealClosePanel_Conditional_2_Conditional_2_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.ConfirmReopen()); });
|
|
858
862
|
i0.ɵɵtext(9);
|
|
859
863
|
i0.ɵɵelementEnd();
|
|
@@ -875,7 +879,7 @@ function MJSDealClosePanel_Conditional_2_Conditional_2_Template(rf, ctx) { if (r
|
|
|
875
879
|
} }
|
|
876
880
|
function MJSDealClosePanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
877
881
|
i0.ɵɵelementStart(0, "div", 1);
|
|
878
|
-
i0.ɵɵconditionalCreate(1, MJSDealClosePanel_Conditional_2_Conditional_1_Template, 5, 0)(2, MJSDealClosePanel_Conditional_2_Conditional_2_Template, 12, 5, "div",
|
|
882
|
+
i0.ɵɵconditionalCreate(1, MJSDealClosePanel_Conditional_2_Conditional_1_Template, 5, 0)(2, MJSDealClosePanel_Conditional_2_Conditional_2_Template, 12, 5, "div", 17);
|
|
879
883
|
i0.ɵɵelementEnd();
|
|
880
884
|
} if (rf & 2) {
|
|
881
885
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -883,7 +887,7 @@ function MJSDealClosePanel_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
883
887
|
i0.ɵɵconditional(!ctx_r1.ReopenPanelOpen ? 1 : 2);
|
|
884
888
|
} }
|
|
885
889
|
function MJSDealClosePanel_Conditional_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
886
|
-
i0.ɵɵelementStart(0, "div",
|
|
890
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
887
891
|
i0.ɵɵtext(1);
|
|
888
892
|
i0.ɵɵelementEnd();
|
|
889
893
|
} if (rf & 2) {
|
|
@@ -893,7 +897,7 @@ function MJSDealClosePanel_Conditional_3_Conditional_1_Template(rf, ctx) { if (r
|
|
|
893
897
|
i0.ɵɵtextInterpolate(ctx_r1.Message);
|
|
894
898
|
} }
|
|
895
899
|
function MJSDealClosePanel_Conditional_3_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
896
|
-
i0.ɵɵelementStart(0, "div",
|
|
900
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
897
901
|
i0.ɵɵtext(1);
|
|
898
902
|
i0.ɵɵelementEnd();
|
|
899
903
|
} if (rf & 2) {
|
|
@@ -903,8 +907,8 @@ function MJSDealClosePanel_Conditional_3_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
903
907
|
} }
|
|
904
908
|
function MJSDealClosePanel_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
905
909
|
i0.ɵɵelementStart(0, "div", 1);
|
|
906
|
-
i0.ɵɵconditionalCreate(1, MJSDealClosePanel_Conditional_3_Conditional_1_Template, 2, 3, "div",
|
|
907
|
-
i0.ɵɵrepeaterCreate(2, MJSDealClosePanel_Conditional_3_For_3_Template, 2, 1, "div",
|
|
910
|
+
i0.ɵɵconditionalCreate(1, MJSDealClosePanel_Conditional_3_Conditional_1_Template, 2, 3, "div", 22);
|
|
911
|
+
i0.ɵɵrepeaterCreate(2, MJSDealClosePanel_Conditional_3_For_3_Template, 2, 1, "div", 23, i0.ɵɵrepeaterTrackByIndex);
|
|
908
912
|
i0.ɵɵelementEnd();
|
|
909
913
|
} if (rf & 2) {
|
|
910
914
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -915,13 +919,14 @@ function MJSDealClosePanel_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
915
919
|
} }
|
|
916
920
|
function MJSDealClosePanel_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
917
921
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
918
|
-
i0.ɵɵelementStart(0, "div",
|
|
922
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "mj-form-field", 26);
|
|
919
923
|
i0.ɵɵlistener("Navigate", function MJSDealClosePanel_For_6_Template_mj_form_field_Navigate_1_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.FormComponent.OnFormNavigate($event)); });
|
|
920
924
|
i0.ɵɵelementEnd()();
|
|
921
925
|
} if (rf & 2) {
|
|
922
926
|
const f_r13 = ctx.$implicit;
|
|
923
927
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
924
928
|
i0.ɵɵclassProp("mjs-field--span", f_r13.span);
|
|
929
|
+
i0.ɵɵattribute("data-field", f_r13.name);
|
|
925
930
|
i0.ɵɵadvance();
|
|
926
931
|
i0.ɵɵproperty("Record", ctx_r1.Record)("ShowLabel", true)("FieldName", f_r13.name)("Type", f_r13.type)("EditMode", ctx_r1.EditMode && ctx_r1.FieldEditable(f_r13.name))("FormContext", ctx_r1.FormContext)("LinkType", f_r13.link ?? "None");
|
|
927
932
|
} }
|
|
@@ -2456,9 +2461,9 @@ let MJSDealPipelinePanel = class MJSDealPipelinePanel extends MJSDealFieldPanel
|
|
|
2456
2461
|
];
|
|
2457
2462
|
}
|
|
2458
2463
|
static ɵfac = /*@__PURE__*/ (() => { let ɵMJSDealPipelinePanel_BaseFactory; return function MJSDealPipelinePanel_Factory(__ngFactoryType__) { return (ɵMJSDealPipelinePanel_BaseFactory || (ɵMJSDealPipelinePanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJSDealPipelinePanel)))(__ngFactoryType__ || MJSDealPipelinePanel); }; })();
|
|
2459
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealPipelinePanel, selectors: [["mjs-deal-pipeline-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 4, consts: [["SectionKey", "pipeline", "SectionName", "Pipeline", "Icon", "fa-solid fa-diagram-project", 3, "Form", "FormContext"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], [1, "mjs-field"], [1, "mj-forms-field"], [1, "mj-forms-field-label"], [1, "mj-forms-field-value"], [1, "mjs-reopen__msg", 3, "is-error"], [1, "mjs-reopen__issue"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"], [3, "ngModelChange", "ngModel", "compareWith", "disabled"], [3, "ngValue", "disabled"], [3, "ngValue"], ["disabled", "", 3, "ngValue"], [1, "mjs-reopen"], [1, "mjs-field__hint"], [1, "mjs-reopen__field"], ["rows", "2", 3, "ngModelChange", "ngModel", "disabled"], [1, "mjs-reopen__row"], ["type", "button", 1, "mjs-reopen__confirm", 3, "click", "disabled"], ["type", "button", 1, "mjs-reopen__cancel", 3, "click", "disabled"], [3, "ngModelChange", "ngModel", "disabled"], [1, "mjs-reopen__msg"]], template: function MJSDealPipelinePanel_Template(rf, ctx) { if (rf & 1) {
|
|
2464
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealPipelinePanel, selectors: [["mjs-deal-pipeline-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 4, consts: [["SectionKey", "pipeline", "SectionName", "Pipeline", "Icon", "fa-solid fa-diagram-project", 3, "Form", "FormContext"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], ["data-field", "DealStatusTypeID", 1, "mjs-field"], [1, "mj-forms-field"], [1, "mj-forms-field-label"], [1, "mj-forms-field-value"], [1, "mjs-reopen__msg", 3, "is-error"], [1, "mjs-reopen__issue"], [1, "mjs-field"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"], ["data-testid", "deal-status", 3, "ngModelChange", "ngModel", "compareWith", "disabled"], [3, "ngValue", "disabled"], [3, "ngValue"], ["disabled", "", 3, "ngValue"], ["data-testid", "status-close-panel", 1, "mjs-reopen"], ["data-testid", "status-reopen-panel", 1, "mjs-reopen"], [1, "mjs-field__hint"], [1, "mjs-reopen__field"], ["data-testid", "status-close-notes", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], [1, "mjs-reopen__row"], ["type", "button", "data-testid", "status-close-confirm", 1, "mjs-reopen__confirm", 3, "click", "disabled"], ["type", "button", 1, "mjs-reopen__cancel", 3, "click", "disabled"], ["data-testid", "status-close-loss-reason", 3, "ngModelChange", "ngModel", "disabled"], ["data-testid", "status-close-loss-notes", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["data-testid", "status-reopen-reason", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", "data-testid", "status-reopen-confirm", 1, "mjs-reopen__confirm", 3, "click", "disabled"], [1, "mjs-reopen__msg"]], template: function MJSDealPipelinePanel_Template(rf, ctx) { if (rf & 1) {
|
|
2460
2465
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1);
|
|
2461
|
-
i0.ɵɵrepeaterCreate(2, MJSDealPipelinePanel_For_3_Template, 2,
|
|
2466
|
+
i0.ɵɵrepeaterCreate(2, MJSDealPipelinePanel_For_3_Template, 2, 10, "div", 2, _forTrack0);
|
|
2462
2467
|
i0.ɵɵelementStart(4, "div", 3)(5, "div", 4)(6, "label", 5);
|
|
2463
2468
|
i0.ɵɵtext(7, "Status");
|
|
2464
2469
|
i0.ɵɵelementEnd();
|
|
@@ -2503,7 +2508,7 @@ export { MJSDealPipelinePanel };
|
|
|
2503
2508
|
[Form]="FormComponent" [FormContext]="FormContext">
|
|
2504
2509
|
<div class="mjs-fields">
|
|
2505
2510
|
@for (f of Fields; track f.name) {
|
|
2506
|
-
<div class="mjs-field" [class.mjs-field--span]="f.span">
|
|
2511
|
+
<div class="mjs-field" [class.mjs-field--span]="f.span" [attr.data-field]="f.name">
|
|
2507
2512
|
<mj-form-field [Record]="Record" [ShowLabel]="true" [FieldName]="f.name" [Type]="f.type"
|
|
2508
2513
|
[EditMode]="EditMode && FieldEditable(f.name)" [FormContext]="FormContext" [LinkType]="f.link ?? 'None'"
|
|
2509
2514
|
(Navigate)="FormComponent.OnFormNavigate($event)"></mj-form-field>
|
|
@@ -2516,11 +2521,11 @@ export { MJSDealPipelinePanel };
|
|
|
2516
2521
|
the close running. The deal workspace has never offered them; this brings the form
|
|
2517
2522
|
into line with it rather than the other way round. One door, and it is the audited
|
|
2518
2523
|
one. -->
|
|
2519
|
-
<div class="mjs-field">
|
|
2524
|
+
<div class="mjs-field" data-field="DealStatusTypeID">
|
|
2520
2525
|
<div class="mj-forms-field">
|
|
2521
2526
|
<label class="mj-forms-field-label">Status</label>
|
|
2522
2527
|
@if (EditMode) {
|
|
2523
|
-
<select [ngModel]="Record.DealStatusTypeID"
|
|
2528
|
+
<select [ngModel]="Record.DealStatusTypeID" data-testid="deal-status"
|
|
2524
2529
|
(ngModelChange)="SetStatus($event)"
|
|
2525
2530
|
[compareWith]="CompareStatus"
|
|
2526
2531
|
[disabled]="!StatusIsEditable">
|
|
@@ -2540,11 +2545,11 @@ export { MJSDealPipelinePanel };
|
|
|
2540
2545
|
<!-- golive#205: "Changing Deal Status to Won or Lost should close the
|
|
2541
2546
|
deal properly." Picking it does not WRITE it -- the close has to
|
|
2542
2547
|
run, and a Lost close needs a reason the dropdown cannot carry. -->
|
|
2543
|
-
<div class="mjs-reopen">
|
|
2548
|
+
<div class="mjs-reopen" data-testid="status-close-panel">
|
|
2544
2549
|
@if (PendingCloseStatus?.IsLost) {
|
|
2545
2550
|
<label class="mjs-reopen__field">
|
|
2546
2551
|
<span>Loss reason</span>
|
|
2547
|
-
<select [(ngModel)]="LossReasonID" (ngModelChange)="OnLossReasonChange()"
|
|
2552
|
+
<select data-testid="status-close-loss-reason" [(ngModel)]="LossReasonID" (ngModelChange)="OnLossReasonChange()"
|
|
2548
2553
|
[disabled]="Busy">
|
|
2549
2554
|
<option [ngValue]="null">— choose —</option>
|
|
2550
2555
|
@for (r of LossReasons(); track r.ID) {
|
|
@@ -2555,16 +2560,16 @@ export { MJSDealPipelinePanel };
|
|
|
2555
2560
|
@if (LossReasonRequiresNotes) {
|
|
2556
2561
|
<label class="mjs-reopen__field">
|
|
2557
2562
|
<span>Loss notes <em>(required for this reason)</em></span>
|
|
2558
|
-
<textarea rows="2" [(ngModel)]="LossNotes" [disabled]="Busy"></textarea>
|
|
2563
|
+
<textarea data-testid="status-close-loss-notes" rows="2" [(ngModel)]="LossNotes" [disabled]="Busy"></textarea>
|
|
2559
2564
|
</label>
|
|
2560
2565
|
}
|
|
2561
2566
|
}
|
|
2562
2567
|
<label class="mjs-reopen__field">
|
|
2563
2568
|
<span>Notes <em>(optional)</em></span>
|
|
2564
|
-
<textarea rows="2" [(ngModel)]="CloseNotes" [disabled]="Busy"></textarea>
|
|
2569
|
+
<textarea data-testid="status-close-notes" rows="2" [(ngModel)]="CloseNotes" [disabled]="Busy"></textarea>
|
|
2565
2570
|
</label>
|
|
2566
2571
|
<div class="mjs-reopen__row">
|
|
2567
|
-
<button type="button" class="mjs-reopen__confirm"
|
|
2572
|
+
<button type="button" class="mjs-reopen__confirm" data-testid="status-close-confirm"
|
|
2568
2573
|
[disabled]="!CanConfirmClose" (click)="ConfirmClose()">
|
|
2569
2574
|
{{ Busy ? 'Closing\u2026' : 'Close as ' + PendingCloseStatusName }}
|
|
2570
2575
|
</button>
|
|
@@ -2585,13 +2590,13 @@ export { MJSDealPipelinePanel };
|
|
|
2585
2590
|
plan 7.3 requires undoing a lock to be explainable, and an
|
|
2586
2591
|
unexplained reopen in the audit trail is what that rule is against.
|
|
2587
2592
|
Not prompting is not the same as not recording. -->
|
|
2588
|
-
<div class="mjs-reopen">
|
|
2593
|
+
<div class="mjs-reopen" data-testid="status-reopen-panel">
|
|
2589
2594
|
<label class="mjs-reopen__field">
|
|
2590
2595
|
<span>Reopen as {{ PendingReopenStatusName }} — reason <em>(optional)</em></span>
|
|
2591
|
-
<textarea rows="2" [(ngModel)]="ReopenReason" [disabled]="Busy"></textarea>
|
|
2596
|
+
<textarea data-testid="status-reopen-reason" rows="2" [(ngModel)]="ReopenReason" [disabled]="Busy"></textarea>
|
|
2592
2597
|
</label>
|
|
2593
2598
|
<div class="mjs-reopen__row">
|
|
2594
|
-
<button type="button" class="mjs-reopen__confirm"
|
|
2599
|
+
<button type="button" class="mjs-reopen__confirm" data-testid="status-reopen-confirm"
|
|
2595
2600
|
[disabled]="!CanConfirmReopen" (click)="ConfirmReopen()">
|
|
2596
2601
|
{{ Busy ? 'Reopening…' : 'Reopen deal' }}
|
|
2597
2602
|
</button>
|
|
@@ -2683,7 +2688,7 @@ let MJSDealPartyPanel = class MJSDealPartyPanel extends MJSDealFieldPanel {
|
|
|
2683
2688
|
static ɵfac = /*@__PURE__*/ (() => { let ɵMJSDealPartyPanel_BaseFactory; return function MJSDealPartyPanel_Factory(__ngFactoryType__) { return (ɵMJSDealPartyPanel_BaseFactory || (ɵMJSDealPartyPanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJSDealPartyPanel)))(__ngFactoryType__ || MJSDealPartyPanel); }; })();
|
|
2684
2689
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealPartyPanel, selectors: [["mjs-deal-party-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [["SectionKey", "party", "SectionName", "Account & people", "Icon", "fa-solid fa-building", 3, "Form", "FormContext"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], [1, "mjs-field"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"]], template: function MJSDealPartyPanel_Template(rf, ctx) { if (rf & 1) {
|
|
2685
2690
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1);
|
|
2686
|
-
i0.ɵɵrepeaterCreate(2, MJSDealPartyPanel_For_3_Template, 2,
|
|
2691
|
+
i0.ɵɵrepeaterCreate(2, MJSDealPartyPanel_For_3_Template, 2, 10, "div", 2, _forTrack0);
|
|
2687
2692
|
i0.ɵɵelementEnd()();
|
|
2688
2693
|
} if (rf & 2) {
|
|
2689
2694
|
i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext);
|
|
@@ -2706,7 +2711,7 @@ export { MJSDealPartyPanel };
|
|
|
2706
2711
|
[Form]="FormComponent" [FormContext]="FormContext">
|
|
2707
2712
|
<div class="mjs-fields">
|
|
2708
2713
|
@for (f of Fields; track f.name) {
|
|
2709
|
-
<div class="mjs-field" [class.mjs-field--span]="f.span">
|
|
2714
|
+
<div class="mjs-field" [class.mjs-field--span]="f.span" [attr.data-field]="f.name">
|
|
2710
2715
|
<mj-form-field [Record]="Record" [ShowLabel]="true" [FieldName]="f.name" [Type]="f.type"
|
|
2711
2716
|
[EditMode]="EditMode && FieldEditable(f.name)" [FormContext]="FormContext" [LinkType]="f.link ?? 'None'"
|
|
2712
2717
|
(Navigate)="FormComponent.OnFormNavigate($event)"></mj-form-field>
|
|
@@ -2748,7 +2753,7 @@ let MJSDealCommercialPanel = class MJSDealCommercialPanel extends MJSDealFieldPa
|
|
|
2748
2753
|
static ɵfac = /*@__PURE__*/ (() => { let ɵMJSDealCommercialPanel_BaseFactory; return function MJSDealCommercialPanel_Factory(__ngFactoryType__) { return (ɵMJSDealCommercialPanel_BaseFactory || (ɵMJSDealCommercialPanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJSDealCommercialPanel)))(__ngFactoryType__ || MJSDealCommercialPanel); }; })();
|
|
2749
2754
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealCommercialPanel, selectors: [["mjs-deal-commercial-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [["SectionKey", "commercial", "SectionName", "Commercial", "Icon", "fa-solid fa-coins", 3, "Form", "FormContext"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], [1, "mjs-field"], [3, "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"], [1, "mj-forms-field"], [1, "mj-forms-field-label"], [1, "mj-forms-field-value", "mjs-field__money"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"]], template: function MJSDealCommercialPanel_Template(rf, ctx) { if (rf & 1) {
|
|
2750
2755
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1);
|
|
2751
|
-
i0.ɵɵrepeaterCreate(2, MJSDealCommercialPanel_For_3_Template, 3,
|
|
2756
|
+
i0.ɵɵrepeaterCreate(2, MJSDealCommercialPanel_For_3_Template, 3, 4, "div", 2, _forTrack0);
|
|
2752
2757
|
i0.ɵɵelementEnd()();
|
|
2753
2758
|
} if (rf & 2) {
|
|
2754
2759
|
i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext);
|
|
@@ -2771,7 +2776,7 @@ export { MJSDealCommercialPanel };
|
|
|
2771
2776
|
[Form]="FormComponent" [FormContext]="FormContext">
|
|
2772
2777
|
<div class="mjs-fields">
|
|
2773
2778
|
@for (f of Fields; track f.name) {
|
|
2774
|
-
<div class="mjs-field" [class.mjs-field--span]="f.span">
|
|
2779
|
+
<div class="mjs-field" [class.mjs-field--span]="f.span" [attr.data-field]="f.name">
|
|
2775
2780
|
@if (DrawsOwnMoney(f)) {
|
|
2776
2781
|
<!-- Read-only money. See DealFieldSpec.currency for why this is not
|
|
2777
2782
|
mj-form-field; the class names are the shared control's own, so the
|
|
@@ -2950,7 +2955,7 @@ let MJSDealLinesPanel = class MJSDealLinesPanel extends BaseFormPanel {
|
|
|
2950
2955
|
} if (rf & 2) {
|
|
2951
2956
|
let _t;
|
|
2952
2957
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.linesGrid = _t.first);
|
|
2953
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 6, consts: [["SectionKey", "lines", "SectionName", "What's being sold", "Icon", "fa-solid fa-boxes-stacked", "Variant", "related-entity", 3, "Form", "FormContext", "DefaultExpanded", "BadgeCount"], [1, "mjs-deal-empty"], [3, "Deal", "LineID"], [1, "mjs-deal-lines__bar"], [3, "AfterRowDoubleClick", "AfterDataLoad", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "NavigateOnDoubleClick"], ["type", "button", 1, "mjs-deal-lines__add", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-plus"], ["aria-hidden", "true", 1, "fa-solid", "fa-lock"], ["aria-hidden", "true", 1, "fa-solid", "fa-circle-info"], [3, "Saved", "Closed", "Deal", "LineID"]], template: function MJSDealLinesPanel_Template(rf, ctx) { if (rf & 1) {
|
|
2958
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 6, consts: [["SectionKey", "lines", "SectionName", "What's being sold", "Icon", "fa-solid fa-boxes-stacked", "Variant", "related-entity", 3, "Form", "FormContext", "DefaultExpanded", "BadgeCount"], [1, "mjs-deal-empty"], [3, "Deal", "LineID"], [1, "mjs-deal-lines__bar"], [3, "AfterRowDoubleClick", "AfterDataLoad", "Params", "AllowLoad", "ShowToolbar", "ShowNewButton", "NavigateOnDoubleClick"], ["type", "button", "data-testid", "lines-add", 1, "mjs-deal-lines__add", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-plus"], ["aria-hidden", "true", 1, "fa-solid", "fa-lock"], ["aria-hidden", "true", 1, "fa-solid", "fa-circle-info"], [3, "Saved", "Closed", "Deal", "LineID"]], template: function MJSDealLinesPanel_Template(rf, ctx) { if (rf & 1) {
|
|
2954
2959
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
|
|
2955
2960
|
i0.ɵɵconditionalCreate(1, MJSDealLinesPanel_Conditional_1_Template, 3, 6)(2, MJSDealLinesPanel_Conditional_2_Template, 3, 0, "p", 1)(3, MJSDealLinesPanel_Conditional_3_Template, 2, 0, "p", 1);
|
|
2956
2961
|
i0.ɵɵconditionalCreate(4, MJSDealLinesPanel_Conditional_4_Template, 1, 2, "mjs-deal-line-editor", 2);
|
|
@@ -2982,7 +2987,7 @@ export { MJSDealLinesPanel };
|
|
|
2982
2987
|
(golive#229). Hidden on a locked deal for the same reason the grid's New was. -->
|
|
2983
2988
|
@if (!IsLocked) {
|
|
2984
2989
|
<div class="mjs-deal-lines__bar">
|
|
2985
|
-
<button type="button" class="mjs-deal-lines__add" (click)="AddLine()">
|
|
2990
|
+
<button type="button" class="mjs-deal-lines__add" data-testid="lines-add" (click)="AddLine()">
|
|
2986
2991
|
<i class="fa-solid fa-plus" aria-hidden="true"></i> Add a product
|
|
2987
2992
|
</button>
|
|
2988
2993
|
</div>
|
|
@@ -3108,7 +3113,7 @@ let MJSDealMotionPanel = class MJSDealMotionPanel extends MJSDealFieldPanel {
|
|
|
3108
3113
|
static ɵfac = /*@__PURE__*/ (() => { let ɵMJSDealMotionPanel_BaseFactory; return function MJSDealMotionPanel_Factory(__ngFactoryType__) { return (ɵMJSDealMotionPanel_BaseFactory || (ɵMJSDealMotionPanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJSDealMotionPanel)))(__ngFactoryType__ || MJSDealMotionPanel); }; })();
|
|
3109
3114
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealMotionPanel, selectors: [["mjs-deal-motion-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 2, consts: [["SectionKey", "motion", "SectionName", "Motion", "Icon", "fa-solid fa-person-walking", 3, "Form", "FormContext"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], [1, "mjs-field"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"]], template: function MJSDealMotionPanel_Template(rf, ctx) { if (rf & 1) {
|
|
3110
3115
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0)(1, "div", 1);
|
|
3111
|
-
i0.ɵɵrepeaterCreate(2, MJSDealMotionPanel_For_3_Template, 2,
|
|
3116
|
+
i0.ɵɵrepeaterCreate(2, MJSDealMotionPanel_For_3_Template, 2, 10, "div", 2, _forTrack0);
|
|
3112
3117
|
i0.ɵɵelementEnd()();
|
|
3113
3118
|
} if (rf & 2) {
|
|
3114
3119
|
i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext);
|
|
@@ -3131,7 +3136,7 @@ export { MJSDealMotionPanel };
|
|
|
3131
3136
|
[Form]="FormComponent" [FormContext]="FormContext">
|
|
3132
3137
|
<div class="mjs-fields">
|
|
3133
3138
|
@for (f of Fields; track f.name) {
|
|
3134
|
-
<div class="mjs-field" [class.mjs-field--span]="f.span">
|
|
3139
|
+
<div class="mjs-field" [class.mjs-field--span]="f.span" [attr.data-field]="f.name">
|
|
3135
3140
|
<mj-form-field [Record]="Record" [ShowLabel]="true" [FieldName]="f.name" [Type]="f.type"
|
|
3136
3141
|
[EditMode]="EditMode && FieldEditable(f.name)" [FormContext]="FormContext" [LinkType]="f.link ?? 'None'"
|
|
3137
3142
|
(Navigate)="FormComponent.OnFormNavigate($event)"></mj-form-field>
|
|
@@ -3500,13 +3505,13 @@ let MJSDealClosePanel = class MJSDealClosePanel extends MJSDealFieldPanel {
|
|
|
3500
3505
|
{ name: 'LossNotes', type: 'textarea', span: true },
|
|
3501
3506
|
];
|
|
3502
3507
|
static ɵfac = /*@__PURE__*/ (() => { let ɵMJSDealClosePanel_BaseFactory; return function MJSDealClosePanel_Factory(__ngFactoryType__) { return (ɵMJSDealClosePanel_BaseFactory || (ɵMJSDealClosePanel_BaseFactory = i0.ɵɵgetInheritedFactory(MJSDealClosePanel)))(__ngFactoryType__ || MJSDealClosePanel); }; })();
|
|
3503
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealClosePanel, selectors: [["mjs-deal-close-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 5, consts: [["SectionKey", "close", "SectionName", "Close", "Icon", "fa-solid fa-flag-checkered", 3, "Form", "FormContext"], [1, "mjs-close-action"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], [1, "mjs-close-action__form"], ["type", "button", 1, "mjs-close-action__start", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-flag-checkered"], [1, "mjs-close-action__hint"], [1, "mjs-close-action__row"], [1, "mjs-close-action__field"], ["rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", 1, "mjs-close-action__confirm", 3, "click", "disabled"], ["type", "button", 1, "mjs-close-action__cancel", 3, "click", "disabled"], ["type", "radio", "name", "dealCloseTarget", 3, "ngModelChange", "value", "ngModel", "disabled"], [3, "ngModelChange", "ngModel", "disabled"], [3, "ngValue"], ["aria-hidden", "true", 1, "fa-solid", "fa-rotate-left"], [1, "mjs-close-action__msg", 3, "is-error"], [1, "mjs-close-action__issue"], [1, "mjs-close-action__msg"], [1, "mjs-field"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"]], template: function MJSDealClosePanel_Template(rf, ctx) { if (rf & 1) {
|
|
3508
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJSDealClosePanel, selectors: [["mjs-deal-close-panel"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 5, consts: [["SectionKey", "close", "SectionName", "Close", "Icon", "fa-solid fa-flag-checkered", 3, "Form", "FormContext"], [1, "mjs-close-action"], [1, "mjs-fields"], [1, "mjs-field", 3, "mjs-field--span"], ["data-testid", "close-panel", 1, "mjs-close-action__form"], ["type", "button", "data-testid", "close-open", 1, "mjs-close-action__start", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-flag-checkered"], [1, "mjs-close-action__hint"], [1, "mjs-close-action__row"], [1, "mjs-close-action__field"], ["data-testid", "close-notes", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", "data-testid", "close-confirm", 1, "mjs-close-action__confirm", 3, "click", "disabled"], ["type", "button", 1, "mjs-close-action__cancel", 3, "click", "disabled"], ["type", "radio", "name", "dealCloseTarget", "data-testid", "close-target", 3, "ngModelChange", "value", "ngModel", "disabled"], ["data-testid", "close-loss-reason", 3, "ngModelChange", "ngModel", "disabled"], [3, "ngValue"], ["data-testid", "close-loss-notes", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["data-testid", "reopen-panel", 1, "mjs-close-action__form"], ["type", "button", "data-testid", "reopen-open", 1, "mjs-close-action__start", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-rotate-left"], ["data-testid", "reopen-reason", "rows", "2", 3, "ngModelChange", "ngModel", "disabled"], ["type", "button", "data-testid", "reopen-confirm", 1, "mjs-close-action__confirm", 3, "click", "disabled"], ["data-testid", "close-message", 1, "mjs-close-action__msg", 3, "is-error"], [1, "mjs-close-action__issue"], ["data-testid", "close-message", 1, "mjs-close-action__msg"], [1, "mjs-field"], [3, "Navigate", "Record", "ShowLabel", "FieldName", "Type", "EditMode", "FormContext", "LinkType"]], template: function MJSDealClosePanel_Template(rf, ctx) { if (rf & 1) {
|
|
3504
3509
|
i0.ɵɵelementStart(0, "mj-collapsible-panel", 0);
|
|
3505
3510
|
i0.ɵɵconditionalCreate(1, MJSDealClosePanel_Conditional_1_Template, 3, 1, "div", 1);
|
|
3506
3511
|
i0.ɵɵconditionalCreate(2, MJSDealClosePanel_Conditional_2_Template, 3, 1, "div", 1);
|
|
3507
3512
|
i0.ɵɵconditionalCreate(3, MJSDealClosePanel_Conditional_3_Template, 4, 1, "div", 1);
|
|
3508
3513
|
i0.ɵɵelementStart(4, "div", 2);
|
|
3509
|
-
i0.ɵɵrepeaterCreate(5, MJSDealClosePanel_For_6_Template, 2,
|
|
3514
|
+
i0.ɵɵrepeaterCreate(5, MJSDealClosePanel_For_6_Template, 2, 10, "div", 3, _forTrack0);
|
|
3510
3515
|
i0.ɵɵelementEnd()();
|
|
3511
3516
|
} if (rf & 2) {
|
|
3512
3517
|
i0.ɵɵproperty("Form", ctx.FormComponent)("FormContext", ctx.FormContext);
|
|
@@ -3542,7 +3547,7 @@ export { MJSDealClosePanel };
|
|
|
3542
3547
|
@if (CanClose) {
|
|
3543
3548
|
<div class="mjs-close-action">
|
|
3544
3549
|
@if (!PanelOpen) {
|
|
3545
|
-
<button type="button" class="mjs-close-action__start" (click)="OpenPanel()">
|
|
3550
|
+
<button type="button" class="mjs-close-action__start" data-testid="close-open" (click)="OpenPanel()">
|
|
3546
3551
|
<i class="fa-solid fa-flag-checkered" aria-hidden="true"></i> Close this deal
|
|
3547
3552
|
</button>
|
|
3548
3553
|
<small class="mjs-close-action__hint">
|
|
@@ -3550,7 +3555,7 @@ export { MJSDealClosePanel };
|
|
|
3550
3555
|
the contract and finance tasks.
|
|
3551
3556
|
</small>
|
|
3552
3557
|
} @else {
|
|
3553
|
-
<div class="mjs-close-action__form">
|
|
3558
|
+
<div class="mjs-close-action__form" data-testid="close-panel">
|
|
3554
3559
|
<!-- The real closing statuses, by name, from the flags. A Won/Lost pair
|
|
3555
3560
|
could not express a deployment with more than one losing status, and
|
|
3556
3561
|
this one has two: Lost and Abandoned both carry IsLost, so resolving
|
|
@@ -3559,7 +3564,7 @@ export { MJSDealClosePanel };
|
|
|
3559
3564
|
<div class="mjs-close-action__row">
|
|
3560
3565
|
@for (s of ClosingStatuses; track s.ID) {
|
|
3561
3566
|
<label>
|
|
3562
|
-
<input type="radio" name="dealCloseTarget" [value]="s.ID"
|
|
3567
|
+
<input type="radio" name="dealCloseTarget" data-testid="close-target" [value]="s.ID"
|
|
3563
3568
|
[(ngModel)]="TargetStatusID" (ngModelChange)="OnTargetChange()"
|
|
3564
3569
|
[disabled]="Closing" /> {{ s.Name }}
|
|
3565
3570
|
</label>
|
|
@@ -3569,7 +3574,7 @@ export { MJSDealClosePanel };
|
|
|
3569
3574
|
@if (SelectedStatus?.IsLost) {
|
|
3570
3575
|
<label class="mjs-close-action__field">
|
|
3571
3576
|
<span>Loss reason</span>
|
|
3572
|
-
<select [(ngModel)]="LossReasonID" (ngModelChange)="OnLossReasonChange()"
|
|
3577
|
+
<select data-testid="close-loss-reason" [(ngModel)]="LossReasonID" (ngModelChange)="OnLossReasonChange()"
|
|
3573
3578
|
[disabled]="Closing">
|
|
3574
3579
|
<option [ngValue]="null">— choose —</option>
|
|
3575
3580
|
@for (r of LossReasons(); track r.ID) {
|
|
@@ -3580,18 +3585,18 @@ export { MJSDealClosePanel };
|
|
|
3580
3585
|
@if (LossReasonRequiresNotes) {
|
|
3581
3586
|
<label class="mjs-close-action__field">
|
|
3582
3587
|
<span>Loss notes <em>(required for this reason)</em></span>
|
|
3583
|
-
<textarea rows="2" [(ngModel)]="LossNotes" [disabled]="Closing"></textarea>
|
|
3588
|
+
<textarea data-testid="close-loss-notes" rows="2" [(ngModel)]="LossNotes" [disabled]="Closing"></textarea>
|
|
3584
3589
|
</label>
|
|
3585
3590
|
}
|
|
3586
3591
|
}
|
|
3587
3592
|
|
|
3588
3593
|
<label class="mjs-close-action__field">
|
|
3589
3594
|
<span>Notes <em>(optional)</em></span>
|
|
3590
|
-
<textarea rows="2" [(ngModel)]="Notes" [disabled]="Closing"></textarea>
|
|
3595
|
+
<textarea data-testid="close-notes" rows="2" [(ngModel)]="Notes" [disabled]="Closing"></textarea>
|
|
3591
3596
|
</label>
|
|
3592
3597
|
|
|
3593
3598
|
<div class="mjs-close-action__row">
|
|
3594
|
-
<button type="button" class="mjs-close-action__confirm"
|
|
3599
|
+
<button type="button" class="mjs-close-action__confirm" data-testid="close-confirm"
|
|
3595
3600
|
[disabled]="!CanConfirm" (click)="ConfirmClose()">
|
|
3596
3601
|
{{ Closing ? 'Closing…' : 'Close deal' }}
|
|
3597
3602
|
</button>
|
|
@@ -3612,7 +3617,7 @@ export { MJSDealClosePanel };
|
|
|
3612
3617
|
@if (CanReopen) {
|
|
3613
3618
|
<div class="mjs-close-action">
|
|
3614
3619
|
@if (!ReopenPanelOpen) {
|
|
3615
|
-
<button type="button" class="mjs-close-action__start" (click)="OpenReopenPanel()">
|
|
3620
|
+
<button type="button" class="mjs-close-action__start" data-testid="reopen-open" (click)="OpenReopenPanel()">
|
|
3616
3621
|
<i class="fa-solid fa-rotate-left" aria-hidden="true"></i> Reopen this deal
|
|
3617
3622
|
</button>
|
|
3618
3623
|
<small class="mjs-close-action__hint">
|
|
@@ -3620,13 +3625,13 @@ export { MJSDealClosePanel };
|
|
|
3620
3625
|
the order to the pipeline. Refused if the order has already booked.
|
|
3621
3626
|
</small>
|
|
3622
3627
|
} @else {
|
|
3623
|
-
<div class="mjs-close-action__form">
|
|
3628
|
+
<div class="mjs-close-action__form" data-testid="reopen-panel">
|
|
3624
3629
|
<label class="mjs-close-action__field">
|
|
3625
3630
|
<span>Reason <em>(optional)</em></span>
|
|
3626
|
-
<textarea rows="2" [(ngModel)]="ReopenReason" [disabled]="Closing"></textarea>
|
|
3631
|
+
<textarea data-testid="reopen-reason" rows="2" [(ngModel)]="ReopenReason" [disabled]="Closing"></textarea>
|
|
3627
3632
|
</label>
|
|
3628
3633
|
<div class="mjs-close-action__row">
|
|
3629
|
-
<button type="button" class="mjs-close-action__confirm"
|
|
3634
|
+
<button type="button" class="mjs-close-action__confirm" data-testid="reopen-confirm"
|
|
3630
3635
|
[disabled]="!CanConfirmReopen" (click)="ConfirmReopen()">
|
|
3631
3636
|
{{ Closing ? 'Reopening…' : 'Reopen deal' }}
|
|
3632
3637
|
</button>
|
|
@@ -3648,7 +3653,7 @@ export { MJSDealClosePanel };
|
|
|
3648
3653
|
@if (Message || Issues.length) {
|
|
3649
3654
|
<div class="mjs-close-action">
|
|
3650
3655
|
@if (Message) {
|
|
3651
|
-
<div class="mjs-close-action__msg" [class.is-error]="MessageIsError">{{ Message }}</div>
|
|
3656
|
+
<div class="mjs-close-action__msg" data-testid="close-message" [class.is-error]="MessageIsError">{{ Message }}</div>
|
|
3652
3657
|
}
|
|
3653
3658
|
<!-- Tracked by index: the operation pushes one issue per task, so two tasks
|
|
3654
3659
|
failing the same way produce two identical strings, and tracking by the string
|
|
@@ -3661,7 +3666,7 @@ export { MJSDealClosePanel };
|
|
|
3661
3666
|
|
|
3662
3667
|
<div class="mjs-fields">
|
|
3663
3668
|
@for (f of Fields; track f.name) {
|
|
3664
|
-
<div class="mjs-field" [class.mjs-field--span]="f.span">
|
|
3669
|
+
<div class="mjs-field" [class.mjs-field--span]="f.span" [attr.data-field]="f.name">
|
|
3665
3670
|
<mj-form-field [Record]="Record" [ShowLabel]="true" [FieldName]="f.name" [Type]="f.type"
|
|
3666
3671
|
[EditMode]="EditMode && FieldEditable(f.name)" [FormContext]="FormContext" [LinkType]="f.link ?? 'None'"
|
|
3667
3672
|
(Navigate)="FormComponent.OnFormNavigate($event)"></mj-form-field>
|