@dsivd/prestations-ng 14.5.20 → 15.0.0-beta3

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 (334) hide show
  1. package/CHANGELOG.md +33 -6
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +2 -0
  4. package/UPGRADING_V14.md +8 -11
  5. package/UPGRADING_V15.md +51 -0
  6. package/dsivd-prestations-ng-v15.0.0-beta3.tgz +0 -0
  7. package/esm2020/abstract-page-component.mjs +226 -0
  8. package/{esm2015/directives/currency-formatter.directive.js → esm2020/directives/currency-formatter.directive.mjs} +3 -3
  9. package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +4 -4
  10. package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +3 -3
  11. package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +3 -3
  12. package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +3 -3
  13. package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
  14. package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +0 -0
  15. package/{esm2015/foehn-address/foehn-address.module.js → esm2020/foehn-address/foehn-address.module.mjs} +4 -4
  16. package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
  17. package/esm2020/foehn-address/foehn-input-address.component.mjs +366 -0
  18. package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
  19. package/{esm2015/foehn-address/foehn-input-foreign-street.component.js → esm2020/foehn-address/foehn-input-foreign-street.component.mjs} +6 -11
  20. package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +548 -0
  21. package/{esm2015/foehn-autocomplete/foehn-autocomplete.module.js → esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs} +4 -4
  22. package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
  23. package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +37 -0
  24. package/{esm2015/foehn-boolean/foehn-boolean.module.js → esm2020/foehn-boolean/foehn-boolean.module.mjs} +4 -4
  25. package/{esm2015/foehn-breadcrumb/breadcrumb-event.service.js → esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs} +10 -10
  26. package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
  27. package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs} +5 -9
  28. package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs} +4 -4
  29. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +283 -0
  30. package/{esm2015/foehn-checkables/foehn-checkables.module.js → esm2020/foehn-checkables/foehn-checkables.module.mjs} +4 -4
  31. package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +36 -0
  32. package/esm2020/foehn-checkables/foehn-radio.component.mjs +63 -0
  33. package/esm2020/foehn-checkables/foehn-select.component.mjs +62 -0
  34. package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
  35. package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
  36. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +0 -0
  37. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +39 -0
  38. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs} +4 -4
  39. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +3 -3
  40. package/{esm2015/foehn-date-picker/date-picker-navigation.helper.js → esm2020/foehn-date-picker/date-picker-navigation.helper.mjs} +7 -7
  41. package/{esm2015/foehn-date-picker/date-picker.helper.js → esm2020/foehn-date-picker/date-picker.helper.mjs} +4 -4
  42. package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
  43. package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
  44. package/{esm2015/foehn-date-picker/foehn-date-picker.component.js → esm2020/foehn-date-picker/foehn-date-picker.component.mjs} +22 -25
  45. package/{esm2015/foehn-date-picker/foehn-date-picker.module.js → esm2020/foehn-date-picker/foehn-date-picker.module.mjs} +4 -4
  46. package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
  47. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +70 -0
  48. package/{esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js → esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs} +4 -4
  49. package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs} +8 -11
  50. package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +4 -4
  51. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +36 -0
  52. package/{esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js → esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs} +4 -4
  53. package/esm2020/foehn-footer/foehn-footer.component.mjs +129 -0
  54. package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +4 -4
  55. package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
  56. package/{esm2015/foehn-form/foehn-form.component.js → esm2020/foehn-form/foehn-form.component.mjs} +5 -8
  57. package/{esm2015/foehn-form/foehn-form.module.js → esm2020/foehn-form/foehn-form.module.mjs} +4 -4
  58. package/{esm2015/foehn-growl/foehn-growl.component.js → esm2020/foehn-growl/foehn-growl.component.mjs} +8 -12
  59. package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +4 -4
  60. package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +3 -3
  61. package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +0 -0
  62. package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
  63. package/esm2020/foehn-header/foehn-header.component.mjs +69 -0
  64. package/{esm2015/foehn-header/foehn-header.module.js → esm2020/foehn-header/foehn-header.module.mjs} +4 -4
  65. package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
  66. package/{esm2015/foehn-help-modal/foehn-help-modal.component.js → esm2020/foehn-help-modal/foehn-help-modal.component.mjs} +5 -9
  67. package/{esm2015/foehn-help-modal/foehn-help-modal.module.js → esm2020/foehn-help-modal/foehn-help-modal.module.mjs} +4 -4
  68. package/{esm2015/foehn-help-modal/foehn-help-modal.type.js → esm2020/foehn-help-modal/foehn-help-modal.type.mjs} +0 -0
  69. package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +4 -4
  70. package/{esm2015/foehn-icons/foehn-icon-calendar.component.js → esm2020/foehn-icons/foehn-icon-calendar.component.mjs} +5 -8
  71. package/{esm2015/foehn-icons/foehn-icon-check-square-o.component.js → esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs} +5 -8
  72. package/{esm2015/foehn-icons/foehn-icon-check.component.js → esm2020/foehn-icons/foehn-icon-check.component.mjs} +5 -8
  73. package/{esm2015/foehn-icons/foehn-icon-chevron-down.component.js → esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs} +5 -8
  74. package/{esm2015/foehn-icons/foehn-icon-chevron-left.component.js → esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs} +5 -8
  75. package/{esm2015/foehn-icons/foehn-icon-chevron-right.component.js → esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs} +5 -8
  76. package/{esm2015/foehn-icons/foehn-icon-chevron-up.component.js → esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs} +5 -8
  77. package/{esm2015/foehn-icons/foehn-icon-clock.component.js → esm2020/foehn-icons/foehn-icon-clock.component.mjs} +5 -8
  78. package/{esm2015/foehn-icons/foehn-icon-comment-dots.component.js → esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs} +5 -8
  79. package/{esm2015/foehn-icons/foehn-icon-edit.component.js → esm2020/foehn-icons/foehn-icon-edit.component.mjs} +5 -8
  80. package/{esm2015/foehn-icons/foehn-icon-external-link-alt.component.js → esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs} +5 -8
  81. package/{esm2015/foehn-icons/foehn-icon-file-pdf.component.js → esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs} +5 -8
  82. package/{esm2015/foehn-icons/foehn-icon-info-circle.component.js → esm2020/foehn-icons/foehn-icon-info-circle.component.mjs} +5 -8
  83. package/{esm2015/foehn-icons/foehn-icon-lock.component.js → esm2020/foehn-icons/foehn-icon-lock.component.mjs} +5 -8
  84. package/{esm2015/foehn-icons/foehn-icon-map-marker.component.js → esm2020/foehn-icons/foehn-icon-map-marker.component.mjs} +5 -8
  85. package/{esm2015/foehn-icons/foehn-icon-minus-circle.component.js → esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs} +5 -8
  86. package/{esm2015/foehn-icons/foehn-icon-plus-circle.component.js → esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs} +5 -8
  87. package/{esm2015/foehn-icons/foehn-icon-plus-square.component.js → esm2020/foehn-icons/foehn-icon-plus-square.component.mjs} +5 -8
  88. package/{esm2015/foehn-icons/foehn-icon-search.component.js → esm2020/foehn-icons/foehn-icon-search.component.mjs} +5 -8
  89. package/{esm2015/foehn-icons/foehn-icon-times.component.js → esm2020/foehn-icons/foehn-icon-times.component.mjs} +5 -8
  90. package/{esm2015/foehn-icons/foehn-icon-trash-alt.component.js → esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs} +5 -8
  91. package/{esm2015/foehn-icons/foehn-icon-unlock-alt.component.js → esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs} +5 -8
  92. package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +4 -4
  93. package/esm2020/foehn-input/foehn-input-email.component.mjs +50 -0
  94. package/esm2020/foehn-input/foehn-input-hidden.component.mjs +53 -0
  95. package/{esm2015/foehn-input/foehn-input-number.component.js → esm2020/foehn-input/foehn-input-number.component.mjs} +10 -15
  96. package/esm2020/foehn-input/foehn-input-password.component.mjs +50 -0
  97. package/{esm2015/foehn-input/foehn-input-phone.component.js → esm2020/foehn-input/foehn-input-phone.component.mjs} +6 -11
  98. package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +3 -3
  99. package/{esm2015/foehn-input/foehn-input-text.component.js → esm2020/foehn-input/foehn-input-text.component.mjs} +6 -11
  100. package/{esm2015/foehn-input/foehn-input-textarea.component.js → esm2020/foehn-input/foehn-input-textarea.component.mjs} +6 -11
  101. package/{esm2015/foehn-input/foehn-input.component.js → esm2020/foehn-input/foehn-input.component.mjs} +14 -14
  102. package/{esm2015/foehn-input/foehn-input.module.js → esm2020/foehn-input/foehn-input.module.mjs} +4 -4
  103. package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
  104. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +90 -0
  105. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +75 -0
  106. package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
  107. package/{esm2015/foehn-list/foehn-list.module.js → esm2020/foehn-list/foehn-list.module.mjs} +4 -4
  108. package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
  109. package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
  110. package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +3 -3
  111. package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +3 -3
  112. package/{esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js → esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs} +5 -8
  113. package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs} +0 -0
  114. package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs} +0 -0
  115. package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
  116. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
  117. package/{esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js → esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs} +5 -8
  118. package/{esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js → esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs} +4 -4
  119. package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
  120. package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +4 -4
  121. package/esm2020/foehn-modal/foehn-modal.component.mjs +96 -0
  122. package/{esm2015/foehn-modal/foehn-modal.module.js → esm2020/foehn-modal/foehn-modal.module.mjs} +4 -4
  123. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +94 -0
  124. package/{esm2015/foehn-nav13/foehn-input-nav13.module.js → esm2020/foehn-nav13/foehn-input-nav13.module.mjs} +4 -4
  125. package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
  126. package/{esm2015/foehn-navigation/foehn-navigation.module.js → esm2020/foehn-navigation/foehn-navigation.module.mjs} +4 -4
  127. package/{esm2015/foehn-navigation/foehn-navigation.service.js → esm2020/foehn-navigation/foehn-navigation.service.mjs} +12 -12
  128. package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +5 -8
  129. package/{esm2015/foehn-notfound/foehn-notfound.module.js → esm2020/foehn-notfound/foehn-notfound.module.mjs} +4 -4
  130. package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
  131. package/esm2020/foehn-page/foehn-page-modal.component.mjs +52 -0
  132. package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +3 -3
  133. package/esm2020/foehn-page/foehn-page.component.mjs +215 -0
  134. package/{esm2015/foehn-page/foehn-page.module.js → esm2020/foehn-page/foehn-page.module.mjs} +4 -4
  135. package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
  136. package/{esm2015/foehn-recap-section/foehn-recap-section.component.js → esm2020/foehn-recap-section/foehn-recap-section.component.mjs} +5 -8
  137. package/{esm2015/foehn-recap-section/foehn-recap-section.module.js → esm2020/foehn-recap-section/foehn-recap-section.module.mjs} +4 -4
  138. package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
  139. package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs} +5 -9
  140. package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +4 -4
  141. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +37 -0
  142. package/{esm2015/foehn-status-progress-bar/foehn-status-progress-bar.module.js → esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs} +4 -4
  143. package/{esm2015/foehn-table/foehn-table-column-configuration.js → esm2020/foehn-table/foehn-table-column-configuration.mjs} +0 -0
  144. package/{esm2015/foehn-table/foehn-table-page-change-event.js → esm2020/foehn-table/foehn-table-page-change-event.mjs} +0 -0
  145. package/esm2020/foehn-table/foehn-table.component.mjs +147 -0
  146. package/{esm2015/foehn-table/foehn-table.module.js → esm2020/foehn-table/foehn-table.module.mjs} +4 -4
  147. package/{esm2015/foehn-table/tableSort.js → esm2020/foehn-table/tableSort.mjs} +0 -0
  148. package/{esm2015/foehn-upload/abstract-foehn-uploader.component.js → esm2020/foehn-upload/abstract-foehn-uploader.component.mjs} +17 -17
  149. package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
  150. package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs} +3 -3
  151. package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs} +0 -0
  152. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +165 -0
  153. package/{esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js → esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs} +4 -4
  154. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +214 -0
  155. package/{esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js → esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs} +4 -4
  156. package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs} +3 -3
  157. package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
  158. package/{esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs} +3 -3
  159. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +163 -0
  160. package/{esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js → esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs} +4 -4
  161. package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +0 -0
  162. package/esm2020/foehn-upload/uploader.helper.mjs +326 -0
  163. package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.component.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs} +5 -8
  164. package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +4 -4
  165. package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs} +5 -9
  166. package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs} +4 -4
  167. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
  168. package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +4 -4
  169. package/esm2020/form-error.mjs +2 -0
  170. package/esm2020/form-post-response.mjs +10 -0
  171. package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +3 -3
  172. package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
  173. package/esm2020/gesdem/gesdem-handler.service.mjs +151 -0
  174. package/{esm2015/gesdem/gesdem-loader.guard.js → esm2020/gesdem/gesdem-loader.guard.mjs} +3 -3
  175. package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
  176. package/{esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js → esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs} +5 -10
  177. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +128 -0
  178. package/{esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js → esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs} +4 -4
  179. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
  180. package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
  181. package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +189 -0
  182. package/{esm2015/gesdem-confirmation/gesdem-confirmation.module.js → esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs} +4 -4
  183. package/{esm2015/gesdem-error/gesdem-error.component.js → esm2020/gesdem-error/gesdem-error.component.mjs} +5 -9
  184. package/{esm2015/gesdem-error/gesdem-error.module.js → esm2020/gesdem-error/gesdem-error.module.mjs} +4 -4
  185. package/{esm2015/helpers/object.helper.js → esm2020/helpers/object.helper.mjs} +2 -2
  186. package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
  187. package/{esm2015/index.js → esm2020/index.mjs} +3 -3
  188. package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +3 -3
  189. package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +3 -3
  190. package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
  191. package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +4 -4
  192. package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +4 -4
  193. package/{esm2015/sdk-appinfo/application-info.js → esm2020/sdk-appinfo/application-info.mjs} +0 -0
  194. package/esm2020/sdk-appinfo/application-info.service.mjs +102 -0
  195. package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
  196. package/esm2020/sdk-date/date.helper.mjs +91 -0
  197. package/{esm2015/sdk-dictionary/default-dictionary.js → esm2020/sdk-dictionary/default-dictionary.mjs} +0 -0
  198. package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +4 -4
  199. package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +5 -5
  200. package/{esm2015/sdk-dictionary/sdk-dictionary.service.js → esm2020/sdk-dictionary/sdk-dictionary.service.mjs} +3 -3
  201. package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
  202. package/esm2020/sdk-epayment/sdk-epayment.component.mjs +79 -0
  203. package/{esm2015/sdk-epayment/sdk-epayment.module.js → esm2020/sdk-epayment/sdk-epayment.module.mjs} +4 -4
  204. package/esm2020/sdk-epayment/sdk-epayment.service.mjs +51 -0
  205. package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +5 -9
  206. package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
  207. package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +68 -0
  208. package/{esm2015/sdk-recaptcha/sdk-recaptcha.module.js → esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs} +4 -4
  209. package/{esm2015/sdk-redirect/iam-expired-interceptor.service.js → esm2020/sdk-redirect/iam-expired-interceptor.service.mjs} +3 -3
  210. package/{esm2015/sdk-redirect/redirect.component.js → esm2020/sdk-redirect/redirect.component.mjs} +5 -9
  211. package/{esm2015/sdk-redirect/sdk-redirect.module.js → esm2020/sdk-redirect/sdk-redirect.module.mjs} +4 -4
  212. package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
  213. package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +3 -3
  214. package/esm2020/sdk-session-info/session-info.service.mjs +73 -0
  215. package/{esm2015/sdk-support-alert/support-alert-container.component.js → esm2020/sdk-support-alert/support-alert-container.component.mjs} +5 -9
  216. package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
  217. package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
  218. package/{esm2015/sdk-support-alert/support-alert.module.js → esm2020/sdk-support-alert/support-alert.module.mjs} +4 -4
  219. package/{esm2015/sdk-support-alert/support-alert.service.js → esm2020/sdk-support-alert/support-alert.service.mjs} +3 -3
  220. package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
  221. package/esm2020/supported-browser.mjs +2 -0
  222. package/esm2020/validation/validation-handler.service.mjs +44 -0
  223. package/fesm2015/{dsivd-prestations-ng.js → dsivd-prestations-ng.mjs} +973 -1300
  224. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
  225. package/fesm2020/dsivd-prestations-ng.mjs +11532 -0
  226. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
  227. package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
  228. package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -3
  229. package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +1 -1
  230. package/foehn-date-picker/date-picker-navigation.helper.d.ts +1 -1
  231. package/foehn-date-picker/date-picker.helper.d.ts +1 -1
  232. package/foehn-date-picker/foehn-date-picker.component.d.ts +3 -3
  233. package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +2 -2
  234. package/foehn-debug-summary/foehn-debug-summary.component.d.ts +1 -1
  235. package/foehn-growl/foehn-growl.component.d.ts +1 -1
  236. package/foehn-header/foehn-header.component.d.ts +2 -2
  237. package/foehn-input/foehn-input-number.component.d.ts +1 -1
  238. package/foehn-input/foehn-input.component.d.ts +4 -4
  239. package/foehn-list/foehn-list.component.d.ts +2 -2
  240. package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
  241. package/foehn-modal/foehn-modal.component.d.ts +1 -1
  242. package/foehn-navigation/foehn-navigation.service.d.ts +2 -2
  243. package/foehn-page/foehn-page.service.d.ts +2 -2
  244. package/foehn-table/foehn-table.component.d.ts +2 -2
  245. package/foehn-upload/abstract-foehn-uploader.component.d.ts +2 -2
  246. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +1 -1
  247. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -2
  248. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -1
  249. package/foehn-upload/uploader.helper.d.ts +12 -12
  250. package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +3 -3
  251. package/{error-template.d.ts → form-error.d.ts} +1 -1
  252. package/form-post-response.d.ts +17 -0
  253. package/gesdem/gesdem-event.service.d.ts +6 -6
  254. package/gesdem/gesdem-handler.service.d.ts +3 -3
  255. package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +2 -2
  256. package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +2 -2
  257. package/gesdem-confirmation/gesdem-confirmation.component.d.ts +4 -4
  258. package/index.d.ts +2 -2
  259. package/package.json +26 -13
  260. package/schematics/ng-add/index.js +6 -6
  261. package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
  262. package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
  263. package/schematics/ng-update/migrations/update-13_5_1/index.js +2 -2
  264. package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
  265. package/schematics/update-karma-config/index.js +2 -2
  266. package/schematics/utility/migrate-to-karma-coverage.js +3 -3
  267. package/sdk-appinfo/application-info.service.d.ts +2 -2
  268. package/sdk-epayment/sdk-epayment.component.d.ts +3 -13
  269. package/sdk-epayment/sdk-epayment.service.d.ts +2 -5
  270. package/sdk-recaptcha/recaptcha.service.d.ts +2 -2
  271. package/sdk-recaptcha/sdk-recaptcha.component.d.ts +2 -2
  272. package/sdk-session-info/session-info-data.d.ts +0 -1
  273. package/sdk-session-info/session-info.service.d.ts +9 -2
  274. package/validation/validation-handler.service.d.ts +4 -4
  275. package/backend-response.d.ts +0 -18
  276. package/bundles/dsivd-prestations-ng.umd.js +0 -13472
  277. package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
  278. package/dsivd-prestations-ng-v14.5.20.tgz +0 -0
  279. package/esm2015/abstract-page-component.js +0 -224
  280. package/esm2015/backend-response.js +0 -10
  281. package/esm2015/error-template.js +0 -2
  282. package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
  283. package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
  284. package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
  285. package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
  286. package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
  287. package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
  288. package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
  289. package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
  290. package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
  291. package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
  292. package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
  293. package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
  294. package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
  295. package/esm2015/foehn-header/foehn-header.component.js +0 -73
  296. package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
  297. package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
  298. package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
  299. package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
  300. package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
  301. package/esm2015/foehn-list/foehn-list.component.js +0 -134
  302. package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
  303. package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
  304. package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
  305. package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
  306. package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
  307. package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
  308. package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
  309. package/esm2015/foehn-page/foehn-page.component.js +0 -217
  310. package/esm2015/foehn-status-progress-bar/foehn-status-progress-bar.component.js +0 -42
  311. package/esm2015/foehn-table/foehn-table.component.js +0 -151
  312. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -171
  313. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -220
  314. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -167
  315. package/esm2015/foehn-upload/uploader.helper.js +0 -322
  316. package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
  317. package/esm2015/gesdem/gesdem-event.service.js +0 -38
  318. package/esm2015/gesdem/gesdem-handler.service.js +0 -151
  319. package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
  320. package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
  321. package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
  322. package/esm2015/sdk-appinfo/application-info.service.js +0 -111
  323. package/esm2015/sdk-date/date.helper.js +0 -90
  324. package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
  325. package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
  326. package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
  327. package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
  328. package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
  329. package/esm2015/sdk-session-info/session-info.service.js +0 -44
  330. package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
  331. package/esm2015/supported-browser.js +0 -2
  332. package/esm2015/validation/validation-handler.service.js +0 -44
  333. package/fesm2015/dsivd-prestations-ng.js.map +0 -1
  334. package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
