@hmcts/ccd-case-ui-toolkit 7.0.76 → 7.0.77-ungrey-back-button-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.
Files changed (101) hide show
  1. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +100 -33
  2. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +49 -37
  3. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +7 -4
  4. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +3 -1
  5. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +14 -4
  6. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +96 -0
  7. package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +82 -0
  8. package/esm2022/lib/shared/components/palette/base-field/index.mjs +3 -1
  9. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +21 -21
  10. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +3 -3
  11. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +22 -22
  12. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +77 -35
  13. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +32 -29
  14. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +33 -28
  15. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +137 -63
  16. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +28 -28
  17. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +124 -105
  18. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +30 -4
  19. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +110 -32
  20. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +27 -18
  21. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +19 -7
  22. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +55 -45
  23. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +13 -9
  24. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +58 -39
  25. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +15 -2
  26. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +74 -23
  27. package/esm2022/lib/shared/components/palette/palette.module.mjs +2 -2
  28. package/esm2022/lib/shared/domain/index.mjs +2 -1
  29. package/esm2022/lib/shared/domain/journey/index.mjs +3 -0
  30. package/esm2022/lib/shared/domain/journey/journey-instigator.model.mjs +2 -0
  31. package/esm2022/lib/shared/domain/journey/journey.model.mjs +2 -0
  32. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
  33. package/esm2022/lib/shared/services/index.mjs +2 -1
  34. package/esm2022/lib/shared/services/journey/index.mjs +2 -0
  35. package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +117 -0
  36. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1440 -737
  37. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  38. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +16 -3
  39. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  40. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +7 -2
  41. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  42. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  43. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +1 -0
  44. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -1
  45. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +2 -1
  46. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  47. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts +30 -0
  48. package/lib/shared/components/palette/base-field/abstract-field-write-journey.component.d.ts.map +1 -0
  49. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts +27 -0
  50. package/lib/shared/components/palette/base-field/abstract-journey.component.d.ts.map +1 -0
  51. package/lib/shared/components/palette/base-field/index.d.ts +2 -0
  52. package/lib/shared/components/palette/base-field/index.d.ts.map +1 -1
  53. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +4 -2
  54. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  55. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +4 -2
  56. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -1
  57. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +11 -4
  58. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  59. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +6 -3
  60. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  61. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +5 -2
  62. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  63. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +12 -5
  64. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  65. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +4 -2
  66. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -1
  67. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +7 -3
  68. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  69. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +1 -0
  70. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  71. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +10 -5
  72. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  73. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +6 -3
  74. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -1
  75. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +6 -2
  76. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -1
  77. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +6 -3
  78. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -1
  79. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +5 -2
  80. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -1
  81. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +7 -3
  82. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
  83. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +5 -0
  84. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
  85. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +6 -3
  86. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  87. package/lib/shared/domain/index.d.ts +1 -0
  88. package/lib/shared/domain/index.d.ts.map +1 -1
  89. package/lib/shared/domain/journey/index.d.ts +3 -0
  90. package/lib/shared/domain/journey/index.d.ts.map +1 -0
  91. package/lib/shared/domain/journey/journey-instigator.model.d.ts +5 -0
  92. package/lib/shared/domain/journey/journey-instigator.model.d.ts.map +1 -0
  93. package/lib/shared/domain/journey/journey.model.d.ts +19 -0
  94. package/lib/shared/domain/journey/journey.model.d.ts.map +1 -0
  95. package/lib/shared/services/index.d.ts +1 -0
  96. package/lib/shared/services/index.d.ts.map +1 -1
  97. package/lib/shared/services/journey/index.d.ts +2 -0
  98. package/lib/shared/services/journey/index.d.ts.map +1 -0
  99. package/lib/shared/services/journey/multipage-component-state.service.d.ts +26 -0
  100. package/lib/shared/services/journey/multipage-component-state.service.d.ts.map +1 -0
  101. package/package.json +1 -1
@@ -12,6 +12,7 @@ export * from './eventStatusService';
12
12
  export * from './fields';
13
13
  export * from './form';
14
14
  export * from './http';
15
+ export * from './journey';
15
16
  export * from './jurisdiction';
16
17
  export * from './banners';
17
18
  export * from './navigation';
@@ -29,4 +30,4 @@ export * from './search-result/sorting/search-result-view-item-comparator-factor
29
30
  export * from './organisation';
