@dsivd/prestations-ng 15.5.13 → 16.0.0-beta1

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 (590) hide show
  1. package/CHANGELOG.md +666 -1
  2. package/CONTRIBUTING.md +32 -1
  3. package/ESLINT_MIGRATION_GUIDE.md +1 -1
  4. package/README.md +6 -0
  5. package/UPGRADING_V12.md +0 -15
  6. package/UPGRADING_V13.md +0 -15
  7. package/UPGRADING_V14.md +8 -26
  8. package/UPGRADING_V15.md +113 -0
  9. package/UPGRADING_V16.md +63 -0
  10. package/abstract-page-component.d.ts +8 -8
  11. package/directives/currency-formatter.directive.d.ts +4 -1
  12. package/directives/iban-formatter.directive.d.ts +1 -1
  13. package/directives/ide-formatter.directive.d.ts +1 -1
  14. package/directives/ndc-formatter.directive.d.ts +1 -1
  15. package/dsivd-prestations-ng-v16.0.0-beta1.tgz +0 -0
  16. package/esm2020/abstract-page-component.mjs +223 -0
  17. package/esm2020/directives/currency-formatter.directive.mjs +143 -0
  18. package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +8 -8
  19. package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +4 -4
  20. package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +4 -4
  21. package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +4 -4
  22. package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
  23. package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +1 -1
  24. package/esm2020/foehn-address/foehn-address.module.mjs +55 -0
  25. package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
  26. package/esm2020/foehn-address/foehn-input-address.component.mjs +406 -0
  27. package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
  28. package/esm2020/foehn-address/foehn-input-foreign-street.component.mjs +55 -0
  29. package/esm2020/foehn-agenda/calendar.type.mjs +3 -0
  30. package/esm2020/foehn-agenda/current-week.type.mjs +4 -0
  31. package/esm2020/foehn-agenda/day-slots.type.mjs +3 -0
  32. package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +74 -0
  33. package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +242 -0
  34. package/esm2020/foehn-agenda/foehn-agenda.component.mjs +95 -0
  35. package/esm2020/foehn-agenda/foehn-agenda.module.mjs +62 -0
  36. package/esm2020/foehn-agenda/pagination-week.type.mjs +3 -0
  37. package/esm2020/foehn-agenda/selected-slot.type.mjs +3 -0
  38. package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +608 -0
  39. package/esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs +40 -0
  40. package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
  41. package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +40 -0
  42. package/esm2020/foehn-boolean/foehn-boolean.module.mjs +33 -0
  43. package/esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs +181 -0
  44. package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
  45. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs +80 -0
  46. package/esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs +19 -0
  47. package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +298 -0
  48. package/esm2020/foehn-checkables/foehn-checkables.module.mjs +68 -0
  49. package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +37 -0
  50. package/esm2020/foehn-checkables/foehn-radio.component.mjs +64 -0
  51. package/esm2020/foehn-checkables/foehn-select.component.mjs +53 -0
  52. package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
  53. package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
  54. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +1 -1
  55. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +40 -0
  56. package/esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs +19 -0
  57. package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +4 -4
  58. package/esm2020/foehn-date-picker/date-picker-navigation.helper.mjs +167 -0
  59. package/esm2020/foehn-date-picker/date-picker.helper.mjs +132 -0
  60. package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
  61. package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
  62. package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +387 -0
  63. package/esm2020/foehn-date-picker/foehn-date-picker.module.mjs +40 -0
  64. package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
  65. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +97 -0
  66. package/esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs +36 -0
  67. package/esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs +67 -0
  68. package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +7 -7
  69. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +37 -0
  70. package/esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs +32 -0
  71. package/esm2020/foehn-footer/foehn-footer.component.mjs +130 -0
  72. package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +6 -6
  73. package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
  74. package/esm2020/foehn-form/foehn-form.component.mjs +135 -0
  75. package/esm2020/foehn-form/foehn-form.module.mjs +32 -0
  76. package/esm2020/foehn-form/register-ng-model.service.mjs +23 -0
  77. package/esm2020/foehn-growl/foehn-growl.component.mjs +44 -0
  78. package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +6 -6
  79. package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +5 -5
  80. package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +1 -1
  81. package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
  82. package/esm2020/foehn-header/foehn-header.component.mjs +68 -0
  83. package/esm2020/foehn-header/foehn-header.module.mjs +21 -0
  84. package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
  85. package/esm2020/foehn-help-modal/foehn-help-modal.component.mjs +44 -0
  86. package/esm2020/foehn-help-modal/foehn-help-modal.module.mjs +20 -0
  87. package/esm2020/foehn-help-modal/foehn-help-modal.type.mjs +2 -0
  88. package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +5 -5
  89. package/esm2020/foehn-icons/foehn-icon-calendar.component.mjs +19 -0
  90. package/esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs +19 -0
  91. package/esm2020/foehn-icons/foehn-icon-check.component.mjs +19 -0
  92. package/esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs +19 -0
  93. package/esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs +19 -0
  94. package/esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs +19 -0
  95. package/esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs +19 -0
  96. package/esm2020/foehn-icons/foehn-icon-clock.component.mjs +19 -0
  97. package/esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs +19 -0
  98. package/esm2020/foehn-icons/foehn-icon-edit.component.mjs +19 -0
  99. package/esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs +19 -0
  100. package/esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs +19 -0
  101. package/esm2020/foehn-icons/foehn-icon-info-circle.component.mjs +19 -0
  102. package/esm2020/foehn-icons/foehn-icon-lock.component.mjs +19 -0
  103. package/esm2020/foehn-icons/foehn-icon-map-marker.component.mjs +19 -0
  104. package/esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs +19 -0
  105. package/esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs +19 -0
  106. package/esm2020/foehn-icons/foehn-icon-plus-square.component.mjs +19 -0
  107. package/esm2020/foehn-icons/foehn-icon-search.component.mjs +19 -0
  108. package/esm2020/foehn-icons/foehn-icon-times.component.mjs +19 -0
  109. package/esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs +19 -0
  110. package/esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs +19 -0
  111. package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +20 -20
  112. package/esm2020/foehn-input/foehn-input-email.component.mjs +59 -0
  113. package/esm2020/foehn-input/foehn-input-hidden.component.mjs +55 -0
  114. package/esm2020/foehn-input/foehn-input-number.component.mjs +276 -0
  115. package/esm2020/foehn-input/foehn-input-password.component.mjs +52 -0
  116. package/esm2020/foehn-input/foehn-input-phone.component.mjs +92 -0
  117. package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +5 -5
  118. package/esm2020/foehn-input/foehn-input-text.component.mjs +76 -0
  119. package/esm2020/foehn-input/foehn-input-textarea.component.mjs +109 -0
  120. package/esm2020/foehn-input/foehn-input.component.mjs +390 -0
  121. package/esm2020/foehn-input/foehn-input.module.mjs +93 -0
  122. package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
  123. package/esm2020/foehn-input-date/foehn-input-date.component.mjs +118 -0
  124. package/esm2020/foehn-input-date-time/foehn-input-date-time.component.mjs +143 -0
  125. package/esm2020/foehn-input-time/foehn-input-time.component.mjs +74 -0
  126. package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
  127. package/esm2020/foehn-list/foehn-list.module.mjs +19 -0
  128. package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
  129. package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
  130. package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +4 -4
  131. package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +4 -4
  132. package/esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs +23 -0
  133. 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
  134. 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
  135. package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
  136. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
  137. package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs +51 -0
  138. package/esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs +59 -0
  139. package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
  140. package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +5 -5
  141. package/esm2020/foehn-modal/foehn-modal.component.mjs +94 -0
  142. package/esm2020/foehn-modal/foehn-modal.module.mjs +21 -0
  143. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +268 -0
  144. package/esm2020/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.mjs +40 -0
  145. package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +114 -0
  146. package/esm2020/foehn-nav13/foehn-input-nav13.module.mjs +32 -0
  147. package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
  148. package/esm2020/foehn-navigation/foehn-navigation.module.mjs +32 -0
  149. package/esm2020/foehn-navigation/foehn-navigation.service.mjs +303 -0
  150. package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +7 -10
  151. package/esm2020/foehn-notfound/foehn-notfound.module.mjs +20 -0
  152. package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
  153. package/esm2020/foehn-page/foehn-page-modal.component.mjs +53 -0
  154. package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +4 -4
  155. package/esm2020/foehn-page/foehn-page.component.mjs +218 -0
  156. package/esm2020/foehn-page/foehn-page.module.mjs +78 -0
  157. package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
  158. package/esm2020/foehn-recap-section/foehn-recap-section.component.mjs +88 -0
  159. package/esm2020/foehn-recap-section/foehn-recap-section.module.mjs +20 -0
  160. package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
  161. 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
  162. package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +6 -6
  163. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +56 -0
  164. package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs +20 -0
  165. package/esm2020/foehn-table/foehn-table-column-configuration.mjs +3 -0
  166. package/esm2020/foehn-table/foehn-table-page-change-event.mjs +3 -0
  167. package/esm2020/foehn-table/foehn-table.component.mjs +148 -0
  168. package/esm2020/foehn-table/foehn-table.module.mjs +32 -0
  169. package/esm2020/foehn-table/tableSort.mjs +3 -0
  170. package/esm2020/foehn-upload/abstract-foehn-uploader.component.mjs +192 -0
  171. package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
  172. package/esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +71 -0
  173. 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
  174. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +174 -0
  175. package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs +40 -0
  176. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +224 -0
  177. package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs +40 -0
  178. package/esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +83 -0
  179. package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
  180. package/esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs +158 -0
  181. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +202 -0
  182. package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs +44 -0
  183. package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.mjs +75 -0
  184. package/esm2020/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.mjs +21 -0
  185. package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.service.mjs +62 -0
  186. package/esm2020/foehn-upload/foehn-upload-progress-bar/upload-progress.type.mjs +3 -0
  187. package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +1 -1
  188. package/esm2020/foehn-upload/uploader.helper.mjs +327 -0
  189. 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
  190. package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +6 -6
  191. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs +96 -0
  192. package/esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs +19 -0
  193. package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
  194. package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +6 -6
  195. package/esm2020/form-error.mjs +2 -0
  196. package/esm2020/form-post-response.mjs +10 -0
  197. package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +4 -4
  198. package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
  199. package/esm2020/gesdem/gesdem-handler.service.mjs +160 -0
  200. package/esm2020/gesdem/gesdem-loader.guard.mjs +41 -0
  201. package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
  202. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs +101 -0
  203. package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +130 -0
  204. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs +50 -0
  205. package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
  206. package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
  207. package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +201 -0
  208. package/esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs +32 -0
  209. package/esm2020/gesdem-error/gesdem-error.component.mjs +87 -0
  210. package/esm2020/gesdem-error/gesdem-error.module.mjs +36 -0
  211. package/esm2020/global.const.mjs +5 -0
  212. package/esm2020/helpers/object.helper.mjs +89 -0
  213. package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
  214. package/esm2020/index.mjs +263 -0
  215. package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +4 -4
  216. package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +4 -4
  217. package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
  218. package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +7 -7
  219. package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +7 -7
  220. package/esm2020/refinf/model/address-type-light.mjs +3 -0
  221. package/esm2020/refinf/model/canton.mjs +3 -0
  222. package/esm2020/refinf/model/district.mjs +3 -0
  223. package/esm2020/refinf/model/municipality.mjs +3 -0
  224. package/esm2020/refinf/model/place-of-origin.mjs +3 -0
  225. package/esm2020/refinf/model/postal-locality.mjs +3 -0
  226. package/esm2020/sdk-appinfo/application-info.mjs +14 -0
  227. package/esm2020/sdk-appinfo/application-info.service.mjs +104 -0
  228. package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
  229. package/esm2020/sdk-date/date.helper.mjs +100 -0
  230. package/esm2020/sdk-dictionary/default-dictionary.mjs +166 -0
  231. package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +5 -5
  232. package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +6 -6
  233. package/esm2020/sdk-dictionary/sdk-dictionary.service.mjs +111 -0
  234. package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
  235. package/esm2020/sdk-epayment/sdk-epayment.component.mjs +81 -0
  236. package/esm2020/sdk-epayment/sdk-epayment.module.mjs +21 -0
  237. package/esm2020/sdk-epayment/sdk-epayment.service.mjs +52 -0
  238. package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +6 -10
  239. package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
  240. package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +69 -0
  241. package/esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs +19 -0
  242. package/esm2020/sdk-redirect/iam-expired-interceptor.service.mjs +58 -0
  243. package/esm2020/sdk-redirect/redirect.component.mjs +35 -0
  244. package/esm2020/sdk-redirect/sdk-redirect.module.mjs +19 -0
  245. package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
  246. package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +5 -5
  247. package/esm2020/sdk-session-info/session-info.service.mjs +50 -0
  248. package/esm2020/sdk-statistics/sdk-statistics.service.mjs +70 -0
  249. package/esm2020/sdk-support-alert/support-alert-container.component.mjs +49 -0
  250. package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
  251. package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
  252. package/esm2020/sdk-support-alert/support-alert.module.mjs +21 -0
  253. package/esm2020/sdk-support-alert/support-alert.service.mjs +117 -0
  254. package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
  255. package/esm2020/supported-browser.mjs +2 -0
  256. package/esm2020/validation/validation-handler.service.mjs +44 -0
  257. package/fesm2015/dsivd-prestations-ng.mjs +13397 -0
  258. package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
  259. package/fesm2020/dsivd-prestations-ng.mjs +13372 -0
  260. package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
  261. package/foehn-address/address.type.d.ts +3 -3
  262. package/foehn-address/foehn-display-address.component.d.ts +1 -1
  263. package/foehn-address/foehn-input-address.component.d.ts +18 -8
  264. package/foehn-address/foehn-input-foreign-locality.component.d.ts +1 -1
  265. package/foehn-address/foehn-input-foreign-street.component.d.ts +1 -1
  266. package/foehn-agenda/calendar.type.d.ts +9 -0
  267. package/foehn-agenda/current-week.type.d.ts +5 -0
  268. package/foehn-agenda/day-slots.type.d.ts +5 -0
  269. package/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.d.ts +21 -0
  270. package/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.d.ts +51 -0
  271. package/foehn-agenda/foehn-agenda.component.d.ts +29 -0
  272. package/foehn-agenda/foehn-agenda.module.d.ts +17 -0
  273. package/foehn-agenda/pagination-week.type.d.ts +5 -0
  274. package/foehn-agenda/selected-slot.type.d.ts +7 -0
  275. package/foehn-autocomplete/foehn-autocomplete.component.d.ts +22 -6
  276. package/foehn-boolean/foehn-boolean-checkbox.component.d.ts +1 -1
  277. package/foehn-boolean/foehn-boolean-radio.component.d.ts +2 -1
  278. package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
  279. package/foehn-breadcrumb/foehn-breadcrumb.component.d.ts +6 -5
  280. package/foehn-checkables/foehn-checkable-group.component.d.ts +8 -8
  281. package/foehn-checkables/foehn-checkables.module.d.ts +3 -1
  282. package/foehn-checkables/foehn-checkbox.component.d.ts +1 -1
  283. package/foehn-checkables/foehn-radio.component.d.ts +1 -1
  284. package/foehn-checkables/foehn-select.component.d.ts +2 -10
  285. package/foehn-confirm-modal/foehn-confirm-modal-content.d.ts +1 -0
  286. package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +2 -2
  287. package/foehn-date-picker/date-picker-navigation.helper.d.ts +7 -1
  288. package/foehn-date-picker/date-picker.helper.d.ts +3 -2
  289. package/foehn-date-picker/foehn-date-picker.component.d.ts +21 -10
  290. package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +13 -5
  291. package/foehn-debug-summary/foehn-debug-summary.component.d.ts +7 -5
  292. package/foehn-decision-electronique/foehn-decision-electronique.component.d.ts +2 -2
  293. package/foehn-decision-electronique/foehn-decision-electronique.module.d.ts +2 -1
  294. package/foehn-footer/foehn-footer.component.d.ts +4 -4
  295. package/foehn-form/foehn-form.component.d.ts +7 -4
  296. package/foehn-form/register-ng-model.service.d.ts +9 -0
  297. package/foehn-growl/foehn-growl.component.d.ts +3 -3
  298. package/foehn-growl/growl-broker.service.d.ts +1 -1
  299. package/foehn-header/foehn-header.component.d.ts +7 -7
  300. package/foehn-header/foehn-skip-link.component.d.ts +2 -2
  301. package/foehn-help-modal/foehn-help-modal.component.d.ts +1 -1
  302. package/foehn-help-modal/foehn-help-modal.type.d.ts +4 -0
  303. package/foehn-icons/abstract-icon-component.d.ts +1 -1
  304. package/foehn-icons/foehn-icon-calendar.component.d.ts +1 -1
  305. package/foehn-icons/foehn-icon-check-square-o.component.d.ts +1 -1
  306. package/foehn-icons/foehn-icon-check.component.d.ts +1 -1
  307. package/foehn-icons/foehn-icon-chevron-down.component.d.ts +1 -1
  308. package/foehn-icons/foehn-icon-chevron-left.component.d.ts +1 -1
  309. package/foehn-icons/foehn-icon-chevron-right.component.d.ts +1 -1
  310. package/foehn-icons/foehn-icon-chevron-up.component.d.ts +1 -1
  311. package/foehn-icons/foehn-icon-clock.component.d.ts +1 -1
  312. package/foehn-icons/foehn-icon-comment-dots.component.d.ts +1 -1
  313. package/foehn-icons/foehn-icon-edit.component.d.ts +1 -1
  314. package/foehn-icons/foehn-icon-external-link-alt.component.d.ts +1 -1
  315. package/foehn-icons/foehn-icon-file-pdf.component.d.ts +1 -1
  316. package/foehn-icons/foehn-icon-info-circle.component.d.ts +1 -1
  317. package/foehn-icons/foehn-icon-lock.component.d.ts +1 -1
  318. package/foehn-icons/foehn-icon-map-marker.component.d.ts +1 -1
  319. package/foehn-icons/foehn-icon-minus-circle.component.d.ts +1 -1
  320. package/foehn-icons/foehn-icon-plus-circle.component.d.ts +1 -1
  321. package/foehn-icons/foehn-icon-plus-square.component.d.ts +1 -1
  322. package/foehn-icons/foehn-icon-search.component.d.ts +1 -1
  323. package/foehn-icons/foehn-icon-times.component.d.ts +1 -1
  324. package/foehn-icons/foehn-icon-trash-alt.component.d.ts +1 -1
  325. package/foehn-icons/foehn-icon-unlock-alt.component.d.ts +1 -1
  326. package/foehn-input/foehn-input-email.component.d.ts +4 -2
  327. package/foehn-input/foehn-input-hidden.component.d.ts +1 -1
  328. package/foehn-input/foehn-input-number.component.d.ts +16 -6
  329. package/foehn-input/foehn-input-password.component.d.ts +1 -1
  330. package/foehn-input/foehn-input-phone.component.d.ts +1 -1
  331. package/foehn-input/foehn-input-string.component.d.ts +1 -1
  332. package/foehn-input/foehn-input-text.component.d.ts +1 -1
  333. package/foehn-input/foehn-input-textarea.component.d.ts +5 -2
  334. package/foehn-input/foehn-input.component.d.ts +25 -9
  335. package/foehn-input/foehn-input.module.d.ts +9 -6
  336. package/foehn-input-date/foehn-input-date.component.d.ts +10 -3
  337. package/foehn-input-date-time/foehn-input-date-time.component.d.ts +29 -0
  338. package/foehn-input-time/foehn-input-time.component.d.ts +1 -1
  339. package/foehn-list/foehn-list.component.d.ts +2 -3
  340. package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +5 -5
  341. package/foehn-menu-prestation/abstract-menu-page.component.d.ts +1 -1
  342. package/foehn-menu-prestation/abstract-page-from-menu.component.d.ts +1 -1
  343. package/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.d.ts +1 -1
  344. package/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.d.ts +3 -3
  345. package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.d.ts +1 -1
  346. package/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.d.ts +2 -2
  347. package/foehn-misc/foehn-abbr.component.d.ts +1 -1
  348. package/foehn-modal/foehn-modal.component.d.ts +2 -3
  349. package/foehn-modal/foehn-modal.module.d.ts +3 -1
  350. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.d.ts +51 -0
  351. package/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.module.d.ts +13 -0
  352. package/foehn-nav13/foehn-input-nav13.component.d.ts +2 -1
  353. package/foehn-navigation/foehn-navigation.component.d.ts +2 -2
  354. package/foehn-navigation/foehn-navigation.service.d.ts +4 -3
  355. package/foehn-notfound/foehn-notfound.component.d.ts +1 -1
  356. package/foehn-page/foehn-page-counter.component.d.ts +1 -1
  357. package/foehn-page/foehn-page-modal.component.d.ts +1 -1
  358. package/foehn-page/foehn-page-modal.service.d.ts +1 -1
  359. package/foehn-page/foehn-page.component.d.ts +15 -12
  360. package/foehn-page/foehn-page.module.d.ts +2 -1
  361. package/foehn-page/foehn-page.service.d.ts +2 -2
  362. package/foehn-recap-section/foehn-recap-section.component.d.ts +3 -1
  363. package/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.d.ts +1 -1
  364. package/foehn-status-progress-bar/foehn-status-progress-bar.component.d.ts +23 -0
  365. package/foehn-status-progress-bar/foehn-status-progress-bar.module.d.ts +10 -0
  366. package/foehn-table/foehn-table-column-configuration.d.ts +18 -0
  367. package/foehn-table/foehn-table-page-change-event.d.ts +5 -0
  368. package/foehn-table/foehn-table.component.d.ts +33 -0
  369. package/foehn-table/foehn-table.module.d.ts +11 -0
  370. package/foehn-table/tableSort.d.ts +4 -0
  371. package/foehn-upload/abstract-foehn-uploader.component.d.ts +7 -7
  372. package/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.d.ts +6 -4
  373. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +6 -5
  374. package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.d.ts +2 -1
  375. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +9 -8
  376. package/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.d.ts +2 -1
  377. package/foehn-upload/foehn-multi-upload/multi-upload.service.d.ts +6 -4
  378. package/foehn-upload/foehn-multi-upload/pending-upload.service.d.ts +3 -3
  379. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +7 -4
  380. package/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.d.ts +2 -1
  381. package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.component.d.ts +19 -0
  382. package/foehn-upload/foehn-upload-progress-bar/foehn-upload-progress-bar.module.d.ts +11 -0
  383. package/foehn-upload/foehn-upload-progress-bar/upload-progress.service.d.ts +19 -0
  384. package/foehn-upload/foehn-upload-progress-bar/upload-progress.type.d.ts +4 -0
  385. package/foehn-upload/pending-upload.type.d.ts +1 -0
  386. package/foehn-upload/uploader.helper.d.ts +13 -13
  387. package/foehn-user-connected-as/foehn-user-connected-as.component.d.ts +2 -2
  388. package/foehn-validation-alert-summary/foehn-validation-alert-summary.component.d.ts +2 -2
  389. package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +4 -4
  390. package/{error-template.d.ts → form-error.d.ts} +1 -1
  391. package/form-post-response.d.ts +17 -0
  392. package/gesdem/gesdem-error-handler.service.d.ts +2 -2
  393. package/gesdem/gesdem-event.service.d.ts +7 -7
  394. package/gesdem/gesdem-handler.service.d.ts +8 -6
  395. package/gesdem/gesdem-loader.guard.d.ts +1 -1
  396. package/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.d.ts +5 -5
  397. package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +7 -7
  398. package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +3 -3
  399. package/gesdem-confirmation/gesdem-confirmation.component.d.ts +10 -9
  400. package/gesdem-error/gesdem-error.component.d.ts +10 -3
  401. package/gesdem-error/gesdem-error.module.d.ts +2 -1
  402. package/global.const.d.ts +1 -0
  403. package/index.d.ts +102 -70
  404. package/package.json +34 -21
  405. package/pipes/currency.pipe.d.ts +1 -1
  406. package/pipes/date.pipe.d.ts +1 -1
  407. package/pipes/formatIde.pipe.d.ts +1 -1
  408. package/refinf/model/address-type-light.d.ts +5 -0
  409. package/refinf/model/canton.d.ts +4 -0
  410. package/refinf/model/district.d.ts +7 -0
  411. package/refinf/model/municipality.d.ts +8 -0
  412. package/refinf/model/place-of-origin.d.ts +9 -0
  413. package/refinf/model/postal-locality.d.ts +11 -0
  414. package/schematics/ng-add/index.js +10 -10
  415. package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
  416. package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
  417. package/schematics/ng-update/migrations/update-13_5_1/index.js +3 -3
  418. package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
  419. package/schematics/update-karma-config/index.js +2 -2
  420. package/schematics/utility/migrate-to-karma-coverage.js +3 -3
  421. package/sdk-appinfo/application-info.d.ts +1 -0
  422. package/sdk-appinfo/application-info.service.d.ts +4 -4
  423. package/sdk-dictionary/sdk-dictionary.pipe.d.ts +1 -1
  424. package/sdk-dictionary/sdk-dictionary.service.d.ts +9 -0
  425. package/sdk-epayment/sdk-epayment.component.d.ts +6 -16
  426. package/sdk-epayment/sdk-epayment.service.d.ts +3 -6
  427. package/sdk-recaptcha/grecaptcha/grecaptcha.component.d.ts +2 -2
  428. package/sdk-recaptcha/recaptcha.service.d.ts +5 -5
  429. package/sdk-recaptcha/sdk-recaptcha.component.d.ts +4 -4
  430. package/sdk-redirect/iam-expired-interceptor.service.d.ts +3 -3
  431. package/sdk-redirect/redirect.component.d.ts +3 -9
  432. package/sdk-session-info/session-info-data.d.ts +0 -1
  433. package/sdk-session-info/session-info.service.d.ts +4 -4
  434. package/sdk-statistics/sdk-statistics.service.d.ts +22 -0
  435. package/sdk-support-alert/support-alert-container.component.d.ts +3 -3
  436. package/sdk-support-alert/support-alert.component.d.ts +1 -1
  437. package/sdk-support-alert/support-alert.service.d.ts +5 -4
  438. package/validation/validation-handler.service.d.ts +4 -4
  439. package/backend-response.d.ts +0 -18
  440. package/bundles/dsivd-prestations-ng.umd.js +0 -13188
  441. package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
  442. package/dsivd-prestations-ng-v15.5.13.tgz +0 -0
  443. package/dsivd-prestations-ng.d.ts +0 -5
  444. package/esm2015/abstract-page-component.js +0 -224
  445. package/esm2015/backend-response.js +0 -10
  446. package/esm2015/directives/currency-formatter.directive.js +0 -116
  447. package/esm2015/error-template.js +0 -2
  448. package/esm2015/foehn-address/foehn-address.module.js +0 -57
  449. package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
  450. package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
  451. package/esm2015/foehn-address/foehn-input-foreign-street.component.js +0 -60
  452. package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
  453. package/esm2015/foehn-autocomplete/foehn-autocomplete.module.js +0 -42
  454. package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
  455. package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
  456. package/esm2015/foehn-boolean/foehn-boolean.module.js +0 -35
  457. package/esm2015/foehn-breadcrumb/breadcrumb-event.service.js +0 -182
  458. package/esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js +0 -85
  459. package/esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js +0 -19
  460. package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
  461. package/esm2015/foehn-checkables/foehn-checkables.module.js +0 -62
  462. package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
  463. package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
  464. package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
  465. package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
  466. package/esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js +0 -19
  467. package/esm2015/foehn-date-picker/date-picker-navigation.helper.js +0 -117
  468. package/esm2015/foehn-date-picker/date-picker.helper.js +0 -126
  469. package/esm2015/foehn-date-picker/foehn-date-picker.component.js +0 -300
  470. package/esm2015/foehn-date-picker/foehn-date-picker.module.js +0 -42
  471. package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
  472. package/esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js +0 -38
  473. package/esm2015/foehn-debug-summary/foehn-debug-summary.component.js +0 -61
  474. package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
  475. package/esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js +0 -20
  476. package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
  477. package/esm2015/foehn-form/foehn-form.component.js +0 -146
  478. package/esm2015/foehn-form/foehn-form.module.js +0 -20
  479. package/esm2015/foehn-growl/foehn-growl.component.js +0 -47
  480. package/esm2015/foehn-header/foehn-header.component.js +0 -73
  481. package/esm2015/foehn-header/foehn-header.module.js +0 -21
  482. package/esm2015/foehn-help-modal/foehn-help-modal.component.js +0 -48
  483. package/esm2015/foehn-help-modal/foehn-help-modal.module.js +0 -20
  484. package/esm2015/foehn-help-modal/foehn-help-modal.type.js +0 -2
  485. package/esm2015/foehn-icons/foehn-icon-calendar.component.js +0 -22
  486. package/esm2015/foehn-icons/foehn-icon-check-square-o.component.js +0 -22
  487. package/esm2015/foehn-icons/foehn-icon-check.component.js +0 -22
  488. package/esm2015/foehn-icons/foehn-icon-chevron-down.component.js +0 -22
  489. package/esm2015/foehn-icons/foehn-icon-chevron-left.component.js +0 -22
  490. package/esm2015/foehn-icons/foehn-icon-chevron-right.component.js +0 -22
  491. package/esm2015/foehn-icons/foehn-icon-chevron-up.component.js +0 -22
  492. package/esm2015/foehn-icons/foehn-icon-clock.component.js +0 -22
  493. package/esm2015/foehn-icons/foehn-icon-comment-dots.component.js +0 -22
  494. package/esm2015/foehn-icons/foehn-icon-edit.component.js +0 -22
  495. package/esm2015/foehn-icons/foehn-icon-external-link-alt.component.js +0 -22
  496. package/esm2015/foehn-icons/foehn-icon-file-pdf.component.js +0 -22
  497. package/esm2015/foehn-icons/foehn-icon-info-circle.component.js +0 -22
  498. package/esm2015/foehn-icons/foehn-icon-lock.component.js +0 -22
  499. package/esm2015/foehn-icons/foehn-icon-map-marker.component.js +0 -22
  500. package/esm2015/foehn-icons/foehn-icon-minus-circle.component.js +0 -22
  501. package/esm2015/foehn-icons/foehn-icon-plus-circle.component.js +0 -22
  502. package/esm2015/foehn-icons/foehn-icon-plus-square.component.js +0 -22
  503. package/esm2015/foehn-icons/foehn-icon-search.component.js +0 -22
  504. package/esm2015/foehn-icons/foehn-icon-times.component.js +0 -22
  505. package/esm2015/foehn-icons/foehn-icon-trash-alt.component.js +0 -22
  506. package/esm2015/foehn-icons/foehn-icon-unlock-alt.component.js +0 -22
  507. package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
  508. package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
  509. package/esm2015/foehn-input/foehn-input-number.component.js +0 -190
  510. package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
  511. package/esm2015/foehn-input/foehn-input-phone.component.js +0 -96
  512. package/esm2015/foehn-input/foehn-input-text.component.js +0 -80
  513. package/esm2015/foehn-input/foehn-input-textarea.component.js +0 -104
  514. package/esm2015/foehn-input/foehn-input.component.js +0 -364
  515. package/esm2015/foehn-input/foehn-input.module.js +0 -82
  516. package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
  517. package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
  518. package/esm2015/foehn-list/foehn-list.component.js +0 -135
  519. package/esm2015/foehn-list/foehn-list.module.js +0 -19
  520. package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
  521. package/esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js +0 -26
  522. package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
  523. package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
  524. package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js +0 -54
  525. package/esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js +0 -61
  526. package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
  527. package/esm2015/foehn-modal/foehn-modal.module.js +0 -19
  528. package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
  529. package/esm2015/foehn-nav13/foehn-input-nav13.module.js +0 -34
  530. package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
  531. package/esm2015/foehn-navigation/foehn-navigation.module.js +0 -34
  532. package/esm2015/foehn-navigation/foehn-navigation.service.js +0 -297
  533. package/esm2015/foehn-notfound/foehn-notfound.module.js +0 -20
  534. package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
  535. package/esm2015/foehn-page/foehn-page.component.js +0 -214
  536. package/esm2015/foehn-page/foehn-page.module.js +0 -76
  537. package/esm2015/foehn-recap-section/foehn-recap-section.component.js +0 -88
  538. package/esm2015/foehn-recap-section/foehn-recap-section.module.js +0 -20
  539. package/esm2015/foehn-upload/abstract-foehn-uploader.component.js +0 -192
  540. package/esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js +0 -62
  541. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -168
  542. package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js +0 -38
  543. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -217
  544. package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js +0 -38
  545. package/esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js +0 -76
  546. package/esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js +0 -157
  547. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -164
  548. package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js +0 -42
  549. package/esm2015/foehn-upload/uploader.helper.js +0 -322
  550. package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js +0 -88
  551. package/esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js +0 -19
  552. package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
  553. package/esm2015/gesdem/gesdem-event.service.js +0 -38
  554. package/esm2015/gesdem/gesdem-handler.service.js +0 -151
  555. package/esm2015/gesdem/gesdem-loader.guard.js +0 -40
  556. package/esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js +0 -103
  557. package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
  558. package/esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js +0 -52
  559. package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
  560. package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
  561. package/esm2015/gesdem-confirmation/gesdem-confirmation.module.js +0 -34
  562. package/esm2015/gesdem-error/gesdem-error.component.js +0 -70
  563. package/esm2015/gesdem-error/gesdem-error.module.js +0 -34
  564. package/esm2015/helpers/object.helper.js +0 -88
  565. package/esm2015/index.js +0 -224
  566. package/esm2015/sdk-appinfo/application-info.js +0 -14
  567. package/esm2015/sdk-appinfo/application-info.service.js +0 -111
  568. package/esm2015/sdk-date/date.helper.js +0 -90
  569. package/esm2015/sdk-dictionary/default-dictionary.js +0 -80
  570. package/esm2015/sdk-dictionary/sdk-dictionary.service.js +0 -96
  571. package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
  572. package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
  573. package/esm2015/sdk-epayment/sdk-epayment.module.js +0 -21
  574. package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
  575. package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
  576. package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
  577. package/esm2015/sdk-recaptcha/sdk-recaptcha.module.js +0 -19
  578. package/esm2015/sdk-redirect/iam-expired-interceptor.service.js +0 -48
  579. package/esm2015/sdk-redirect/redirect.component.js +0 -47
  580. package/esm2015/sdk-redirect/sdk-redirect.module.js +0 -19
  581. package/esm2015/sdk-session-info/session-info.service.js +0 -44
  582. package/esm2015/sdk-support-alert/support-alert-container.component.js +0 -53
  583. package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
  584. package/esm2015/sdk-support-alert/support-alert.module.js +0 -21
  585. package/esm2015/sdk-support-alert/support-alert.service.js +0 -113
  586. package/esm2015/supported-browser.js +0 -2
  587. package/esm2015/validation/validation-handler.service.js +0 -44
  588. package/fesm2015/dsivd-prestations-ng.js +0 -11618
  589. package/fesm2015/dsivd-prestations-ng.js.map +0 -1
  590. package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
