@dsivd/prestations-ng 17.10.9 → 18.0.0-beta.10

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 (314) hide show
  1. package/CHANGELOG.md +2478 -2466
  2. package/CONTRIBUTING.md +66 -66
  3. package/ESLINT_MIGRATION_GUIDE.md +19 -33
  4. package/MODULES.md +88 -88
  5. package/MULTI_ETAPES.md +9 -9
  6. package/README.md +25 -24
  7. package/README_COMMON.md +10 -10
  8. package/UPGRADING_V12.md +36 -36
  9. package/UPGRADING_V13.md +3 -3
  10. package/UPGRADING_V14.md +2 -2
  11. package/UPGRADING_V15.md +4 -4
  12. package/UPGRADING_V16.md +38 -38
  13. package/UPGRADING_V17.md +51 -51
  14. package/UPGRADING_V18.md +596 -8
  15. package/UPGRADING_V8.md +5 -5
  16. package/abstract-page-component.d.ts +1 -1
  17. package/dsivd-prestations-ng-18.0.0-beta.10.tgz +0 -0
  18. package/fesm2022/dsivd-prestations-ng.mjs +903 -868
  19. package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
  20. package/foehn-checkables/foehn-checkable-group.component.d.ts +1 -1
  21. package/foehn-checkables/foehn-checkables.module.d.ts +6 -7
  22. package/foehn-date-picker/date-picker.helper.d.ts +1 -1
  23. package/foehn-icons/abstract-icon-component.d.ts +1 -1
  24. package/foehn-input/foehn-input-string.component.d.ts +1 -1
  25. package/foehn-input/foehn-input.component.d.ts +1 -1
  26. package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
  27. package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
  28. package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
  29. package/foehn-navigation/abstract-foehn-navigation.component.d.ts +1 -1
  30. package/foehn-table/foehn-table.component.d.ts +1 -6
  31. package/foehn-upload/abstract-foehn-uploader.component.d.ts +1 -2
  32. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -3
  33. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +1 -1
  34. package/index.d.ts +1 -1
  35. package/index.html +1 -1
  36. package/package.json +15 -17
  37. package/prestations-ng-core.module.d.ts +5 -4
  38. package/sdk-appinfo/application-info.service.d.ts +1 -0
  39. package/sdk-drafts/drafts.module.d.ts +7 -8
  40. package/sdk-support-alert/support-alert.module.d.ts +2 -3
  41. package/dsivd-prestations-ng-17.10.9.tgz +0 -0
  42. package/esm2022/abstract-page-component.mjs +0 -232
  43. package/esm2022/directives/currency-formatter.directive.mjs +0 -143
  44. package/esm2022/directives/formatter.module.mjs +0 -37
  45. package/esm2022/directives/iban-formatter.directive.mjs +0 -29
  46. package/esm2022/directives/ide-formatter.directive.mjs +0 -37
  47. package/esm2022/directives/ndc-formatter.directive.mjs +0 -75
  48. package/esm2022/dsivd-prestations-ng.mjs +0 -5
  49. package/esm2022/foehn-address/address.type.mjs +0 -10
  50. package/esm2022/foehn-address/foehn-address.module.mjs +0 -55
  51. package/esm2022/foehn-address/foehn-display-address.component.mjs +0 -69
  52. package/esm2022/foehn-address/foehn-input-address.component.mjs +0 -498
  53. package/esm2022/foehn-address/foehn-input-foreign-locality.component.mjs +0 -66
  54. package/esm2022/foehn-address/foehn-input-foreign-street.component.mjs +0 -56
  55. package/esm2022/foehn-agenda/calendar.type.mjs +0 -3
  56. package/esm2022/foehn-agenda/current-week.type.mjs +0 -4
  57. package/esm2022/foehn-agenda/day-slots.type.mjs +0 -3
  58. package/esm2022/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +0 -75
  59. package/esm2022/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +0 -242
  60. package/esm2022/foehn-agenda/foehn-agenda.component.mjs +0 -95
  61. package/esm2022/foehn-agenda/foehn-agenda.module.mjs +0 -62
  62. package/esm2022/foehn-agenda/pagination-week.type.mjs +0 -3
  63. package/esm2022/foehn-agenda/selected-slot.type.mjs +0 -3
  64. package/esm2022/foehn-autocomplete/foehn-autocomplete.component.mjs +0 -684
  65. package/esm2022/foehn-autocomplete/foehn-autocomplete.module.mjs +0 -40
  66. package/esm2022/foehn-boolean/foehn-boolean-checkbox.component.mjs +0 -28
  67. package/esm2022/foehn-boolean/foehn-boolean-radio.component.mjs +0 -40
  68. package/esm2022/foehn-boolean/foehn-boolean.module.mjs +0 -33
  69. package/esm2022/foehn-breadcrumb/breadcrumb-event.service.mjs +0 -177
  70. package/esm2022/foehn-breadcrumb/breadcrumb.mjs +0 -5
  71. package/esm2022/foehn-breadcrumb/foehn-breadcrumb.component.mjs +0 -106
  72. package/esm2022/foehn-breadcrumb/foehn-breadcrumb.module.mjs +0 -20
  73. package/esm2022/foehn-checkables/foehn-checkable-group.component.mjs +0 -291
  74. package/esm2022/foehn-checkables/foehn-checkables.module.mjs +0 -68
  75. package/esm2022/foehn-checkables/foehn-checkbox.component.mjs +0 -37
  76. package/esm2022/foehn-checkables/foehn-radio.component.mjs +0 -64
  77. package/esm2022/foehn-checkables/foehn-select.component.mjs +0 -55
  78. package/esm2022/foehn-checkables/form-select-option-group.mjs +0 -3
  79. package/esm2022/foehn-checkables/form-select-option.mjs +0 -3
  80. package/esm2022/foehn-confirm-modal/foehn-confirm-modal-content.mjs +0 -7
  81. package/esm2022/foehn-confirm-modal/foehn-confirm-modal.component.mjs +0 -40
  82. package/esm2022/foehn-confirm-modal/foehn-confirm-modal.module.mjs +0 -19
  83. package/esm2022/foehn-confirm-modal/foehn-confirm-modal.service.mjs +0 -53
  84. package/esm2022/foehn-date-picker/date-picker-navigation.helper.mjs +0 -168
  85. package/esm2022/foehn-date-picker/date-picker.helper.mjs +0 -132
  86. package/esm2022/foehn-date-picker/day-month.type.mjs +0 -3
  87. package/esm2022/foehn-date-picker/focused-day.type.mjs +0 -3
  88. package/esm2022/foehn-date-picker/foehn-date-picker.component.mjs +0 -392
  89. package/esm2022/foehn-date-picker/foehn-date-picker.module.mjs +0 -40
  90. package/esm2022/foehn-date-picker/month-year.type.mjs +0 -3
  91. package/esm2022/foehn-date-picker-button/foehn-date-picker-button.component.mjs +0 -97
  92. package/esm2022/foehn-date-picker-button/foehn-date-picker-button.module.mjs +0 -36
  93. package/esm2022/foehn-debug-summary/foehn-debug-summary.component.mjs +0 -84
  94. package/esm2022/foehn-debug-summary/foehn-debug-summary.component.module.mjs +0 -20
  95. package/esm2022/foehn-decision-electronique/foehn-decision-electronique.component.mjs +0 -37
  96. package/esm2022/foehn-decision-electronique/foehn-decision-electronique.module.mjs +0 -32
  97. package/esm2022/foehn-dropdown-menu/dropdown-menu-group.type.mjs +0 -3
  98. package/esm2022/foehn-dropdown-menu/dropdown-menu-item.type.mjs +0 -6
  99. package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +0 -212
  100. package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.module.mjs +0 -21
  101. package/esm2022/foehn-feedback-notification/foehn-feedback-notification.component.mjs +0 -113
  102. package/esm2022/foehn-feedback-notification/foehn-feedback-notification.module.mjs +0 -32
  103. package/esm2022/foehn-feedback-notification/foehn-feedback-notification.type.mjs +0 -3
  104. package/esm2022/foehn-footer/foehn-footer.component.mjs +0 -130
  105. package/esm2022/foehn-footer/foehn-footer.module.mjs +0 -19
  106. package/esm2022/foehn-footer/footer-link.type.mjs +0 -3
  107. package/esm2022/foehn-form/foehn-form.component.mjs +0 -136
  108. package/esm2022/foehn-form/foehn-form.module.mjs +0 -32
  109. package/esm2022/foehn-form/register-ng-model.service.mjs +0 -23
  110. package/esm2022/foehn-growl/foehn-growl.component.mjs +0 -45
  111. package/esm2022/foehn-growl/foehn-growl.module.mjs +0 -18
  112. package/esm2022/foehn-growl/growl-broker.service.mjs +0 -37
  113. package/esm2022/foehn-growl/growl-message.mjs +0 -9
  114. package/esm2022/foehn-growl/growl-types.mjs +0 -7
  115. package/esm2022/foehn-header/foehn-header.component.mjs +0 -159
  116. package/esm2022/foehn-header/foehn-header.module.mjs +0 -40
  117. package/esm2022/foehn-header/foehn-skip-link.component.mjs +0 -51
  118. package/esm2022/foehn-help-modal/foehn-help-modal.component.mjs +0 -44
  119. package/esm2022/foehn-help-modal/foehn-help-modal.module.mjs +0 -20
  120. package/esm2022/foehn-help-modal/foehn-help-modal.type.mjs +0 -2
  121. package/esm2022/foehn-icons/abstract-icon-component.mjs +0 -12
  122. package/esm2022/foehn-icons/foehn-icon-calendar.component.mjs +0 -19
  123. package/esm2022/foehn-icons/foehn-icon-check-square-o.component.mjs +0 -19
  124. package/esm2022/foehn-icons/foehn-icon-check.component.mjs +0 -19
  125. package/esm2022/foehn-icons/foehn-icon-chevron-down.component.mjs +0 -19
  126. package/esm2022/foehn-icons/foehn-icon-chevron-left.component.mjs +0 -19
  127. package/esm2022/foehn-icons/foehn-icon-chevron-right.component.mjs +0 -19
  128. package/esm2022/foehn-icons/foehn-icon-chevron-up.component.mjs +0 -19
  129. package/esm2022/foehn-icons/foehn-icon-clock.component.mjs +0 -19
  130. package/esm2022/foehn-icons/foehn-icon-comment-dots.component.mjs +0 -19
  131. package/esm2022/foehn-icons/foehn-icon-edit.component.mjs +0 -19
  132. package/esm2022/foehn-icons/foehn-icon-external-link-alt.component.mjs +0 -19
  133. package/esm2022/foehn-icons/foehn-icon-file-pdf.component.mjs +0 -19
  134. package/esm2022/foehn-icons/foehn-icon-info-circle.component.mjs +0 -19
  135. package/esm2022/foehn-icons/foehn-icon-lock.component.mjs +0 -19
  136. package/esm2022/foehn-icons/foehn-icon-map-marker.component.mjs +0 -19
  137. package/esm2022/foehn-icons/foehn-icon-minus-circle.component.mjs +0 -19
  138. package/esm2022/foehn-icons/foehn-icon-pencil.component.mjs +0 -19
  139. package/esm2022/foehn-icons/foehn-icon-plus-circle.component.mjs +0 -19
  140. package/esm2022/foehn-icons/foehn-icon-plus-square.component.mjs +0 -19
  141. package/esm2022/foehn-icons/foehn-icon-search.component.mjs +0 -19
  142. package/esm2022/foehn-icons/foehn-icon-times.component.mjs +0 -19
  143. package/esm2022/foehn-icons/foehn-icon-trash-alt.component.mjs +0 -19
  144. package/esm2022/foehn-icons/foehn-icon-unlock-alt.component.mjs +0 -19
  145. package/esm2022/foehn-icons/foehn-icon-user.component.mjs +0 -19
  146. package/esm2022/foehn-icons/foehn-icons.module.mjs +0 -139
  147. package/esm2022/foehn-input/foehn-input-email.component.mjs +0 -74
  148. package/esm2022/foehn-input/foehn-input-hidden.component.mjs +0 -54
  149. package/esm2022/foehn-input/foehn-input-number.component.mjs +0 -319
  150. package/esm2022/foehn-input/foehn-input-password.component.mjs +0 -51
  151. package/esm2022/foehn-input/foehn-input-phone.component.mjs +0 -99
  152. package/esm2022/foehn-input/foehn-input-prefixed-text.component.mjs +0 -116
  153. package/esm2022/foehn-input/foehn-input-string.component.mjs +0 -27
  154. package/esm2022/foehn-input/foehn-input-text.component.mjs +0 -69
  155. package/esm2022/foehn-input/foehn-input-textarea.component.mjs +0 -97
  156. package/esm2022/foehn-input/foehn-input.component.mjs +0 -418
  157. package/esm2022/foehn-input/foehn-input.module.mjs +0 -98
  158. package/esm2022/foehn-input/pattern.const.mjs +0 -16
  159. package/esm2022/foehn-input-date/foehn-input-date.component.mjs +0 -163
  160. package/esm2022/foehn-input-date-time/foehn-input-date-time.component.mjs +0 -201
  161. package/esm2022/foehn-input-time/foehn-input-time.component.mjs +0 -89
  162. package/esm2022/foehn-list/foehn-list.component.mjs +0 -127
  163. package/esm2022/foehn-list/foehn-list.module.mjs +0 -19
  164. package/esm2022/foehn-list/page-change-event.mjs +0 -3
  165. package/esm2022/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +0 -122
  166. package/esm2022/foehn-menu-prestation/abstract-menu-page.component.mjs +0 -31
  167. package/esm2022/foehn-menu-prestation/abstract-page-from-menu.component.mjs +0 -87
  168. package/esm2022/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +0 -25
  169. package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs +0 -2
  170. package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs +0 -3
  171. package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +0 -161
  172. package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +0 -38
  173. package/esm2022/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +0 -58
  174. package/esm2022/foehn-menu-prestation/foehn-menu-prestation.module.mjs +0 -67
  175. package/esm2022/foehn-misc/foehn-abbr.component.mjs +0 -15
  176. package/esm2022/foehn-misc/foehn-misc.module.mjs +0 -17
  177. package/esm2022/foehn-modal/foehn-modal.component.mjs +0 -94
  178. package/esm2022/foehn-modal/foehn-modal.module.mjs +0 -21
  179. package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +0 -287
  180. package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +0 -40
  181. package/esm2022/foehn-nav13/foehn-input-nav13.component.mjs +0 -114
  182. package/esm2022/foehn-nav13/foehn-input-nav13.module.mjs +0 -32
  183. package/esm2022/foehn-navigation/abstract-foehn-navigation.component.mjs +0 -55
  184. package/esm2022/foehn-navigation/foehn-navigation/foehn-navigation.component.mjs +0 -67
  185. package/esm2022/foehn-navigation/foehn-navigation.module.mjs +0 -37
  186. package/esm2022/foehn-navigation/foehn-navigation.service.mjs +0 -322
  187. package/esm2022/foehn-navigation/foehn-simple-navigation/foehn-simple-navigation.component.mjs +0 -26
  188. package/esm2022/foehn-notfound/foehn-notfound.component.mjs +0 -61
  189. package/esm2022/foehn-notfound/foehn-notfound.module.mjs +0 -20
  190. package/esm2022/foehn-page/foehn-page-counter.component.mjs +0 -31
  191. package/esm2022/foehn-page/foehn-page-expiration-timer/current-session-expiration.mjs +0 -3
  192. package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration-interceptor.mjs +0 -68
  193. package/esm2022/foehn-page/foehn-page-expiration-timer/demande-expiration.service.mjs +0 -53
  194. package/esm2022/foehn-page/foehn-page-expiration-timer/foehn-page-expiration-timer.component.mjs +0 -175
  195. package/esm2022/foehn-page/foehn-page-expiration-timer/interval.helper.mjs +0 -29
  196. package/esm2022/foehn-page/foehn-page-modal.component.mjs +0 -54
  197. package/esm2022/foehn-page/foehn-page-modal.service.mjs +0 -38
  198. package/esm2022/foehn-page/foehn-page.component.mjs +0 -223
  199. package/esm2022/foehn-page/foehn-page.module.mjs +0 -101
  200. package/esm2022/foehn-page/foehn-page.service.mjs +0 -54
  201. package/esm2022/foehn-page/foehn-transmit-waiting-modal/demande-transmit-interceptor.mjs +0 -52
  202. package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.component.mjs +0 -23
  203. package/esm2022/foehn-page/foehn-transmit-waiting-modal/foehn-transmit-waiting-modal.service.mjs +0 -32
  204. package/esm2022/foehn-recap-section/foehn-recap-section.component.mjs +0 -98
  205. package/esm2022/foehn-recap-section/foehn-recap-section.module.mjs +0 -20
  206. package/esm2022/foehn-recap-section/foehn-recap-section.type.mjs +0 -2
  207. package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs +0 -50
  208. package/esm2022/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs +0 -18
  209. package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +0 -56
  210. package/esm2022/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +0 -20
  211. package/esm2022/foehn-table/foehn-table-column-configuration.mjs +0 -3
  212. package/esm2022/foehn-table/foehn-table-page-change-event.mjs +0 -3
  213. package/esm2022/foehn-table/foehn-table.component.mjs +0 -190
  214. package/esm2022/foehn-table/foehn-table.module.mjs +0 -40
  215. package/esm2022/foehn-table/row-element.type.mjs +0 -3
  216. package/esm2022/foehn-table/tableSort.mjs +0 -3
  217. package/esm2022/foehn-upload/abstract-foehn-uploader.component.mjs +0 -242
  218. package/esm2022/foehn-upload/document-reference.mjs +0 -6
  219. package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +0 -116
  220. package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs +0 -6
  221. package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +0 -199
  222. package/esm2022/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +0 -40
  223. package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +0 -250
  224. package/esm2022/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +0 -40
  225. package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +0 -125
  226. package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.type.mjs +0 -6
  227. package/esm2022/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +0 -163
  228. package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +0 -178
  229. package/esm2022/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +0 -44
  230. package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +0 -83
  231. package/esm2022/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +0 -21
  232. package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +0 -66
  233. package/esm2022/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +0 -7
  234. package/esm2022/foehn-upload/page-upload-limit.service.mjs +0 -80
  235. package/esm2022/foehn-upload/pending-upload.type.mjs +0 -3
  236. package/esm2022/foehn-upload/uploader.helper.mjs +0 -329
  237. package/esm2022/foehn-user-connected-as/foehn-user-connected-as.component.mjs +0 -21
  238. package/esm2022/foehn-user-connected-as/foehn-user-connected-as.module.mjs +0 -19
  239. package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +0 -96
  240. package/esm2022/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +0 -19
  241. package/esm2022/foehn-validation-alerts/foehn-validation-alerts.component.mjs +0 -29
  242. package/esm2022/foehn-validation-alerts/foehn-validation-alerts.module.mjs +0 -18
  243. package/esm2022/form-error.mjs +0 -2
  244. package/esm2022/form-post-response.mjs +0 -10
  245. package/esm2022/gesdem/gesdem-error-handler.service.mjs +0 -85
  246. package/esm2022/gesdem/gesdem-event.service.mjs +0 -38
  247. package/esm2022/gesdem/gesdem-handler.service.mjs +0 -201
  248. package/esm2022/gesdem/gesdem-loader.guard.mjs +0 -25
  249. package/esm2022/gesdem/gesdem-statut-utils.mjs +0 -25
  250. package/esm2022/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +0 -170
  251. package/esm2022/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +0 -227
  252. package/esm2022/gesdem-action-recovery/gesdem-action-recovery.module.mjs +0 -62
  253. package/esm2022/gesdem-action-recovery/gesdem-action-recovery.service.mjs +0 -97
  254. package/esm2022/gesdem-action-recovery/reprise-info.mjs +0 -4
  255. package/esm2022/gesdem-confirmation/gesdem-confirmation.component.mjs +0 -241
  256. package/esm2022/gesdem-confirmation/gesdem-confirmation.module.mjs +0 -36
  257. package/esm2022/gesdem-error/gesdem-error.component.mjs +0 -96
  258. package/esm2022/gesdem-error/gesdem-error.module.mjs +0 -36
  259. package/esm2022/global.const.mjs +0 -5
  260. package/esm2022/helpers/demande.helper.mjs +0 -19
  261. package/esm2022/helpers/object.helper.mjs +0 -124
  262. package/esm2022/i18n-form.mjs +0 -7
  263. package/esm2022/pipes/currency.pipe.mjs +0 -18
  264. package/esm2022/pipes/date.pipe.mjs +0 -43
  265. package/esm2022/pipes/formatIde.pipe.mjs +0 -22
  266. package/esm2022/pipes/pipes.module.mjs +0 -18
  267. package/esm2022/prestations-ng-core.module.mjs +0 -31
  268. package/esm2022/public_api.mjs +0 -288
  269. package/esm2022/refinf/model/address-type-light.mjs +0 -3
  270. package/esm2022/refinf/model/canton.mjs +0 -3
  271. package/esm2022/refinf/model/district.mjs +0 -3
  272. package/esm2022/refinf/model/municipality.mjs +0 -3
  273. package/esm2022/refinf/model/place-of-origin.mjs +0 -3
  274. package/esm2022/refinf/model/postal-locality.mjs +0 -3
  275. package/esm2022/sdk-appinfo/application-info.mjs +0 -22
  276. package/esm2022/sdk-appinfo/application-info.service.mjs +0 -146
  277. package/esm2022/sdk-currency/currency.helper.mjs +0 -34
  278. package/esm2022/sdk-date/date.helper.mjs +0 -109
  279. package/esm2022/sdk-dictionary/default-dictionary.mjs +0 -312
  280. package/esm2022/sdk-dictionary/sdk-dictionary.module.mjs +0 -16
  281. package/esm2022/sdk-dictionary/sdk-dictionary.pipe.mjs +0 -28
  282. package/esm2022/sdk-dictionary/sdk-dictionary.service.mjs +0 -122
  283. package/esm2022/sdk-drafts/draft.model.mjs +0 -2
  284. package/esm2022/sdk-drafts/drafts-container.component.mjs +0 -99
  285. package/esm2022/sdk-drafts/drafts.module.mjs +0 -47
  286. package/esm2022/sdk-drafts/drafts.service.mjs +0 -51
  287. package/esm2022/sdk-epayment/model/EPaymentParameters.mjs +0 -2
  288. package/esm2022/sdk-epayment/pending-payment/pending-payment.component.mjs +0 -24
  289. package/esm2022/sdk-epayment/sdk-epayment.component.mjs +0 -76
  290. package/esm2022/sdk-epayment/sdk-epayment.module.mjs +0 -23
  291. package/esm2022/sdk-epayment/sdk-epayment.service.mjs +0 -51
  292. package/esm2022/sdk-events-logger/sdk-event-type.mjs +0 -14
  293. package/esm2022/sdk-events-logger/sdk-event.mjs +0 -3
  294. package/esm2022/sdk-events-logger/sdk-events-logger.service.mjs +0 -43
  295. package/esm2022/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +0 -113
  296. package/esm2022/sdk-recaptcha/recaptcha.service.mjs +0 -180
  297. package/esm2022/sdk-recaptcha/sdk-recaptcha.component.mjs +0 -75
  298. package/esm2022/sdk-recaptcha/sdk-recaptcha.module.mjs +0 -19
  299. package/esm2022/sdk-redirect/iam-expired-interceptor.service.mjs +0 -62
  300. package/esm2022/sdk-redirect/redirect.component.mjs +0 -55
  301. package/esm2022/sdk-redirect/sdk-redirect.module.mjs +0 -19
  302. package/esm2022/sdk-session-info/session-info-data.mjs +0 -6
  303. package/esm2022/sdk-session-info/session-info-with-application.service.mjs +0 -68
  304. package/esm2022/sdk-session-info/session-info.service.mjs +0 -50
  305. package/esm2022/sdk-statistics/sdk-statistics.service.mjs +0 -74
  306. package/esm2022/sdk-support-alert/support-alert-container.component.mjs +0 -49
  307. package/esm2022/sdk-support-alert/support-alert.component.mjs +0 -32
  308. package/esm2022/sdk-support-alert/support-alert.model.mjs +0 -7
  309. package/esm2022/sdk-support-alert/support-alert.module.mjs +0 -21
  310. package/esm2022/sdk-support-alert/support-alert.service.mjs +0 -139
  311. package/esm2022/service-locator.mjs +0 -4
  312. package/esm2022/supported-browser.mjs +0 -2
  313. package/esm2022/validation/validation-handler.service.mjs +0 -44
  314. /package/{public_api.d.ts → public-api.d.ts} +0 -0
