@hmcts/ccd-case-ui-toolkit 4.9.1-state-machine → 4.9.7-state-machine

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.
Files changed (48) hide show
  1. package/RELEASE-NOTES.md +1 -1
  2. package/dist/index.umd.js +232 -152
  3. package/dist/index.umd.js.map +1 -1
  4. package/dist/index.umd.min.js +1 -1
  5. package/dist/index.umd.min.js.LICENSE.txt +1 -1
  6. package/dist/index.umd.min.js.map +1 -1
  7. package/dist/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +3 -0
  8. package/dist/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js.map +1 -1
  9. package/dist/shared/components/case-viewer/viewer.routing.js +11 -7
  10. package/dist/shared/components/case-viewer/viewer.routing.js.map +1 -1
  11. package/dist/shared/components/case-viewer/viewer.routing.metadata.json +1 -1
  12. package/dist/shared/components/event-management/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +3 -0
  13. package/dist/shared/components/event-management/components/multiple-tasks-exist/multiple-tasks-exist.component.js +6 -6
  14. package/dist/shared/components/event-management/components/multiple-tasks-exist/multiple-tasks-exist.component.js.map +1 -1
  15. package/dist/shared/components/event-management/components/multiple-tasks-exist/multiple-tasks-exist.component.metadata.json +1 -1
  16. package/dist/shared/components/event-management/components/task-assigned/task-assigned.component.d.ts +5 -0
  17. package/dist/shared/components/event-management/components/task-assigned/task-assigned.component.js +18 -12
  18. package/dist/shared/components/event-management/components/task-assigned/task-assigned.component.js.map +1 -1
  19. package/dist/shared/components/event-management/components/task-assigned/task-assigned.component.metadata.json +1 -1
  20. package/dist/shared/components/event-management/components/task-unassigned/task-unassigned.component.d.ts +6 -0
  21. package/dist/shared/components/event-management/components/task-unassigned/task-unassigned.component.js +29 -0
  22. package/dist/shared/components/event-management/components/task-unassigned/task-unassigned.component.js.map +1 -0
  23. package/dist/shared/components/event-management/components/task-unassigned/task-unassigned.component.metadata.json +1 -0
  24. package/dist/shared/components/event-management/event-guard/event-start.guard.js +5 -3
  25. package/dist/shared/components/event-management/event-guard/event-start.guard.js.map +1 -1
  26. package/dist/shared/components/event-management/event-management.module.js +5 -2
  27. package/dist/shared/components/event-management/event-management.module.js.map +1 -1
  28. package/dist/shared/components/event-management/event-management.module.metadata.json +1 -1
  29. package/dist/shared/components/event-management/event-start/event-start.component.d.ts +5 -3
  30. package/dist/shared/components/event-management/event-start/event-start.component.js +14 -6
  31. package/dist/shared/components/event-management/event-start/event-start.component.js.map +1 -1
  32. package/dist/shared/components/event-management/event-start/event-start.component.metadata.json +1 -1
  33. package/dist/shared/components/event-management/index.d.ts +1 -0
  34. package/dist/shared/components/event-management/index.js +1 -0
  35. package/dist/shared/components/event-management/index.js.map +1 -1
  36. package/dist/shared/components/event-management/index.metadata.json +1 -1
  37. package/dist/shared/components/event-management/models/event-states-enum.model.d.ts +4 -5
  38. package/dist/shared/components/event-management/models/event-states-enum.model.js +3 -4
  39. package/dist/shared/components/event-management/models/event-states-enum.model.js.map +1 -1
  40. package/dist/shared/components/event-management/models/event-states-enum.model.metadata.json +1 -1
  41. package/dist/shared/components/event-management/models/state-machine-context.model.d.ts +4 -0
  42. package/dist/shared/components/event-management/services/event-state-machine.service.d.ts +16 -32
  43. package/dist/shared/components/event-management/services/event-state-machine.service.js +114 -108
  44. package/dist/shared/components/event-management/services/event-state-machine.service.js.map +1 -1
  45. package/dist/shared/components/event-management/services/event-state-machine.service.metadata.json +1 -1
  46. package/dist/shared/components/palette/case-link/write-case-link-field.component.js +7 -2
  47. package/dist/shared/components/palette/case-link/write-case-link-field.component.js.map +1 -1
  48. package/package.json +1 -1
package/RELEASE-NOTES.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## RELEASE NOTES
2
2
 
3
- ### Version 4.9.1-state-machine
3
+ ### Version 4.9.7-state-machine
4
4
  **Task event completion and state machine** Task event completion and state machine
5
5
 
6
6
  ### Version 4.3.6-hotfix-EUI-4404
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @hmcts/ccd-case-ui-toolkit - Case UI Toolkit
3
- * @version v4.9.1-state-machine
3
+ * @version v4.9.7-state-machine
4
4
  * @link undefined
5
5
  * @license MIT
6
6
  */
