@onemrvapublic/design-system 18.2.10-develop.2 → 18.2.11-alpha.1

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 (186) hide show
  1. package/assets/i18n/de.json +10 -4
  2. package/assets/i18n/en.json +10 -4
  3. package/assets/i18n/fr.json +10 -4
  4. package/assets/i18n/nl.json +10 -4
  5. package/esm2022/core/src/lib/core.module.mjs +4 -4
  6. package/esm2022/core/src/lib/services/onemrva-error-handler.service.mjs +3 -3
  7. package/esm2022/flag-icon/src/flag-icon.component.mjs +3 -3
  8. package/esm2022/layout/src/components/layout/layout.component.mjs +5 -5
  9. package/esm2022/layout/src/components/layout-after-nav/layout-after-nav.component.mjs +3 -3
  10. package/esm2022/layout/src/components/layout-content/layout-content.component.mjs +3 -3
  11. package/esm2022/layout/src/components/layout-drawer-actions/layout-drawer-actions.component.mjs +3 -3
  12. package/esm2022/layout/src/components/layout-drawer-content/layout-drawer-content.component.mjs +3 -3
  13. package/esm2022/layout/src/components/layout-drawer-title/layout-drawer-title.component.mjs +3 -3
  14. package/esm2022/layout/src/components/layout-footer/layout-footer.component.mjs +3 -3
  15. package/esm2022/layout/src/components/layout-login-menu/layout-login-menu.component.mjs +3 -3
  16. package/esm2022/layout/src/components/layout-route/layout-route.component.mjs +5 -5
  17. package/esm2022/layout/src/components/layout-sidenav/layout-sidenav.component.mjs +3 -3
  18. package/esm2022/layout/src/components/layout-sidenav-title/layout-sidenav-title.component.mjs +3 -3
  19. package/esm2022/layout/src/components/layout-subroute/layout-subroute.component.mjs +4 -4
  20. package/esm2022/layout/src/components/layout-title/layout-title.component.mjs +3 -3
  21. package/esm2022/layout/src/directives/drawer-host.directive.mjs +3 -3
  22. package/esm2022/layout/src/layout.module.mjs +4 -4
  23. package/esm2022/layout/src/services/drawer.service.mjs +3 -3
  24. package/esm2022/layout/src/striphtml.pipe.mjs +3 -3
  25. package/esm2022/mat-avatar/src/onemrva-mat-avatar.component.mjs +3 -3
  26. package/esm2022/mat-avatar/src/onemrva-mat-avatar.module.mjs +4 -4
  27. package/esm2022/mat-badge/src/onemrva-mat-badge.component.mjs +3 -3
  28. package/esm2022/mat-badge/src/onemrva-mat-badge.module.mjs +4 -4
  29. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.component.mjs +3 -3
  30. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.module.mjs +4 -4
  31. package/esm2022/mat-breadcrumb/src/onemrva-mat-breadcrumb.service.mjs +3 -3
  32. package/esm2022/mat-carousel/src/mat-carousel-item/onemrva-mat-carousel-item.component.mjs +3 -3
  33. package/esm2022/mat-carousel/src/onemrva-mat-carousel.component.mjs +7 -4
  34. package/esm2022/mat-copy-to-clipboard/src/components/copy-to-clipboard.component.mjs +3 -3
  35. package/esm2022/mat-datepicker-header/src/onemrva-mat-datepicker-header.component.mjs +3 -3
  36. package/esm2022/mat-empty-row/src/onemrva-mat-empty-row.component.mjs +3 -3
  37. package/esm2022/mat-file-upload/src/components/onemrva-mat-file-panel/onemrva-file-panel.component.mjs +3 -3
  38. package/esm2022/mat-file-upload/src/components/onemrva-mat-file-upload/onemrva-mat-file-upload.component.mjs +3 -3
  39. package/esm2022/mat-file-upload/src/directives/dnd.directive.mjs +3 -3
  40. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.module.mjs +4 -4
  41. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.service.mjs +3 -3
  42. package/esm2022/mat-file-upload/src/onemrva-mat-file-upload.store.mjs +3 -3
  43. package/esm2022/mat-input-birthplace/src/country-item.component.mjs +3 -3
  44. package/esm2022/mat-input-birthplace/src/onemrva-mat-input-birthplace.component.mjs +3 -3
  45. package/esm2022/mat-input-country/src/onemrva-mat-input-country.component.mjs +3 -3
  46. package/esm2022/mat-input-enterprise-number/src/onemrva-mat-input-enterprise-number.component.mjs +3 -3
  47. package/esm2022/mat-input-iban/index.mjs +5 -0
  48. package/esm2022/mat-input-iban/onemrvapublic-design-system-mat-input-iban.mjs +5 -0
  49. package/esm2022/mat-input-iban/src/onemrva-mat-input-iban.component.mjs +278 -0
  50. package/esm2022/mat-input-phone/src/onemrva-mat-input-phone.component.mjs +3 -3
  51. package/esm2022/mat-input-phone/src/phone-number.directive.mjs +3 -3
  52. package/esm2022/mat-message-box/src/onemrva-mat-message-box.component.mjs +3 -3
  53. package/esm2022/mat-message-box/src/onemrva-mat-message-box.module.mjs +4 -4
  54. package/esm2022/mat-multi-select/src/onemrva-mat-multi-select.component.mjs +3 -3
  55. package/esm2022/mat-multi-select/src/onemrva-mat-multi-select.module.mjs +4 -4
  56. package/esm2022/mat-notification/src/onemrva-mat-notification.component.mjs +3 -3
  57. package/esm2022/mat-paginator/src/onemrva-mat-paginator.component.mjs +3 -3
  58. package/esm2022/mat-paginator/src/onemrva-mat-paginator.module.mjs +4 -4
  59. package/esm2022/mat-panel/src/onemrva-mat-panel-content.component.mjs +3 -3
  60. package/esm2022/mat-panel/src/onemrva-mat-panel-icon.component.mjs +3 -3
  61. package/esm2022/mat-panel/src/onemrva-mat-panel-title-action.component.mjs +3 -3
  62. package/esm2022/mat-panel/src/onemrva-mat-panel-title.component.mjs +3 -3
  63. package/esm2022/mat-panel/src/onemrva-mat-panel.component.mjs +3 -3
  64. package/esm2022/mat-panel/src/onemrva-mat-panel.module.mjs +4 -4
  65. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over-content.component.mjs +3 -3
  66. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over-trigger.component.mjs +3 -3
  67. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over.component.mjs +3 -3
  68. package/esm2022/mat-pop-over/src/onemrva-mat-pop-over.module.mjs +4 -4
  69. package/esm2022/mat-progress-bar/src/onemrva-mat-progress-bar.component.mjs +3 -3
  70. package/esm2022/mat-select-search/src/mat-select-no-entries-found.directive.mjs +3 -3
  71. package/esm2022/mat-select-search/src/mat-select-search-clear.directive.mjs +3 -3
  72. package/esm2022/mat-select-search/src/mat-select-search.component.mjs +3 -3
  73. package/esm2022/mat-select-search/src/mat-select-search.module.mjs +4 -4
  74. package/esm2022/mat-selectable-box/src/onemrva-mat-selectable-box.component.mjs +3 -3
  75. package/esm2022/mat-selectable-box/src/onemrva-mat-selectable-box.module.mjs +4 -4
  76. package/esm2022/mat-side-menu/src/onemrva-mat-side-menu.component.mjs +3 -3
  77. package/esm2022/mat-side-menu/src/onemrva-mat-side-menu.module.mjs +4 -4
  78. package/esm2022/mat-skeleton/src/onemrva-mat-skeleton.component.mjs +3 -3
  79. package/esm2022/mat-skeleton/src/onemrva-mat-skeleton.module.mjs +4 -4
  80. package/esm2022/mat-spinner/src/onemrva-mat-loading.directive.mjs +3 -3
  81. package/esm2022/mat-spinner/src/onemrva-mat-spinner.component.mjs +3 -3
  82. package/esm2022/mat-spinner/src/onemrva-mat-spinner.module.mjs +4 -4
  83. package/esm2022/mat-stepper/src/onemrva-mat-stepper.component.mjs +3 -3
  84. package/esm2022/mat-stepper/src/onemrva-mat-stepper.module.mjs +4 -4
  85. package/esm2022/mat-sticker/src/onemrva-mat-sticker.component.mjs +3 -3
  86. package/esm2022/mat-sticker/src/onemrva-mat-sticker.module.mjs +4 -4
  87. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.component.mjs +3 -3
  88. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.directive.mjs +3 -3
  89. package/esm2022/mat-table-of-content/src/onemrva-mat-table-of-content.service.mjs +3 -3
  90. package/esm2022/mat-task-list/src/onemrva-mat-task-content.component.mjs +3 -3
  91. package/esm2022/mat-task-list/src/onemrva-mat-task-list.component.mjs +3 -3
  92. package/esm2022/mat-task-list/src/onemrva-mat-task-list.module.mjs +4 -4
  93. package/esm2022/mat-task-list/src/onemrva-mat-task-title.component.mjs +3 -3
  94. package/esm2022/mat-task-list/src/onemrva-mat-task.component.mjs +3 -3
  95. package/esm2022/mat-timepicker/src/clock/clock.component.mjs +3 -3
  96. package/esm2022/mat-timepicker/src/onemrva-mat-timepicker.component.mjs +3 -3
  97. package/esm2022/mat-timepicker/src/onemrva-mat-timepicker.module.mjs +4 -4
  98. package/esm2022/mat-timepicker/src/timepicker-dialog/timepicker-dialog.component.mjs +3 -3
  99. package/esm2022/mat-timepicker/src/timepicker-toggle/timepicker-toggle.component.mjs +6 -6
  100. package/esm2022/mat-timepicker/src/timepicker.directive.mjs +3 -3
  101. package/esm2022/mat-toast/src/onemrva-mat-toast.component.mjs +3 -3
  102. package/esm2022/mat-toast/src/onemrva-mat-toast.module.mjs +4 -4
  103. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.component.mjs +3 -3
  104. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.directive.mjs +3 -3
  105. package/esm2022/mat-tooltip/src/onemrva-mat-tooltip.module.mjs +4 -4
  106. package/esm2022/page-not-found/src/page-not-found-action.component.mjs +3 -3
  107. package/esm2022/page-not-found/src/page-not-found-extra.component.mjs +3 -3
  108. package/esm2022/page-not-found/src/page-not-found-invader.component.mjs +3 -3
  109. package/esm2022/page-not-found/src/page-not-found.component.mjs +3 -3
  110. package/esm2022/page-not-found/src/page-not-found.module.mjs +4 -4
  111. package/esm2022/shared/src/lib/adapters/date.adapter.mjs +3 -3
  112. package/esm2022/shared/src/lib/components/clipboard-icon/clipboard-icon.component.mjs +3 -3
  113. package/esm2022/shared/src/lib/containers/WebComponentOverlayContainer.mjs +3 -3
  114. package/esm2022/shared/src/lib/directives/clipboard.directive.mjs +3 -3
  115. package/esm2022/shared/src/lib/directives/color.directive.mjs +3 -3
  116. package/esm2022/shared/src/lib/directives/digit-only.directive.mjs +3 -3
  117. package/esm2022/shared/src/lib/directives/iconRight.directive.mjs +3 -3
  118. package/esm2022/shared/src/lib/directives/if-width-is.directive.mjs +3 -3
  119. package/esm2022/shared/src/lib/directives/mask.directive.mjs +3 -3
  120. package/esm2022/shared/src/lib/directives/mat-row-clickable.directive.mjs +3 -3
  121. package/esm2022/shared/src/lib/pipes/onemrva-bce.pipe.mjs +3 -3
  122. package/esm2022/shared/src/lib/pipes/onemrva-niss.pipe.mjs +3 -3
  123. package/esm2022/shared/src/lib/services/cache.service.mjs +3 -3
  124. package/esm2022/shared/src/lib/services/cdn.service.mjs +3 -3
  125. package/esm2022/shared/src/lib/services/country-cdn.service.mjs +8 -5
  126. package/esm2022/shared/src/lib/services/country-lookup.service.mjs +3 -3
  127. package/esm2022/shared/src/lib/shared.datepicker.module.mjs +4 -4
  128. package/esm2022/shared/src/lib/shared.module.mjs +4 -4
  129. package/esm2022/shared/src/lib/validators/bank-account.validator.utils.mjs +18 -7
  130. package/fesm2022/onemrvapublic-design-system-core.mjs +7 -7
  131. package/fesm2022/onemrvapublic-design-system-flag-icon.mjs +3 -3
  132. package/fesm2022/onemrvapublic-design-system-layout.mjs +54 -54
  133. package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
  134. package/fesm2022/onemrvapublic-design-system-mat-avatar.mjs +7 -7
  135. package/fesm2022/onemrvapublic-design-system-mat-badge.mjs +7 -7
  136. package/fesm2022/onemrvapublic-design-system-mat-breadcrumb.mjs +10 -10
  137. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs +9 -6
  138. package/fesm2022/onemrvapublic-design-system-mat-carousel.mjs.map +1 -1
  139. package/fesm2022/onemrvapublic-design-system-mat-copy-to-clipboard.mjs +3 -3
  140. package/fesm2022/onemrvapublic-design-system-mat-datepicker-header.mjs +3 -3
  141. package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs +3 -3
  142. package/fesm2022/onemrvapublic-design-system-mat-file-upload.mjs +19 -19
  143. package/fesm2022/onemrvapublic-design-system-mat-input-birthplace.mjs +6 -6
  144. package/fesm2022/onemrvapublic-design-system-mat-input-country.mjs +3 -3
  145. package/fesm2022/onemrvapublic-design-system-mat-input-enterprise-number.mjs +3 -3
  146. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs +289 -0
  147. package/fesm2022/onemrvapublic-design-system-mat-input-iban.mjs.map +1 -0
  148. package/fesm2022/onemrvapublic-design-system-mat-input-phone.mjs +6 -6
  149. package/fesm2022/onemrvapublic-design-system-mat-message-box.mjs +7 -7
  150. package/fesm2022/onemrvapublic-design-system-mat-multi-select.mjs +7 -7
  151. package/fesm2022/onemrvapublic-design-system-mat-notification.mjs +3 -3
  152. package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs +7 -7
  153. package/fesm2022/onemrvapublic-design-system-mat-panel.mjs +19 -19
  154. package/fesm2022/onemrvapublic-design-system-mat-pop-over.mjs +13 -13
  155. package/fesm2022/onemrvapublic-design-system-mat-progress-bar.mjs +3 -3
  156. package/fesm2022/onemrvapublic-design-system-mat-select-search.mjs +13 -13
  157. package/fesm2022/onemrvapublic-design-system-mat-selectable-box.mjs +7 -7
  158. package/fesm2022/onemrvapublic-design-system-mat-side-menu.mjs +7 -7
  159. package/fesm2022/onemrvapublic-design-system-mat-skeleton.mjs +7 -7
  160. package/fesm2022/onemrvapublic-design-system-mat-spinner.mjs +10 -10
  161. package/fesm2022/onemrvapublic-design-system-mat-stepper.mjs +7 -7
  162. package/fesm2022/onemrvapublic-design-system-mat-sticker.mjs +7 -7
  163. package/fesm2022/onemrvapublic-design-system-mat-table-of-content.mjs +9 -9
  164. package/fesm2022/onemrvapublic-design-system-mat-task-list.mjs +16 -16
  165. package/fesm2022/onemrvapublic-design-system-mat-timepicker.mjs +22 -22
  166. package/fesm2022/onemrvapublic-design-system-mat-toast.mjs +7 -7
  167. package/fesm2022/onemrvapublic-design-system-mat-tooltip.mjs +10 -10
  168. package/fesm2022/onemrvapublic-design-system-page-not-found.mjs +16 -16
  169. package/fesm2022/onemrvapublic-design-system-shared.mjs +77 -63
  170. package/fesm2022/onemrvapublic-design-system-shared.mjs.map +1 -1
  171. package/layout/src/components/layout/layout.component.scss +11 -0
  172. package/mat-input-iban/index.d.ts +1 -0
  173. package/{mat-input-bank-account/src/bank-account.component.d.ts → mat-input-iban/src/onemrva-mat-input-iban.component.d.ts} +39 -28
  174. package/mat-input-iban/src/onemrva-mat-input-iban.component.scss +10 -0
  175. package/package.json +7 -7
  176. package/shared/src/lib/services/country-cdn.service.d.ts +5 -65
  177. package/esm2022/mat-input-bank-account/index.mjs +0 -5
  178. package/esm2022/mat-input-bank-account/onemrvapublic-design-system-mat-input-bank-account.mjs +0 -5
  179. package/esm2022/mat-input-bank-account/src/bank-account.component.mjs +0 -223
  180. package/esm2022/mat-input-bank-account/src/onemrva-mat-input-bank-account.component.mjs +0 -66
  181. package/fesm2022/onemrvapublic-design-system-mat-input-bank-account.mjs +0 -286
  182. package/fesm2022/onemrvapublic-design-system-mat-input-bank-account.mjs.map +0 -1
  183. package/mat-input-bank-account/index.d.ts +0 -1
  184. package/mat-input-bank-account/src/bank-account.component.scss +0 -42
  185. package/mat-input-bank-account/src/onemrva-mat-input-bank-account.component.d.ts +0 -15
  186. package/mat-input-bank-account/src/onemrva-mat-input-bank-account.component.scss +0 -14
