@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,53 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { FoehnInputComponent } from '../foehn-input/foehn-input.component';
3
+ import { FoehnCheckableGroupComponent } from './foehn-checkable-group.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../foehn-validation-alerts/foehn-validation-alerts.component";
8
+ import * as i4 from "../foehn-help-modal/foehn-help-modal.component";
9
+ import * as i5 from "../sdk-dictionary/sdk-dictionary.pipe";
10
+ export class FoehnSelectComponent extends FoehnCheckableGroupComponent {
11
+ constructor(zone) {
12
+ super(zone);
13
+ this.zone = zone;
14
+ this.noSelectionLabel = '-';
15
+ }
16
+ /**
17
+ * Angular uses object identity to select option. It's possible for the identities of items to change while the data does not.
18
+ * This can happen, for example, if the items are produced from an RPC to the server, and that RPC is re-run.
19
+ * Even if the data hasn't changed, the second response will produce objects with different identities.
20
+ * (see: https://angular.io/api/forms/SelectControlValueAccessor#customizing-option-selection)
21
+ *
22
+ * @param value1 as first value to compare to
23
+ * @param value2 as value to be compared to
24
+ * @returns boolean
25
+ */
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ compareFn(value1, value2) {
28
+ return this.areValuesEquals(value1, value2);
29
+ }
30
+ }
31
+ FoehnSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnSelectComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
32
+ FoehnSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: FoehnSelectComponent, selector: "foehn-select", inputs: { multiple: "multiple", noSelectionLabel: "noSelectionLabel" }, providers: [
33
+ {
34
+ provide: FoehnInputComponent,
35
+ useExisting: forwardRef(() => FoehnSelectComponent),
36
+ multi: true
37
+ }
38
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnHelpModalComponent, selector: "foehn-help-modal", inputs: ["modalContent"] }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnSelectComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'foehn-select', providers: [
42
+ {
43
+ provide: FoehnInputComponent,
44
+ useExisting: forwardRef(() => FoehnSelectComponent),
45
+ multi: true
46
+ }
47
+ ], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <div class=\"d-flex justify-content-between\">\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n <foehn-help-modal\n class=\"removePaddingButton\"\n *ngIf=\"!!helpModal\"\n [modalContent]=\"helpModal\"\n ></foehn-help-modal>\n </div>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <div *ngIf=\"!elements\">Chargement...</div>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <select\n *ngIf=\"!multiple\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [attr.autocomplete]=\"getAutoComplete()\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option *ngIf=\"!required\" [ngValue]=\"null\">\n {{ noSelectionLabel }}\n </option>\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.disabled]=\"getDisabled(element) ? 'disabled' : null\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n <select\n *ngIf=\"multiple\"\n multiple\n [attr.aria-multiselectable]=\"true\"\n [class.is-invalid]=\"hasErrorsToDisplay() || hasInheritErrorFromParent()\"\n class=\"form-control\"\n [name]=\"name || label\"\n [attr.id]=\"buildChildId()\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-required]=\"required || null\"\n [ngModel]=\"model\"\n (ngModelChange)=\"updateNgModel($event)\"\n [compareWith]=\"compareFn.bind(this)\"\n (change)=\"handleChange(model)\"\n #entryComponent\n ngDefaultControl\n >\n <option\n *ngFor=\"let element of elements\"\n [ngValue]=\"getValue(element)\"\n [attr.selected]=\"isElementSelected(element) ? 'selected' : null\"\n [attr.aria-selected]=\"isElementSelected(element)\"\n >\n {{ getLabel(element) }}\n </option>\n </select>\n</div>\n" }]
48
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { multiple: [{
49
+ type: Input
50
+ }], noSelectionLabel: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jaGVja2FibGVzL2ZvZWhuLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY2hlY2thYmxlcy9mb2Vobi1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7OztBQWFqRixNQUFNLE9BQU8sb0JBQ1QsU0FBUSw0QkFBNEI7SUFRcEMsWUFBb0IsSUFBWTtRQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFESSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRmhDLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUl2QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsOERBQThEO0lBQzlELFNBQVMsQ0FBQyxNQUFXLEVBQUUsTUFBVztRQUM5QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2lIQTFCUSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwrR0FSbEI7UUFDUDtZQUNJLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osaURDZEwsdzlHQW9HQTsyRkRwRmEsb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNJLGNBQWMsYUFFYjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7NkZBTUQsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdab25lLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VobkNoZWNrYWJsZUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9mb2Vobi1jaGVja2FibGUtZ3JvdXAuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5TZWxlY3RDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5TZWxlY3RDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuQ2hlY2thYmxlR3JvdXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbm9TZWxlY3Rpb25MYWJlbCA9ICctJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgICAgIHN1cGVyKHpvbmUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuZ3VsYXIgdXNlcyBvYmplY3QgaWRlbnRpdHkgdG8gc2VsZWN0IG9wdGlvbi4gSXQncyBwb3NzaWJsZSBmb3IgdGhlIGlkZW50aXRpZXMgb2YgaXRlbXMgdG8gY2hhbmdlIHdoaWxlIHRoZSBkYXRhIGRvZXMgbm90LlxuICAgICAqIFRoaXMgY2FuIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBpdGVtcyBhcmUgcHJvZHVjZWQgZnJvbSBhbiBSUEMgdG8gdGhlIHNlcnZlciwgYW5kIHRoYXQgUlBDIGlzIHJlLXJ1bi5cbiAgICAgKiBFdmVuIGlmIHRoZSBkYXRhIGhhc24ndCBjaGFuZ2VkLCB0aGUgc2Vjb25kIHJlc3BvbnNlIHdpbGwgcHJvZHVjZSBvYmplY3RzIHdpdGggZGlmZmVyZW50IGlkZW50aXRpZXMuXG4gICAgICogKHNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9TZWxlY3RDb250cm9sVmFsdWVBY2Nlc3NvciNjdXN0b21pemluZy1vcHRpb24tc2VsZWN0aW9uKVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlMSBhcyBmaXJzdCB2YWx1ZSB0byBjb21wYXJlIHRvXG4gICAgICogQHBhcmFtIHZhbHVlMiBhcyB2YWx1ZSB0byBiZSBjb21wYXJlZCB0b1xuICAgICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbXBhcmVGbih2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJlVmFsdWVzRXF1YWxzKHZhbHVlMSwgdmFsdWUyKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNMYWJlbFNyT25seSA/ICdzci1vbmx5JyA6IGxhYmVsU3R5bGVNb2RpZmllclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Zm9laG4taGVscC1tb2RhbFxuICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVQYWRkaW5nQnV0dG9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiISFoZWxwTW9kYWxcIlxuICAgICAgICAgICAgW21vZGFsQ29udGVudF09XCJoZWxwTW9kYWxcIlxuICAgICAgICA+PC9mb2Vobi1oZWxwLW1vZGFsPlxuICAgIDwvZGl2PlxuXG4gICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWVsZW1lbnRzXCI+Q2hhcmdlbWVudC4uLjwvZGl2PlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8c2VsZWN0XG4gICAgICAgICpuZ0lmPVwiIW11bHRpcGxlXCJcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJnZXREZXNjcmliZWRCeSgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiZ2V0QXV0b0NvbXBsZXRlKClcIlxuICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZU5nTW9kZWwoJGV2ZW50KVwiXG4gICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRm4uYmluZCh0aGlzKVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKG1vZGVsKVwiXG4gICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICBuZ0RlZmF1bHRDb250cm9sXG4gICAgPlxuICAgICAgICA8b3B0aW9uICpuZ0lmPVwiIXJlcXVpcmVkXCIgW25nVmFsdWVdPVwibnVsbFwiPlxuICAgICAgICAgICAge3sgbm9TZWxlY3Rpb25MYWJlbCB9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHNcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZ2V0VmFsdWUoZWxlbWVudClcIlxuICAgICAgICAgICAgW2F0dHIuc2VsZWN0ZWRdPVwiaXNFbGVtZW50U2VsZWN0ZWQoZWxlbWVudCkgPyAnc2VsZWN0ZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJnZXREaXNhYmxlZChlbGVtZW50KSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgZ2V0TGFiZWwoZWxlbWVudCkgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gICAgPHNlbGVjdFxuICAgICAgICAqbmdJZj1cIm11bHRpcGxlXCJcbiAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpIHx8IGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW25hbWVdPVwibmFtZSB8fCBsYWJlbFwiXG4gICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgpXCJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVOZ01vZGVsKCRldmVudClcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuLmJpbmQodGhpcylcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZShtb2RlbClcIlxuICAgICAgICAjZW50cnlDb21wb25lbnRcbiAgICAgICAgbmdEZWZhdWx0Q29udHJvbFxuICAgID5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZWxlbWVudHNcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwiZ2V0VmFsdWUoZWxlbWVudClcIlxuICAgICAgICAgICAgW2F0dHIuc2VsZWN0ZWRdPVwiaXNFbGVtZW50U2VsZWN0ZWQoZWxlbWVudCkgPyAnc2VsZWN0ZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzRWxlbWVudFNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgZ2V0TGFiZWwoZWxlbWVudCkgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG48L2Rpdj5cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export class FoehnConfirmModalContent {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx3QkFBd0I7Q0FLcEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRm9laG5Db25maXJtTW9kYWxDb250ZW50IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBodG1sQ29udGVudDogc3RyaW5nO1xuICAgIG9rQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx3QkFBd0I7Q0FNcEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRm9laG5Db25maXJtTW9kYWxDb250ZW50IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBodG1sQ29udGVudDogc3RyaW5nO1xuICAgIG9rQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmc7XG4gICAgY2xvc2VhYmxlPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./foehn-confirm-modal.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../foehn-modal/foehn-modal.component";
6
+ export class FoehnConfirmModalComponent {
7
+ constructor(confirmModalService) {
8
+ this.confirmModalService = confirmModalService;
9
+ this.isVisible = false;
10
+ // This need to be done as we're passing these functions to another component.
11
+ this.cancel = this.cancel.bind(this);
12
+ this.ok = this.ok.bind(this);
13
+ }
14
+ get content() {
15
+ return this.confirmModalService.getContent();
16
+ }
17
+ ngOnInit() {
18
+ this.confirmModalService
19
+ .getIsVisible()
20
+ // eslint-disable-next-line rxjs-angular/prefer-async-pipe
21
+ .subscribe(isVisible => (this.isVisible = isVisible));
22
+ }
23
+ cancel() {
24
+ this.confirmModalService.close();
25
+ }
26
+ ok() {
27
+ this.confirmModalService.ok();
28
+ }
29
+ updateVisibilityStatus(status) {
30
+ // In case the modal is closed by another mean such as the Escape key.
31
+ this.isVisible = status;
32
+ }
33
+ }
34
+ FoehnConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalComponent, deps: [{ token: i1.FoehnConfirmModalService }], target: i0.ɵɵFactoryTarget.Component });
35
+ FoehnConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'foehn-confirm-modal', template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n" }]
39
+ }], ctorParameters: function () { return [{ type: i1.FoehnConfirmModalService }]; } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxZQUFvQixtQkFBNkM7UUFBN0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUZqRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2QsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CO2FBQ25CLFlBQVksRUFBRTtZQUNmLDBEQUEwRDthQUN6RCxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsRUFBRTtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBZTtRQUNsQyxzRUFBc0U7UUFDdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDNUIsQ0FBQzs7dUhBL0JRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDJEQ1Z2QyxpbENBaUNBOzJGRHZCYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9mb2Vobi1jb25maXJtLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxDb250ZW50IH0gZnJvbSAnLi9mb2Vobi1jb25maXJtLW1vZGFsLWNvbnRlbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWNvbmZpcm0tbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1jb25maXJtLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpcm1Nb2RhbFNlcnZpY2U6IEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSkge1xuICAgICAgICAvLyBUaGlzIG5lZWQgdG8gYmUgZG9uZSBhcyB3ZSdyZSBwYXNzaW5nIHRoZXNlIGZ1bmN0aW9ucyB0byBhbm90aGVyIGNvbXBvbmVudC5cbiAgICAgICAgdGhpcy5jYW5jZWwgPSB0aGlzLmNhbmNlbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLm9rID0gdGhpcy5vay5iaW5kKHRoaXMpO1xuICAgIH1cblxuICAgIGdldCBjb250ZW50KCk6IE9ic2VydmFibGU8Rm9laG5Db25maXJtTW9kYWxDb250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2UuZ2V0Q29udGVudCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRJc1Zpc2libGUoKVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgLnN1YnNjcmliZShpc1Zpc2libGUgPT4gKHRoaXMuaXNWaXNpYmxlID0gaXNWaXNpYmxlKSk7XG4gICAgfVxuXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2UuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maXJtTW9kYWxTZXJ2aWNlLm9rKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmlzaWJpbGl0eVN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgbW9kYWwgaXMgY2xvc2VkIGJ5IGFub3RoZXIgbWVhbiBzdWNoIGFzIHRoZSBFc2NhcGUga2V5LlxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHN0YXR1cztcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBbbW9kYWxIZWFkZXJUZXh0XT1cIm1vZGFsQ29udGVudC50aXRsZSB8fCAnQ29uZmlybWF0aW9uJ1wiXG4gICAgbW9kYWxTaXplPVwibW9kYWwtbWRcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc1Zpc2libGVcIlxuICAgIChpc01vZGFsVmlzaWJsZUNoYW5nZSk9XCJ1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCRldmVudClcIlxuICAgIFtjbG9zZWFibGVdPVwiXG4gICAgICAgIG1vZGFsQ29udGVudC5jbG9zZWFibGUgIT09IG51bGwgJiYgbW9kYWxDb250ZW50LmNsb3NlYWJsZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG1vZGFsQ29udGVudC5jbG9zZWFibGVcbiAgICAgICAgICAgIDogdHJ1ZVxuICAgIFwiXG4gICAgKm5nSWY9XCJjb250ZW50IHwgYXN5bmMgYXMgbW9kYWxDb250ZW50XCJcbj5cbiAgICA8cCBbaW5uZXJIVE1MXT1cIm1vZGFsQ29udGVudC5odG1sQ29udGVudFwiPjwvcD5cblxuICAgIDxkaXYgbW9kYWwtZm9vdGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXItMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImNvbmZpcm1CdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgbW9kYWxDb250ZW50LmNhbmNlbEJ1dHRvbkxhYmVsIHx8ICdBbm51bGVyJyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJjYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1sLTNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvaygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtb2RhbENvbnRlbnQub2tCdXR0b25MYWJlbCB8fCAnQ29uZmlybWVyJyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FoehnModalModule } from '../foehn-modal/foehn-modal.module';
4
+ import { FoehnConfirmModalComponent } from './foehn-confirm-modal.component';
5
+ import * as i0 from "@angular/core";
6
+ export class FoehnConfirmModalModule {
7
+ }
8
+ FoehnConfirmModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ FoehnConfirmModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalModule, declarations: [FoehnConfirmModalComponent], imports: [CommonModule, FoehnModalModule], exports: [FoehnConfirmModalComponent] });
10
+ FoehnConfirmModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalModule, imports: [CommonModule, FoehnModalModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule, FoehnModalModule],
15
+ declarations: [FoehnConfirmModalComponent],
16
+ exports: [FoehnConfirmModalComponent]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFPN0UsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLGlCQUhqQiwwQkFBMEIsYUFEL0IsWUFBWSxFQUFFLGdCQUFnQixhQUU5QiwwQkFBMEI7cUhBRTNCLHVCQUF1QixZQUp0QixZQUFZLEVBQUUsZ0JBQWdCOzJGQUkvQix1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvZWhuTW9kYWxNb2R1bGUgfSBmcm9tICcuLi9mb2Vobi1tb2RhbC9mb2Vobi1tb2RhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb2Vobk1vZGFsTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtGb2VobkNvbmZpcm1Nb2RhbENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0ZvZWhuQ29uZmlybU1vZGFsQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBGb2VobkNvbmZpcm1Nb2RhbE1vZHVsZSB7fVxuIl19
@@ -42,12 +42,12 @@ export class FoehnConfirmModalService {
42
42
  this.rejectCallback = null;
43
43
  }