30
31
  export * from './browser';
31
32
  export * from './loading';
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZmllbGRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1maWxlLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZsYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50U3RhdHVzU2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwJztcbmV4cG9ydCAqIGZyb20gJy4vanVyaXNkaWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vYmFubmVycyc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9vcmRlcic7XG5leHBvcnQgKiBmcm9tICcuL3Byb2ZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1ZXN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoJztcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL3JvdXRlcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL3JldHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93JztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Jhc2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmluaXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLXJlc3VsdC9zb3J0aW5nL3NlYXJjaC1yZXN1bHQtdmlldy1pdGVtLWNvbXBhcmF0b3ItZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL29yZ2FuaXNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Jyb3dzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nJztcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtZmllbGRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1maWxlLXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZsYWcnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHJhZnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50U3RhdHVzU2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcyc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwJztcbmV4cG9ydCAqIGZyb20gJy4vam91cm5leSc7XG5leHBvcnQgKiBmcm9tICcuL2p1cmlzZGljdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2Jhbm5lcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWVzdCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaCc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9yZXRyeSc7XG5leHBvcnQgKiBmcm9tICcuL3dpbmRvdyc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtiYXNrZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1yZXN1bHQvc29ydGluZy9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS1jb21wYXJhdG9yLWZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9vcmdhbmlzYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9icm93c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './multipage-component-state.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2pvdXJuZXkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJzsiXX0=
@@ -0,0 +1,117 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MultipageComponentStateService {
4
+ //is journey at start will help keep track of the progress through the journey.
5
+ isJourneyAtStart = false;
6
+ //journey collection references an upto date list of all the journey components currently rendered!!!!
7
+ journeyCollection = new Array();
8
+ //the instigator references the case-edit-page component that will invoke the next and previous methods
9
+ instigator = null;
10
+ //each journey will store its state here. this could include form data if needed
11
+ journeyState = new Map();
12
+ //setJourneyComponent will be called by the app component to update the journey collection
13
+ setJourneyCollection(journeyCollection) {
14
+ this.journeyCollection = journeyCollection;
15
+ }
16
+ //getJourneyCollection will be called by the app component to get the journey collection
17
+ getJourneyCollection() {
18
+ return this.journeyCollection;
19
+ }
20
+ //addToJourneyCollection will be called from the journey
21
+ addTojourneyCollection(journey) {
22
+ this.journeyCollection.push(journey);
23
+ }
24
+ //resetJourneyCollection will be called
25
+ resetJourneyCollection() {
26
+ this.journeyCollection = [];
27
+ }
28
+ //setInstigator will be called by the app component to update the instigator
29
+ setInstigator(instigator) {
30
+ this.instigator = instigator;
31
+ }
32
+ //getInstigator will be called by the app component to get the instigator
33
+ getInstigator() {
34
+ return this.instigator;
35
+ }
36
+ //setJourneyState will be called by the journey component to update the journey state
37
+ setJourneyState(journey) {
38
+ this.journeyState.set(journey.journeyId, journey);
39
+ }
40
+ //getJourneyState will be called by the journey component to get the journey state
41
+ getJourneyState(journey) {
42
+ return this.journeyState.get(journey.journeyId) || null;
43
+ }
44
+ //resetJourneyState will be called by the journey component to reset the journey state
45
+ resetJourneyState() {
46
+ this.journeyState.clear();
47
+ }
48
+ getJourneyCollectionMainObject() {
49
+ return this.journeyCollection[0];
50
+ }
51
+ //reset will be called to ensure that the entire state is reset
52
+ reset() {
53
+ this.isJourneyAtStart = false;
54
+ this.journeyState.clear();
55
+ this.instigator = null;
56
+ this.journeyCollection = [];
57
+ }
58
+ //next will be called by the instigator that will invoke the next method of the journey component that will invoke the next method of the childpage component
59
+ next() {
60
+ if (this.journeyCollection.length <= 0) {
61
+ this.instigator?.onFinalNext();
62
+ return;
63
+ }
64
+ const isAnyObjectNotFinished = this.journeyCollection.some((journey) => !journey.isFinished());
65
+ if (!isAnyObjectNotFinished) {
66
+ this.instigator?.onFinalNext();
67
+ return;
68
+ }
69
+ for (const journey of this.journeyCollection) {
70
+ if (!journey) {
71
+ continue;
72
+ }
73
+ if (!journey?.isFinished()) {
74
+ journey?.next();
75
+ break;
76
+ }
77
+ }
78
+ }
79
+ //previous will be called by the instigator that will invoke the previous method of the journey component that will invoke the previous method of the childpage component
80
+ previous() {
81
+ if (this.journeyCollection.length <= 0) {
82
+ this.instigator?.onFinalPrevious();
83
+ return;
84
+ }
85
+ const isAnyObjectNotAtStart = this.journeyCollection.some((journey) => !journey.isStart());
86
+ if (!isAnyObjectNotAtStart) {
87
+ this.instigator?.onFinalPrevious();
88
+ return;
89
+ }
90
+ for (const journey of this.journeyCollection.slice().reverse()) {
91
+ if (!journey) {
92
+ continue;
93
+ }
94
+ if (!journey?.isStart()) {
95
+ journey?.previous();
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ //isAtStart can be used to inform the instigator if we're at the start.
101
+ get isAtStart() {
102
+ return this.isJourneyAtStart;
103
+ }
104
+ //isAtStart can be used to update the value from a journey object, so the instigator knows.
105
+ set isAtStart(isAtStart) {
106
+ this.isJourneyAtStart = isAtStart;
107
+ }
108
+ static ɵfac = function MultipageComponentStateService_Factory(t) { return new (t || MultipageComponentStateService)(); };
109
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MultipageComponentStateService, factory: MultipageComponentStateService.ɵfac, providedIn: 'root' });
110
+ }
111
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultipageComponentStateService, [{
112
+ type: Injectable,
113
+ args: [{
114
+ providedIn: 'root'
115
+ }]
116
+ }], null, null); })();
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9qb3VybmV5L211bHRpcGFnZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLCtFQUErRTtJQUN2RSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDMUMsc0dBQXNHO0lBQzlGLGlCQUFpQixHQUFjLElBQUksS0FBSyxFQUFXLENBQUM7SUFDNUQsdUdBQXVHO0lBQy9GLFVBQVUsR0FBNkIsSUFBSSxDQUFDO0lBQ3BELGdGQUFnRjtJQUN4RSxZQUFZLEdBQXlCLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRXhFLDBGQUEwRjtJQUMxRixvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRCx3RkFBd0Y7SUFDeEYsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsYUFBYSxDQUFDLFVBQTZCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx5RUFB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QUM7SUFFRCx1RUFBdUU7SUFDdkUsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCwyRkFBMkY7SUFDM0YsSUFBVyxTQUFTLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO3dGQTdIVSw4QkFBOEI7Z0VBQTlCLDhCQUE4QixXQUE5Qiw4QkFBOEIsbUJBRjdCLE1BQU07O2lGQUVQLDhCQUE4QjtjQUgxQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKb3VybmV5LCBKb3VybmV5SW5zdGlnYXRvciB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSB7XG4gIC8vaXMgam91cm5leSBhdCBzdGFydCB3aWxsIGhlbHAga2VlcCB0cmFjayBvZiB0aGUgcHJvZ3Jlc3MgdGhyb3VnaCB0aGUgam91cm5leS5cbiAgcHJpdmF0ZSBpc0pvdXJuZXlBdFN0YXJ0OiBib29sZWFuID0gZmFsc2U7XG4gIC8vam91cm5leSBjb2xsZWN0aW9uIHJlZmVyZW5jZXMgYW4gdXB0byBkYXRlIGxpc3Qgb2YgYWxsIHRoZSBqb3VybmV5IGNvbXBvbmVudHMgY3VycmVudGx5IHJlbmRlcmVkISEhIVxuICBwcml2YXRlIGpvdXJuZXlDb2xsZWN0aW9uOiBKb3VybmV5W10gPSBuZXcgQXJyYXk8Sm91cm5leT4oKTtcbiAgLy90aGUgaW5zdGlnYXRvciByZWZlcmVuY2VzIHRoZSBjYXNlLWVkaXQtcGFnZSBjb21wb25lbnQgdGhhdCB3aWxsIGludm9rZSB0aGUgbmV4dCBhbmQgcHJldmlvdXMgbWV0aG9kc1xuICBwcml2YXRlIGluc3RpZ2F0b3I6IEpvdXJuZXlJbnN0aWdhdG9yIHwgbnVsbCA9IG51bGw7XG4gIC8vZWFjaCBqb3VybmV5IHdpbGwgc3RvcmUgaXRzIHN0YXRlIGhlcmUuIHRoaXMgY291bGQgaW5jbHVkZSBmb3JtIGRhdGEgaWYgbmVlZGVkXG4gIHByaXZhdGUgam91cm5leVN0YXRlOiBNYXA8c3RyaW5nLCBKb3VybmV5PiA9IG5ldyBNYXA8c3RyaW5nLCBKb3VybmV5PigpO1xuXG4gIC8vc2V0Sm91cm5leUNvbXBvbmVudCB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byB1cGRhdGUgdGhlIGpvdXJuZXkgY29sbGVjdGlvblxuICBzZXRKb3VybmV5Q29sbGVjdGlvbihqb3VybmV5Q29sbGVjdGlvbjogSm91cm5leVtdKTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbiA9IGpvdXJuZXlDb2xsZWN0aW9uO1xuICB9XG5cbiAgLy9nZXRKb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byBnZXQgdGhlIGpvdXJuZXkgY29sbGVjdGlvblxuICBnZXRKb3VybmV5Q29sbGVjdGlvbigpOiBKb3VybmV5W10ge1xuICAgIHJldHVybiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uO1xuICB9XG5cbiAgLy9hZGRUb0pvdXJuZXlDb2xsZWN0aW9uIHdpbGwgYmUgY2FsbGVkIGZyb20gdGhlIGpvdXJuZXlcbiAgYWRkVG9qb3VybmV5Q29sbGVjdGlvbihqb3VybmV5OiBKb3VybmV5KTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5wdXNoKGpvdXJuZXkpO1xuICB9XG5cbiAgLy9yZXNldEpvdXJuZXlDb2xsZWN0aW9uIHdpbGwgYmUgY2FsbGVkXG4gIHJlc2V0Sm91cm5leUNvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbiA9IFtdO1xuICB9XG5cbiAgLy9zZXRJbnN0aWdhdG9yIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBhcHAgY29tcG9uZW50IHRvIHVwZGF0ZSB0aGUgaW5zdGlnYXRvclxuICBzZXRJbnN0aWdhdG9yKGluc3RpZ2F0b3I6IEpvdXJuZXlJbnN0aWdhdG9yKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0aWdhdG9yID0gaW5zdGlnYXRvcjtcbiAgfVxuXG4gIC8vZ2V0SW5zdGlnYXRvciB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byBnZXQgdGhlIGluc3RpZ2F0b3JcbiAgZ2V0SW5zdGlnYXRvcigpOiBKb3VybmV5SW5zdGlnYXRvciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmluc3RpZ2F0b3I7XG4gIH1cblxuICAvL3NldEpvdXJuZXlTdGF0ZSB3aWxsIGJlIGNhbGxlZCBieSB0aGUgam91cm5leSBjb21wb25lbnQgdG8gdXBkYXRlIHRoZSBqb3VybmV5IHN0YXRlXG4gIHNldEpvdXJuZXlTdGF0ZShqb3VybmV5OiBKb3VybmV5KTogdm9pZCB7XG4gICAgdGhpcy5qb3VybmV5U3RhdGUuc2V0KGpvdXJuZXkuam91cm5leUlkLCBqb3VybmV5KTtcbiAgfVxuXG4gIC8vZ2V0Sm91cm5leVN0YXRlIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBqb3VybmV5IGNvbXBvbmVudCB0byBnZXQgdGhlIGpvdXJuZXkgc3RhdGVcbiAgZ2V0Sm91cm5leVN0YXRlKGpvdXJuZXk6IEpvdXJuZXkpOiBKb3VybmV5IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuam91cm5leVN0YXRlLmdldChqb3VybmV5LmpvdXJuZXlJZCkgfHwgbnVsbDtcbiAgfVxuXG4gIC8vcmVzZXRKb3VybmV5U3RhdGUgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRvIHJlc2V0IHRoZSBqb3VybmV5IHN0YXRlXG4gIHJlc2V0Sm91cm5leVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leVN0YXRlLmNsZWFyKCk7XG4gIH1cblxuICBnZXRKb3VybmV5Q29sbGVjdGlvbk1haW5PYmplY3QoKXtcbiAgICByZXR1cm4gdGhpcy5qb3VybmV5Q29sbGVjdGlvblswXTtcbiAgfVxuXG4gIC8vcmVzZXQgd2lsbCBiZSBjYWxsZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGVudGlyZSBzdGF0ZSBpcyByZXNldFxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSm91cm5leUF0U3RhcnQgPSBmYWxzZTtcbiAgICB0aGlzLmpvdXJuZXlTdGF0ZS5jbGVhcigpO1xuICAgIHRoaXMuaW5zdGlnYXRvciA9IG51bGw7XG4gICAgdGhpcy5qb3VybmV5Q29sbGVjdGlvbiA9IFtdO1xuICB9XG5cbiAgLy9uZXh0IHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBpbnN0aWdhdG9yIHRoYXQgd2lsbCBpbnZva2UgdGhlIG5leHQgbWV0aG9kIG9mIHRoZSBqb3VybmV5IGNvbXBvbmVudCB0aGF0IHdpbGwgaW52b2tlIHRoZSBuZXh0IG1ldGhvZCBvZiB0aGUgY2hpbGRwYWdlIGNvbXBvbmVudFxuICBwdWJsaWMgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5qb3VybmV5Q29sbGVjdGlvbi5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5pbnN0aWdhdG9yPy5vbkZpbmFsTmV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQW55T2JqZWN0Tm90RmluaXNoZWQ6IGJvb2xlYW4gPSB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLnNvbWUoKGpvdXJuZXkpID0+ICFqb3VybmV5LmlzRmluaXNoZWQoKSk7XG5cbiAgICBpZiAoIWlzQW55T2JqZWN0Tm90RmluaXNoZWQpIHtcbiAgICAgIHRoaXMuaW5zdGlnYXRvcj8ub25GaW5hbE5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGpvdXJuZXkgb2YgdGhpcy5qb3VybmV5Q29sbGVjdGlvbikge1xuICAgICAgaWYgKCFqb3VybmV5KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWpvdXJuZXk/LmlzRmluaXNoZWQoKSkge1xuICAgICAgICBqb3VybmV5Py5uZXh0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vcHJldmlvdXMgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGluc3RpZ2F0b3IgdGhhdCB3aWxsIGludm9rZSB0aGUgcHJldmlvdXMgbWV0aG9kIG9mIHRoZSBqb3VybmV5IGNvbXBvbmVudCB0aGF0IHdpbGwgaW52b2tlIHRoZSBwcmV2aW91cyBtZXRob2Qgb2YgdGhlIGNoaWxkcGFnZSBjb21wb25lbnRcbiAgcHVibGljIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxQcmV2aW91cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQW55T2JqZWN0Tm90QXRTdGFydDogYm9vbGVhbiA9IHRoaXMuam91cm5leUNvbGxlY3Rpb24uc29tZSgoam91cm5leSkgPT4gIWpvdXJuZXkuaXNTdGFydCgpKTtcbiAgICBpZiAoIWlzQW55T2JqZWN0Tm90QXRTdGFydCkge1xuICAgICAgdGhpcy5pbnN0aWdhdG9yPy5vbkZpbmFsUHJldmlvdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGpvdXJuZXkgb2YgdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5zbGljZSgpLnJldmVyc2UoKSkge1xuICAgICAgaWYgKCFqb3VybmV5KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFqb3VybmV5Py5pc1N0YXJ0KCkpIHtcbiAgICAgICAgam91cm5leT8ucHJldmlvdXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9pc0F0U3RhcnQgY2FuIGJlIHVzZWQgdG8gaW5mb3JtIHRoZSBpbnN0aWdhdG9yIGlmIHdlJ3JlIGF0IHRoZSBzdGFydC5cbiAgcHVibGljIGdldCBpc0F0U3RhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNKb3VybmV5QXRTdGFydDtcbiAgfVxuXG4gIC8vaXNBdFN0YXJ0IGNhbiBiZSB1c2VkIHRvIHVwZGF0ZSB0aGUgdmFsdWUgZnJvbSBhIGpvdXJuZXkgb2JqZWN0LCBzbyB0aGUgaW5zdGlnYXRvciBrbm93cy5cbiAgcHVibGljIHNldCBpc0F0U3RhcnQoaXNBdFN0YXJ0OiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0pvdXJuZXlBdFN0YXJ0ID0gaXNBdFN0YXJ0O1xuICB9XG59XG4iXX0=