@@ -68,6 +68,11 @@
68
68
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
69
69
  },
70
70
  "input": {
71
+ "bank": {
72
+ "length": "Falsche Anzahl von Ziffern für dieses Land",
73
+ "checksum": "Die Bankkontonummer ist ungültig",
74
+ "invalid": "Feld erforderlich"
75
+ },
71
76
  "phone": {
72
77
  "required": "Field required",
73
78
  "invalid": "Field invalid",
@@ -78,9 +83,10 @@
78
83
  }
79
84
  },
80
85
  "copied.to.clipboard": "In Zwischenablage kopiert",
81
- "carousel": {
82
- "next": "Nächste",
83
- "previous": "Vorherige",
84
- "goto": "Gehe zu"
86
+ "today": "Heute",
87
+ "bankAccountInput": {
88
+ "length": "Falsche Anzahl von Ziffern für dieses Land",
89
+ "wrong-iban-checksum": "Die Bankkontonummer ist ungültig",
90
+ "invalid": "Feld erforderlich"
85
91
  }
86
92
  }
@@ -68,6 +68,11 @@
68
68
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
69
69
  },
70
70
  "input": {
71
+ "bank": {
72
+ "length": "Incorrect number of digits for this country",
73
+ "checksum": "Bank account number invalid",
74
+ "invalid": "Field required"
75
+ },
71
76
  "phone": {
72
77
  "required": "Field required",
73
78
  "invalid": "Field invalid",
@@ -78,9 +83,10 @@
78
83
  }
79
84
  },