44
44
  }
45
- FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnConfirmModalService, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnConfirmModalService, decorators: [{
45
+ FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
+ FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalService, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: FoehnConfirmModalService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
51
51
  }]
52
52
  }], ctorParameters: function () { return []; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTXJDLE1BQU0sT0FBTyx3QkFBd0I7SUFTakM7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBR3RFLDhEQUE4RDtRQUN0RCxvQkFBZSxHQUE2QixJQUFJLENBQUM7UUFDekQsOERBQThEO1FBQ3RELG1CQUFjLEdBQTZCLElBQUksQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsRUFBRTtRQUNFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWlDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7O3FIQWxEUSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvZWhuQ29uZmlybU1vZGFsQ29udGVudCB9IGZyb20gJy4vZm9laG4tY29uZmlybS1tb2RhbC1jb250ZW50JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29udGVudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9laG5Db25maXJtTW9kYWxDb250ZW50PihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpc2libGU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgcmVzb2x2ZUNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSBudWxsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSByZWplY3RDYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0aGlzLmNvbnRlbnQucGlwZShtYXAoZGF0YSA9PiAhIWRhdGEpKTtcbiAgICB9XG5cbiAgICBnZXRJc1Zpc2libGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudCgpOiBPYnNlcnZhYmxlPEZvZWhuQ29uZmlybU1vZGFsQ29udGVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWplY3RDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5yZWplY3RDYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZXNvbHZlQ2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgb3BlbkNvbmZpcm1Nb2RhbChjb250ZW50OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5jb250ZW50Lm5leHQoY29udGVudCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrID0gcmVzb2x2ZTtcbiAgICAgICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnJlc29sdmVDYWxsYmFjayA9IG51bGw7XG4gICAgICAgIHRoaXMucmVqZWN0Q2FsbGJhY2sgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWNvbmZpcm0tbW9kYWwvZm9laG4tY29uZmlybS1tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT3JDLE1BQU0sT0FBTyx3QkFBd0I7SUFTakM7UUFSUSxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBR3RFLDhEQUE4RDtRQUN0RCxvQkFBZSxHQUE2QixJQUFJLENBQUM7UUFDekQsOERBQThEO1FBQ3RELG1CQUFjLEdBQTZCLElBQUksQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsRUFBRTtRQUNFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWlDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7O3FIQWxEUSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZyQixNQUFNOzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxDb250ZW50IH0gZnJvbSAnLi9mb2Vobi1jb25maXJtLW1vZGFsLWNvbnRlbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuQ29uZmlybU1vZGFsU2VydmljZSB7XG4gICAgcHJpdmF0ZSBjb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQ+KG51bGwpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlzaWJsZTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSByZXNvbHZlQ2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCA9IG51bGw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIHJlamVjdENhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRoaXMuY29udGVudC5waXBlKG1hcChkYXRhID0+ICEhZGF0YSkpO1xuICAgIH1cblxuICAgIGdldElzVmlzaWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50KCk6IE9ic2VydmFibGU8Rm9laG5Db25maXJtTW9kYWxDb250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlamVjdENhbGxiYWNrKSB7XG4gICAgICAgICAgICB0aGlzLnJlamVjdENhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgb2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlc29sdmVDYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ2FsbGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG5cbiAgICBvcGVuQ29uZmlybU1vZGFsKGNvbnRlbnQ6IEZvZWhuQ29uZmlybU1vZGFsQ29udGVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICB0aGlzLmNvbnRlbnQubmV4dChjb250ZW50KTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ2FsbGJhY2sgPSByZXNvbHZlO1xuICAgICAgICAgICAgdGhpcy5yZWplY3RDYWxsYmFjayA9IHJlamVjdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZW50Lm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMucmVzb2x2ZUNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWplY3RDYWxsYmFjayA9IG51bGw7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,167 @@
1
+ import { Subject } from 'rxjs';
2
+ import { first } from 'rxjs/operators';
3
+ export class DatePickerNavigationHelper {
4
+ constructor() {
5
+ this._displayNextMonth = new Subject();
6
+ this._displayPreviousMonth = new Subject();
7
+ }
8
+ get displayNextMonth() {
9
+ return this._displayNextMonth.asObservable();
10
+ }
11
+ get displayPreviousMonth() {
12
+ return this._displayPreviousMonth.asObservable();
13
+ }
14
+ set currentFocusedElement(elem) {
15
+ this._currentFocusedElement = DatePickerNavigationHelper.convertElementToFocusedDay(elem);
16
+ }
17
+ set daysButtonsElemRef(elems) {
18
+ this._daysButtonsElemRef = elems;
19
+ }
20
+ set hostId(id) {
21
+ this._hostId = id;
22
+ }
23
+ static convertElementToFocusedDay(elem) {
24
+ if (!elem) {
25
+ return null;
26
+ }
27
+ return {
28
+ disabled: elem.getAttribute('disabled') !== null,
29
+ indexDay: +elem.getAttribute('day-number') - 1,
30
+ indexRow: +elem.getAttribute('data-row-index'),
31
+ indexColumn: +elem.getAttribute('data-column-index')
32
+ };
33
+ }
34
+ static focusPreviousMonthButton(hostId) {
35
+ const element = document.getElementById(`${hostId}previous-month`);
36
+ if (element) {
37
+ element.focus();
38
+ }
39
+ }
40
+ static focusNextMonthButton(hostId) {
41
+ const element = document.getElementById(`${hostId}next-month`);
42
+ if (element) {
43
+ element.focus();
44
+ }
45
+ }
46
+ focusDefaultDay(hasSelectedDay) {
47
+ const daysInWeek = this.getEnabledDaysOfWeek();
48
+ if (hasSelectedDay) {
49
+ const selectedDay = daysInWeek.filter(value => value.nativeElement.getAttribute('data-is-selected') ===
50
+ 'true');
51
+ if (selectedDay.length) {
52
+ selectedDay[0].nativeElement.focus();
53
+ }
54
+ }
55
+ else {
56
+ const hasToday = daysInWeek.filter(value => value.nativeElement.getAttribute('data-is-today') === 'true');
57
+ if (hasToday.length) {
58
+ hasToday[0].nativeElement.focus();
59
+ }
60
+ }
61
+ }
62
+ focusNextDay() {
63
+ const daysInWeek = this.getEnabledDaysOfWeek();
64
+ if (!!daysInWeek.length) {
65
+ const indexSelected = this.getCurrentFocusedIndex(daysInWeek);
66
+ const nextIndex = indexSelected + 1;
67
+ if (nextIndex >= daysInWeek.length) {
68
+ // Here we change week so we need to listen to new loaded day buttons to focus proper one
69
+ this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
70
+ const newDaysInWeek = this.getEnabledDaysOfWeek();
71
+ if (!newDaysInWeek.length) {
72
+ DatePickerNavigationHelper.focusPreviousMonthButton(this._hostId);
73
+ return;
74
+ }
75
+ newDaysInWeek[0].nativeElement.focus();
76
+ });
77
+ this._displayNextMonth.next();
78
+ return;
79
+ }
80
+ daysInWeek[nextIndex].nativeElement.focus();
81
+ }
82
+ }
83
+ focusPreviousDay() {
84
+ const daysInWeek = this.getEnabledDaysOfWeek();
85
+ if (!!daysInWeek.length) {
86
+ const indexSelected = this.getCurrentFocusedIndex(daysInWeek);
87
+ const previousIndex = indexSelected - 1;
88
+ if (previousIndex < 0) {
89
+ // Here we change week so we need to listen to new loaded day buttons to focus proper one
90
+ this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
91
+ const newDaysInWeek = this.getEnabledDaysOfWeek();
92
+ if (!newDaysInWeek.length) {
93
+ DatePickerNavigationHelper.focusNextMonthButton(this._hostId);
94
+ return;
95
+ }
96
+ newDaysInWeek[newDaysInWeek.length - 1].nativeElement.focus();
97
+ });
98
+ this._displayPreviousMonth.next();
99
+ return;
100
+ }
101
+ daysInWeek[previousIndex].nativeElement.focus();
102
+ }
103
+ }
104
+ focusNextWeekDay() {
105
+ const daysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
106
+ const nextRowIndex = this._currentFocusedElement.indexRow + 1;
107
+ if (nextRowIndex >= daysInColumn.length ||
108
+ daysInColumn[nextRowIndex].nativeElement.getAttribute('disabled') !== null) {
109
+ // Here we change week so we need to listen to new loaded day buttons to focus proper one
110
+ this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
111
+ const enabledDaysInColumn = this.getEnabledDaysInColumn(this._currentFocusedElement.indexColumn);
112
+ if (!enabledDaysInColumn.length) {
113
+ DatePickerNavigationHelper.focusPreviousMonthButton(this._hostId);
114
+ return;
115
+ }
116
+ const newDaysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
117
+ let newRowIndex = 0;
118
+ if (newDaysInColumn[newRowIndex].nativeElement.getAttribute('disabled') !== null) {
119
+ newRowIndex++;
120
+ }
121
+ newDaysInColumn[newRowIndex].nativeElement.focus();
122
+ });
123
+ this._displayNextMonth.next();
124
+ return;
125
+ }
126
+ daysInColumn[nextRowIndex].nativeElement.focus();
127
+ }
128
+ focusPreviousWeekDay() {
129
+ const daysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
130
+ const previousRowIndex = this._currentFocusedElement.indexRow - 1;
131
+ if (previousRowIndex < 0 ||
132
+ daysInColumn[previousRowIndex].nativeElement.getAttribute('disabled') !== null) {
133
+ // Here we change week so we need to listen to new loaded day buttons to focus proper one
134
+ this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
135
+ const enabledDaysInColumn = this.getEnabledDaysInColumn(this._currentFocusedElement.indexColumn);
136
+ if (!enabledDaysInColumn.length) {
137
+ DatePickerNavigationHelper.focusNextMonthButton(this._hostId);
138
+ return;
139
+ }
140
+ const newDaysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
141
+ let newRowIndex = newDaysInColumn.length - 1;
142
+ if (newDaysInColumn[newRowIndex].nativeElement.getAttribute('disabled') !== null) {
143
+ newRowIndex--;
144
+ }
145
+ newDaysInColumn[newRowIndex].nativeElement.focus();
146
+ });
147
+ this._displayPreviousMonth.next();
148
+ return;
149
+ }
150
+ daysInColumn[previousRowIndex].nativeElement.focus();
151
+ }
152
+ getEnabledDaysOfWeek() {
153
+ return [...this._daysButtonsElemRef.toArray()].filter(value => value.nativeElement.getAttribute('disabled') === null);
154
+ }
155
+ getAllDaysInColumn(indexColumn) {
156
+ return [...this._daysButtonsElemRef.toArray()].filter(value => +value.nativeElement.getAttribute('data-column-index') ===
157
+ indexColumn);
158
+ }
159
+ getEnabledDaysInColumn(indexColumn) {
160
+ return this.getAllDaysInColumn(indexColumn).filter(value => value.nativeElement.getAttribute('disabled') === null);
161
+ }
162
+ getCurrentFocusedIndex(daysInWeek) {
163
+ return daysInWeek.findIndex(item => item.nativeElement.getAttribute('id') ===
164
+ document.activeElement.getAttribute('id'));
165
+ }
166
+ }
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUtZLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQXVPeEQsQ0FBQztJQXJPRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBYTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQy9FLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsRUFBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sTUFBTSxDQUFDLDBCQUEwQixDQUFDLElBQWE7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSTtZQUNoRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7WUFDOUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1NBQ3ZELENBQUM7SUFDTixDQUFDO0lBRU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQWM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBYztRQUM5QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxZQUFZLENBQUMsQ0FBQztRQUMvRCxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsY0FBdUI7UUFDbkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsSUFBSSxjQUFjLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDakMsS0FBSyxDQUFDLEVBQUUsQ0FDSixLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDcEQsTUFBTSxDQUNiLENBQUM7WUFDRixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEM7U0FDSjthQUFNO1lBQ0gsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDOUIsS0FBSyxDQUFDLEVBQUUsQ0FDSixLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxNQUFNLENBQ25FLENBQUM7WUFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDckM7U0FDSjtJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUQsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUNwQyxJQUFJLFNBQVMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNoQyx5RkFBeUY7Z0JBQ3pGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO3dCQUN2QiwwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDL0MsSUFBSSxDQUFDLE9BQU8sQ0FDZixDQUFDO3dCQUNGLE9BQU87cUJBQ1Y7b0JBQ0QsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM5QixPQUFPO2FBQ1Y7WUFDRCxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sYUFBYSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUM7WUFDeEMsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQix5RkFBeUY7Z0JBQ3pGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO3dCQUN2QiwwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FDM0MsSUFBSSxDQUFDLE9BQU8sQ0FDZixDQUFDO3dCQUNGLE9BQU87cUJBQ1Y7b0JBQ0QsYUFBYSxDQUNULGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUMzQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQyxPQUFPO2FBQ1Y7WUFDRCxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FDMUMsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQ0ksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNO1lBQ25DLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNqRCxVQUFVLENBQ2IsS0FBSyxJQUFJLEVBQ1o7WUFDRSx5RkFBeUY7WUFDekYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FDMUMsQ0FBQztnQkFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFO29CQUM3QiwwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDL0MsSUFBSSxDQUFDLE9BQU8sQ0FDZixDQUFDO29CQUNGLE9BQU87aUJBQ1Y7Z0JBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUMzQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUMxQyxDQUFDO2dCQUNGLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDcEIsSUFDSSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDbkQsVUFBVSxDQUNiLEtBQUssSUFBSSxFQUNaO29CQUNFLFdBQVcsRUFBRSxDQUFDO2lCQUNqQjtnQkFDRCxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlCLE9BQU87U0FDVjtRQUNELFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQ3hDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQzFDLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQ0ksZ0JBQWdCLEdBQUcsQ0FBQztZQUNwQixZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNyRCxVQUFVLENBQ2IsS0FBSyxJQUFJLEVBQ1o7WUFDRSx5RkFBeUY7WUFDekYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FDMUMsQ0FBQztnQkFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFO29CQUM3QiwwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FDM0MsSUFBSSxDQUFDLE9BQU8sQ0FDZixDQUFDO29CQUNGLE9BQU87aUJBQ1Y7Z0JBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUMzQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUMxQyxDQUFDO2dCQUNGLElBQUksV0FBVyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUNJLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNuRCxVQUFVLENBQ2IsS0FBSyxJQUFJLEVBQ1o7b0JBQ0UsV0FBVyxFQUFFLENBQUM7aUJBQ2pCO2dCQUNELGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsT0FBTztTQUNWO1FBQ0QsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNqRCxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FDakUsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxXQUFtQjtRQUMxQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2pELEtBQUssQ0FBQyxFQUFFLENBQ0osQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztZQUN0RCxXQUFXLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBRU8sc0JBQXNCLENBQUMsV0FBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUM5QyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FDakUsQ0FBQztJQUNOLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxVQUF3QjtRQUNuRCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUNoRCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRm9jdXNlZERheSB9IGZyb20gJy4vZm9jdXNlZC1kYXkudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlciB7XG4gICAgcHJpdmF0ZSBfY3VycmVudEZvY3VzZWRFbGVtZW50OiBGb2N1c2VkRGF5O1xuICAgIHByaXZhdGUgX2RheXNCdXR0b25zRWxlbVJlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICAgIHByaXZhdGUgX2hvc3RJZDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfZGlzcGxheU5leHRNb250aCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZGlzcGxheVByZXZpb3VzTW9udGggPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGRpc3BsYXlOZXh0TW9udGgoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBkaXNwbGF5UHJldmlvdXNNb250aCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlQcmV2aW91c01vbnRoLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHNldCBjdXJyZW50Rm9jdXNlZEVsZW1lbnQoZWxlbTogRWxlbWVudCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQgPSBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5jb252ZXJ0RWxlbWVudFRvRm9jdXNlZERheShcbiAgICAgICAgICAgIGVsZW1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXQgZGF5c0J1dHRvbnNFbGVtUmVmKGVsZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj4pIHtcbiAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmID0gZWxlbXM7XG4gICAgfVxuXG4gICAgc2V0IGhvc3RJZChpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2hvc3RJZCA9IGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGNvbnZlcnRFbGVtZW50VG9Gb2N1c2VkRGF5KGVsZW06IEVsZW1lbnQpOiBGb2N1c2VkRGF5IHtcbiAgICAgICAgaWYgKCFlbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGVsZW0uZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpICE9PSBudWxsLFxuICAgICAgICAgICAgaW5kZXhEYXk6ICtlbGVtLmdldEF0dHJpYnV0ZSgnZGF5LW51bWJlcicpIC0gMSxcbiAgICAgICAgICAgIGluZGV4Um93OiArZWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtcm93LWluZGV4JyksXG4gICAgICAgICAgICBpbmRleENvbHVtbjogK2VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLWNvbHVtbi1pbmRleCcpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZm9jdXNQcmV2aW91c01vbnRoQnV0dG9uKGhvc3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHtob3N0SWR9cHJldmlvdXMtbW9udGhgKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGZvY3VzTmV4dE1vbnRoQnV0dG9uKGhvc3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHtob3N0SWR9bmV4dC1tb250aGApO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNEZWZhdWx0RGF5KGhhc1NlbGVjdGVkRGF5OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgIGlmIChoYXNTZWxlY3RlZERheSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXkgPSBkYXlzSW5XZWVrLmZpbHRlcihcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1pcy1zZWxlY3RlZCcpID09PVxuICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWREYXlbMF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaGFzVG9kYXkgPSBkYXlzSW5XZWVrLmZpbHRlcihcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1pcy10b2RheScpID09PSAndHJ1ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaGFzVG9kYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaGFzVG9kYXlbMF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNOZXh0RGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoISFkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTZWxlY3RlZCA9IHRoaXMuZ2V0Q3VycmVudEZvY3VzZWRJbmRleChkYXlzSW5XZWVrKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4U2VsZWN0ZWQgKyAxO1xuICAgICAgICAgICAgaWYgKG5leHRJbmRleCA+PSBkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIC8vIEhlcmUgd2UgY2hhbmdlIHdlZWsgc28gd2UgbmVlZCB0byBsaXN0ZW4gdG8gbmV3IGxvYWRlZCBkYXkgYnV0dG9ucyB0byBmb2N1cyBwcm9wZXIgb25lXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdEYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW5ld0RheXNJbldlZWsubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c1ByZXZpb3VzTW9udGhCdXR0b24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faG9zdElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0RheXNJbldlZWtbMF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGgubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRheXNJbldlZWtbbmV4dEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c1ByZXZpb3VzRGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoISFkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXhTZWxlY3RlZCA9IHRoaXMuZ2V0Q3VycmVudEZvY3VzZWRJbmRleChkYXlzSW5XZWVrKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBpbmRleFNlbGVjdGVkIC0gMTtcbiAgICAgICAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIC8vIEhlcmUgd2UgY2hhbmdlIHdlZWsgc28gd2UgbmVlZCB0byBsaXN0ZW4gdG8gbmV3IGxvYWRlZCBkYXkgYnV0dG9ucyB0byBmb2N1cyBwcm9wZXIgb25lXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdEYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW5ld0RheXNJbldlZWsubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHRNb250aEJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ob3N0SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1tcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0RheXNJbldlZWsubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgICBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5UHJldmlvdXNNb250aC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF5c0luV2Vla1twcmV2aW91c0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c05leHRXZWVrRGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5Db2x1bW4gPSB0aGlzLmdldEFsbERheXNJbkNvbHVtbihcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXh0Um93SW5kZXggPSB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhSb3cgKyAxO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZXh0Um93SW5kZXggPj0gZGF5c0luQ29sdW1uLmxlbmd0aCB8fFxuICAgICAgICAgICAgZGF5c0luQ29sdW1uW25leHRSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgKSAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEhlcmUgd2UgY2hhbmdlIHdlZWsgc28gd2UgbmVlZCB0byBsaXN0ZW4gdG8gbmV3IGxvYWRlZCBkYXkgYnV0dG9ucyB0byBmb2N1cyBwcm9wZXIgb25lXG4gICAgICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYuY2hhbmdlcy5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5hYmxlZERheXNJbkNvbHVtbiA9IHRoaXMuZ2V0RW5hYmxlZERheXNJbkNvbHVtbihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIWVuYWJsZWREYXlzSW5Db2x1bW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzUHJldmlvdXNNb250aEJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hvc3RJZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSb3dJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c1dlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUm93SW5kZXggPSB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhSb3cgLSAxO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcmV2aW91c1Jvd0luZGV4IDwgMCB8fFxuICAgICAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIZXJlIHdlIGNoYW5nZSB3ZWVrIHNvIHdlIG5lZWQgdG8gbGlzdGVuIHRvIG5ldyBsb2FkZWQgZGF5IGJ1dHRvbnMgdG8gZm9jdXMgcHJvcGVyIG9uZVxuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuYWJsZWREYXlzSW5Db2x1bW4gPSB0aGlzLmdldEVuYWJsZWREYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFlbmFibGVkRGF5c0luQ29sdW1uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHRNb250aEJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hvc3RJZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSb3dJbmRleCA9IG5ld0RheXNJbkNvbHVtbi5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF5c0luQ29sdW1uW25ld1Jvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICAgICAgICAgKSAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBuZXdSb3dJbmRleC0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbkNvbHVtbltwcmV2aW91c1Jvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbmFibGVkRGF5c09mV2VlaygpOiBFbGVtZW50UmVmW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMuX2RheXNCdXR0b25zRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpID09PSBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxEYXlzSW5Db2x1bW4oaW5kZXhDb2x1bW46IG51bWJlcik6IEVsZW1lbnRSZWZbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0uZmlsdGVyKFxuICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICArdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY29sdW1uLWluZGV4JykgPT09XG4gICAgICAgICAgICAgICAgaW5kZXhDb2x1bW5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVuYWJsZWREYXlzSW5Db2x1bW4oaW5kZXhDb2x1bW46IG51bWJlcik6IEVsZW1lbnRSZWZbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsbERheXNJbkNvbHVtbihpbmRleENvbHVtbikuZmlsdGVyKFxuICAgICAgICAgICAgdmFsdWUgPT4gdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRGb2N1c2VkSW5kZXgoZGF5c0luV2VlazogRWxlbWVudFJlZltdKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRheXNJbldlZWsuZmluZEluZGV4KFxuICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgIGl0ZW0ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJykgPT09XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2lkJylcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,132 @@
1
+ import dayjs from 'dayjs';
2
+ import localeData from 'dayjs/plugin/localeData';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ dayjs.extend(localeData);
5
+ export class DatePickerHelper {
6
+ constructor() {
7
+ this.YEAR_STRING_FORMAT = 'YYYY';
8
+ this.MONTH_STRING_NUMBER_FORMAT = 'M';
9
+ this.DAY_STRING_NUMBER_FORMAT = 'D';
10
+ this.NB_DAYS_IN_WEEK = 7;
11
+ this.DATE_STRING_FORMAT = 'YYYY-MM-DD';
12
+ this.DATE_READABLE_FORMAT = 'D MMMM YYYY';
13
+ this._displayedMonthYear = new BehaviorSubject(null);
14
+ this.loadLocale = (language) => import(`dayjs/locale/${language}`).then(() => dayjs.locale(language));
15
+ }
16
+ get displayedMonthYear() {
17
+ return this._displayedMonthYear.asObservable();
18
+ }
19
+ static getDateAsString(date) {
20
+ if (!!date && date.length === 3) {
21
+ return `${date[0]}-${date[1]}-${date[2]}`;
22
+ }
23
+ return null;
24
+ }
25
+ static getWeekday(date) {
26
+ const dayOfWeek = dayjs(date).format('dddd');
27
+ const weekDays = dayjs.weekdays();
28
+ return weekDays.indexOf(dayOfWeek);
29
+ }
30
+ static getNumberOfDaysInMonth(year, month) {
31
+ return dayjs(`${year}-${month}-01`).daysInMonth();
32
+ }
33
+ static getPreviousMonth(year, month) {
34
+ return dayjs(`${year}-${month}-01`).subtract(1, 'month');
35
+ }
36
+ static getNextMonth(year, month) {
37
+ return dayjs(`${year}-${month}-01`).add(1, 'month');
38
+ }
39
+ getWeekDays() {
40
+ const weekDays = [...dayjs.weekdays()];
41
+ // we need Lundi as first day of the week
42
+ weekDays.push(weekDays.shift());
43
+ return weekDays;
44
+ }
45
+ getWeeksOfMonth(initialYear, initialMonth, initialDay) {
46
+ this.initialYear = initialYear;
47
+ this.initialMonth = initialMonth;
48
+ this.initialDay = initialDay ? initialDay : '1';
49
+ const currentMonthDays = this.createDaysForCurrentMonth(initialYear, initialMonth);
50
+ const previousMonthDays = this.createDaysForPreviousMonth(initialYear, initialMonth, currentMonthDays);
51
+ const nextMonthDays = this.createDaysForNextMonth(initialYear, initialMonth, currentMonthDays);
52
+ const days = [
53
+ ...previousMonthDays,
54
+ ...currentMonthDays,
55
+ ...nextMonthDays
56
+ ];
57
+ this._displayedMonthYear.next({
58
+ year: currentMonthDays[0].date.year().toString(),
59
+ month: currentMonthDays[0].date.month().toString()
60
+ });
61
+ return this.buildWeeksOfMonth(days);
62
+ }
63
+ getNextWeeksOfMonth() {
64
+ const nextMonth = DatePickerHelper.getNextMonth(this.initialYear, this.initialMonth);
65
+ return this.getWeeksOfMonth(nextMonth.format(this.YEAR_STRING_FORMAT), nextMonth.format(this.MONTH_STRING_NUMBER_FORMAT));
66
+ }
67
+ getPreviousWeeksOfMonth() {
68
+ const previousMonth = DatePickerHelper.getPreviousMonth(this.initialYear, this.initialMonth);
69
+ return this.getWeeksOfMonth(previousMonth.format(this.YEAR_STRING_FORMAT), previousMonth.format(this.MONTH_STRING_NUMBER_FORMAT));
70
+ }
71
+ createDaysForCurrentMonth(year, month) {
72
+ return [
73
+ ...Array(DatePickerHelper.getNumberOfDaysInMonth(year, month))
74
+ ].map((day, index) => {
75
+ const date = dayjs(`${year}-${month}-${index + 1}`);
76
+ return {
77
+ date,
78
+ dateAsString: date.format(this.DATE_STRING_FORMAT),
79
+ dateAsReadable: date.format(this.DATE_READABLE_FORMAT),
80
+ dayOfMonth: index + 1,
81
+ isCurrentMonth: true
82
+ };
83
+ });
84
+ }
85
+ createDaysForPreviousMonth(year, month, currentMonthDays) {
86
+ const firstDayOfTheMonthWeekday = DatePickerHelper.getWeekday(currentMonthDays[0].dateAsString);
87
+ const previousMonth = DatePickerHelper.getPreviousMonth(year, month);
88
+ // Cover first day of the month being sunday
89
+ const visibleNumberOfDaysFromPreviousMonth = firstDayOfTheMonthWeekday
90
+ ? firstDayOfTheMonthWeekday - 1
91
+ : 6;
92
+ const previousMonthLastMondayDayOfMonth = dayjs(currentMonthDays[0].dateAsString)
93
+ .subtract(visibleNumberOfDaysFromPreviousMonth, 'day')
94
+ .date();
95
+ return [...Array(visibleNumberOfDaysFromPreviousMonth)].map((day, index) => {
96
+ const date = dayjs(`${previousMonth.year()}-${previousMonth.month() + 1}-${previousMonthLastMondayDayOfMonth + index}`);
97
+ return {
98
+ date,
99
+ dateAsString: date.format(this.DATE_STRING_FORMAT),
100
+ dateAsReadable: date.format(this.DATE_READABLE_FORMAT),
101
+ dayOfMonth: previousMonthLastMondayDayOfMonth + index,
102
+ isCurrentMonth: false
103
+ };
104
+ });
105
+ }
106
+ createDaysForNextMonth(year, month, currentMonthDays) {
107
+ const lastDayOfTheMonthWeekday = DatePickerHelper.getWeekday(`${year}-${month}-${currentMonthDays.length}`);
108
+ const nextMonth = DatePickerHelper.getNextMonth(year, month);
109
+ const visibleNumberOfDaysFromNextMonth = lastDayOfTheMonthWeekday
110
+ ? 7 - lastDayOfTheMonthWeekday
111
+ : 0;
112
+ return [...Array(visibleNumberOfDaysFromNextMonth)].map((day, index) => {
113
+ const date = dayjs(`${nextMonth.year()}-${nextMonth.month() + 1}-${index + 1}`);
114
+ return {
115
+ date,
116
+ dateAsString: date.format(this.DATE_STRING_FORMAT),
117
+ dateAsReadable: date.format(this.DATE_READABLE_FORMAT),
118
+ dayOfMonth: index + 1,
119
+ isCurrentMonth: false
120
+ };
121
+ });
122
+ }
123
+ buildWeeksOfMonth(days) {
124
+ const nbWeeks = days.length / this.NB_DAYS_IN_WEEK;
125
+ const weeks = [];
126
+ for (let i = 0; i < nbWeeks; i++) {
127
+ weeks.push(days.slice(i * this.NB_DAYS_IN_WEEK, (i + 1) * this.NB_DAYS_IN_WEEK));
128
+ }
129
+ return weeks;
130
+ }
131
+ }
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2RhdGUtcGlja2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtuRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFLYSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDNUIsK0JBQTBCLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV2QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBZ0NuRSxlQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFLENBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBMEs5RSxDQUFDO0lBek1HLElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQWM7UUFDakMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3RCxPQUFPLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDdkQsT0FBTyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ25ELE9BQU8sS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBS0QsV0FBVztRQUNQLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2Qyx5Q0FBeUM7UUFDekMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVoQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZSxDQUNYLFdBQW1CLEVBQ25CLFlBQW9CLEVBQ3BCLFVBQW1CO1FBRW5CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVoRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FDbkQsV0FBVyxFQUNYLFlBQVksQ0FDZixDQUFDO1FBQ0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQ3JELFdBQVcsRUFDWCxZQUFZLEVBQ1osZ0JBQWdCLENBQ25CLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQzdDLFdBQVcsRUFDWCxZQUFZLEVBQ1osZ0JBQWdCLENBQ25CLENBQUM7UUFDRixNQUFNLElBQUksR0FBRztZQUNULEdBQUcsaUJBQWlCO1lBQ3BCLEdBQUcsZ0JBQWdCO1lBQ25CLEdBQUcsYUFBYTtTQUNuQixDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUNoRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUMzQyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsWUFBWSxDQUNwQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN2QixTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUN6QyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUNwRCxDQUFDO0lBQ04sQ0FBQztJQUVELHVCQUF1QjtRQUNuQixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDbkQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FDcEIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FDdkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFDN0MsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FDeEQsQ0FBQztJQUNOLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN6RCxPQUFPO1lBQ0gsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2pFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsT0FBTztnQkFDSCxJQUFJO2dCQUNKLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDbEQsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2dCQUN0RCxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUM7Z0JBQ3JCLGNBQWMsRUFBRSxJQUFJO2FBQ3ZCLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTywwQkFBMEIsQ0FDOUIsSUFBWSxFQUNaLEtBQWEsRUFDYixnQkFBNEI7UUFFNUIsTUFBTSx5QkFBeUIsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQ3pELGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FDbkMsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVyRSw0Q0FBNEM7UUFDNUMsTUFBTSxvQ0FBb0MsR0FBRyx5QkFBeUI7WUFDbEUsQ0FBQyxDQUFDLHlCQUF5QixHQUFHLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVSLE1BQU0saUNBQWlDLEdBQUcsS0FBSyxDQUMzQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQ25DO2FBQ0ksUUFBUSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQzthQUNyRCxJQUFJLEVBQUUsQ0FBQztRQUVaLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN2RCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FDZCxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUNoRCxpQ0FBaUMsR0FBRyxLQUN4QyxFQUFFLENBQ0wsQ0FBQztZQUNGLE9BQU87Z0JBQ0gsSUFBSTtnQkFDSixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xELGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdEQsVUFBVSxFQUFFLGlDQUFpQyxHQUFHLEtBQUs7Z0JBQ3JELGNBQWMsRUFBRSxLQUFLO2FBQ3hCLENBQUM7UUFDTixDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxzQkFBc0IsQ0FDMUIsSUFBWSxFQUNaLEtBQWEsRUFDYixnQkFBNEI7UUFFNUIsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQ3hELEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FDaEQsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFN0QsTUFBTSxnQ0FBZ0MsR0FBRyx3QkFBd0I7WUFDN0QsQ0FBQyxDQUFDLENBQUMsR0FBRyx3QkFBd0I7WUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVSLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUNuRCxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FDZCxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FDOUQsQ0FBQztZQUNGLE9BQU87Z0JBQ0gsSUFBSTtnQkFDSixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xELGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdEQsVUFBVSxFQUFFLEtBQUssR0FBRyxDQUFDO2dCQUNyQixjQUFjLEVBQUUsS0FBSzthQUN4QixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZ0I7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxJQUFJLENBQ04sSUFBSSxDQUFDLEtBQUssQ0FDTixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFDeEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FDakMsQ0FDSixDQUFDO1NBQ0w7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERheU1vbnRoIH0gZnJvbSAnLi9kYXktbW9udGgudHlwZSc7XG5pbXBvcnQgeyBNb250aFllYXIgfSBmcm9tICcuL21vbnRoLXllYXIudHlwZSc7XG5cbmRheWpzLmV4dGVuZChsb2NhbGVEYXRhKTtcblxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJIZWxwZXIge1xuICAgIGluaXRpYWxNb250aDogc3RyaW5nO1xuICAgIGluaXRpYWxZZWFyOiBzdHJpbmc7XG4gICAgaW5pdGlhbERheTogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgWUVBUl9TVFJJTkdfRk9STUFUID0gJ1lZWVknO1xuICAgIHJlYWRvbmx5IE1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUID0gJ00nO1xuICAgIHJlYWRvbmx5IERBWV9TVFJJTkdfTlVNQkVSX0ZPUk1BVCA9ICdEJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgTkJfREFZU19JTl9XRUVLID0gNztcbiAgICBwcml2YXRlIHJlYWRvbmx5IERBVEVfU1RSSU5HX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IERBVEVfUkVBREFCTEVfRk9STUFUID0gJ0QgTU1NTSBZWVlZJztcblxuICAgIHByaXZhdGUgX2Rpc3BsYXllZE1vbnRoWWVhciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TW9udGhZZWFyPihudWxsKTtcblxuICAgIGdldCBkaXNwbGF5ZWRNb250aFllYXIoKTogT2JzZXJ2YWJsZTxNb250aFllYXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXllZE1vbnRoWWVhci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGF0ZUFzU3RyaW5nKGRhdGU6IG51bWJlcltdKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCEhZGF0ZSAmJiBkYXRlLmxlbmd0aCA9PT0gMykge1xuICAgICAgICAgICAgcmV0dXJuIGAke2RhdGVbMF19LSR7ZGF0ZVsxXX0tJHtkYXRlWzJdfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0V2Vla2RheShkYXRlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkYXlPZldlZWsgPSBkYXlqcyhkYXRlKS5mb3JtYXQoJ2RkZGQnKTtcbiAgICAgICAgY29uc3Qgd2Vla0RheXMgPSBkYXlqcy53ZWVrZGF5cygpO1xuXG4gICAgICAgIHJldHVybiB3ZWVrRGF5cy5pbmRleE9mKGRheU9mV2Vlayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TnVtYmVyT2ZEYXlzSW5Nb250aCh5ZWFyOiBzdHJpbmcsIG1vbnRoOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5kYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFByZXZpb3VzTW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXROZXh0TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5hZGQoMSwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgbG9hZExvY2FsZSA9IChsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiA9PlxuICAgICAgICBpbXBvcnQoYGRheWpzL2xvY2FsZS8ke2xhbmd1YWdlfWApLnRoZW4oKCkgPT4gZGF5anMubG9jYWxlKGxhbmd1YWdlKSk7XG5cbiAgICBnZXRXZWVrRGF5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHdlZWtEYXlzID0gWy4uLmRheWpzLndlZWtkYXlzKCldO1xuICAgICAgICAvLyB3ZSBuZWVkIEx1bmRpIGFzIGZpcnN0IGRheSBvZiB0aGUgd2Vla1xuICAgICAgICB3ZWVrRGF5cy5wdXNoKHdlZWtEYXlzLnNoaWZ0KCkpO1xuXG4gICAgICAgIHJldHVybiB3ZWVrRGF5cztcbiAgICB9XG5cbiAgICBnZXRXZWVrc09mTW9udGgoXG4gICAgICAgIGluaXRpYWxZZWFyOiBzdHJpbmcsXG4gICAgICAgIGluaXRpYWxNb250aDogc3RyaW5nLFxuICAgICAgICBpbml0aWFsRGF5Pzogc3RyaW5nXG4gICAgKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgdGhpcy5pbml0aWFsWWVhciA9IGluaXRpYWxZZWFyO1xuICAgICAgICB0aGlzLmluaXRpYWxNb250aCA9IGluaXRpYWxNb250aDtcbiAgICAgICAgdGhpcy5pbml0aWFsRGF5ID0gaW5pdGlhbERheSA/IGluaXRpYWxEYXkgOiAnMSc7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0ZvckN1cnJlbnRNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGhEYXlzID0gdGhpcy5jcmVhdGVEYXlzRm9yUHJldmlvdXNNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoLFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXh0TW9udGhEYXlzID0gdGhpcy5jcmVhdGVEYXlzRm9yTmV4dE1vbnRoKFxuICAgICAgICAgICAgaW5pdGlhbFllYXIsXG4gICAgICAgICAgICBpbml0aWFsTW9udGgsXG4gICAgICAgICAgICBjdXJyZW50TW9udGhEYXlzXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRheXMgPSBbXG4gICAgICAgICAgICAuLi5wcmV2aW91c01vbnRoRGF5cyxcbiAgICAgICAgICAgIC4uLmN1cnJlbnRNb250aERheXMsXG4gICAgICAgICAgICAuLi5uZXh0TW9udGhEYXlzXG4gICAgICAgIF07XG5cbiAgICAgICAgdGhpcy5fZGlzcGxheWVkTW9udGhZZWFyLm5leHQoe1xuICAgICAgICAgICAgeWVhcjogY3VycmVudE1vbnRoRGF5c1swXS5kYXRlLnllYXIoKS50b1N0cmluZygpLFxuICAgICAgICAgICAgbW9udGg6IGN1cnJlbnRNb250aERheXNbMF0uZGF0ZS5tb250aCgpLnRvU3RyaW5nKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRXZWVrc09mTW9udGgoZGF5cyk7XG4gICAgfVxuXG4gICAgZ2V0TmV4dFdlZWtzT2ZNb250aCgpOiBEYXlNb250aFtdW10ge1xuICAgICAgICBjb25zdCBuZXh0TW9udGggPSBEYXRlUGlja2VySGVscGVyLmdldE5leHRNb250aChcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFllYXIsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxNb250aFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFdlZWtzT2ZNb250aChcbiAgICAgICAgICAgIG5leHRNb250aC5mb3JtYXQodGhpcy5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgbmV4dE1vbnRoLmZvcm1hdCh0aGlzLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFByZXZpb3VzV2Vla3NPZk1vbnRoKCk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGggPSBEYXRlUGlja2VySGVscGVyLmdldFByZXZpb3VzTW9udGgoXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxZZWFyLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTW9udGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBwcmV2aW91c01vbnRoLmZvcm1hdCh0aGlzLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICBwcmV2aW91c01vbnRoLmZvcm1hdCh0aGlzLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF5c0ZvckN1cnJlbnRNb250aCh5ZWFyOiBzdHJpbmcsIG1vbnRoOiBzdHJpbmcpOiBEYXlNb250aFtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLkFycmF5KERhdGVQaWNrZXJIZWxwZXIuZ2V0TnVtYmVyT2ZEYXlzSW5Nb250aCh5ZWFyLCBtb250aCkpXG4gICAgICAgIF0ubWFwKChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoYCR7eWVhcn0tJHttb250aH0tJHtpbmRleCArIDF9YCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgZGF0ZUFzUmVhZGFibGU6IGRhdGUuZm9ybWF0KHRoaXMuREFURV9SRUFEQUJMRV9GT1JNQVQpLFxuICAgICAgICAgICAgICAgIGRheU9mTW9udGg6IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICBpc0N1cnJlbnRNb250aDogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXlzRm9yUHJldmlvdXNNb250aChcbiAgICAgICAgeWVhcjogc3RyaW5nLFxuICAgICAgICBtb250aDogc3RyaW5nLFxuICAgICAgICBjdXJyZW50TW9udGhEYXlzOiBEYXlNb250aFtdXG4gICAgKTogRGF5TW9udGhbXSB7XG4gICAgICAgIGNvbnN0IGZpcnN0RGF5T2ZUaGVNb250aFdlZWtkYXkgPSBEYXRlUGlja2VySGVscGVyLmdldFdlZWtkYXkoXG4gICAgICAgICAgICBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGVBc1N0cmluZ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXRQcmV2aW91c01vbnRoKHllYXIsIG1vbnRoKTtcblxuICAgICAgICAvLyBDb3ZlciBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGJlaW5nIHN1bmRheVxuICAgICAgICBjb25zdCB2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbVByZXZpb3VzTW9udGggPSBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA/IGZpcnN0RGF5T2ZUaGVNb250aFdlZWtkYXkgLSAxXG4gICAgICAgICAgICA6IDY7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNNb250aExhc3RNb25kYXlEYXlPZk1vbnRoID0gZGF5anMoXG4gICAgICAgICAgICBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGVBc1N0cmluZ1xuICAgICAgICApXG4gICAgICAgICAgICAuc3VidHJhY3QodmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoLCAnZGF5JylcbiAgICAgICAgICAgIC5kYXRlKCk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbVByZXZpb3VzTW9udGgpXS5tYXAoXG4gICAgICAgICAgICAoZGF5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBkYXlqcyhcbiAgICAgICAgICAgICAgICAgICAgYCR7cHJldmlvdXNNb250aC55ZWFyKCl9LSR7cHJldmlvdXNNb250aC5tb250aCgpICsgMX0tJHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzTW9udGhMYXN0TW9uZGF5RGF5T2ZNb250aCArIGluZGV4XG4gICAgICAgICAgICAgICAgICAgIH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBkYXRlQXNTdHJpbmc6IGRhdGUuZm9ybWF0KHRoaXMuREFURV9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzUmVhZGFibGU6IGRhdGUuZm9ybWF0KHRoaXMuREFURV9SRUFEQUJMRV9GT1JNQVQpLFxuICAgICAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBwcmV2aW91c01vbnRoTGFzdE1vbmRheURheU9mTW9udGggKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURheXNGb3JOZXh0TW9udGgoXG4gICAgICAgIHllYXI6IHN0cmluZyxcbiAgICAgICAgbW9udGg6IHN0cmluZyxcbiAgICAgICAgY3VycmVudE1vbnRoRGF5czogRGF5TW9udGhbXVxuICAgICk6IERheU1vbnRoW10ge1xuICAgICAgICBjb25zdCBsYXN0RGF5T2ZUaGVNb250aFdlZWtkYXkgPSBEYXRlUGlja2VySGVscGVyLmdldFdlZWtkYXkoXG4gICAgICAgICAgICBgJHt5ZWFyfS0ke21vbnRofS0ke2N1cnJlbnRNb250aERheXMubGVuZ3RofWBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXROZXh0TW9udGgoeWVhciwgbW9udGgpO1xuXG4gICAgICAgIGNvbnN0IHZpc2libGVOdW1iZXJPZkRheXNGcm9tTmV4dE1vbnRoID0gbGFzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA/IDcgLSBsYXN0RGF5T2ZUaGVNb250aFdlZWtkYXlcbiAgICAgICAgICAgIDogMDtcblxuICAgICAgICByZXR1cm4gWy4uLkFycmF5KHZpc2libGVOdW1iZXJPZkRheXNGcm9tTmV4dE1vbnRoKV0ubWFwKFxuICAgICAgICAgICAgKGRheSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoXG4gICAgICAgICAgICAgICAgICAgIGAke25leHRNb250aC55ZWFyKCl9LSR7bmV4dE1vbnRoLm1vbnRoKCkgKyAxfS0ke2luZGV4ICsgMX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBkYXRlQXNTdHJpbmc6IGRhdGUuZm9ybWF0KHRoaXMuREFURV9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzUmVhZGFibGU6IGRhdGUuZm9ybWF0KHRoaXMuREFURV9SRUFEQUJMRV9GT1JNQVQpLFxuICAgICAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZFdlZWtzT2ZNb250aChkYXlzOiBEYXlNb250aFtdKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgY29uc3QgbmJXZWVrcyA9IGRheXMubGVuZ3RoIC8gdGhpcy5OQl9EQVlTX0lOX1dFRUs7XG4gICAgICAgIGNvbnN0IHdlZWtzID0gW107XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYldlZWtzOyBpKyspIHtcbiAgICAgICAgICAgIHdlZWtzLnB1c2goXG4gICAgICAgICAgICAgICAgZGF5cy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgaSAqIHRoaXMuTkJfREFZU19JTl9XRUVLLFxuICAgICAgICAgICAgICAgICAgICAoaSArIDEpICogdGhpcy5OQl9EQVlTX0lOX1dFRUtcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHdlZWtzO1xuICAgIH1cbn1cbiJdfQ==