@coreui/angular-pro 4.3.10 → 4.4.0-next.0

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 (463) hide show
  1. package/esm2020/lib/accordion/accordion/accordion.component.mjs +6 -6
  2. package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +6 -5
  3. package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +29 -27
  4. package/esm2020/lib/accordion/accordion.module.mjs +14 -12
  5. package/esm2020/lib/accordion/accordion.service.mjs +3 -3
  6. package/esm2020/lib/alert/alert-heading.directive.mjs +6 -5
  7. package/esm2020/lib/alert/alert-link.directive.mjs +6 -5
  8. package/esm2020/lib/alert/alert.component.mjs +28 -28
  9. package/esm2020/lib/alert/alert.module.mjs +12 -11
  10. package/esm2020/lib/avatar/avatar.component.mjs +6 -5
  11. package/esm2020/lib/avatar/avatar.module.mjs +10 -9
  12. package/esm2020/lib/backdrop/backdrop.service.mjs +3 -3
  13. package/esm2020/lib/badge/badge.component.mjs +5 -5
  14. package/esm2020/lib/badge/badge.module.mjs +10 -9
  15. package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +5 -5
  16. package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +10 -7
  17. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +8 -7
  18. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
  19. package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +23 -12
  20. package/esm2020/lib/button/button-close.directive.mjs +6 -5
  21. package/esm2020/lib/button/button.directive.mjs +6 -5
  22. package/esm2020/lib/button/button.module.mjs +10 -10
  23. package/esm2020/lib/button-group/button-group/button-group.component.mjs +5 -4
  24. package/esm2020/lib/button-group/button-group.module.mjs +8 -18
  25. package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +5 -4
  26. package/esm2020/lib/calendar/calendar/calendar-class-view.pipe.mjs +6 -5
  27. package/esm2020/lib/calendar/calendar/calendar.component.mjs +9 -9
  28. package/esm2020/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +6 -5
  29. package/esm2020/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +6 -5
  30. package/esm2020/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +6 -5
  31. package/esm2020/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +6 -5
  32. package/esm2020/lib/calendar/calendar-month/calendar-day.directive.mjs +6 -5
  33. package/esm2020/lib/calendar/calendar-month/calendar-day.pipe.mjs +6 -5
  34. package/esm2020/lib/calendar/calendar-month/calendar-month.component.mjs +34 -24
  35. package/esm2020/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +6 -5
  36. package/esm2020/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +7 -6
  37. package/esm2020/lib/calendar/calendar.module.mjs +16 -13
  38. package/esm2020/lib/calendar/calendar.service.mjs +3 -3
  39. package/esm2020/lib/callout/callout.component.mjs +5 -5
  40. package/esm2020/lib/callout/callout.module.mjs +10 -7
  41. package/esm2020/lib/card/card-body.component.mjs +6 -5
  42. package/esm2020/lib/card/card-footer.component.mjs +7 -6
  43. package/esm2020/lib/card/card-group.component.mjs +6 -5
  44. package/esm2020/lib/card/card-header-actions.component.mjs +5 -4
  45. package/esm2020/lib/card/card-header.component.mjs +6 -5
  46. package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +5 -5
  47. package/esm2020/lib/card/card-img.directive.mjs +6 -5
  48. package/esm2020/lib/card/card-link.directive.mjs +6 -5
  49. package/esm2020/lib/card/card-subtitle.directive.mjs +6 -5
  50. package/esm2020/lib/card/card-text.directive.mjs +6 -5
  51. package/esm2020/lib/card/card-title.directive.mjs +6 -5
  52. package/esm2020/lib/card/card.component.mjs +6 -5
  53. package/esm2020/lib/card/card.module.mjs +19 -12
  54. package/esm2020/lib/carousel/carousel/carousel.component.mjs +5 -5
  55. package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +5 -5
  56. package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +6 -5
  57. package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +6 -5
  58. package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +7 -7
  59. package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +6 -5
  60. package/esm2020/lib/carousel/carousel-state.mjs +3 -3
  61. package/esm2020/lib/carousel/carousel.config.mjs +3 -3
  62. package/esm2020/lib/carousel/carousel.module.mjs +19 -11
  63. package/esm2020/lib/carousel/carousel.service.mjs +3 -3
  64. package/esm2020/lib/collapse/collapse.directive.mjs +6 -5
  65. package/esm2020/lib/collapse/collapse.module.mjs +9 -7
  66. package/esm2020/lib/date-picker/date-picker.component.mjs +16 -12
  67. package/esm2020/lib/date-picker/date-picker.module.mjs +12 -11
  68. package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +38 -28
  69. package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +9 -8
  70. package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +10 -9
  71. package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +6 -5
  72. package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +8 -9
  73. package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +7 -8
  74. package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +8 -9
  75. package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +6 -5
  76. package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +5 -4
  77. package/esm2020/lib/dropdown/dropdown.module.mjs +19 -22
  78. package/esm2020/lib/dropdown/dropdown.service.mjs +3 -3
  79. package/esm2020/lib/element-cover/element-cover.component.mjs +7 -6
  80. package/esm2020/lib/element-cover/element-cover.module.mjs +12 -11
  81. package/esm2020/lib/footer/footer.component.mjs +5 -4
  82. package/esm2020/lib/footer/footer.module.mjs +8 -14
  83. package/esm2020/lib/form/form/form.directive.mjs +6 -5
  84. package/esm2020/lib/form/form-check/form-check-input.directive.mjs +6 -5
  85. package/esm2020/lib/form/form-check/form-check-label.directive.mjs +7 -6
  86. package/esm2020/lib/form/form-check/form-check.component.mjs +6 -5
  87. package/esm2020/lib/form/form-control/form-control.directive.mjs +6 -5
  88. package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +6 -5
  89. package/esm2020/lib/form/form-floating/form-floating.directive.mjs +6 -5
  90. package/esm2020/lib/form/form-label/form-label.directive.mjs +6 -5
  91. package/esm2020/lib/form/form-select/form-select.directive.mjs +6 -5
  92. package/esm2020/lib/form/form-text/form-text.directive.mjs +8 -8
  93. package/esm2020/lib/form/form.module.mjs +24 -19
  94. package/esm2020/lib/form/input-group/input-group.component.mjs +5 -4
  95. package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +6 -5
  96. package/esm2020/lib/grid/col.component.mjs +5 -5
  97. package/esm2020/lib/grid/col.directive.mjs +6 -5
  98. package/esm2020/lib/grid/container.component.mjs +5 -5
  99. package/esm2020/lib/grid/grid.module.mjs +26 -21
  100. package/esm2020/lib/grid/gutter.directive.mjs +6 -5
  101. package/esm2020/lib/grid/row.component.mjs +5 -5
  102. package/esm2020/lib/grid/row.directive.mjs +6 -5
  103. package/esm2020/lib/header/header/header.component.mjs +6 -5
  104. package/esm2020/lib/header/header-brand/header-brand.component.mjs +6 -5
  105. package/esm2020/lib/header/header-divider/header-divider.component.mjs +6 -5
  106. package/esm2020/lib/header/header-nav/header-nav.component.mjs +5 -5
  107. package/esm2020/lib/header/header-text/header-text.component.mjs +5 -4
  108. package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +6 -5
  109. package/esm2020/lib/header/header.module.mjs +15 -10
  110. package/esm2020/lib/image/img.directive.mjs +6 -5
  111. package/esm2020/lib/image/img.module.mjs +8 -14
  112. package/esm2020/lib/list-group/list-group-item.directive.mjs +6 -5
  113. package/esm2020/lib/list-group/list-group.directive.mjs +6 -5
  114. package/esm2020/lib/list-group/list-group.module.mjs +8 -14
  115. package/esm2020/lib/loading-button/loading-button.component.mjs +7 -7
  116. package/esm2020/lib/loading-button/loading-button.module.mjs +9 -8
  117. package/esm2020/lib/modal/modal/modal.component.mjs +7 -7
  118. package/esm2020/lib/modal/modal-body/modal-body.component.mjs +5 -5
  119. package/esm2020/lib/modal/modal-content/modal-content.component.mjs +7 -7
  120. package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +5 -5
  121. package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +6 -5
  122. package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +5 -4
  123. package/esm2020/lib/modal/modal-header/modal-header.component.mjs +6 -7
  124. package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +6 -5
  125. package/esm2020/lib/modal/modal.module.mjs +28 -26
  126. package/esm2020/lib/modal/modal.service.mjs +3 -3
  127. package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +20 -15
  128. package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +6 -6
  129. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +6 -7
  130. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +8 -7
  131. package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +13 -10
  132. package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +6 -5
  133. package/esm2020/lib/multi-select/multi-select.module.mjs +28 -8
  134. package/esm2020/lib/multi-select/multi-select.service.mjs +3 -3
  135. package/esm2020/lib/nav/nav-item.component.mjs +5 -5
  136. package/esm2020/lib/nav/nav-link.directive.mjs +6 -5
  137. package/esm2020/lib/nav/nav.component.mjs +5 -7
  138. package/esm2020/lib/nav/nav.module.mjs +22 -8
  139. package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +6 -5
  140. package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +5 -4
  141. package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +5 -4
  142. package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +6 -5
  143. package/esm2020/lib/navbar/navbar.component.mjs +7 -6
  144. package/esm2020/lib/navbar/navbar.module.mjs +20 -17
  145. package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +35 -32
  146. package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +5 -5
  147. package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +9 -5
  148. package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +6 -5
  149. package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +6 -5
  150. package/esm2020/lib/offcanvas/offcanvas.module.mjs +21 -18
  151. package/esm2020/lib/offcanvas/offcanvas.service.mjs +3 -3
  152. package/esm2020/lib/pagination/page-item/page-item.component.mjs +5 -5
  153. package/esm2020/lib/pagination/page-item/page-item.directive.mjs +6 -5
  154. package/esm2020/lib/pagination/page-link/page-link.directive.mjs +6 -5
  155. package/esm2020/lib/pagination/pagination/pagination.component.mjs +6 -5
  156. package/esm2020/lib/pagination/pagination.module.mjs +19 -17
  157. package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +9 -8
  158. package/esm2020/lib/placeholder/placeholder.directive.mjs +6 -5
  159. package/esm2020/lib/placeholder/placeholder.module.mjs +10 -10
  160. package/esm2020/lib/popover/popover/popover.component.mjs +6 -5
  161. package/esm2020/lib/popover/popover.directive.mjs +6 -5
  162. package/esm2020/lib/popover/popover.module.mjs +12 -11
  163. package/esm2020/lib/progress/progress-bar.component.mjs +6 -5
  164. package/esm2020/lib/progress/progress.component.mjs +6 -5
  165. package/esm2020/lib/progress/progress.module.mjs +13 -7
  166. package/esm2020/lib/services/class-toggle.service.mjs +3 -3
  167. package/esm2020/lib/services/intersection.service.mjs +3 -3
  168. package/esm2020/lib/services/listeners.service.mjs +3 -3
  169. package/esm2020/lib/shared/html-attr.directive.mjs +6 -5
  170. package/esm2020/lib/shared/shared.module.mjs +9 -20
  171. package/esm2020/lib/shared/template-id.directive.mjs +6 -5
  172. package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +5 -4
  173. package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
  174. package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +8 -7
  175. package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +9 -5
  176. package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +10 -7
  177. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +6 -5
  178. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +7 -8
  179. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
  180. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +7 -7
  181. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +6 -5
  182. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +8 -7
  183. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +29 -20
  184. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +7 -7
  185. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +5 -4
  186. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +78 -78
  187. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  188. package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +6 -5
  189. package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +5 -4
  190. package/esm2020/lib/sidebar/sidebar.module.mjs +35 -26
  191. package/esm2020/lib/sidebar/sidebar.service.mjs +3 -3
  192. package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +7 -7
  193. package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +12 -11
  194. package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +71 -37
  195. package/esm2020/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +8 -7
  196. package/esm2020/lib/smart-table/smart-table-filter/filter-input.directive.mjs +6 -6
  197. package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +7 -7
  198. package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +41 -19
  199. package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +14 -8
  200. package/esm2020/lib/smart-table/smart-table.module.mjs +26 -21
  201. package/esm2020/lib/spinner/spinner.component.mjs +5 -5
  202. package/esm2020/lib/spinner/spinner.module.mjs +13 -12
  203. package/esm2020/lib/table/table-active.directive.mjs +6 -5
  204. package/esm2020/lib/table/table-color.directive.mjs +6 -5
  205. package/esm2020/lib/table/table.directive.mjs +6 -5
  206. package/esm2020/lib/table/table.module.mjs +11 -11
  207. package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +5 -5
  208. package/esm2020/lib/tabs/tab-content-ref.directive.mjs +5 -4
  209. package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +5 -5
  210. package/esm2020/lib/tabs/tab.service.mjs +3 -3
  211. package/esm2020/lib/tabs/tabs.module.mjs +16 -14
  212. package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +11 -9
  213. package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +11 -9
  214. package/esm2020/lib/time-picker/time-picker.component.mjs +45 -26
  215. package/esm2020/lib/time-picker/time-picker.module.mjs +26 -25
  216. package/esm2020/lib/toast/toast/toast.component.mjs +6 -6
  217. package/esm2020/lib/toast/toast-body/toast-body.component.mjs +5 -5
  218. package/esm2020/lib/toast/toast-close.directive.mjs +6 -5
  219. package/esm2020/lib/toast/toast-header/toast-header.component.mjs +8 -7
  220. package/esm2020/lib/toast/toast.module.mjs +27 -18
  221. package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +6 -5
  222. package/esm2020/lib/toast/toaster/toaster.component.mjs +5 -6
  223. package/esm2020/lib/toast/toaster/toaster.service.mjs +3 -3
  224. package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +5 -5
  225. package/esm2020/lib/tooltip/tooltip.directive.mjs +6 -5
  226. package/esm2020/lib/tooltip/tooltip.module.mjs +13 -12
  227. package/esm2020/lib/utilities/align.directive.mjs +6 -5
  228. package/esm2020/lib/utilities/bg-color.directive.mjs +6 -5
  229. package/esm2020/lib/utilities/border.directive.mjs +6 -5
  230. package/esm2020/lib/utilities/rounded.directive.mjs +6 -5
  231. package/esm2020/lib/utilities/text-color.directive.mjs +6 -5
  232. package/esm2020/lib/utilities/utilities.module.mjs +10 -10
  233. package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +11 -7
  234. package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +7 -7
  235. package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +7 -7
  236. package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +10 -12
  237. package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +8 -8
  238. package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +7 -7
  239. package/esm2020/lib/widget/widget.module.mjs +21 -15
  240. package/fesm2015/coreui-angular-pro.mjs +4130 -3822
  241. package/fesm2015/coreui-angular-pro.mjs.map +1 -1
  242. package/fesm2020/coreui-angular-pro.mjs +4127 -3816
  243. package/fesm2020/coreui-angular-pro.mjs.map +1 -1
  244. package/lib/accordion/accordion/accordion.component.d.ts +2 -2
  245. package/lib/accordion/accordion-button/accordion-button.directive.d.ts +1 -1
  246. package/lib/accordion/accordion-item/accordion-item.component.d.ts +13 -13
  247. package/lib/accordion/accordion.module.d.ts +4 -4
  248. package/lib/alert/alert-heading.directive.d.ts +1 -1
  249. package/lib/alert/alert-link.directive.d.ts +1 -1
  250. package/lib/alert/alert.component.d.ts +22 -22
  251. package/lib/alert/alert.module.d.ts +5 -5
  252. package/lib/avatar/avatar.component.d.ts +1 -1
  253. package/lib/avatar/avatar.module.d.ts +3 -3
  254. package/lib/badge/badge.component.d.ts +1 -1
  255. package/lib/badge/badge.module.d.ts +3 -3
  256. package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +1 -1
  257. package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +1 -1
  258. package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.d.ts +3 -3
  259. package/lib/breadcrumb/breadcrumb.module.d.ts +5 -5
  260. package/lib/button/button-close.directive.d.ts +1 -1
  261. package/lib/button/button.directive.d.ts +1 -1
  262. package/lib/button/button.module.d.ts +4 -4
  263. package/lib/button-group/button-group/button-group.component.d.ts +1 -1
  264. package/lib/button-group/button-group.module.d.ts +4 -4
  265. package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +1 -1
  266. package/lib/calendar/calendar/calendar-class-view.pipe.d.ts +1 -1
  267. package/lib/calendar/calendar/calendar.component.d.ts +2 -2
  268. package/lib/calendar/calendar-month/calendar-class-day.pipe.d.ts +1 -1
  269. package/lib/calendar/calendar-month/calendar-class-month.pipe.d.ts +1 -1
  270. package/lib/calendar/calendar-month/calendar-class-year.pipe.d.ts +1 -1
  271. package/lib/calendar/calendar-month/calendar-day-title.pipe.d.ts +1 -1
  272. package/lib/calendar/calendar-month/calendar-day.directive.d.ts +1 -1
  273. package/lib/calendar/calendar-month/calendar-day.pipe.d.ts +1 -1
  274. package/lib/calendar/calendar-month/calendar-month.component.d.ts +2 -2
  275. package/lib/calendar/calendar-month/calendar-weekday.pipe.d.ts +1 -1
  276. package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +1 -1
  277. package/lib/calendar/calendar.module.d.ts +14 -14
  278. package/lib/callout/callout.component.d.ts +1 -1
  279. package/lib/callout/callout.module.d.ts +3 -3
  280. package/lib/card/card-body.component.d.ts +1 -1
  281. package/lib/card/card-footer.component.d.ts +1 -1
  282. package/lib/card/card-group.component.d.ts +1 -1
  283. package/lib/card/card-header-actions.component.d.ts +1 -1
  284. package/lib/card/card-header.component.d.ts +1 -1
  285. package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +1 -1
  286. package/lib/card/card-img.directive.d.ts +1 -1
  287. package/lib/card/card-link.directive.d.ts +1 -1
  288. package/lib/card/card-subtitle.directive.d.ts +1 -1
  289. package/lib/card/card-text.directive.d.ts +1 -1
  290. package/lib/card/card-title.directive.d.ts +1 -1
  291. package/lib/card/card.component.d.ts +1 -1
  292. package/lib/card/card.module.d.ts +14 -14
  293. package/lib/carousel/carousel/carousel.component.d.ts +1 -1
  294. package/lib/carousel/carousel-caption/carousel-caption.component.d.ts +1 -1
  295. package/lib/carousel/carousel-control/carousel-control.component.d.ts +1 -1
  296. package/lib/carousel/carousel-indicators/carousel-indicators.component.d.ts +2 -2
  297. package/lib/carousel/carousel-inner/carousel-inner.component.d.ts +4 -4
  298. package/lib/carousel/carousel-item/carousel-item.component.d.ts +2 -2
  299. package/lib/carousel/carousel.module.d.ts +8 -8
  300. package/lib/collapse/collapse.directive.d.ts +1 -1
  301. package/lib/collapse/collapse.module.d.ts +3 -3
  302. package/lib/date-picker/date-picker.component.d.ts +1 -1
  303. package/lib/date-picker/date-picker.module.d.ts +11 -11
  304. package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +2 -2
  305. package/lib/date-range-picker/date-range-picker.module.d.ts +9 -9
  306. package/lib/dropdown/dropdown/dropdown.component.d.ts +2 -2
  307. package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +1 -1
  308. package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +1 -2
  309. package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +1 -2
  310. package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +1 -2
  311. package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +1 -1
  312. package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +1 -1
  313. package/lib/dropdown/dropdown.module.d.ts +9 -9
  314. package/lib/element-cover/element-cover.component.d.ts +1 -1
  315. package/lib/element-cover/element-cover.module.d.ts +4 -4
  316. package/lib/footer/footer.component.d.ts +1 -1
  317. package/lib/footer/footer.module.d.ts +3 -3
  318. package/lib/form/form/form.directive.d.ts +1 -1
  319. package/lib/form/form-check/form-check-input.directive.d.ts +1 -1
  320. package/lib/form/form-check/form-check-label.directive.d.ts +1 -1
  321. package/lib/form/form-check/form-check.component.d.ts +1 -1
  322. package/lib/form/form-control/form-control.directive.d.ts +1 -1
  323. package/lib/form/form-feedback/form-feedback.component.d.ts +1 -1
  324. package/lib/form/form-floating/form-floating.directive.d.ts +1 -1
  325. package/lib/form/form-label/form-label.directive.d.ts +1 -1
  326. package/lib/form/form-select/form-select.directive.d.ts +1 -1
  327. package/lib/form/form-text/form-text.directive.d.ts +1 -2
  328. package/lib/form/form.module.d.ts +14 -14
  329. package/lib/form/input-group/input-group.component.d.ts +1 -1
  330. package/lib/form/input-group-text/input-group-text.directive.d.ts +1 -1
  331. package/lib/grid/col.component.d.ts +1 -1
  332. package/lib/grid/col.directive.d.ts +1 -1
  333. package/lib/grid/container.component.d.ts +1 -1
  334. package/lib/grid/grid.module.d.ts +8 -8
  335. package/lib/grid/gutter.directive.d.ts +1 -1
  336. package/lib/grid/row.component.d.ts +1 -1
  337. package/lib/grid/row.directive.d.ts +1 -1
  338. package/lib/header/header/header.component.d.ts +1 -1
  339. package/lib/header/header-brand/header-brand.component.d.ts +1 -1
  340. package/lib/header/header-divider/header-divider.component.d.ts +1 -1
  341. package/lib/header/header-nav/header-nav.component.d.ts +1 -1
  342. package/lib/header/header-text/header-text.component.d.ts +1 -1
  343. package/lib/header/header-toggler/header-toggler.directive.d.ts +1 -1
  344. package/lib/header/header.module.d.ts +8 -8
  345. package/lib/image/img.directive.d.ts +1 -1
  346. package/lib/image/img.module.d.ts +3 -3
  347. package/lib/list-group/list-group-item.directive.d.ts +1 -1
  348. package/lib/list-group/list-group.directive.d.ts +1 -1
  349. package/lib/list-group/list-group.module.d.ts +4 -4
  350. package/lib/loading-button/loading-button.component.d.ts +2 -2
  351. package/lib/loading-button/loading-button.module.d.ts +3 -3
  352. package/lib/modal/modal/modal.component.d.ts +1 -1
  353. package/lib/modal/modal-body/modal-body.component.d.ts +1 -1
  354. package/lib/modal/modal-content/modal-content.component.d.ts +1 -2
  355. package/lib/modal/modal-dialog/modal-dialog.component.d.ts +1 -1
  356. package/lib/modal/modal-dismiss/modal-toggle.directive.d.ts +1 -1
  357. package/lib/modal/modal-footer/modal-footer.component.d.ts +1 -1
  358. package/lib/modal/modal-header/modal-header.component.d.ts +1 -1
  359. package/lib/modal/modal-title/modal-title.directive.d.ts +1 -1
  360. package/lib/modal/modal.module.d.ts +11 -11
  361. package/lib/multi-select/multi-select/multi-select.component.d.ts +1 -1
  362. package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +1 -1
  363. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +1 -2
  364. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +2 -2
  365. package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +1 -1
  366. package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +2 -2
  367. package/lib/multi-select/multi-select.module.d.ts +12 -12
  368. package/lib/nav/nav-item.component.d.ts +1 -1
  369. package/lib/nav/nav-link.directive.d.ts +1 -1
  370. package/lib/nav/nav.component.d.ts +1 -1
  371. package/lib/nav/nav.module.d.ts +5 -5
  372. package/lib/navbar/navbar-brand/navbar-brand.directive.d.ts +1 -1
  373. package/lib/navbar/navbar-nav/navbar-nav.component.d.ts +1 -1
  374. package/lib/navbar/navbar-text/navbar-text.component.d.ts +1 -1
  375. package/lib/navbar/navbar-toggler/navbar-toggler.directive.d.ts +1 -1
  376. package/lib/navbar/navbar.component.d.ts +1 -1
  377. package/lib/navbar/navbar.module.d.ts +7 -7
  378. package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +15 -15
  379. package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +1 -1
  380. package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +1 -1
  381. package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +1 -1
  382. package/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.d.ts +1 -1
  383. package/lib/offcanvas/offcanvas.module.d.ts +8 -8
  384. package/lib/pagination/page-item/page-item.component.d.ts +1 -1
  385. package/lib/pagination/page-item/page-item.directive.d.ts +1 -1
  386. package/lib/pagination/page-link/page-link.directive.d.ts +1 -1
  387. package/lib/pagination/pagination/pagination.component.d.ts +1 -1
  388. package/lib/pagination/pagination.module.d.ts +3 -3
  389. package/lib/placeholder/placeholder-animation.directive.d.ts +2 -2
  390. package/lib/placeholder/placeholder.directive.d.ts +1 -1
  391. package/lib/placeholder/placeholder.module.d.ts +4 -4
  392. package/lib/popover/popover/popover.component.d.ts +1 -1
  393. package/lib/popover/popover.directive.d.ts +1 -1
  394. package/lib/popover/popover.module.d.ts +4 -4
  395. package/lib/progress/progress-bar.component.d.ts +1 -1
  396. package/lib/progress/progress.component.d.ts +1 -1
  397. package/lib/progress/progress.module.d.ts +4 -4
  398. package/lib/shared/html-attr.directive.d.ts +1 -1
  399. package/lib/shared/shared.module.d.ts +4 -4
  400. package/lib/shared/template-id.directive.d.ts +1 -1
  401. package/lib/sidebar/sidebar/sidebar.component.d.ts +1 -1
  402. package/lib/sidebar/sidebar-brand/sidebar-brand.component.d.ts +1 -1
  403. package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +1 -1
  404. package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -2
  405. package/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.d.ts +1 -1
  406. package/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.d.ts +1 -2
  407. package/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.d.ts +1 -1
  408. package/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.d.ts +1 -1
  409. package/lib/sidebar/sidebar-nav/sidebar-nav-label.component.d.ts +2 -2
  410. package/lib/sidebar/sidebar-nav/sidebar-nav-link.component.d.ts +2 -2
  411. package/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.d.ts +1 -1
  412. package/lib/sidebar/sidebar-nav/sidebar-nav-title.component.d.ts +1 -1
  413. package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +21 -21
  414. package/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.d.ts +1 -1
  415. package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +1 -1
  416. package/lib/sidebar/sidebar.module.d.ts +19 -19
  417. package/lib/smart-pagination/smart-pagination.component.d.ts +2 -2
  418. package/lib/smart-pagination/smart-pagination.module.d.ts +4 -4
  419. package/lib/smart-table/smart-table/smart-table.component.d.ts +3 -3
  420. package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +1 -1
  421. package/lib/smart-table/smart-table-filter/filter-input.directive.d.ts +1 -1
  422. package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +1 -1
  423. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +2 -2
  424. package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +1 -1
  425. package/lib/smart-table/smart-table.module.d.ts +17 -17
  426. package/lib/spinner/spinner.component.d.ts +1 -1
  427. package/lib/spinner/spinner.module.d.ts +3 -4
  428. package/lib/table/table-active.directive.d.ts +1 -1
  429. package/lib/table/table-color.directive.d.ts +1 -1
  430. package/lib/table/table.directive.d.ts +1 -1
  431. package/lib/table/table.module.d.ts +5 -5
  432. package/lib/tabs/tab-content/tab-content.component.d.ts +1 -1
  433. package/lib/tabs/tab-content-ref.directive.d.ts +1 -1
  434. package/lib/tabs/tab-pane/tab-pane.component.d.ts +1 -1
  435. package/lib/tabs/tabs.module.d.ts +4 -4
  436. package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +2 -2
  437. package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +2 -2
  438. package/lib/time-picker/time-picker.component.d.ts +2 -2
  439. package/lib/time-picker/time-picker.module.d.ts +9 -9
  440. package/lib/toast/toast/toast.component.d.ts +1 -1
  441. package/lib/toast/toast-body/toast-body.component.d.ts +1 -1
  442. package/lib/toast/toast-close.directive.d.ts +1 -1
  443. package/lib/toast/toast-header/toast-header.component.d.ts +1 -1
  444. package/lib/toast/toast.module.d.ts +8 -8
  445. package/lib/toast/toaster/toaster-host.directive.d.ts +1 -1
  446. package/lib/toast/toaster/toaster.component.d.ts +1 -1
  447. package/lib/tooltip/tooltip/tooltip.component.d.ts +1 -1
  448. package/lib/tooltip/tooltip.directive.d.ts +1 -1
  449. package/lib/tooltip/tooltip.module.d.ts +4 -4
  450. package/lib/utilities/align.directive.d.ts +1 -1
  451. package/lib/utilities/bg-color.directive.d.ts +1 -1
  452. package/lib/utilities/border.directive.d.ts +1 -1
  453. package/lib/utilities/rounded.directive.d.ts +1 -1
  454. package/lib/utilities/text-color.directive.d.ts +1 -1
  455. package/lib/utilities/utilities.module.d.ts +7 -7
  456. package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +1 -1
  457. package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +1 -1
  458. package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +1 -1
  459. package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +2 -2
  460. package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +1 -1
  461. package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +1 -1
  462. package/lib/widget/widget.module.d.ts +10 -10
  463. package/package.json +1 -1