@@ -0,0 +1,390 @@
1
+ import { Directive, EventEmitter, forwardRef, HostBinding, Input, Output, ViewChild, ViewChildren } from '@angular/core';
2
+ import { NgModel } from '@angular/forms';
3
+ import { combineLatest, Subject } from 'rxjs';
4
+ import { debounceTime, map } from 'rxjs/operators';
5
+ import { RegisterNgModelService } from '../foehn-form/register-ng-model.service';
6
+ import { ServiceLocator } from '../service-locator';
7
+ // eslint-disable-next-line import/no-cycle
8
+ import { ValidationHandlerService } from '../validation/validation-handler.service';
9
+ import * as i0 from "@angular/core";
10
+ export const GESDEM_MAX_DATA_LENGTH = 10000;
11
+ export class FoehnInputComponent {
12
+ constructor() {
13
+ this.customErrors = {};
14
+ this.overrideGesdemMaxlength = false;
15
+ this.preventPaste = false;
16
+ this.clearButton = false;
17
+ /**
18
+ * Exclude the component from the error summary if the component has an error.
19
+ */
20
+ this.excludeFromErrorSummary = false;
21
+ /**
22
+ * Hide the 'facultatif' extra label.
23
+ */
24
+ this.hideNotRequiredExtraLabel = false;
25
+ this.isErrorInherited = false;
26
+ /**
27
+ * When set to TRUE: Shows error even if input is disabled
28
+ */
29
+ this.showErrorWhenDisabled = false;
30
+ /**
31
+ * Fired when the model changes for any reason
32
+ */
33
+ this.modelChange = new EventEmitter();
34
+ /**
35
+ * Fired when the user changes a value, after the model is updated.
36
+ */
37
+ this.userInput = new EventEmitter();
38
+ // eslint-disable-next-line @angular-eslint/no-output-native,@angular-eslint/no-output-rename
39
+ this.blurHandler = new EventEmitter();
40
+ // eslint-disable-next-line @angular-eslint/no-output-native,@angular-eslint/no-output-rename
41
+ this.focusHandler = new EventEmitter();
42
+ this.userInputSubject = new Subject();
43
+ this.validationHandlerService = ServiceLocator.injector.get(ValidationHandlerService);
44
+ this.registerNgModelService = ServiceLocator.injector.get(RegisterNgModelService);
45
+ this.required = false;
46
+ this.validationErrorsSubjectSubscription = combineLatest([
47
+ this.validationHandlerService.validationErrorsSubject,
48
+ this.validationHandlerService.validationDisplaySubject
49
+ ]).subscribe(values => {
50
+ this.refreshErrors(values);
51
+ });
52
+ }
53
+ get errors() {
54
+ return this._errors;
55
+ }
56
+ get model() {
57
+ return this.model_;
58
+ }
59
+ set model(value) {
60
+ this.onModelChange(value);
61
+ }
62
+ // eslint-disable-next-line @typescript-eslint/member-ordering
63
+ get disabled() {
64
+ return this._disabled;
65
+ }
66
+ set disabled(value) {
67
+ this._disabled = value;
68
+ }
69
+ ngOnInit() {
70
+ // Ensures that the host has an Id for instrumentalization of the DOM by automated tests.
71
+ this.hostId = this.buildId();
72
+ this.showClearButton = this.modelChange
73
+ .asObservable()
74
+ .pipe(map(model => this.clearButton && !!model && !this._disabled));
75
+ this.userInputSubscription = this.userInputSubject
76
+ .pipe(
77
+ // This is used to ensure that we only catch the latest of multiple
78
+ // quick updates, and to make sure the userInput is fired when
79
+ // the component is done updating.
80
+ debounceTime(0))
81
+ .subscribe(value => {
82
+ this.userInput.emit(value);
83
+ });
84
+ }
85
+ ngOnDestroy() {
86
+ if (this.validationErrorsSubjectSubscription) {
87
+ this.validationErrorsSubjectSubscription.unsubscribe();
88
+ }
89
+ if (this.userInputSubscription) {
90
+ this.userInputSubscription.unsubscribe();
91
+ }
92
+ }
93
+ ngAfterViewInit() {
94
+ this.subComponents.changes.subscribe(() => this.registerNgModelService.updateRegisteredNgModels());
95
+ }
96
+ onModelChange(value) {
97
+ this.updateNgModel(value);
98
+ }
99
+ handleChange(value) {
100
+ this.triggerUserInput(value);
101
+ }
102
+ updateNgModel(value) {
103
+ this.model_ = value;
104
+ if (!this._disabled) {
105
+ this.modelChange.emit(value);
106
+ }
107
+ }
108
+ hasErrorsToDisplay() {
109
+ return (this.hasErrors() && (!this._disabled || this.showErrorWhenDisabled));
110
+ }
111
+ hasErrors() {
112
+ return this._errors && this._errors.length > 0 && this.isPristine();
113
+ }
114
+ hasInheritErrorFromParent() {
115
+ return this.isErrorInherited;
116
+ }
117
+ isPristine() {
118
+ return (this.inputModelList.filter(m => !m.pristine).length === 0 &&
119
+ this.subComponents.filter(c => !c.isPristine()).length === 0);
120
+ }
121
+ markAsDirty() {
122
+ this.inputModelList.forEach(ngModel => {
123
+ ngModel.control.markAsDirty();
124
+ });
125
+ this.subComponents.forEach(c => {
126
+ c.markAsDirty();
127
+ });
128
+ }
129
+ markAsPristine() {
130
+ this.inputModelList.forEach(ngModel => {
131
+ ngModel.control.markAsPristine();
132
+ });
133
+ this.subComponents.forEach(c => {
134
+ c.markAsDirty();
135
+ });
136
+ }
137
+ getNativeInputList() {
138
+ let result = this.inputModelList.toArray();
139
+ this.subComponents.forEach(c => {
140
+ result = result.concat(c.getNativeInputList());
141
+ });
142
+ return result;
143
+ }
144
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
+ getMeAndSubComponents() {
146
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
147
+ let result = [this];
148
+ if (this.subComponents) {
149
+ this.subComponents.forEach(c => {
150
+ result = result.concat(c.getMeAndSubComponents());
151
+ });
152
+ }
153
+ return result;
154
+ }
155
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
+ refreshErrors(results) {
157
+ const errors = results[0];
158
+ const shouldDisplayErrors = results[1];
159
+ if (shouldDisplayErrors) {
160
+ this._errors = errors.filter(e => e.name === this.name);
161
+ }
162
+ }
163
+ focus() {
164
+ let elementContainer;
165
+ if (this.inputElement && this.inputElement.nativeElement) {
166
+ elementContainer = document.getElementById(this.buildId('Container'));
167
+ if (elementContainer) {
168
+ // Scroll in view should be done on input container
169
+ elementContainer.scrollIntoView();
170
+ }
171
+ // Focus should be on the input itself
172
+ this.inputElement.nativeElement.focus();
173
+ }
174
+ else if (this.subComponents &&
175
+ this.getFirstInputComponentEnabled(this.subComponents)) {
176
+ const inputComponent = this.getFirstInputComponentEnabled(this.subComponents);
177
+ elementContainer = document.getElementById(inputComponent.buildId('Container'));
178
+ if (elementContainer) {
179
+ // Scroll in view should be done on input container
180
+ elementContainer.scrollIntoView();
181
+ }
182
+ // Focus should be on the input itself
183
+ inputComponent.inputElement.nativeElement.focus();
184
+ }
185
+ else {
186
+ // Case for component who do not have any '#entryComponent' in their html template (i.e. foehn-radio, foehn-checkbox,...)
187
+ elementContainer = document.getElementById(this.buildId('Container'));
188
+ if (elementContainer) {
189
+ // Scroll in view should be done on input container
190
+ elementContainer.scrollIntoView();
191
+ }
192
+ const elementNodeListOf = elementContainer.querySelectorAll(`input[id^="${this.name}"]`);
193
+ if (elementNodeListOf && elementNodeListOf.length > 0) {
194
+ const inputElement = this.findFirstHtmlInputElementEnabled(elementNodeListOf);
195
+ if (inputElement) {
196
+ // Focus should be on the input itself
197
+ inputElement.focus();
198
+ }
199
+ }
200
+ }
201
+ }
202
+ getMaxLength() {
203
+ if (!this.maxlength) {
204
+ return GESDEM_MAX_DATA_LENGTH;
205
+ }
206
+ if (this.maxlength > GESDEM_MAX_DATA_LENGTH &&
207
+ !this.overrideGesdemMaxlength) {
208
+ console.log(`maxLength in ${this.name} cannot be more than ${GESDEM_MAX_DATA_LENGTH} !`);
209
+ return GESDEM_MAX_DATA_LENGTH;
210
+ }
211
+ return this.maxlength;
212
+ }
213
+ buildId(suffix = '') {
214
+ // The baseId is either an id given by the user or the value of the name.
215
+ // For integration purposes, the container foehn-* must have an Id.
216
+ const baseId = this.id || this.name;
217
+ if (!baseId) {
218
+ return null;
219
+ }
220
+ return `${baseId}${suffix}`;
221
+ }
222
+ buildChildId(suffix = '') {
223
+ return this.buildId(`Child${suffix}`);
224
+ }
225
+ buildChildName(suffix = '') {
226
+ return `${this.name}Child${suffix}`;
227
+ }
228
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
229
+ onKeydown(key) {
230
+ // Do nothing, overriden by subcomponent
231
+ }
232
+ reset() {
233
+ this.updateNgModel(null);
234
+ }
235
+ onPaste(e) {
236
+ if (this.preventPaste === true) {
237
+ e.preventDefault();
238
+ }
239
+ }
240
+ onBlur(e) {
241
+ this.blurHandler.emit(e);
242
+ }
243
+ onFocus(e) {
244
+ this.focusHandler.emit(e);
245
+ }
246
+ onClear() {
247
+ this.updateNgModel(null);
248
+ this.handleChange(null);
249
+ this.focus();
250
+ }
251
+ displayClearButton() {
252
+ // This has to be an observable to react to the change of model value.
253
+ return this.showClearButton;
254
+ }
255
+ getDescribedBy() {
256
+ const helpTextId = this.helpText ? `${this.buildChildId()}Help` : null;
257
+ const errorId = this.hasErrorsToDisplay()
258
+ ? `${this.buildId()}ErrorsContainer`
259
+ : null;
260
+ // aria-describedby can be linked to multiple Ids separated by a comma.
261
+ return [helpTextId, errorId].filter(id => !!id).join(',') || null;
262
+ }
263
+ getAutoComplete() {
264
+ // retro compatibility (autocomplete used to be a boolean)
265
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
266
+ // @ts-ignore
267
+ if (this.autocomplete === false) {
268
+ return 'off';
269
+ }
270
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
271
+ // @ts-ignore
272
+ if (this.autocomplete === true) {
273
+ return '';
274
+ }
275
+ return this.autocomplete;
276
+ }
277
+ getFirstInputComponentEnabled(
278
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
279
+ subComponents
280
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
281
+ ) {
282
+ const foehnInputComponents = subComponents.filter(item => item.inputElement && !item._disabled);
283
+ if (!!foehnInputComponents && foehnInputComponents.length) {
284
+ return foehnInputComponents[0];
285
+ }
286
+ return null;
287
+ }
288
+ findFirstHtmlInputElementEnabled(elementNodeListOf) {
289
+ for (let i = 0; i < elementNodeListOf.length; i++) {
290
+ const htmlInputElement = elementNodeListOf.item(i);
291
+ if (!htmlInputElement.disabled) {
292
+ return htmlInputElement;
293
+ }
294
+ }
295
+ return null;
296
+ }
297
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
298
+ isEmpty(data) {
299
+ return data === null || data === undefined || data === '';
300
+ }
301
+ triggerUserInput(value) {
302
+ if (
303
+ // If the callback is defined
304
+ !!this.userInput &&
305
+ // If the value is actually something (T or null)
306
+ typeof value !== 'undefined' &&
307
+ // If input isn't disabled
308
+ !this._disabled) {
309
+ this.userInputSubject.next(value);
310
+ }
311
+ }
312
+ }
313
+ FoehnInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
314
+ FoehnInputComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: FoehnInputComponent, inputs: { id: "id", required: "required", label: "label", isLabelSrOnly: "isLabelSrOnly", helpText: "helpText", name: "name", pattern: "pattern", labelStyleModifier: "labelStyleModifier", customErrors: "customErrors", maxlength: "maxlength", overrideGesdemMaxlength: "overrideGesdemMaxlength", min: "min", max: "max", autocomplete: "autocomplete", preventPaste: "preventPaste", clearButton: "clearButton", excludeFromErrorSummary: "excludeFromErrorSummary", hideNotRequiredExtraLabel: "hideNotRequiredExtraLabel", isErrorInherited: "isErrorInherited", showErrorWhenDisabled: "showErrorWhenDisabled", autocapitalize: "autocapitalize", helpModal: "helpModal", model: "model", disabled: "disabled" }, outputs: { modelChange: "modelChange", userInput: "userInput", blurHandler: "blur", focusHandler: "focus" }, host: { properties: { "attr.id": "this.hostId" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["entryComponent"], descendants: true }, { propertyName: "inputModelList", predicate: NgModel, descendants: true }, { propertyName: "subComponents", predicate: i0.forwardRef(function () { return FoehnInputComponent; }), descendants: true }], ngImport: i0 });
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputComponent, decorators: [{
316
+ type: Directive
317
+ }], ctorParameters: function () { return []; }, propDecorators: { id: [{
318
+ type: Input
319
+ }], required: [{
320
+ type: Input
321
+ }], label: [{
322
+ type: Input
323
+ }], isLabelSrOnly: [{
324
+ type: Input
325
+ }], helpText: [{
326
+ type: Input
327
+ }], name: [{
328
+ type: Input
329
+ }], pattern: [{
330
+ type: Input
331
+ }], labelStyleModifier: [{
332
+ type: Input
333
+ }], customErrors: [{
334
+ type: Input
335
+ }], maxlength: [{
336
+ type: Input
337
+ }], overrideGesdemMaxlength: [{
338
+ type: Input
339
+ }], min: [{
340
+ type: Input
341
+ }], max: [{
342
+ type: Input
343
+ }], autocomplete: [{
344
+ type: Input
345
+ }], preventPaste: [{
346
+ type: Input
347
+ }], clearButton: [{
348
+ type: Input
349
+ }], excludeFromErrorSummary: [{
350
+ type: Input
351
+ }], hideNotRequiredExtraLabel: [{
352
+ type: Input
353
+ }], isErrorInherited: [{
354
+ type: Input
355
+ }], showErrorWhenDisabled: [{
356
+ type: Input
357
+ }], autocapitalize: [{
358
+ type: Input
359
+ }], helpModal: [{
360
+ type: Input
361
+ }], inputModelList: [{
362
+ type: ViewChildren,
363
+ args: [NgModel]
364
+ }], inputElement: [{
365
+ type: ViewChild,
366
+ args: ['entryComponent']
367
+ }],
368
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
369
+ subComponents: [{
370
+ type: ViewChildren,
371
+ args: [forwardRef(() => FoehnInputComponent)]
372
+ }], modelChange: [{
373
+ type: Output
374
+ }], userInput: [{
375
+ type: Output
376
+ }], blurHandler: [{
377
+ type: Output,
378
+ args: ['blur']
379
+ }], focusHandler: [{
380
+ type: Output,
381
+ args: ['focus']
382
+ }], hostId: [{
383
+ type: HostBinding,
384
+ args: ['attr.id']
385
+ }], model: [{
386
+ type: Input
387
+ }], disabled: [{
388
+ type: Input
389
+ }] } });
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFcEYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0FBRzVDLE1BQU0sT0FBZ0IsbUJBQW1CO0lBNElyQztRQTdHQSxpQkFBWSxHQUE4QixFQUFFLENBQUM7UUFNN0MsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBZ0JoQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUdyQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQjs7V0FFRztRQUVILDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUVoQzs7V0FFRztRQUVILDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUdsQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekI7O1dBRUc7UUFFSCwwQkFBcUIsR0FB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QUROLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBU04sY0FBYztzQkFEYixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFJckIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGdCQUFnQjs7UUFJM0IsOERBQThEO1FBQzlELGFBQWE7c0JBRlosWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBUW5ELFdBQVc7c0JBRFYsTUFBTTtnQkFPUCxTQUFTO3NCQURSLE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNO3VCQUFDLE1BQU07Z0JBS2QsWUFBWTtzQkFEWCxNQUFNO3VCQUFDLE9BQU87Z0JBSWYsTUFBTTtzQkFETCxXQUFXO3VCQUFDLFNBQVM7Z0JBOENsQixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1mb3JtL3JlZ2lzdGVyLW5nLW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVscE1vZGFsIH0gZnJvbSAnLi4vZm9laG4taGVscC1tb2RhbC9mb2Vobi1oZWxwLW1vZGFsLnR5cGUnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggPSAxMDAwMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9laG5JbnB1dENvbXBvbmVudDxUPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIFRSVUUsIGFkZHMgY2xhc3MgJ3NyLW9ubHknIChvbmx5IGZvciBzY3JlZW4gcmVhZGVycykgb24gdGFnIDxsYWJlbD4gb3IgPGxlZ2VuZD5cbiAgICAgKiBkZXBlbmRpbmcgb24gY29tcG9uZW50IGV4dGVuZGluZyB0aGlzIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc0xhYmVsU3JPbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBoZWxwVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHBhdHRlcm46IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxTdHlsZU1vZGlmaWVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbUVycm9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgQElucHV0KClcbiAgICBtYXhsZW5ndGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgb3ZlcnJpZGVHZXNkZW1NYXhsZW5ndGggPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGF0dHJpYnV0ZSBtdXN0IHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9mci9kb2NzL1dlYi9IVE1ML0F0dHJpYnV0ZXMvYXV0b2NvbXBsZXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRvY29tcGxldGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFBhc3RlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsZWFyQnV0dG9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFeGNsdWRlIHRoZSBjb21wb25lbnQgZnJvbSB0aGUgZXJyb3Igc3VtbWFyeSBpZiB0aGUgY29tcG9uZW50IGhhcyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4Y2x1ZGVGcm9tRXJyb3JTdW1tYXJ5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSAnZmFjdWx0YXRpZicgZXh0cmEgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGlzRXJyb3JJbmhlcml0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gc2V0IHRvIFRSVUU6IFNob3dzIGVycm9yIGV2ZW4gaWYgaW5wdXQgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFcnJvcldoZW5EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGF1dG9jYXBpdGFsaXplIGF0dHJpYnV0ZSBuZXZlciBjYXVzZXMgYXV0b2NhcGl0YWxpemF0aW9uIHRvIGJlIGVuYWJsZWQgZm9yXG4gICAgICogYW4gPGlucHV0PiBlbGVtZW50IHdpdGggYSB0eXBlIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyB1cmwsIGVtYWlsLCBvciBwYXNzd29yZC5cbiAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9mci9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL2F1dG9jYXBpdGFsaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRvY2FwaXRhbGl6ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBoZWxwTW9kYWw6IEhlbHBNb2RhbDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTmdNb2RlbClcbiAgICBpbnB1dE1vZGVsTGlzdDogUXVlcnlMaXN0PE5nTW9kZWw+O1xuXG4gICAgQFZpZXdDaGlsZCgnZW50cnlDb21wb25lbnQnKVxuICAgIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBGb2VobklucHV0Q29tcG9uZW50KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHN1YkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb2VobklucHV0Q29tcG9uZW50PGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgbW9kZWwgY2hhbmdlcyBmb3IgYW55IHJlYXNvblxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIGEgdmFsdWUsIGFmdGVyIHRoZSBtb2RlbCBpcyB1cGRhdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVzZXJJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSxAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICAgIEBPdXRwdXQoJ2JsdXInKVxuICAgIGJsdXJIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gICAgQE91dHB1dCgnZm9jdXMnKVxuICAgIGZvY3VzSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaG9zdElkOiBzdHJpbmc7XG5cbiAgICB0eXBlOiBzdHJpbmc7XG5cbiAgICB2YWxpZGF0aW9uSGFuZGxlclNlcnZpY2U6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZTtcblxuICAgIG1vZGVsXzogVDtcblxuICAgIHByaXZhdGUgX2Vycm9yczogRm9ybUVycm9yW107XG5cbiAgICBwcml2YXRlIHZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlOiBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBzaG93Q2xlYXJCdXR0b246IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSB1c2VySW5wdXRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgICBwcml2YXRlIHVzZXJJbnB1dFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgUmVnaXN0ZXJOZ01vZGVsU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3QsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRGlzcGxheVN1YmplY3RcbiAgICAgICAgXSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnModmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGVycm9ycygpOiBGb3JtRXJyb3JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnM7XG4gICAgfVxuXG4gICAgZ2V0IG1vZGVsKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9zdCBoYXMgYW4gSWQgZm9yIGluc3RydW1lbnRhbGl6YXRpb24gb2YgdGhlIERPTSBieSBhdXRvbWF0ZWQgdGVzdHMuXG4gICAgICAgIHRoaXMuaG9zdElkID0gdGhpcy5idWlsZElkKCk7XG5cbiAgICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSB0aGlzLm1vZGVsQ2hhbmdlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKG1hcChtb2RlbCA9PiB0aGlzLmNsZWFyQnV0dG9uICYmICEhbW9kZWwgJiYgIXRoaXMuX2Rpc2FibGVkKSk7XG5cbiAgICAgICAgdGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJJbnB1dFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGNhdGNoIHRoZSBsYXRlc3Qgb2YgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBxdWljayB1cGRhdGVzLCBhbmQgdG8gbWFrZSBzdXJlIHRoZSB1c2VySW5wdXQgaXMgZmlyZWQgd2hlblxuICAgICAgICAgICAgICAgIC8vIHRoZSBjb21wb25lbnQgaXMgZG9uZSB1cGRhdGluZy5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlcklucHV0LmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc0Vycm9yc1RvRGlzcGxheSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGFzRXJyb3JzKCkgJiYgKCF0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLnNob3dFcnJvcldoZW5EaXNhYmxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnMgJiYgdGhpcy5fZXJyb3JzLmxlbmd0aCA+IDAgJiYgdGhpcy5pc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFcnJvckluaGVyaXRlZDtcbiAgICB9XG5cbiAgICBpc1ByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5maWx0ZXIobSA9PiAhbS5wcmlzdGluZSkubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZmlsdGVyKGMgPT4gIWMuaXNQcmlzdGluZSgpKS5sZW5ndGggPT09IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBtYXJrQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIGMubWFya0FzRGlydHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWFya0FzUHJpc3RpbmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbExpc3QuZm9yRWFjaChuZ01vZGVsID0+IHtcbiAgICAgICAgICAgIG5nTW9kZWwuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5hdGl2ZUlucHV0TGlzdCgpOiBOZ01vZGVsW10ge1xuICAgICAgICBsZXQgcmVzdWx0OiBOZ01vZGVsW10gPSB0aGlzLmlucHV0TW9kZWxMaXN0LnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TmF0aXZlSW5wdXRMaXN0KCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGdldE1lQW5kU3ViQ29tcG9uZW50cygpOiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGxldCByZXN1bHQ6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdID0gW3RoaXNdO1xuICAgICAgICBpZiAodGhpcy5zdWJDb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TWVBbmRTdWJDb21wb25lbnRzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZnJlc2hFcnJvcnMocmVzdWx0czogYW55W10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHNob3VsZERpc3BsYXlFcnJvcnM6IGJvb2xlYW4gPSByZXN1bHRzWzFdO1xuICAgICAgICBpZiAoc2hvdWxkRGlzcGxheUVycm9ycykge1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JzID0gZXJyb3JzLmZpbHRlcihlID0+IGUubmFtZSA9PT0gdGhpcy5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBsZXQgZWxlbWVudENvbnRhaW5lcjtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50ICYmIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzICYmXG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKHRoaXMuc3ViQ29tcG9uZW50cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dENvbXBvbmVudCA9IHRoaXMuZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgaW5wdXRDb21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENhc2UgZm9yIGNvbXBvbmVudCB3aG8gZG8gbm90IGhhdmUgYW55ICcjZW50cnlDb21wb25lbnQnIGluIHRoZWlyIGh0bWwgdGVtcGxhdGUgKGkuZS4gZm9laG4tcmFkaW8sIGZvZWhuLWNoZWNrYm94LC4uLilcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50Tm9kZUxpc3RPZiA9IGVsZW1lbnRDb250YWluZXIucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICBgaW5wdXRbaWRePVwiJHt0aGlzLm5hbWV9XCJdYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Tm9kZUxpc3RPZiAmJiBlbGVtZW50Tm9kZUxpc3RPZi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5maW5kRmlyc3RIdG1sSW5wdXRFbGVtZW50RW5hYmxlZChcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudE5vZGVMaXN0T2ZcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TWF4TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5tYXhsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5tYXhsZW5ndGggPiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIICYmXG4gICAgICAgICAgICAhdGhpcy5vdmVycmlkZUdlc2RlbU1heGxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGBtYXhMZW5ndGggaW4gJHt0aGlzLm5hbWV9IGNhbm5vdCBiZSBtb3JlIHRoYW4gJHtHRVNERU1fTUFYX0RBVEFfTEVOR1RIfSAhYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBiYXNlSWQgaXMgZWl0aGVyIGFuIGlkIGdpdmVuIGJ5IHRoZSB1c2VyIG9yIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZS5cbiAgICAgICAgLy8gRm9yIGludGVncmF0aW9uIHB1cnBvc2VzLCB0aGUgY29udGFpbmVyIGZvZWhuLSogbXVzdCBoYXZlIGFuIElkLlxuICAgICAgICBjb25zdCBiYXNlSWQgPSB0aGlzLmlkIHx8IHRoaXMubmFtZTtcbiAgICAgICAgaWYgKCFiYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2Jhc2VJZH0ke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIGJ1aWxkQ2hpbGRJZChzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRJZChgQ2hpbGQke3N1ZmZpeH1gKTtcbiAgICB9XG5cbiAgICBidWlsZENoaWxkTmFtZShzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMubmFtZX1DaGlsZCR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9uS2V5ZG93bihrZXk6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZywgb3ZlcnJpZGVuIGJ5IHN1YmNvbXBvbmVudFxuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShlOiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcmV2ZW50UGFzdGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cihlOiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmx1ckhhbmRsZXIuZW1pdChlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZW1pdChlKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG51bGwpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBUaGlzIGhhcyB0byBiZSBhbiBvYnNlcnZhYmxlIHRvIHJlYWN0IHRvIHRoZSBjaGFuZ2Ugb2YgbW9kZWwgdmFsdWUuXG4gICAgICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbjtcbiAgICB9XG5cbiAgICBnZXREZXNjcmliZWRCeSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWxwVGV4dElkID0gdGhpcy5oZWxwVGV4dCA/IGAke3RoaXMuYnVpbGRDaGlsZElkKCl9SGVscGAgOiBudWxsO1xuICAgICAgICBjb25zdCBlcnJvcklkID0gdGhpcy5oYXNFcnJvcnNUb0Rpc3BsYXkoKVxuICAgICAgICAgICAgPyBgJHt0aGlzLmJ1aWxkSWQoKX1FcnJvcnNDb250YWluZXJgXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgLy8gYXJpYS1kZXNjcmliZWRieSBjYW4gYmUgbGlua2VkIHRvIG11bHRpcGxlIElkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS5cbiAgICAgICAgcmV0dXJuIFtoZWxwVGV4dElkLCBlcnJvcklkXS5maWx0ZXIoaWQgPT4gISFpZCkuam9pbignLCcpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0QXV0b0NvbXBsZXRlKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIHJldHJvIGNvbXBhdGliaWxpdHkgKGF1dG9jb21wbGV0ZSB1c2VkIHRvIGJlIGEgYm9vbGVhbilcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiAnb2ZmJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHN1YkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb2VobklucHV0Q29tcG9uZW50PGFueT4+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+IHtcbiAgICAgICAgY29uc3QgZm9laG5JbnB1dENvbXBvbmVudHMgPSBzdWJDb21wb25lbnRzLmZpbHRlcihcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5pbnB1dEVsZW1lbnQgJiYgIWl0ZW0uX2Rpc2FibGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCEhZm9laG5JbnB1dENvbXBvbmVudHMgJiYgZm9laG5JbnB1dENvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9laG5JbnB1dENvbXBvbmVudHNbMF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoXG4gICAgICAgIGVsZW1lbnROb2RlTGlzdE9mOiBOb2RlTGlzdE9mPEVsZW1lbnQ+XG4gICAgKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxJbnB1dEVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKFxuICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIGlmICghaHRtbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBodG1sSW5wdXRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIGlzRW1wdHkoZGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJpZ2dlclVzZXJJbnB1dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgaXMgZGVmaW5lZFxuICAgICAgICAgICAgISF0aGlzLnVzZXJJbnB1dCAmJlxuICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGFjdHVhbGx5IHNvbWV0aGluZyAoVCBvciBudWxsKVxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgLy8gSWYgaW5wdXQgaXNuJ3QgZGlzYWJsZWRcbiAgICAgICAgICAgICF0aGlzLl9kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { FoehnDatePickerButtonModule } from '../foehn-date-picker-button/foehn-date-picker-button.module';
5
+ import { FoehnHelpModalModule } from '../foehn-help-modal/foehn-help-modal.module';
6
+ import { FoehnIconsModule } from '../foehn-icons/foehn-icons.module';
7
+ import { FoehnDateComponent } from '../foehn-input-date/foehn-input-date.component';
8
+ import { FoehnDateTimeComponent } from '../foehn-input-date-time/foehn-input-date-time.component';
9
+ import { FoehnTimeComponent } from '../foehn-input-time/foehn-input-time.component';
10
+ import { FoehnValidationAlertsModule } from '../foehn-validation-alerts/foehn-validation-alerts.module';
11
+ import { SdkDictionaryModule } from '../sdk-dictionary/sdk-dictionary.module';
12
+ import { FoehnInputEmailComponent } from './foehn-input-email.component';
13
+ import { FoehnInputHiddenComponent } from './foehn-input-hidden.component';
14
+ import { FoehnInputNumberComponent } from './foehn-input-number.component';
15
+ import { FoehnInputPasswordComponent } from './foehn-input-password.component';
16
+ import { FoehnInputPhoneComponent } from './foehn-input-phone.component';
17
+ import { FoehnInputTextComponent } from './foehn-input-text.component';
18
+ import { FoehnInputTextareaComponent } from './foehn-input-textarea.component';
19
+ import * as i0 from "@angular/core";
20
+ export class FoehnInputModule {
21
+ }
22
+ FoehnInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ FoehnInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputModule, declarations: [FoehnInputTextComponent,
24
+ FoehnInputNumberComponent,
25
+ FoehnInputEmailComponent,
26
+ FoehnInputHiddenComponent,
27
+ FoehnInputPasswordComponent,
28
+ FoehnInputTextareaComponent,
29
+ FoehnDateComponent,
30
+ FoehnTimeComponent,
31
+ FoehnInputPhoneComponent,
32
+ FoehnDateTimeComponent], imports: [FoehnIconsModule,
33
+ CommonModule,
34
+ FormsModule,
35
+ FoehnValidationAlertsModule,
36
+ SdkDictionaryModule,
37
+ FoehnDatePickerButtonModule,
38
+ FoehnHelpModalModule], exports: [FoehnInputTextComponent,
39
+ FoehnInputNumberComponent,
40
+ FoehnInputEmailComponent,
41
+ FoehnInputHiddenComponent,
42
+ FoehnInputPasswordComponent,
43
+ FoehnInputTextareaComponent,
44
+ FoehnDateComponent,
45
+ FoehnTimeComponent,
46
+ FoehnInputPhoneComponent,
47
+ FoehnDateTimeComponent] });
48
+ FoehnInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputModule, imports: [FoehnIconsModule,
49
+ CommonModule,
50
+ FormsModule,
51
+ FoehnValidationAlertsModule,
52
+ SdkDictionaryModule,
53
+ FoehnDatePickerButtonModule,
54
+ FoehnHelpModalModule] });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnInputModule, decorators: [{
56
+ type: NgModule,
57
+ args: [{
58
+ imports: [
59
+ FoehnIconsModule,
60
+ CommonModule,
61
+ FormsModule,
62
+ FoehnValidationAlertsModule,
63
+ SdkDictionaryModule,
64
+ FoehnDatePickerButtonModule,
65
+ FoehnHelpModalModule
66
+ ],
67
+ declarations: [
68
+ FoehnInputTextComponent,
69
+ FoehnInputNumberComponent,
70
+ FoehnInputEmailComponent,
71
+ FoehnInputHiddenComponent,
72
+ FoehnInputPasswordComponent,
73
+ FoehnInputTextareaComponent,
74
+ FoehnDateComponent,
75
+ FoehnTimeComponent,
76
+ FoehnInputPhoneComponent,
77
+ FoehnDateTimeComponent
78
+ ],
79
+ exports: [
80
+ FoehnInputTextComponent,
81
+ FoehnInputNumberComponent,
82
+ FoehnInputEmailComponent,
83
+ FoehnInputHiddenComponent,
84
+ FoehnInputPasswordComponent,
85
+ FoehnInputTextareaComponent,
86
+ FoehnDateComponent,
87
+ FoehnTimeComponent,
88
+ FoehnInputPhoneComponent,
89
+ FoehnDateTimeComponent
90
+ ]
91
+ }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBcUMvRSxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBeEJyQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixzQkFBc0IsYUFsQnRCLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osV0FBVztRQUNYLDJCQUEyQjtRQUMzQixtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLG9CQUFvQixhQWVwQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixzQkFBc0I7OEdBR2pCLGdCQUFnQixZQWpDckIsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixXQUFXO1FBQ1gsMkJBQTJCO1FBQzNCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0Isb0JBQW9COzJGQTJCZixnQkFBZ0I7a0JBbkM1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCwyQkFBMkI7d0JBQzNCLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixvQkFBb0I7cUJBQ3ZCO29CQUNELFlBQVksRUFBRTt3QkFDVix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7cUJBQ3pCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRm9laG5EYXRlUGlja2VyQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vZm9laG4tZGF0ZS1waWNrZXItYnV0dG9uL2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5IZWxwTW9kYWxNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1oZWxwLW1vZGFsL2ZvZWhuLWhlbHAtbW9kYWwubW9kdWxlJztcbmltcG9ydCB7IEZvZWhuSWNvbnNNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1pY29ucy9mb2Vobi1pY29ucy5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5EYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQtZGF0ZS9mb2Vobi1pbnB1dC1kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobkRhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQtZGF0ZS10aW1lL2ZvZWhuLWlucHV0LWRhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5UaW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQtdGltZS9mb2Vobi1pbnB1dC10aW1lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VoblZhbGlkYXRpb25BbGVydHNNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cy9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeU1vZHVsZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5Lm1vZHVsZSc7XG5pbXBvcnQgeyBGb2VobklucHV0RW1haWxDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LWVtYWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobklucHV0SGlkZGVuQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC1oaWRkZW4uY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXROdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1pbnB1dC1waG9uZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5JbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWlucHV0LXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vZm9laG4taW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvZWhuSWNvbnNNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEZvZWhuVmFsaWRhdGlvbkFsZXJ0c01vZHVsZSxcbiAgICAgICAgU2RrRGljdGlvbmFyeU1vZHVsZSxcbiAgICAgICAgRm9laG5EYXRlUGlja2VyQnV0dG9uTW9kdWxlLFxuICAgICAgICBGb2VobkhlbHBNb2RhbE1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEZvZWhuSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgICAgICBGb2VobklucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgICAgICBGb2VobklucHV0RW1haWxDb21wb25lbnQsXG4gICAgICAgIEZvZWhuSW5wdXRIaWRkZW5Db21wb25lbnQsXG4gICAgICAgIEZvZWhuSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgRm9laG5JbnB1dFRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICBGb2VobkRhdGVDb21wb25lbnQsXG4gICAgICAgIEZvZWhuVGltZUNvbXBvbmVudCxcbiAgICAgICAgRm9laG5JbnB1dFBob25lQ29tcG9uZW50LFxuICAgICAgICBGb2VobkRhdGVUaW1lQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZvZWhuSW5wdXRUZXh0Q29tcG9uZW50LFxuICAgICAgICBGb2VobklucHV0TnVtYmVyQ29tcG9uZW50LFxuICAgICAgICBGb2VobklucHV0RW1haWxDb21wb25lbnQsXG4gICAgICAgIEZvZWhuSW5wdXRIaWRkZW5Db21wb25lbnQsXG4gICAgICAgIEZvZWhuSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgRm9laG5JbnB1dFRleHRhcmVhQ29tcG9uZW50LFxuICAgICAgICBGb2VobkRhdGVDb21wb25lbnQsXG4gICAgICAgIEZvZWhuVGltZUNvbXBvbmVudCxcbiAgICAgICAgRm9laG5JbnB1dFBob25lQ29tcG9uZW50LFxuICAgICAgICBGb2VobkRhdGVUaW1lQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobklucHV0TW9kdWxlIHt9XG4iXX0=