@recursyve/nice-ui-kit.v2 15.0.0-beta.131 → 16.0.0-beta.134

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 (400) hide show
  1. package/esm2022/lib/animations/defaults.mjs +32 -0
  2. package/{esm2020 → esm2022}/lib/api/interceptors/transform-response.interceptor.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/alert/alert.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/components/alert/alert.module.mjs +9 -9
  5. package/{esm2020 → esm2022}/lib/components/alert/alert.service.mjs +4 -4
  6. package/esm2022/lib/components/assets-carousel/assets-carousel.component.mjs +283 -0
  7. package/{esm2020 → esm2022}/lib/components/assets-carousel/assets-carousel.module.mjs +19 -19
  8. package/{esm2020 → esm2022}/lib/components/assets-carousel/directives/assets-carousel-active-content.directive.mjs +4 -4
  9. package/esm2022/lib/components/async-typeahead/async-typeahead.component.mjs +451 -0
  10. package/{esm2020 → esm2022}/lib/components/async-typeahead/async-typeahead.module.mjs +21 -21
  11. package/{esm2020 → esm2022}/lib/components/async-typeahead/providers/async-typeahead.service.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/components/base-form/base-form.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/components/base-form/base-form.module.mjs +5 -5
  14. package/{esm2020 → esm2022}/lib/components/base-form/form-submit.directive.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/components/card/card.component.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/components/card/card.module.mjs +5 -5
  17. package/{esm2020 → esm2022}/lib/components/carousel/carousel.component.mjs +4 -4
  18. package/esm2022/lib/components/carousel/carousel.module.mjs +40 -0
  19. package/{esm2020 → esm2022}/lib/components/carousel/picture-modal/picture-modal.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/lib/components/carousel/picture-modal/picture-modal.service.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/components/carousel/pipe/carousel-layout.pipe.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/components/collapsable/collapsable.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/components/collapsable/collapsable.module.mjs +7 -7
  24. package/{esm2020 → esm2022}/lib/components/date-range-picker/components/header/header.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/components/date-range-picker/components/range-preset/range-preset.component.mjs +4 -4
  26. package/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +95 -0
  27. package/{esm2020 → esm2022}/lib/components/date-range-picker/date-range-picker.module.mjs +21 -21
  28. package/{esm2020 → esm2022}/lib/components/date-range-picker/providers/date-range-picker.service.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/components/drawer/drawer.component.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/components/drawer/drawer.module.mjs +7 -7
  31. package/{esm2020 → esm2022}/lib/components/drawer/drawer.service.mjs +4 -4
  32. package/{esm2020 → esm2022}/lib/components/export-bottom-sheet/export-bottom-sheet.component.mjs +4 -4
  33. package/esm2022/lib/components/export-bottom-sheet/export-bottom-sheet.module.mjs +45 -0
  34. package/{esm2020 → esm2022}/lib/components/export-bottom-sheet/providers/export-bottom-sheet.service.mjs +7 -7
  35. package/{esm2020 → esm2022}/lib/components/form-error/control-status.directive.mjs +4 -4
  36. package/esm2022/lib/components/form-error/form-error.component.mjs +53 -0
  37. package/{esm2020 → esm2022}/lib/components/form-error/form-error.module.mjs +5 -5
  38. package/esm2022/lib/components/horizontal-stepper/horizontal-stepper.component.mjs +34 -0
  39. package/{esm2020 → esm2022}/lib/components/horizontal-stepper/horizontal-stepper.module.mjs +9 -9
  40. package/{esm2020 → esm2022}/lib/components/horizontal-stepper/step.component.mjs +6 -6
  41. package/esm2022/lib/components/image-cropper/image-cropper.component.mjs +1269 -0
  42. package/{esm2020 → esm2022}/lib/components/image-cropper/image-cropper.module.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/components/layout/layout.component.mjs +4 -4
  44. package/{esm2020 → esm2022}/lib/components/layout/layout.module.mjs +5 -5
  45. package/{esm2020 → esm2022}/lib/components/loading-spinner/loading-spinner.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/lib/components/loading-spinner/loading-spinner.module.mjs +9 -9
  47. package/{esm2020 → esm2022}/lib/components/loading-spinner/loading.directive.mjs +4 -4
  48. package/{esm2020 → esm2022}/lib/components/loading-toast/loading-toast.component.mjs +4 -4
  49. package/{esm2020 → esm2022}/lib/components/loading-toast/loading-toast.directive.mjs +4 -4
  50. package/{esm2020 → esm2022}/lib/components/loading-toast/loading-toast.module.mjs +5 -5
  51. package/{esm2020 → esm2022}/lib/components/loading-toast/loading-toast.service.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/components/lottie/lottie.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/lib/components/lottie/lottie.module.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/components/navigation/components/hint-component-base.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/components/navigation/directives/show-hint.directive.mjs +4 -4
  56. package/esm2022/lib/components/navigation/horizontal/components/basic/basic.component.mjs +62 -0
  57. package/{esm2020 → esm2022}/lib/components/navigation/horizontal/components/branch/branch.component.mjs +7 -7
  58. package/{esm2020 → esm2022}/lib/components/navigation/horizontal/components/divider/divider.component.mjs +4 -4
  59. package/{esm2020 → esm2022}/lib/components/navigation/horizontal/components/spacer/spacer.component.mjs +4 -4
  60. package/esm2022/lib/components/navigation/horizontal/horizontal.component.mjs +50 -0
  61. package/esm2022/lib/components/navigation/navigation.component.mjs +83 -0
  62. package/esm2022/lib/components/navigation/navigation.module.mjs +108 -0
  63. package/{esm2020 → esm2022}/lib/components/navigation/navigation.service.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/components/navigation/pipes/should-hide.pipe.mjs +4 -4
  65. package/{esm2020 → esm2022}/lib/components/navigation/pipes/should-show-hint.pipe.mjs +4 -4
  66. package/esm2022/lib/components/navigation/pipes/translate-with-context.pipe.mjs +25 -0
  67. package/{esm2020 → esm2022}/lib/components/navigation/providers/hint.service.mjs +4 -4
  68. package/esm2022/lib/components/navigation/providers/translation-context.service.mjs +16 -0
  69. package/{esm2020 → esm2022}/lib/components/navigation/vertical/components/aside/aside.component.mjs +6 -6
  70. package/esm2022/lib/components/navigation/vertical/components/basic/basic.component.mjs +76 -0
  71. package/{esm2020 → esm2022}/lib/components/navigation/vertical/components/collapsable/collapsable.component.mjs +8 -8
  72. package/{esm2020 → esm2022}/lib/components/navigation/vertical/components/divider/divider.component.mjs +4 -4
  73. package/esm2022/lib/components/navigation/vertical/components/group/group.component.mjs +75 -0
  74. package/{esm2020 → esm2022}/lib/components/navigation/vertical/components/spacer/spacer.component.mjs +4 -4
  75. package/esm2022/lib/components/navigation/vertical/vertical.component.mjs +599 -0
  76. package/esm2022/lib/components/search-bar/search-bar.component.mjs +76 -0
  77. package/{esm2020 → esm2022}/lib/components/search-bar/search-bar.module.mjs +13 -13
  78. package/{esm2020 → esm2022}/lib/components/sweet-alert/sweet-alert.component.mjs +4 -4
  79. package/{esm2020 → esm2022}/lib/components/sweet-alert/sweet-alert.directive.mjs +4 -4
  80. package/{esm2020 → esm2022}/lib/components/sweet-alert/sweet-alert.module.mjs +5 -5
  81. package/{esm2020 → esm2022}/lib/components/sweet-alert/sweet-alert.service.mjs +4 -4
  82. package/{esm2020 → esm2022}/lib/components/toast/toast.component.mjs +4 -4
  83. package/{esm2020 → esm2022}/lib/components/toast/toast.module.mjs +5 -5
  84. package/{esm2020 → esm2022}/lib/components/toast/toast.service.mjs +4 -4
  85. package/esm2022/lib/components/toggle-button-group/toggle-button-group.component.mjs +134 -0
  86. package/{esm2020 → esm2022}/lib/components/toggle-button-group/toggle-button-group.module.mjs +7 -7
  87. package/{esm2020 → esm2022}/lib/components/toggle-button-group/toggle-button.component.mjs +4 -4
  88. package/esm2022/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +38 -0
  89. package/esm2022/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +26 -0
  90. package/{esm2020 → esm2022}/lib/components/translation-form/components/translation-form.component.mjs +4 -4
  91. package/{esm2020 → esm2022}/lib/components/translation-form/components/translation-form.module.mjs +19 -19
  92. package/{esm2020 → esm2022}/lib/components/translation-form/directives/translation-context.directive.mjs +4 -4
  93. package/{esm2020 → esm2022}/lib/components/translation-form/providers/nice-translation-form.service.mjs +4 -4
  94. package/{esm2020 → esm2022}/lib/components/translation-form/toggle/translation-toggle.component.mjs +4 -4
  95. package/{esm2020 → esm2022}/lib/components/translation-form/validators/require-for-languages.validator.mjs +4 -4
  96. package/{esm2020 → esm2022}/lib/components/typeahead/directives/options-scroll.directive.mjs +4 -4
  97. package/{esm2020 → esm2022}/lib/components/typeahead/directives/options-scroll.module.mjs +5 -5
  98. package/{esm2020 → esm2022}/lib/components/typeahead/typeahead.component.mjs +9 -9
  99. package/{esm2020 → esm2022}/lib/components/typeahead/typeahead.module.mjs +25 -25
  100. package/{esm2020 → esm2022}/lib/directives/autofocus/autofocus.directive.mjs +4 -4
  101. package/{esm2020 → esm2022}/lib/directives/autofocus/autofocus.module.mjs +5 -5
  102. package/{esm2020 → esm2022}/lib/directives/autogrow/autogrow.directive.mjs +4 -4
  103. package/{esm2020 → esm2022}/lib/directives/autogrow/autogrow.module.mjs +5 -5
  104. package/{esm2020 → esm2022}/lib/directives/chip-async-typeahead/chip-async-typeahead.directive.mjs +4 -4
  105. package/{esm2020 → esm2022}/lib/directives/chip-list/chip-list-items/chip-list-item-label.directive.mjs +4 -4
  106. package/{esm2020 → esm2022}/lib/directives/chip-list/chip-list-items/chip-list-items.component.mjs +4 -4
  107. package/{esm2020 → esm2022}/lib/directives/chip-list/chip-list.directive.mjs +4 -4
  108. package/{esm2020 → esm2022}/lib/directives/chip-list/chip-list.module.mjs +5 -5
  109. package/{esm2020 → esm2022}/lib/directives/draggable-list/draggable-list.directive.mjs +4 -4
  110. package/{esm2020 → esm2022}/lib/directives/draggable-list/draggable-list.module.mjs +5 -5
  111. package/{esm2020 → esm2022}/lib/directives/dropzone/dropzone.directive.mjs +4 -4
  112. package/{esm2020 → esm2022}/lib/directives/dropzone/dropzone.module.mjs +5 -5
  113. package/{esm2020 → esm2022}/lib/directives/image-error-placeholder/image-error-placeholder.directive.mjs +4 -4
  114. package/{esm2020 → esm2022}/lib/directives/image-error-placeholder/image-error-placeholder.module.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/directives/material/material.module.mjs +7 -7
  116. package/{esm2020 → esm2022}/lib/directives/material/nice-material-style.directive.mjs +4 -4
  117. package/{esm2020 → esm2022}/lib/directives/material/nice-rounded-style.directive.mjs +4 -4
  118. package/{esm2020 → esm2022}/lib/directives/modals/modal-on-click.directive.mjs +4 -4
  119. package/{esm2020 → esm2022}/lib/directives/modals/modal-opener.directive.mjs +4 -4
  120. package/{esm2020 → esm2022}/lib/directives/rerender/rerender.directive.mjs +4 -4
  121. package/{esm2020 → esm2022}/lib/directives/resolve/resolve.directive.mjs +4 -4
  122. package/{esm2020 → esm2022}/lib/directives/scroll-reset/scroll-reset.directive.mjs +4 -4
  123. package/{esm2020 → esm2022}/lib/directives/scroll-reset/scroll-reset.module.mjs +5 -5
  124. package/{esm2020 → esm2022}/lib/directives/scrollbar/scrollbar.directive.mjs +4 -4
  125. package/{esm2020 → esm2022}/lib/directives/scrollbar/scrollbar.module.mjs +5 -5
  126. package/{esm2020 → esm2022}/lib/directives/stop-propagation/click-stop-propagation.directive.mjs +4 -4
  127. package/{esm2020 → esm2022}/lib/directives/stop-propagation/stop-propagation.module.mjs +5 -5
  128. package/{esm2020 → esm2022}/lib/directives/window/prevent-close-window.directive.mjs +4 -4
  129. package/{esm2020 → esm2022}/lib/directives/window/window-directive.module.mjs +5 -5
  130. package/esm2022/lib/nice.module.mjs +124 -0
  131. package/{esm2020 → esm2022}/lib/pipes/boolean.pipe.mjs +4 -4
  132. package/{esm2020 → esm2022}/lib/pipes/capitalize-first-letter.pipe.mjs +4 -4
  133. package/{esm2020 → esm2022}/lib/pipes/ceil.pipe.mjs +4 -4
  134. package/{esm2020 → esm2022}/lib/pipes/entries.pipe.mjs +4 -4
  135. package/{esm2020 → esm2022}/lib/pipes/find-by-key.pipe.mjs +4 -4
  136. package/{esm2020 → esm2022}/lib/pipes/first-letter.pipe.mjs +4 -4
  137. package/{esm2020 → esm2022}/lib/pipes/floor.pipe.mjs +4 -4
  138. package/{esm2020 → esm2022}/lib/pipes/join-if-defined.pipe.mjs +4 -4
  139. package/{esm2020 → esm2022}/lib/pipes/link.pipe.mjs +4 -4
  140. package/{esm2020 → esm2022}/lib/pipes/localized-boolean.pipe.mjs +4 -4
  141. package/{esm2020 → esm2022}/lib/pipes/localized-currency.pipe.mjs +4 -4
  142. package/{esm2020 → esm2022}/lib/pipes/localized-date-only.pipe.mjs +4 -4
  143. package/{esm2020 → esm2022}/lib/pipes/localized-date.pipe.mjs +4 -4
  144. package/{esm2020 → esm2022}/lib/pipes/minutes-to-time.pipe.mjs +4 -4
  145. package/{esm2020 → esm2022}/lib/pipes/number-to-ordinal-indicator.pipe.mjs +4 -4
  146. package/{esm2020 → esm2022}/lib/pipes/pad.pipe.mjs +4 -4
  147. package/{esm2020 → esm2022}/lib/pipes/phone.pipe.mjs +4 -4
  148. package/{esm2020 → esm2022}/lib/pipes/pipes.module.mjs +72 -72
  149. package/{esm2020 → esm2022}/lib/pipes/postal-code.pipe.mjs +4 -4
  150. package/{esm2020 → esm2022}/lib/pipes/range.pipe.mjs +4 -4
  151. package/{esm2020 → esm2022}/lib/pipes/round.pipe.mjs +4 -4
  152. package/{esm2020 → esm2022}/lib/pipes/sanitize-bypass.pipe.mjs +4 -4
  153. package/{esm2020 → esm2022}/lib/pipes/seconds-to-time.pipe.mjs +4 -4
  154. package/{esm2020 → esm2022}/lib/pipes/track-by-prop.pipe.mjs +4 -4
  155. package/{esm2020 → esm2022}/lib/providers/config/config.module.mjs +5 -5
  156. package/{esm2020 → esm2022}/lib/providers/config/config.service.mjs +4 -4
  157. package/{esm2020 → esm2022}/lib/providers/media-watcher/media-watcher.module.mjs +7 -7
  158. package/{esm2020 → esm2022}/lib/providers/media-watcher/media-watcher.service.mjs +4 -4
  159. package/{esm2020 → esm2022}/lib/providers/overlay/dynamic-overlay-container.service.mjs +4 -4
  160. package/{esm2020 → esm2022}/lib/providers/overlay/dynamic-overlay.service.mjs +4 -4
  161. package/{esm2020 → esm2022}/lib/providers/splash-screen/splash-screen.module.mjs +7 -7
  162. package/{esm2020 → esm2022}/lib/providers/splash-screen/splash-screen.service.mjs +4 -4
  163. package/{esm2020 → esm2022}/lib/providers/utils/utils.module.mjs +5 -5
  164. package/{esm2020 → esm2022}/lib/providers/utils/utils.service.mjs +4 -4
  165. package/esm2022/lib/utils/regex.utils.mjs +11 -0
  166. package/{fesm2020 → fesm2022}/recursyve-nice-ui-kit.v2.mjs +948 -905
  167. package/fesm2022/recursyve-nice-ui-kit.v2.mjs.map +1 -0
  168. package/lib/components/alert/alert.component.d.ts +1 -1
  169. package/lib/components/assets-carousel/assets-carousel.component.d.ts +1 -1
  170. package/lib/components/async-typeahead/async-typeahead.component.d.ts +1 -1
  171. package/lib/components/base-form/base-form.component.d.ts +1 -1
  172. package/lib/components/base-form/form-submit.directive.d.ts +1 -1
  173. package/lib/components/card/card.component.d.ts +1 -1
  174. package/lib/components/carousel/carousel.component.d.ts +1 -1
  175. package/lib/components/collapsable/collapsable.component.d.ts +1 -1
  176. package/lib/components/date-range-picker/date-range-picker.component.d.ts +1 -1
  177. package/lib/components/drawer/drawer.component.d.ts +1 -1
  178. package/lib/components/form-error/form-error.component.d.ts +1 -1
  179. package/lib/components/image-cropper/image-cropper.component.d.ts +2 -2
  180. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  181. package/lib/components/loading-spinner/loading.directive.d.ts +1 -1
  182. package/lib/components/loading-toast/loading-toast.component.d.ts +1 -1
  183. package/lib/components/loading-toast/loading-toast.directive.d.ts +1 -1
  184. package/lib/components/lottie/lottie.component.d.ts +1 -1
  185. package/lib/components/navigation/directives/show-hint.directive.d.ts +1 -1
  186. package/lib/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
  187. package/lib/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
  188. package/lib/components/navigation/horizontal/components/divider/divider.component.d.ts +1 -1
  189. package/lib/components/navigation/horizontal/components/spacer/spacer.component.d.ts +1 -1
  190. package/lib/components/navigation/horizontal/horizontal.component.d.ts +4 -2
  191. package/lib/components/navigation/navigation.component.d.ts +3 -1
  192. package/lib/components/navigation/navigation.module.d.ts +12 -11
  193. package/lib/components/navigation/pipes/translate-with-context.pipe.d.ts +12 -0
  194. package/lib/components/navigation/providers/translation-context.service.d.ts +8 -0
  195. package/lib/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
  196. package/lib/components/navigation/vertical/components/basic/basic.component.d.ts +1 -1
  197. package/lib/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
  198. package/lib/components/navigation/vertical/components/divider/divider.component.d.ts +1 -1
  199. package/lib/components/navigation/vertical/components/group/group.component.d.ts +1 -1
  200. package/lib/components/navigation/vertical/components/spacer/spacer.component.d.ts +1 -1
  201. package/lib/components/navigation/vertical/vertical.component.d.ts +4 -2
  202. package/lib/components/search-bar/search-bar.component.d.ts +1 -1
  203. package/lib/components/sweet-alert/sweet-alert.directive.d.ts +1 -1
  204. package/lib/components/toggle-button-group/toggle-button-group.component.d.ts +1 -1
  205. package/lib/components/toggle-button-group/toggle-button.component.d.ts +1 -1
  206. package/lib/components/translation-form/components/textarea/translation-form-textarea.component.d.ts +1 -1
  207. package/lib/components/translation-form/components/translation-form.component.d.ts +1 -1
  208. package/lib/components/translation-form/validators/require-for-languages.validator.d.ts +1 -1
  209. package/lib/components/typeahead/directives/options-scroll.directive.d.ts +1 -1
  210. package/lib/components/typeahead/typeahead.component.d.ts +1 -1
  211. package/lib/directives/autogrow/autogrow.directive.d.ts +1 -1
  212. package/lib/directives/chip-list/chip-list-items/chip-list-items.component.d.ts +1 -1
  213. package/lib/directives/chip-list/chip-list.directive.d.ts +1 -1
  214. package/lib/directives/draggable-list/draggable-list.directive.d.ts +1 -1
  215. package/lib/directives/image-error-placeholder/image-error-placeholder.directive.d.ts +1 -1
  216. package/lib/directives/modals/modal-opener.directive.d.ts +1 -1
  217. package/lib/directives/rerender/rerender.directive.d.ts +1 -1
  218. package/lib/directives/resolve/resolve.directive.d.ts +1 -1
  219. package/lib/directives/scrollbar/scrollbar.directive.d.ts +1 -1
  220. package/package.json +12 -19
  221. package/esm2020/lib/animations/defaults.mjs +0 -32
  222. package/esm2020/lib/components/assets-carousel/assets-carousel.component.mjs +0 -283
  223. package/esm2020/lib/components/async-typeahead/async-typeahead.component.mjs +0 -451
  224. package/esm2020/lib/components/carousel/carousel.module.mjs +0 -41
  225. package/esm2020/lib/components/date-range-picker/date-range-picker.component.mjs +0 -95
  226. package/esm2020/lib/components/export-bottom-sheet/export-bottom-sheet.module.mjs +0 -45
  227. package/esm2020/lib/components/form-error/form-error.component.mjs +0 -53
  228. package/esm2020/lib/components/horizontal-stepper/horizontal-stepper.component.mjs +0 -34
  229. package/esm2020/lib/components/image-cropper/image-cropper.component.mjs +0 -1269
  230. package/esm2020/lib/components/navigation/horizontal/components/basic/basic.component.mjs +0 -62
  231. package/esm2020/lib/components/navigation/horizontal/horizontal.component.mjs +0 -46
  232. package/esm2020/lib/components/navigation/navigation.component.mjs +0 -76
  233. package/esm2020/lib/components/navigation/navigation.module.mjs +0 -105
  234. package/esm2020/lib/components/navigation/vertical/components/basic/basic.component.mjs +0 -76
  235. package/esm2020/lib/components/navigation/vertical/components/group/group.component.mjs +0 -75
  236. package/esm2020/lib/components/navigation/vertical/vertical.component.mjs +0 -595
  237. package/esm2020/lib/components/search-bar/search-bar.component.mjs +0 -76
  238. package/esm2020/lib/components/toggle-button-group/toggle-button-group.component.mjs +0 -134
  239. package/esm2020/lib/components/translation-form/components/textarea/translation-form-textarea.component.mjs +0 -38
  240. package/esm2020/lib/components/translation-form/components/textfield/translation-form-textfield.component.mjs +0 -26
  241. package/esm2020/lib/nice.module.mjs +0 -124
  242. package/esm2020/lib/utils/regex.utils.mjs +0 -11
  243. package/fesm2015/recursyve-nice-ui-kit.v2.mjs +0 -11867
  244. package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +0 -1
  245. package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +0 -1
  246. /package/{esm2020 → esm2022}/lib/animations/expand-collapse.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/animations/fade.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/animations/index.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/animations/public-api.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/animations/shake.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/animations/slide.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/animations/zoom.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/api/exceptions/api.exception.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/api/exceptions/exception.factory.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/api/index.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/api/nice.api.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/api/public-api.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/components/alert/alert.types.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/components/alert/index.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/components/alert/public-api.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/components/assets-carousel/assets-carousel.constant.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/components/assets-carousel/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/components/assets-carousel/public-api.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/components/async-typeahead/async-typeahead.constant.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/components/async-typeahead/index.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/components/async-typeahead/providers/async-typeahead.provider.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/components/async-typeahead/public-api.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/components/base-form/index.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/components/base-form/nice-base.form.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/components/base-form/public-api.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/components/card/card.types.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/components/card/index.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/components/card/public-api.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/components/carousel/index.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/components/carousel/picture-modal/index.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/components/carousel/picture-modal/public-api.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/components/carousel/public-api.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/components/collapsable/index.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/components/collapsable/public-api.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/components/date-range-picker/index.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/components/date-range-picker/public-api.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/components/drawer/drawer.types.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/components/drawer/index.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/components/drawer/public-api.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/components/export-bottom-sheet/index.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/components/export-bottom-sheet/models/export-strategy.model.mjs +0 -0
  287. /package/{esm2020 → esm2022}/lib/components/export-bottom-sheet/public-api.mjs +0 -0
  288. /package/{esm2020 → esm2022}/lib/components/form-error/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/lib/components/form-error/public-api.mjs +0 -0
  290. /package/{esm2020 → esm2022}/lib/components/horizontal-stepper/index.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/components/horizontal-stepper/public-api.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/components/image-cropper/index.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/components/image-cropper/public-api.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/components/image-cropper/resize-canvas.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/components/layout/index.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/components/layout/public-api.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/components/loading-spinner/index.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/components/loading-spinner/loading.constant.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/components/loading-spinner/public-api.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/components/loading-toast/index.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/components/loading-toast/loading-toast.constant.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/components/loading-toast/public-api.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/components/loading-toast/rxjs/show-loading-toast.operator.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/components/lottie/index.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/components/lottie/public-api.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/components/navigation/index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/components/navigation/navigation.types.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/components/navigation/providers/hide-item.resolver.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/components/navigation/providers/hint.resolver.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/components/navigation/public-api.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/components/public-api.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/components/search-bar/index.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/components/search-bar/public-api.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/components/sweet-alert/index.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/components/sweet-alert/public-api.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/components/sweet-alert/sweet-alert.constant.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/components/toast/index.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/components/toast/public-api.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/components/toast/rxjs/show-success-or-error-toast.operator.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/components/toast/rxjs/show-toast.operator.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/components/toast/toast.constant.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/components/toggle-button-group/index.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/components/toggle-button-group/public-api.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/components/translation-form/decorators/translation-form-group.decorator.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/components/translation-form/index.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/components/translation-form/public-api.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/components/translation-form/translation.form.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/components/typeahead/index.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/components/typeahead/public-api.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/directives/autofocus/index.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/directives/autofocus/public-api.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/directives/autogrow/index.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/directives/autogrow/public-api.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/directives/chip-async-typeahead/index.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/directives/chip-async-typeahead/public-api.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/directives/chip-list/chip-list.constant.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/directives/chip-list/index.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/directives/chip-list/public-api.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/directives/draggable-list/index.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/directives/draggable-list/public-api.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/directives/dropzone/index.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/directives/dropzone/public-api.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/directives/image-error-placeholder/index.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/directives/image-error-placeholder/public-api.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/directives/material/index.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/directives/material/public-api.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/directives/modals/index.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/directives/modals/public-api.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/directives/public-api.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/directives/rerender/index.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/directives/rerender/public-api.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/directives/resolve/index.mjs +0 -0
  355. /package/{esm2020 → esm2022}/lib/directives/resolve/public-api.mjs +0 -0
  356. /package/{esm2020 → esm2022}/lib/directives/scroll-reset/index.mjs +0 -0
  357. /package/{esm2020 → esm2022}/lib/directives/scroll-reset/public-api.mjs +0 -0
  358. /package/{esm2020 → esm2022}/lib/directives/scrollbar/index.mjs +0 -0
  359. /package/{esm2020 → esm2022}/lib/directives/scrollbar/public-api.mjs +0 -0
  360. /package/{esm2020 → esm2022}/lib/directives/scrollbar/scrollbar.types.mjs +0 -0
  361. /package/{esm2020 → esm2022}/lib/directives/stop-propagation/index.mjs +0 -0
  362. /package/{esm2020 → esm2022}/lib/directives/stop-propagation/public-api.mjs +0 -0
  363. /package/{esm2020 → esm2022}/lib/directives/window/index.mjs +0 -0
  364. /package/{esm2020 → esm2022}/lib/directives/window/public-api.mjs +0 -0
  365. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  366. /package/{esm2020 → esm2022}/lib/pipes/public-api.mjs +0 -0
  367. /package/{esm2020 → esm2022}/lib/providers/config/config.constants.mjs +0 -0
  368. /package/{esm2020 → esm2022}/lib/providers/config/config.model.mjs +0 -0
  369. /package/{esm2020 → esm2022}/lib/providers/config/index.mjs +0 -0
  370. /package/{esm2020 → esm2022}/lib/providers/config/public-api.mjs +0 -0
  371. /package/{esm2020 → esm2022}/lib/providers/index.mjs +0 -0
  372. /package/{esm2020 → esm2022}/lib/providers/media-watcher/index.mjs +0 -0
  373. /package/{esm2020 → esm2022}/lib/providers/media-watcher/public-api.mjs +0 -0
  374. /package/{esm2020 → esm2022}/lib/providers/public-api.mjs +0 -0
  375. /package/{esm2020 → esm2022}/lib/providers/splash-screen/index.mjs +0 -0
  376. /package/{esm2020 → esm2022}/lib/providers/splash-screen/public-api.mjs +0 -0
  377. /package/{esm2020 → esm2022}/lib/providers/utils/index.mjs +0 -0
  378. /package/{esm2020 → esm2022}/lib/providers/utils/public-api.mjs +0 -0
  379. /package/{esm2020 → esm2022}/lib/types/constructor.mjs +0 -0
  380. /package/{esm2020 → esm2022}/lib/utils/array.utils.mjs +0 -0
  381. /package/{esm2020 → esm2022}/lib/utils/case.utils.mjs +0 -0
  382. /package/{esm2020 → esm2022}/lib/utils/colors.utils.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/utils/date.utils.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/utils/file.utils.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/utils/font-awesome.utils.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/utils/form-data.utils.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/utils/http-status.utils.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/utils/keyboard.utils.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/utils/lexorank.utils.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/utils/modal.utils.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/utils/number.utils.mjs +0 -0
  393. /package/{esm2020 → esm2022}/lib/utils/object.utils.mjs +0 -0
  394. /package/{esm2020 → esm2022}/lib/utils/promise.utils.mjs +0 -0
  395. /package/{esm2020 → esm2022}/lib/utils/public-api.mjs +0 -0
  396. /package/{esm2020 → esm2022}/lib/utils/query-params.utils.mjs +0 -0
  397. /package/{esm2020 → esm2022}/lib/utils/type.utils.mjs +0 -0
  398. /package/{esm2020 → esm2022}/lib/utils/url.utils.mjs +0 -0
  399. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  400. /package/{esm2020 → esm2022}/recursyve-nice-ui-kit.v2.mjs +0 -0