package/CHANGELOG.md CHANGED
@@ -25,15 +25,40 @@ A change is considered **breaking** if you have to change your code or update yo
25
25
  - adding a new constructor argument in one of our service is OK, if you just have to update your constructor's signature and your call to `super(...)`
26
26
 
27
27
  ---
28
- ## [14.5.20]
29
- - [foehn-status-progress-bar.module.ts](projects/prestations-ng/src/foehn-status-progress-bar/foehn-status-progress-bar.module.ts)
30
- - Add foehn-status-progress-bar component. Component used in foehn-page and can be hidden with `statusProgressBarHidden` input
31
28
 
32
- ## [14.5.19]
29
+ ## [15.0.0]
30
+
33
31
  ### Added
34
- - [foehn-confirm-modal.component.html](projects/prestations-ng/src/foehn-confirm-modal/foehn-confirm-modal.component.html)
35
- - Add closeable on FoehnConfirmModalContent. Default value is true. If false, modal has to be closed by the yes and no buttons.
36
32
 
33
+ - [UPGRADING_V15](UPGRADING_V15.md)
34
+ - Added migration guide
35
+ - [foehn-confirm-modal.component.html](projects/prestations-ng/src/foehn-confirm-modal/foehn-confirm-modal.component.html)
36
+ - Add closeable on FoehnConfirmModalContent. Default value is true. If false, modal has to be closed by the yes and no buttons.
37
+
38
+ ### Updated
39
+
40
+ - [package.json](package.json)
41
+ - Updated angular stack to ^13.1.0
42
+ - Updated @fortawesome/angular-fontawesome to ^0.10.0
43
+ - Updated rxjs to ~7.5.2
44
+ - Updated ngx-image-cropper to ~6.0.0
45
+
46
+ - [sdk-epayment.component.ts](projects/prestations-ng/src/sdk-epayment/sdk-epayment.component.ts)
47
+ - [sdk-epayment.component.html](projects/prestations-ng/src/sdk-epayment/sdk-epayment.component.html)
48
+ - [sdk-epayment.service.ts](projects/prestations-ng/src/sdk-epayment/sdk-epayment.service.ts)
49
+ - Adaptations to use new e-payment method "Postfinance Checkout"
50
+
51
+ - [backend-reponse.ts](projects/prestations-ng/src/backend-response.ts)
52
+ - renamed to `FormPostResponse` to match prestations-be
53
+ - renamed `GesdemMeta` to `FormMetadata` to match prestations-be
54
+
55
+ - [error-template.ts](projects/prestations-ng/src/error-template.ts)
56
+ - renamed to `FormError` to match prestations-be
57
+
58
+ ### Removed
59
+ - [session-info-data.ts](projects/prestations-ng/src/sdk-session-info/session-info-data.ts)
60
+ - removed field `email` since this is the security e-mail that should not be used by prestations (`preferences.email` is the one that is allowed)]
61
+
37
62
  ## [14.5.18]
