@hmcts/ccd-case-ui-toolkit 7.0.76 → 7.0.77-ungrey-back-button

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 +13 -1
  26. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +70 -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 +114 -0
  36. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +1432 -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 +25 -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,114 @@
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
+ //reset will be called to ensure that the entire state is reset
49
+ reset() {
50
+ this.isJourneyAtStart = false;
51
+ this.journeyState.clear();
52
+ this.instigator = null;
53
+ this.journeyCollection = [];
54
+ }
55
+ //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
56
+ next() {
57
+ if (this.journeyCollection.length <= 0) {
58
+ this.instigator?.onFinalNext();
59
+ return;
60
+ }
61
+ const isAnyObjectNotFinished = this.journeyCollection.some((journey) => !journey.isFinished());
62
+ if (!isAnyObjectNotFinished) {
63
+ this.instigator?.onFinalNext();
64
+ return;
65
+ }
66
+ for (const journey of this.journeyCollection) {
67
+ if (!journey) {
68
+ continue;
69
+ }
70
+ if (!journey?.isFinished()) {
71
+ journey?.next();
72
+ break;
73
+ }
74
+ }
75
+ }
76
+ //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
77
+ previous() {
78
+ if (this.journeyCollection.length <= 0) {
79
+ this.instigator?.onFinalPrevious();
80
+ return;
81
+ }
82
+ const isAnyObjectNotAtStart = this.journeyCollection.some((journey) => !journey.isStart());
83
+ if (!isAnyObjectNotAtStart) {
84
+ this.instigator?.onFinalPrevious();
85
+ return;
86
+ }
87
+ for (const journey of this.journeyCollection.slice().reverse()) {
88
+ if (!journey) {
89
+ continue;
90
+ }
91
+ if (!journey?.isStart()) {
92
+ journey?.previous();
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ //isAtStart can be used to inform the instigator if we're at the start.
98
+ get isAtStart() {
99
+ return this.isJourneyAtStart;
100
+ }
101
+ //isAtStart can be used to update the value from a journey object, so the instigator knows.
102
+ set isAtStart(isAtStart) {
103
+ this.isJourneyAtStart = isAtStart;
104
+ }
105
+ static ɵfac = function MultipageComponentStateService_Factory(t) { return new (t || MultipageComponentStateService)(); };
106
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MultipageComponentStateService, factory: MultipageComponentStateService.ɵfac, providedIn: 'root' });
107
+ }
108
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultipageComponentStateService, [{
109
+ type: Injectable,
110
+ args: [{
111
+ providedIn: 'root'
112
+ }]
113
+ }], null, null); })();
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwYWdlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9qb3VybmV5L211bHRpcGFnZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLCtFQUErRTtJQUN2RSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDMUMsc0dBQXNHO0lBQzlGLGlCQUFpQixHQUFjLElBQUksS0FBSyxFQUFXLENBQUM7SUFDNUQsdUdBQXVHO0lBQy9GLFVBQVUsR0FBNkIsSUFBSSxDQUFDO0lBQ3BELGdGQUFnRjtJQUN4RSxZQUFZLEdBQXlCLElBQUksR0FBRyxFQUFtQixDQUFDO0lBRXhFLDBGQUEwRjtJQUMxRixvQkFBb0IsQ0FBQyxpQkFBNEI7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRCx3RkFBd0Y7SUFDeEYsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsc0JBQXNCLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsYUFBYSxDQUFDLFVBQTZCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx5RUFB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QUFDO0lBRUQsMkZBQTJGO0lBQzNGLElBQVcsU0FBUyxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQzt3RkF6SFUsOEJBQThCO2dFQUE5Qiw4QkFBOEIsV0FBOUIsOEJBQThCLG1CQUY3QixNQUFNOztpRkFFUCw4QkFBOEI7Y0FIMUMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSm91cm5leSwgSm91cm5leUluc3RpZ2F0b3IgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2Uge1xuICAvL2lzIGpvdXJuZXkgYXQgc3RhcnQgd2lsbCBoZWxwIGtlZXAgdHJhY2sgb2YgdGhlIHByb2dyZXNzIHRocm91Z2ggdGhlIGpvdXJuZXkuXG4gIHByaXZhdGUgaXNKb3VybmV5QXRTdGFydDogYm9vbGVhbiA9IGZhbHNlO1xuICAvL2pvdXJuZXkgY29sbGVjdGlvbiByZWZlcmVuY2VzIGFuIHVwdG8gZGF0ZSBsaXN0IG9mIGFsbCB0aGUgam91cm5leSBjb21wb25lbnRzIGN1cnJlbnRseSByZW5kZXJlZCEhISFcbiAgcHJpdmF0ZSBqb3VybmV5Q29sbGVjdGlvbjogSm91cm5leVtdID0gbmV3IEFycmF5PEpvdXJuZXk+KCk7XG4gIC8vdGhlIGluc3RpZ2F0b3IgcmVmZXJlbmNlcyB0aGUgY2FzZS1lZGl0LXBhZ2UgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIG5leHQgYW5kIHByZXZpb3VzIG1ldGhvZHNcbiAgcHJpdmF0ZSBpbnN0aWdhdG9yOiBKb3VybmV5SW5zdGlnYXRvciB8IG51bGwgPSBudWxsO1xuICAvL2VhY2ggam91cm5leSB3aWxsIHN0b3JlIGl0cyBzdGF0ZSBoZXJlLiB0aGlzIGNvdWxkIGluY2x1ZGUgZm9ybSBkYXRhIGlmIG5lZWRlZFxuICBwcml2YXRlIGpvdXJuZXlTdGF0ZTogTWFwPHN0cmluZywgSm91cm5leT4gPSBuZXcgTWFwPHN0cmluZywgSm91cm5leT4oKTtcblxuICAvL3NldEpvdXJuZXlDb21wb25lbnQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gdXBkYXRlIHRoZSBqb3VybmV5IGNvbGxlY3Rpb25cbiAgc2V0Sm91cm5leUNvbGxlY3Rpb24oam91cm5leUNvbGxlY3Rpb246IEpvdXJuZXlbXSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24gPSBqb3VybmV5Q29sbGVjdGlvbjtcbiAgfVxuXG4gIC8vZ2V0Sm91cm5leUNvbGxlY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gZ2V0IHRoZSBqb3VybmV5IGNvbGxlY3Rpb25cbiAgZ2V0Sm91cm5leUNvbGxlY3Rpb24oKTogSm91cm5leVtdIHtcbiAgICByZXR1cm4gdGhpcy5qb3VybmV5Q29sbGVjdGlvbjtcbiAgfVxuXG4gIC8vYWRkVG9Kb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBqb3VybmV5XG4gIGFkZFRvam91cm5leUNvbGxlY3Rpb24oam91cm5leTogSm91cm5leSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24ucHVzaChqb3VybmV5KTtcbiAgfVxuXG4gIC8vcmVzZXRKb3VybmV5Q29sbGVjdGlvbiB3aWxsIGJlIGNhbGxlZFxuICByZXNldEpvdXJuZXlDb2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leUNvbGxlY3Rpb24gPSBbXTtcbiAgfVxuXG4gIC8vc2V0SW5zdGlnYXRvciB3aWxsIGJlIGNhbGxlZCBieSB0aGUgYXBwIGNvbXBvbmVudCB0byB1cGRhdGUgdGhlIGluc3RpZ2F0b3JcbiAgc2V0SW5zdGlnYXRvcihpbnN0aWdhdG9yOiBKb3VybmV5SW5zdGlnYXRvcik6IHZvaWQge1xuICAgIHRoaXMuaW5zdGlnYXRvciA9IGluc3RpZ2F0b3I7XG4gIH1cblxuICAvL2dldEluc3RpZ2F0b3Igd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGFwcCBjb21wb25lbnQgdG8gZ2V0IHRoZSBpbnN0aWdhdG9yXG4gIGdldEluc3RpZ2F0b3IoKTogSm91cm5leUluc3RpZ2F0b3IgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pbnN0aWdhdG9yO1xuICB9XG5cbiAgLy9zZXRKb3VybmV5U3RhdGUgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRvIHVwZGF0ZSB0aGUgam91cm5leSBzdGF0ZVxuICBzZXRKb3VybmV5U3RhdGUoam91cm5leTogSm91cm5leSk6IHZvaWQge1xuICAgIHRoaXMuam91cm5leVN0YXRlLnNldChqb3VybmV5LmpvdXJuZXlJZCwgam91cm5leSk7XG4gIH1cblxuICAvL2dldEpvdXJuZXlTdGF0ZSB3aWxsIGJlIGNhbGxlZCBieSB0aGUgam91cm5leSBjb21wb25lbnQgdG8gZ2V0IHRoZSBqb3VybmV5IHN0YXRlXG4gIGdldEpvdXJuZXlTdGF0ZShqb3VybmV5OiBKb3VybmV5KTogSm91cm5leSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmpvdXJuZXlTdGF0ZS5nZXQoam91cm5leS5qb3VybmV5SWQpIHx8IG51bGw7XG4gIH1cblxuICAvL3Jlc2V0Sm91cm5leVN0YXRlIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBqb3VybmV5IGNvbXBvbmVudCB0byByZXNldCB0aGUgam91cm5leSBzdGF0ZVxuICByZXNldEpvdXJuZXlTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmpvdXJuZXlTdGF0ZS5jbGVhcigpO1xuICB9XG5cbiAgLy9yZXNldCB3aWxsIGJlIGNhbGxlZCB0byBlbnN1cmUgdGhhdCB0aGUgZW50aXJlIHN0YXRlIGlzIHJlc2V0XG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNKb3VybmV5QXRTdGFydCA9IGZhbHNlO1xuICAgIHRoaXMuam91cm5leVN0YXRlLmNsZWFyKCk7XG4gICAgdGhpcy5pbnN0aWdhdG9yID0gbnVsbDtcbiAgICB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uID0gW107XG4gIH1cblxuICAvL25leHQgd2lsbCBiZSBjYWxsZWQgYnkgdGhlIGluc3RpZ2F0b3IgdGhhdCB3aWxsIGludm9rZSB0aGUgbmV4dCBtZXRob2Qgb2YgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIG5leHQgbWV0aG9kIG9mIHRoZSBjaGlsZHBhZ2UgY29tcG9uZW50XG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxOZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNBbnlPYmplY3ROb3RGaW5pc2hlZDogYm9vbGVhbiA9IHRoaXMuam91cm5leUNvbGxlY3Rpb24uc29tZSgoam91cm5leSkgPT4gIWpvdXJuZXkuaXNGaW5pc2hlZCgpKTtcblxuICAgIGlmICghaXNBbnlPYmplY3ROb3RGaW5pc2hlZCkge1xuICAgICAgdGhpcy5pbnN0aWdhdG9yPy5vbkZpbmFsTmV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgam91cm5leSBvZiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uKSB7XG4gICAgICBpZiAoIWpvdXJuZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICgham91cm5leT8uaXNGaW5pc2hlZCgpKSB7XG4gICAgICAgIGpvdXJuZXk/Lm5leHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9wcmV2aW91cyB3aWxsIGJlIGNhbGxlZCBieSB0aGUgaW5zdGlnYXRvciB0aGF0IHdpbGwgaW52b2tlIHRoZSBwcmV2aW91cyBtZXRob2Qgb2YgdGhlIGpvdXJuZXkgY29tcG9uZW50IHRoYXQgd2lsbCBpbnZva2UgdGhlIHByZXZpb3VzIG1ldGhvZCBvZiB0aGUgY2hpbGRwYWdlIGNvbXBvbmVudFxuICBwdWJsaWMgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuam91cm5leUNvbGxlY3Rpb24ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuaW5zdGlnYXRvcj8ub25GaW5hbFByZXZpb3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNBbnlPYmplY3ROb3RBdFN0YXJ0OiBib29sZWFuID0gdGhpcy5qb3VybmV5Q29sbGVjdGlvbi5zb21lKChqb3VybmV5KSA9PiAham91cm5leS5pc1N0YXJ0KCkpO1xuICAgIGlmICghaXNBbnlPYmplY3ROb3RBdFN0YXJ0KSB7XG4gICAgICB0aGlzLmluc3RpZ2F0b3I/Lm9uRmluYWxQcmV2aW91cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgam91cm5leSBvZiB0aGlzLmpvdXJuZXlDb2xsZWN0aW9uLnNsaWNlKCkucmV2ZXJzZSgpKSB7XG4gICAgICBpZiAoIWpvdXJuZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoIWpvdXJuZXk/LmlzU3RhcnQoKSkge1xuICAgICAgICBqb3VybmV5Py5wcmV2aW91cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvL2lzQXRTdGFydCBjYW4gYmUgdXNlZCB0byBpbmZvcm0gdGhlIGluc3RpZ2F0b3IgaWYgd2UncmUgYXQgdGhlIHN0YXJ0LlxuICBwdWJsaWMgZ2V0IGlzQXRTdGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0pvdXJuZXlBdFN0YXJ0O1xuICB9XG5cbiAgLy9pc0F0U3RhcnQgY2FuIGJlIHVzZWQgdG8gdXBkYXRlIHRoZSB2YWx1ZSBmcm9tIGEgam91cm5leSBvYmplY3QsIHNvIHRoZSBpbnN0aWdhdG9yIGtub3dzLlxuICBwdWJsaWMgc2V0IGlzQXRTdGFydChpc0F0U3RhcnQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzSm91cm5leUF0U3RhcnQgPSBpc0F0U3RhcnQ7XG4gIH1cbn1cbiJdfQ==