80
85
  "copied.to.clipboard": "Copied to clipboard",
81
- "carousel": {
82
- "next": "Next",
83
- "previous": "Previous",
84
- "goto": "Go to"
86
+ "today": "Today",
87
+ "bankAccountInput": {
88
+ "length": "Incorrect number of digits for this country",
89
+ "wrong-iban-checksum": "Bank account number invalid",
90
+ "invalid": "Field required"
85
91
  }
86
92
  }
@@ -68,6 +68,11 @@
68
68
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
69
69
  },
70
70
  "input": {
71
+ "bank": {
72
+ "length": "Nombre de chiffres incorrect pour ce pays",
73
+ "checksum": "Le numéro de compte bancaire est invalide",
74
+ "invalid": "Champ requis"
75
+ },
71
76
  "phone": {
72
77
  "required": "Champs requis",
73
78
  "invalid": "Champs invalide",
@@ -78,9 +83,10 @@
78
83
  }
79
84
  },
80
85
  "copied.to.clipboard": "Copié dans le presse-papier",
81
- "carousel": {
82
- "next": "Suivant",
83
- "previous": "Précédent",
84
- "goto": "Aller à"
86
+ "today": "Aujourd'hui",
87
+ "bankAccountInput": {
88
+ "length": "Nombre de chiffres incorrect pour ce pays",
89
+ "wrong-iban-checksum": "Le numéro de compte bancaire est invalide",
90
+ "invalid": "Champ requis"
85
91
  }
86
92
  }
@@ -67,6 +67,11 @@
67
67
  "nonEquilibriumThermodynamics": "Non-equilibrium thermodynamics"
68
68
  },
69
69
  "input": {
70
+ "bank": {
71
+ "length": "Onjuist aantal cijfers voor dit land",
72
+ "checksum": "Bankrekeningnummer is ongeldig",
73
+ "invalid": "Veld verplicht"
74
+ },
70
75
  "phone": {
71
76
  "required": "Field required",
72
77
  "invalid": "Field invalid",
@@ -77,9 +82,10 @@
77
82
  }
78
83
  },
79
84
  "copied.to.clipboard": "Naar klembord gekopieerd",
80
- "carousel": {
81
- "next": "Volgende",
82
- "previous": "Vorige",
83
- "goto": "Ga naar"
85
+ "today": "Vandaag",
86
+ "bankAccountInput": {
87
+ "length": "Onjuist aantal cijfers voor dit land",
88
+ "wrong-iban-checksum": "Bankrekeningnummer is ongeldig",
89
+ "invalid": "Veld verplicht"
84
90
  }
85
91
  }