@@ -1,68 +0,0 @@
1
- import { HTTP_INTERCEPTORS, HttpEventType, HttpResponse } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import dayjs from 'dayjs';
4
- import { tap } from 'rxjs';
5
- import { CurrentSessionExpiration } from './current-session-expiration';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./demande-expiration.service";
8
- const EXPIRATION_HEADER = 'Sessions-Expirations';
9
- export class DemandeExpirationInterceptor {
10
- constructor(demandeExpirationService) {
11
- this.demandeExpirationService = demandeExpirationService;
12
- }
13
- intercept(request, next) {
14
- return next.handle(request).pipe(tap((httpEvent) => {
15
- if (httpEvent.type === HttpEventType.Sent) {
16
- return;
17
- }
18
- if (httpEvent instanceof HttpResponse) {
19
- if (httpEvent.headers.has(EXPIRATION_HEADER)) {
20
- this.manageDemandeExpirationHeader(httpEvent.headers.get(EXPIRATION_HEADER), httpEvent.body);
21
- }
22
- }
23
- }));
24
- }
25
- manageDemandeExpirationHeader(expirationByDemande, responseBody) {
26
- const expirationByDemandeMap = this.getExpirationByDemandeMap(expirationByDemande);
27
- const expiration = new CurrentSessionExpiration();
28
- const reference = responseBody?.meta?.reference || '';
29
- const dateTimeForReference = expirationByDemandeMap.get(reference);
30
- const dateTimeForIam = expirationByDemandeMap.get('IAM');
31
- if (dateTimeForReference) {
32
- expiration.type = 'SESSION-TOKEN';
33
- expiration.expiration = dayjs(dateTimeForReference);
34
- }
35
- else if (dateTimeForIam) {
36
- expiration.type = 'IAM';
37
- expiration.expiration = dayjs(dateTimeForIam);
38
- }
39
- if (expiration.expiration?.isValid()) {
40
- this.demandeExpirationService.setDemandeExpirationDateTime(expiration);
41
- }
42
- }
43
- getExpirationByDemandeMap(expirationByDemande) {
44
- const myMap = new Map();
45
- const expirationByDemandesAsArray = expirationByDemande.split(';');
46
- expirationByDemandesAsArray.forEach(value => {
47
- const valueAsArray = value.split(',');
48
- myMap.set(valueAsArray[0], new Date(valueAsArray[1]));
49
- });
50
- return myMap;
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationInterceptor, deps: [{ token: i1.DemandeExpirationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
53
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationInterceptor, providedIn: 'root' }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationInterceptor, decorators: [{
56
- type: Injectable,
57
- args: [{
58
- providedIn: 'root'
59
- }]
60
- }], ctorParameters: () => [{ type: i1.DemandeExpirationService }] });
61
- export const DEMANDE_EXPIRATION_INTERCEPTOR_PROVIDER = [
62
- {
63
- provide: HTTP_INTERCEPTORS,
64
- useExisting: DemandeExpirationInterceptor,
65
- multi: true
66
- }
67
- ];
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtYW5kZS1leHBpcmF0aW9uLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyL2RlbWFuZGUtZXhwaXJhdGlvbi1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBRWpCLGFBQWEsRUFJYixZQUFZLEVBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBR3hFLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7QUFLakQsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7SUFFMUUsU0FBUyxDQUNMLE9BQTZCLEVBQzdCLElBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtZQUNsQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QyxPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksU0FBUyxZQUFZLFlBQVksRUFBRSxDQUFDO2dCQUNwQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLDZCQUE2QixDQUM5QixTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUN4QyxTQUFTLENBQUMsSUFBSSxDQUNqQixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyw2QkFBNkIsQ0FDakMsbUJBQTJCLEVBQzNCLFlBQXFCO1FBRXJCLE1BQU0sc0JBQXNCLEdBQ3hCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXhELE1BQU0sVUFBVSxHQUNaLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FDVixZQUF3QyxFQUFFLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBRXJFLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7WUFDbEMsVUFBVSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN4QixVQUFVLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUN4QixVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUN0RCxVQUFVLENBQ2IsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQzdCLG1CQUEyQjtRQUUzQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztRQUN0QyxNQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzsrR0FoRVEsNEJBQTRCO21IQUE1Qiw0QkFBNEIsY0FGekIsTUFBTTs7NEZBRVQsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUFvRUQsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQXVCO0lBQ3ZFO1FBQ0ksT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixXQUFXLEVBQUUsNEJBQTRCO1FBQ3pDLEtBQUssRUFBRSxJQUFJO0tBQ2Q7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICBIdHRwRXZlbnQsXG4gICAgSHR0cEV2ZW50VHlwZSxcbiAgICBIdHRwSGFuZGxlcixcbiAgICBIdHRwSW50ZXJjZXB0b3IsXG4gICAgSHR0cFJlcXVlc3QsXG4gICAgSHR0cFJlc3BvbnNlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV4aXN0aW5nUHJvdmlkZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9ybVBvc3RSZXNwb25zZSB9IGZyb20gJy4uLy4uL2Zvcm0tcG9zdC1yZXNwb25zZSc7XG5pbXBvcnQgeyBDdXJyZW50U2Vzc2lvbkV4cGlyYXRpb24gfSBmcm9tICcuL2N1cnJlbnQtc2Vzc2lvbi1leHBpcmF0aW9uJztcbmltcG9ydCB7IERlbWFuZGVFeHBpcmF0aW9uU2VydmljZSB9IGZyb20gJy4vZGVtYW5kZS1leHBpcmF0aW9uLnNlcnZpY2UnO1xuXG5jb25zdCBFWFBJUkFUSU9OX0hFQURFUiA9ICdTZXNzaW9ucy1FeHBpcmF0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGVtYW5kZUV4cGlyYXRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZW1hbmRlRXhwaXJhdGlvblNlcnZpY2U6IERlbWFuZGVFeHBpcmF0aW9uU2VydmljZSkge31cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICAgICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGh0dHBFdmVudDogSHR0cEV2ZW50PHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGh0dHBFdmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlNlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaHR0cEV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChodHRwRXZlbnQuaGVhZGVycy5oYXMoRVhQSVJBVElPTl9IRUFERVIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZURlbWFuZGVFeHBpcmF0aW9uSGVhZGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBFdmVudC5oZWFkZXJzLmdldChFWFBJUkFUSU9OX0hFQURFUiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cEV2ZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlRGVtYW5kZUV4cGlyYXRpb25IZWFkZXIoXG4gICAgICAgIGV4cGlyYXRpb25CeURlbWFuZGU6IHN0cmluZyxcbiAgICAgICAgcmVzcG9uc2VCb2R5OiB1bmtub3duXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4cGlyYXRpb25CeURlbWFuZGVNYXAgPVxuICAgICAgICAgICAgdGhpcy5nZXRFeHBpcmF0aW9uQnlEZW1hbmRlTWFwKGV4cGlyYXRpb25CeURlbWFuZGUpO1xuXG4gICAgICAgIGNvbnN0IGV4cGlyYXRpb246IEN1cnJlbnRTZXNzaW9uRXhwaXJhdGlvbiA9XG4gICAgICAgICAgICBuZXcgQ3VycmVudFNlc3Npb25FeHBpcmF0aW9uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9XG4gICAgICAgICAgICAocmVzcG9uc2VCb2R5IGFzIEZvcm1Qb3N0UmVzcG9uc2U8bmV2ZXI+KT8ubWV0YT8ucmVmZXJlbmNlIHx8ICcnO1xuXG4gICAgICAgIGNvbnN0IGRhdGVUaW1lRm9yUmVmZXJlbmNlID0gZXhwaXJhdGlvbkJ5RGVtYW5kZU1hcC5nZXQocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgZGF0ZVRpbWVGb3JJYW0gPSBleHBpcmF0aW9uQnlEZW1hbmRlTWFwLmdldCgnSUFNJyk7XG5cbiAgICAgICAgaWYgKGRhdGVUaW1lRm9yUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBleHBpcmF0aW9uLnR5cGUgPSAnU0VTU0lPTi1UT0tFTic7XG4gICAgICAgICAgICBleHBpcmF0aW9uLmV4cGlyYXRpb24gPSBkYXlqcyhkYXRlVGltZUZvclJlZmVyZW5jZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0ZVRpbWVGb3JJYW0pIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24udHlwZSA9ICdJQU0nO1xuICAgICAgICAgICAgZXhwaXJhdGlvbi5leHBpcmF0aW9uID0gZGF5anMoZGF0ZVRpbWVGb3JJYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cGlyYXRpb24uZXhwaXJhdGlvbj8uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRlbWFuZGVFeHBpcmF0aW9uU2VydmljZS5zZXREZW1hbmRlRXhwaXJhdGlvbkRhdGVUaW1lKFxuICAgICAgICAgICAgICAgIGV4cGlyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEV4cGlyYXRpb25CeURlbWFuZGVNYXAoXG4gICAgICAgIGV4cGlyYXRpb25CeURlbWFuZGU6IHN0cmluZ1xuICAgICk6IE1hcDxzdHJpbmcsIERhdGU+IHtcbiAgICAgICAgY29uc3QgbXlNYXAgPSBuZXcgTWFwPHN0cmluZywgRGF0ZT4oKTtcbiAgICAgICAgY29uc3QgZXhwaXJhdGlvbkJ5RGVtYW5kZXNBc0FycmF5ID0gZXhwaXJhdGlvbkJ5RGVtYW5kZS5zcGxpdCgnOycpO1xuICAgICAgICBleHBpcmF0aW9uQnlEZW1hbmRlc0FzQXJyYXkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzQXJyYXkgPSB2YWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgbXlNYXAuc2V0KHZhbHVlQXNBcnJheVswXSwgbmV3IERhdGUodmFsdWVBc0FycmF5WzFdKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbXlNYXA7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgREVNQU5ERV9FWFBJUkFUSU9OX0lOVEVSQ0VQVE9SX1BST1ZJREVSOiBFeGlzdGluZ1Byb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlRXhpc3Rpbmc6IERlbWFuZGVFeHBpcmF0aW9uSW50ZXJjZXB0b3IsXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuXTtcbiJdfQ==
@@ -1,53 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import dayjs from 'dayjs';
3
- import { BehaviorSubject, combineLatest } from 'rxjs';
4
- import { filter, map, shareReplay, tap } from 'rxjs/operators';
5
- import { IntervalHelper } from './interval.helper';
6
- import * as i0 from "@angular/core";
7
- export class DemandeExpirationService {
8
- constructor() {
9
- this.PULLING_IN_MILLISECONDS = 1000;
10
- this._demandeExpirationDateTimeSubject = new BehaviorSubject(null);
11
- this.intervalSubject = new BehaviorSubject(null);
12
- }
13
- shouldDisplayExpirationTimerMessage() {
14
- return combineLatest([
15
- this.getDemandeExpirationDateTime(),
16
- this.intervalSubject.asObservable()
17
- ]).pipe(map(([value]) => !dayjs().isBefore(value?.expiration)), tap(visible => {
18
- if (visible) {
19
- this.clearPulling();
20
- }
21
- }), shareReplay(1));
22
- }
23
- setDemandeExpirationDateTime(expiration) {
24
- this._demandeExpirationDateTimeSubject.next(expiration);
25
- }
26
- getDemandeExpirationDateTime() {
27
- return this._demandeExpirationDateTimeSubject.asObservable().pipe(filter(value => !!value && value.expiration?.isValid()), tap(value => {
28
- if (dayjs().isBefore(value.expiration)) {
29
- this.startPulling();
30
- }
31
- }), shareReplay(1));
32
- }
33
- startPulling() {
34
- this.clearPulling();
35
- this.interval = IntervalHelper.accurateInterval(() => {
36
- this.intervalSubject.next();
37
- }, this.PULLING_IN_MILLISECONDS, () => {
38
- this.startPulling();
39
- });
40
- }
41
- clearPulling() {
42
- this.interval?.clear();
43
- }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationService, providedIn: 'root' }); }
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DemandeExpirationService, decorators: [{
48
- type: Injectable,
49
- args: [{
50
- providedIn: 'root'
51
- }]
52
- }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtYW5kZS1leHBpcmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLWV4cGlyYXRpb24tdGltZXIvZGVtYW5kZS1leHBpcmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLHdCQUF3QjtJQUhyQztRQU9xQiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFFeEMsc0NBQWlDLEdBQ3JDLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFPLElBQUksQ0FBQyxDQUFDO0tBaUQ3RDtJQS9DRyxtQ0FBbUM7UUFDL0IsT0FBTyxhQUFhLENBQUM7WUFDakIsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO1NBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ3RELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRUQsNEJBQTRCLENBQUMsVUFBb0M7UUFDN0QsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsNEJBQTRCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLElBQUksS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztJQUNOLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FDM0MsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUM1QixHQUFHLEVBQUU7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7K0dBeERRLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzRGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ3VycmVudFNlc3Npb25FeHBpcmF0aW9uIH0gZnJvbSAnLi9jdXJyZW50LXNlc3Npb24tZXhwaXJhdGlvbic7XG5pbXBvcnQgeyBJbnRlcnZhbEhlbHBlciB9IGZyb20gJy4vaW50ZXJ2YWwuaGVscGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZW1hbmRlRXhwaXJhdGlvblNlcnZpY2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBQVUxMSU5HX0lOX01JTExJU0VDT05EUyA9IDEwMDA7XG5cbiAgICBwcml2YXRlIF9kZW1hbmRlRXhwaXJhdGlvbkRhdGVUaW1lU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEN1cnJlbnRTZXNzaW9uRXhwaXJhdGlvbj4gPVxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1cnJlbnRTZXNzaW9uRXhwaXJhdGlvbj4obnVsbCk7XG4gICAgcHJpdmF0ZSBpbnRlcnZhbFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KG51bGwpO1xuXG4gICAgc2hvdWxkRGlzcGxheUV4cGlyYXRpb25UaW1lck1lc3NhZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuZ2V0RGVtYW5kZUV4cGlyYXRpb25EYXRlVGltZSgpLFxuICAgICAgICAgICAgdGhpcy5pbnRlcnZhbFN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3ZhbHVlXSkgPT4gIWRheWpzKCkuaXNCZWZvcmUodmFsdWU/LmV4cGlyYXRpb24pKSxcbiAgICAgICAgICAgIHRhcCh2aXNpYmxlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyUHVsbGluZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXREZW1hbmRlRXhwaXJhdGlvbkRhdGVUaW1lKGV4cGlyYXRpb246IEN1cnJlbnRTZXNzaW9uRXhwaXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZW1hbmRlRXhwaXJhdGlvbkRhdGVUaW1lU3ViamVjdC5uZXh0KGV4cGlyYXRpb24pO1xuICAgIH1cblxuICAgIGdldERlbWFuZGVFeHBpcmF0aW9uRGF0ZVRpbWUoKTogT2JzZXJ2YWJsZTxDdXJyZW50U2Vzc2lvbkV4cGlyYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbWFuZGVFeHBpcmF0aW9uRGF0ZVRpbWVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gISF2YWx1ZSAmJiB2YWx1ZS5leHBpcmF0aW9uPy5pc1ZhbGlkKCkpLFxuICAgICAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGF5anMoKS5pc0JlZm9yZSh2YWx1ZS5leHBpcmF0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UHVsbGluZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0UHVsbGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclB1bGxpbmcoKTtcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IEludGVydmFsSGVscGVyLmFjY3VyYXRlSW50ZXJ2YWwoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcnZhbFN1YmplY3QubmV4dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuUFVMTElOR19JTl9NSUxMSVNFQ09ORFMsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFB1bGxpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyUHVsbGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbD8uY2xlYXIoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,175 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { BehaviorSubject, withLatestFrom } from 'rxjs';
3
- import { debounceTime, map, shareReplay, tap } from 'rxjs/operators';
4
- import { DateHelper } from '../../sdk-date/date.helper';
5
- import { IntervalHelper } from './interval.helper';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../sdk-appinfo/application-info.service";
8
- import * as i2 from "../../sdk-dictionary/sdk-dictionary.service";
9
- import * as i3 from "./demande-expiration.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "../../sdk-dictionary/sdk-dictionary.pipe";
12
- export class FoehnPageExpirationTimerComponent {
13
- constructor(applicationInfoService, dictionaryService, demandeExpirationService) {
14
- this.applicationInfoService = applicationInfoService;
15
- this.dictionaryService = dictionaryService;
16
- this.demandeExpirationService = demandeExpirationService;
17
- this.countDownTimeInSeconds = new BehaviorSubject(null);
18
- this.sessionHasExpired = new BehaviorSubject(false);
19
- this.srAnnouncementsSubject = new BehaviorSubject('');
20
- this.dateHelper = new DateHelper();
21
- this.PULLING_IN_MILLISECONDS = 1000;
22
- this.SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS = 2000;
23
- this.sessionExpired = this.sessionHasExpired
24
- .asObservable()
25
- .pipe(shareReplay(1));
26
- this.srAnnouncements = this.srAnnouncementsSubject
27
- .asObservable()
28
- .pipe(debounceTime(0)); // debounceTime to "avoid expression has changes before..."
29
- this.countDownTimeToDisplay = this.countDownTimeInSeconds
30
- .asObservable()
31
- .pipe(tap(countDownTimeInSeconds => this.sessionHasExpired.next(countDownTimeInSeconds <= 0)), map(countDownTimeInSeconds => this.formatTime(countDownTimeInSeconds)), shareReplay(1));
32
- this.isVisible = this.demandeExpirationService
33
- .getDemandeExpirationDateTime()
34
- .pipe(withLatestFrom(this.applicationInfoService.data), tap(([expiration, appInfo]) => {
35
- this.clearTimer();
36
- const messageDelayInMinutes = this.getMessageDelayInMinutes(appInfo, expiration.type);
37
- // Real session expiration to keep track of time
38
- this.sessionExpirationDateTimeInMilliseconds =
39
- expiration.expiration.valueOf() +
40
- messageDelayInMinutes * 60 * 1000;
41
- this.countDownTimeInSeconds.next(this.getAccurateCountDownTimeInSeconds());
42
- this.startTimer();
43
- }), map(() => true), shareReplay(1));
44
- }
45
- ngOnDestroy() {
46
- this.clearTimer();
47
- }
48
- getAccurateCountDownTimeInSeconds() {
49
- // Calculate real time left. Use Math.floor to be sure timer does not stop after session expiration real time.
50
- return Math.floor((this.sessionExpirationDateTimeInMilliseconds - Date.now()) / 1000);
51
- }
52
- startTimer() {
53
- this.interval = IntervalHelper.accurateInterval(() => {
54
- let time = this.countDownTimeInSeconds.getValue();
55
- if (time === 0) {
56
- this.clearTimer();
57
- return;
58
- }
59
- time -= 1;
60
- this.countDownTimeInSeconds.next(time);
61
- }, this.PULLING_IN_MILLISECONDS, () => {
62
- // Use Math.max to ensure we are not after sessionTimeout
63
- this.countDownTimeInSeconds.next(Math.max(0, this.getAccurateCountDownTimeInSeconds()));
64
- this.startTimer();
65
- });
66
- }
67
- clearTimer() {
68
- this.interval?.clear();
69
- }
70
- formatTime(timeInSeconds) {
71
- const hours = Math.floor(timeInSeconds / (60 * 60));
72
- const divisor_for_minutes = timeInSeconds % (60 * 60);
73
- const minutes = Math.floor(divisor_for_minutes / 60);
74
- const divisor_for_seconds = divisor_for_minutes % 60;
75
- const seconds = Math.ceil(divisor_for_seconds);
76
- this.manageScreenReaderAnnouncement(timeInSeconds, hours, minutes, seconds);
77
- const leftPadHours = this.dateHelper.leftPad(hours.toString());
78
- const leftPadMinutes = this.dateHelper.leftPad(minutes.toString());
79
- const leftPadSeconds = this.dateHelper.leftPad(seconds.toString());
80
- return `${leftPadHours}:${leftPadMinutes}:${leftPadSeconds}`;
81
- }
82
- announceSrMessage(msg) {
83
- clearTimeout(this.srAnnouncementClearTimer);
84
- this.srAnnouncementsSubject.next(msg);
85
- this.srAnnouncementClearTimer = setTimeout(() => {
86
- this.srAnnouncementsSubject.next('');
87
- }, this.SR_ANNOUNCEMENT_CLEAR_TIMEOUT_INTERVAL_MS);
88
- }
89
- getReadableTimerForScreenReader(hours, minutes, seconds) {
90
- if (!hours && !minutes && !seconds) {
91
- return '';
92
- }
93
- if (!!hours && !minutes && !seconds) {
94
- return `${hours} heures`;
95
- }
96
- if (!!minutes && !hours && !seconds) {
97
- return `${minutes} minutes`;
98
- }
99
- if (!!seconds && !minutes && !hours) {
100
- return `${seconds} secondes`;
101
- }
102
- if (!!hours && !!minutes && !!seconds) {
103
- return `${hours} heures ${minutes} minutes et ${seconds} secondes`;
104
- }
105
- if (!!hours && !!minutes && !seconds) {
106
- return `${hours} heures et ${minutes} minutes`;
107
- }
108
- if (!!hours && !!seconds && !minutes) {
109
- return `${hours} heures et ${seconds} secondes`;
110
- }
111
- if (!!minutes && !!seconds && !hours) {
112
- return `${minutes} minutes et ${seconds} secondes`;
113
- }
114
- }
115
- manageScreenReaderAnnouncement(timeInSeconds, hours, minutes, seconds) {
116
- const _1_hourInSeconds = 60 * 60;
117
- const _5_minutesInSeconds = 5 * 60;
118
- const _10_minutesInSeconds = 10 * 60;
119
- const _1_minuteInSeconds = 60;
120
- const _2_minuteInSeconds = 2 * 60;
121
- // When finished, display expired message
122
- if (timeInSeconds === 0) {
123
- this.srAnnouncementsSubject.next(this.dictionaryService.getKeySync('foehn-page-expiration-timer.expired-message.sr-only'));
124
- return;
125
- }
126
- // Every second for the last 15s
127
- if (timeInSeconds <= 15) {
128
- this.srAnnouncementsSubject.next(timeInSeconds.toString());
129
- return;
130
- }
131
- // Every 30s when less than 2 minutes
132
- if (timeInSeconds <= _2_minuteInSeconds && timeInSeconds % 30 === 0) {
133
- const msg = this.getReadableTimerForScreenReader(hours, minutes, seconds);
134
- this.announceSrMessage(this.dictionaryService.getKeySync('foehn-page-expiration-timer.count-down-message.sr-only', { countDownValue: msg }));
135
- return;
136
- }
137
- // Every minute for the last 5 minutes
138
- if (timeInSeconds <= _5_minutesInSeconds &&
139
- timeInSeconds % _1_minuteInSeconds === 0) {
140
- const msg = this.getReadableTimerForScreenReader(hours, minutes, seconds);
141
- this.announceSrMessage(this.dictionaryService.getKeySync('foehn-page-expiration-timer.count-down-message.sr-only', { countDownValue: msg }));
142
- return;
143
- }
144
- // Every 10 minutes when less than an hour
145
- if (timeInSeconds < _1_hourInSeconds &&
146
- timeInSeconds % _10_minutesInSeconds === 0) {
147
- const msg = this.getReadableTimerForScreenReader(hours, minutes, seconds);
148
- this.announceSrMessage(this.dictionaryService.getKeySync('foehn-page-expiration-timer.count-down-message.sr-only', { countDownValue: msg }));
149
- return;
150
- }
151
- // Every hour when more than an hour
152
- if (timeInSeconds >= _1_hourInSeconds &&
153
- timeInSeconds % _1_hourInSeconds === 0) {
154
- const msg = this.getReadableTimerForScreenReader(hours, minutes, seconds);
155
- this.announceSrMessage(this.dictionaryService.getKeySync('foehn-page-expiration-timer.count-down-message.sr-only', { countDownValue: msg }));
156
- return;
157
- }
158
- }
159
- getMessageDelayInMinutes(info, type) {
160
- switch (type) {
161
- case 'IAM':
162
- return info.configuration.session.iamMessageDelayInMinutes;
163
- case 'SESSION-TOKEN':
164
- return info.configuration.session
165
- .sessionTokenMessageDelayInMinutes;
166
- }
167
- }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageExpirationTimerComponent, deps: [{ token: i1.ApplicationInfoService }, { token: i2.SdkDictionaryService }, { token: i3.DemandeExpirationService }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnPageExpirationTimerComponent, selector: "foehn-page-expiration-timer", ngImport: i0, template: "<div\n *ngIf=\"isVisible | async\"\n id=\"foehn-page-expiration-timer\"\n class=\"sticky-top alert text-center my-0\"\n [class.alert-warning]=\"(sessionExpired | async) === false\"\n [class.alert-danger]=\"(sessionExpired | async) === true\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n>\n <div\n *ngIf=\"(sessionExpired | async) === false\"\n [innerHTML]=\"\n 'foehn-page-expiration-timer.count-down-message'\n | fromDictionary\n : { countDownValue: countDownTimeToDisplay | async }\n \"\n ></div>\n <div\n *ngIf=\"(sessionExpired | async) === true\"\n [innerHTML]=\"\n 'foehn-page-expiration-timer.expired-message' | fromDictionary\n \"\n ></div>\n</div>\n\n<p class=\"visually-hidden\" aria-live=\"assertive\" aria-atomic=\"true\">\n {{ srAnnouncements | async }}\n</p>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] }); }
170
- }
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageExpirationTimerComponent, decorators: [{
172
- type: Component,
173
- args: [{ selector: 'foehn-page-expiration-timer', template: "<div\n *ngIf=\"isVisible | async\"\n id=\"foehn-page-expiration-timer\"\n class=\"sticky-top alert text-center my-0\"\n [class.alert-warning]=\"(sessionExpired | async) === false\"\n [class.alert-danger]=\"(sessionExpired | async) === true\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n>\n <div\n *ngIf=\"(sessionExpired | async) === false\"\n [innerHTML]=\"\n 'foehn-page-expiration-timer.count-down-message'\n | fromDictionary\n : { countDownValue: countDownTimeToDisplay | async }\n \"\n ></div>\n <div\n *ngIf=\"(sessionExpired | async) === true\"\n [innerHTML]=\"\n 'foehn-page-expiration-timer.expired-message' | fromDictionary\n \"\n ></div>\n</div>\n\n<p class=\"visually-hidden\" aria-live=\"assertive\" aria-atomic=\"true\">\n {{ srAnnouncements | async }}\n</p>\n" }]
174
- }], ctorParameters: () => [{ type: i1.ApplicationInfoService }, { type: i2.SdkDictionaryService }, { type: i3.DemandeExpirationService }] });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UtZXhwaXJhdGlvbi10aW1lci9mb2Vobi1wYWdlLWV4cGlyYXRpb24tdGltZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyL2ZvZWhuLXBhZ2UtZXhwaXJhdGlvbi10aW1lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBTW5ELE1BQU0sT0FBTyxpQ0FBaUM7SUFxQjFDLFlBQ1ksc0JBQThDLEVBQzlDLGlCQUF1QyxFQUN2Qyx3QkFBa0Q7UUFGbEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBQ3ZDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFsQnRELDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO1FBQzNELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hELDJCQUFzQixHQUFH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Q0FBQztRQUNELG9DQUFvQztRQUNwQyxJQUNJLGFBQWEsSUFBSSxnQkFBZ0I7WUFDakMsYUFBYSxHQUFHLGdCQUFnQixLQUFLLENBQUMsRUFDeEMsQ0FBQztZQUNDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FDNUMsS0FBSyxFQUNMLE9BQU8sRUFDUCxPQUFPLENBQ1YsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FDN0Isd0RBQXdELEVBQ3hELEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUMxQixDQUNKLENBQUM7WUFDRixPQUFPO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFTyx3QkFBd0IsQ0FDNUIsSUFBcUIsRUFDckIsSUFBNkI7UUFFN0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNYLEtBQUssS0FBSztnQkFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1lBQy9ELEtBQUssZUFBZTtnQkFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87cUJBQzVCLGlDQUFpQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDOytHQXpSUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxtRUNmOUMsNDRCQTRCQTs7NEZEYmEsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNJLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi8uLi9zZGstZGF0ZS9kYXRlLmhlbHBlcic7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGVtYW5kZUV4cGlyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kZW1hbmRlLWV4cGlyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJbnRlcnZhbEhlbHBlciB9IGZyb20gJy4vaW50ZXJ2YWwuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1wYWdlLWV4cGlyYXRpb24tdGltZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1wYWdlLWV4cGlyYXRpb24tdGltZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuUGFnZUV4cGlyYXRpb25UaW1lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgaXNWaXNpYmxlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGNvdW50RG93blRpbWVUb0Rpc3BsYXk6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBzZXNzaW9uRXhwaXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBzckFubm91bmNlbWVudHM6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgY291bnREb3duVGltZUluU2Vjb25kcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPihudWxsKTtcbiAgICBwcml2YXRlIHNlc3Npb25IYXNFeHBpcmVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBzckFubm91bmNlbWVudHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBpbnRlcnZhbDogYW55O1xuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IG5ldyBEYXRlSGVscGVyKCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IFBVTExJTkdfSU5fTUlMTElTRUNPTkRTID0gMTAwMDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgc3JBbm5vdW5jZW1lbnRDbGVhclRpbWVyOiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBTUl9BTk5PVU5DRU1FTlRfQ0xFQVJfVElNRU9VVF9JTlRFUlZBTF9NUyA9IDIwMDA7XG5cbiAgICBwcml2YXRlIHNlc3Npb25FeHBpcmF0aW9uRGF0ZVRpbWVJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGVtYW5kZUV4cGlyYXRpb25TZXJ2aWNlOiBEZW1hbmRlRXhwaXJhdGlvblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uRXhwaXJlZCA9IHRoaXMuc2Vzc2lvbkhhc0V4cGlyZWRcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuXG4gICAgICAgIHRoaXMuc3JBbm5vdW5jZW1lbnRzID0gdGhpcy5zckFubm91bmNlbWVudHNTdWJqZWN0XG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgwKSk7IC8vIGRlYm91bmNlVGltZSB0byBcImF2b2lkIGV4cHJlc3Npb24gaGFzIGNoYW5nZXMgYmVmb3JlLi4uXCJcblxuICAgICAgICB0aGlzLmNvdW50RG93blRpbWVUb0Rpc3BsYXkgPSB0aGlzLmNvdW50RG93blRpbWVJblNlY29uZHNcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKGNvdW50RG93blRpbWVJblNlY29uZHMgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uSGFzRXhwaXJlZC5uZXh0KGNvdW50RG93blRpbWVJblNlY29uZHMgPD0gMClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcChjb3VudERvd25UaW1lSW5TZWNvbmRzID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0VGltZShjb3VudERvd25UaW1lSW5TZWNvbmRzKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0aGlzLmRlbWFuZGVFeHBpcmF0aW9uU2VydmljZVxuICAgICAgICAgICAgLmdldERlbWFuZGVFeHBpcmF0aW9uRGF0ZVRpbWUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmRhdGEpLFxuICAgICAgICAgICAgICAgIHRhcCgoW2V4cGlyYXRpb24sIGFwcEluZm9dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VEZWxheUluTWludXRlcyA9IHRoaXMuZ2V0TWVzc2FnZURlbGF5SW5NaW51dGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyYXRpb24udHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlYWwgc2Vzc2lvbiBleHBpcmF0aW9uIHRvIGtlZXAgdHJhY2sgb2YgdGltZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25FeHBpcmF0aW9uRGF0ZVRpbWVJbk1pbGxpc2Vjb25kcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uLmV4cGlyYXRpb24udmFsdWVPZigpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VEZWxheUluTWludXRlcyAqIDYwICogMTAwMDtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50RG93blRpbWVJblNlY29uZHMubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWNjdXJhdGVDb3VudERvd25UaW1lSW5TZWNvbmRzKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFjY3VyYXRlQ291bnREb3duVGltZUluU2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICAvLyBDYWxjdWxhdGUgcmVhbCB0aW1lIGxlZnQuIFVzZSBNYXRoLmZsb29yIHRvIGJlIHN1cmUgdGltZXIgZG9lcyBub3Qgc3RvcCBhZnRlciBzZXNzaW9uIGV4cGlyYXRpb24gcmVhbCB0aW1lLlxuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihcbiAgICAgICAgICAgICh0aGlzLnNlc3Npb25FeHBpcmF0aW9uRGF0ZVRpbWVJbk1pbGxpc2Vjb25kcyAtIERhdGUubm93KCkpIC8gMTAwMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnRUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IEludGVydmFsSGVscGVyLmFjY3VyYXRlSW50ZXJ2YWwoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSB0aGlzLmNvdW50RG93blRpbWVJblNlY29uZHMuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICBpZiAodGltZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aW1lIC09IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudERvd25UaW1lSW5TZWNvbmRzLm5leHQodGltZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy5QVUxMSU5HX0lOX01JTExJU0VDT05EUyxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBVc2UgTWF0aC5tYXggdG8gZW5zdXJlIHdlIGFyZSBub3QgYWZ0ZXIgc2Vzc2lvblRpbWVvdXRcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50RG93blRpbWVJblNlY29uZHMubmV4dChcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoMCwgdGhpcy5nZXRBY2N1cmF0ZUNvdW50RG93blRpbWVJblNlY29uZHMoKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbD8uY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdFRpbWUodGltZUluU2Vjb25kczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHRpbWVJblNlY29uZHMgLyAoNjAgKiA2MCkpO1xuXG4gICAgICAgIGNvbnN0IGRpdmlzb3JfZm9yX21pbnV0ZXMgPSB0aW1lSW5TZWNvbmRzICUgKDYwICogNjApO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihkaXZpc29yX2Zvcl9taW51dGVzIC8gNjApO1xuXG4gICAgICAgIGNvbnN0IGRpdmlzb3JfZm9yX3NlY29uZHMgPSBkaXZpc29yX2Zvcl9taW51dGVzICUgNjA7XG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmNlaWwoZGl2aXNvcl9mb3Jfc2Vjb25kcyk7XG5cbiAgICAgICAgdGhpcy5tYW5hZ2VTY3JlZW5SZWFkZXJBbm5vdW5jZW1lbnQoXG4gICAgICAgICAgICB0aW1lSW5TZWNvbmRzLFxuICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgc2Vjb25kc1xuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGxlZnRQYWRIb3VycyA9IHRoaXMuZGF0ZUhlbHBlci5sZWZ0UGFkKGhvdXJzLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zdCBsZWZ0UGFkTWludXRlcyA9IHRoaXMuZGF0ZUhlbHBlci5sZWZ0UGFkKG1pbnV0ZXMudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgY29uc3QgbGVmdFBhZFNlY29uZHMgPSB0aGlzLmRhdGVIZWxwZXIubGVmdFBhZChzZWNvbmRzLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXR1cm4gYCR7bGVmdFBhZEhvdXJzfToke2xlZnRQYWRNaW51dGVzfToke2xlZnRQYWRTZWNvbmRzfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhbm5vdW5jZVNyTWVzc2FnZShtc2c6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zckFubm91bmNlbWVudENsZWFyVGltZXIpO1xuICAgICAgICB0aGlzLnNyQW5ub3VuY2VtZW50c1N1YmplY3QubmV4dChtc2cpO1xuXG4gICAgICAgIHRoaXMuc3JBbm5vdW5jZW1lbnRDbGVhclRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNyQW5ub3VuY2VtZW50c1N1YmplY3QubmV4dCgnJyk7XG4gICAgICAgIH0sIHRoaXMuU1JfQU5OT1VOQ0VNRU5UX0NMRUFSX1RJTUVPVVRfSU5URVJWQUxfTVMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVhZGFibGVUaW1lckZvclNjcmVlblJlYWRlcihcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXJcbiAgICApOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWhvdXJzICYmICFtaW51dGVzICYmICFzZWNvbmRzKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhaG91cnMgJiYgIW1pbnV0ZXMgJiYgIXNlY29uZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtob3Vyc30gaGV1cmVzYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFtaW51dGVzICYmICFob3VycyAmJiAhc2Vjb25kcykge1xuICAgICAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9IG1pbnV0ZXNgO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXNlY29uZHMgJiYgIW1pbnV0ZXMgJiYgIWhvdXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7c2Vjb25kc30gc2Vjb25kZXNgO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIWhvdXJzICYmICEhbWludXRlcyAmJiAhIXNlY29uZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtob3Vyc30gaGV1cmVzICR7bWludXRlc30gbWludXRlcyBldCAke3NlY29uZHN9IHNlY29uZGVzYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFob3VycyAmJiAhIW1pbnV0ZXMgJiYgIXNlY29uZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtob3Vyc30gaGV1cmVzIGV0ICR7bWludXRlc30gbWludXRlc2A7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEhaG91cnMgJiYgISFzZWNvbmRzICYmICFtaW51dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7aG91cnN9IGhldXJlcyBldCAke3NlY29uZHN9IHNlY29uZGVzYDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFtaW51dGVzICYmICEhc2Vjb25kcyAmJiAhaG91cnMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHttaW51dGVzfSBtaW51dGVzIGV0ICR7c2Vjb25kc30gc2Vjb25kZXNgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VTY3JlZW5SZWFkZXJBbm5vdW5jZW1lbnQoXG4gICAgICAgIHRpbWVJblNlY29uZHM6IG51bWJlcixcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXJcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgXzFfaG91ckluU2Vjb25kcyA9IDYwICogNjA7XG4gICAgICAgIGNvbnN0IF81X21pbnV0ZXNJblNlY29uZHMgPSA1ICogNjA7XG4gICAgICAgIGNvbnN0IF8xMF9taW51dGVzSW5TZWNvbmRzID0gMTAgKiA2MDtcbiAgICAgICAgY29uc3QgXzFfbWludXRlSW5TZWNvbmRzID0gNjA7XG4gICAgICAgIGNvbnN0IF8yX21pbnV0ZUluU2Vjb25kcyA9IDIgKiA2MDtcblxuICAgICAgICAvLyBXaGVuIGZpbmlzaGVkLCBkaXNwbGF5IGV4cGlyZWQgbWVzc2FnZVxuICAgICAgICBpZiAodGltZUluU2Vjb25kcyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zckFubm91bmNlbWVudHNTdWJqZWN0Lm5leHQoXG4gICAgICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyLmV4cGlyZWQtbWVzc2FnZS5zci1vbmx5J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXZlcnkgc2Vjb25kIGZvciB0aGUgbGFzdCAxNXNcbiAgICAgICAgaWYgKHRpbWVJblNlY29uZHMgPD0gMTUpIHtcbiAgICAgICAgICAgIHRoaXMuc3JBbm5vdW5jZW1lbnRzU3ViamVjdC5uZXh0KHRpbWVJblNlY29uZHMudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXZlcnkgMzBzIHdoZW4gbGVzcyB0aGFuIDIgbWludXRlc1xuICAgICAgICBpZiAodGltZUluU2Vjb25kcyA8PSBfMl9taW51dGVJblNlY29uZHMgJiYgdGltZUluU2Vjb25kcyAlIDMwID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSB0aGlzLmdldFJlYWRhYmxlVGltZXJGb3JTY3JlZW5SZWFkZXIoXG4gICAgICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgICAgICBzZWNvbmRzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hbm5vdW5jZVNyTWVzc2FnZShcbiAgICAgICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldEtleVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1wYWdlLWV4cGlyYXRpb24tdGltZXIuY291bnQtZG93bi1tZXNzYWdlLnNyLW9ubHknLFxuICAgICAgICAgICAgICAgICAgICB7IGNvdW50RG93blZhbHVlOiBtc2cgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXZlcnkgbWludXRlIGZvciB0aGUgbGFzdCA1IG1pbnV0ZXNcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGltZUluU2Vjb25kcyA8PSBfNV9taW51dGVzSW5TZWNvbmRzICYmXG4gICAgICAgICAgICB0aW1lSW5TZWNvbmRzICUgXzFfbWludXRlSW5TZWNvbmRzID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gdGhpcy5nZXRSZWFkYWJsZVRpbWVyRm9yU2NyZWVuUmVhZGVyKFxuICAgICAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICAgICAgc2Vjb25kc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2VTck1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyLmNvdW50LWRvd24tbWVzc2FnZS5zci1vbmx5JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjb3VudERvd25WYWx1ZTogbXNnIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEV2ZXJ5IDEwIG1pbnV0ZXMgd2hlbiBsZXNzIHRoYW4gYW4gaG91clxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aW1lSW5TZWNvbmRzIDwgXzFfaG91ckluU2Vjb25kcyAmJlxuICAgICAgICAgICAgdGltZUluU2Vjb25kcyAlIF8xMF9taW51dGVzSW5TZWNvbmRzID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gdGhpcy5nZXRSZWFkYWJsZVRpbWVyRm9yU2NyZWVuUmVhZGVyKFxuICAgICAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICAgICAgc2Vjb25kc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2VTck1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyLmNvdW50LWRvd24tbWVzc2FnZS5zci1vbmx5JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjb3VudERvd25WYWx1ZTogbXNnIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIEV2ZXJ5IGhvdXIgd2hlbiBtb3JlIHRoYW4gYW4gaG91clxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aW1lSW5TZWNvbmRzID49IF8xX2hvdXJJblNlY29uZHMgJiZcbiAgICAgICAgICAgIHRpbWVJblNlY29uZHMgJSBfMV9ob3VySW5TZWNvbmRzID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0gdGhpcy5nZXRSZWFkYWJsZVRpbWVyRm9yU2NyZWVuUmVhZGVyKFxuICAgICAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICAgICAgc2Vjb25kc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2VTck1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyLmNvdW50LWRvd24tbWVzc2FnZS5zci1vbmx5JyxcbiAgICAgICAgICAgICAgICAgICAgeyBjb3VudERvd25WYWx1ZTogbXNnIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZXNzYWdlRGVsYXlJbk1pbnV0ZXMoXG4gICAgICAgIGluZm86IEFwcGxpY2F0aW9uSW5mbyxcbiAgICAgICAgdHlwZTogJ0lBTScgfCAnU0VTU0lPTi1UT0tFTidcbiAgICApOiBudW1iZXIge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0lBTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZm8uY29uZmlndXJhdGlvbi5zZXNzaW9uLmlhbU1lc3NhZ2VEZWxheUluTWludXRlcztcbiAgICAgICAgICAgIGNhc2UgJ1NFU1NJT04tVE9LRU4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBpbmZvLmNvbmZpZ3VyYXRpb24uc2Vzc2lvblxuICAgICAgICAgICAgICAgICAgICAuc2Vzc2lvblRva2VuTWVzc2FnZURlbGF5SW5NaW51dGVzO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwiaXNWaXNpYmxlIHwgYXN5bmNcIlxuICAgIGlkPVwiZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyXCJcbiAgICBjbGFzcz1cInN0aWNreS10b3AgYWxlcnQgdGV4dC1jZW50ZXIgbXktMFwiXG4gICAgW2NsYXNzLmFsZXJ0LXdhcm5pbmddPVwiKHNlc3Npb25FeHBpcmVkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgW2NsYXNzLmFsZXJ0LWRhbmdlcl09XCIoc2Vzc2lvbkV4cGlyZWQgfCBhc3luYykgPT09IHRydWVcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cIihzZXNzaW9uRXhwaXJlZCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgJ2ZvZWhuLXBhZ2UtZXhwaXJhdGlvbi10aW1lci5jb3VudC1kb3duLW1lc3NhZ2UnXG4gICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IHsgY291bnREb3duVmFsdWU6IGNvdW50RG93blRpbWVUb0Rpc3BsYXkgfCBhc3luYyB9XG4gICAgICAgIFwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIoc2Vzc2lvbkV4cGlyZWQgfCBhc3luYykgPT09IHRydWVcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgJ2ZvZWhuLXBhZ2UtZXhwaXJhdGlvbi10aW1lci5leHBpcmVkLW1lc3NhZ2UnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgXCJcbiAgICA+PC9kaXY+XG48L2Rpdj5cblxuPHAgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiBhcmlhLWF0b21pYz1cInRydWVcIj5cbiAgICB7eyBzckFubm91bmNlbWVudHMgfCBhc3luYyB9fVxuPC9wPlxuIl19
@@ -1,29 +0,0 @@
1
- export class IntervalHelper {
2
- static accurateInterval(
3
- // eslint-disable-next-line
4
- callBack, intervalInMilliseconds,
5
- // eslint-disable-next-line
6
- errorCallBack) {
7
- let timeout = null;
8
- let nextAt = Date.now() + intervalInMilliseconds;
9
- const clear = () => clearTimeout(timeout);
10
- const timerHandler = () => {
11
- nextAt += intervalInMilliseconds;
12
- // Avoid time drift by doing "nextAt - Date.now()"
13
- const calculatedTimeout = nextAt - Date.now();
14
- // Verify browser tab inactivity
15
- if (calculatedTimeout < 0) {
16
- if (errorCallBack) {
17
- clear();
18
- return errorCallBack();
19
- }
20
- }
21
- timeout = setTimeout(timerHandler, Math.max(0, nextAt - Date.now()));
22
- callBack();
23
- };
24
- // Avoid time drift by doing "nextAt - Date.now()"
25
- timeout = setTimeout(timerHandler, nextAt - Date.now());
26
- return { clear };
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1leHBpcmF0aW9uLXRpbWVyL2ludGVydmFsLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUN2QixNQUFNLENBQUMsZ0JBQWdCO0lBQ25CLDJCQUEyQjtJQUMzQixRQUFrQixFQUNsQixzQkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLGFBQXdCO1FBRXhCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsc0JBQXNCLENBQUM7UUFFakQsTUFBTSxLQUFLLEdBQUcsR0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sWUFBWSxHQUFHLEdBQVMsRUFBRTtZQUM1QixNQUFNLElBQUksc0JBQXNCLENBQUM7WUFDakMsa0RBQWtEO1lBQ2xELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM5QyxnQ0FBZ0M7WUFDaEMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDaEIsS0FBSyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxhQUFhLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLEdBQUcsVUFBVSxDQUNoQixZQUFZLEVBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUNuQyxDQUFDO1lBQ0YsUUFBUSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUM7UUFFRixrREFBa0Q7UUFDbEQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXhELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW50ZXJ2YWxIZWxwZXIge1xuICAgIHN0YXRpYyBhY2N1cmF0ZUludGVydmFsKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgY2FsbEJhY2s6IEZ1bmN0aW9uLFxuICAgICAgICBpbnRlcnZhbEluTWlsbGlzZWNvbmRzOiBudW1iZXIsXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBlcnJvckNhbGxCYWNrPzogRnVuY3Rpb25cbiAgICApOiB1bmtub3duIHtcbiAgICAgICAgbGV0IHRpbWVvdXQgPSBudWxsO1xuICAgICAgICBsZXQgbmV4dEF0ID0gRGF0ZS5ub3coKSArIGludGVydmFsSW5NaWxsaXNlY29uZHM7XG5cbiAgICAgICAgY29uc3QgY2xlYXIgPSAoKTogdm9pZCA9PiBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGNvbnN0IHRpbWVySGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIG5leHRBdCArPSBpbnRlcnZhbEluTWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgLy8gQXZvaWQgdGltZSBkcmlmdCBieSBkb2luZyBcIm5leHRBdCAtIERhdGUubm93KClcIlxuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlZFRpbWVvdXQgPSBuZXh0QXQgLSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgLy8gVmVyaWZ5IGJyb3dzZXIgdGFiIGluYWN0aXZpdHlcbiAgICAgICAgICAgIGlmIChjYWxjdWxhdGVkVGltZW91dCA8IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JDYWxsQmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JDYWxsQmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICAgICAgIHRpbWVySGFuZGxlcixcbiAgICAgICAgICAgICAgICBNYXRoLm1heCgwLCBuZXh0QXQgLSBEYXRlLm5vdygpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhbGxCYWNrKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQXZvaWQgdGltZSBkcmlmdCBieSBkb2luZyBcIm5leHRBdCAtIERhdGUubm93KClcIlxuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCh0aW1lckhhbmRsZXIsIG5leHRBdCAtIERhdGUubm93KCkpO1xuXG4gICAgICAgIHJldHVybiB7IGNsZWFyIH07XG4gICAgfVxufVxuIl19
@@ -1,54 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { combineLatest } from 'rxjs';
3
- import { filter, first } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../sdk-session-info/session-info.service";
6
- import * as i2 from "../sdk-appinfo/application-info.service";
7
- import * as i3 from "./foehn-page-modal.service";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "../foehn-modal/foehn-modal.component";
10
- export class FoehnPageModalComponent {
11
- constructor(sessionInfo, applicationInfoService, foehnPageModalService) {
12
- this.sessionInfo = sessionInfo;
13
- this.applicationInfoService = applicationInfoService;
14
- this.foehnPageModalService = foehnPageModalService;
15
- this.wrongPublicModalVisible = false;
16
- }
17
- ngOnInit() {
18
- combineLatest([
19
- this.applicationInfoService.currentEtapeInfo,
20
- this.sessionInfo.data
21
- ])
22
- .pipe(filter(([etapeInfo, data]) => !!etapeInfo && !!data), first())
23
- // eslint-disable-next-line rxjs-angular/prefer-async-pipe
24
- .subscribe(([etapeInfo, sessionInfoData]) => {
25
- this.publicsCibles = etapeInfo.publicCible.map(p => p.toUpperCase());
26
- this.userCategories = sessionInfoData.categories.map(c => c.toUpperCase());
27
- this.wrongPublicModalVisible = !this.publicsCibles.some(cat => this.userCategories.includes(cat));
28
- this.formattedPublicsCibles =
29
- this.foehnPageModalService.toQuotedTitleCaseStringArray(this.publicsCibles);
30
- });
31
- }
32
- getFullLoginUrl() {
33
- return this.foehnPageModalService.buildSelfRedirectionThroughCyberLogin();
34
- }
35
- getAbortUrl() {
36
- return this.applicationInfoService.getSafeEspacesSecuriseUrl();
37
- }
38
- getUserCategory() {
39
- return this.foehnPageModalService
40
- .toQuotedTitleCaseStringArray(this.userCategories)
41
- .join(', ');
42
- }
43
- updateVisibilityStatus(status) {
44
- // In case the modal is closed by another mean such as the Escape key.
45
- this.wrongPublicModalVisible = status;
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageModalComponent, deps: [{ token: i1.SessionInfo }, { token: i2.ApplicationInfoService }, { token: i3.FoehnPageModalService }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FoehnPageModalComponent, selector: "foehn-page-modal", ngImport: i0, template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n <li *ngFor=\"let pubCible of formattedPublicsCibles\">\n {{ pubCible }}\n </li>\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageModalComponent, decorators: [{
51
- type: Component,
52
- args: [{ selector: 'foehn-page-modal', template: "<foehn-modal\n modalHeaderText=\"Acc\u00E8s non autoris\u00E9\"\n modalSize=\"modal-lg\"\n [isModalVisible]=\"wrongPublicModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"false\"\n>\n <div class=\"modal-body\">\n Vous \u00EAtes connect\u00E9 pour le compte d\u2019un usager de type\n {{ getUserCategory() }}, or cette prestation est destin\u00E9e aux usagers de\n type :\n <ul>\n <li *ngFor=\"let pubCible of formattedPublicsCibles\">\n {{ pubCible }}\n </li>\n </ul>\n </div>\n <div class=\"modal-body\">\n Vous pouvez choisir de vous reconnecter et de continuer, ou bien\n d'abandonner.\n </div>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <a\n class=\"btn btn-primary w-100\"\n [href]=\"getFullLoginUrl() | async\"\n >\n Se reconnecter\n </a>\n </div>\n <div class=\"ms-md-0 me-md-2 mb-2 mt-2\">\n <a class=\"btn btn-primary w-100\" [href]=\"getAbortUrl() | async\">\n Abandonner\n </a>\n </div>\n </div>\n </div>\n</foehn-modal>\n" }]
53
- }], ctorParameters: () => [{ type: i1.SessionInfo }, { type: i2.ApplicationInfoService }, { type: i3.FoehnPageModalService }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFVL0MsTUFBTSxPQUFPLHVCQUF1QjtJQVNoQyxZQUNZLFdBQXdCLEVBQ3hCLHNCQUE4QyxFQUM5QyxxQkFBNEM7UUFGNUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBWHhELDRCQUF1QixHQUFHLEtBQUssQ0FBQztJQVk3QixDQUFDO0lBRUosUUFBUTtRQUNKLGFBQWEsQ0FBQztZQUNWLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0I7WUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1NBQ3hCLENBQUM7YUFDRyxJQUFJLENBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNwRCxLQUFLLEVBQUUsQ0FDVjtZQUNELDBEQUEwRDthQUN6RCxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDL0MsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUNsQixDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyRCxDQUFDLENBQUMsV0FBVyxFQUFFLENBQ2xCLENBQUM7WUFFRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUMxRCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDcEMsQ0FBQztZQUVGLElBQUksQ0FBQyxzQkFBc0I7Z0JBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw0QkFBNEIsQ0FDbkQsSUFBSSxDQUFDLGFBQWEsQ0FDckIsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLHFCQUFxQjthQUM1Qiw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBZTtRQUNsQyxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQztJQUMxQyxDQUFDOytHQTdEUSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3RENacEMsaTJDQXdDQTs7NEZENUJhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1wYWdlLW1vZGFsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXBhZ2UtbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1wYWdlLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb2VoblBhZ2VNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgd3JvbmdQdWJsaWNNb2RhbFZpc2libGUgPSBmYWxzZTtcblxuICAgIGZvcm1hdHRlZFB1YmxpY3NDaWJsZXM6IHN0cmluZ1tdO1xuXG4gICAgcHJpdmF0ZSB1c2VyQ2F0ZWdvcmllczogc3RyaW5nW107XG5cbiAgICBwcml2YXRlIHB1YmxpY3NDaWJsZXM6IHN0cmluZ1tdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mbyxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YVxuICAgICAgICBdKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChbZXRhcGVJbmZvLCBkYXRhXSkgPT4gISFldGFwZUluZm8gJiYgISFkYXRhKSxcbiAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbZXRhcGVJbmZvLCBzZXNzaW9uSW5mb0RhdGFdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wdWJsaWNzQ2libGVzID0gZXRhcGVJbmZvLnB1YmxpY0NpYmxlLm1hcChwID0+XG4gICAgICAgICAgICAgICAgICAgIHAudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyQ2F0ZWdvcmllcyA9IHNlc3Npb25JbmZvRGF0YS5jYXRlZ29yaWVzLm1hcChjID0+XG4gICAgICAgICAgICAgICAgICAgIGMudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLndyb25nUHVibGljTW9kYWxWaXNpYmxlID0gIXRoaXMucHVibGljc0NpYmxlcy5zb21lKGNhdCA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRQdWJsaWNzQ2libGVzID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VNb2RhbFNlcnZpY2UudG9RdW90ZWRUaXRsZUNhc2VTdHJpbmdBcnJheShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHVibGljc0NpYmxlc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZU1vZGFsU2VydmljZS5idWlsZFNlbGZSZWRpcmVjdGlvblRocm91Z2hDeWJlckxvZ2luKCk7XG4gICAgfVxuXG4gICAgZ2V0QWJvcnRVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5nZXRTYWZlRXNwYWNlc1NlY3VyaXNlVXJsKCk7XG4gICAgfVxuXG4gICAgZ2V0VXNlckNhdGVnb3J5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLnRvUXVvdGVkVGl0bGVDYXNlU3RyaW5nQXJyYXkodGhpcy51c2VyQ2F0ZWdvcmllcylcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIC8vIEluIGNhc2UgdGhlIG1vZGFsIGlzIGNsb3NlZCBieSBhbm90aGVyIG1lYW4gc3VjaCBhcyB0aGUgRXNjYXBlIGtleS5cbiAgICAgICAgdGhpcy53cm9uZ1B1YmxpY01vZGFsVmlzaWJsZSA9IHN0YXR1cztcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBtb2RhbEhlYWRlclRleHQ9XCJBY2PDqHMgbm9uIGF1dG9yaXPDqVwiXG4gICAgbW9kYWxTaXplPVwibW9kYWwtbGdcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJ3cm9uZ1B1YmxpY01vZGFsVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoJGV2ZW50KVwiXG4gICAgW2Nsb3NlYWJsZV09XCJmYWxzZVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgVm91cyDDqnRlcyBjb25uZWN0w6kgcG91ciBsZSBjb21wdGUgZOKAmXVuIHVzYWdlciBkZSB0eXBlXG4gICAgICAgIHt7IGdldFVzZXJDYXRlZ29yeSgpIH19LCBvciBjZXR0ZSBwcmVzdGF0aW9uIGVzdCBkZXN0aW7DqWUgYXV4IHVzYWdlcnMgZGVcbiAgICAgICAgdHlwZSA6XG4gICAgICAgIDx1bD5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcHViQ2libGUgb2YgZm9ybWF0dGVkUHVibGljc0NpYmxlc1wiPlxuICAgICAgICAgICAgICAgIHt7IHB1YkNpYmxlIH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIFZvdXMgcG91dmV6IGNob2lzaXIgZGUgdm91cyByZWNvbm5lY3RlciBldCBkZSBjb250aW51ZXIsIG91IGJpZW5cbiAgICAgICAgZCdhYmFuZG9ubmVyLlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXIgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1tZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtbWQtYXV0byBtZS1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0RnVsbExvZ2luVXJsKCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBTZSByZWNvbm5lY3RlclxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLW1kLTAgbWUtbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiIFtocmVmXT1cImdldEFib3J0VXJsKCkgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICBBYmFuZG9ubmVyXG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../sdk-appinfo/application-info.service";
5
- export class FoehnPageModalService {
6
- constructor(applicationInfoService) {
7
- this.applicationInfoService = applicationInfoService;
8
- }
9
- toQuotedTitleCaseStringArray(items) {
10
- if (items && items.length > 0) {
11
- return items.map(pc => {
12
- const item = pc.toLowerCase().replace('_', ' ');
13
- return `«${item.charAt(0).toUpperCase()}${item.slice(1)}»`;
14
- });
15
- }
16
- return ['« Non défini »'];
17
- }
18
- toQuotedTitleCaseString(input) {
19
- if (input) {
20
- return `«${input.charAt(0).toUpperCase()}${input.slice(1)}»`;
21
- }
22
- return '« Non défini »';
23
- }
24
- buildSelfRedirectionThroughCyberLogin() {
25
- return this.applicationInfoService
26
- .getSafeCyberLoginUrl()
27
- .pipe(map(cyberloginUrl => `${cyberloginUrl}?goto=${window.location.href}`));
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageModalService, deps: [{ token: i1.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageModalService, providedIn: 'root' }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FoehnPageModalService, decorators: [{
33
- type: Injectable,
34
- args: [{
35
- providedIn: 'root'
36
- }]
37
- }], ctorParameters: () => [{ type: i1.ApplicationInfoService }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPckMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtJQUFHLENBQUM7SUFFdEUsNEJBQTRCLENBQUMsS0FBZTtRQUN4QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2hELE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBYTtRQUNqQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFFRCxxQ0FBcUM7UUFDakMsT0FBTyxJQUFJLENBQUMsc0JBQXNCO2FBQzdCLG9CQUFvQixFQUFFO2FBQ3RCLElBQUksQ0FDRCxHQUFHLENBQ0MsYUFBYSxDQUFDLEVBQUUsQ0FDWixHQUFHLGFBQWEsU0FBUyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUN0RCxDQUNKLENBQUM7SUFDVixDQUFDOytHQTlCUSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZsQixNQUFNOzs0RkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2VoblBhZ2VNb2RhbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSkge31cblxuICAgIHRvUXVvdGVkVGl0bGVDYXNlU3RyaW5nQXJyYXkoaXRlbXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcChwYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHBjLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnXycsICcgJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGDCqyR7aXRlbS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2l0ZW0uc2xpY2UoMSl9wrtgO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFsnwqsgTm9uIGTDqWZpbmkgwrsnXTtcbiAgICB9XG5cbiAgICB0b1F1b3RlZFRpdGxlQ2FzZVN0cmluZyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gYMKrJHtpbnB1dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2lucHV0LnNsaWNlKDEpfcK7YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnwqsgTm9uIGTDqWZpbmkgwrsnO1xuICAgIH1cblxuICAgIGJ1aWxkU2VsZlJlZGlyZWN0aW9uVGhyb3VnaEN5YmVyTG9naW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICAgICAgICAgLmdldFNhZmVDeWJlckxvZ2luVXJsKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgY3liZXJsb2dpblVybCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7Y3liZXJsb2dpblVybH0/Z290bz0ke3dpbmRvdy5sb2NhdGlvbi5ocmVmfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==