@@ -1,19 +1,20 @@
1
1
  import { Component, ContentChildren, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
2
3
  import { FocusKeyManager } from '@angular/cdk/a11y';
3
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import { DropdownComponent, DropdownToggleDirective } from '../../dropdown';
5
+ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import { DropdownComponent, DropdownModule, DropdownToggleDirective } from '../../dropdown';
6
7
  import { MultiSelectService } from '../multi-select.service';
7
8
  import { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';
8
9
  import { MultiSelectNativeSelectComponent } from '../multi-select-native-select/multi-select-native-select.component';
10
+ import { MultiSelectTagComponent } from '../multi-select-tag/multi-select-tag.component';
9
11
  import * as i0 from "@angular/core";
10
12
  import * as i1 from "@angular/cdk/a11y";
11
13
  import * as i2 from "../multi-select.service";
12
14
  import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/forms";
14
- import * as i5 from "../../dropdown/dropdown/dropdown.component";
15
- import * as i6 from "../../dropdown/dropdown-menu/dropdown-menu.directive";
16
- import * as i7 from "../multi-select-tag/multi-select-tag.component";
15
+ import * as i4 from "../../dropdown/dropdown/dropdown.component";
16
+ import * as i5 from "../../dropdown/dropdown-menu/dropdown-menu.directive";
17
+ import * as i6 from "@angular/forms";
17
18
  // @ts-ignore
18
19
  export const observeReferenceModifier = {
19
20
  name: 'observeReferenceModifier', enabled: true, phase: 'main', fn({ state }) { },
@@ -301,8 +302,13 @@ export class MultiSelectComponent {
301
302
  this.selectOptions();
302
303
  });
303
304
  this.multiselectVisibleSubscription = this.multiSelectService.multiSelectVisible$.subscribe((visible) => {
304
- this.isDropdownVisible = visible;
305
- this.visibleChange.emit(visible);
305
+ if (this.isDropdownVisible !== visible) {
306
+ this.isDropdownVisible = visible;
307
+ this.visibleChange.emit(visible);
308
+ if (!visible) {
309
+ this.setFocus('program', 'multiSelectVisible$');
310
+ }
311
+ }
306
312
  });
307
313
  this.multiselectStateSubscription = this.multiSelectService.multiSelectState$.subscribe((option) => {
308
314
  if (option.selected === true && !this.multiple) {
@@ -315,7 +321,6 @@ export class MultiSelectComponent {
315
321
  // close dropdown for single select (!multiple)
316
322
  this.visible = false;
317
323
  this.searchValue = '';
318
- this.setFocus('program', 'multiselectSubscribe');
319
324
  }
320
325
  // todo?
321
326
  // if (!!option) {
@@ -442,16 +447,16 @@ export class MultiSelectComponent {
442
447
  }
443
448
  }
444
449
  }
445
- MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
446
- MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: MultiSelectComponent, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", selectionTypeCounterTextPluralMap: "selectionTypeCounterTextPluralMap", size: "size", value: "value", valid: "valid", visible: "visible", popperjsOptions: ["popperOptions", "popperjsOptions"] }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
450
+ MultiSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i1.FocusMonitor }, { token: i2.MultiSelectService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
451
+ MultiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: MultiSelectComponent, isStandalone: true, selector: "c-multi-select", inputs: { cleaner: "cleaner", disabled: "disabled", multiple: "multiple", nativeName: "nativeName", nativeId: "nativeId", optionsMaxHeight: "optionsMaxHeight", optionsStyle: "optionsStyle", placeholder: "placeholder", search: "search", searchNoResultsLabel: "searchNoResultsLabel", selectAll: "selectAll", selectAllLabel: "selectAllLabel", selectionType: "selectionType", selectionTypeCounterText: "selectionTypeCounterText", selectionTypeCounterTextPluralMap: "selectionTypeCounterTextPluralMap", size: "size", value: "value", valid: "valid", visible: "visible", popperjsOptions: ["popperOptions", "popperjsOptions"] }, outputs: { valueChange: "valueChange", visibleChange: "visibleChange" }, host: { listeners: { "keyup": "onKeyUp($event)", "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex" } }, providers: [
447
452
  MultiSelectService,
448
453
  {
449
454
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent), multi: true
450
455
  }
451
- ], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: DropdownToggleDirective, descendants: true }, { propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }], exportAs: ["cMultiSelect"], usesOnChanges: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"picker\" [ngClass]=\"multiselectClasses\"\n [(visible)]=\"visible\" [popperOptions]=\"popperjsOptions\">\n <div [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle #dropdownToggle=\"cDropdownToggle\">\n <div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span class=\"form-multi-select-search\">{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <!-- <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">-->\n <!-- <span class=\"form-multi-select-search\">{{ placeholder }}</span>-->\n <!-- </ng-template>-->\n </div>\n\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search) }\"\n [attr.placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : null\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n >\n\n <button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-selection-cleaner\"\n ></button>\n </div>\n\n <div *ngIf=\"!disabled\" class=\"\" cDropdownMenu #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n </div>\n</c-dropdown>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){width:.1rem;margin-inline-start:0}:host .form-multi-select-search[size]{display:inline}:host .form-multi-select-selection-tags .form-multi-select-search{height:1.5rem}:host-context(.dark-theme)::ng-deep .form-multi-select-optgroup-label{color:var(--cui-form-multi-select-disabled-color)}\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: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "dark", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: i5.DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: i6.DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible", "dark"], exportAs: ["cDropdownMenu"] }, { kind: "component", type: i7.MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }, { kind: "pipe", type: i3.I18nPluralPipe, name: "i18nPlural" }] });
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectComponent, decorators: [{
456
+ ], queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "dropdownMenu", first: true, predicate: ["dropdownMenu"], descendants: true }, { propertyName: "dropdownToggle", first: true, predicate: DropdownToggleDirective, descendants: true }, { propertyName: "dropdown", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }], exportAs: ["cMultiSelect"], usesOnChanges: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"picker\" [ngClass]=\"multiselectClasses\"\n [(visible)]=\"visible\" [popperOptions]=\"popperjsOptions\">\n <div [caret]=\"false\" [disabled]=\"disabled\" cDropdownToggle #dropdownToggle=\"cDropdownToggle\">\n <div class=\"form-multi-select-selection\">\n <ng-template [ngIf]=\"selectionType === 'tags'\">\n <c-multi-select-tag *ngFor=\"let option of selectedOptions; index as i\"\n (remove)=\"handleTagRemove($event)\"\n [option]=\"option\"\n tabindex=\"-1\">\n </c-multi-select-tag>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'text' && !!selectedOptionsText\">\n <span class=\"form-multi-select-search\">{{ selectedOptionsText }}</span>\n </ng-template>\n <ng-template [ngIf]=\"selectionType === 'counter'\">\n <span *ngIf=\"counterTextType === 'string'; else pluralMap\">{{ counterText }}</span>\n <ng-template #pluralMap>\n <span>{{selectedOptions.length}} {{ selectedOptions.length | i18nPlural: selectionTypeCounterTextPluralMap ?? { other: counterText } }}</span>\n </ng-template>\n </ng-template>\n <!-- <ng-template [ngIf]=\"!search && selectedOptions.length === 0 && selectionType !== 'counter'\">-->\n <!-- <span class=\"form-multi-select-search\">{{ placeholder }}</span>-->\n <!-- </ng-template>-->\n </div>\n\n <input\n #inputElement\n (keydown)=\"handleSearchKeyDown($event)\"\n [(ngModel)]=\"searchValue\"\n [disabled]=\"disabled || !search\"\n [ngClass]=\"{ 'form-multi-select-search': true, disabled: (disabled || !search) }\"\n [attr.placeholder]=\"selectedOptions.length === 0 && selectionType !== 'counter' ? placeholder : null\"\n autocomplete=\"off\"\n tabindex=\"{{ disabled ? '-1' : '0' }}\"\n type=\"text\"\n >\n\n <button\n (click)=\"clearAllOptions($event)\"\n *ngIf=\"cleaner && selectedOptions.length > 0 && !disabled\"\n [disabled]=\"disabled || !isDropdownVisible\"\n aria-label=\"Clear all\"\n class=\"form-multi-select-selection-cleaner\"\n ></button>\n </div>\n\n <div *ngIf=\"!disabled\" class=\"\" cDropdownMenu #dropdownMenu=\"cDropdownMenu\" [visible]=\"dropdown.visible\">\n <ng-template [ngIfElse]=\"optionsEmpty\" [ngIf]=\"visibleOptions > 0\">\n <button (click)=\"selectAllOptions()\" *ngIf=\"selectAll && multiple\" class=\"form-multi-select-all\">\n {{ selectAllLabel }}\n </button>\n <div #multiselectOptionsDiv\n [ngStyle]=\"optionsMaxHeight !== 'auto' ? { 'maxHeight.px': optionsMaxHeight, overflow: 'scroll' } : {}\"\n class=\"form-multi-select-options\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n <ng-template #optionsEmpty>\n <div class=\"form-multi-select-options-empty\">{{ searchNoResultsLabel }}</div>\n </ng-template>\n </div>\n</c-dropdown>\n", styles: [":host{display:block}:host:focus-visible{outline:none}:host.cdk-focused:not(.disabled) .form-multi-select{color:var(--cui-form-multi-select-focus-color, rgba(44, 56, 74, .95));background-color:var(--cui-form-multi-select-focus-bg, #fff);border-color:var(--cui-form-multi-select-focus-border-color, #6557e4);box-shadow:0 0 0 .25rem #321fdb40}:host:not(.cdk-focused) .form-multi-select:not(.show) input.form-multi-select-search:not([placeholder]){width:.1rem;margin-inline-start:0}:host .form-multi-select-search[size]{display:inline}:host .form-multi-select-selection-tags .form-multi-select-search{height:1.5rem}:host-context(.dark-theme)::ng-deep .form-multi-select-optgroup-label{color:var(--cui-form-multi-select-disabled-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.I18nPluralPipe, name: "i18nPlural" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4.DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "dark", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: i5.DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible", "dark"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: i4.DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MultiSelectTagComponent, selector: "c-multi-select-tag", inputs: ["option"], outputs: ["remove"] }] });
457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectComponent, decorators: [{
453
458
  type: Component,
454
- args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', providers: [
459
+ args: [{ selector: 'c-multi-select', exportAs: 'cMultiSelect', standalone: true, imports: [CommonModule, DropdownModule, FormsModule, MultiSelectTagComponent], providers: [
455
460
  MultiSelectService,
456
461
  {
457
462
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiSelectComponent), multi: true
@@ -533,4 +538,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
533
538
  type: HostListener,
534
539
  args: ['click', ['$event']]
535
540
  }] } });