@@ -6,9 +6,9 @@ import { OnemrvaErrorHandler } from './services';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import * as i0 from "@angular/core";
8
8
  export class OnemrvaCoreModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaCoreModule, imports: [CommonModule, MatExpansionModule, MatIconModule, MatSnackBarModule], exports: [MatSnackBarModule] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaCoreModule, providers: [
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaCoreModule, imports: [CommonModule, MatExpansionModule, MatIconModule, MatSnackBarModule], exports: [MatSnackBarModule] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaCoreModule, providers: [
12
12
  {
13
13
  provide: ErrorHandler,
14
14
  useClass: OnemrvaErrorHandler,
@@ -19,7 +19,7 @@ export class OnemrvaCoreModule {
19
19
  },
20
20
  ], imports: [CommonModule, MatExpansionModule, MatIconModule, MatSnackBarModule, MatSnackBarModule] }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaCoreModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaCoreModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  imports: [CommonModule, MatExpansionModule, MatIconModule, MatSnackBarModule],
@@ -17,10 +17,10 @@ export class OnemrvaErrorHandler {
17
17
  verticalPosition: this.verticalPosition,
18
18
  });
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaErrorHandler, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaErrorHandler }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaErrorHandler, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaErrorHandler }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: OnemrvaErrorHandler, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OnemrvaErrorHandler, decorators: [{
24
24
  type: Injectable
25
25
  }], ctorParameters: () => [{ type: i1.MatSnackBar }] });
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1lcnJvci1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vY29yZS9zcmMvbGliL3NlcnZpY2VzL29uZW1ydmEtZXJyb3ItaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRekQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixTQUFzQjtRQUF0QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQzFDLHVCQUFrQixHQUFrQyxLQUFLLENBQUM7UUFDMUQscUJBQWdCLEdBQWdDLFFBQVEsQ0FBQztJQUZaLENBQUM7SUFJOUMsV0FBVyxDQUFDLEtBQVU7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2pELFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLGFBQWE7WUFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBZFUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1hdFNuYWNrQmFyLFxuICBNYXRTbmFja0Jhckhvcml6b250YWxQb3NpdGlvbixcbiAgTWF0U25hY2tCYXJWZXJ0aWNhbFBvc2l0aW9uLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lbXJ2YUVycm9ySGFuZGxlciBpbXBsZW1lbnRzIEVycm9ySGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NuYWNrQmFyOiBNYXRTbmFja0Jhcikge31cbiAgaG9yaXpvbnRhbFBvc2l0aW9uOiBNYXRTbmFja0Jhckhvcml6b250YWxQb3NpdGlvbiA9ICdlbmQnO1xuICB2ZXJ0aWNhbFBvc2l0aW9uOiBNYXRTbmFja0JhclZlcnRpY2FsUG9zaXRpb24gPSAnYm90dG9tJztcblxuICBoYW5kbGVFcnJvcihlcnJvcjogYW55KSB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgLy9hbGVydChcIkVycm9yOiBcIiArIGVycm9yLm1lc3NhZ2UpO1xuICAgIHRoaXMuX3NuYWNrQmFyLm9wZW4oYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJycsIHtcbiAgICAgIGR1cmF0aW9uOiA1MDAwLFxuICAgICAgcGFuZWxDbGFzczogJ21hdC1wcmltYXJ5JyxcbiAgICAgIGhvcml6b250YWxQb3NpdGlvbjogdGhpcy5ob3Jpem9udGFsUG9zaXRpb24sXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiB0aGlzLnZlcnRpY2FsUG9zaXRpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -25,10 +25,10 @@ export class FlagIconComponent {
25
25
  get url() {
26
26
  return `${this.cdnUrl}/img/flags/${this.modeValue}/${this.normalizedCountryCode}.svg`;
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FlagIconComponent, deps: [{ token: i1.OnemRvaCDNService }], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: FlagIconComponent, isStandalone: true, selector: "flag-icon", inputs: { countryCode: "countryCode", mode: "mode", width: "width" }, ngImport: i0, template: "<span\n [class]=\"{\n fi: true,\n fis: mode === 'square',\n }\"\n>\n <img\n [alt]=\"normalizedCountryCode\"\n loading=\"lazy\"\n [ngSrc]=\"url\"\n [width]=\"width\"\n [height]=\"height\"\n />\n</span>\n", styles: [":host .fi{position:relative;display:inline-flex;margin-right:6px;vertical-align:middle}:host .fi.fis{width:1em}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }] }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FlagIconComponent, deps: [{ token: i1.OnemRvaCDNService }], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FlagIconComponent, isStandalone: true, selector: "flag-icon", inputs: { countryCode: "countryCode", mode: "mode", width: "width" }, ngImport: i0, template: "<span\n [class]=\"{\n fi: true,\n fis: mode === 'square',\n }\"\n>\n <img\n [alt]=\"normalizedCountryCode\"\n loading=\"lazy\"\n [ngSrc]=\"url\"\n [width]=\"width\"\n [height]=\"height\"\n />\n</span>\n", styles: [":host .fi{position:relative;display:inline-flex;margin-right:6px;vertical-align:middle}:host .fi.fis{width:1em}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }] }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: FlagIconComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FlagIconComponent, decorators: [{
32
32
  type: Component,
33
33
  args: [{ selector: 'flag-icon', standalone: true, imports: [NgOptimizedImage], template: "<span\n [class]=\"{\n fi: true,\n fis: mode === 'square',\n }\"\n>\n <img\n [alt]=\"normalizedCountryCode\"\n loading=\"lazy\"\n [ngSrc]=\"url\"\n [width]=\"width\"\n [height]=\"height\"\n />\n</span>\n", styles: [":host .fi{position:relative;display:inline-flex;margin-right:6px;vertical-align:middle}:host .fi.fis{width:1em}\n"] }]
34
34
  }], ctorParameters: () => [{ type: i1.OnemRvaCDNService }], propDecorators: { countryCode: [{
@@ -122,12 +122,12 @@ export class LayoutComponent {
122
122
  this.drawerService.hasBackdrop = false;
123
123
  this.drawer.open();
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.TranslateService }, { token: i2.OnemRvaCDNService }, { token: i0.ChangeDetectorRef }, { token: i3.BreakpointObserver }, { token: DOCUMENT }, { token: i4.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutComponent, selector: "onemrva-layout", inputs: { logo: "logo", languages: "languages", environment: "environment", logoRedictionUrl: "logoRedictionUrl", profile: "profile", id: "id", role: "role" }, outputs: { login: "login", logout: "logout" }, queries: [{ propertyName: "title", first: true, predicate: LayoutTitleComponent, descendants: true }, { propertyName: "loginMenu", first: true, predicate: LayoutLoginMenuComponent, descendants: true }, { propertyName: "content", first: true, predicate: LayoutContentComponent, descendants: true }, { propertyName: "afterNav", first: true, predicate: LayoutAfterNavComponent, descendants: true }, { propertyName: "footer", first: true, predicate: LayoutFooterComponent, descendants: true }, { propertyName: "routes", predicate: LayoutRouteComponent }], viewQueries: [{ propertyName: "drawer", first: true, predicate: MatDrawer, descendants: true, static: true }, { propertyName: "drawerHost", first: true, predicate: DrawerHostDirective, descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [".mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{padding-top:106px;min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i10.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i10.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i10.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.OnemrvaMatAvatarComponent, selector: "onemrva-mat-avatar", inputs: ["id", "roundShape", "initials", "icon", "src", "size", "color"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i16.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i17.DrawerHostDirective, selector: "[drawerhost]" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.TranslateService }, { token: i2.OnemRvaCDNService }, { token: i0.ChangeDetectorRef }, { token: i3.BreakpointObserver }, { token: DOCUMENT }, { token: i4.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutComponent, selector: "onemrva-layout", inputs: { logo: "logo", languages: "languages", environment: "environment", logoRedictionUrl: "logoRedictionUrl", profile: "profile", id: "id", role: "role" }, outputs: { login: "login", logout: "logout" }, queries: [{ propertyName: "title", first: true, predicate: LayoutTitleComponent, descendants: true }, { propertyName: "loginMenu", first: true, predicate: LayoutLoginMenuComponent, descendants: true }, { propertyName: "content", first: true, predicate: LayoutContentComponent, descendants: true }, { propertyName: "afterNav", first: true, predicate: LayoutAfterNavComponent, descendants: true }, { propertyName: "footer", first: true, predicate: LayoutFooterComponent, descendants: true }, { propertyName: "routes", predicate: LayoutRouteComponent }], viewQueries: [{ propertyName: "drawer", first: true, predicate: MatDrawer, descendants: true, static: true }, { propertyName: "drawerHost", first: true, predicate: DrawerHostDirective, descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center topMenu\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [attr.data-ci]=\"e.dataCy\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: ["onemrva-layout mat-toolbar .topMenu .mat-mdc-tab-header-pagination-before,onemrva-layout mat-toolbar .topMenu .mat-mdc-tab-header-pagination-after{display:none!important}.mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{padding-top:106px;min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i10.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i10.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i10.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.OnemrvaMatAvatarComponent, selector: "onemrva-mat-avatar", inputs: ["id", "roundShape", "initials", "icon", "src", "size", "color"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i16.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i17.DrawerHostDirective, selector: "[drawerhost]" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutComponent, decorators: [{
129
129
  type: Component,
130
- args: [{ selector: 'onemrva-layout', template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [".mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{padding-top:106px;min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"] }]
130
+ args: [{ selector: 'onemrva-layout', template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center topMenu\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [attr.data-ci]=\"e.dataCy\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: ["onemrva-layout mat-toolbar .topMenu .mat-mdc-tab-header-pagination-before,onemrva-layout mat-toolbar .topMenu .mat-mdc-tab-header-pagination-after{display:none!important}.mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{padding-top:106px;min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"] }]
131
131
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.OnemRvaCDNService }, { type: i0.ChangeDetectorRef }, { type: i3.BreakpointObserver }, { type: Document, decorators: [{
132
132
  type: Inject,
133
133
  args: [DOCUMENT]
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
174
174
  }], role: [{
175
175
  type: Input
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFLTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUVMLFdBQVcsR0FFWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFF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QTs7MkZEbkxhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsZ0JBQWdCOzswQkE4RHZCLE1BQU07MkJBQUMsUUFBUTs0RUF4RGxCLE1BQU07c0JBREwsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBR0QsS0FBSztzQkFBeEMsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBQ00sU0FBUztzQkFBaEQsWUFBWTt1QkFBQyx3QkFBd0I7Z0JBQ0EsT0FBTztzQkFBNUMsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBQ0csUUFBUTtzQkFBOUMsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBR3JDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBTW5DLElBQUk7c0JBREgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxNQUFNO2dCQVFpQyxNQUFNO3NCQUE3QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXRDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWhELEVBQUU7c0JBREQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxuICBPbkluaXQsXG4gIEluamVjdCxcbiAgaXNEZXZNb2RlLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5b3V0Um91dGVDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtcm91dGUvbGF5b3V0LXJvdXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMYXlvdXRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LWNvbnRlbnQvbGF5b3V0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYXlvdXRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC10aXRsZS9sYXlvdXQtdGl0bGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnVtcy9lbnZpcm9ubWVudC5lbnVtJztcbmltcG9ydCB7XG4gIEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgQnJlYWtwb2ludHMsXG4gIEJyZWFrcG9pbnRTdGF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMYXlvdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtZm9vdGVyL2xheW91dC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZW1SdmFQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL29uZW1ydmEtcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBMYXlvdXRMb2dpbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtbG9naW4tbWVudS9sYXlvdXQtbG9naW4tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBEcmF3ZXJIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kcmF3ZXItaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT25lbXJ2YURyYXdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRTaWRlbmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LXNpZGVuYXYvbGF5b3V0LXNpZGVuYXYuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFmdGVyTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LWFmdGVyLW5hdi9sYXlvdXQtYWZ0ZXItbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVtUnZhTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvb25lbS1sYW5ndWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBPbmVtUnZhQ0ROU2VydmljZSB9IGZyb20gJ0BvbmVtcnZhcHVibGljL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25lbXJ2YS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZHJlbihMYXlvdXRSb3V0ZUNvbXBvbmVudClcbiAgcm91dGVzPzogUXVlcnlMaXN0PExheW91dFJvdXRlQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKExheW91dFRpdGxlQ29tcG9uZW50KSB0aXRsZT86IExheW91dFRpdGxlQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dExvZ2luTWVudUNvbXBvbmVudCkgbG9naW5NZW51PzogTGF5b3V0TG9naW5NZW51Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dENvbnRlbnRDb21wb25lbnQpIGNvbnRlbnQ/OiBMYXlvdXRDb250ZW50Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dEFmdGVyTmF2Q29tcG9uZW50KSBhZnRlck5hdj86IExheW91dEFmdGVyTmF2Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoTGF5b3V0Rm9vdGVyQ29tcG9uZW50KVxuICBmb290ZXI/OiBMYXlvdXRGb290ZXJDb21wb25lbnQ7XG5cbiAgZmx1aWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsb2dvID0gJyc7IC8vIGN1c3RvbSBsb2dvLCBlbXB0eSBzdHJpbmcgd2lsbCBzaG93IGRlZmF1bHQgb25lbS9ydmEvbmVvL2xmYSBsb2NhbGlzZWQgbG9nb1xuXG4gIEBJbnB1dCgpXG4gIGxhbmd1YWdlczogT25lbVJ2YUxhbmd1YWdlW10gPSBbXTsgLy8gbGlzdCBvZiBsYW5ndWFnZXNcblxuICBASW5wdXQoKVxuICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50OyAvLyBwb3NzaWJsZSBlbnZpcm9ubWVudCB0byBzaG93IG9uIHRoZSBmcm9udGVuZCBMT0NBTCwgVEVTVCwgVkFMLCBQUk9EXG5cbiAgQElucHV0KClcbiAgbG9nb1JlZGljdGlvblVybD86IHN0cmluZyB8IGFueVtdIHwgbnVsbCA9ICcnOyAvLyB2YWx1ZSBmb3Igcm91dGVyTGluayBmcm9tIGxvZ28uIFwiXCIgYnkgZGVmYXVsdC4gRGVhY3RpdmF0ZWQgd2hlbiBzZXQgdG8gbnVsbFxuXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xuICBkZXN0cm95Tm90aWZpZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBwcm9maWxlOiBPbmVtUnZhUHJvZmlsZSB8IG51bGwgPSBudWxsOyAvLyBUbyBiZSBkZWZpbmVkIGZvciBhcHBsaWNhdGlvbiB3aXRoIGF1dGhlbnRpY2F0aW9uXG5cbiAgQE91dHB1dCgpXG4gIGxvZ2luOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGxvZ291dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvLyAgICBpc0xvZ291dFVzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBlbnYgPSBFbnZpcm9ubWVudDtcblxuICBpc1NtYWxsID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlciwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyITogTWF0RHJhd2VyO1xuICBAVmlld0NoaWxkKERyYXdlckhvc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGRyYXdlckhvc3QhOiBEcmF3ZXJIb3N0RGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIGlkID0gJ21haW4nO1xuXG4gIEBJbnB1dCgpXG4gIHJvbGUgPSAnbWFpbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RuOiBPbmVtUnZhQ0ROU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHVibGljIGRyYXdlclNlcnZpY2U6IE9uZW1ydmFEcmF3ZXJTZXJ2aWNlLFxuICApIHtcbiAgICBpZiAodGhpcy5sYW5ndWFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0TGFuZ3MoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMucHVzaCh7XG4gICAgICAgICAgY29kZTogdmFsdWUsXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIH0gYXMgT25lbVJ2YUxhbmd1YWdlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMubGFuZ3VhZ2VzLmZpbmRJbmRleChcbiAgICAgIGwgPT4gbC5jb2RlID09PSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsXG4gICAgKTtcblxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XG5cbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgLm9ic2VydmUoW0JyZWFrcG9pbnRzLlhTbWFsbCwgQnJlYWtwb2ludHMuU21hbGxdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgdGhpcy5pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRyYXdlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgICB0aGlzLmlzU21hbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5sb2dvID09PSAnJykge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgoeyBsYW5nOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShsYW5nID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ28gPSB0aGlzLmNkbi5nZXRJbWcoXG4gICAgICAgICAgICBgbG9nby9sb2dvXyR7bGFuZy5sYW5nPy50b0xvY2FsZUxvd2VyQ2FzZSgpfS5zdmdgLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95Tm90aWZpZXIkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLmxhbmd1YWdlcy5maW5kSW5kZXgoXG4gICAgICAgICAgbGFuZyA9PiBsYW5nLmNvZGUgPT09IGV2ZW50LmxhbmcsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZHJhd2VyU2VydmljZS5ob3N0ID0gdGhpcy5kcmF3ZXJIb3N0O1xuICAgIHRoaXMuZHJhd2VyU2VydmljZS5kcmF3ZXIgPSB0aGlzLmRyYXdlcjtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB8fCAnJztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveU5vdGlmaWVyJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95Tm90aWZpZXIkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBkb0xvZ291dCgpIHtcbiAgICB0aGlzLmxvZ291dC5uZXh0KCk7XG4gIH1cblxuICBkb0xvZ2luKCkge1xuICAgIHRoaXMubG9naW4ubmV4dCgpO1xuICB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobGFuZ0NvZGU6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZ0NvZGUpO1xuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nQ29kZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5kcmF3ZXJIb3N0LnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmRyYXdlckhvc3Qudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBMYXlvdXRTaWRlbmF2Q29tcG9uZW50LFxuICAgICk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmlzU21hbGwgPSB0aGlzLmlzU21hbGw7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxhbmd1YWdlcyA9IHRoaXMubGFuZ3VhZ2VzO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3V0ZXMgPSB0aGlzLnJvdXRlcztcbiAgICB0aGlzLmRyYXdlclNlcnZpY2UuaGFzQmFja2Ryb3AgPSBmYWxzZTtcblxuICAgIHRoaXMuZHJhd2VyLm9wZW4oKTtcbiAgfVxufVxuIiwiPG1hdC1kcmF3ZXItY29udGFpbmVyXG4gIGNsYXNzPVwiZXhhbXBsZS1jb250YWluZXJcIlxuICBbaGFzQmFja2Ryb3BdPVwiZHJhd2VyU2VydmljZS5oYXNCYWNrZHJvcFwiXG4gIGF1dG9zaXplXG4+XG4gIDxkaXYgY2xhc3M9XCJhcHAtY29udGVudFwiPlxuICAgIDxoZWFkZXI+XG4gICAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnZpcm9ubWVudFwiIFtjbGFzc109XCJlbnZpcm9ubWVudFwiPlxuICAgICAgICAgIHt7IGVudmlyb25tZW50IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIlxuICAgICAgICAgIGNsYXNzPVwibmF2LWNvbnRhaW5lciBmbGV4LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsb2dvUmVkaWN0aW9uVXJsIH19XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJsb2dvXCJcbiAgICAgICAgICAgIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIlxuICAgICAgICAgICAgICAnb25lbXJ2YV9sb2dvXycgKyBjdXJyZW50TGFuZ3VhZ2UudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ28gT05FTS9SVkFcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgICAgICAgIGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyBsb2dvUmVkaWN0aW9uVXJsIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjdXJzb3I6IGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXBwbGljYXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc21hbGwtc2NyZWVuJzogaXNTbWFsbCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGU/LnRlbXBsYXRlIGFzIHRpdGxlVHBsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jZW50ZXJcIlxuICAgICAgICAgICAgbWF0LXRhYi1uYXYtYmFyXG4gICAgICAgICAgICBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiByb3V0ZXM/LnRvQXJyYXkoKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6ICFlLmhhc1N1YnJvdXRlcygpIH1cIlxuICAgICAgICAgICAgICAgICNybGE9XCJyb3V0ZXJMaW5rQWN0aXZlXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWRjLXRhYi0tYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInJsYS5pc0FjdGl2ZSB8fCBlLmlzUm91dGVBY3RpdmUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZS50ZW1wbGF0ZSBhcyByb3V0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm91dGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG1hdC10YWItbmF2LXBhbmVsICN0YWJQYW5lbD48L21hdC10YWItbmF2LXBhbmVsPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFmdGVyTmF2Py50ZW1wbGF0ZSBhcyB0cGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9maWxlICE9PSBudWxsXCI+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXJcbiAgICAgICAgICAgICAgdmVydGljYWxcbiAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDFlbTsgYWxpZ24tc2VsZjogY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgICA+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwicHJvZmlsZS5pc0xvZ2dlZEluXCJcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgICBpbml0aWFscz1cInt7IHByb2ZpbGUuaW5pdGlhbHMoKSB9fVwiXG4gICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgc2l6ZT1cImV4dHJhc21hbGxcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZVwiXG4gICAgICAgICAgICA+PC9vbmVtcnZhLW1hdC1hdmF0YXI+XG5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXByb2ZpbGUuaXNMb2dnZWRJblwiXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICAgaWNvbj1cImFjY291bnRfY2lyY2xlXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJcIlxuICAgICAgICAgICAgICBzaXplPVwiZXh0cmFzbWFsbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgID48L29uZW1ydmEtbWF0LWF2YXRhcj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2ZpbGUuaXNMb2dnZWRJbjsgZWxzZSBub3RDb25uZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFjY291bnROYW1lXCI+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9maWxlLmZpcnN0TmFtZSB9fSB7eyBwcm9maWxlLmxhc3ROYW1lIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlciBzdHlsZT1cImFsaWduLXNlbGY6IHN0cmV0Y2hcIj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ2luTWVudT8udGVtcGxhdGUgYXMgbWVudUxvZ2luVHBsXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUxvZ2luVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ291dEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9Mb2dvdXQoKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubG9nb3V0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ291dDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICB7eyAnbGF5b3V0LmxvZ291dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Q29ubmVjdGVkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ2luQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0xvZ2luKClcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGF5b3V0LmxvZ2luJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ2luPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7ICdsYXlvdXQubG9naW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGlzU21hbGwgJiZcbiAgICAgICAgICAgICAgKHJvdXRlcz8udG9BcnJheSgpPy5sZW5ndGggfHwgKGxhbmd1YWdlcyAmJiBsYW5ndWFnZXMubGVuZ3RoID4gMSkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cInNtYWxsRGV2aWNlTWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubWVudScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtY2VudGVyXCJcbiAgICAgICAgICAgIG1hdC10YWItbmF2LWJhclxuICAgICAgICAgICAgW3RhYlBhbmVsXT1cInRhYlBhbmVsXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzU21hbGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYW5ndWFnZU1lbnVcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwibGFuZ3VhZ2VNZW51XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2Uuc2VsZWN0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjdXJyZW50TGFuZ3VhZ2UgfX1cbiAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwid2lkdGg6IDE2cHhcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1tZW51ICNsYW5ndWFnZU1lbnU+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYW5nIG9mIGxhbmd1YWdlc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidsYW5ndWFnZV8nICsgbGFuZy5jb2RlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUxhbmd1YWdlKGxhbmcuY29kZSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhbmcubGFiZWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBsYW5nLmxhYmVsIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRvb2xiYXI+XG4gICAgPC9oZWFkZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIlxuICAgICAgICBjbGFzcz1cIm9uZW1ydmEtbGF5b3V0LWNvbnRlbnRcIlxuICAgICAgICAqbmdJZj1cImNvbnRlbnQ/LnRlbXBsYXRlIGFzIHRwbFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGVudmlyb25tZW50ICYmXG4gICAgICAgICAgICAoZW52aXJvbm1lbnQgPT09IGVudi5MT0NBTCB8fCBlbnZpcm9ubWVudCA9PT0gZW52LlRFU1QpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWNjZXNzaWJpbGl0eV9mYWJcIlxuICAgICAgICAgICAgbWF0LWZhYlxuICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFjY2Vzc2liaWxpdHkgY2hlY2tcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkFjY2Vzc2liaWxpdHkgY2hlY2tcIlxuICAgICAgICAgICAgb25jbGljaz1cIihmdW5jdGlvbigpIHt2YXIgX3A9Jy8vb3BlbmZlZC5naXRodWIuaW8vQWNjZXNzaWJpbGl0eUNoZWNrL2J1aWxkLyc7dmFyIF9pPWZ1bmN0aW9uKHMsY2IpIHt2YXIgc2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7c2Mub25sb2FkID0gZnVuY3Rpb24oKSB7c2Mub25sb2FkID0gbnVsbDtzYy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO2NiLmNhbGwodGhpcyk7fTtzYy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpe2lmKC9eKGNvbXBsZXRlfGxvYWRlZCkkLy50ZXN0KHRoaXMucmVhZHlTdGF0ZSkgPT09IHRydWUpe3NjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7c2Mub25sb2FkKCk7fX07c2Muc3JjPXM7aWYgKGRvY3VtZW50LmhlYWQpIHtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjKTt9IGVsc2Uge2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoc2MpO319OyB2YXIgb3B0aW9ucz17cGF0aDpfcH07X2koX3ArJ0hUTUxDUy5qcycsZnVuY3Rpb24oKXtIVE1MQ1NBdWRpdG9yLnJ1bignV0NBRzJBQScsbnVsbCxvcHRpb25zKTt9KTt9KSgpO1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFjY2Vzc2liaWxpdHk8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9vdGVyIGNsYXNzPVwib25lbXJ2YS1mb290ZXJcIiAqbmdJZj1cImZvb3Rlcj8udGVtcGxhdGUgYXMgZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxtYXQtZHJhd2VyXG4gICAgY2xhc3M9XCJvbmVtcnZhLWRyYXdlciBtb2JpbGUtbWVudS1zaWRlYmFyXCJcbiAgICBtb2RlPVwib3ZlclwiXG4gICAgcG9zaXRpb249XCJlbmRcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlIGRyYXdlcmhvc3Q+PC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtZHJhd2VyPlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFLTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUVMLFdBQVcsR0FFWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFF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QTs7MkZEcExhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsZ0JBQWdCOzswQkE4RHZCLE1BQU07MkJBQUMsUUFBUTs0RUF4RGxCLE1BQU07c0JBREwsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBR0QsS0FBSztzQkFBeEMsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBQ00sU0FBUztzQkFBaEQsWUFBWTt1QkFBQyx3QkFBd0I7Z0JBQ0EsT0FBTztzQkFBNUMsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBQ0csUUFBUTtzQkFBOUMsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBR3JDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBTW5DLElBQUk7c0JBREgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxNQUFNO2dCQVFpQyxNQUFNO3NCQUE3QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXRDLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWhELEVBQUU7c0JBREQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxuICBPbkluaXQsXG4gIEluamVjdCxcbiAgaXNEZXZNb2RlLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5b3V0Um91dGVDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtcm91dGUvbGF5b3V0LXJvdXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMYXlvdXRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LWNvbnRlbnQvbGF5b3V0LWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYXlvdXRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC10aXRsZS9sYXlvdXQtdGl0bGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnVtcy9lbnZpcm9ubWVudC5lbnVtJztcbmltcG9ydCB7XG4gIEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgQnJlYWtwb2ludHMsXG4gIEJyZWFrcG9pbnRTdGF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMYXlvdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtZm9vdGVyL2xheW91dC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZW1SdmFQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL29uZW1ydmEtcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBMYXlvdXRMb2dpbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtbG9naW4tbWVudS9sYXlvdXQtbG9naW4tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBEcmF3ZXJIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kcmF3ZXItaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT25lbXJ2YURyYXdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRTaWRlbmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LXNpZGVuYXYvbGF5b3V0LXNpZGVuYXYuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFmdGVyTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LWFmdGVyLW5hdi9sYXlvdXQtYWZ0ZXItbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVtUnZhTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvb25lbS1sYW5ndWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBPbmVtUnZhQ0ROU2VydmljZSB9IGZyb20gJ0BvbmVtcnZhcHVibGljL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25lbXJ2YS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZHJlbihMYXlvdXRSb3V0ZUNvbXBvbmVudClcbiAgcm91dGVzPzogUXVlcnlMaXN0PExheW91dFJvdXRlQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKExheW91dFRpdGxlQ29tcG9uZW50KSB0aXRsZT86IExheW91dFRpdGxlQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dExvZ2luTWVudUNvbXBvbmVudCkgbG9naW5NZW51PzogTGF5b3V0TG9naW5NZW51Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dENvbnRlbnRDb21wb25lbnQpIGNvbnRlbnQ/OiBMYXlvdXRDb250ZW50Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dEFmdGVyTmF2Q29tcG9uZW50KSBhZnRlck5hdj86IExheW91dEFmdGVyTmF2Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoTGF5b3V0Rm9vdGVyQ29tcG9uZW50KVxuICBmb290ZXI/OiBMYXlvdXRGb290ZXJDb21wb25lbnQ7XG5cbiAgZmx1aWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsb2dvID0gJyc7IC8vIGN1c3RvbSBsb2dvLCBlbXB0eSBzdHJpbmcgd2lsbCBzaG93IGRlZmF1bHQgb25lbS9ydmEvbmVvL2xmYSBsb2NhbGlzZWQgbG9nb1xuXG4gIEBJbnB1dCgpXG4gIGxhbmd1YWdlczogT25lbVJ2YUxhbmd1YWdlW10gPSBbXTsgLy8gbGlzdCBvZiBsYW5ndWFnZXNcblxuICBASW5wdXQoKVxuICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50OyAvLyBwb3NzaWJsZSBlbnZpcm9ubWVudCB0byBzaG93IG9uIHRoZSBmcm9udGVuZCBMT0NBTCwgVEVTVCwgVkFMLCBQUk9EXG5cbiAgQElucHV0KClcbiAgbG9nb1JlZGljdGlvblVybD86IHN0cmluZyB8IGFueVtdIHwgbnVsbCA9ICcnOyAvLyB2YWx1ZSBmb3Igcm91dGVyTGluayBmcm9tIGxvZ28uIFwiXCIgYnkgZGVmYXVsdC4gRGVhY3RpdmF0ZWQgd2hlbiBzZXQgdG8gbnVsbFxuXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xuICBkZXN0cm95Tm90aWZpZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASW5wdXQoKVxuICBwcm9maWxlOiBPbmVtUnZhUHJvZmlsZSB8IG51bGwgPSBudWxsOyAvLyBUbyBiZSBkZWZpbmVkIGZvciBhcHBsaWNhdGlvbiB3aXRoIGF1dGhlbnRpY2F0aW9uXG5cbiAgQE91dHB1dCgpXG4gIGxvZ2luOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGxvZ291dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvLyAgICBpc0xvZ291dFVzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBlbnYgPSBFbnZpcm9ubWVudDtcblxuICBpc1NtYWxsID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlciwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyITogTWF0RHJhd2VyO1xuICBAVmlld0NoaWxkKERyYXdlckhvc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGRyYXdlckhvc3QhOiBEcmF3ZXJIb3N0RGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIGlkID0gJ21haW4nO1xuXG4gIEBJbnB1dCgpXG4gIHJvbGUgPSAnbWFpbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RuOiBPbmVtUnZhQ0ROU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHVibGljIGRyYXdlclNlcnZpY2U6IE9uZW1ydmFEcmF3ZXJTZXJ2aWNlLFxuICApIHtcbiAgICBpZiAodGhpcy5sYW5ndWFnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0TGFuZ3MoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZXMucHVzaCh7XG4gICAgICAgICAgY29kZTogdmFsdWUsXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIH0gYXMgT25lbVJ2YUxhbmd1YWdlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMubGFuZ3VhZ2VzLmZpbmRJbmRleChcbiAgICAgIGwgPT4gbC5jb2RlID09PSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsXG4gICAgKTtcblxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XG5cbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgLm9ic2VydmUoW0JyZWFrcG9pbnRzLlhTbWFsbCwgQnJlYWtwb2ludHMuU21hbGxdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgdGhpcy5pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRyYXdlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgICB0aGlzLmlzU21hbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5sb2dvID09PSAnJykge1xuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgoeyBsYW5nOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShsYW5nID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ28gPSB0aGlzLmNkbi5nZXRJbWcoXG4gICAgICAgICAgICBgbG9nby9sb2dvXyR7bGFuZy5sYW5nPy50b0xvY2FsZUxvd2VyQ2FzZSgpfS5zdmdgLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95Tm90aWZpZXIkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLmxhbmd1YWdlcy5maW5kSW5kZXgoXG4gICAgICAgICAgbGFuZyA9PiBsYW5nLmNvZGUgPT09IGV2ZW50LmxhbmcsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZHJhd2VyU2VydmljZS5ob3N0ID0gdGhpcy5kcmF3ZXJIb3N0O1xuICAgIHRoaXMuZHJhd2VyU2VydmljZS5kcmF3ZXIgPSB0aGlzLmRyYXdlcjtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB8fCAnJztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveU5vdGlmaWVyJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95Tm90aWZpZXIkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBkb0xvZ291dCgpIHtcbiAgICB0aGlzLmxvZ291dC5uZXh0KCk7XG4gIH1cblxuICBkb0xvZ2luKCkge1xuICAgIHRoaXMubG9naW4ubmV4dCgpO1xuICB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobGFuZ0NvZGU6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZ0NvZGUpO1xuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nQ29kZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5kcmF3ZXJIb3N0LnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmRyYXdlckhvc3Qudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBMYXlvdXRTaWRlbmF2Q29tcG9uZW50LFxuICAgICk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmlzU21hbGwgPSB0aGlzLmlzU21hbGw7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxhbmd1YWdlcyA9IHRoaXMubGFuZ3VhZ2VzO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3V0ZXMgPSB0aGlzLnJvdXRlcztcbiAgICB0aGlzLmRyYXdlclNlcnZpY2UuaGFzQmFja2Ryb3AgPSBmYWxzZTtcblxuICAgIHRoaXMuZHJhd2VyLm9wZW4oKTtcbiAgfVxufVxuIiwiPG1hdC1kcmF3ZXItY29udGFpbmVyXG4gIGNsYXNzPVwiZXhhbXBsZS1jb250YWluZXJcIlxuICBbaGFzQmFja2Ryb3BdPVwiZHJhd2VyU2VydmljZS5oYXNCYWNrZHJvcFwiXG4gIGF1dG9zaXplXG4+XG4gIDxkaXYgY2xhc3M9XCJhcHAtY29udGVudFwiPlxuICAgIDxoZWFkZXI+XG4gICAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnZpcm9ubWVudFwiIFtjbGFzc109XCJlbnZpcm9ubWVudFwiPlxuICAgICAgICAgIHt7IGVudmlyb25tZW50IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIlxuICAgICAgICAgIGNsYXNzPVwibmF2LWNvbnRhaW5lciBmbGV4LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsb2dvUmVkaWN0aW9uVXJsIH19XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJsb2dvXCJcbiAgICAgICAgICAgIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIlxuICAgICAgICAgICAgICAnb25lbXJ2YV9sb2dvXycgKyBjdXJyZW50TGFuZ3VhZ2UudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ28gT05FTS9SVkFcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgICAgICAgIGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyBsb2dvUmVkaWN0aW9uVXJsIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjdXJzb3I6IGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXBwbGljYXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc21hbGwtc2NyZWVuJzogaXNTbWFsbCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGU/LnRlbXBsYXRlIGFzIHRpdGxlVHBsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jZW50ZXIgdG9wTWVudVwiXG4gICAgICAgICAgICBtYXQtdGFiLW5hdi1iYXJcbiAgICAgICAgICAgIFt0YWJQYW5lbF09XCJ0YWJQYW5lbFwiXG4gICAgICAgICAgICAqbmdJZj1cIiFpc1NtYWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlIG9mIHJvdXRlcz8udG9BcnJheSgpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgbWF0LXRhYi1saW5rXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNpXT1cImUuZGF0YUN5XCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogIWUuaGFzU3Vicm91dGVzKCkgfVwiXG4gICAgICAgICAgICAgICAgI3JsYT1cInJvdXRlckxpbmtBY3RpdmVcIlxuICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJtZGMtdGFiLS1hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFthY3RpdmVdPVwicmxhLmlzQWN0aXZlIHx8IGUuaXNSb3V0ZUFjdGl2ZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlLnRlbXBsYXRlIGFzIHJvdXRlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3V0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bWF0LXRhYi1uYXYtcGFuZWwgI3RhYlBhbmVsPjwvbWF0LXRhYi1uYXYtcGFuZWw+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWZ0ZXJOYXY/LnRlbXBsYXRlIGFzIHRwbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2ZpbGUgIT09IG51bGxcIj5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlclxuICAgICAgICAgICAgICB2ZXJ0aWNhbFxuICAgICAgICAgICAgICBzdHlsZT1cImhlaWdodDogMWVtOyBhbGlnbi1zZWxmOiBjZW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc1NtYWxsXCJcbiAgICAgICAgICAgID48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG9uZW1ydmEtbWF0LWF2YXRhclxuICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgKm5nSWY9XCJwcm9maWxlLmlzTG9nZ2VkSW5cIlxuICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXG4gICAgICAgICAgICAgIGluaXRpYWxzPVwie3sgcHJvZmlsZS5pbml0aWFscygpIH19XCJcbiAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICBzaXplPVwiZXh0cmFzbWFsbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgID48L29uZW1ydmEtbWF0LWF2YXRhcj5cblxuICAgICAgICAgICAgPG9uZW1ydmEtbWF0LWF2YXRhclxuICAgICAgICAgICAgICBtYXRSaXBwbGVcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcHJvZmlsZS5pc0xvZ2dlZEluXCJcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgICBpY29uPVwiYWNjb3VudF9jaXJjbGVcIlxuICAgICAgICAgICAgICBjb2xvcj1cIlwiXG4gICAgICAgICAgICAgIHNpemU9XCJleHRyYXNtYWxsXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjbGlja2FibGVcIlxuICAgICAgICAgICAgPjwvb25lbXJ2YS1tYXQtYXZhdGFyPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZmlsZS5pc0xvZ2dlZEluOyBlbHNlIG5vdENvbm5lY3RlZFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWNjb3VudE5hbWVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHByb2ZpbGUuZmlyc3ROYW1lIH19IHt7IHByb2ZpbGUubGFzdE5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPG1hdC1kaXZpZGVyIHN0eWxlPVwiYWxpZ24tc2VsZjogc3RyZXRjaFwiPjwvbWF0LWRpdmlkZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9naW5NZW51Py50ZW1wbGF0ZSBhcyBtZW51TG9naW5UcGxcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51TG9naW5UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtbWRjLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICBkYXRhLWN5PVwibG9nb3V0QnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0xvZ291dCgpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2xheW91dC5sb2dvdXQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+bG9nb3V0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7ICdsYXlvdXQubG9nb3V0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RDb25uZWN0ZWQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICBkYXRhLWN5PVwibG9naW5CdXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvTG9naW4oKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubG9naW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+bG9naW48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAge3sgJ2xheW91dC5sb2dpbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgaXNTbWFsbCAmJlxuICAgICAgICAgICAgICAocm91dGVzPy50b0FycmF5KCk/Lmxlbmd0aCB8fCAobGFuZ3VhZ2VzICYmIGxhbmd1YWdlcy5sZW5ndGggPiAxKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwibWVudS1idXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwic21hbGxEZXZpY2VNZW51XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNpZGVOYXYoKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2xheW91dC5tZW51JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jZW50ZXJcIlxuICAgICAgICAgICAgbWF0LXRhYi1uYXYtYmFyXG4gICAgICAgICAgICBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxhbmd1YWdlTWVudVwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJsYW5ndWFnZU1lbnVcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYW5ndWFnZS5zZWxlY3Rpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgbWF0LXRhYi1saW5rXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGN1cnJlbnRMYW5ndWFnZSB9fVxuICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJ3aWR0aDogMTZweFwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bWF0LW1lbnUgI2xhbmd1YWdlTWVudT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxhbmcgb2YgbGFuZ3VhZ2VzXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ2xhbmd1YWdlXycgKyBsYW5nLmNvZGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTGFuZ3VhZ2UobGFuZy5jb2RlKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFuZy5sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGxhbmcubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtdG9vbGJhcj5cbiAgICA8L2hlYWRlcj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPGRpdlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICAgICBbY2xhc3Mub25lbXJ2YS1sYXlvdXQtY29udGFpbmVyXT1cIiFmbHVpZFwiXG4gICAgICAgIGNsYXNzPVwib25lbXJ2YS1sYXlvdXQtY29udGVudFwiXG4gICAgICAgICpuZ0lmPVwiY29udGVudD8udGVtcGxhdGUgYXMgdHBsXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgZW52aXJvbm1lbnQgJiZcbiAgICAgICAgICAgIChlbnZpcm9ubWVudCA9PT0gZW52LkxPQ0FMIHx8IGVudmlyb25tZW50ID09PSBlbnYuVEVTVClcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhY2Nlc3NpYmlsaXR5X2ZhYlwiXG4gICAgICAgICAgICBtYXQtZmFiXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWNjZXNzaWJpbGl0eSBjaGVja1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQWNjZXNzaWJpbGl0eSBjaGVja1wiXG4gICAgICAgICAgICBvbmNsaWNrPVwiKGZ1bmN0aW9uKCkge3ZhciBfcD0nLy9vcGVuZmVkLmdpdGh1Yi5pby9BY2Nlc3NpYmlsaXR5Q2hlY2svYnVpbGQvJzt2YXIgX2k9ZnVuY3Rpb24ocyxjYikge3ZhciBzYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtzYy5vbmxvYWQgPSBmdW5jdGlvbigpIHtzYy5vbmxvYWQgPSBudWxsO3NjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7Y2IuY2FsbCh0aGlzKTt9O3NjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCl7aWYoL14oY29tcGxldGV8bG9hZGVkKSQvLnRlc3QodGhpcy5yZWFkeVN0YXRlKSA9PT0gdHJ1ZSl7c2Mub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtzYy5vbmxvYWQoKTt9fTtzYy5zcmM9cztpZiAoZG9jdW1lbnQuaGVhZCkge2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2MpO30gZWxzZSB7ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChzYyk7fX07IHZhciBvcHRpb25zPXtwYXRoOl9wfTtfaShfcCsnSFRNTENTLmpzJyxmdW5jdGlvbigpe0hUTUxDU0F1ZGl0b3IucnVuKCdXQ0FHMkFBJyxudWxsLG9wdGlvbnMpO30pO30pKCk7XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24+YWNjZXNzaWJpbGl0eTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxmb290ZXIgY2xhc3M9XCJvbmVtcnZhLWZvb3RlclwiICpuZ0lmPVwiZm9vdGVyPy50ZW1wbGF0ZSBhcyBmb290ZXJcIj5cbiAgICAgICAgPGRpdiBbY2xhc3Mub25lbXJ2YS1sYXlvdXQtY29udGFpbmVyXT1cIiFmbHVpZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG1hdC1kcmF3ZXJcbiAgICBjbGFzcz1cIm9uZW1ydmEtZHJhd2VyIG1vYmlsZS1tZW51LXNpZGViYXJcIlxuICAgIG1vZGU9XCJvdmVyXCJcbiAgICBwb3NpdGlvbj1cImVuZFwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgZHJhd2VyaG9zdD48L25nLXRlbXBsYXRlPlxuICA8L21hdC1kcmF3ZXI+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
@@ -7,10 +7,10 @@ export class LayoutAfterNavComponent {
7
7
  ngAfterViewInit() {
8
8
  this.cd.detectChanges();
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutAfterNavComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutAfterNavComponent, selector: "onemrva-layout-after-nav", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutAfterNavComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutAfterNavComponent, selector: "onemrva-layout-after-nav", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutAfterNavComponent, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutAfterNavComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: 'onemrva-layout-after-nav',
@@ -7,10 +7,10 @@ export class LayoutContentComponent {
7
7
  ngAfterViewInit() {
8
8
  this.cd.detectChanges();
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutContentComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutContentComponent, selector: "onemrva-layout-content", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutContentComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutContentComponent, selector: "onemrva-layout-content", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutContentComponent, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutContentComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: 'onemrva-layout-content',
@@ -6,10 +6,10 @@ export class LayoutDrawerActionsComponent {
6
6
  constructor(drawerService) {
7
7
  this.drawerService = drawerService;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerActionsComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutDrawerActionsComponent, isStandalone: true, selector: "onemrva-drawer-actions", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}\n"] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerActionsComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutDrawerActionsComponent, isStandalone: true, selector: "onemrva-drawer-actions", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}\n"] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerActionsComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerActionsComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'onemrva-drawer-actions', standalone: true, imports: [MatIcon], template: "<ng-content></ng-content>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}\n"] }]
15
15
  }], ctorParameters: () => [{ type: i1.OnemrvaDrawerService }] });
@@ -6,10 +6,10 @@ export class LayoutDrawerContentComponent {
6
6
  constructor(drawerService) {
7
7
  this.drawerService = drawerService;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerContentComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutDrawerContentComponent, isStandalone: true, selector: "onemrva-drawer-content", ngImport: i0, template: "<span><ng-content></ng-content></span>\n", styles: [""] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerContentComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutDrawerContentComponent, isStandalone: true, selector: "onemrva-drawer-content", ngImport: i0, template: "<span><ng-content></ng-content></span>\n", styles: [""] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerContentComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerContentComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'onemrva-drawer-content', standalone: true, imports: [MatIcon], template: "<span><ng-content></ng-content></span>\n" }]
15
15
  }], ctorParameters: () => [{ type: i1.OnemrvaDrawerService }] });
@@ -8,10 +8,10 @@ export class LayoutDrawerTitleComponent {
8
8
  this.drawerService = drawerService;
9
9
  this.showClose = true;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerTitleComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutDrawerTitleComponent, isStandalone: true, selector: "onemrva-drawer-title", inputs: { showClose: "showClose" }, ngImport: i0, template: "<span><ng-content></ng-content></span>\n<mat-icon\n *ngIf=\"showClose\"\n class=\"close-drawer clickable\"\n (click)=\"drawerService.close()\"\n >close</mat-icon\n>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}:host mat-icon.close-drawer{float:right;line-height:36px}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerTitleComponent, deps: [{ token: i1.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutDrawerTitleComponent, isStandalone: true, selector: "onemrva-drawer-title", inputs: { showClose: "showClose" }, ngImport: i0, template: "<span><ng-content></ng-content></span>\n<mat-icon\n *ngIf=\"showClose\"\n class=\"close-drawer clickable\"\n (click)=\"drawerService.close()\"\n >close</mat-icon\n>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}:host mat-icon.close-drawer{float:right;line-height:36px}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutDrawerTitleComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutDrawerTitleComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'onemrva-drawer-title', standalone: true, imports: [MatIcon, NgIf], template: "<span><ng-content></ng-content></span>\n<mat-icon\n *ngIf=\"showClose\"\n class=\"close-drawer clickable\"\n (click)=\"drawerService.close()\"\n >close</mat-icon\n>\n", styles: [":host{width:calc(100% - 32px);display:block;padding:16px}:host mat-icon.close-drawer{float:right;line-height:36px}\n"] }]
17
17
  }], ctorParameters: () => [{ type: i1.OnemrvaDrawerService }], propDecorators: { showClose: [{
@@ -1,10 +1,10 @@
1
1
  import { Component, TemplateRef, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class LayoutFooterComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutFooterComponent, selector: "onemrva-layout-footer", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutFooterComponent, selector: "onemrva-layout-footer", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
6
6
  }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutFooterComponent, decorators: [{
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutFooterComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{
10
10
  selector: 'onemrva-layout-footer',
@@ -7,10 +7,10 @@ export class LayoutLoginMenuComponent {
7
7
  ngAfterViewInit() {
8
8
  this.cd.detectChanges();
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutLoginMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: LayoutLoginMenuComponent, selector: "onemrva-layout-login-menu", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutLoginMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: LayoutLoginMenuComponent, selector: "onemrva-layout-login-menu", inputs: { customNgClass: "customNgClass" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LayoutLoginMenuComponent, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LayoutLoginMenuComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: 'onemrva-layout-login-menu',