@@ -13,7 +13,7 @@ import * as i6 from "../collapsable/collapsable.component";
13
13
  import * as i7 from "../divider/divider.component";
14
14
  import * as i8 from "../group/group.component";
15
15
  import * as i9 from "../spacer/spacer.component";
16
- import * as i10 from "@ngx-translate/core";
16
+ import * as i10 from "../../../pipes/translate-with-context.pipe";
17
17
  export class NiceVerticalNavigationAsideItemComponent {
18
18
  /**
19
19
  * Constructor
@@ -121,12 +121,12 @@ export class NiceVerticalNavigationAsideItemComponent {
121
121
  trackByFn(index, item) {
122
122
  return item.id || index;
123
123
  }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", skipChildren: "skipChildren", tooltipPosition: "tooltipPosition" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i6.NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i7.NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: i8.NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i9.NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i10.NiceTranslateWithContextPipe, name: "niceTranslateWithContext" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
124
126
  }
125
- NiceVerticalNavigationAsideItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
126
- NiceVerticalNavigationAsideItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationAsideItemComponent, selector: "nice-vertical-navigation-aside-item", inputs: { activeItemId: "activeItemId", autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", skipChildren: "skipChildren", tooltipPosition: "tooltipPosition" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i6.NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i7.NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: i8.NiceVerticalNavigationGroupItemComponent, selector: "nice-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i9.NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationAsideItemComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: "nice-vertical-navigation-aside-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
129
+ args: [{ selector: "nice-vertical-navigation-aside-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{\n 'nice-vertical-navigation-item-active': active,\n 'nice-vertical-navigation-item-disabled': item.disabled,\n 'nice-vertical-navigation-item-active-forced': item.active\n }\"\n >\n <!-- Icon -->\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <span class=\"nice-vertical-navigation-item-icon\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></span>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType === 'svg'\"\n ></mat-icon>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"!skipChildren\">\n <div class=\"nice-vertical-navigation-item-children\">\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-group-item>\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n </div>\n</ng-container>\n" }]
130
130
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.NiceNavigationService }]; }, propDecorators: { activeItemId: [{
131
131
  type: Input
132
132
  }], autoCollapse: [{
@@ -142,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
142
142
  }], tooltipPosition: [{
143
143
  type: Input
144
144
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi92ZXJ0aWNhbC9jb21wb25lbnRzL2FzaWRlL2FzaWRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUUxSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU3BFLE1BQU0sT0FBTyx3Q0FBd0M7SUFnQ2pEOztPQUVHO0lBQ0gsWUFDWSxrQkFBcUMsRUFDckMsT0FBZSxFQUNmLHNCQUE2QztRQUY3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBL0JqRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFldEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFNckIsb0JBQWUsR0FBb0IsT0FBTyxDQUFDO1FBRTNDLFdBQU0sR0FB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Q0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUVELGlCQUFpQjtRQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELHdHQUF3RztJQUN4RyxtQkFBbUI7SUFDbkIsd0dBQXdHO0lBRXhHOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7cUlBaEtRLHdDQUF3Qzt5SEFBeEMsd0NBQXdDLG9TQ2ZyRCxzeklBaUhBOzJGRGxHYSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0kscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNO2lLQVl4QyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTmljZU5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL25hdmlnYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZU5hdmlnYXRpb25JdGVtIH0gZnJvbSBcIi4uLy4uLy4uL25hdmlnYXRpb24udHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW1cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FzaWRlLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVzOiBbXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOaWNlVmVydGljYWxOYXZpZ2F0aW9uQXNpZGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2F1dG9Db2xsYXBzZTogQm9vbGVhbklucHV0O1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9za2lwQ2hpbGRyZW46IEJvb2xlYW5JbnB1dDtcblxuICAgIHByaXZhdGUgX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGwgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY3RpdmVJdGVtSWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9Db2xsYXBzZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUb29sdGlwcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2tpcENoaWxkcmVuOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBcImFmdGVyXCI7XG5cbiAgICBwdWJsaWMgYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9uaWNlTmF2aWdhdGlvblNlcnZpY2U6IE5pY2VOYXZpZ2F0aW9uU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBMaWZlY3ljbGUgaG9va3NcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLyoqXG4gICAgICogT24gY2hhbmdlc1xuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIGlkXG4gICAgICAgIGlmIChcImFjdGl2ZUl0ZW1JZFwiIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIC8vIE1hcmsgaWYgYWN0aXZlXG4gICAgICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUodGhpcy5fcm91dGVyLnVybCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBpbml0XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBNYXJrIGlmIGFjdGl2ZVxuICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUodGhpcy5fcm91dGVyLnVybCk7XG5cbiAgICAgICAgLy8gQXR0YWNoIGEgbGlzdGVuZXIgdG8gdGhlIE5hdmlnYXRpb25FbmQgZXZlbnRcbiAgICAgICAgdGhpcy5fcm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIE5hdmlnYXRpb25FbmQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgLy8gTWFyayBpZiBhY3RpdmVcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBwYXJlbnQgbmF2aWdhdGlvbiBjb21wb25lbnRcbiAgICAgICAgdGhpcy5fbmljZVZlcnRpY2FsTmF2aWdhdGlvbkNvbXBvbmVudCA9IHRoaXMuX25pY2VOYXZpZ2F0aW9uU2VydmljZS5nZXRDb21wb25lbnQodGhpcy5uYW1lKTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gb25SZWZyZXNoZWQgb24gdGhlIG5hdmlnYXRpb24gY29tcG9uZW50XG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25SZWZyZXNoZWQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRlc3Ryb3lcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gYWxsIHN1YnNjcmlwdGlvbnNcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgUHJpdmF0ZSBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBnaXZlbiBpdGVtIGhhcyB0aGUgZ2l2ZW4gdXJsXG4gICAgICogaW4gb25lIG9mIGl0cyBjaGlsZHJlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2hhc0FjdGl2ZUNoaWxkKGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbSwgY3VycmVudFVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcblxuICAgICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQoY2hpbGQsIGN1cnJlbnRVcmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2tpcCBpdGVtcyBvdGhlciB0aGFuICdiYXNpYydcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBcImJhc2ljXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNoaWxkIGhhcyBhIGxpbmsgYW5kIGlzIGFjdGl2ZVxuICAgICAgICAgICAgaWYgKGNoaWxkLmxpbmsgJiYgdGhpcy5fcm91dGVyLmlzQWN0aXZlKGNoaWxkLmxpbmssIGNoaWxkLmV4YWN0TWF0Y2ggfHwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVjaWRlIGFuZCBtYXJrIGlmIHRoZSBpdGVtIGlzIGFjdGl2ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX21hcmtJZkFjdGl2ZShjdXJyZW50VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFjdGl2ZUl0ZW1JZCBpcyBlcXVhbHMgdG8gdGhpcyBpdGVtIGlkXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5hY3RpdmVJdGVtSWQgPT09IHRoaXMuaXRlbS5pZDtcblxuICAgICAgICAvLyBJZiB0aGUgYXNpZGUgaGFzIGEgY2hpbGRyZW4gdGhhdCBpcyBhY3RpdmUsXG4gICAgICAgIC8vIGFsd2F5cyBtYXJrIGl0IGFzIGFjdGl2ZVxuICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQodGhpcy5pdGVtLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIFRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBuZ0ZvciBsb29wc1xuICAgICAqL1xuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaW5kZXg7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0td3JhcHBlclwiXG4gICAgW2NsYXNzLm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWhhcy1zdWJ0aXRsZV09XCIhIWl0ZW0uc3VidGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8ud3JhcHBlclwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZSc6IGFjdGl2ZSxcbiAgICAgICAgICAgICduaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgICAgICAnbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlLWZvcmNlZCc6IGl0ZW0uYWN0aXZlXG4gICAgICAgIH1cIlxuICAgID5cbiAgICAgICAgPCEtLSBJY29uIC0tPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb24gJiYgaXRlbS5pY29uVHlwZSA9PT0gJ21hdGVyaWFsJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uaWNvbiB9fVxuICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ2ZvbnRhd2Vzb21lJ1wiPjwvc3Bhbj5cblxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09PSAnc3ZnJ1wiXG4gICAgICAgID48L21hdC1pY29uPlxuXG4gICAgICAgIDwhLS0gVGl0bGUgJiBTdWJ0aXRsZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLXRpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnN1YnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmJhZGdlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2UtY29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5iYWRnZS5jbGFzc2VzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlLnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFza2lwQ2hpbGRyZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tY2hpbGRyZW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtLmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgIDwhLS0gU2tpcCB0aGUgaGlkZGVuIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpdGVtLmhpZGRlbiAmJiAhaXRlbS5oaWRkZW4oaXRlbSkpIHx8ICFpdGVtLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQmFzaWMgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1iYXNpYy1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnYmFzaWMnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tYmFzaWMtaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gQ29sbGFwc2FibGUgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnY29sbGFwc2FibGUnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcHNdPVwic2hvd1Rvb2x0aXBzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZGl2aWRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gR3JvdXAgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1ncm91cC1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZ3JvdXAnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gU3BhY2VyIC0tPlxuICAgICAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tc3BhY2VyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzcGFjZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi92ZXJ0aWNhbC9jb21wb25lbnRzL2FzaWRlL2FzaWRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUUxSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU3BFLE1BQU0sT0FBTyx3Q0FBd0M7SUFnQ2pEOztPQUVHO0lBQ0gsWUFDWSxrQkFBcUMsRUFDckMsT0FBZSxFQUNmLHNCQUE2QztRQUY3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBL0JqRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFldEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFNckIsb0JBQWUsR0FBb0IsT0FBTyxDQUFDO1FBRTNDLFdBQU0sR0FB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Q0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUVELGlCQUFpQjtRQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELHdHQUF3RztJQUN4RyxtQkFBbUI7SUFDbkIsd0dBQXdHO0lBRXhHOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUM7SUFDNUIsQ0FBQzs4R0FoS1Esd0NBQXdDO2tHQUF4Qyx3Q0FBd0Msb1NDZnJELG0ySUFpSEE7OzJGRGxHYSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0kscUNBQXFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNO2lLQVl4QyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTmljZU5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL25hdmlnYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZU5hdmlnYXRpb25JdGVtIH0gZnJvbSBcIi4uLy4uLy4uL25hdmlnYXRpb24udHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW1cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FzaWRlLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVzOiBbXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOaWNlVmVydGljYWxOYXZpZ2F0aW9uQXNpZGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWVcbiAgICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2F1dG9Db2xsYXBzZTogQm9vbGVhbklucHV0O1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gICAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9za2lwQ2hpbGRyZW46IEJvb2xlYW5JbnB1dDtcblxuICAgIHByaXZhdGUgX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGwgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY3RpdmVJdGVtSWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9Db2xsYXBzZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUb29sdGlwcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2tpcENoaWxkcmVuOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBcImFmdGVyXCI7XG5cbiAgICBwdWJsaWMgYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9uaWNlTmF2aWdhdGlvblNlcnZpY2U6IE5pY2VOYXZpZ2F0aW9uU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBMaWZlY3ljbGUgaG9va3NcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLyoqXG4gICAgICogT24gY2hhbmdlc1xuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIGlkXG4gICAgICAgIGlmIChcImFjdGl2ZUl0ZW1JZFwiIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIC8vIE1hcmsgaWYgYWN0aXZlXG4gICAgICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUodGhpcy5fcm91dGVyLnVybCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBpbml0XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBNYXJrIGlmIGFjdGl2ZVxuICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUodGhpcy5fcm91dGVyLnVybCk7XG5cbiAgICAgICAgLy8gQXR0YWNoIGEgbGlzdGVuZXIgdG8gdGhlIE5hdmlnYXRpb25FbmQgZXZlbnRcbiAgICAgICAgdGhpcy5fcm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIE5hdmlnYXRpb25FbmQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgLy8gTWFyayBpZiBhY3RpdmVcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXJrSWZBY3RpdmUoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBwYXJlbnQgbmF2aWdhdGlvbiBjb21wb25lbnRcbiAgICAgICAgdGhpcy5fbmljZVZlcnRpY2FsTmF2aWdhdGlvbkNvbXBvbmVudCA9IHRoaXMuX25pY2VOYXZpZ2F0aW9uU2VydmljZS5nZXRDb21wb25lbnQodGhpcy5uYW1lKTtcblxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gb25SZWZyZXNoZWQgb24gdGhlIG5hdmlnYXRpb24gY29tcG9uZW50XG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25SZWZyZXNoZWQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRlc3Ryb3lcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gYWxsIHN1YnNjcmlwdGlvbnNcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgUHJpdmF0ZSBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBnaXZlbiBpdGVtIGhhcyB0aGUgZ2l2ZW4gdXJsXG4gICAgICogaW4gb25lIG9mIGl0cyBjaGlsZHJlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2hhc0FjdGl2ZUNoaWxkKGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbSwgY3VycmVudFVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbjtcblxuICAgICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQoY2hpbGQsIGN1cnJlbnRVcmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2tpcCBpdGVtcyBvdGhlciB0aGFuICdiYXNpYydcbiAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBcImJhc2ljXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNoaWxkIGhhcyBhIGxpbmsgYW5kIGlzIGFjdGl2ZVxuICAgICAgICAgICAgaWYgKGNoaWxkLmxpbmsgJiYgdGhpcy5fcm91dGVyLmlzQWN0aXZlKGNoaWxkLmxpbmssIGNoaWxkLmV4YWN0TWF0Y2ggfHwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVjaWRlIGFuZCBtYXJrIGlmIHRoZSBpdGVtIGlzIGFjdGl2ZVxuICAgICAqL1xuICAgIHByaXZhdGUgX21hcmtJZkFjdGl2ZShjdXJyZW50VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFjdGl2ZUl0ZW1JZCBpcyBlcXVhbHMgdG8gdGhpcyBpdGVtIGlkXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5hY3RpdmVJdGVtSWQgPT09IHRoaXMuaXRlbS5pZDtcblxuICAgICAgICAvLyBJZiB0aGUgYXNpZGUgaGFzIGEgY2hpbGRyZW4gdGhhdCBpcyBhY3RpdmUsXG4gICAgICAgIC8vIGFsd2F5cyBtYXJrIGl0IGFzIGFjdGl2ZVxuICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQodGhpcy5pdGVtLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIFRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBuZ0ZvciBsb29wc1xuICAgICAqL1xuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgfHwgaW5kZXg7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0td3JhcHBlclwiXG4gICAgW2NsYXNzLm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWhhcy1zdWJ0aXRsZV09XCIhIWl0ZW0uc3VidGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8ud3JhcHBlclwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZSc6IGFjdGl2ZSxcbiAgICAgICAgICAgICduaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICAgICAgICAnbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlLWZvcmNlZCc6IGl0ZW0uYWN0aXZlXG4gICAgICAgIH1cIlxuICAgID5cbiAgICAgICAgPCEtLSBJY29uIC0tPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb24gJiYgaXRlbS5pY29uVHlwZSA9PT0gJ21hdGVyaWFsJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uaWNvbiB9fVxuICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ2ZvbnRhd2Vzb21lJ1wiPjwvc3Bhbj5cblxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09PSAnc3ZnJ1wiXG4gICAgICAgID48L21hdC1pY29uPlxuXG4gICAgICAgIDwhLS0gVGl0bGUgJiBTdWJ0aXRsZSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLXRpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB8IG5pY2VUcmFuc2xhdGVXaXRoQ29udGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zdWJ0aXRsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnN1YnRpdGxlIHwgbmljZVRyYW5zbGF0ZVdpdGhDb250ZXh0IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmJhZGdlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2UtY29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5iYWRnZS5jbGFzc2VzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlLnRpdGxlIHwgbmljZVRyYW5zbGF0ZVdpdGhDb250ZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFza2lwQ2hpbGRyZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tY2hpbGRyZW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtLmNoaWxkcmVuOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgIDwhLS0gU2tpcCB0aGUgaGlkZGVuIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpdGVtLmhpZGRlbiAmJiAhaXRlbS5oaWRkZW4oaXRlbSkpIHx8ICFpdGVtLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQmFzaWMgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1iYXNpYy1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnYmFzaWMnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tYmFzaWMtaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gQ29sbGFwc2FibGUgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnY29sbGFwc2FibGUnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbHRpcHNdPVwic2hvd1Rvb2x0aXBzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBEaXZpZGVyIC0tPlxuICAgICAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZGl2aWRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gR3JvdXAgLS0+XG4gICAgICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1ncm91cC1pdGVtXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZ3JvdXAnXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cblxuICAgICAgICAgICAgICAgIDwhLS0gU3BhY2VyIC0tPlxuICAgICAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tc3BhY2VyLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzcGFjZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,76 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from "@angular/core";
2
+ import { ActivatedRoute, Router } from "@angular/router";
3
+ import { Subject } from "rxjs";
4
+ import { map, takeUntil } from "rxjs/operators";
5
+ import { NiceUtilsService } from "../../../../../providers/utils";
6
+ import { NiceNavigationService } from "../../../navigation.service";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../../navigation.service";
9
+ import * as i2 from "../../../../../providers/utils";
10
+ import * as i3 from "@angular/router";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "@angular/material/icon";
13
+ import * as i6 from "@angular/material/tooltip";
14
+ import * as i7 from "../../../directives/show-hint.directive";
15
+ import * as i8 from "../../../pipes/should-show-hint.pipe";
16
+ import * as i9 from "../../../pipes/translate-with-context.pipe";
17
+ export class NiceVerticalNavigationBasicItemComponent {
18
+ /**
19
+ * Constructor
20
+ */
21
+ constructor(_changeDetectorRef, _niceNavigationService, _niceUtilsService, _route, _router) {
22
+ this._changeDetectorRef = _changeDetectorRef;
23
+ this._niceNavigationService = _niceNavigationService;
24
+ this._niceUtilsService = _niceUtilsService;
25
+ this._route = _route;
26
+ this._router = _router;
27
+ this._unsubscribeAll = new Subject();
28
+ this.showTooltips = false;
29
+ this.tooltipPosition = "after";
30
+ this.itemActive$ = this._route.url.pipe(map(() => {
31
+ const url = this._router.url.split("?").shift();
32
+ if (this.item.exactMatch === true) {
33
+ return url === this.item.link;
34
+ }
35
+ return url.startsWith(this.item.link) && url.length >= this.item.link.length;
36
+ }));
37
+ }
38
+ // -----------------------------------------------------------------------------------------------------
39
+ // @ Lifecycle hooks
40
+ // -----------------------------------------------------------------------------------------------------
41
+ /**
42
+ * On init
43
+ */
44
+ ngOnInit() {
45
+ // Get the parent navigation component
46
+ this._niceVerticalNavigationComponent = this._niceNavigationService.getComponent(this.name);
47
+ // Subscribe to onRefreshed on the navigation component
48
+ this._niceVerticalNavigationComponent.onRefreshed.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {
49
+ // Mark for check
50
+ this._changeDetectorRef.markForCheck();
51
+ });
52
+ }
53
+ /**
54
+ * On destroy
55
+ */
56
+ ngOnDestroy() {
57
+ // Unsubscribe from all subscriptions
58
+ this._unsubscribeAll.next(null);
59
+ this._unsubscribeAll.complete();
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NiceNavigationService }, { token: i2.NiceUtilsService }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: { item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i7.NiceShowHintDirective, selector: "[niceShowHint]", inputs: ["shouldShow", "item"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.NiceShouldShowHintPipe, name: "niceShouldShowHint" }, { kind: "pipe", type: i9.NiceTranslateWithContextPipe, name: "niceTranslateWithContext" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationBasicItemComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: "nice-vertical-navigation-basic-item", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div\n class=\"nice-vertical-navigation-item-wrapper\"\n matTooltipClass=\"nice-vertical-navigation-item-tooltips\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n [matTooltip]=\"item.tooltip | niceTranslateWithContext\"\n [matTooltipDisabled]=\"!showTooltips\"\n [matTooltipPosition]=\"tooltipPosition\"\n>\n\n <!-- Item with an internal link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n [queryParams]=\"item?.queryParams\"\n [state]=\"item?.state\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && !item.function && !item.disabled\"\n [href]=\"item.link\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item with an internal link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && !item.externalLink && item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\"\n [routerLink]=\"[item.link]\"\n [routerLinkActive]=\"'nice-vertical-navigation-item-active'\"\n [routerLinkActiveOptions]=\"{exact: item.exactMatch || false}\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with an external link and function -->\n <a\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"item.link && item.externalLink && item.function && !item.disabled\"\n [href]=\"item.link\"\n (click)=\"item.function(item)\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n\n <!-- Item with a no link and no function -->\n <div\n class=\"nice-vertical-navigation-item\"\n *ngIf=\"!item.link && !item.function && !item.disabled\"\n [ngClass]=\"{'nice-vertical-navigation-item-active-forced': item.active}\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n <!-- Item is disabled -->\n <div\n class=\"nice-vertical-navigation-item nice-vertical-navigation-item-disabled\"\n *ngIf=\"item.disabled\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n <ng-container *ngIf=\"{ showHint: item | niceShouldShowHint | async } as ctx\">\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\">\n <ng-container *ngIf=\"itemActive$ | async; else notActive\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.activeIcon || item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.activeIcon || item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.activeIcon || item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-container>\n\n <ng-template #notActive>\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n </ng-template>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\" niceShowHint [shouldShow]=\"ctx.showHint\" [item]=\"item\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\"\n >\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n </ng-container>\n</ng-template>\n" }]
67
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NiceNavigationService }, { type: i2.NiceUtilsService }, { type: i3.ActivatedRoute }, { type: i3.Router }]; }, propDecorators: { item: [{
68
+ type: Input
69
+ }], name: [{
70
+ type: Input
71
+ }], showTooltips: [{
72
+ type: Input
73
+ }], tooltipPosition: [{
74
+ type: Input
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvY29tcG9uZW50cy9iYXNpYy9iYXNpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi92ZXJ0aWNhbC9jb21wb25lbnRzL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLHdDQUF3QztJQTBCakQ7O09BRUc7SUFDSCxZQUNZLGtCQUFxQyxFQUNyQyxzQkFBNkMsRUFDN0MsaUJBQW1DLEVBQ25DLE1BQXNCLEVBQ3RCLE9BQWU7UUFKZix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBaENuQixvQkFBZSxHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO1FBU3BELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLG9CQUFlLEdBQW9CLE9BQU8sQ0FBQztRQUUzQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtnQkFDL0IsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDakM7WUFDRCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBV0MsQ0FBQztJQUVKLHdHQUF3RztJQUN4RyxvQkFBb0I7SUFDcEIsd0dBQXdHO0lBRXhHOztPQUVHO0lBQ0ksUUFBUTtRQUNYLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUYsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNsRCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNsQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFFYixpQkFBaUI7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNkLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBakVRLHdDQUF3QztrR0FBeEMsd0NBQXdDLHFMQ2ZyRCwwOU1BOEpBOzsyRkQvSWEsd0NBQXdDO2tCQU5wRCxTQUFTOytCQUNJLHFDQUFxQyxtQkFHOUIsdUJBQXVCLENBQUMsTUFBTTs2TkFPeEMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgTmljZVV0aWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9wcm92aWRlcnMvdXRpbHNcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1iYXNpYy1pdGVtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9iYXNpYy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlczogW10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZVZlcnRpY2FsTmF2aWdhdGlvbkJhc2ljSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95e1xuICAgIHByaXZhdGUgX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQ7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW06IE5pY2VOYXZpZ2F0aW9uSXRlbTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUb29sdGlwcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBcImFmdGVyXCI7XG5cbiAgICBwdWJsaWMgaXRlbUFjdGl2ZSQgPSB0aGlzLl9yb3V0ZS51cmwucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHRoaXMuX3JvdXRlci51cmwuc3BsaXQoXCI/XCIpLnNoaWZ0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLmV4YWN0TWF0Y2ggPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdXJsID09PSB0aGlzLml0ZW0ubGluaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aCh0aGlzLml0ZW0ubGluaykgJiYgdXJsLmxlbmd0aCA+PSB0aGlzLml0ZW0ubGluay5sZW5ndGg7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfbmljZU5hdmlnYXRpb25TZXJ2aWNlOiBOaWNlTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX25pY2VVdGlsc1NlcnZpY2U6IE5pY2VVdGlsc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEAgTGlmZWN5Y2xlIGhvb2tzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIE9uIGluaXRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEdldCB0aGUgcGFyZW50IG5hdmlnYXRpb24gY29tcG9uZW50XG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQgPSB0aGlzLl9uaWNlTmF2aWdhdGlvblNlcnZpY2UuZ2V0Q29tcG9uZW50KHRoaXMubmFtZSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9uUmVmcmVzaGVkIG9uIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50Lm9uUmVmcmVzaGVkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBkZXN0cm95XG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPCEtLSBJdGVtIHdyYXBwZXIgLS0+XG48ZGl2XG4gICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS13cmFwcGVyXCJcbiAgICBtYXRUb29sdGlwQ2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10b29sdGlwc1wiXG4gICAgW2NsYXNzLm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWhhcy1zdWJ0aXRsZV09XCIhIWl0ZW0uc3VidGl0bGVcIlxuICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8ud3JhcHBlclwiXG4gICAgW21hdFRvb2x0aXBdPVwiaXRlbS50b29sdGlwIHwgbmljZVRyYW5zbGF0ZVdpdGhDb250ZXh0XCJcbiAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFzaG93VG9vbHRpcHNcIlxuICAgIFttYXRUb29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbj5cblxuICAgIDwhLS0gSXRlbSB3aXRoIGFuIGludGVybmFsIGxpbmsgLS0+XG4gICAgPGFcbiAgICAgICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICpuZ0lmPVwiaXRlbS5saW5rICYmICFpdGVtLmV4dGVybmFsTGluayAmJiAhaXRlbS5mdW5jdGlvbiAmJiAhaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlLWZvcmNlZCc6IGl0ZW0uYWN0aXZlfVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIltpdGVtLmxpbmtdXCJcbiAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZSdcIlxuICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwie2V4YWN0OiBpdGVtLmV4YWN0TWF0Y2ggfHwgZmFsc2V9XCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIml0ZW0/LnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW3N0YXRlXT1cIml0ZW0/LnN0YXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG5cbiAgICA8IS0tIEl0ZW0gd2l0aCBhbiBleHRlcm5hbCBsaW5rIC0tPlxuICAgIDxhXG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAqbmdJZj1cIml0ZW0ubGluayAmJiBpdGVtLmV4dGVybmFsTGluayAmJiAhaXRlbS5mdW5jdGlvbiAmJiAhaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFtocmVmXT1cIml0ZW0ubGlua1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuXG4gICAgPCEtLSBJdGVtIHdpdGggYSBmdW5jdGlvbiAtLT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAqbmdJZj1cIiFpdGVtLmxpbmsgJiYgaXRlbS5mdW5jdGlvbiAmJiAhaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlLWZvcmNlZCc6IGl0ZW0uYWN0aXZlfVwiXG4gICAgICAgIChjbGljayk9XCJpdGVtLmZ1bmN0aW9uKGl0ZW0pXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSXRlbSB3aXRoIGFuIGludGVybmFsIGxpbmsgYW5kIGZ1bmN0aW9uIC0tPlxuICAgIDxhXG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAqbmdJZj1cIml0ZW0ubGluayAmJiAhaXRlbS5leHRlcm5hbExpbmsgJiYgaXRlbS5mdW5jdGlvbiAmJiAhaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlLWZvcmNlZCc6IGl0ZW0uYWN0aXZlfVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIltpdGVtLmxpbmtdXCJcbiAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZSdcIlxuICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwie2V4YWN0OiBpdGVtLmV4YWN0TWF0Y2ggfHwgZmFsc2V9XCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uZnVuY3Rpb24oaXRlbSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cblxuICAgIDwhLS0gSXRlbSB3aXRoIGFuIGV4dGVybmFsIGxpbmsgYW5kIGZ1bmN0aW9uIC0tPlxuICAgIDxhXG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAqbmdJZj1cIml0ZW0ubGluayAmJiBpdGVtLmV4dGVybmFsTGluayAmJiBpdGVtLmZ1bmN0aW9uICYmICFpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgW2hyZWZdPVwiaXRlbS5saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uZnVuY3Rpb24oaXRlbSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cblxuICAgIDwhLS0gSXRlbSB3aXRoIGEgbm8gbGluayBhbmQgbm8gZnVuY3Rpb24gLS0+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgKm5nSWY9XCIhaXRlbS5saW5rICYmICFpdGVtLmZ1bmN0aW9uICYmICFpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyduaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1hY3RpdmUtZm9yY2VkJzogaXRlbS5hY3RpdmV9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gSXRlbSBpcyBkaXNhYmxlZCAtLT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0gbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tZGlzYWJsZWRcIlxuICAgICAgICAqbmdJZj1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuPCEtLSBJdGVtIHRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInsgc2hvd0hpbnQ6IGl0ZW0gfCBuaWNlU2hvdWxkU2hvd0hpbnQgfCBhc3luYyB9IGFzIGN0eFwiPlxuICAgICAgICA8IS0tIEljb24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1pY29uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtQWN0aXZlJCB8IGFzeW5jOyBlbHNlIG5vdEFjdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09PSAnbWF0ZXJpYWwnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYWN0aXZlSWNvbiB8fCBpdGVtLmljb24gfX1cbiAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1pY29uIGZvbnRhd2Vzb21lXCIgW25nQ2xhc3NdPVwiaXRlbS5hY3RpdmVJY29uIHx8IGl0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ2ZvbnRhd2Vzb21lJ1wiPjwvaT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpdGVtLmFjdGl2ZUljb24gfHwgaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb24gJiYgaXRlbS5pY29uVHlwZSA9PSAnc3ZnJ1wiXG4gICAgICAgICAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RBY3RpdmU+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT09ICdtYXRlcmlhbCdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pY29uIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvbiBmb250YXdlc29tZVwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ2ZvbnRhd2Vzb21lJ1wiPjwvaT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09ICdzdmcnXCJcbiAgICAgICAgICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdHguc2hvd0hpbnQgJiYgaXRlbS5pY29uXCIgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taGludFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRpdGxlICYgU3VidGl0bGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tdGl0bGVcIiBuaWNlU2hvd0hpbnQgW3Nob3VsZFNob3ddPVwiY3R4LnNob3dIaW50XCIgW2l0ZW1dPVwiaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB8IG5pY2VUcmFuc2xhdGVXaXRoQ29udGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdHguc2hvd0hpbnRcIiBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1oaW50XCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLXN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uc3VidGl0bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zdWJ0aXRsZSB8IG5pY2VUcmFuc2xhdGVXaXRoQ29udGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEJhZGdlIC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWJhZGdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWJhZGdlLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uYmFkZ2UuY2xhc3Nlc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5iYWRnZS50aXRsZSB8IG5pY2VUcmFuc2xhdGVXaXRoQ29udGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -12,9 +12,9 @@ import * as i4 from "@angular/material/icon";
12
12
  import * as i5 from "../basic/basic.component";
13
13
  import * as i6 from "../divider/divider.component";
14
14
  import * as i7 from "../spacer/spacer.component";
15
- import * as i8 from "@ngx-translate/core";
16
- import * as i9 from "../../../pipes/should-hide.pipe";
17
- import * as i10 from "../../../pipes/should-show-hint.pipe";
15
+ import * as i8 from "../../../pipes/should-hide.pipe";
16
+ import * as i9 from "../../../pipes/should-show-hint.pipe";
17
+ import * as i10 from "../../../pipes/translate-with-context.pipe";
18
18
  export class NiceVerticalNavigationCollapsableItemComponent {
19
19
  /**
20
20
  * Constructor
@@ -241,12 +241,12 @@ export class NiceVerticalNavigationCollapsableItemComponent {
241
241
  trackByFn(index, item) {
242
242
  return item.id || index;
243
243
  }
244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
245
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i6.NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: i7.NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.NiceShouldHidePipe, name: "niceShouldHide" }, { kind: "pipe", type: i9.NiceShouldShowHintPipe, name: "niceShouldShowHint" }, { kind: "pipe", type: i10.NiceTranslateWithContextPipe, name: "niceTranslateWithContext" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
244
246
  }
245
- NiceVerticalNavigationCollapsableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i2.NiceNavigationService }], target: i0.ɵɵFactoryTarget.Component });
246
- NiceVerticalNavigationCollapsableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", showTooltips: "showTooltips", tooltipPosition: "tooltipPosition" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.NiceVerticalNavigationBasicItemComponent, selector: "nice-vertical-navigation-basic-item", inputs: ["item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: NiceVerticalNavigationCollapsableItemComponent, selector: "nice-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "showTooltips", "tooltipPosition"] }, { kind: "component", type: i6.NiceVerticalNavigationDividerItemComponent, selector: "nice-vertical-navigation-divider-item", inputs: ["item", "name"] }, { kind: "component", type: i7.NiceVerticalNavigationSpacerItemComponent, selector: "nice-vertical-navigation-spacer-item", inputs: ["item", "name"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.NiceShouldHidePipe, name: "niceShouldHide" }, { kind: "pipe", type: i10.NiceShouldShowHintPipe, name: "niceShouldShowHint" }], animations: niceAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceVerticalNavigationCollapsableItemComponent, decorators: [{
248
248
  type: Component,
249
- args: [{ selector: "nice-vertical-navigation-collapsable-item", animations: niceAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | translate }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | translate }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | translate }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
249
+ args: [{ selector: "nice-vertical-navigation-collapsable-item", animations: niceAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"nice-vertical-navigation-item-wrapper\"\n [class.nice-vertical-navigation-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\"\n>\n <div\n class=\"nice-vertical-navigation-item\"\n [ngClass]=\"{ 'nice-vertical-navigation-item-disabled': item.disabled }\"\n [class.child-activated]=\"hasChildActivated$ | async\"\n (click)=\"toggleCollapsable()\"\n *ngIf=\"{ showHint: item.children ?? [] | niceShouldShowHint | async } as ctx\"\n >\n <!-- Icon -->\n <div class=\"nice-vertical-navigation-item-icon-wrapper\" style=\"position: relative\">\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n *ngIf=\"item.icon && item.iconType === 'material'\"\n >\n {{ item.icon }}\n </mat-icon>\n\n <i class=\"nice-vertical-navigation-item-icon fontawesome\" [ngClass]=\"item.icon\" *ngIf=\"item.icon && item.iconType == 'fontawesome'\"></i>\n\n <mat-icon\n class=\"nice-vertical-navigation-item-icon\"\n [ngClass]=\"item.classes?.icon\"\n [svgIcon]=\"item.icon\"\n *ngIf=\"item.icon && item.iconType == 'svg'\"\n ></mat-icon>\n\n <div *ngIf=\"ctx.showHint && item.icon\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n\n <!-- Title & Subtitle -->\n <div class=\"nice-vertical-navigation-item-title-wrapper\">\n <div class=\"nice-vertical-navigation-item-title\">\n <span [ngClass]=\"item.classes?.title\">\n {{ item.title | niceTranslateWithContext }}\n </span>\n\n <div *ngIf=\"ctx.showHint && isCollapsed\" class=\"nice-vertical-navigation-hint\"></div>\n </div>\n <div\n class=\"nice-vertical-navigation-item-subtitle\"\n *ngIf=\"item.subtitle\"\n >\n <span [ngClass]=\"item.classes?.subtitle\">\n {{ item.subtitle | niceTranslateWithContext }}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n <div\n class=\"nice-vertical-navigation-item-badge\"\n *ngIf=\"item.badge\">\n\n <div\n class=\"nice-vertical-navigation-item-badge-content\"\n [ngClass]=\"item.badge.classes\"\n >\n {{ item.badge.title | niceTranslateWithContext }}\n </div>\n </div>\n\n <!-- Arrow -->\n <mat-icon class=\"nice-vertical-navigation-item-arrow icon-size-4\">chevron_right</mat-icon>\n </div>\n</div>\n\n<div\n class=\"nice-vertical-navigation-item-children\"\n *ngIf=\"!isCollapsed\"\n @expandCollapse\n>\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"!(item | niceShouldHide | async)\">\n <!-- Basic -->\n <nice-vertical-navigation-basic-item\n *ngIf=\"item.type === 'basic'\"\n [item]=\"item\"\n [name]=\"name\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-basic-item>\n\n <!-- Collapsable -->\n <nice-vertical-navigation-collapsable-item\n *ngIf=\"item.type === 'collapsable'\"\n [item]=\"item\"\n [name]=\"name\"\n [autoCollapse]=\"autoCollapse\"\n [showTooltips]=\"showTooltips\"\n [tooltipPosition]=\"tooltipPosition\"\n ></nice-vertical-navigation-collapsable-item>\n\n <!-- Divider -->\n <nice-vertical-navigation-divider-item\n *ngIf=\"item.type === 'divider'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-divider-item>\n\n <!-- Group -->\n<!-- <nice-vertical-navigation-group-item\n *ngIf=\"item.type === 'group'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-group-item>-->\n\n <!-- Spacer -->\n <nice-vertical-navigation-spacer-item\n *ngIf=\"item.type === 'spacer'\"\n [item]=\"item\"\n [name]=\"name\"\n ></nice-vertical-navigation-spacer-item>\n </ng-container>\n </ng-container>\n</div>\n" }]
250
250
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.NiceNavigationService }]; }, propDecorators: { autoCollapse: [{
251
251
  type: Input
252
252
  }], item: [{
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
261
261
  type: HostBinding,
262
262
  args: ["class"]
263
263
  }] } });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2FibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvY29tcG9uZW50cy9jb2xsYXBzYWJsZS9jb2xsYXBzYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi92ZXJ0aWNhbC9jb21wb25lbnRzL2NvbGxhcHNhYmxlL2NvbGxhcHNhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7OztBQVVwRSxNQUFNLE9BQU8sOENBQThDO0lBMkJ2RDs7T0FFRztJQUNILFlBQ1ksa0JBQXFDLEVBQ3JDLE9BQWUsRUFDZixzQkFBNkM7UUFGN0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQTVCakQsb0JBQWUs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LElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2pCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDckMsT0FBTyxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQztJQUM1QixDQUFDOzsySUF0U1EsOENBQThDOytIQUE5Qyw4Q0FBOEMsOFFDekIzRCxxaEpBeUhBLHdyQkRoR2EsOENBQThDLDhzQkFIM0MsY0FBYzsyRkFHakIsOENBQThDO2tCQVAxRCxTQUFTOytCQUNJLDJDQUEyQyxjQUd6QyxjQUFjLG1CQUNULHVCQUF1QixDQUFDLE1BQU07aUtBVXhDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBeUJLLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG5pY2VBbmltYXRpb25zIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9jb2xsYXBzYWJsZS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlczogW10sXG4gICAgYW5pbWF0aW9uczogbmljZUFuaW1hdGlvbnMsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZVZlcnRpY2FsTmF2aWdhdGlvbkNvbGxhcHNhYmxlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYXV0b0NvbGxhcHNlOiBCb29sZWFuSW5wdXQ7XG5cbiAgICBwcml2YXRlIF9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50O1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0NvbGxhcHNlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbTogTmljZU5hdmlnYXRpb25JdGVtO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1Rvb2x0aXBzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IFwiYWZ0ZXJcIjtcblxuICAgIHB1YmxpYyBpc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgcHVibGljIGlzRXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBoYXNDaGlsZEFjdGl2YXRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgX25pY2VOYXZpZ2F0aW9uU2VydmljZTogTmljZU5hdmlnYXRpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIEFjY2Vzc29yc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBjbGFzc2VzXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIilcbiAgICBwdWJsaWMgZ2V0IGNsYXNzTGlzdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgXCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1jb2xsYXBzZWRcIjogdGhpcy5pc0NvbGxhcHNlZCxcbiAgICAgICAgICAgIFwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tZXhwYW5kZWRcIjogdGhpcy5pc0V4cGFuZGVkXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBPbiBpbml0XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBHZXQgdGhlIHBhcmVudCBuYXZpZ2F0aW9uIGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50ID0gdGhpcy5fbmljZU5hdmlnYXRpb25TZXJ2aWNlLmdldENvbXBvbmVudCh0aGlzLm5hbWUpO1xuXG4gICAgICAgIC8vIElmIHRoZSBpdGVtIGhhcyBhIGNoaWxkcmVuIHRoYXQgaGFzIGEgbWF0Y2hpbmcgdXJsIHdpdGggdGhlIGN1cnJlbnQgdXJsLCBleHBhbmQuLi5cbiAgICAgICAgaWYgKHRoaXMuX2hhc0FjdGl2ZUNoaWxkKHRoaXMuaXRlbSwgdGhpcy5fcm91dGVyLnVybCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRBY3RpdmF0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE90aGVyd2lzZS4uLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBhdXRvQ29sbGFwc2UgaXMgb24sIGNvbGxhcHNlLi4uXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvQ29sbGFwc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0NoaWxkQWN0aXZhdGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBvbkNvbGxhcHNhYmxlSXRlbUNvbGxhcHNlZCBmcm9tIHRoZSBzZXJ2aWNlXG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1Db2xsYXBzZWRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2xsYXBzZWRJdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY29sbGFwc2VkIGl0ZW0gaXMgbnVsbFxuICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZWRJdGVtID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDb2xsYXBzZSBpZiB0aGlzIGlzIGEgY2hpbGRyZW4gb2YgdGhlIGNvbGxhcHNlZCBpdGVtXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzQ2hpbGRyZW5PZihjb2xsYXBzZWRJdGVtLCB0aGlzLml0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBvbkNvbGxhcHNhYmxlSXRlbUV4cGFuZGVkIGZyb20gdGhlIHNlcnZpY2UgaWYgdGhlIGF1dG9Db2xsYXBzZSBpcyBvblxuICAgICAgICBpZiAodGhpcy5hdXRvQ29sbGFwc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXhwYW5kZWRJdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGV4cGFuZGVkIGl0ZW0gaXMgbnVsbFxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWRJdGVtID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgcGFyZW50IG9mIHRoZSBleHBhbmRlZCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0NoaWxkcmVuT2YodGhpcy5pdGVtLCBleHBhbmRlZEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGhhcyBhIGNoaWxkcmVuIHdpdGggYSBtYXRjaGluZyB1cmwgd2l0aCB0aGUgY3VycmVudCBhY3RpdmUgdXJsXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNBY3RpdmVDaGlsZCh0aGlzLml0ZW0sIHRoaXMuX3JvdXRlci51cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBleHBhbmRlZCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW0gPT09IGV4cGFuZGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbWF0Y2hlZCwgY29sbGFwc2UgdGhpcyBpdGVtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEF0dGFjaCBhIGxpc3RlbmVyIHRvIHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpdGVtIGhhcyBhIGNoaWxkcmVuIHRoYXQgaGFzIGEgbWF0Y2hpbmcgdXJsIHdpdGggdGhlIGN1cnJlbnQgdXJsLCBleHBhbmQuLi5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQodGhpcy5pdGVtLCBldmVudC51cmxBZnRlclJlZGlyZWN0cykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNDaGlsZEFjdGl2YXRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLi4uXG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRBY3RpdmF0ZWQkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBhdXRvQ29sbGFwc2UgaXMgb24sIGNvbGxhcHNlLi4uXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Db2xsYXBzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9uUmVmcmVzaGVkIG9uIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50Lm9uUmVmcmVzaGVkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBkZXN0cm95XG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFByaXZhdGUgbWV0aG9kc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gaXRlbSBoYXMgdGhlIGdpdmVuIHVybFxuICAgICAqIGluIG9uZSBvZiBpdHMgY2hpbGRyZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9oYXNBY3RpdmVDaGlsZChpdGVtOiBOaWNlTmF2aWdhdGlvbkl0ZW0sIGN1cnJlbnRVcmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0FjdGl2ZUNoaWxkKGNoaWxkLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjaGlsZCBoYXMgYSBsaW5rIGFuZCBpcyBhY3RpdmVcbiAgICAgICAgICAgIGlmIChjaGlsZC5saW5rICYmIHRoaXMuX3JvdXRlci5pc0FjdGl2ZShjaGlsZC5saW5rLCBjaGlsZC5leGFjdE1hdGNoIHx8IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoaXMgaXMgYSBjaGlsZHJlblxuICAgICAqIG9mIHRoZSBnaXZlbiBpdGVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaXNDaGlsZHJlbk9mKHBhcmVudDogTmljZU5hdmlnYXRpb25JdGVtLCBpdGVtOiBOaWNlTmF2aWdhdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW47XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkcmVuLmluZGV4T2YoaXRlbSkgPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNDaGlsZHJlbk9mKGNoaWxkLCBpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIENvbGxhcHNlXG4gICAgICovXG4gICAgcHVibGljIGNvbGxhcHNlKCk6IHZvaWQge1xuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBpdGVtIGlzIGFscmVhZHkgY29sbGFwc2VkXG4gICAgICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb2xsYXBzZSBpdFxuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG5cbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50Lm9uQ29sbGFwc2FibGVJdGVtQ29sbGFwc2VkLm5leHQodGhpcy5pdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBhbmRcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBpdGVtIGlzIGFscmVhZHkgZXhwYW5kZWRcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBhbmQgaXRcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcblxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZC5uZXh0KHRoaXMuaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIGNvbGxhcHNhYmxlXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZUNvbGxhcHNhYmxlKCk6IHZvaWQge1xuICAgICAgICAvLyBUb2dnbGUgY29sbGFwc2UvZXhwYW5kXG4gICAgICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgYnkgZnVuY3Rpb24gZm9yIG5nRm9yIGxvb3BzXG4gICAgICovXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpbmRleDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS13cmFwcGVyXCJcbiAgICBbY2xhc3MubmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taGFzLXN1YnRpdGxlXT1cIiEhaXRlbS5zdWJ0aXRsZVwiXG4gICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy53cmFwcGVyXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICduaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgIFtjbGFzcy5jaGlsZC1hY3RpdmF0ZWRdPVwiaGFzQ2hpbGRBY3RpdmF0ZWQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2FibGUoKVwiXG4gICAgICAgICpuZ0lmPVwieyBzaG93SGludDogaXRlbS5jaGlsZHJlbiA/PyBbXSB8IG5pY2VTaG91bGRTaG93SGludCB8IGFzeW5jIH0gYXMgY3R4XCJcbiAgICA+XG4gICAgICAgIDwhLS0gSWNvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb24td3JhcHBlclwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb24gJiYgaXRlbS5pY29uVHlwZSA9PT0gJ21hdGVyaWFsJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5pY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICA8aSBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb24gZm9udGF3ZXNvbWVcIiBbbmdDbGFzc109XCJpdGVtLmljb25cIiAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09ICdmb250YXdlc29tZSdcIj48L2k+XG5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5pY29uXCJcbiAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ3N2ZydcIlxuICAgICAgICAgICAgPjwvbWF0LWljb24+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdHguc2hvd0hpbnQgJiYgaXRlbS5pY29uXCIgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taGludFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRpdGxlICYgU3VidGl0bGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/LnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3R4LnNob3dIaW50ICYmIGlzQ29sbGFwc2VkXCIgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taGludFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN1YnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/LnN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3VidGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBCYWRnZSAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1iYWRnZVwiXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2UtY29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5iYWRnZS5jbGFzc2VzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlLnRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBBcnJvdyAtLT5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYXJyb3cgaWNvbi1zaXplLTRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1jaGlsZHJlblwiXG4gICAgKm5nSWY9XCIhaXNDb2xsYXBzZWRcIlxuICAgIEBleHBhbmRDb2xsYXBzZVxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDwhLS0gU2tpcCB0aGUgaGlkZGVuIGl0ZW1zIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShpdGVtIHwgbmljZVNob3VsZEhpZGUgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDwhLS0gQmFzaWMgLS0+XG4gICAgICAgICAgICA8bmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2Jhc2ljJ1wiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwc109XCJzaG93VG9vbHRpcHNcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1iYXNpYy1pdGVtPlxuXG4gICAgICAgICAgICA8IS0tIENvbGxhcHNhYmxlIC0tPlxuICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZSdcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0+XG5cbiAgICAgICAgICAgIDwhLS0gRGl2aWRlciAtLT5cbiAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdkaXZpZGVyJ1wiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtPlxuXG4gICAgICAgICAgICA8IS0tIEdyb3VwIC0tPlxuPCEtLSAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZ3JvdXAnXCJcbiAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1ncm91cC1pdGVtPi0tPlxuXG4gICAgICAgICAgICA8IS0tIFNwYWNlciAtLT5cbiAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tc3BhY2VyLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3NwYWNlcidcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2FibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS11aS1raXQtdjIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvY29tcG9uZW50cy9jb2xsYXBzYWJsZS9jb2xsYXBzYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi92ZXJ0aWNhbC9jb21wb25lbnRzL2NvbGxhcHNhYmxlL2NvbGxhcHNhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUdSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7OztBQVVwRSxNQUFNLE9BQU8sOENBQThDO0lBMkJ2RDs7T0FFRztJQUNILFlBQ1ksa0JBQXFDLEVBQ3JDLE9BQWUsRUFDZixzQkFBNkM7UUFGN0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQTVCakQsb0JBQWUs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LElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2pCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDckMsT0FBTyxJQUFJLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQztJQUM1QixDQUFDOzhHQXRTUSw4Q0FBOEM7a0dBQTlDLDhDQUE4Qyw4UUN6QjNELGtrSkF5SEEsd3JCRGhHYSw4Q0FBOEMsNHVCQUgzQyxjQUFjOzsyRkFHakIsOENBQThDO2tCQVAxRCxTQUFTOytCQUNJLDJDQUEyQyxjQUd6QyxjQUFjLG1CQUNULHVCQUF1QixDQUFDLE1BQU07aUtBVXhDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBeUJLLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG5pY2VBbmltYXRpb25zIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VOYXZpZ2F0aW9uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi9uYXZpZ2F0aW9uLnR5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9jb2xsYXBzYWJsZS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlczogW10sXG4gICAgYW5pbWF0aW9uczogbmljZUFuaW1hdGlvbnMsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZVZlcnRpY2FsTmF2aWdhdGlvbkNvbGxhcHNhYmxlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICAgIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYXV0b0NvbGxhcHNlOiBCb29sZWFuSW5wdXQ7XG5cbiAgICBwcml2YXRlIF9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50O1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0NvbGxhcHNlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbTogTmljZU5hdmlnYXRpb25JdGVtO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1Rvb2x0aXBzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IFwiYWZ0ZXJcIjtcblxuICAgIHB1YmxpYyBpc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgcHVibGljIGlzRXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBoYXNDaGlsZEFjdGl2YXRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgX25pY2VOYXZpZ2F0aW9uU2VydmljZTogTmljZU5hdmlnYXRpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIEFjY2Vzc29yc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBjbGFzc2VzXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIilcbiAgICBwdWJsaWMgZ2V0IGNsYXNzTGlzdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgXCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1jb2xsYXBzZWRcIjogdGhpcy5pc0NvbGxhcHNlZCxcbiAgICAgICAgICAgIFwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tZXhwYW5kZWRcIjogdGhpcy5pc0V4cGFuZGVkXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBPbiBpbml0XG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBHZXQgdGhlIHBhcmVudCBuYXZpZ2F0aW9uIGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50ID0gdGhpcy5fbmljZU5hdmlnYXRpb25TZXJ2aWNlLmdldENvbXBvbmVudCh0aGlzLm5hbWUpO1xuXG4gICAgICAgIC8vIElmIHRoZSBpdGVtIGhhcyBhIGNoaWxkcmVuIHRoYXQgaGFzIGEgbWF0Y2hpbmcgdXJsIHdpdGggdGhlIGN1cnJlbnQgdXJsLCBleHBhbmQuLi5cbiAgICAgICAgaWYgKHRoaXMuX2hhc0FjdGl2ZUNoaWxkKHRoaXMuaXRlbSwgdGhpcy5fcm91dGVyLnVybCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRBY3RpdmF0ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE90aGVyd2lzZS4uLlxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBhdXRvQ29sbGFwc2UgaXMgb24sIGNvbGxhcHNlLi4uXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvQ29sbGFwc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0NoaWxkQWN0aXZhdGVkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBvbkNvbGxhcHNhYmxlSXRlbUNvbGxhcHNlZCBmcm9tIHRoZSBzZXJ2aWNlXG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1Db2xsYXBzZWRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2xsYXBzZWRJdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY29sbGFwc2VkIGl0ZW0gaXMgbnVsbFxuICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZWRJdGVtID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDb2xsYXBzZSBpZiB0aGlzIGlzIGEgY2hpbGRyZW4gb2YgdGhlIGNvbGxhcHNlZCBpdGVtXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lzQ2hpbGRyZW5PZihjb2xsYXBzZWRJdGVtLCB0aGlzLml0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIHRoZSBvbkNvbGxhcHNhYmxlSXRlbUV4cGFuZGVkIGZyb20gdGhlIHNlcnZpY2UgaWYgdGhlIGF1dG9Db2xsYXBzZSBpcyBvblxuICAgICAgICBpZiAodGhpcy5hdXRvQ29sbGFwc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXhwYW5kZWRJdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGV4cGFuZGVkIGl0ZW0gaXMgbnVsbFxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhwYW5kZWRJdGVtID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgcGFyZW50IG9mIHRoZSBleHBhbmRlZCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pc0NoaWxkcmVuT2YodGhpcy5pdGVtLCBleHBhbmRlZEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGhhcyBhIGNoaWxkcmVuIHdpdGggYSBtYXRjaGluZyB1cmwgd2l0aCB0aGUgY3VycmVudCBhY3RpdmUgdXJsXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNBY3RpdmVDaGlsZCh0aGlzLml0ZW0sIHRoaXMuX3JvdXRlci51cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBleHBhbmRlZCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW0gPT09IGV4cGFuZGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbWF0Y2hlZCwgY29sbGFwc2UgdGhpcyBpdGVtXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEF0dGFjaCBhIGxpc3RlbmVyIHRvIHRoZSBOYXZpZ2F0aW9uRW5kIGV2ZW50XG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uRW5kID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcblxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBpdGVtIGhhcyBhIGNoaWxkcmVuIHRoYXQgaGFzIGEgbWF0Y2hpbmcgdXJsIHdpdGggdGhlIGN1cnJlbnQgdXJsLCBleHBhbmQuLi5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzQWN0aXZlQ2hpbGQodGhpcy5pdGVtLCBldmVudC51cmxBZnRlclJlZGlyZWN0cykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNDaGlsZEFjdGl2YXRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLi4uXG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRBY3RpdmF0ZWQkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBhdXRvQ29sbGFwc2UgaXMgb24sIGNvbGxhcHNlLi4uXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Db2xsYXBzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG9uUmVmcmVzaGVkIG9uIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudFxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50Lm9uUmVmcmVzaGVkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcblxuICAgICAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbiBkZXN0cm95XG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFByaXZhdGUgbWV0aG9kc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gaXRlbSBoYXMgdGhlIGdpdmVuIHVybFxuICAgICAqIGluIG9uZSBvZiBpdHMgY2hpbGRyZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9oYXNBY3RpdmVDaGlsZChpdGVtOiBOaWNlTmF2aWdhdGlvbkl0ZW0sIGN1cnJlbnRVcmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW47XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc0FjdGl2ZUNoaWxkKGNoaWxkLCBjdXJyZW50VXJsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjaGlsZCBoYXMgYSBsaW5rIGFuZCBpcyBhY3RpdmVcbiAgICAgICAgICAgIGlmIChjaGlsZC5saW5rICYmIHRoaXMuX3JvdXRlci5pc0FjdGl2ZShjaGlsZC5saW5rLCBjaGlsZC5leGFjdE1hdGNoIHx8IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoaXMgaXMgYSBjaGlsZHJlblxuICAgICAqIG9mIHRoZSBnaXZlbiBpdGVtXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaXNDaGlsZHJlbk9mKHBhcmVudDogTmljZU5hdmlnYXRpb25JdGVtLCBpdGVtOiBOaWNlTmF2aWdhdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW47XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkcmVuLmluZGV4T2YoaXRlbSkgPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faXNDaGlsZHJlbk9mKGNoaWxkLCBpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8qKlxuICAgICAqIENvbGxhcHNlXG4gICAgICovXG4gICAgcHVibGljIGNvbGxhcHNlKCk6IHZvaWQge1xuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBpdGVtIGlzIGFscmVhZHkgY29sbGFwc2VkXG4gICAgICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb2xsYXBzZSBpdFxuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG5cbiAgICAgICAgLy8gTWFyayBmb3IgY2hlY2tcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxuICAgICAgICB0aGlzLl9uaWNlVmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50Lm9uQ29sbGFwc2FibGVJdGVtQ29sbGFwc2VkLm5leHQodGhpcy5pdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFeHBhbmRcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcbiAgICAgICAgaWYgKHRoaXMuaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBpdGVtIGlzIGFscmVhZHkgZXhwYW5kZWRcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBhbmQgaXRcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcblxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXG4gICAgICAgIHRoaXMuX25pY2VWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQub25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZC5uZXh0KHRoaXMuaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIGNvbGxhcHNhYmxlXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZUNvbGxhcHNhYmxlKCk6IHZvaWQge1xuICAgICAgICAvLyBUb2dnbGUgY29sbGFwc2UvZXhwYW5kXG4gICAgICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgYnkgZnVuY3Rpb24gZm9yIG5nRm9yIGxvb3BzXG4gICAgICovXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpbmRleDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS13cmFwcGVyXCJcbiAgICBbY2xhc3MubmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taGFzLXN1YnRpdGxlXT1cIiEhaXRlbS5zdWJ0aXRsZVwiXG4gICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy53cmFwcGVyXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICduaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgIFtjbGFzcy5jaGlsZC1hY3RpdmF0ZWRdPVwiaGFzQ2hpbGRBY3RpdmF0ZWQkIHwgYXN5bmNcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2FibGUoKVwiXG4gICAgICAgICpuZ0lmPVwieyBzaG93SGludDogaXRlbS5jaGlsZHJlbiA/PyBbXSB8IG5pY2VTaG91bGRTaG93SGludCB8IGFzeW5jIH0gYXMgY3R4XCJcbiAgICA+XG4gICAgICAgIDwhLS0gSWNvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb24td3JhcHBlclwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlcz8uaWNvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb24gJiYgaXRlbS5pY29uVHlwZSA9PT0gJ21hdGVyaWFsJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5pY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICA8aSBjbGFzcz1cIm5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWljb24gZm9udGF3ZXNvbWVcIiBbbmdDbGFzc109XCJpdGVtLmljb25cIiAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpdGVtLmljb25UeXBlID09ICdmb250YXdlc29tZSdcIj48L2k+XG5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzPy5pY29uXCJcbiAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uICYmIGl0ZW0uaWNvblR5cGUgPT0gJ3N2ZydcIlxuICAgICAgICAgICAgPjwvbWF0LWljb24+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdHguc2hvd0hpbnQgJiYgaXRlbS5pY29uXCIgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taGludFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFRpdGxlICYgU3VidGl0bGUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS10aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/LnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfCBuaWNlVHJhbnNsYXRlV2l0aENvbnRleHQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3R4LnNob3dIaW50ICYmIGlzQ29sbGFwc2VkXCIgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taGludFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1zdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnN1YnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXM/LnN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc3VidGl0bGUgfCBuaWNlVHJhbnNsYXRlV2l0aENvbnRleHQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBCYWRnZSAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1iYWRnZVwiXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYmFkZ2UtY29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5iYWRnZS5jbGFzc2VzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlLnRpdGxlIHwgbmljZVRyYW5zbGF0ZVdpdGhDb250ZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBBcnJvdyAtLT5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYXJyb3cgaWNvbi1zaXplLTRcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gICAgY2xhc3M9XCJuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24taXRlbS1jaGlsZHJlblwiXG4gICAgKm5nSWY9XCIhaXNDb2xsYXBzZWRcIlxuICAgIEBleHBhbmRDb2xsYXBzZVxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbS5jaGlsZHJlbjsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDwhLS0gU2tpcCB0aGUgaGlkZGVuIGl0ZW1zIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShpdGVtIHwgbmljZVNob3VsZEhpZGUgfCBhc3luYylcIj5cbiAgICAgICAgICAgIDwhLS0gQmFzaWMgLS0+XG4gICAgICAgICAgICA8bmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2Jhc2ljJ1wiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwc109XCJzaG93VG9vbHRpcHNcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1iYXNpYy1pdGVtPlxuXG4gICAgICAgICAgICA8IS0tIENvbGxhcHNhYmxlIC0tPlxuICAgICAgICAgICAgPG5pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1jb2xsYXBzYWJsZS1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZSdcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCJcbiAgICAgICAgICAgICAgICBbc2hvd1Rvb2x0aXBzXT1cInNob3dUb29sdGlwc1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0+XG5cbiAgICAgICAgICAgIDwhLS0gRGl2aWRlciAtLT5cbiAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdkaXZpZGVyJ1wiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICA+PC9uaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtPlxuXG4gICAgICAgICAgICA8IS0tIEdyb3VwIC0tPlxuPCEtLSAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZ3JvdXAnXCJcbiAgICAgICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgID48L25pY2UtdmVydGljYWwtbmF2aWdhdGlvbi1ncm91cC1pdGVtPi0tPlxuXG4gICAgICAgICAgICA8IS0tIFNwYWNlciAtLT5cbiAgICAgICAgICAgIDxuaWNlLXZlcnRpY2FsLW5hdmlnYXRpb24tc3BhY2VyLWl0ZW1cbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3NwYWNlcidcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgPjwvbmljZS12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19