38
63
  ### Fixed
39
64
 
@@ -50,6 +75,8 @@ A change is considered **breaking** if you have to change your code or update yo
50
75
  - removed `setRefreshIntervalInSeconds(refreshIntervalsInSeconds: number)`, support alerts are now refreshed on every NavigationStart event from the Angular Router, but at most every 3 minutes.
51
76
  - [foehn-page.component.html](projects/prestations-ng/src/foehn-page/foehn-page.component.html)
52
77
  - added `@Input() supportAlertRefreshIntervalsInSeconds: number`, support alerts are now refreshed on every NavigationStart event from the Angular Router, but at most every 3 minutes.
78
+ - [foehn-status-progress-bar.module.ts](projects/prestations-ng/src/foehn-status-progress-bar/foehn-status-progress-bar.module.ts)
79
+ - Add foehn-status-progress-bar component. Component used in foehn-page and can be hidden with `statusProgressBarHidden` input
53
80
 
54
81
  ## [14.5.16]
55
82
 
package/CONTRIBUTING.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Prerequisite
4
4
 
5
- - Node 10.20+
5
+ - Node 14.18+
6
6
  - yarn 1.22+
7
7
  - Chrome or Chromium
8
8
  - G++
package/README.md CHANGED
@@ -8,6 +8,7 @@ The generated documentation of our entire library is available online at [https:
8
8
 
9
9
  The documentation is available online at [https://dsi-vd.github.io/prestations-ng/](https://dsi-vd.github.io/prestations-ng/)
10
10
 
11
+ - If you're using **Angular 13**, use `@dsivd/prestations-ng` at version `^15`.
11
12
  - If you're using **Angular 12**, use `@dsivd/prestations-ng` at version `^14.5.0`.
12
13
  - If you're using **Angular 11**, use `@dsivd/prestations-ng` at version `^13` until `14.4.1`.
13
14
  - If you're using **Angular 9**, use `@dsivd/prestations-ng` at version `^11`.
@@ -17,6 +18,7 @@ The documentation is available online at [https://dsi-vd.github.io/prestations-n
17
18
 
18
19
  Migration guides are available to provide an upgrade path from one major version to another.
19
20
 
21
+ - If you need to upgrade to version `15+`, please refer to [the V15 upgrade guide](UPGRADING_V15.md).
20
22
  - If you need to upgrade to version `14+`, please refer to [the V14 upgrade guide](UPGRADING_V14.md).
21
23
  - If you need to upgrade to version `13+`, please refer to [the V13 upgrade guide](UPGRADING_V13.md).
22
24
  - If you need to upgrade to version `12+`, please refer to [the V12 upgrade guide](UPGRADING_V12.md).
package/UPGRADING_V14.md CHANGED
@@ -13,20 +13,19 @@ at this address:
13
13
  ### When having migrated to ESLint
14
14
  ```bash
15
15
  yarn global add @angular/cli@12
16
+ ng update @angular/core@12 @angular/cli@12
16
17
  ng update @angular-eslint/builder@12
17
18
  ng update @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
18
- ng update eslint
19
19
  ng update eslint-plugin-import eslint-plugin-jasmine eslint-plugin-jsdoc eslint-plugin-prefer-arrow
20
20
  ng update eslint-plugin-rxjs@3
21
21
  ng update @typescript-eslint/eslint-plugin @typescript-eslint/parser
22
+ ng update eslint
22
23
  ng update rxjs@6
23
24
  ng update ng-http-loader@10
24
- ng update @dsivd/prestations-ng@14
25
- ng update \
26
- @types/jasmine \
27
- @types/node@15 \
28
- ts-node@10
25
+ ng update @types/jasmine @types/node@15 ts-node@10
29
26
  yarn add dayjs@1
27
+ yarn add ngx-image-cropper@5
28
+ ng update @dsivd/prestations-ng@14
30
29
  # Remove your resolutions in package.json before executing 'yarn upgrade'
31
30
  yarn upgrade
32
31
  ```
@@ -37,12 +36,10 @@ yarn global add @angular/cli@12
37
36
  ng update @angular/core@12 @angular/cli@12
38
37
  ng update rxjs@6
39
38
  ng update ng-http-loader@10
40
- ng update @dsivd/prestations-ng@14
41
- ng update \
42
- @types/jasmine \
43
- @types/node@15 \
44
- ts-node@10
39
+ ng update @types/jasmine @types/node@15 ts-node@10
45
40
  yarn add dayjs@1
41
+ yarn add ngx-image-cropper@5
42
+ ng update @dsivd/prestations-ng@14
46
43
  # Remove your resolutions in package.json before executing 'yarn upgrade'
47
44
  yarn upgrade
48
45
  ```
@@ -0,0 +1,51 @@
1
+ # Upgrading from v14 to v15
2
+
3
+ The main feature in `prestations-ng` v15 is the update of the `@angular/*` peer dependencies
4
+ to `^13.1.0`.
5
+
6
+ ## Updating Angular
7
+
8
+ `prestations-ng` v15+ now supports Angular 13. You can follow the Angular update guide
9
+ at this address:
10
+
11
+ - [https://update.angular.io/?l=3&v=12.0-13.0](https://update.angular.io/?l=3&v=12.0-13.0)
12
+
13
+ ### When having migrated to ESLint
14
+ ```bash
15
+ yarn global add @angular/cli@13
16
+ ng update @angular-eslint/builder@13
17
+ ng update @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
18
+ ng update @typescript-eslint/eslint-plugin @typescript-eslint/parser
19
+ ng update eslint-plugin-import eslint-plugin-jasmine eslint-plugin-jsdoc eslint-plugin-prefer-arrow
20
+ ng update eslint
21
+ ng update eslint-plugin-rxjs@4
22
+ ng update @angular/core@13 @angular/cli@13
23
+ ng update rxjs@7
24
+ ng update @dsivd/prestations-ng@15
25
+ ng update \
26
+ @types/jasmine \
27
+ @types/node@15 \
28
+ ts-node@10
29
+ ng update ngx-image-cropper@6
30
+ # Remove your resolutions in package.json before executing 'yarn upgrade'
31
+ yarn upgrade
32
+ ```
33
+
34
+ ### Otherwise
35
+ ```bash
36
+ yarn global add @angular/cli@13
37
+ ng update @angular/core@13 @angular/cli@13
38
+ ng update rxjs@7
39
+ ng update @dsivd/prestations-ng@15
40
+ ng update \
41
+ @types/jasmine \
42
+ @types/node@15 \
43
+ ts-node@10
44
+ ng update ngx-image-cropper@6
45
+ # Remove your resolutions in package.json before executing 'yarn upgrade'
46
+ yarn upgrade
47
+ ```
48
+
49
+ ## Migrating to ESLint
50
+
51
+ - Follow [our migration guide](ESLINT_MIGRATION_GUIDE.md) to migrate your project from TSLint to ESLint
@@ -0,0 +1,226 @@
1
+ import { Directive, ViewChild } from '@angular/core';
2
+ import { GesdemHandlerService } from './gesdem/gesdem-handler.service';
3
+ import { FoehnNavigationService } from './foehn-navigation/foehn-navigation.service';
4
+ import { FoehnFormComponent } from './foehn-form/foehn-form.component';
5
+ import { of } from 'rxjs';
6
+ import { ServiceLocator } from './service-locator';
7
+ import { ActivatedRoute } from '@angular/router';
8
+ import { GrowlBrokerService } from './foehn-growl/growl-broker.service';
9
+ import { ValidationHandlerService } from './validation/validation-handler.service';
10
+ import { GesdemEventService } from './gesdem/gesdem-event.service';
11
+ import { BreadcrumbEventService } from './foehn-breadcrumb/breadcrumb-event.service';
12
+ import { FoehnPageService } from './foehn-page/foehn-page.service';
13
+ import { first, mergeMap, share, throttleTime } from 'rxjs/operators';
14
+ import { ActionStatut, GesdemStatutUtils } from './gesdem/gesdem-statut-utils';
15
+ import { PendingUploadService } from './foehn-upload/foehn-multi-upload/pending-upload.service';
16
+ import { SdkDictionaryService } from './sdk-dictionary/sdk-dictionary.service';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/router";
19
+ /**
20
+ * Ensures that a call is only subscribed and send one at the time.
21
+ *
22
+ * @param fn function to be called as concurrent safe
23
+ * @returns Observable
24
+ */
25
+ // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
26
+ function getConcurrentSafeCall(fn) {
27
+ return of(true).pipe(
28
+ // To guard from double-click
29
+ throttleTime(200),
30
+ // flatmap(fn, 1) ensures that only one query is ran at the same time
31
+ mergeMap(fn, 1),
32
+ // As this observable is used as a Promise (with subscribe), this ensures that
33
+ // the operators above can be shared between each subscribe.
34
+ share());
35
+ }
36
+ export class AbstractPageComponent {
37
+ constructor(activatedRoute) {
38
+ this.activatedRoute = activatedRoute;
39
+ this._gesdemService = ServiceLocator.injector.get(GesdemHandlerService);
40
+ this._gesdemEventService = ServiceLocator.injector.get(GesdemEventService);
41
+ this._navigation = ServiceLocator.injector.get(FoehnNavigationService);
42
+ this._activatedRoute = ServiceLocator.injector.get(ActivatedRoute);
43
+ this._growlService = ServiceLocator.injector.get(GrowlBrokerService);
44
+ this._validationHandlerService = ServiceLocator.injector.get(ValidationHandlerService);
45
+ this._pendingUploadService = ServiceLocator.injector.get(PendingUploadService);
46
+ this._breadcrumbEventService = ServiceLocator.injector.get(BreadcrumbEventService);
47
+ this._foehnPageService = ServiceLocator.injector.get(FoehnPageService);
48
+ this._dictionaryService = ServiceLocator.injector.get(SdkDictionaryService);
49
+ this._currentLangSubscription = this._dictionaryService
50
+ .getCurrentLanguageCode()
51
+ .subscribe(languageCode => {
52
+ if (this.form) {
53
+ this.form.language = languageCode;
54
+ }
55
+ });
56
+ const route = FoehnNavigationService.getRootRouteRecursive(activatedRoute.snapshot);
57
+ this._navigation.initRoute(route);
58
+ this._formInitSubscription = this._gesdemEventService
59
+ .formInitializationObservable()
60
+ .subscribe(() => {
61
+ this.reference =
62
+ this._gesdemService.lastResponse &&
63
+ this._gesdemService.lastResponse.meta.reference;
64
+ const statut = this._gesdemService.lastResponse &&
65
+ this._gesdemService.lastResponse.meta.statut;
66
+ const shouldPreventNavigationToLast = activatedRoute.snapshot.data
67
+ .preventNavigationToLastOnTransferred === true;
68
+ const languageCode = this._gesdemService.lastResponse &&
69
+ this._gesdemService.lastResponse.form &&
70
+ this._gesdemService.lastResponse.form.language;
71
+ this._dictionaryService.changeLanguage(languageCode);
72
+ if (!shouldPreventNavigationToLast &&
73
+ this.reference &&
74
+ GesdemStatutUtils.isFinal(ActionStatut[statut])) {
75
+ this._navigation.last();
76
+ }
77
+ });
78
+ // Protects the save method on the GesdemService from concurrent access.
79
+ this.sendForFormConcurrentSafe = getConcurrentSafeCall(() => this._gesdemService.save(this.form));
80
+ // Protects the transmit method on the GesdemService from concurrent access.
81
+ this.transmitConcurrentSafe = getConcurrentSafeCall(() => this._gesdemService.transmit());
82
+ }
83
+ ngOnInit() {
84
+ this.gotToTop();
85
+ this.form = this.newForm();
86
+ this._validationHandlerService.shouldDisplayErrors(false);
87
+ this.updateFormDataSubjectSubscription = this._gesdemService.updateFormDataSubject.subscribe(form => {
88
+ this.form = form;
89
+ this._gesdemEventService.formInitializationSubject.next(form);
90
+ });
91
+ this.attachmentsMultiUploadedSubscription = this._pendingUploadService.attachmentsUploaded.subscribe(form => {
92
+ this.form = form;
93
+ // PRESTAKIT-309: set back shouldDisplayErrors to true once files have been uploaded
94
+ this._validationHandlerService.shouldDisplayErrors(true);
95
+ this.onFormSent(true);
96
+ });
97
+ this.saveFormRequestSubscription = this._foehnPageService
98
+ .saveFormRequest()
99
+ .subscribe(() => this.send(false));
100
+ }
101
+ ngAfterViewInit() {
102
+ // @see https://github.com/angular/angular/issues/17572#issuecomment-323465737
103
+ Promise.resolve(null).then(() => {
104
+ this._gesdemService.require().subscribe();
105
+ });
106
+ }
107
+ ngOnDestroy() {
108
+ if (this._currentLangSubscription) {
109
+ this._currentLangSubscription.unsubscribe();
110
+ }
111
+ if (this.pageTitleSubscription) {
112
+ this.pageTitleSubscription.unsubscribe();
113
+ }
114
+ if (this.updateFormDataSubjectSubscription) {
115
+ this.updateFormDataSubjectSubscription.unsubscribe();
116
+ }
117
+ if (this.attachmentsSingleUploadedSubscription) {
118
+ this.attachmentsSingleUploadedSubscription.unsubscribe();
119
+ }
120
+ if (this.attachmentsMultiUploadedSubscription) {
121
+ this.attachmentsMultiUploadedSubscription.unsubscribe();
122
+ }
123
+ if (this._formInitSubscription) {
124
+ this._formInitSubscription.unsubscribe();
125
+ }
126
+ if (this.saveFormRequestSubscription) {
127
+ this.saveFormRequestSubscription.unsubscribe();
128
+ }
129
+ }
130
+ send(goToNextPage = true) {
131
+ if (this._pendingUploadService.hasPendingFiles()) {
132
+ goToNextPage = false;
133
+ // PRESTAKIT-309: shouldDisplayErrors will be set back to true in 'attachmentsUploaded' subscription
134
+ }
135
+ else {
136
+ this._validationHandlerService.shouldDisplayErrors(true);
137
+ }
138
+ this.sendForFormConcurrentSafe
139
+ .pipe(first())
140
+ .subscribe(() => this.onFormSent(goToNextPage));
141
+ }
142
+ transmit() {
143
+ this._validationHandlerService.shouldDisplayErrors(true);
144
+ this.transmitConcurrentSafe.pipe(first()).subscribe(() => {
145
+ if (!this._gesdemService.lastResponse.errors.length) {
146
+ this._gesdemEventService.formTransmittedSubject.next(this._gesdemService.lastResponse);
147
+ this._navigation.next();
148
+ }
149
+ }, console.error);
150
+ }
151
+ sendAndTransmit() {
152
+ const sentSubscription = this._gesdemEventService
153
+ .formSentObservable()
154
+ .subscribe(response => {
155
+ if (!response.errors.length && !response.meta.critical) {
156
+ if (!this.checkHasPendingsFilesBeforeTransmit()) {
157
+ this.transmit();
158
+ }
159
+ }
160
+ sentSubscription.unsubscribe();
161
+ }, () => sentSubscription.unsubscribe());
162
+ this.send(false);
163
+ }
164
+ previous() {
165
+ this._navigation.previous();
166
+ }
167
+ setPageTitle(pageTitle) {
168
+ this._foehnPageService.setPageTitle(pageTitle);
169
+ this._breadcrumbEventService.setCurrentBreadcrumb({
170
+ url: null,
171
+ routerLink: null,
172
+ label: pageTitle
173
+ });
174
+ }
175
+ setPageTitleAsync(pageTitle) {
176
+ if (this.pageTitleSubscription) {
177
+ this.pageTitleSubscription.unsubscribe();
178
+ }
179
+ this.pageTitleSubscription = pageTitle.subscribe(title => this.setPageTitle(title));
180
+ }
181
+ onFormSent(goToNextPage) {
182
+ if (this.foehnFormComponent) {
183
+ // Some pages don't have a form.
184
+ this.foehnFormComponent.reset();
185
+ }
186
+ this._navigation.current().then(() => {
187
+ const isValid =
188
+ // Some pages don't have a form.
189
+ this.foehnFormComponent &&
190
+ this.foehnFormComponent.isValid() &&
191
+ !this._gesdemService.lastResponse.meta.critical;
192
+ if (isValid) {
193
+ this._validationHandlerService.shouldDisplayErrors(false);
194
+ }
195
+ this._gesdemEventService.formSentSubject.next(this._gesdemService.lastResponse);
196
+ if (isValid && goToNextPage) {
197
+ this._navigation.next();
198
+ }
199
+ else if (!isValid && this.foehnFormComponent) {
200
+ this.foehnFormComponent.focusErrorSummary();
201
+ }
202
+ }, console.error);
203
+ }
204
+ checkHasPendingsFilesBeforeTransmit() {
205
+ if (this._pendingUploadService.hasPendingFiles()) {
206
+ const multiUploadAttachmentSubscription = this._pendingUploadService.attachmentsUploaded.subscribe(() => {
207
+ multiUploadAttachmentSubscription.unsubscribe();
208
+ this.transmit();
209
+ });
210
+ return true;
211
+ }
212
+ return false;
213
+ }
214
+ gotToTop() {
215
+ window.scrollTo(0, 0);
216
+ }
217
+ }
218
+ AbstractPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AbstractPageComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Directive });
219
+ AbstractPageComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: AbstractPageComponent, viewQueries: [{ propertyName: "foehnFormComponent", first: true, predicate: FoehnFormComponent, descendants: true, static: true }], ngImport: i0 });
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: AbstractPageComponent, decorators: [{
221
+ type: Directive
222
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }]; }, propDecorators: { foehnFormComponent: [{
223
+ type: ViewChild,
224
+ args: [FoehnFormComponent, { static: true }]
225
+ }] } });
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGFnZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvYWJzdHJhY3QtcGFnZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFHVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxvQkFBb0Is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WUFDOUMsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUM5RixHQUFHLEVBQUU7Z0JBQ0QsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQ0osQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7O2tIQXhSaUIscUJBQXFCO3NHQUFyQixxQkFBcUIsOEVBRTVCLGtCQUFrQjsyRkFGWCxxQkFBcUI7a0JBRDFDLFNBQVM7cUdBSU4sa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi9zZXJ2aWNlLWxvY2F0b3InO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1ncm93bC9ncm93bC1icm9rZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkV2ZW50U2VydmljZSB9IGZyb20gJy4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlyc3QsIG1lcmdlTWFwLCBzaGFyZSwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHV0LCBHZXNkZW1TdGF0dXRVdGlscyB9IGZyb20gJy4vZ2VzZGVtL2dlc2RlbS1zdGF0dXQtdXRpbHMnO1xuaW1wb3J0IHsgUGVuZGluZ1VwbG9hZFNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQvcGVuZGluZy11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuRm9ybSB9IGZyb20gJy4vaTE4bi1mb3JtJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSBjYWxsIGlzIG9ubHkgc3Vic2NyaWJlZCBhbmQgc2VuZCBvbmUgYXQgdGhlIHRpbWUuXG4gKlxuICogQHBhcmFtIGZuIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhcyBjb25jdXJyZW50IHNhZmVcbiAqIEByZXR1cm5zIE9ic2VydmFibGVcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zXG5mdW5jdGlvbiBnZXRDb25jdXJyZW50U2FmZUNhbGw8VD4oZm46ICgpID0+IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShcbiAgICAgICAgLy8gVG8gZ3VhcmQgZnJvbSBkb3VibGUtY2xpY2tcbiAgICAgICAgdGhyb3R0bGVUaW1lKDIwMCksXG4gICAgICAgIC8vIGZsYXRtYXAoZm4sIDEpIGVuc3VyZXMgdGhhdCBvbmx5IG9uZSBxdWVyeSBpcyByYW4gYXQgdGhlIHNhbWUgdGltZVxuICAgICAgICBtZXJnZU1hcChmbiwgMSksXG4gICAgICAgIC8vIEFzIHRoaXMgb2JzZXJ2YWJsZSBpcyB1c2VkIGFzIGEgUHJvbWlzZSAod2l0aCBzdWJzY3JpYmUpLCB0aGlzIGVuc3VyZXMgdGhhdFxuICAgICAgICAvLyB0aGUgb3BlcmF0b3JzIGFib3ZlIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBlYWNoIHN1YnNjcmliZS5cbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UGFnZUNvbXBvbmVudDxUIGV4dGVuZHMgSTE4bkZvcm0+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChGb2VobkZvcm1Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgZm9laG5Gb3JtQ29tcG9uZW50OiBGb2VobkZvcm1Db21wb25lbnQ7XG5cbiAgICBmb3JtOiBUO1xuICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtRGF0YVN1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgYXR0YWNobWVudHNTaW5nbGVVcGxvYWRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBhdHRhY2htZW50c011bHRpVXBsb2FkZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgc2F2ZUZvcm1SZXF1ZXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIF9nZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2dlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvbjogRm9laG5OYXZpZ2F0aW9uU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBwcm90ZWN0ZWQgX2dyb3dsU2VydmljZTogR3Jvd2xCcm9rZXJTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9icmVhZGNydW1iRXZlbnRTZXJ2aWNlOiBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2RpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZTtcblxuICAgIHByaXZhdGUgX3BlbmRpbmdVcGxvYWRTZXJ2aWNlOiBQZW5kaW5nVXBsb2FkU2VydmljZTtcbiAgICBwcml2YXRlIF9mb3JtSW5pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX2N1cnJlbnRMYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHNlbmRGb3JGb3JtQ29uY3VycmVudFNhZmU6IE9ic2VydmFibGU8YW55PjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgdHJhbnNtaXRDb25jdXJyZW50U2FmZTogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEdlc2RlbUhhbmRsZXJTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgR2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoRm9laG5OYXZpZ2F0aW9uU2VydmljZSk7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICAgICAgdGhpcy5fZ3Jvd2xTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEdyb3dsQnJva2VyU2VydmljZSk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9wZW5kaW5nVXBsb2FkU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFBlbmRpbmdVcGxvYWRTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJFdmVudFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2ZvZWhuUGFnZVNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoRm9laG5QYWdlU2VydmljZSk7XG5cbiAgICAgICAgdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nU3Vic2NyaXB0aW9uID0gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUobGFuZ3VhZ2VDb2RlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5sYW5ndWFnZSA9IGxhbmd1YWdlQ29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByb3V0ZSA9IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UuZ2V0Um9vdFJvdXRlUmVjdXJzaXZlKFxuICAgICAgICAgICAgYWN0aXZhdGVkUm91dGUuc25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5pbml0Um91dGUocm91dGUpO1xuICAgICAgICB0aGlzLl9mb3JtSW5pdFN1YnNjcmlwdGlvbiA9IHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnN0YXR1dDtcbiAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRQcmV2ZW50TmF2aWdhdGlvblRvTGFzdCA9XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmV2ZW50TmF2aWdhdGlvblRvTGFzdE9uVHJhbnNmZXJyZWQgPT09IHRydWU7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5mb3JtICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLmZvcm0ubGFuZ3VhZ2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZUNvZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAhc2hvdWxkUHJldmVudE5hdmlnYXRpb25Ub0xhc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgJiZcbiAgICAgICAgICAgICAgICAgICAgR2VzZGVtU3RhdHV0VXRpbHMuaXNGaW5hbChcbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1dFtzdGF0dXQgYXMgQWN0aW9uU3RhdHV0XVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb24ubGFzdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFByb3RlY3RzIHRoZSBzYXZlIG1ldGhvZCBvbiB0aGUgR2VzZGVtU2VydmljZSBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzLlxuICAgICAgICB0aGlzLnNlbmRGb3JGb3JtQ29uY3VycmVudFNhZmUgPSBnZXRDb25jdXJyZW50U2FmZUNhbGwoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2Uuc2F2ZSh0aGlzLmZvcm0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUHJvdGVjdHMgdGhlIHRyYW5zbWl0IG1ldGhvZCBvbiB0aGUgR2VzZGVtU2VydmljZSBmcm9tIGNvbmN1cnJlbnQgYWNjZXNzLlxuICAgICAgICB0aGlzLnRyYW5zbWl0Q29uY3VycmVudFNhZmUgPSBnZXRDb25jdXJyZW50U2FmZUNhbGwoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbVNlcnZpY2UudHJhbnNtaXQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdvdFRvVG9wKCk7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMubmV3Rm9ybSgpO1xuXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKGZhbHNlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1EYXRhU3ViamVjdFN1YnNjcmlwdGlvbiA9IHRoaXMuX2dlc2RlbVNlcnZpY2UudXBkYXRlRm9ybURhdGFTdWJqZWN0LnN1YnNjcmliZShcbiAgICAgICAgICAgIGZvcm0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgICAgICAgICAgdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvblN1YmplY3QubmV4dChmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzTXVsdGlVcGxvYWRlZFN1YnNjcmlwdGlvbiA9IHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlLmF0dGFjaG1lbnRzVXBsb2FkZWQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgZm9ybSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICAgICAgICAgICAgICAvLyBQUkVTVEFLSVQtMzA5OiBzZXQgYmFjayBzaG91bGREaXNwbGF5RXJyb3JzIHRvIHRydWUgb25jZSBmaWxlcyBoYXZlIGJlZW4gdXBsb2FkZWRcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9ycyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybVNlbnQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zYXZlRm9ybVJlcXVlc3RTdWJzY3JpcHRpb24gPSB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlXG4gICAgICAgICAgICAuc2F2ZUZvcm1SZXF1ZXN0KClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZW5kKGZhbHNlKSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE3NTcyI2lzc3VlY29tbWVudC0zMjM0NjU3MzdcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZ2VzZGVtU2VydmljZS5yZXF1aXJlKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudExhbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51cGRhdGVGb3JtRGF0YVN1YmplY3RTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRm9ybURhdGFTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hdHRhY2htZW50c1NpbmdsZVVwbG9hZGVkU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzU2luZ2xlVXBsb2FkZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzTXVsdGlVcGxvYWRlZFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hdHRhY2htZW50c011bHRpVXBsb2FkZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9mb3JtSW5pdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZm9ybUluaXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNhdmVGb3JtUmVxdWVzdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zYXZlRm9ybVJlcXVlc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbmQoZ29Ub05leHRQYWdlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1VwbG9hZFNlcnZpY2UuaGFzUGVuZGluZ0ZpbGVzKCkpIHtcbiAgICAgICAgICAgIGdvVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gUFJFU1RBS0lULTMwOTogc2hvdWxkRGlzcGxheUVycm9ycyB3aWxsIGJlIHNldCBiYWNrIHRvIHRydWUgaW4gJ2F0dGFjaG1lbnRzVXBsb2FkZWQnIHN1YnNjcmlwdGlvblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnNob3VsZERpc3BsYXlFcnJvcnModHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZW5kRm9yRm9ybUNvbmN1cnJlbnRTYWZlXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9ybVNlbnQoZ29Ub05leHRQYWdlKSk7XG4gICAgfVxuXG4gICAgdHJhbnNtaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRpb25IYW5kbGVyU2VydmljZS5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICB0aGlzLnRyYW5zbWl0Q29uY3VycmVudFNhZmUucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1UcmFuc21pdHRlZFN1YmplY3QubmV4dChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2VcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb24ubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjb25zb2xlLmVycm9yKTtcbiAgICB9XG5cbiAgICBzZW5kQW5kVHJhbnNtaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1TZW50T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5lcnJvcnMubGVuZ3RoICYmICFyZXNwb25zZS5tZXRhLmNyaXRpY2FsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tIYXNQZW5kaW5nc0ZpbGVzQmVmb3JlVHJhbnNtaXQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiBzZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZW5kKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5wcmV2aW91cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRQYWdlVGl0bGUocGFnZVRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZS5zZXRQYWdlVGl0bGUocGFnZVRpdGxlKTtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICB1cmw6IG51bGwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0UGFnZVRpdGxlQXN5bmMocGFnZVRpdGxlOiBPYnNlcnZhYmxlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uID0gcGFnZVRpdGxlLnN1YnNjcmliZSh0aXRsZSA9PlxuICAgICAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9ybVNlbnQoZ29Ub05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvZWhuRm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgICAgLy8gU29tZSBwYWdlcyBkb24ndCBoYXZlIGEgZm9ybS5cbiAgICAgICAgICAgIHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50LnJlc2V0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmN1cnJlbnQoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPVxuICAgICAgICAgICAgICAgIC8vIFNvbWUgcGFnZXMgZG9uJ3QgaGF2ZSBhIGZvcm0uXG4gICAgICAgICAgICAgICAgdGhpcy5mb2VobkZvcm1Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvZWhuRm9ybUNvbXBvbmVudC5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5fZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UubWV0YS5jcml0aWNhbDtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZGF0aW9uSGFuZGxlclNlcnZpY2Uuc2hvdWxkRGlzcGxheUVycm9ycyhmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2dlc2RlbUV2ZW50U2VydmljZS5mb3JtU2VudFN1YmplY3QubmV4dChcbiAgICAgICAgICAgICAgICB0aGlzLl9nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQgJiYgZ29Ub05leHRQYWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5uZXh0KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkICYmIHRoaXMuZm9laG5Gb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2VobkZvcm1Db21wb25lbnQuZm9jdXNFcnJvclN1bW1hcnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgY29uc29sZS5lcnJvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0hhc1BlbmRpbmdzRmlsZXNCZWZvcmVUcmFuc21pdCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdVcGxvYWRTZXJ2aWNlLmhhc1BlbmRpbmdGaWxlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBtdWx0aVVwbG9hZEF0dGFjaG1lbnRTdWJzY3JpcHRpb24gPSB0aGlzLl9wZW5kaW5nVXBsb2FkU2VydmljZS5hdHRhY2htZW50c1VwbG9hZGVkLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpVXBsb2FkQXR0YWNobWVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbWl0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvdFRvVG9wKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgbmV3Rm9ybSgpOiBUO1xufVxuIl19
@@ -98,9 +98,9 @@ export class NumberCurrencyFormatterDirective {
98
98
  this.host.model.toString() !== newValueWithoutFormatting);