@@ -14571,6 +14571,9 @@ var CaseEditSubmitComponent = /** @class */ (function () {
14571
14571
  this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, this.eventTrigger.case_fields);
14572
14572
  caseEventData.event_token = this.eventTrigger.event_token;
14573
14573
  caseEventData.ignore_warning = this.ignoreWarning;
14574
+ if (this.caseEdit.confirmation) {
14575
+ caseEventData.data = {};
14576
+ }
14574
14577
  this.caseEdit.submit(caseEventData)
14575
14578
  .subscribe(function (response) {
14576
14579
  var confirmation = _this.buildConfirmation(response);
@@ -19284,18 +19287,18 @@ __export(__webpack_require__(69115));
19284
19287
  Object.defineProperty(exports, "__esModule", ({ value: true }));
19285
19288
  var case_editor_1 = __webpack_require__(27070);
19286
19289
  var case_history_1 = __webpack_require__(30542);
19287
- var file_upload_progress_guard_1 = __webpack_require__(27667);
19290
+ var event_management_1 = __webpack_require__(37375);
19288
19291
  var event_start_guard_1 = __webpack_require__(10962);
19292
+ var event_tasks_resolver_service_1 = __webpack_require__(4085);
19293
+ var file_upload_progress_guard_1 = __webpack_require__(27667);
19289
19294
  var case_challenged_access_request_1 = __webpack_require__(38403);
19290
19295
  var case_challenged_access_success_1 = __webpack_require__(26840);
19291
- var case_specific_access_request_1 = __webpack_require__(73343);
19292
- var case_review_specific_access_request_1 = __webpack_require__(83444);
19293
19296
  var case_event_trigger_1 = __webpack_require__(92100);
19297
+ var case_review_specific_access_reject_1 = __webpack_require__(84766);
19298
+ var case_review_specific_access_request_1 = __webpack_require__(83444);
19299
+ var case_specific_access_request_1 = __webpack_require__(73343);
19294
19300
  var printer_1 = __webpack_require__(65773);
19295
19301
  var services_1 = __webpack_require__(50137);
19296
- var case_review_specific_access_reject_1 = __webpack_require__(84766);
19297
- var event_management_1 = __webpack_require__(37375);
19298
- var event_tasks_resolver_service_1 = __webpack_require__(4085);
19299
19302
  exports.viewerRouting = [
19300
19303
  {
19301
19304
  path: 'print',
@@ -19319,9 +19322,13 @@ exports.viewerRouting = [
19319
19322
  }
19320
19323
  },
19321
19324
  {
19322
- path: 'task-assignment',
19325
+ path: 'task-assigned',
19323
19326
  component: event_management_1.TaskAssignedComponent
19324
19327
  },
19328
+ {
19329
+ path: 'task-unassigned',
19330
+ component: event_management_1.TaskUnassignedComponent
19331
+ },
19325
19332
  {
19326
19333
  path: 'multiple-tasks-exist',
19327
19334
  component: event_management_1.MultipleTasksExistComponent
@@ -20247,18 +20254,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
20247
20254
  };
20248
20255
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20249
20256
  var core_1 = __webpack_require__(57208);
20257
+ var router_1 = __webpack_require__(92302);
20250
20258
  var MultipleTasksExistComponent = /** @class */ (function () {
20251
- function MultipleTasksExistComponent() {
20259
+ function MultipleTasksExistComponent(route) {
20260
+ this.route = route;
20261
+ this.caseId = this.route.snapshot.data.case.case_id;
20252
20262
  }
20253
- __decorate([
20254
- core_1.Input(),
20255
- __metadata("design:type", String)
20256
- ], MultipleTasksExistComponent.prototype, "caseId", void 0);
20257
20263
  MultipleTasksExistComponent = __decorate([
20258
20264
  core_1.Component({
20259
20265
  selector: 'app-multiple-tasks-exist',
20260
20266
  template: __webpack_require__(16952)
20261
- })
20267
+ }),
20268
+ __metadata("design:paramtypes", [router_1.ActivatedRoute])
20262
20269
  ], MultipleTasksExistComponent);
20263
20270
  return MultipleTasksExistComponent;
20264
20271
  }());
@@ -20319,26 +20326,32 @@ var __metadata = (this && this.__metadata) || function (k, v) {
20319
20326
  };
20320
20327
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20321
20328
  var core_1 = __webpack_require__(57208);
20329
+ var router_1 = __webpack_require__(92302);
20330
+ var services_1 = __webpack_require__(65010);
20322
20331
  var TaskAssignedComponent = /** @class */ (function () {
20323
- function TaskAssignedComponent() {
20332
+ function TaskAssignedComponent(route, sessionStorageService) {
20333
+ this.route = route;
20334
+ this.sessionStorageService = sessionStorageService;
20324
20335
  this.task = null;
20336
+ this.caseId = this.route.snapshot.data.case.case_id;
20337
+ this.task = this.route.snapshot.queryParams;
20325
20338
  }
20326
20339
  TaskAssignedComponent.prototype.ngOnInit = function () {
20327
- this.assignedUserName = this.task ? this.task.assignee : 'another user';
20340
+ var _this = this;
20341
+ var caseworkers = JSON.parse(this.sessionStorageService.getItem('caseworkers'));
20342
+ var caseworker = caseworkers.find(function (x) { return x.idamId === _this.task.assignee; });
20343
+ this.assignedUserName = caseworker !== undefined ? caseworker.firstName + " " + caseworker.lastName : 'another user';
20344
+ // TODO: If the task is not assigned to a caseworker, then
20345
+ // we have to perform an api call to check whether the task is assigned to judicial user
20346
+ // and display the judicial user name instead of 'another user'
20328
20347
  };
20329
- __decorate([
20330
- core_1.Input(),
20331
- __metadata("design:type", Object)
20332
- ], TaskAssignedComponent.prototype, "task", void 0);
20333
- __decorate([
20334
- core_1.Input(),
20335
- __metadata("design:type", String)
20336
- ], TaskAssignedComponent.prototype, "caseId", void 0);
20337
20348
  TaskAssignedComponent = __decorate([
20338
20349
  core_1.Component({
20339
20350
  selector: 'app-task-assigned',
20340
20351
  template: __webpack_require__(50744)
20341
- })
20352
+ }),
20353
+ __metadata("design:paramtypes", [router_1.ActivatedRoute,
20354
+ services_1.SessionStorageService])
20342
20355
  ], TaskAssignedComponent);
20343
20356
  return TaskAssignedComponent;
20344
20357
  }());
@@ -20421,6 +20434,42 @@ var TaskConflictComponent = /** @class */ (function () {
20421
20434
  exports.TaskConflictComponent = TaskConflictComponent;
20422
20435
 
20423
20436
 
20437
+ /***/ }),
20438
+
20439
+ /***/ 54310:
20440
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
20441
+
20442
+ "use strict";
20443
+
20444
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
20445
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20446
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20447
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20448
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20449
+ };
20450
+ var __metadata = (this && this.__metadata) || function (k, v) {
20451
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20452
+ };
20453
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
20454
+ var core_1 = __webpack_require__(57208);
20455
+ var router_1 = __webpack_require__(92302);
20456
+ var TaskUnassignedComponent = /** @class */ (function () {
20457
+ function TaskUnassignedComponent(route) {
20458
+ this.route = route;
20459
+ this.caseId = this.route.snapshot.data.case.case_id;
20460
+ }
20461
+ TaskUnassignedComponent = __decorate([
20462
+ core_1.Component({
20463
+ selector: 'app-task-unassigned',
20464
+ template: __webpack_require__(44937)
20465
+ }),
20466
+ __metadata("design:paramtypes", [router_1.ActivatedRoute])
20467
+ ], TaskUnassignedComponent);
20468
+ return TaskUnassignedComponent;
20469
+ }());
20470
+ exports.TaskUnassignedComponent = TaskUnassignedComponent;
20471
+
20472
+
20424
20473
  /***/ }),