536
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFPTCxNQUFNLEVBSU4sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQTZCLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7Ozs7Ozs7O0FBTXRILGFBQWE7QUFDYixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBMEI7SUFDN0QsSUFBSSxFQUFFLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFB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ICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIEl0ZXJhYmxlRGlmZmVyLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RpZmllciwgTW9kaWZpZXJBcmd1bWVudHMsIE9wdGlvbnMgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XG5cbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50LCBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duJztcbmltcG9ydCB7IElNdWx0aVNlbGVjdCwgSU9wdGlvbiB9IGZyb20gJy4uL211bHRpLXNlbGVjdC50eXBlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VydmljZSB9IGZyb20gJy4uL211bHRpLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0L211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJUGx1cmFsTWFwIHtcbiAgW2s6IHN0cmluZ106IHN0cmluZztcbn1cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGNvbnN0IG9ic2VydmVSZWZlcmVuY2VNb2RpZmllcjogTW9kaWZpZXI8c3RyaW5nLCBhbnk+ID0ge1xuICBuYW1lOiAnb2JzZXJ2ZVJlZmVyZW5jZU1vZGlmaWVyJywgZW5hYmxlZDogdHJ1ZSwgcGhhc2U6ICdtYWluJywgZm4oeyBzdGF0ZSB9KSB7fSxcblxuICBlZmZlY3Q6ICh7IHN0YXRlLCBpbnN0YW5jZSB9OiBNb2RpZmllckFyZ3VtZW50czxPcHRpb25zPikgPT4ge1xuICAgIGNvbnN0IFJPX1BST1AgPSAnX19wb3BwZXJqc1JPX18nO1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPSBzdGF0ZS5lbGVtZW50cztcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZWZlcmVuY2VbUk9fUFJPUF0gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGluc3RhbmNlLnVwZGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJlZmVyZW5jZVtST19QUk9QXS5vYnNlcnZlKHJlZmVyZW5jZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlZmVyZW5jZVtST19QUk9QXS5kaXNjb25uZWN0KCk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBkZWxldGUgcmVmZXJlbmNlW1JPX1BST1BdO1xuICAgIH07XG4gIH1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2NNdWx0aVNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIE11bHRpU2VsZWN0U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3RDb21wb25lbnQpLCBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIElNdWx0aVNlbGVjdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0U2VydmljZTogTXVsdGlTZWxlY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgaXRlcmFibGVEaWZmZXJzOiBJdGVyYWJsZURpZmZlcnNcbiAgKSB7XG4gICAgdGhpcy5kaWZmZXIgPSB0aGlzLml0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuX3ZhbHVlKS5jcmVhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlmZmVyITogSXRlcmFibGVEaWZmZXI8YW55PjtcblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbXVsdGlwbGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiAoc3RyaW5nIHwgc3RyaW5nW10pKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKSBjbGVhbmVyID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICB0aGlzLnNldEZvY3VzTW9uaXRvcighdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBtdWx0aXBsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cblxuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG5hdGl2ZU5hbWUgPSAnJztcbiAgQElucHV0KCkgbmF0aXZlSWQgPSAnJztcbiAgQElucHV0KCkgb3B0aW9uc01heEhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgb3B0aW9uc1N0eWxlOiAnY2hlY2tib3gnIHwgJ3RleHQnID0gJ2NoZWNrYm94JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnU2VsZWN0Li4uJztcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VhcmNoTm9SZXN1bHRzTGFiZWwgPSAnbm8gaXRlbXMnO1xuICBASW5wdXQoKSBzZWxlY3RBbGwgPSB0cnVlO1xuICBASW5wdXQoKSBzZWxlY3RBbGxMYWJlbCA9ICdTZWxlY3QgYWxsIG9wdGlvbnMnO1xuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlOiAnY291bnRlcicgfCAndGFncycgfCAndGV4dCcgPSAndGFncyc7XG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dDogc3RyaW5nID0gJ2l0ZW0ocykgc2VsZWN0ZWQnO1xuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXA/OiBJUGx1cmFsTWFwID0geyAnPTEnOiAnaXRlbSBzZWxlY3RlZCcsICdvdGhlcic6ICdpdGVtcyBzZWxlY3RlZCcgfTtcblxuICAvKipcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsIG9yIGxhcmdlLlxuICAgKiBAdHlwZSAnc20nIHwgJ2xnJyB8IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIG9mIG11bHRpLXNlbGVjdFxuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW3ZhbHVlID8/ICcnXTtcbiAgICBpZiAodGhpcy5kaWZmZXIpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmRpZmZlci5kaWZmKG5ld1ZhbHVlKTtcbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMoKTtcbiAgICAgICAgLy8gbm90IHJlcXVpcmVkIGhlcmU6XG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBbLi4udGhpcy5fdmFsdWVdIDogdGhpcy5fdmFsdWVbMF0/LnRvU3RyaW5nKCkgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nW10gPSBbJyddO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgc3RyaW5nW10+KCk7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB2aXN1YWwgdmFsaWRhdGlvbiBmZWVkYmFjay5cbiAgICogQHR5cGUgYm9vbGVhbiB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIHZhbGlkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBkcm9wZG93biBzZWxlY3QgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAobmV3VmFsdWUgIT09IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLnRvZ2dsZVZpc2libGUobmV3VmFsdWUpO1xuICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHBvcHBlciBPcHRpb25zIG9iamVjdFxuICAgKiBAdHlwZSBQYXJ0aWFsPE9wdGlvbnM+XG4gICAqL1xuICBASW5wdXQoJ3BvcHBlck9wdGlvbnMnKSBwb3BwZXJqc09wdGlvbnM6IFBhcnRpYWw8T3B0aW9ucz4gPSB7XG4gICAgc3RyYXRlZ3k6ICdmaXhlZCcsIG1vZGlmaWVyczogW29ic2VydmVSZWZlcmVuY2VNb2RpZmllciwge1xuICAgICAgbmFtZTogJ29mZnNldCcsIG9wdGlvbnM6IHtcbiAgICAgICAgb2Zmc2V0OiBbMCwgdGhpcy5zZWxlY3Rpb25UeXBlID09PSAndGFncycgPyA4IDogMTBdXG4gICAgICB9XG4gICAgfV1cbiAgfTtcblxuICBpc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXG4gIHNldCBzZWxlY3RlZE9wdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIF9zZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uc1RleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwpLmpvaW4oJywgJyk7XG4gIH1cblxuICBnZXQgY291bnRlclRleHQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aH0gJHt0aGlzLnNlbGVjdGlvblR5cGVDb3VudGVyVGV4dH1gO1xuICB9XG5cbiAgZ2V0IGNvdW50ZXJUZXh0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXAgPz8gdHlwZW9mIHRoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0O1xuICB9O1xuXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbXVsdGlTZWxlY3RPcHRpb25zU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBAQ29udGVudENoaWxkcmVuKE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG11bHRpU2VsZWN0T3B0aW9ucyE6IFF1ZXJ5TGlzdDxNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBsaXN0S2V5TWFuYWdlciE6IEZvY3VzS2V5TWFuYWdlcjxNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25NZW51JykgZHJvcGRvd25NZW51ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSkgZHJvcGRvd25Ub2dnbGUhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKERyb3Bkb3duQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZHJvcGRvd24hOiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIGdldCBtdWx0aXNlbGVjdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdCc6IHRydWUsXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLXRhZ3MnOiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyAmJiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwLFxuICAgICAgW2Bmb3JtLW11bHRpLXNlbGVjdC0ke3RoaXMuc2l6ZX1gXTogISF0aGlzLnNpemUsXG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtd2l0aC1jbGVhbmVyJzogdGhpcy5jbGVhbmVyLFxuICAgICAgc2hvdzogdGhpcy52aXNpYmxlLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAnaXMtdmFsaWQnOiB0aGlzLnZhbGlkID09PSB0cnVlLFxuICAgICAgJ2lzLWludmFsaWQnOiB0aGlzLnZhbGlkID09PSBmYWxzZVxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBwcml2YXRlIGdldCB0YWJJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXg7XG4gIH1cblxuICBwcml2YXRlIHNldCB0YWJJbmRleCh2YWx1ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuc2VhcmNoID8gJy0xJyA6IHZhbHVlID09PSBudWxsID8gbnVsbCA6ICcwJztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RhYkluZGV4OiBzdHJpbmcgfCBudWxsID0gJy0xJztcblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZXRGb2N1cygna2V5Ym9hcmQnLCAnb25LZXlVcCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydFbnRlcicsICcgJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpICYmIFt0aGlzLmlucHV0RWxlbWVudD8ubmF0aXZlRWxlbWVudCwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRdLmluY2x1ZGVzKCRldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzKCdrZXlib2FyZCcsICdvbktleVVwJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnVGFiJyAmJiAkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIGlmICghdGhpcy5zZWFyY2gpIHtcbiAgICAgICAgdGhpcy5zZXRGb2N1cygna2V5Ym9hcmQnLCAnb25LZXlVcCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKSBvbktleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICAvLyBhdm9pZCBzZXR0aW5nIGZvY3VzIHRvIG9wdGlvbiB3aGlsZSBvbiBpbnB1dCBlbGVtZW50XG4gICAgaWYgKCRldmVudC50YXJnZXQgPT09IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICB0aGlzLnNldEZvY3VzKCdtb3VzZScsICdvbkNsaWNrJyk7XG4gICAgfSBlbHNlIGlmIChbdGhpcy5kcm9wZG93bi5uYXRpdmVFbGVtZW50XS5pbmNsdWRlcygkZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEZvY3VzKCdtb3VzZScsICdvbkNsaWNrJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZpc2libGVPcHRpb25zID0gMDtcblxuICBzZXQgc2VhcmNoVmFsdWUodmFsdWUpIHtcbiAgICB0aGlzLl9zZWFyY2hWYWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICB0aGlzLnZpc2libGUgPSAhIXRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIHx8IHRoaXMudmlzaWJsZTtcbiAgICB0aGlzLmZpbHRlck9wdGlvbnModGhpcy5zZWFyY2hWYWx1ZSk7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnRTaXplKCk7XG4gIH1cblxuICBnZXQgc2VhcmNoVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIGdldCBzdWJ0cmVlRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3VidHJlZUZvY3VzZWQ7XG4gIH1cblxuICBzZXQgc3VidHJlZUZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZGlzYWJsZWQgPyBmYWxzZSA6IHZhbHVlO1xuICAgIHRoaXMudmlzaWJsZSA9IHZhbHVlID09PSBmYWxzZSA/IGZhbHNlIDogdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG51bGwpO1xuXG4gIHByaXZhdGUgbmF0aXZlU2VsZWN0UmVmITogYW55O1xuXG4gIGZvY3VzT3JpZ2luKG9yaWdpbjogRm9jdXNPcmlnaW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGZvY3VzZWQgPSAhIW9yaWdpbjtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gZm9jdXNlZCA/IHRoaXMuc2VhcmNoVmFsdWUgOiAnJztcbiAgICByZXR1cm4gZm9jdXNlZDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXggPSAnMCc7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm11bHRpc2VsZWN0U3Vic2NyaWJlKGZhbHNlKTtcbiAgICB0aGlzLnNldEZvY3VzTW9uaXRvcihmYWxzZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlcyA9IGNoYW5nZXNbJ3ZhbHVlJ107XG4gICAgICBpZiAodmFsdWVDaGFuZ2VzLmN1cnJlbnRWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jbGVhckFsbE9wdGlvbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmxlbmd0aDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoKTtcblxuICAgIHRoaXMubGlzdEtleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMubXVsdGlTZWxlY3RPcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpLndpdGhUeXBlQWhlYWQoKTtcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoaXRlbSA9PiAoIWl0ZW0udmlzaWJsZSB8fCBpdGVtLmRpc2FibGVkKSk7XG4gICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcblxuICAgIHRoaXMuc2V0Rm9jdXNNb25pdG9yKCF0aGlzLmRpc2FibGVkKTtcbiAgICAvLyBub3QgcmVxdWlyZWQgaGVyZTpcbiAgICAvLyB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVOYXRpdmVTZWxlY3QoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbXVsdGlzZWxlY3RTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcblxuICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5jaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnbXVsdGlTZWxlY3RPcHRpb25zIGNoYW5nZScsIGNoYW5nZSlcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb25zKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFZpc2libGUkLnN1YnNjcmliZSgodmlzaWJsZSkgPT4ge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gdmlzaWJsZTtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmlzaWJsZSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UubXVsdGlTZWxlY3RTdGF0ZSQuc3Vic2NyaWJlKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCA9PT0gdHJ1ZSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLnRvQXJyYXkoKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucy5yZXZlcnNlKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG9wdGlvbikge1xuICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gY2xvc2UgZHJvcGRvd24gZm9yIHNpbmdsZSBzZWxlY3QgKCFtdWx0aXBsZSlcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgICAgdGhpcy5zZXRGb2N1cygncHJvZ3JhbScsICdtdWx0aXNlbGVjdFN1YnNjcmliZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRvZG8/XG4gICAgICAgIC8vIGlmICghIW9wdGlvbikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xuICAgICAgICAvLyB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tdWx0aXNlbGVjdFZpc2libGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RPcHRpb25zKCkge1xuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICBvcHRpb24ub3B0aW9uc1N0eWxlID0gdGhpcy5vcHRpb25zU3R5bGU7XG4gICAgICBvcHRpb24uc2VsZWN0ZWQgPSBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCA/IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSA6ICEhb3B0aW9uLnNlbGVjdGVkO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJBbGxPcHRpb25zKCRldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcbiAgICAgIGlmICghb3B0aW9uLl9kaXNhYmxlZCkgb3B0aW9uLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICB0aGlzLnNldEZvY3VzKCdwcm9ncmFtJywgJ2NsZWFyQWxsT3B0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbE9wdGlvbnMoKSB7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCFvcHRpb24uZGlzYWJsZWQgJiYgb3B0aW9uLnZpc2libGUpIG9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgfVxuXG4gIGhhbmRsZVRhZ1JlbW92ZSgkZXZlbnQ6IElPcHRpb24pIHtcbiAgICB0aGlzLnNldEZvY3VzKCdwcm9ncmFtJywgJ2hhbmRsZVRhZ1JlbW92ZScpO1xuICB9XG5cbiAgc2V0Rm9jdXMob3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJywgbWV0aG9kTmFtZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaW5wdXRFbGVtZW50ID8/IHRoaXMuZWxlbWVudFJlZjtcbiAgICBjb25zdCBwcmV2ZW50U2Nyb2xsID0gb3JpZ2luID09PSAncHJvZ3JhbSc7XG4gICAgdGhpcy5mb2N1c01vbml0b3I/LmZvY3VzVmlhKGVsZW1lbnQsIG9yaWdpbiwgeyBwcmV2ZW50U2Nyb2xsOiBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCdzZXRGb2N1cycsIG9yaWdpbiwgbWV0aG9kTmFtZSwgJ3ByZXZlbnRTY3JvbGw6JywgcHJldmVudFNjcm9sbCApO1xuICB9XG5cbiAgZmlsdGVyT3B0aW9ucyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gdmFsdWUudG9Mb3dlckNhc2UoKSA/PyAnJztcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGlmICghIXNlYXJjaFN0cmluZykge1xuICAgICAgICBpdGVtLnZpc2libGUgPSBpdGVtLmxhYmVsPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykgPz8gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0udmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmlzaWJsZSkubGVuZ3RoO1xuICB9XG5cbiAgY3JlYXRlTmF0aXZlU2VsZWN0KCkge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCk7XG4gICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcbiAgfVxuXG4gIHVwZGF0ZU5hdGl2ZVNlbGVjdCgpIHtcbiAgICBpZiAoIXRoaXMubmF0aXZlU2VsZWN0UmVmKSByZXR1cm47XG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgeyBzZWxlY3RlZCwgdmFsdWUsIGxhYmVsIH0gPSBpdGVtO1xuICAgICAgcmV0dXJuIHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UubXVsdGlwbGUgPSB0aGlzLm11bHRpcGxlO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm5hbWUgPSB0aGlzLm5hdGl2ZU5hbWU7XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuZm9ybSA9IHRoaXMubmF0aXZlSWQ7XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2Uub3B0aW9ucyA9IFsuLi5vcHRpb25zXTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpbnB1dEVsZW1lbnRTaXplKCkge1xuICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDAgfHwgdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnY291bnRlcicpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NpemUnLCAodGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggKyAyKS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzaXplJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlU2VhcmNoS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBpZiAoWydCYWNrc3BhY2UnLCAnRGVsZXRlJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkpIHtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+ICFvcHRpb24uZGlzYWJsZWQpLnBvcCgpO1xuICAgICAgdGhpcy5zZWxlY3RPcHRpb24obGFzdCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0T3B0aW9uKG9wdGlvbjogTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgb3B0aW9uLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZmlsdGVyKChvcHRpb24pID0+ICEhb3B0aW9uLnNlbGVjdGVkKTtcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50U2l6ZSgpO1xuICAgICAgdGhpcy51cGRhdGVOYXRpdmVTZWxlY3QoKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzTW9uaXRvcihtb25pdG9yOiBib29sZWFuKSB7XG4gICAgaWYgKG1vbml0b3IgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uID0gdGhpcy5mb2N1c01vbml0b3I/Lm1vbml0b3IodGhpcy5lbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uJywgdGhpcy5lbGVtZW50UmVmLCBvcmlnaW4pO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3VidHJlZUZvY3VzZWQgPSB0aGlzLmZvY3VzT3JpZ2luKG9yaWdpbik7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZj8ubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yPy5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgdGhpcy5mb2N1c01vbml0b3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yy1kcm9wZG93biAjZHJvcGRvd249XCJjRHJvcGRvd25cIiBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiIGNsYXNzPVwicGlja2VyXCIgW25nQ2xhc3NdPVwibXVsdGlzZWxlY3RDbGFzc2VzXCJcbiAgICAgICAgICAgIFsodmlzaWJsZSldPVwidmlzaWJsZVwiIFtwb3BwZXJPcHRpb25zXT1cInBvcHBlcmpzT3B0aW9uc1wiPlxuICA8ZGl2IFtjYXJldF09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNEcm9wZG93blRvZ2dsZSAjZHJvcGRvd25Ub2dnbGU9XCJjRHJvcGRvd25Ub2dnbGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3RhZ3MnXCI+XG4gICAgICAgIDxjLW11bHRpLXNlbGVjdC10YWcgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnM7IGluZGV4IGFzIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmUpPVwiaGFuZGxlVGFnUmVtb3ZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25dPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDwvYy1tdWx0aS1zZWxlY3QtdGFnPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3Rpb25UeXBlID09PSAndGV4dCcgJiYgISFzZWxlY3RlZE9wdGlvbnNUZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VhcmNoXCI+e3sgc2VsZWN0ZWRPcHRpb25zVGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlclRleHRUeXBlID09PSAnc3RyaW5nJzsgZWxzZSBwbHVyYWxNYXBcIj57eyBjb3VudGVyVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwbHVyYWxNYXA+XG4gICAgICAgICAgPHNwYW4+e3tzZWxlY3RlZE9wdGlvbnMubGVuZ3RofX0ge3sgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCB8IGkxOG5QbHVyYWw6IHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB7IG90aGVyOiBjb3VudGVyVGV4dCB9IH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwhLS0gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaCAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwICYmIHNlbGVjdGlvblR5cGUgIT09ICdjb3VudGVyJ1wiPi0tPlxuICAgICAgPCEtLSAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWFyY2hcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj4tLT5cbiAgICAgIDwhLS0gICAgICA8L25nLXRlbXBsYXRlPi0tPlxuICAgIDwvZGl2PlxuXG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRFbGVtZW50XG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVTZWFyY2hLZXlEb3duKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIXNlYXJjaFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdmb3JtLW11bHRpLXNlbGVjdC1zZWFyY2gnOiB0cnVlLCBkaXNhYmxlZDogKGRpc2FibGVkIHx8ICFzZWFyY2gpIH1cIlxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcicgPyBwbGFjZWhvbGRlciA6IG51bGxcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIHRhYmluZGV4PVwie3sgZGlzYWJsZWQgPyAnLTEnIDogJzAnIH19XCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICA+XG5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwiY2xlYXJBbGxPcHRpb25zKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjbGVhbmVyICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwICYmICFkaXNhYmxlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgIWlzRHJvcGRvd25WaXNpYmxlXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBhbGxcIlxuICAgICAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb24tY2xlYW5lclwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJcIiBjRHJvcGRvd25NZW51ICNkcm9wZG93bk1lbnU9XCJjRHJvcGRvd25NZW51XCIgW3Zpc2libGVdPVwiZHJvcGRvd24udmlzaWJsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZkVsc2VdPVwib3B0aW9uc0VtcHR5XCIgW25nSWZdPVwidmlzaWJsZU9wdGlvbnMgPiAwXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJzZWxlY3RBbGxPcHRpb25zKClcIiAqbmdJZj1cInNlbGVjdEFsbCAmJiBtdWx0aXBsZVwiIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3QtYWxsXCI+XG4gICAgICAgIHt7IHNlbGVjdEFsbExhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgI211bHRpc2VsZWN0T3B0aW9uc0RpdlxuICAgICAgICAgICBbbmdTdHlsZV09XCJvcHRpb25zTWF4SGVpZ2h0ICE9PSAnYXV0bycgPyB7ICdtYXhIZWlnaHQucHgnOiBvcHRpb25zTWF4SGVpZ2h0LCBvdmVyZmxvdzogJ3Njcm9sbCcgfSA6IHt9XCJcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1vcHRpb25zXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI29wdGlvbnNFbXB0eT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLW11bHRpLXNlbGVjdC1vcHRpb25zLWVtcHR5XCI+e3sgc2VhcmNoTm9SZXN1bHRzTGFiZWwgfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvYy1kcm9wZG93bj5cbiJdfQ==
541
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFPTCxNQUFNLEVBSU4sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUE2QixNQUFNLG1CQUFtQixDQUFDO0FBQy9FLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXRGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUN0SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7QUFNekYsYUFBYTtBQUNiLE1B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QUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUV4QixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU87Z0JBb0JSLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsZUFBZTtnQkFhTyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QkksU0FBUztzQkFBN0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT0EsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIEl0ZXJhYmxlRGlmZmVyLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1vZGlmaWVyLCBNb2RpZmllckFyZ3VtZW50cywgT3B0aW9ucyB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlJztcblxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQsIERyb3Bkb3duTW9kdWxlLCBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duJztcbmltcG9ydCB7IElNdWx0aVNlbGVjdCwgSU9wdGlvbiB9IGZyb20gJy4uL211bHRpLXNlbGVjdC50eXBlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0U2VydmljZSB9IGZyb20gJy4uL211bHRpLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0L211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdFRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlbGVjdC10YWcvbXVsdGktc2VsZWN0LXRhZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgSVBsdXJhbE1hcCB7XG4gIFtrOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBvYnNlcnZlUmVmZXJlbmNlTW9kaWZpZXI6IE1vZGlmaWVyPHN0cmluZywgYW55PiA9IHtcbiAgbmFtZTogJ29ic2VydmVSZWZlcmVuY2VNb2RpZmllcicsIGVuYWJsZWQ6IHRydWUsIHBoYXNlOiAnbWFpbicsIGZuKHsgc3RhdGUgfSkge30sXG5cbiAgZWZmZWN0OiAoeyBzdGF0ZSwgaW5zdGFuY2UgfTogTW9kaWZpZXJBcmd1bWVudHM8T3B0aW9ucz4pID0+IHtcbiAgICBjb25zdCBST19QUk9QID0gJ19fcG9wcGVyanNST19fJztcbiAgICBjb25zdCB7IHJlZmVyZW5jZSB9ID0gc3RhdGUuZWxlbWVudHM7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmVmZXJlbmNlW1JPX1BST1BdID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICBpbnN0YW5jZS51cGRhdGUoKTtcbiAgICB9KTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZWZlcmVuY2VbUk9fUFJPUF0ub2JzZXJ2ZShyZWZlcmVuY2UpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZWZlcmVuY2VbUk9fUFJPUF0uZGlzY29ubmVjdCgpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZGVsZXRlIHJlZmVyZW5jZVtST19QUk9QXTtcbiAgICB9O1xuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjTXVsdGlTZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEcm9wZG93bk1vZHVsZSwgRm9ybXNNb2R1bGUsIE11bHRpU2VsZWN0VGFnQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTXVsdGlTZWxlY3RTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgSU11bHRpU2VsZWN0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgbXVsdGlTZWxlY3RTZXJ2aWNlOiBNdWx0aVNlbGVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVyc1xuICApIHtcbiAgICB0aGlzLmRpZmZlciA9IHRoaXMuaXRlcmFibGVEaWZmZXJzLmZpbmQodGhpcy5fdmFsdWUpLmNyZWF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaWZmZXIhOiBJdGVyYWJsZURpZmZlcjxhbnk+O1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aXBsZTogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBvbkNoYW5nZTogYW55ID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IChzdHJpbmcgfCBzdHJpbmdbXSkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIEBJbnB1dCgpIGNsZWFuZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9kaXNhYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgIHRoaXMuc2V0Rm9jdXNNb25pdG9yKCF2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IG11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZTtcbiAgfVxuXG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbmF0aXZlTmFtZSA9ICcnO1xuICBASW5wdXQoKSBuYXRpdmVJZCA9ICcnO1xuICBASW5wdXQoKSBvcHRpb25zTWF4SGVpZ2h0ID0gJ2F1dG8nO1xuICBASW5wdXQoKSBvcHRpb25zU3R5bGU6ICdjaGVja2JveCcgfCAndGV4dCcgPSAnY2hlY2tib3gnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdTZWxlY3QuLi4nO1xuICBASW5wdXQoKSBzZWFyY2ggPSB0cnVlO1xuICBASW5wdXQoKSBzZWFyY2hOb1Jlc3VsdHNMYWJlbCA9ICdubyBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdEFsbCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdEFsbExhYmVsID0gJ1NlbGVjdCBhbGwgb3B0aW9ucyc7XG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGU6ICdjb3VudGVyJyB8ICd0YWdzJyB8ICd0ZXh0JyA9ICd0YWdzJztcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0OiBzdHJpbmcgPSAnaXRlbShzKSBzZWxlY3RlZCc7XG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcD86IElQbHVyYWxNYXAgPSB7ICc9MSc6ICdpdGVtIHNlbGVjdGVkJywgJ290aGVyJzogJ2l0ZW1zIHNlbGVjdGVkJyB9O1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwgb3IgbGFyZ2UuXG4gICAqIEB0eXBlICdzbScgfCAnbGcnIHwgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZyc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgb2YgbXVsdGktc2VsZWN0XG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IFsuLi52YWx1ZV0gOiBbdmFsdWUgPz8gJyddO1xuICAgIGlmICh0aGlzLmRpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZGlmZmVyLmRpZmYobmV3VmFsdWUpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucygpO1xuICAgICAgICAvLyBub3QgcmVxdWlyZWQgaGVyZTpcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSA/IFsuLi50aGlzLl92YWx1ZV0gOiB0aGlzLl92YWx1ZVswXT8udG9TdHJpbmcoKSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmdbXSA9IFsnJ107XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBzdHJpbmdbXT4oKTtcblxuICAvKipcbiAgICogVG9nZ2xlIHZpc3VhbCB2YWxpZGF0aW9uIGZlZWRiYWNrLlxuICAgKiBAdHlwZSBib29sZWFuIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgdmFsaWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGRyb3Bkb3duIHNlbGVjdCBjb21wb25lbnQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fdmlzaWJsZSkge1xuICAgICAgdGhpcy5fdmlzaWJsZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlcnZpY2UudG9nZ2xlVmlzaWJsZShuZXdWYWx1ZSk7XG4gICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgdGhpcy5saXN0S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcG9wcGVyIE9wdGlvbnMgb2JqZWN0XG4gICAqIEB0eXBlIFBhcnRpYWw8T3B0aW9ucz5cbiAgICovXG4gIEBJbnB1dCgncG9wcGVyT3B0aW9ucycpIHBvcHBlcmpzT3B0aW9uczogUGFydGlhbDxPcHRpb25zPiA9IHtcbiAgICBzdHJhdGVneTogJ2ZpeGVkJywgbW9kaWZpZXJzOiBbb2JzZXJ2ZVJlZmVyZW5jZU1vZGlmaWVyLCB7XG4gICAgICBuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczoge1xuICAgICAgICBvZmZzZXQ6IFswLCB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd0YWdzJyA/IDggOiAxMF1cbiAgICAgIH1cbiAgICB9XVxuICB9O1xuXG4gIGlzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG5cbiAgc2V0IHNlbGVjdGVkT3B0aW9ucyh2YWx1ZSkge1xuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucyA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdGVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBnZXQgc2VsZWN0ZWRPcHRpb25zVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5sYWJlbCkuam9pbignLCAnKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyVGV4dCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RofSAke3RoaXMuc2VsZWN0aW9uVHlwZUNvdW50ZXJUZXh0fWA7XG4gIH1cblxuICBnZXQgY291bnRlclRleHRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnNlbGVjdGlvblR5cGVDb3VudGVyVGV4dFBsdXJhbE1hcCA/PyB0eXBlb2YgdGhpcy5zZWxlY3Rpb25UeXBlQ291bnRlclRleHQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgbXVsdGlTZWxlY3RPcHRpb25zITogUXVlcnlMaXN0PE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGxpc3RLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bk1lbnUnKSBkcm9wZG93bk1lbnUhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlKSBkcm9wZG93blRvZ2dsZSE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25Db21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgZ2V0IG11bHRpc2VsZWN0Q2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0JzogdHJ1ZSxcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdC1zZWxlY3Rpb24tdGFncyc6IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3RhZ3MnICYmIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDAsXG4gICAgICBbYGZvcm0tbXVsdGktc2VsZWN0LSR7dGhpcy5zaXplfWBdOiAhIXRoaXMuc2l6ZSxcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdC13aXRoLWNsZWFuZXInOiB0aGlzLmNsZWFuZXIsXG4gICAgICBzaG93OiB0aGlzLnZpc2libGUsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICdpcy12YWxpZCc6IHRoaXMudmFsaWQgPT09IHRydWUsXG4gICAgICAnaXMtaW52YWxpZCc6IHRoaXMudmFsaWQgPT09IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHByaXZhdGUgZ2V0IHRhYkluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl90YWJJbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IHRhYkluZGV4KHZhbHVlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl90YWJJbmRleCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5zZWFyY2ggPyAnLTEnIDogdmFsdWUgPT09IG51bGwgPyBudWxsIDogJzAnO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IHN0cmluZyB8IG51bGwgPSAnLTEnO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSkgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICB0aGlzLnNldEZvY3VzKCdrZXlib2FyZCcsICdvbktleVVwJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChbJ0VudGVyJywgJyAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmtleSkgJiYgW3RoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudF0uaW5jbHVkZXMoJGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoKSB7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXMoJ2tleWJvYXJkJywgJ29uS2V5VXAnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdUYWInICYmICRldmVudC50YXJnZXQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnNldEZvY3VzKCdrZXlib2FyZCcsICdvbktleVVwJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIC8vIGF2b2lkIHNldHRpbmcgZm9jdXMgdG8gb3B0aW9uIHdoaWxlIG9uIGlucHV0IGVsZW1lbnRcbiAgICBpZiAoJGV2ZW50LnRhcmdldCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgIHRoaXMubGlzdEtleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0Rm9jdXMoJ21vdXNlJywgJ29uQ2xpY2snKTtcbiAgICB9IGVsc2UgaWYgKFt0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnRdLmluY2x1ZGVzKCRldmVudC50YXJnZXQpKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0Rm9jdXMoJ21vdXNlJywgJ29uQ2xpY2snKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmlzaWJsZU9wdGlvbnMgPSAwO1xuXG4gIHNldCBzZWFyY2hWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3NlYXJjaFZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgIHRoaXMudmlzaWJsZSA9ICEhdGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggfHwgdGhpcy52aXNpYmxlO1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcbiAgfVxuXG4gIGdldCBzZWFyY2hWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9zZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgZ2V0IHN1YnRyZWVGb2N1c2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdWJ0cmVlRm9jdXNlZDtcbiAgfVxuXG4gIHNldCBzdWJ0cmVlRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3N1YnRyZWVGb2N1c2VkID0gdGhpcy5kaXNhYmxlZCA/IGZhbHNlIDogdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlID0gdmFsdWUgPT09IGZhbHNlID8gZmFsc2UgOiB0aGlzLnZpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF9zdWJ0cmVlRm9jdXNlZCA9IHRoaXMuZm9jdXNPcmlnaW4obnVsbCk7XG5cbiAgcHJpdmF0ZSBuYXRpdmVTZWxlY3RSZWYhOiBhbnk7XG5cbiAgZm9jdXNPcmlnaW4ob3JpZ2luOiBGb2N1c09yaWdpbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBmb2N1c2VkID8gdGhpcy5zZWFyY2hWYWx1ZSA6ICcnO1xuICAgIHJldHVybiBmb2N1c2VkO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJJbmRleCA9ICcwJztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubXVsdGlzZWxlY3RTdWJzY3JpYmUoZmFsc2UpO1xuICAgIHRoaXMuc2V0Rm9jdXNNb25pdG9yKGZhbHNlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSkge1xuICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gY2hhbmdlc1sndmFsdWUnXTtcbiAgICAgIGlmICh2YWx1ZUNoYW5nZXMuY3VycmVudFZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmNsZWFyQWxsT3B0aW9ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb25zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGVPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zKCk7XG4gICAgdGhpcy5tdWx0aXNlbGVjdFN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5saXN0S2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkud2l0aFR5cGVBaGVhZCgpO1xuICAgIHRoaXMubGlzdEtleU1hbmFnZXIuc2tpcFByZWRpY2F0ZShpdGVtID0+ICghaXRlbS52aXNpYmxlIHx8IGl0ZW0uZGlzYWJsZWQpKTtcbiAgICB0aGlzLmxpc3RLZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuXG4gICAgdGhpcy5zZXRGb2N1c01vbml0b3IoIXRoaXMuZGlzYWJsZWQpO1xuICAgIC8vIG5vdCByZXF1aXJlZCBoZXJlOlxuICAgIC8vIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZU5hdGl2ZVNlbGVjdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aXNlbGVjdFN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuXG4gICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9uc1N1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdtdWx0aVNlbGVjdE9wdGlvbnMgY2hhbmdlJywgY2hhbmdlKVxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm11bHRpc2VsZWN0VmlzaWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMubXVsdGlTZWxlY3RTZXJ2aWNlLm11bHRpU2VsZWN0VmlzaWJsZSQuc3Vic2NyaWJlKCh2aXNpYmxlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlICE9PSB2aXNpYmxlKSB7XG4gICAgICAgICAgdGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmlzaWJsZSk7XG4gICAgICAgICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEZvY3VzKCdwcm9ncmFtJywgJ211bHRpU2VsZWN0VmlzaWJsZSQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLm11bHRpU2VsZWN0U2VydmljZS5tdWx0aVNlbGVjdFN0YXRlJC5zdWJzY3JpYmUoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkID09PSB0cnVlICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMudG9BcnJheSgpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCk7XG4gICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLnJldmVyc2UoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSAhPT0gb3B0aW9uKSB7XG4gICAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyBjbG9zZSBkcm9wZG93biBmb3Igc2luZ2xlIHNlbGVjdCAoIW11bHRpcGxlKVxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICAvLyB0b2RvP1xuICAgICAgICAvLyBpZiAoISFvcHRpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNVcGRhdGUoKTtcbiAgICAgICAgLy8gfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubXVsdGlzZWxlY3RWaXNpYmxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm11bHRpc2VsZWN0U3RhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3B0aW9ucygpIHtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgb3B0aW9uLm9wdGlvbnNTdHlsZSA9IHRoaXMub3B0aW9uc1N0eWxlO1xuICAgICAgb3B0aW9uLnNlbGVjdGVkID0gb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkgOiAhIW9wdGlvbi5zZWxlY3RlZDtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyQWxsT3B0aW9ucygkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbi5fZGlzYWJsZWQpIG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XG4gICAgaWYgKCRldmVudCkge1xuICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5zZXRGb2N1cygncHJvZ3JhbScsICdjbGVhckFsbE9wdGlvbnMnKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKCkge1xuICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgIGlmICghb3B0aW9uLmRpc2FibGVkICYmIG9wdGlvbi52aXNpYmxlKSBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XG4gIH1cblxuICBoYW5kbGVUYWdSZW1vdmUoJGV2ZW50OiBJT3B0aW9uKSB7XG4gICAgdGhpcy5zZXRGb2N1cygncHJvZ3JhbScsICdoYW5kbGVUYWdSZW1vdmUnKTtcbiAgfVxuXG4gIHNldEZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScsIG1ldGhvZE5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmlucHV0RWxlbWVudCA/PyB0aGlzLmVsZW1lbnRSZWY7XG4gICAgY29uc3QgcHJldmVudFNjcm9sbCA9IG9yaWdpbiA9PT0gJ3Byb2dyYW0nO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yPy5mb2N1c1ZpYShlbGVtZW50LCBvcmlnaW4sIHsgcHJldmVudFNjcm9sbDogcHJldmVudFNjcm9sbCB9KTtcbiAgICAvLyBjb25zb2xlLmxvZygnc2V0Rm9jdXMnLCBvcmlnaW4sIG1ldGhvZE5hbWUsICdwcmV2ZW50U2Nyb2xsOicsIHByZXZlbnRTY3JvbGwgKTtcbiAgfVxuXG4gIGZpbHRlck9wdGlvbnModmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IHNlYXJjaFN0cmluZyA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPz8gJyc7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAoISFzZWFyY2hTdHJpbmcpIHtcbiAgICAgICAgaXRlbS52aXNpYmxlID0gaXRlbS5sYWJlbD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpID8/IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLnZpc2libGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZpc2libGUpLmxlbmd0aDtcbiAgfVxuXG4gIGNyZWF0ZU5hdGl2ZVNlbGVjdCgpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoTXVsdGlTZWxlY3ROYXRpdmVTZWxlY3RDb21wb25lbnQpO1xuICAgIHRoaXMudXBkYXRlTmF0aXZlU2VsZWN0KCk7XG4gIH1cblxuICB1cGRhdGVOYXRpdmVTZWxlY3QoKSB7XG4gICAgaWYgKCF0aGlzLm5hdGl2ZVNlbGVjdFJlZikgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChpdGVtID0+IHtcbiAgICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHZhbHVlLCBsYWJlbCB9ID0gaXRlbTtcbiAgICAgIHJldHVybiB7IHNlbGVjdGVkLCB2YWx1ZSwgbGFiZWwgfTtcbiAgICB9KTtcblxuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcbiAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5pbnN0YW5jZS5uYW1lID0gdGhpcy5uYXRpdmVOYW1lO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLm5hdGl2ZUlkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLm9wdGlvbnMgPSBbLi4ub3B0aW9uc107XG4gICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuaW5zdGFuY2UuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgIHRoaXMubmF0aXZlU2VsZWN0UmVmLmluc3RhbmNlLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaW5wdXRFbGVtZW50U2l6ZSgpIHtcbiAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwIHx8IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ2NvdW50ZXInKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzaXplJywgKHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoICsgMikudG9TdHJpbmcoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2l6ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNlYXJjaEtleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUubGVuZ3RoIHx8IHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgaWYgKFsnQmFja3NwYWNlJywgJ0RlbGV0ZSddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBjb25zdCBsYXN0ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiAhb3B0aW9uLmRpc2FibGVkKS5wb3AoKTtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKGxhc3QsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE9wdGlvbihvcHRpb246IE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zVXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9uc1VwZGF0ZSgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PiAhIW9wdGlvbi5zZWxlY3RlZCk7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudFNpemUoKTtcbiAgICAgIHRoaXMudXBkYXRlTmF0aXZlU2VsZWN0KCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2N1c01vbml0b3IobW9uaXRvcjogYm9vbGVhbikge1xuICAgIGlmIChtb25pdG9yICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbiA9IHRoaXMuZm9jdXNNb25pdG9yPy5tb25pdG9yKHRoaXMuZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKChvcmlnaW4pID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2ZvY3VzTW9uaXRvclN1YnNjcmlwdGlvbicsIHRoaXMuZWxlbWVudFJlZiwgb3JpZ2luKTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN1YnRyZWVGb2N1c2VkID0gdGhpcy5mb2N1c09yaWdpbihvcmlnaW4pO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY/Lm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvcj8uc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKTtcbiAgICAgIHRoaXMuZm9jdXNNb25pdG9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGMtZHJvcGRvd24gI2Ryb3Bkb3duPVwiY0Ryb3Bkb3duXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIiBjbGFzcz1cInBpY2tlclwiIFtuZ0NsYXNzXT1cIm11bHRpc2VsZWN0Q2xhc3Nlc1wiXG4gICAgICAgICAgICBbKHZpc2libGUpXT1cInZpc2libGVcIiBbcG9wcGVyT3B0aW9uc109XCJwb3BwZXJqc09wdGlvbnNcIj5cbiAgPGRpdiBbY2FyZXRdPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjRHJvcGRvd25Ub2dnbGUgI2Ryb3Bkb3duVG9nZ2xlPVwiY0Ryb3Bkb3duVG9nZ2xlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LXNlbGVjdGlvblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICd0YWdzJ1wiPlxuICAgICAgICA8Yy1tdWx0aS1zZWxlY3QtdGFnICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cImhhbmRsZVRhZ1JlbW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICA8L2MtbXVsdGktc2VsZWN0LXRhZz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3RleHQnICYmICEhc2VsZWN0ZWRPcHRpb25zVGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LXNlYXJjaFwiPnt7IHNlbGVjdGVkT3B0aW9uc1RleHQgfX08L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGlvblR5cGUgPT09ICdjb3VudGVyJ1wiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXJUZXh0VHlwZSA9PT0gJ3N0cmluZyc7IGVsc2UgcGx1cmFsTWFwXCI+e3sgY291bnRlclRleHQgfX08L3NwYW4+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcGx1cmFsTWFwPlxuICAgICAgICAgIDxzcGFuPnt7c2VsZWN0ZWRPcHRpb25zLmxlbmd0aH19IHt7IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggfCBpMThuUGx1cmFsOiBzZWxlY3Rpb25UeXBlQ291bnRlclRleHRQbHVyYWxNYXAgPz8geyBvdGhlcjogY291bnRlclRleHQgfSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8IS0tICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFzZWFyY2ggJiYgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCAmJiBzZWxlY3Rpb25UeXBlICE9PSAnY291bnRlcidcIj4tLT5cbiAgICAgIDwhLS0gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VhcmNoXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+LS0+XG4gICAgICA8IS0tICAgICAgPC9uZy10ZW1wbGF0ZT4tLT5cbiAgICA8L2Rpdj5cblxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0RWxlbWVudFxuICAgICAgKGtleWRvd24pPVwiaGFuZGxlU2VhcmNoS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZWFyY2hcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnZm9ybS1tdWx0aS1zZWxlY3Qtc2VhcmNoJzogdHJ1ZSwgZGlzYWJsZWQ6IChkaXNhYmxlZCB8fCAhc2VhcmNoKSB9XCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDAgJiYgc2VsZWN0aW9uVHlwZSAhPT0gJ2NvdW50ZXInID8gcGxhY2Vob2xkZXIgOiBudWxsXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICB0YWJpbmRleD1cInt7IGRpc2FibGVkID8gJy0xJyA6ICcwJyB9fVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgPlxuXG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImNsZWFyQWxsT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiY2xlYW5lciAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMCAmJiAhZGlzYWJsZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFpc0Ryb3Bkb3duVmlzaWJsZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgYWxsXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLWNsZWFuZXJcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwiXCIgY0Ryb3Bkb3duTWVudSAjZHJvcGRvd25NZW51PVwiY0Ryb3Bkb3duTWVudVwiIFt2aXNpYmxlXT1cImRyb3Bkb3duLnZpc2libGVcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZFbHNlXT1cIm9wdGlvbnNFbXB0eVwiIFtuZ0lmXT1cInZpc2libGVPcHRpb25zID4gMFwiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0QWxsT3B0aW9ucygpXCIgKm5nSWY9XCJzZWxlY3RBbGwgJiYgbXVsdGlwbGVcIiBjbGFzcz1cImZvcm0tbXVsdGktc2VsZWN0LWFsbFwiPlxuICAgICAgICB7eyBzZWxlY3RBbGxMYWJlbCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2ICNtdWx0aXNlbGVjdE9wdGlvbnNEaXZcbiAgICAgICAgICAgW25nU3R5bGVdPVwib3B0aW9uc01heEhlaWdodCAhPT0gJ2F1dG8nID8geyAnbWF4SGVpZ2h0LnB4Jzogb3B0aW9uc01heEhlaWdodCwgb3ZlcmZsb3c6ICdzY3JvbGwnIH0gOiB7fVwiXG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9uc1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNvcHRpb25zRW1wdHk+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucy1lbXB0eVwiPnt7IHNlYXJjaE5vUmVzdWx0c0xhYmVsIH19PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2MtZHJvcGRvd24+XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/forms";
5
5
  export class MultiSelectNativeSelectComponent {
6
6
  constructor(changeDetectorRef) {
7
7
  this.changeDetectorRef = changeDetectorRef;
@@ -9,11 +9,11 @@ export class MultiSelectNativeSelectComponent {
9
9
  this.id = '';
10
10
  }
11
11
  }
12
- MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13
- MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: MultiSelectNativeSelectComponent, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options", disabled: "disabled" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
12
+ MultiSelectNativeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectNativeSelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13
+ MultiSelectNativeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: MultiSelectNativeSelectComponent, isStandalone: true, selector: "c-multi-select-native-select", inputs: { form: "form", id: "id", multiple: "multiple", name: "name", options: "options", disabled: "disabled" }, ngImport: i0, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectNativeSelectComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"] }]
16
+ args: [{ selector: 'c-multi-select-native-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<select [multiple]=\"multiple\" [name]=\"name\" style=\"display: none\" tabindex=\"-1\" [id]=\"id\" [disabled]=\"disabled\">\n <option\n *ngFor=\"let option of options\"\n [label]=\"option.label\"\n [attr.selected]=\"option.selected ? '' : null\"\n [value]=\"option.value\"\n [disabled]=\"disabled\"\n tabindex=\"-1\"\n ></option>\n</select>\n\n", styles: [":host{display:none}\n"] }]
17
17
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
18
18
  type: Input
19
19
  }], id: [{
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
27
27
  }], disabled: [{
28
28
  type: Input
29
29
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msc0xDUjdDLCtXQVdBOzJGREhhLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDRSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU07d0dBSXRDLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0TmF0aXZlU2VsZWN0Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBmb3JtPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9ucz86IGFueTtcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7IH1cbn1cbiIsIjxzZWxlY3QgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW25hbWVdPVwibmFtZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHRhYmluZGV4PVwiLTFcIiBbaWRdPVwiaWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG9wdGlvblxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgW2xhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgW2F0dHIuc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkID8gJycgOiBudWxsXCJcbiAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICA+PC9vcHRpb24+XG48L3NlbGVjdD5cblxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVS9DLE1BQU0sT0FBTyxnQ0FBZ0M7SUFTM0MsWUFDUyxpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJwQyxTQUFJLEdBQVksRUFBRSxDQUFDO1FBQ25CLE9BQUUsR0FBWSxFQUFFLENBQUM7SUFRdEIsQ0FBQzs7NkhBWE0sZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsME1DWDdDLCtXQVdBLDhFREZZLFlBQVk7MkZBRVgsZ0NBQWdDO2tCQVI1QyxTQUFTOytCQUNFLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7d0dBSWQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1uYXRpdmUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdE5hdGl2ZVNlbGVjdENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgZm9ybT86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpZD86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtdWx0aXBsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG59XG4iLCI8c2VsZWN0IFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFtuYW1lXT1cIm5hbWVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0YWJpbmRleD1cIi0xXCIgW2lkXT1cImlkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxvcHRpb25cbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgIFtsYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgIFthdHRyLnNlbGVjdGVkXT1cIm9wdGlvbi5zZWxlY3RlZCA/ICcnIDogbnVsbFwiXG4gICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgPjwvb3B0aW9uPlxuPC9zZWxlY3Q+XG5cbiJdfQ==
@@ -1,20 +1,19 @@
1
1
  import { Component, HostBinding } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class MultiSelectOptgroupLabelComponent {
4
- constructor() { }
5
4
  get hostClasses() {
6
5
  return {
7
6
  'form-multi-select-optgroup-label': true
8
7
  };
9
8
  }
10
9
  }
11
- MultiSelectOptgroupLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectOptgroupLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- MultiSelectOptgroupLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectOptgroupLabelComponent, decorators: [{
10
+ MultiSelectOptgroupLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ MultiSelectOptgroupLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: MultiSelectOptgroupLabelComponent, isStandalone: true, selector: "c-multi-select-optgroup-label", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectOptgroupLabelComponent, decorators: [{
14
13
  type: Component,
15
- args: [{ selector: 'c-multi-select-optgroup-label', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
16
- }], ctorParameters: function () { return []; }, propDecorators: { hostClasses: [{
14
+ args: [{ selector: 'c-multi-select-optgroup-label', template: `<ng-content></ng-content>`, standalone: true, styles: [":host{display:block}\n"] }]
15
+ }], propDecorators: { hostClasses: [{
17
16
  type: HostBinding,
18
17
  args: ['class']
19
18
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGdyb3VwL211bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGlDQUFpQztJQUU1QyxnQkFBZ0IsQ0FBQztJQUVqQixJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCxrQ0FBa0MsRUFBRSxJQUFJO1NBQ3pDLENBQUM7SUFDSixDQUFDOzs4SEFSVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw0SENQOUMsNkJBQ0E7MkZETWEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLCtCQUErQjswRUFRZixXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0T3B0Z3JvdXBMYWJlbENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwnOiB0cnVlXG4gICAgfTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVF2RCxNQUFNLE9BQU8saUNBQWlDO0lBRTVDLElBQTBCLFdBQVc7UUFDbkMsT0FBTztZQUNMLGtDQUFrQyxFQUFFLElBQUk7U0FDekMsQ0FBQztJQUNKLENBQUM7OzhIQU5VLGlDQUFpQztrSEFBakMsaUNBQWlDLGdKQUpsQywyQkFBMkI7MkZBSTFCLGlDQUFpQztrQkFON0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsMkJBQTJCLGNBRXpCLElBQUk7OEJBSVUsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW11bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1vcHRncm91cC1sYWJlbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0T3B0Z3JvdXBMYWJlbENvbXBvbmVudCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBob3N0Q2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2Zvcm0tbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsJzogdHJ1ZVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,10 @@
1
1
  import { Component, ContentChildren, HostBinding, Input } from '@angular/core';
2
- import { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';
2
+ import { CommonModule } from '@angular/common';
3
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { MultiSelectOptionComponent } from '../multi-select-option/multi-select-option.component';
5
+ import { MultiSelectOptgroupLabelComponent } from './multi-select-optgroup-label.component';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@angular/common";
6
- import * as i2 from "./multi-select-optgroup-label.component";
7
8
  export class MultiSelectOptgroupComponent {
8
9
  constructor() {
9
10
  this._disabled = false;
@@ -33,11 +34,11 @@ export class MultiSelectOptgroupComponent {
33
34
  });
34
35
  }
35
36
  }
36
- MultiSelectOptgroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectOptgroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- MultiSelectOptgroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: MultiSelectOptgroupComponent, selector: "c-multi-select-optgroup", inputs: { label: "label", disabled: "disabled" }, host: { properties: { "class": "this.hostClasses" } }, queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiSelectOptgroupComponent, decorators: [{
37
+ MultiSelectOptgroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectOptgroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ MultiSelectOptgroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: MultiSelectOptgroupComponent, isStandalone: true, selector: "c-multi-select-optgroup", inputs: { label: "label", disabled: "disabled" }, host: { properties: { "class": "this.hostClasses" } }, queries: [{ propertyName: "multiSelectOptions", predicate: MultiSelectOptionComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MultiSelectOptgroupLabelComponent, selector: "c-multi-select-optgroup-label" }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: MultiSelectOptgroupComponent, decorators: [{
39
40
  type: Component,
40
- args: [{ selector: 'c-multi-select-optgroup', template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
41
+ args: [{ selector: 'c-multi-select-optgroup', standalone: true, imports: [CommonModule, MultiSelectOptgroupLabelComponent], template: "<c-multi-select-optgroup-label *ngIf=\"label\">{{label}}</c-multi-select-optgroup-label>\n<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
41
42
  }], propDecorators: { label: [{
42
43
  type: Input
43
44
  }], disabled: [{
@@ -49,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
49
50
  type: HostBinding,
50
51
  args: ['class']
51
52
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGdyb3VwL211bHRpLXNlbGVjdC1vcHRncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQU81RSxNQUFNLE9BQU8sNEJBQTRCO0lBTHpDO1FBaUJVLGNBQVMsR0FBWSxLQUFLLENBQUM7S0F5QnBDO0lBaENDLElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFLRCxJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMxQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt5SEFwQ1UsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsMk1BY3RCLDBCQUEwQixxRUNqQzdDLHVIQUVBOzJGRGlCYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQVExQixLQUFLO3NCQUFiLEtBQUs7Z0JBRUYsUUFBUTtzQkFEWCxLQUFLO2dCQVM4RCxrQkFBa0I7c0JBQXJGLGVBQWU7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUV4QyxXQUFXO3NCQUFwQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Qtb3B0aW9uL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RPcHRncm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNdWx0aVNlbGVjdE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBtdWx0aVNlbGVjdE9wdGlvbnMhOiBRdWVyeUxpc3Q8TXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdmb3JtLW11bHRpLXNlbGVjdC1vcHRpb25zJzogdHJ1ZVxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVNdWx0aVNlbGVjdE9wdGlvbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgdGhpcy51cGRhdGVNdWx0aVNlbGVjdE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU11bHRpU2VsZWN0T3B0aW9ucygpIHtcbiAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uKSA9PiB7XG4gICAgICBvcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgIH0pO1xuICB9XG59XG4iLCI8Yy1tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvYy1tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAtbGFiZWw+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW9wdGdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC1vcHRncm91cC9tdWx0aS1zZWxlY3Qtb3B0Z3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW9wdGdyb3VwL211bHRpLXNlbGVjdC1vcHRncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQVM1RixNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBbUJVLGNBQVMsR0FBWSxLQUFLLENBQUM7S0F5QnBDO0lBaENDLElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFLRCxJQUEwQixXQUFXO1FBQ25DLE9BQU87WUFDTCwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMxQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt5SEFwQ1UsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsK05BY3RCLDBCQUEwQixxRUNyQzdDLHVIQUVBLCtFRG1CWSxZQUFZLG1JQUFFLGlDQUFpQzsyRkFFOUMsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUNBQWlDLENBQUM7OEJBTWpELEtBQUs7c0JBQWIsS0FBSztnQkFFRixRQUFRO3NCQURYLEtBQUs7Z0JBUzhELGtCQUFrQjtzQkFBckYsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRXhDLFdBQVc7c0JBQXBDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHsgTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3Qtb3B0aW9uL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VsZWN0T3B0Z3JvdXBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtbXVsdGktc2VsZWN0LW9wdGdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1vcHRncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL211bHRpLXNlbGVjdC1vcHRncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNdWx0aVNlbGVjdE9wdGdyb3VwTGFiZWxDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0T3B0Z3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTXVsdGlTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgbXVsdGlTZWxlY3RPcHRpb25zITogUXVlcnlMaXN0PE11bHRpU2VsZWN0T3B0aW9uQ29tcG9uZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnZm9ybS1tdWx0aS1zZWxlY3Qtb3B0aW9ucyc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlTXVsdGlTZWxlY3RPcHRpb25zKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcbiAgICAgIHRoaXMudXBkYXRlTXVsdGlTZWxlY3RPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNdWx0aVNlbGVjdE9wdGlvbnMoKSB7XG4gICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgb3B0aW9uLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGMtbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L2MtbXVsdGktc2VsZWN0LW9wdGdyb3VwLWxhYmVsPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19