99
99
  }
100
100
  }
101
- NumberCurrencyFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NumberCurrencyFormatterDirective, deps: [{ token: i1.FoehnInputNumberComponent }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
102
- NumberCurrencyFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.4", type: NumberCurrencyFormatterDirective, selector: "[numberCurrencyFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)", "focus": "onFocus($event.target.value)", "modelChange": "onModelChange($event)" } }, ngImport: i0 });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NumberCurrencyFormatterDirective, decorators: [{
101
+ NumberCurrencyFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NumberCurrencyFormatterDirective, deps: [{ token: i1.FoehnInputNumberComponent }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
102
+ NumberCurrencyFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: NumberCurrencyFormatterDirective, selector: "[numberCurrencyFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)", "focus": "onFocus($event.target.value)", "modelChange": "onModelChange($event)" } }, ngImport: i0 });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NumberCurrencyFormatterDirective, decorators: [{
104
104
  type: Directive,
105
105
  args: [{ selector: '[numberCurrencyFormatter]' }]
106
106
  }], ctorParameters: function () { return [{ type: i1.FoehnInputNumberComponent }, { type: i0.NgZone }]; }, propDecorators: { onBlur: [{
@@ -7,16 +7,16 @@ import { IbanFormatterDirective } from './iban-formatter.directive';
7
7
  import * as i0 from "@angular/core";
8
8
  export class FormatterModule {
9
9
  }
10
- FormatterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- FormatterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FormatterModule, declarations: [NDCFormatterDirective,
10
+ FormatterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ FormatterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatterModule, declarations: [NDCFormatterDirective,
12
12
  NumberCurrencyFormatterDirective,
13
13
  IdeFormatterDirective,
14
14
  IbanFormatterDirective], imports: [FoehnInputModule], exports: [NDCFormatterDirective,
15
15
  NumberCurrencyFormatterDirective,
16
16
  IdeFormatterDirective,
17
17
  IbanFormatterDirective] });
18
- FormatterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FormatterModule, imports: [[FoehnInputModule]] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FormatterModule, decorators: [{
18
+ FormatterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatterModule, imports: [[FoehnInputModule]] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatterModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  imports: [FoehnInputModule],
@@ -17,9 +17,9 @@ export class IbanFormatterDirective {
17
17
  return iban.printFormat(value, ' ');
18
18
  }
19
19
  }
20
- IbanFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: IbanFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
21
- IbanFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.4", type: IbanFormatterDirective, selector: "[ibanFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: IbanFormatterDirective, decorators: [{
20
+ IbanFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: IbanFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
21
+ IbanFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: IbanFormatterDirective, selector: "[ibanFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: IbanFormatterDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{ selector: '[ibanFormatter]' }]
25
25
  }], ctorParameters: function () { return [{ type: i1.FoehnInputTextComponent }]; }, propDecorators: { onBlur: [{
@@ -26,9 +26,9 @@ export class IdeFormatterDirective {
26
26
  return trimmedValue.replace(new RegExp(IDE_PATTERN, 'g'), 'CHE-$1.$2.$3');
27
27
  }
28
28
  }
29
- IdeFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: IdeFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
30
- IdeFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.4", type: IdeFormatterDirective, selector: "[ideFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: IdeFormatterDirective, decorators: [{
29
+ IdeFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: IdeFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
30
+ IdeFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: IdeFormatterDirective, selector: "[ideFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: IdeFormatterDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{ selector: '[ideFormatter]' }]
34
34
  }], ctorParameters: function () { return [{ type: i1.FoehnInputTextComponent }]; }, propDecorators: { onBlur: [{
@@ -64,9 +64,9 @@ export class NDCFormatterDirective {
64
64
  return digits.replace(new RegExp(NO_CONTRIB_PATTERN_WITH_TWO_DOTS, 'g'), '$1.$2.$3');
65
65
  }
66
66
  }
67
- NDCFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NDCFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
68
- NDCFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.4", type: NDCFormatterDirective, selector: "[ndcFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NDCFormatterDirective, decorators: [{
67
+ NDCFormatterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NDCFormatterDirective, deps: [{ token: i1.FoehnInputTextComponent }], target: i0.ɵɵFactoryTarget.Directive });
68
+ NDCFormatterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: NDCFormatterDirective, selector: "[ndcFormatter]", host: { listeners: { "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: NDCFormatterDirective, decorators: [{
70
70
  type: Directive,
71
71
  args: [{ selector: '[ndcFormatter]' }]
72
72
  }], ctorParameters: function () { return [{ type: i1.FoehnInputTextComponent }]; }, propDecorators: { onBlur: [{
@@ -11,8 +11,8 @@ import { FoehnValidationAlertsModule } from '../foehn-validation-alerts/foehn-va
11
11
  import * as i0 from "@angular/core";
12
12
  export class FoehnAddressModule {
13
13
  }
14
- FoehnAddressModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- FoehnAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnAddressModule, declarations: [FoehnInputAddressComponent,
14
+ FoehnAddressModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnAddressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ FoehnAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnAddressModule, declarations: [FoehnInputAddressComponent,
16
16
  FoehnDisplayAddressComponent,
17
17
  FoehnInputForeignLocalityComponent,
18
18
  FoehnInputForeignStreetComponent], imports: [CommonModule,
@@ -23,14 +23,14 @@ FoehnAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
23
23
  FoehnDisplayAddressComponent,
24
24
  FoehnInputForeignLocalityComponent,
25
25
  FoehnInputForeignStreetComponent] });
26
- FoehnAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnAddressModule, imports: [[
26
+ FoehnAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnAddressModule, imports: [[
27
27
  CommonModule,
28
28
  SdkDictionaryModule,
29
29
  FoehnAutocompleteModule,
30
30
  FoehnInputModule,
31
31
  FoehnValidationAlertsModule
32
32
  ]] });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnAddressModule, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnAddressModule, decorators: [{
34
34
  type: NgModule,
35
35
  args: [{
36
36
  imports: [