20425
20474
 
20426
20475
  /***/ 10962:
@@ -20452,15 +20501,17 @@ var EventStartGuard = /** @class */ (function () {
20452
20501
  var _this = this;
20453
20502
  var caseId = route.params['cid'];
20454
20503
  var eventId = route.params['eid'];
20504
+ var taskId = route.queryParams['tid'];
20505
+ // TODO: NavigationExtras should be used once Angular upgrade changes have been incorporated
20455
20506
  var isComplete = route.queryParams['isComplete'];
20456
20507
  if (isComplete) {
20457
20508
  return rxjs_1.of(true);
20458
20509
  }
20459
- return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId).pipe(operators_1.switchMap(function (payload) { return _this.checkForTasks(payload, caseId, eventId); }));
20510
+ return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId).pipe(operators_1.switchMap(function (payload) { return _this.checkForTasks(payload, caseId, eventId, taskId); }));
20460
20511
  };
20461
- EventStartGuard.prototype.checkForTasks = function (payload, caseId, eventId) {
20512
+ EventStartGuard.prototype.checkForTasks = function (payload, caseId, eventId, taskId) {
20462
20513
  if (payload.task_required_for_event) {
20463
- this.router.navigate(["/cases/case-details/" + caseId + "/event-start"], { queryParams: { caseId: caseId, eventId: eventId } });
20514
+ this.router.navigate(["/cases/case-details/" + caseId + "/event-start"], { queryParams: { caseId: caseId, eventId: eventId, taskId: taskId } });
20464
20515
  return rxjs_1.of(false);
20465
20516
  }
20466
20517
  return rxjs_1.of(true);
@@ -20499,6 +20550,7 @@ var no_tasks_available_component_1 = __webpack_require__(6938);
20499
20550
  var task_assigned_component_1 = __webpack_require__(17170);
20500
20551
  var task_cancelled_component_1 = __webpack_require__(76766);
20501
20552
  var task_conflict_component_1 = __webpack_require__(80378);
20553
+ var task_unassigned_component_1 = __webpack_require__(54310);
20502
20554
  var event_start_guard_1 = __webpack_require__(10962);
20503
20555
  var event_start_component_1 = __webpack_require__(37618);
20504
20556
  var event_trigger_component_1 = __webpack_require__(65684);
@@ -20523,7 +20575,8 @@ var EventManagementModule = /** @class */ (function () {
20523
20575
  no_tasks_available_component_1.NoTasksAvailableComponent,
20524
20576
  task_assigned_component_1.TaskAssignedComponent,
20525
20577
  task_cancelled_component_1.TaskCancelledComponent,
20526
- task_conflict_component_1.TaskConflictComponent
20578
+ task_conflict_component_1.TaskConflictComponent,
20579
+ task_unassigned_component_1.TaskUnassignedComponent
20527
20580
  ],
20528
20581
  providers: [
20529
20582
  event_start_guard_1.EventStartGuard,
@@ -20533,7 +20586,8 @@ var EventManagementModule = /** @class */ (function () {
20533
20586
  exports: [
20534
20587
  event_start_component_1.EventStartComponent,
20535
20588
  event_trigger_component_1.EventTriggerComponent,
20536
- task_assigned_component_1.TaskAssignedComponent
20589
+ task_assigned_component_1.TaskAssignedComponent,
20590
+ task_unassigned_component_1.TaskUnassignedComponent
20537
20591
  ]
20538
20592
  })
20539
20593
  ], EventManagementModule);
@@ -20561,26 +20615,33 @@ var __metadata = (this && this.__metadata) || function (k, v) {
20561
20615
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20562
20616
  var core_1 = __webpack_require__(57208);
20563
20617
  var router_1 = __webpack_require__(92302);
20564
- var services_1 = __webpack_require__(83522);
20618
+ var services_1 = __webpack_require__(65010);
20619
+ var services_2 = __webpack_require__(83522);
20565
20620
  var EventStartComponent = /** @class */ (function () {
20566
- function EventStartComponent(service, router, route) {
20621
+ function EventStartComponent(service, router, route, sessionStorageService) {
20567
20622
  this.service = service;
20568
20623
  this.router = router;
20569
20624
  this.route = route;
20625
+ this.sessionStorageService = sessionStorageService;
20570
20626
  }
20571
20627
  EventStartComponent.prototype.ngOnInit = function () {
20572
20628
  // Get task and case id payload from route data
20573
20629
  var tasks = this.route.snapshot.data.tasks;
20574
20630
  var caseId = this.route.snapshot.data.case.case_id;
20631
+ var eventId = this.route.snapshot.queryParams['eventId'];
20632
+ var taskId = this.route.snapshot.queryParams['taskId'];
20575
20633
  // Setup the context
20576
20634
  this.context = {
20577
20635
  tasks: tasks,
20578
20636
  caseId: caseId,
20637
+ eventId: eventId,
20638
+ taskId: taskId,
20579
20639
  router: this.router,
20580
- route: this.route
20640
+ route: this.route,
20641
+ sessionStorageService: this.sessionStorageService
20581
20642
  };
20582
20643
  // Initialise state machine
20583
- this.service = new services_1.EventStateMachineService();
20644
+ this.service = new services_2.EventStateMachineService();
20584
20645
  this.stateMachine = this.service.initialiseStateMachine(this.context);
20585
20646
  // Create states
20586
20647
  this.service.createStates(this.stateMachine);
@@ -20594,9 +20655,10 @@ var EventStartComponent = /** @class */ (function () {
20594
20655
  selector: 'ccd-event-start',
20595
20656
  template: __webpack_require__(93453)
20596
20657
  }),
20597
- __metadata("design:paramtypes", [services_1.EventStateMachineService,
20658
+ __metadata("design:paramtypes", [services_2.EventStateMachineService,
20598
20659
  router_1.Router,
20599
- router_1.ActivatedRoute])
20660
+ router_1.ActivatedRoute,
20661
+ services_1.SessionStorageService])
20600
20662
  ], EventStartComponent);
20601
20663
  return EventStartComponent;
20602
20664
  }());
@@ -20702,6 +20764,7 @@ __export(__webpack_require__(6938));
20702
20764
  __export(__webpack_require__(17170));
20703
20765
  __export(__webpack_require__(76766));
20704
20766
  __export(__webpack_require__(80378));
20767
+ __export(__webpack_require__(54310));
20705
20768
  __export(__webpack_require__(4640));
20706
20769
 
20707
20770
 
@@ -20717,16 +20780,15 @@ var EventStates;
20717
20780
  (function (EventStates) {
20718
20781
  EventStates["CHECK_FOR_MATCHING_TASKS"] = "check-for-matching-tasks";
20719
20782
  EventStates["NO_TASK"] = "no-task";
20720
- EventStates["ONE_TASK"] = "one-task";
20721
- EventStates["MULTIPLE_TASKS"] = "multiple-tasks";
20783
+ EventStates["ONE_OR_MORE_TASKS"] = "one-or-more-tasks";
20722
20784
  EventStates["TASK_ASSIGNED_TO_USER"] = "task-assigned-to-user";
20785
+ EventStates["ONE_TASK_ASSIGNED_TO_USER"] = "one-task-assigned-to-user";
20786
+ EventStates["MULTIPLE_TASKS_ASSIGNED_TO_USER"] = "multiple-tasks-assigned-to-user";
20723
20787
  EventStates["TASK_UNASSIGNED"] = "task-unassigned";
20724
20788
  EventStates["TASK_ASSIGNMENT_REQUIRED"] = "task-assignment-required";
20725
20789
  EventStates["ASSIGN_TASK_TO_SELF"] = "assign-task-to-self";
20726
20790
  EventStates["ASK_MANAGER_TO_ASSIGN_TASK"] = "ask-manager-to-assign-task";
20727
20791
  EventStates["SHOW_WARNING"] = "show-warning";
20728
- EventStates["SHOW_ERROR_MESSAGE"] = "show-error-message";
20729
- EventStates["CANCEL"] = "cancel";
20730
20792
  })(EventStates = exports.EventStates || (exports.EventStates = {}));
20731
20793
 
20732
20794
 
@@ -20814,7 +20876,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
20814
20876
  Object.defineProperty(exports, "__esModule", ({ value: true }));
20815
20877
  var core_1 = __webpack_require__(57208);
20816
20878
  var fsm_1 = __webpack_require__(5937);
20817
- var rxjs_1 = __webpack_require__(87318);
20818
20879
  var models_1 = __webpack_require__(76605);
20819
20880
  var EVENT_STATE_MACHINE = 'EVENT STATE MACHINE';
20820
20881
  var EventStateMachineService = /** @class */ (function () {
@@ -20824,149 +20885,156 @@ var EventStateMachineService = /** @class */ (function () {
20824
20885
  return new fsm_1.StateMachine(EVENT_STATE_MACHINE, context);
20825
20886
  };
20826
20887
  EventStateMachineService.prototype.createStates = function (stateMachine) {
20827
- // Create states
20828
- this.stateCheckForMatchingTasks = stateMachine.createState(models_1.EventStates.CHECK_FOR_MATCHING_TASKS, false, this.initialEntryState);
20829
- this.stateNoTask = stateMachine.createState(models_1.EventStates.NO_TASK, false, this.entryAction);
20830
- this.stateOneTask = stateMachine.createState(models_1.EventStates.ONE_TASK, false, this.entryAction);
20831
- this.stateMultipleTask = stateMachine.createState(models_1.EventStates.MULTIPLE_TASKS, false, this.decideAction);
20832
- this.stateTaskAssignedToUser = stateMachine.createState(models_1.EventStates.TASK_ASSIGNED_TO_USER, false, this.entryAction);
20833
- this.stateTaskUnassigned = stateMachine.createState(models_1.EventStates.TASK_UNASSIGNED, false, this.entryAction);
20834
- this.stateTaskAssignmentRequired = stateMachine.createState(models_1.EventStates.TASK_ASSIGNMENT_REQUIRED, false, this.entryAction);
20835
- this.stateAssignTaskToSelf = stateMachine.createState(models_1.EventStates.ASSIGN_TASK_TO_SELF, false, this.entryAction);
20836
- this.stateAskManagerToAssignTask = stateMachine.createState(models_1.EventStates.ASK_MANAGER_TO_ASSIGN_TASK, false, this.entryAction);
20837
- this.stateShowWarning = stateMachine.createState(models_1.EventStates.SHOW_WARNING, false, this.navigateToNoTaskAvailablePage);
20838
- this.stateShowErrorMessage = stateMachine.createState(models_1.EventStates.SHOW_ERROR_MESSAGE, false, this.exitAction);
20839
- this.stateCancel = stateMachine.createState(models_1.EventStates.CANCEL, false, this.exitAction);
20840
- // Create final state, the second param isComplete is set to true
20888
+ // Initial state
20889
+ this.stateCheckForMatchingTasks = stateMachine.createState(models_1.EventStates.CHECK_FOR_MATCHING_TASKS, false, this.entryActionForStateCheckForMatchingTasks);
20890
+ // States based on number of tasks available
20891
+ this.stateNoTask = stateMachine.createState(models_1.EventStates.NO_TASK, false, this.entryActionForStateNoTask);
20892
+ this.stateOneOrMoreTasks = stateMachine.createState(models_1.EventStates.ONE_OR_MORE_TASKS, false, this.entryActionForStateOneOrMoreTasks);
20893
+ // States based on number of tasks assigned to user
20894
+ this.stateTaskUnassigned = stateMachine.createState(models_1.EventStates.TASK_UNASSIGNED, false, this.entryActionForStateTaskUnAssigned);
20895
+ this.stateTaskAssignedToUser = stateMachine.createState(models_1.EventStates.TASK_ASSIGNED_TO_USER, false, this.entryActionForStateTaskAssignedToUser);
20896
+ this.stateOneTaskAssignedToUser = stateMachine.createState(models_1.EventStates.ONE_TASK_ASSIGNED_TO_USER, false, this.entryActionForStateOneTaskAssignedToUser);
20897
+ this.stateMultipleTasksAssignedToUser = stateMachine.createState(models_1.EventStates.MULTIPLE_TASKS_ASSIGNED_TO_USER, false, this.entryActionForStateMultipleTasksAssignedToUser);
20898
+ // Create final state, the second param isComplete is set to true to make sure state machine finished running
20841
20899
  this.stateFinal = stateMachine.createState(models_1.StateMachineStates.FINAL, true, this.finalAction);
20842
20900
  };
20843
20901
  EventStateMachineService.prototype.addTransitions = function () {
20902
+ // Initial transition
20844
20903
  this.addTransitionsForStateCheckForMatchingTasks();
20904
+ // Transitions based on number of tasks available
20845
20905
  this.addTransitionsForStateNoTask();
20846
- this.addTransitionsForStateOneTask();
20847
- this.addTransitionsForStateMultipleTasks();
20906
+ this.addTransitionsForStateOneOrMoreTasks();
20907
+ // Transitions based on number of tasks assigned to user
20848
20908
  this.addTransitionsForStateTaskUnassigned();
20849
- this.addTransitionsForStateTaskAssignmentRequired();
20850
- this.addTransitionsForStateAssignTaskToSelf();
20851
- this.addTransitionsForStateAskManagerToAssignTask();
20852
- this.addTransitionsForStateShowWarning();
20853
- this.addTransitionsForStateShowErrorMessage();
20854
- this.addTransitionsForStateCancel();
20855
- // Define final state transition
20856
- this.addTransitionsForStateFinal();
20909
+ this.addTransitionsForStateTaskAssignedToUser();
20910
+ this.addTransitionsForStateOneTaskAssignedToUser();
20911
+ this.addTransitionsForStateMultipleTasksAssignedToUser();
20857
20912
  };
20858
20913
  EventStateMachineService.prototype.startStateMachine = function (stateMachine) {
20859
20914
  stateMachine.start(this.stateCheckForMatchingTasks);
20860
20915
  };
20861
20916
  /**
20862
- * Initial entry state, decided based on the number of tasks
20917
+ * Initial entry action for state check for matching tasks, decided based on the number of tasks
20863
20918
  */
20864
- EventStateMachineService.prototype.initialEntryState = function (state, context) {
20919
+ EventStateMachineService.prototype.entryActionForStateCheckForMatchingTasks = function (state, context) {
20865
20920
  var taskCount = context && context.tasks ? context.tasks.length : 0;
20866
- switch (taskCount) {
20867
- case 0:
20868
- // No tasks
20869
- state.trigger(models_1.EventStates.NO_TASK);
20870
- break;
20871
- case 1:
20872
- // One task
20873
- state.trigger(models_1.EventStates.ONE_TASK);
20874
- break;
20875
- default:
20876
- // Multiple tasks
20877
- state.trigger(models_1.EventStates.MULTIPLE_TASKS);
20878
- break;
20921
+ if (taskCount === 0) {
20922
+ // Trigger state no task
20923
+ state.trigger(models_1.EventStates.NO_TASK);
20924
+ }
20925
+ else {
20926
+ // Trigger state one or more tasks
20927
+ state.trigger(models_1.EventStates.ONE_OR_MORE_TASKS);
20879
20928
  }
20880
20929
  };
20881
- EventStateMachineService.prototype.navigateToNoTaskAvailablePage = function (state, context) {
20882
- console.log('Context action not available', context);
20930
+ EventStateMachineService.prototype.entryActionForStateNoTask = function (state, context) {
20931
+ // Trigger final state to complete processing of state machine
20932
+ state.trigger(models_1.StateMachineStates.FINAL);
20933
+ // Navigate to no tasks available error page
20883
20934
  context.router.navigate(["/cases/case-details/" + context.caseId + "/no-tasks-available"], { relativeTo: context.route });
20884
20935
  };
20885
- /**
20886
- * State entry action
20887
- */
20888
- EventStateMachineService.prototype.entryAction = function (state, context) {
20889
- // TODO: Actions based on the state id
20890
- switch (state.id) {
20891
- case models_1.EventStates.NO_TASK:
20892
- // Example below
20893
- state.trigger(models_1.EventStates.SHOW_WARNING);
20894
- break;
20895
- case models_1.EventStates.ONE_TASK:
20896
- break;
20897
- case models_1.EventStates.MULTIPLE_TASKS:
20898
- break;
20899
- case models_1.EventStates.TASK_ASSIGNED_TO_USER:
20900
- break;
20901
- case models_1.EventStates.TASK_UNASSIGNED:
20902
- break;
20903
- default:
20904
- rxjs_1.throwError('Invalid state');
20905
- break;
20906
- }
20936
+ EventStateMachineService.prototype.entryActionForStateOneOrMoreTasks = function (state, context) {
20937
+ state.trigger(models_1.EventStates.TASK_ASSIGNED_TO_USER);
20907
20938
  };
20908
- /**
20909
- * State exit action
20910
- */
20911
- EventStateMachineService.prototype.exitAction = function (state) {
20912
- // TODO: Return true or false based on the scenario
20913
- return true;
20939
+ EventStateMachineService.prototype.entryActionForStateMultipleTasks = function (state, context) {
20940
+ state.trigger(models_1.EventStates.MULTIPLE_TASKS_ASSIGNED_TO_USER);
20914
20941
  };
20915
- /**
20916
- * State decide action
20917
- */
20918
- EventStateMachineService.prototype.decideAction = function (state, context) {
20919
- // Find out the relevant event
20920
- var taskCount = context && context.tasks ? context.tasks.length : 0;
20921
- // TODO: To be implemented based on the number of tasks
20942
+ EventStateMachineService.prototype.entryActionForStateTaskAssignedToUser = function (state, context) {
20943
+ // Get number of tasks assigned to user
20944
+ var userInfoStr = context.sessionStorageService.getItem('userDetails');
20945
+ var userInfo = JSON.parse(userInfoStr);
20946
+ var tasksAssignedToUser = context.tasks.filter(function (x) { return x.assignee === userInfo.id || x.assignee === userInfo.uid; });
20947
+ // Check if user initiated the event from task tab
20948
+ var isEventInitiatedFromTaskTab = context.taskId !== undefined && tasksAssignedToUser.findIndex(function (x) { return x.id === context.taskId; }) > -1;
20949
+ if (isEventInitiatedFromTaskTab) {
20950
+ // User initiated event from task tab
20951
+ state.trigger(models_1.EventStates.ONE_TASK_ASSIGNED_TO_USER);
20952
+ }
20953
+ else {
20954
+ // User initiated event from dropdown
20955
+ switch (tasksAssignedToUser.length) {
20956
+ case 0:
20957
+ // No tasks assigned to user, trigger state task unassigned
20958
+ state.trigger(models_1.EventStates.TASK_UNASSIGNED);
20959
+ break;
20960
+ case 1:
20961
+ // One task assigned to user
20962
+ state.trigger(models_1.EventStates.ONE_TASK_ASSIGNED_TO_USER);
20963
+ break;
20964
+ default:
20965
+ // Multiple tasks assigned to user, trigger state multiple tasks assigned to user
20966
+ state.trigger(models_1.EventStates.MULTIPLE_TASKS_ASSIGNED_TO_USER);
20967
+ break;
20968
+ }
20969
+ }
20970
+ };
20971
+ EventStateMachineService.prototype.entryActionForStateTaskUnAssigned = function (state, context) {
20972
+ var navigationURL = '';
20973
+ var theQueryParams = {};
20974
+ if (context.tasks[0].assignee) {
20975
+ // Task is assigned to some other user, navigate to task assigned error page
20976
+ navigationURL = "/cases/case-details/" + context.caseId + "/task-assigned";
20977
+ theQueryParams = context.tasks[0];
20978
+ }
20979
+ else {
20980
+ // Task is unassigned, navigate to task unassigned error page
20981
+ navigationURL = "/cases/case-details/" + context.caseId + "/task-unassigned";
20982
+ }
20983
+ // Trigger final state to complete processing of state machine
20984
+ state.trigger(models_1.StateMachineStates.FINAL);
20985
+ // Navigate
20986
+ context.router.navigate(["" + navigationURL], { queryParams: theQueryParams, relativeTo: context.route });
20987
+ };
20988
+ EventStateMachineService.prototype.entryActionForStateOneTaskAssignedToUser = function (state, context) {
20989
+ // Trigger final state to complete processing of state machine
20990
+ state.trigger(models_1.StateMachineStates.FINAL);
20991
+ // Get task assigned to user
20992
+ var task = context.tasks.find(function (x) { return x.id === context.taskId; });
20993
+ if (!task) {
20994
+ task = context.tasks[0];
20995
+ }
20996
+ // Store task to session
20997
+ context.sessionStorageService.setItem('taskToComplete', JSON.stringify(task));
20998
+ // Allow user to perform the event
20999
+ context.router.navigate(["/cases/case-details/" + context.caseId + "/trigger/" + context.eventId], { queryParams: { isComplete: true }, relativeTo: context.route });
21000
+ };
21001
+ EventStateMachineService.prototype.entryActionForStateMultipleTasksAssignedToUser = function (state, context) {
21002
+ // Trigger final state to complete processing of state machine
21003
+ state.trigger(models_1.StateMachineStates.FINAL);
21004
+ // Navigate to multiple tasks exist error page
21005
+ context.router.navigate(["/cases/case-details/" + context.caseId + "/multiple-tasks-exist"], { relativeTo: context.route });
20922
21006
  };
20923
21007
  EventStateMachineService.prototype.finalAction = function (state) {
20924
21008
  // TODO: Perform final actions, the state machine finished running
21009
+ console.log('FINAL action here', state);
21010
+ console.log('State is complete', state.isComplete);
20925
21011
  };
20926
21012
  EventStateMachineService.prototype.addTransitionsForStateCheckForMatchingTasks = function () {
20927
21013
  // No tasks
20928
21014
  this.stateCheckForMatchingTasks.addTransition(models_1.EventStates.NO_TASK, this.stateNoTask);
20929
21015
  // One task
20930
- this.stateCheckForMatchingTasks.addTransition(models_1.EventStates.ONE_TASK, this.stateOneTask);
20931
- // Multiple tasks
20932
- this.stateCheckForMatchingTasks.addTransition(models_1.EventStates.MULTIPLE_TASKS, this.stateMultipleTask);
21016
+ this.stateCheckForMatchingTasks.addTransition(models_1.EventStates.ONE_OR_MORE_TASKS, this.stateOneOrMoreTasks);
20933
21017
  };
20934
21018
  EventStateMachineService.prototype.addTransitionsForStateNoTask = function () {
20935
- // TODO: Add required transitions
20936
- this.stateNoTask.addTransition(models_1.EventStates.SHOW_WARNING, this.stateShowWarning);
21019
+ this.stateNoTask.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20937
21020
  };
20938
- EventStateMachineService.prototype.addTransitionsForStateOneTask = function () {
20939
- // TODO: Add required transitions
20940
- };
20941
- EventStateMachineService.prototype.addTransitionsForStateMultipleTasks = function () {
20942
- // TODO: Add required transitions
20943
- };
20944
- EventStateMachineService.prototype.addTransitionsForStateTaskAssignedToUser = function () {
20945
- // TODO: Add required transitions
21021
+ EventStateMachineService.prototype.addTransitionsForStateOneOrMoreTasks = function () {
21022
+ this.stateOneOrMoreTasks.addTransition(models_1.EventStates.TASK_ASSIGNED_TO_USER, this.stateTaskAssignedToUser);
20946
21023
  };
20947
21024
  EventStateMachineService.prototype.addTransitionsForStateTaskUnassigned = function () {
20948
- // TODO: Add required transitions
20949
- };
20950
- EventStateMachineService.prototype.addTransitionsForStateTaskAssignmentRequired = function () {
20951
- // TODO: Add required transitions
21025
+ this.stateTaskUnassigned.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20952
21026
  };
20953
- EventStateMachineService.prototype.addTransitionsForStateAssignTaskToSelf = function () {
20954
- // TODO: Add required transitions
20955
- };
20956
- EventStateMachineService.prototype.addTransitionsForStateAskManagerToAssignTask = function () {
20957
- // TODO: Add required transitions
20958
- };
20959
- EventStateMachineService.prototype.addTransitionsForStateShowWarning = function () {
20960
- this.stateFinal.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20961
- };
20962
- EventStateMachineService.prototype.addTransitionsForStateShowErrorMessage = function () {
20963
- // TODO: Add required transitions
21027
+ EventStateMachineService.prototype.addTransitionsForStateTaskAssignedToUser = function () {
21028
+ this.stateTaskAssignedToUser.addTransition(models_1.EventStates.ONE_TASK_ASSIGNED_TO_USER, this.stateOneTaskAssignedToUser);
21029
+ this.stateTaskAssignedToUser.addTransition(models_1.EventStates.TASK_UNASSIGNED, this.stateTaskUnassigned);
21030
+ this.stateTaskAssignedToUser.addTransition(models_1.EventStates.MULTIPLE_TASKS_ASSIGNED_TO_USER, this.stateMultipleTasksAssignedToUser);
21031
+ this.stateTaskAssignedToUser.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20964
21032
  };
20965
- EventStateMachineService.prototype.addTransitionsForStateCancel = function () {
20966
- // TODO: Add required transitions
21033
+ EventStateMachineService.prototype.addTransitionsForStateOneTaskAssignedToUser = function () {
21034
+ this.stateOneTaskAssignedToUser.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20967
21035
  };
20968
- EventStateMachineService.prototype.addTransitionsForStateFinal = function () {
20969
- // TODO: Add required transitions
21036
+ EventStateMachineService.prototype.addTransitionsForStateMultipleTasksAssignedToUser = function () {
21037
+ this.stateMultipleTasksAssignedToUser.addTransition(models_1.StateMachineStates.FINAL, this.stateFinal);
20970
21038
  };
20971
21039
  EventStateMachineService = __decorate([
20972
21040
  core_1.Injectable()
@@ -22397,12 +22465,12 @@ var WriteCaseLinkFieldComponent = /** @class */ (function (_super) {
22397
22465
  WriteCaseLinkFieldComponent.prototype.ngOnInit = function () {
22398
22466
  if (this.caseField.value) {
22399
22467
  this.caseLinkGroup = this.registerControl(new forms_1.FormGroup({
22400
- 'CaseReference': new forms_1.FormControl(this.caseField.value.CaseReference),
22468
+ 'CaseReference': new forms_1.FormControl(this.caseField.value.CaseReference, forms_1.Validators.required),
22401
22469
  }), true);
22402
22470
  }
22403
22471
  else {
22404
22472
  this.caseLinkGroup = this.registerControl(new forms_1.FormGroup({
22405
- 'CaseReference': new forms_1.FormControl(),
22473
+ 'CaseReference': new forms_1.FormControl(null, forms_1.Validators.required),
22406
22474
  }), true);
22407
22475
  }
22408
22476
  this.caseReferenceControl = this.caseLinkGroup.controls['CaseReference'];
@@ -22425,6 +22493,11 @@ var WriteCaseLinkFieldComponent = /** @class */ (function (_super) {
22425
22493
  }
22426
22494
  return { 'error': 'Please use a valid 16 Digit Case Reference' };
22427
22495
  }
22496
+ else {
22497
+ if (control.touched) {
22498
+ return { 'error': 'Please use a valid 16 Digit Case Reference' };
22499
+ }
22500
+ }
22428
22501
  return null;
22429
22502
  };
22430
22503
  };
@@ -83506,7 +83579,7 @@ module.exports = "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-s
83506
83579
  /***/ 50744:
83507
83580
  /***/ ((module) => {
83508
83581
 
83509
- module.exports = "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n There is a problem\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">Task assignment required</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">Task assignment required</h2>\n\n <p>This task is assigned to {{assignedUserName}}. You must assigned it to yourself to continue.</p>\n\n <a href=\"javascript:void(0)\" [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">Return to tasks tab</a>\n </div>\n</div>\n"
83582
+ module.exports = "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n There is a problem\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">Task assignment required</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">Task assignment required</h2>\n\n <p>This task is assigned to {{assignedUserName}}. You must assign it to yourself to continue.</p>\n\n <a href=\"javascript:void(0)\" [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">Return to tasks tab</a>\n </div>\n</div>\n"
83510
83583
 
83511
83584
  /***/ }),
83512
83585
 
@@ -83524,6 +83597,13 @@ module.exports = "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-s
83524
83597
 
83525
83598
  /***/ }),
83526
83599
 
83600
+ /***/ 44937:
83601
+ /***/ ((module) => {
83602
+
83603
+ module.exports = "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n There is a problem\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">Task assignment required</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">Task assignment required</h2>\n\n <p>You must assign one of the available tasks from the task tab to continue with your work.</p>\n\n <a href=\"javascript:void(0)\" [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">Return to tasks tab to\n assign a task</a>\n </div>\n</div>\n"
83604
+
83605
+ /***/ }),
83606
+
83527
83607
  /***/ 93453:
83528
83608
  /***/ ((module) => {
83529
83609