@coreui/angular 4.7.15 → 5.0.0-next.23

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 (275) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -1
  3. package/esm2022/lib/accordion/accordion/accordion.component.mjs +23 -17
  4. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
  5. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
  6. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  7. package/esm2022/lib/accordion/accordion.service.mjs +3 -3
  8. package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
  9. package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
  10. package/esm2022/lib/alert/alert.component.mjs +30 -38
  11. package/esm2022/lib/alert/alert.module.mjs +4 -4
  12. package/esm2022/lib/avatar/avatar.component.mjs +10 -7
  13. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  14. package/esm2022/lib/backdrop/backdrop.service.mjs +4 -5
  15. package/esm2022/lib/badge/badge.component.mjs +10 -6
  16. package/esm2022/lib/badge/badge.module.mjs +4 -4
  17. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
  18. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +7 -6
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +5 -5
  20. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +9 -9
  21. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  22. package/esm2022/lib/button/button-close.directive.mjs +11 -5
  23. package/esm2022/lib/button/button.directive.mjs +3 -3
  24. package/esm2022/lib/button/button.module.mjs +4 -4
  25. package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
  26. package/esm2022/lib/button-group/button-group.module.mjs +4 -4
  27. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
  28. package/esm2022/lib/callout/callout.component.mjs +3 -3
  29. package/esm2022/lib/callout/callout.module.mjs +4 -4
  30. package/esm2022/lib/card/card-body.component.mjs +3 -3
  31. package/esm2022/lib/card/card-footer.component.mjs +3 -3
  32. package/esm2022/lib/card/card-group.component.mjs +3 -3
  33. package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
  34. package/esm2022/lib/card/card-header.component.mjs +3 -3
  35. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
  36. package/esm2022/lib/card/card-img.directive.mjs +3 -3
  37. package/esm2022/lib/card/card-link.directive.mjs +3 -3
  38. package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
  39. package/esm2022/lib/card/card-text.directive.mjs +3 -3
  40. package/esm2022/lib/card/card-title.directive.mjs +3 -3
  41. package/esm2022/lib/card/card.component.mjs +13 -10
  42. package/esm2022/lib/card/card.module.mjs +4 -4
  43. package/esm2022/lib/carousel/carousel/carousel.component.mjs +20 -19
  44. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  45. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
  46. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +5 -5
  47. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
  48. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +9 -9
  49. package/esm2022/lib/carousel/carousel-state.mjs +3 -3
  50. package/esm2022/lib/carousel/carousel.config.mjs +3 -3
  51. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  52. package/esm2022/lib/carousel/carousel.service.mjs +3 -3
  53. package/esm2022/lib/collapse/collapse.directive.mjs +32 -42
  54. package/esm2022/lib/collapse/collapse.module.mjs +4 -4
  55. package/esm2022/lib/coreui.types.mjs +1 -1
  56. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +32 -53
  57. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
  58. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
  59. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
  60. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
  61. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +13 -5
  62. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +77 -41
  63. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  64. package/esm2022/lib/dropdown/dropdown.service.mjs +5 -5
  65. package/esm2022/lib/footer/footer.component.mjs +3 -3
  66. package/esm2022/lib/footer/footer.module.mjs +4 -4
  67. package/esm2022/lib/form/form/form.directive.mjs +3 -3
  68. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +12 -10
  69. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
  70. package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
  71. package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
  72. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  73. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
  74. package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
  75. package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
  76. package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
  77. package/esm2022/lib/form/form.module.mjs +4 -4
  78. package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
  79. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
  80. package/esm2022/lib/grid/col.component.mjs +3 -3
  81. package/esm2022/lib/grid/col.directive.mjs +3 -3
  82. package/esm2022/lib/grid/container.component.mjs +3 -3
  83. package/esm2022/lib/grid/grid.module.mjs +4 -4
  84. package/esm2022/lib/grid/gutter.directive.mjs +3 -3
  85. package/esm2022/lib/grid/row.component.mjs +3 -3
  86. package/esm2022/lib/grid/row.directive.mjs +7 -7
  87. package/esm2022/lib/header/header/header.component.mjs +5 -5
  88. package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
  89. package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
  90. package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
  91. package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
  92. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
  93. package/esm2022/lib/header/header.module.mjs +4 -4
  94. package/esm2022/lib/image/img.directive.mjs +3 -3
  95. package/esm2022/lib/image/img.module.mjs +4 -4
  96. package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
  97. package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
  98. package/esm2022/lib/list-group/list-group.module.mjs +4 -4
  99. package/esm2022/lib/modal/modal/modal.component.mjs +4 -4
  100. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
  101. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
  102. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
  103. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  104. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
  105. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
  106. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
  107. package/esm2022/lib/modal/modal.module.mjs +4 -4
  108. package/esm2022/lib/modal/modal.service.mjs +3 -3
  109. package/esm2022/lib/nav/nav-item.component.mjs +3 -3
  110. package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
  111. package/esm2022/lib/nav/nav.component.mjs +5 -5
  112. package/esm2022/lib/nav/nav.module.mjs +4 -4
  113. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  114. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
  115. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  116. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
  117. package/esm2022/lib/navbar/navbar.component.mjs +9 -13
  118. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  119. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +10 -6
  120. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
  121. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
  122. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
  123. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  124. package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
  125. package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
  126. package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
  127. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +3 -3
  128. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
  129. package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
  130. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  131. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
  132. package/esm2022/lib/placeholder/placeholder.directive.mjs +13 -20
  133. package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
  134. package/esm2022/lib/popover/popover/popover.component.mjs +3 -3
  135. package/esm2022/lib/popover/popover.directive.mjs +5 -5
  136. package/esm2022/lib/popover/popover.module.mjs +4 -4
  137. package/esm2022/lib/progress/progress-bar.component.mjs +22 -88
  138. package/esm2022/lib/progress/progress-bar.directive.mjs +112 -0
  139. package/esm2022/lib/progress/progress-stacked.component.mjs +19 -0
  140. package/esm2022/lib/progress/progress.component.mjs +27 -12
  141. package/esm2022/lib/progress/progress.module.mjs +19 -9
  142. package/esm2022/lib/progress/progress.type.mjs +2 -0
  143. package/esm2022/lib/progress/public_api.mjs +3 -1
  144. package/esm2022/lib/services/class-toggle.service.mjs +3 -3
  145. package/esm2022/lib/services/color-mode.service.mjs +73 -0
  146. package/esm2022/lib/services/in-memory-storage.service.mjs +33 -0
  147. package/esm2022/lib/services/intersection.service.mjs +3 -3
  148. package/esm2022/lib/services/listeners.service.mjs +3 -3
  149. package/esm2022/lib/services/local-storage.service.mjs +51 -0
  150. package/esm2022/lib/services/public_api.mjs +4 -1
  151. package/esm2022/lib/shared/html-attr.directive.mjs +3 -3
  152. package/esm2022/lib/shared/public_api.mjs +2 -1
  153. package/esm2022/lib/shared/shared.module.mjs +8 -15
  154. package/esm2022/lib/shared/template-id.directive.mjs +3 -3
  155. package/esm2022/lib/shared/theme.directive.mjs +45 -0
  156. package/esm2022/lib/sidebar/public_api.mjs +2 -2
  157. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +40 -49
  158. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
  159. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +5 -5
  160. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  161. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  162. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  163. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  164. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
  165. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  166. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
  167. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +5 -5
  168. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +13 -13
  169. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  170. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
  171. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +23 -19
  172. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  173. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  174. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +39 -0
  175. package/esm2022/lib/sidebar/sidebar.module.mjs +10 -10
  176. package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
  177. package/esm2022/lib/spinner/spinner.component.mjs +3 -3
  178. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  179. package/esm2022/lib/table/table-active.directive.mjs +3 -3
  180. package/esm2022/lib/table/table-color.directive.mjs +3 -3
  181. package/esm2022/lib/table/table.directive.mjs +3 -3
  182. package/esm2022/lib/table/table.module.mjs +4 -4
  183. package/esm2022/lib/table/table.type.mjs +1 -1
  184. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +9 -9
  185. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +14 -11
  186. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +7 -10
  187. package/esm2022/lib/tabs/tab.service.mjs +3 -3
  188. package/esm2022/lib/tabs/tabs.module.mjs +4 -4
  189. package/esm2022/lib/toast/toast/toast.component.mjs +13 -11
  190. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
  191. package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
  192. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
  193. package/esm2022/lib/toast/toast.module.mjs +4 -4
  194. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  195. package/esm2022/lib/toast/toaster/toaster.component.mjs +3 -3
  196. package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
  197. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
  198. package/esm2022/lib/tooltip/tooltip.directive.mjs +5 -5
  199. package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
  200. package/esm2022/lib/utilities/align.directive.mjs +3 -3
  201. package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
  202. package/esm2022/lib/utilities/border.directive.mjs +3 -3
  203. package/esm2022/lib/utilities/public_api.mjs +4 -3
  204. package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
  205. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +48 -0
  206. package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
  207. package/esm2022/lib/utilities/utilities.module.mjs +8 -32
  208. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +5 -5
  209. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +6 -6
  210. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +17 -19
  211. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +5 -5
  212. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +5 -5
  213. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +5 -5
  214. package/esm2022/lib/widget/widget.module.mjs +4 -4
  215. package/esm2022/public-api.mjs +2 -2
  216. package/fesm2022/coreui-angular.mjs +1709 -1411
  217. package/fesm2022/coreui-angular.mjs.map +1 -1
  218. package/lib/accordion/accordion/accordion.component.d.ts +4 -6
  219. package/lib/alert/alert.component.d.ts +8 -12
  220. package/lib/avatar/avatar.component.d.ts +4 -3
  221. package/lib/badge/badge.component.d.ts +5 -3
  222. package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +1 -0
  223. package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +1 -1
  224. package/lib/button/button-close.directive.d.ts +3 -1
  225. package/lib/card/card.component.d.ts +3 -2
  226. package/lib/carousel/carousel/carousel.component.d.ts +4 -8
  227. package/lib/carousel/carousel-item/carousel-item.component.d.ts +1 -2
  228. package/lib/collapse/collapse.directive.d.ts +13 -13
  229. package/lib/coreui.types.d.ts +5 -3
  230. package/lib/dropdown/dropdown/dropdown.component.d.ts +10 -21
  231. package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +5 -1
  232. package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +13 -16
  233. package/lib/dropdown/dropdown.service.d.ts +0 -1
  234. package/lib/form/form-check/form-check-input.directive.d.ts +4 -3
  235. package/lib/nav/nav.component.d.ts +2 -2
  236. package/lib/navbar/navbar.component.d.ts +2 -5
  237. package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +2 -1
  238. package/lib/placeholder/placeholder.directive.d.ts +3 -7
  239. package/lib/progress/progress-bar.component.d.ts +5 -46
  240. package/lib/progress/progress-bar.directive.d.ts +58 -0
  241. package/lib/progress/progress-stacked.component.d.ts +7 -0
  242. package/lib/progress/progress.component.d.ts +15 -6
  243. package/lib/progress/progress.module.d.ts +3 -1
  244. package/lib/progress/progress.type.d.ts +18 -0
  245. package/lib/progress/public_api.d.ts +3 -1
  246. package/lib/services/color-mode.service.d.ts +20 -0
  247. package/lib/services/in-memory-storage.service.d.ts +13 -0
  248. package/lib/services/local-storage.service.d.ts +17 -0
  249. package/lib/services/public_api.d.ts +3 -0
  250. package/lib/shared/public_api.d.ts +1 -0
  251. package/lib/shared/shared.module.d.ts +2 -1
  252. package/lib/shared/theme.directive.d.ts +19 -0
  253. package/lib/sidebar/public_api.d.ts +1 -1
  254. package/lib/sidebar/sidebar/sidebar.component.d.ts +13 -11
  255. package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +5 -2
  256. package/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.d.ts +9 -0
  257. package/lib/sidebar/sidebar.module.d.ts +2 -2
  258. package/lib/table/table.type.d.ts +5 -6
  259. package/lib/tabs/tab-content/tab-content.component.d.ts +1 -0
  260. package/lib/tabs/tab-content-ref.directive.d.ts +4 -2
  261. package/lib/toast/toast/toast.component.d.ts +3 -2
  262. package/lib/utilities/public_api.d.ts +3 -2
  263. package/lib/utilities/shadow-on-scroll.directive.d.ts +8 -0
  264. package/lib/utilities/utilities.module.d.ts +7 -6
  265. package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +1 -1
  266. package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +3 -3
  267. package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +16 -15
  268. package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +1 -1
  269. package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +1 -1
  270. package/package.json +6 -3
  271. package/public-api.d.ts +1 -1
  272. package/esm2022/lib/progress/progress-bar.mjs +0 -2
  273. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +0 -27
  274. package/lib/progress/progress-bar.d.ts +0 -10
  275. package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +0 -7
@@ -1,57 +1,43 @@
1
- import { Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';
1
+ import { booleanAttribute, Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
2
  import { useAnimation } from '@angular/animations';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
3
  import { collapseAnimation, collapseHorizontalAnimation, expandAnimation, expandHorizontalAnimation } from './collapse.animations';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/animations";
7
6
  // todo
8
7
  // tslint:disable-next-line:no-conflicting-lifecycle
9
8
  export class CollapseDirective {
10
- /**
11
- * @ignore
12
- */
13
- set animate(value) {
14
- this._animate = value;
15
- }
16
- get animate() {
17
- return this._animate;
18
- }
19
- /**
20
- * Set horizontal collapsing to transition the width instead of height.
21
- */
22
- set horizontal(value) {
23
- this._horizontal = coerceBooleanProperty(value);
24
- }
25
- get horizontal() {
26
- return this._horizontal;
27
- }
28
9
  /**
29
10
  * Toggle the visibility of collapsible element.
11
+ * @type boolean
12
+ * @default false
30
13
  */
31
14
  set visible(value) {
32
- this._visible = coerceBooleanProperty(value);
15
+ this._visible = value;
33
16
  }
34
17
  get visible() {
35
18
  return this._visible;
36
19
  }
37
- /**
38
- * Add `navbar` prop for grouping and hiding navbar contents by a parent breakpoint.
39
- */
40
- set navbar(value) {
41
- this._navbar = coerceBooleanProperty(value);
42
- }
43
- ;
44
- get navbar() {
45
- return this._navbar;
46
- }
47
20
  constructor(hostElement, renderer, animationBuilder) {
48
21
  this.hostElement = hostElement;
49
22
  this.renderer = renderer;
50
23
  this.animationBuilder = animationBuilder;
51
- this._animate = true;
52
- this._horizontal = false;
24
+ /**
25
+ * @ignore
26
+ */
27
+ this.animate = true;
28
+ /**
29
+ * Set horizontal collapsing to transition the width instead of height.
30
+ * @type boolean
31
+ * @default false
32
+ */
33
+ this.horizontal = false;
53
34
  this._visible = false;
54
- this._navbar = false;
35
+ /**
36
+ * Add `navbar` prop for grouping and hiding navbar contents by a parent breakpoint.
37
+ * @type boolean
38
+ * @default false
39
+ */
40
+ this.navbar = false;
55
41
  /**
56
42
  * @ignore
57
43
  */
@@ -160,10 +146,10 @@ export class CollapseDirective {
160
146
  }
161
147
  // });
162
148
  }
163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }
164
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: CollapseDirective, isStandalone: true, selector: "[cCollapse]", inputs: { animate: "animate", horizontal: "horizontal", visible: "visible", navbar: "navbar", duration: "duration", transition: "transition" }, outputs: { collapseChange: "collapseChange" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["cCollapse"], usesOnChanges: true, ngImport: i0 }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: CollapseDirective, isStandalone: true, selector: "[cCollapse]", inputs: { animate: ["animate", "animate", booleanAttribute], horizontal: ["horizontal", "horizontal", booleanAttribute], visible: ["visible", "visible", booleanAttribute], navbar: ["navbar", "navbar", booleanAttribute], duration: "duration", transition: "transition" }, outputs: { collapseChange: "collapseChange" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["cCollapse"], usesOnChanges: true, ngImport: i0 }); }
165
151
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CollapseDirective, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CollapseDirective, decorators: [{
167
153
  type: Directive,
168
154
  args: [{
169
155
  selector: '[cCollapse]',
@@ -171,13 +157,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
171
157
  standalone: true
172
158
  }]
173
159
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.AnimationBuilder }], propDecorators: { animate: [{
174
- type: Input
160
+ type: Input,
161
+ args: [{ transform: booleanAttribute }]
175
162
  }], horizontal: [{
176
- type: Input
163
+ type: Input,
164
+ args: [{ transform: booleanAttribute }]
177
165
  }], visible: [{
178
- type: Input
166
+ type: Input,
167
+ args: [{ transform: booleanAttribute }]
179
168
  }], navbar: [{
180
- type: Input
169
+ type: Input,
170
+ args: [{ transform: booleanAttribute }]
181
171
  }], duration: [{
182
172
  type: Input
183
173
  }], transition: [{
@@ -188,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
188
178
  type: HostBinding,
189
179
  args: ['class']
190
180
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb2xsYXBzZS9jb2xsYXBzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLHVCQUF1QixDQUFDOzs7QUFFL0IsT0FBTztBQUNQLG9EQUFvRDtBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBTTVCOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFJRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUks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bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7c0lBV0ssT0FBTztzQkFEVixLQUFLO2dCQWVGLFVBQVU7c0JBRGIsS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBZUYsTUFBTTtzQkFEVCxLQUFLO2dCQWNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLSSxjQUFjO3NCQUF2QixNQUFNO2dCQWtCSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvblBsYXllciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuaW1wb3J0IHtcbiAgY29sbGFwc2VBbmltYXRpb24sXG4gIGNvbGxhcHNlSG9yaXpvbnRhbEFuaW1hdGlvbixcbiAgZXhwYW5kQW5pbWF0aW9uLFxuICBleHBhbmRIb3Jpem9udGFsQW5pbWF0aW9uXG59IGZyb20gJy4vY29sbGFwc2UuYW5pbWF0aW9ucyc7XG5cbi8vIHRvZG9cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25mbGljdGluZy1saWZlY3ljbGVcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjQ29sbGFwc2VdJyxcbiAgZXhwb3J0QXM6ICdjQ29sbGFwc2UnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIENvbGxhcHNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIERvQ2hlY2ssIEFmdGVyVmlld0luaXQge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ob3Jpem9udGFsOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uYXZiYXI6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Zpc2libGU6IEJvb2xlYW5JbnB1dDtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGFuaW1hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbmltYXRlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgYW5pbWF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2FuaW1hdGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXQgaG9yaXpvbnRhbCBjb2xsYXBzaW5nIHRvIHRyYW5zaXRpb24gdGhlIHdpZHRoIGluc3RlYWQgb2YgaGVpZ2h0LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGhvcml6b250YWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBob3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgY29sbGFwc2libGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkIGBuYXZiYXJgIHByb3AgZm9yIGdyb3VwaW5nIGFuZCBoaWRpbmcgbmF2YmFyIGNvbnRlbnRzIGJ5IGEgcGFyZW50IGJyZWFrcG9pbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbmF2YmFyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2YmFyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfTtcblxuICBnZXQgbmF2YmFyKCkge1xuICAgIHJldHVybiB0aGlzLl9uYXZiYXI7XG4gIH1cblxuICBwcml2YXRlIF9uYXZiYXIgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQElucHV0KCkgZHVyYXRpb24gPSAnMzUwbXMnO1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQElucHV0KCkgdHJhbnNpdGlvbiA9ICdlYXNlJztcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdmlzaWJpbGl0eSBjaGFuZ2UuIFtkb2NzXVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICovXG4gIEBPdXRwdXQoKSBjb2xsYXBzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgcGxheWVyITogQW5pbWF0aW9uUGxheWVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IEhUTUxFbGVtZW50O1xuICAvLyBwcml2YXRlIHNjcm9sbEhlaWdodCE6IG51bWJlcjtcbiAgcHJpdmF0ZSBzY3JvbGxXaWR0aCE6IG51bWJlcjtcbiAgcHJpdmF0ZSBjb2xsYXBzaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBhbmltYXRpb25CdWlsZGVyOiBBbmltYXRpb25CdWlsZGVyXG4gICkge1xuICAgIHRoaXMuaG9zdCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnbmF2YmFyLWNvbGxhcHNlJzogdGhpcy5uYXZiYXIsXG4gICAgICAnY29sbGFwc2UtaG9yaXpvbnRhbCc6IHRoaXMuaG9yaXpvbnRhbFxuICAgIH07XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lQbGF5ZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XG4gICAgICBpZiAoIWNoYW5nZXNbJ3Zpc2libGUnXS5maXJzdENoYW5nZSB8fCAhY2hhbmdlc1sndmlzaWJsZSddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLnRvZ2dsZShjaGFuZ2VzWyd2aXNpYmxlJ10uY3VycmVudFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3Zpc2libGUgIT09IHRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUodmlzaWJsZSA9IHRoaXMudmlzaWJsZSk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlUGxheWVyKHZpc2libGUpO1xuICAgIHRoaXMucGxheWVyPy5wbGF5KCk7XG4gIH1cblxuICBkZXN0cm95UGxheWVyKCk6IHZvaWQge1xuICAgIHRoaXMucGxheWVyPy5kZXN0cm95KCk7XG4gIH1cblxuICBjcmVhdGVQbGF5ZXIodmlzaWJsZTogYm9vbGVhbiA9IHRoaXMudmlzaWJsZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBsYXllcj8uaGFzU3RhcnRlZCgpKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lQbGF5ZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodmlzaWJsZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmhvc3QsICdkaXNwbGF5Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmFuaW1hdGUgPyB0aGlzLmR1cmF0aW9uIDogJzBtcyc7XG5cbiAgICBjb25zdCBleHBhbmQgPSB0aGlzLmhvcml6b250YWwgPyBleHBhbmRIb3Jpem9udGFsQW5pbWF0aW9uIDogZXhwYW5kQW5pbWF0aW9uO1xuICAgIGNvbnN0IGNvbGxhcHNlID0gdGhpcy5ob3Jpem9udGFsID8gY29sbGFwc2VIb3Jpem9udGFsQW5pbWF0aW9uIDogY29sbGFwc2VBbmltYXRpb247XG5cbiAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLmhvcml6b250YWwgPyAnd2lkdGgnIDogJ2hlaWdodCc7XG4gICAgY29uc3QgY2FwaXRhbGl6ZWREaW1lbnNpb24gPSBkaW1lbnNpb25bMF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSgxKTtcbiAgICBjb25zdCBzY3JvbGxTaXplID0gYHNjcm9sbCR7Y2FwaXRhbGl6ZWREaW1lbnNpb259YDtcblxuICAgIGNvbnN0IGFuaW1hdGlvbkZhY3RvcnkgPSB0aGlzLmFuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoXG4gICAgICB1c2VBbmltYXRpb24odmlzaWJsZSA/IGV4cGFuZCA6IGNvbGxhcHNlLCB7IHBhcmFtczogeyB0aW1lOiBkdXJhdGlvbiwgZWFzaW5nOiB0aGlzLnRyYW5zaXRpb24gfSB9KVxuICAgICk7XG5cbiAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbkZhY3RvcnkuY3JlYXRlKHRoaXMuaG9zdCk7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgZGltZW5zaW9uLCB2aXNpYmxlID8gMCA6IGAke3RoaXMuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtkaW1lbnNpb25dfXB4YCk7XG5cbiAgICAhdmlzaWJsZSAmJiB0aGlzLmhvc3Qub2Zmc2V0SGVpZ2h0O1xuXG4gICAgdGhpcy5wbGF5ZXIub25TdGFydCgoKSA9PiB7XG4gICAgICB0aGlzLnNldE1heFNpemUoKTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0LCAnY29sbGFwc2UnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0LCAnY29sbGFwc2luZycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QsICdzaG93Jyk7XG4gICAgICB0aGlzLmNvbGxhcHNpbmcgPSB0cnVlO1xuICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgZGltZW5zaW9uLCBgJHt0aGlzLmhvc3Rbc2Nyb2xsU2l6ZV19cHhgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCBkaW1lbnNpb24sICcnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29sbGFwc2VDaGFuZ2UuZW1pdCh2aXNpYmxlID8gJ29wZW5pbmcnIDogJ2NvbGxhcHNpbmcnKTtcbiAgICB9KTtcbiAgICB0aGlzLnBsYXllci5vbkRvbmUoKCkgPT4ge1xuICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTtcbiAgICAgIHRoaXMuY29sbGFwc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QsICdjb2xsYXBzaW5nJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdCwgJ2NvbGxhcHNlJyk7XG4gICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdCwgJ3Nob3cnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3QsIGRpbWVuc2lvbiwgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QsICdzaG93Jyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbGxhcHNlQ2hhbmdlLmVtaXQodmlzaWJsZSA/ICdvcGVuJyA6ICdjb2xsYXBzZWQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1heFNpemUoKSB7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaG9yaXpvbnRhbCkge1xuICAgICAgdGhpcy5zY3JvbGxXaWR0aCA9IHRoaXMuaG9zdC5zY3JvbGxXaWR0aDtcbiAgICAgIHRoaXMuc2Nyb2xsV2lkdGggPiAwICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCAnbWF4V2lkdGgnLCBgJHt0aGlzLnNjcm9sbFdpZHRofXB4YCk7XG4gICAgICAvLyB9IGVsc2Uge1xuICAgICAgLy8gdGhpcy5zY3JvbGxIZWlnaHQgPSB0aGlzLmhvc3Quc2Nyb2xsSGVpZ2h0O1xuICAgICAgLy8gdGhpcy5zY3JvbGxIZWlnaHQgPiAwICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCAnbWF4SGVpZ2h0JywgYCR7dGhpcy5zY3JvbGxIZWlnaHR9cHhgKTtcbiAgICB9XG4gICAgLy8gfSk7XG4gIH1cbn1cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb2xsYXBzZS9jb2xsYXBzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixTQUFTLEVBR1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBcUMsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEYsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLHVCQUF1QixDQUFDOzs7QUFFL0IsT0FBTztBQUNQLG9EQUFvRDtBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBYzVCOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBK0JELFlBQ1UsV0FBdUIsRUFDdkIsUUFBbUIsRUFDbkIsZ0JBQWtDO1FBRmxDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFENUM7O1dBRUc7UUFDcUMsWUFBTyxHQUFZLElBQUksQ0FBQztRQUVoRTs7OztXQUlHO1FBQ3FDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFnQjVELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNxQyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBRWhFOztXQUVHO1FBQ00sYUFBUSxHQUFHLE9BQU8sQ0FBQztRQUM1Qjs7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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIERpcmVjdGl2ZSxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvblBsYXllciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIGNvbGxhcHNlQW5pbWF0aW9uLFxuICBjb2xsYXBzZUhvcml6b250YWxBbmltYXRpb24sXG4gIGV4cGFuZEFuaW1hdGlvbixcbiAgZXhwYW5kSG9yaXpvbnRhbEFuaW1hdGlvblxufSBmcm9tICcuL2NvbGxhcHNlLmFuaW1hdGlvbnMnO1xuXG4vLyB0b2RvXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY0NvbGxhcHNlXScsXG4gIGV4cG9ydEFzOiAnY0NvbGxhcHNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb2xsYXBzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFuaW1hdGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXQgaG9yaXpvbnRhbCBjb2xsYXBzaW5nIHRvIHRyYW5zaXRpb24gdGhlIHdpZHRoIGluc3RlYWQgb2YgaGVpZ2h0LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaG9yaXpvbnRhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgY29sbGFwc2libGUgZWxlbWVudC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFkZCBgbmF2YmFyYCBwcm9wIGZvciBncm91cGluZyBhbmQgaGlkaW5nIG5hdmJhciBjb250ZW50cyBieSBhIHBhcmVudCBicmVha3BvaW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbmF2YmFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBJbnB1dCgpIGR1cmF0aW9uID0gJzM1MG1zJztcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBJbnB1dCgpIHRyYW5zaXRpb24gPSAnZWFzZSc7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIG9uIHZpc2liaWxpdHkgY2hhbmdlLiBbZG9jc11cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqL1xuICBAT3V0cHV0KCkgY29sbGFwc2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIHBsYXllciE6IEFuaW1hdGlvblBsYXllcjtcbiAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBIVE1MRWxlbWVudDtcbiAgLy8gcHJpdmF0ZSBzY3JvbGxIZWlnaHQhOiBudW1iZXI7XG4gIHByaXZhdGUgc2Nyb2xsV2lkdGghOiBudW1iZXI7XG4gIHByaXZhdGUgY29sbGFwc2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgYW5pbWF0aW9uQnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlclxuICApIHtcbiAgICB0aGlzLmhvc3QgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3QsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ25hdmJhci1jb2xsYXBzZSc6IHRoaXMubmF2YmFyLFxuICAgICAgJ2NvbGxhcHNlLWhvcml6b250YWwnOiB0aGlzLmhvcml6b250YWxcbiAgICB9O1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95UGxheWVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Zpc2libGUnXSkge1xuICAgICAgaWYgKCFjaGFuZ2VzWyd2aXNpYmxlJ10uZmlyc3RDaGFuZ2UgfHwgIWNoYW5nZXNbJ3Zpc2libGUnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy50b2dnbGUoY2hhbmdlc1sndmlzaWJsZSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl92aXNpYmxlICE9PSB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlKHZpc2libGUgPSB0aGlzLnZpc2libGUpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVBsYXllcih2aXNpYmxlKTtcbiAgICB0aGlzLnBsYXllcj8ucGxheSgpO1xuICB9XG5cbiAgZGVzdHJveVBsYXllcigpOiB2b2lkIHtcbiAgICB0aGlzLnBsYXllcj8uZGVzdHJveSgpO1xuICB9XG5cbiAgY3JlYXRlUGxheWVyKHZpc2libGU6IGJvb2xlYW4gPSB0aGlzLnZpc2libGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wbGF5ZXI/Lmhhc1N0YXJ0ZWQoKSkge1xuICAgICAgdGhpcy5kZXN0cm95UGxheWVyKCk7XG4gICAgfVxuXG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0LCAnZGlzcGxheScpO1xuICAgIH1cblxuICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5hbmltYXRlID8gdGhpcy5kdXJhdGlvbiA6ICcwbXMnO1xuXG4gICAgY29uc3QgZXhwYW5kID0gdGhpcy5ob3Jpem9udGFsID8gZXhwYW5kSG9yaXpvbnRhbEFuaW1hdGlvbiA6IGV4cGFuZEFuaW1hdGlvbjtcbiAgICBjb25zdCBjb2xsYXBzZSA9IHRoaXMuaG9yaXpvbnRhbCA/IGNvbGxhcHNlSG9yaXpvbnRhbEFuaW1hdGlvbiA6IGNvbGxhcHNlQW5pbWF0aW9uO1xuXG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5ob3Jpem9udGFsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIGNvbnN0IGNhcGl0YWxpemVkRGltZW5zaW9uID0gZGltZW5zaW9uWzBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoMSk7XG4gICAgY29uc3Qgc2Nyb2xsU2l6ZSA9IGBzY3JvbGwke2NhcGl0YWxpemVkRGltZW5zaW9ufWA7XG5cbiAgICBjb25zdCBhbmltYXRpb25GYWN0b3J5ID0gdGhpcy5hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFxuICAgICAgdXNlQW5pbWF0aW9uKHZpc2libGUgPyBleHBhbmQgOiBjb2xsYXBzZSwgeyBwYXJhbXM6IHsgdGltZTogZHVyYXRpb24sIGVhc2luZzogdGhpcy50cmFuc2l0aW9uIH0gfSlcbiAgICApO1xuXG4gICAgdGhpcy5wbGF5ZXIgPSBhbmltYXRpb25GYWN0b3J5LmNyZWF0ZSh0aGlzLmhvc3QpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3QsIGRpbWVuc2lvbiwgdmlzaWJsZSA/IDAgOiBgJHt0aGlzLmhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbZGltZW5zaW9uXX1weGApO1xuXG4gICAgIXZpc2libGUgJiYgdGhpcy5ob3N0Lm9mZnNldEhlaWdodDtcblxuICAgIHRoaXMucGxheWVyLm9uU3RhcnQoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRNYXhTaXplKCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdCwgJ2NvbGxhcHNlJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdCwgJ2NvbGxhcHNpbmcnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0LCAnc2hvdycpO1xuICAgICAgdGhpcy5jb2xsYXBzaW5nID0gdHJ1ZTtcbiAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3QsIGRpbWVuc2lvbiwgYCR7dGhpcy5ob3N0W3Njcm9sbFNpemVdfXB4YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgZGltZW5zaW9uLCAnJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbGxhcHNlQ2hhbmdlLmVtaXQodmlzaWJsZSA/ICdvcGVuaW5nJyA6ICdjb2xsYXBzaW5nJyk7XG4gICAgfSk7XG4gICAgdGhpcy5wbGF5ZXIub25Eb25lKCgpID0+IHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7XG4gICAgICB0aGlzLmNvbGxhcHNpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0LCAnY29sbGFwc2luZycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3QsICdjb2xsYXBzZScpO1xuICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3QsICdzaG93Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCBkaW1lbnNpb24sICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0LCAnc2hvdycpO1xuICAgICAgfVxuICAgICAgdGhpcy5jb2xsYXBzZUNoYW5nZS5lbWl0KHZpc2libGUgPyAnb3BlbicgOiAnY29sbGFwc2VkJyk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRNYXhTaXplKCkge1xuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmhvcml6b250YWwpIHtcbiAgICAgIHRoaXMuc2Nyb2xsV2lkdGggPSB0aGlzLmhvc3Quc2Nyb2xsV2lkdGg7XG4gICAgICB0aGlzLnNjcm9sbFdpZHRoID4gMCAmJiB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgJ21heFdpZHRoJywgYCR7dGhpcy5zY3JvbGxXaWR0aH1weGApO1xuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gdGhpcy5ob3N0LnNjcm9sbEhlaWdodDtcbiAgICAgIC8vIHRoaXMuc2Nyb2xsSGVpZ2h0ID4gMCAmJiB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdCwgJ21heEhlaWdodCcsIGAke3RoaXMuc2Nyb2xsSGVpZ2h0fXB4YCk7XG4gICAgfVxuICAgIC8vIH0pO1xuICB9XG59XG4iXX0=
@@ -5,11 +5,11 @@ export class CollapseModule {
5
5
  static forRoot() {
6
6
  return { ngModule: CollapseModule, providers: [] };
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: CollapseModule, imports: [CollapseDirective], exports: [CollapseDirective] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CollapseModule }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: CollapseModule, imports: [CollapseDirective], exports: [CollapseDirective] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CollapseModule }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CollapseModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CollapseModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  exports: [CollapseDirective],
@@ -7,4 +7,4 @@ export var BreakpointInfix;
7
7
  BreakpointInfix["xl"] = "xl";
8
8
  BreakpointInfix["xxl"] = "xxl";
9
9
  })(BreakpointInfix || (BreakpointInfix = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZXVpLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JldWkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksZUFPWDtBQVBELFdBQVksZUFBZTtJQUN6Qiw0QkFBUyxDQUFBO0lBQ1QsNEJBQVMsQ0FBQTtJQUNULDRCQUFTLENBQUE7SUFDVCw0QkFBUyxDQUFBO0lBQ1QsNEJBQVMsQ0FBQTtJQUNULDhCQUFXLENBQUE7QUFDYixDQUFDLEVBUFcsZUFBZSxLQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc0FjdGl2ZU1hdGNoT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBlbnVtIEJyZWFrcG9pbnRJbmZpeCB7XG4gIHhzID0gJ3hzJyxcbiAgc20gPSAnc20nLFxuICBtZCA9ICdtZCcsXG4gIGxnID0gJ2xnJyxcbiAgeGwgPSAneGwnLFxuICB4eGwgPSAneHhsJ1xufVxuXG5leHBvcnQgdHlwZSBCcmVha3BvaW50SW5maXhTdHJpbmdzID0ga2V5b2YgdHlwZW9mIEJyZWFrcG9pbnRJbmZpeDtcblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludHMgPSBCcmVha3BvaW50SW5maXhTdHJpbmdzIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTaXplcyA9ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJyB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQ29sb3JzID1cbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICdzdWNjZXNzJ1xuICB8ICdkYW5nZXInXG4gIHwgJ3dhcm5pbmcnXG4gIHwgJ2luZm8nXG4gIHwgJ2RhcmsnXG4gIHwgJ2xpZ2h0J1xuICB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQ29sb3JzR3JhZGllbnQgPVxuICB8IGAke0NvbG9yc30tZ3JhZGllbnRgO1xuXG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3JzID0gQ29sb3JzIHwgJ2JvZHknIHwgJ3doaXRlJyB8ICd0cmFuc3BhcmVudCc7XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbnMgPSAnZG93bicgfCAndXAnIHwgJ3N0YXJ0JyB8ICdlbmQnIHwgJyc7XG5cbmV4cG9ydCB0eXBlIFRleHRDb2xvcnMgPVxuICB8IENvbG9yc1xuICB8ICdib2R5J1xuICB8ICd3aGl0ZSdcbiAgfCAnbXV0ZWQnXG4gIHwgJ2JsYWNrLTUwJ1xuICB8ICd3aGl0ZS01MCdcbiAgfCAnaGlnaC1lbXBoYXNpcydcbiAgfCAnbWVkaXVtLWVtcGhhc2lzJ1xuICB8ICdkaXNhYmxlZCdcbiAgfCAnaGlnaC1lbXBoYXNpcy1pbnZlcnNlJ1xuICB8ICdtZWRpdW0tZW1waGFzaXMtaW52ZXJzZSdcbiAgfCAnZGlzYWJsZWQtaW52ZXJzZSc7XG5cbmV4cG9ydCB0eXBlIEFsaWdubWVudCA9XG4gIHwgJ2Jhc2VsaW5lJ1xuICB8ICd0b3AnXG4gIHwgJ21pZGRsZSdcbiAgfCAnYm90dG9tJ1xuICB8ICd0ZXh0LXRvcCdcbiAgfCAndGV4dC1ib3R0b20nO1xuXG5leHBvcnQgdHlwZSBCYWRnZVBvc2l0aW9ucyA9XG4gIHwgJ3RvcC1zdGFydCdcbiAgfCAndG9wLWVuZCdcbiAgfCAnYm90dG9tLWVuZCdcbiAgfCAnYm90dG9tLXN0YXJ0J1xuICB8IHN0cmluZ1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgUGxhY2VtZW50cyA9XG4gIHwgJ2F1dG8nXG4gIHwgJ2F1dG8tc3RhcnQnXG4gIHwgJ2F1dG8tZW5kJ1xuICB8ICd0b3AtZW5kJ1xuICB8ICd0b3AnXG4gIHwgJ3RvcC1zdGFydCdcbiAgfCAnYm90dG9tLWVuZCdcbiAgfCAnYm90dG9tJ1xuICB8ICdib3R0b20tc3RhcnQnXG4gIHwgJ3JpZ2h0LXN0YXJ0J1xuICB8ICdyaWdodCdcbiAgfCAncmlnaHQtZW5kJ1xuICB8ICdsZWZ0LXN0YXJ0J1xuICB8ICdsZWZ0J1xuICB8ICdsZWZ0LWVuZCdcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIFNoYXBlcyA9XG4gIHwgJ3JvdW5kZWQnXG4gIHwgJ3JvdW5kZWQtdG9wJ1xuICB8ICdyb3VuZGVkLWVuZCdcbiAgfCAncm91bmRlZC1ib3R0b20nXG4gIHwgJ3JvdW5kZWQtc3RhcnQnXG4gIHwgJ3JvdW5kZWQtY2lyY2xlJ1xuICB8ICdyb3VuZGVkLXBpbGwnXG4gIHwgJ3JvdW5kZWQtMCdcbiAgfCAncm91bmRlZC0xJ1xuICB8ICdyb3VuZGVkLTInXG4gIHwgJ3JvdW5kZWQtMydcbiAgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFRyaWdnZXJzID0gJ2hvdmVyJyB8ICdmb2N1cycgfCAnY2xpY2snO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbnMgPSAnZml4ZWQnIHwgJ3N0aWNreSc7XG5cbmV4cG9ydCB0eXBlIElucHV0VHlwZSA9XG4gIHwgJ2J1dHRvbidcbiAgfCAnY29sb3InXG4gIHwgJ2RhdGUnXG4gIHwgJ2RhdGV0aW1lJ1xuICB8ICdkYXRldGltZS1sb2NhbCdcbiAgfCAnZW1haWwnXG4gIHwgJ2ZpbGUnXG4gIHwgJ2hpZGRlbidcbiAgfCAnaW1hZ2UnXG4gIHwgJ21vbnRoJ1xuICB8ICdudW1iZXInXG4gIHwgJ3Bhc3N3b3JkJ1xuICB8ICdyYW5nZSdcbiAgfCAncmVzZXQnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnc3VibWl0J1xuICB8ICd0ZWwnXG4gIHwgJ3RleHQnXG4gIHwgJ3RpbWUnXG4gIHwgJ3VybCdcbiAgfCAnd2VlaydcbiAgfCAnY2hlY2tib3gnXG4gIHwgJ3JhZGlvJztcblxuZXhwb3J0IGludGVyZmFjZSBJTmF2TGlua1Byb3BzIHtcbiAgcXVlcnlQYXJhbXM/OiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbiAgZnJhZ21lbnQ/OiBzdHJpbmc7XG4gIHF1ZXJ5UGFyYW1zSGFuZGxpbmc/OiAnbWVyZ2UnIHwgJ3ByZXNlcnZlJyB8ICcnIHwgbnVsbDtcbiAgcHJlc2VydmVGcmFnbWVudD86IGJvb2xlYW47XG4gIHNraXBMb2NhdGlvbkNoYW5nZT86IGJvb2xlYW47XG4gIHJlcGxhY2VVcmw/OiBib29sZWFuO1xuICBzdGF0ZT86IHsgW2s6IHN0cmluZ106IGFueSB9O1xuICByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICByb3V0ZXJMaW5rQWN0aXZlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGFyaWFDdXJyZW50V2hlbkFjdGl2ZT86ICdwYWdlJyB8ICdzdGVwJyB8ICdsb2NhdGlvbicgfCAnZGF0ZScgfCAndGltZScgfCB0cnVlIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkF0dHJpYnV0ZXMge1xuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZXVpLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JldWkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFOLElBQVksZUFPWDtBQVBELFdBQVksZUFBZTtJQUN6Qiw0QkFBUyxDQUFBO0lBQ1QsNEJBQVMsQ0FBQTtJQUNULDRCQUFTLENBQUE7SUFDVCw0QkFBUyxDQUFBO0lBQ1QsNEJBQVMsQ0FBQTtJQUNULDhCQUFXLENBQUE7QUFDYixDQUFDLEVBUFcsZUFBZSxLQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc0FjdGl2ZU1hdGNoT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCB0eXBlIE5nQ3NzQ2xhc3MgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHwgeyBba2xhc3M6IHN0cmluZ106IGFueSB9O1xuXG5leHBvcnQgZW51bSBCcmVha3BvaW50SW5maXgge1xuICB4cyA9ICd4cycsXG4gIHNtID0gJ3NtJyxcbiAgbWQgPSAnbWQnLFxuICBsZyA9ICdsZycsXG4gIHhsID0gJ3hsJyxcbiAgeHhsID0gJ3h4bCdcbn1cblxuZXhwb3J0IHR5cGUgQnJlYWtwb2ludEluZml4U3RyaW5ncyA9IGtleW9mIHR5cGVvZiBCcmVha3BvaW50SW5maXg7XG5cbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnRzID0gQnJlYWtwb2ludEluZml4U3RyaW5ncyB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2l6ZXMgPSAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnIHwgJ3h4bCcgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIENvbG9ycyA9XG4gIHwgJ3ByaW1hcnknXG4gIHwgJ3NlY29uZGFyeSdcbiAgfCAnc3VjY2VzcydcbiAgfCAnZGFuZ2VyJ1xuICB8ICd3YXJuaW5nJ1xuICB8ICdpbmZvJ1xuICB8ICdkYXJrJ1xuICB8ICdsaWdodCdcbiAgfCAncHJpbWFyeS1ncmFkaWVudCdcbiAgfCAnc2Vjb25kYXJ5LWdyYWRpZW50J1xuICB8ICdzdWNjZXNzLWdyYWRpZW50J1xuICB8ICdkYW5nZXItZ3JhZGllbnQnXG4gIHwgJ3dhcm5pbmctZ3JhZGllbnQnXG4gIHwgJ2luZm8tZ3JhZGllbnQnXG4gIHwgJ2RhcmstZ3JhZGllbnQnXG4gIHwgJ2xpZ2h0LWdyYWRpZW50J1xuICB8IHN0cmluZztcblxuLy8gZXhwb3J0IHR5cGUgQ29sb3JzR3JhZGllbnQgPVxuLy8gICB8IENvbG9yc1xuLy8gICB8IGAke0NvbG9yc30tZ3JhZGllbnRgO1xuXG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3JzID0gQ29sb3JzIHwgJ2JvZHknIHwgJ3doaXRlJyB8ICd0cmFuc3BhcmVudCc7XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbnMgPSAnZG93bicgfCAndXAnIHwgJ3N0YXJ0JyB8ICdlbmQnIHwgJyc7XG5cbmV4cG9ydCB0eXBlIFRleHRDb2xvcnMgPVxuICB8IENvbG9yc1xuICB8ICdwcmltYXJ5LWVtcGhhc2lzJ1xuICB8ICdzZWNvbmRhcnktZW1waGFzaXMnXG4gIHwgJ3N1Y2Nlc3MtZW1waGFzaXMnXG4gIHwgJ2Rhbmdlci1lbXBoYXNpcydcbiAgfCAnd2FybmluZy1lbXBoYXNpcydcbiAgfCAnaW5mby1lbXBoYXNpcydcbiAgfCAnbGlnaHQtZW1waGFzaXMnXG4gIHwgJ2JvZHknXG4gIHwgJ2JvZHktZW1waGFzaXMnXG4gIHwgJ2JvZHktc2Vjb25kYXJ5J1xuICB8ICdib2R5LXRlcnRpYXJ5J1xuICB8ICdibGFjaydcbiAgfCAnYmxhY2stNTAnXG4gIHwgJ3doaXRlJ1xuICB8ICd3aGl0ZS01MCdcbiAgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEFsaWdubWVudCA9XG4gIHwgJ2Jhc2VsaW5lJ1xuICB8ICd0b3AnXG4gIHwgJ21pZGRsZSdcbiAgfCAnYm90dG9tJ1xuICB8ICd0ZXh0LXRvcCdcbiAgfCAndGV4dC1ib3R0b20nO1xuXG5leHBvcnQgdHlwZSBCYWRnZVBvc2l0aW9ucyA9XG4gIHwgJ3RvcC1zdGFydCdcbiAgfCAndG9wLWVuZCdcbiAgfCAnYm90dG9tLWVuZCdcbiAgfCAnYm90dG9tLXN0YXJ0J1xuICB8IHN0cmluZ1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgUGxhY2VtZW50cyA9XG4gIHwgJ2F1dG8nXG4gIHwgJ2F1dG8tc3RhcnQnXG4gIHwgJ2F1dG8tZW5kJ1xuICB8ICd0b3AtZW5kJ1xuICB8ICd0b3AnXG4gIHwgJ3RvcC1zdGFydCdcbiAgfCAnYm90dG9tLWVuZCdcbiAgfCAnYm90dG9tJ1xuICB8ICdib3R0b20tc3RhcnQnXG4gIHwgJ3JpZ2h0LXN0YXJ0J1xuICB8ICdyaWdodCdcbiAgfCAncmlnaHQtZW5kJ1xuICB8ICdsZWZ0LXN0YXJ0J1xuICB8ICdsZWZ0J1xuICB8ICdsZWZ0LWVuZCdcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIFNoYXBlcyA9XG4gIHwgJ3JvdW5kZWQnXG4gIHwgJ3JvdW5kZWQtdG9wJ1xuICB8ICdyb3VuZGVkLWVuZCdcbiAgfCAncm91bmRlZC1ib3R0b20nXG4gIHwgJ3JvdW5kZWQtc3RhcnQnXG4gIHwgJ3JvdW5kZWQtY2lyY2xlJ1xuICB8ICdyb3VuZGVkLXBpbGwnXG4gIHwgJ3JvdW5kZWQtMCdcbiAgfCAncm91bmRlZC0xJ1xuICB8ICdyb3VuZGVkLTInXG4gIHwgJ3JvdW5kZWQtMydcbiAgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFRyaWdnZXJzID0gJ2hvdmVyJyB8ICdmb2N1cycgfCAnY2xpY2snO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbnMgPSAnZml4ZWQnIHwgJ3N0aWNreSc7XG5cbmV4cG9ydCB0eXBlIElucHV0VHlwZSA9XG4gIHwgJ2J1dHRvbidcbiAgfCAnY29sb3InXG4gIHwgJ2RhdGUnXG4gIHwgJ2RhdGV0aW1lJ1xuICB8ICdkYXRldGltZS1sb2NhbCdcbiAgfCAnZW1haWwnXG4gIHwgJ2ZpbGUnXG4gIHwgJ2hpZGRlbidcbiAgfCAnaW1hZ2UnXG4gIHwgJ21vbnRoJ1xuICB8ICdudW1iZXInXG4gIHwgJ3Bhc3N3b3JkJ1xuICB8ICdyYW5nZSdcbiAgfCAncmVzZXQnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnc3VibWl0J1xuICB8ICd0ZWwnXG4gIHwgJ3RleHQnXG4gIHwgJ3RpbWUnXG4gIHwgJ3VybCdcbiAgfCAnd2VlaydcbiAgfCAnY2hlY2tib3gnXG4gIHwgJ3JhZGlvJztcblxuZXhwb3J0IGludGVyZmFjZSBJTmF2TGlua1Byb3BzIHtcbiAgcXVlcnlQYXJhbXM/OiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbiAgZnJhZ21lbnQ/OiBzdHJpbmc7XG4gIHF1ZXJ5UGFyYW1zSGFuZGxpbmc/OiAnbWVyZ2UnIHwgJ3ByZXNlcnZlJyB8ICcnIHwgbnVsbDtcbiAgcHJlc2VydmVGcmFnbWVudD86IGJvb2xlYW47XG4gIHNraXBMb2NhdGlvbkNoYW5nZT86IGJvb2xlYW47XG4gIHJlcGxhY2VVcmw/OiBib29sZWFuO1xuICBzdGF0ZT86IHsgW2s6IHN0cmluZ106IGFueSB9O1xuICByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICByb3V0ZXJMaW5rQWN0aXZlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGFyaWFDdXJyZW50V2hlbkFjdGl2ZT86ICdwYWdlJyB8ICdzdGVwJyB8ICdsb2NhdGlvbicgfCAnZGF0ZScgfCAndGltZScgfCB0cnVlIHwgZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkF0dHJpYnV0ZXMge1xuICBbcHJvcE5hbWU6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnO1xuIl19
@@ -1,12 +1,13 @@
1
- import { Component, ContentChild, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, Optional, Output } from '@angular/core';
1
+ import { booleanAttribute, Component, ContentChild, Directive, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, Optional, Output } from '@angular/core';
2
2
  import { DOCUMENT } from '@angular/common';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
3
  import { filter } from 'rxjs/operators';
5
4
  import { createPopper } from '@popperjs/core';
5
+ import { ThemeDirective } from '../../shared';
6
6
  import { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
7
7
  import { DropdownService } from '../dropdown.service';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../dropdown.service";
10
+ import * as i2 from "../../shared/theme.directive";
10
11
  // lightweight injection token
11
12
  export class DropdownToken {
12
13
  }
@@ -26,17 +27,12 @@ export class DropdownToggleDirective {
26
27
  * @type boolean
27
28
  */
28
29
  this.caret = true;
29
- this._split = false;
30
- }
31
- /**
32
- * Create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` class for proper spacing around the dropdown caret.
33
- * @type boolean
34
- */
35
- set split(value) {
36
- this._split = coerceBooleanProperty(value);
37
- }
38
- get split() {
39
- return this._split;
30
+ /**
31
+ * Create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` class for proper spacing around the dropdown caret.
32
+ * @type boolean
33
+ * @default false
34
+ */
35
+ this.split = false;
40
36
  }
41
37
  get hostClasses() {
42
38
  return {
@@ -55,10 +51,10 @@ export class DropdownToggleDirective {
55
51
  this.dropdownService = this.dropdownComponent?.dropdownService;
56
52
  }
57
53
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: DropdownToken, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
59
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: DropdownToggleDirective, isStandalone: true, selector: "[cDropdownToggle]", inputs: { dropdownComponent: "dropdownComponent", disabled: "disabled", caret: "caret", split: "split" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.hostClasses" } }, providers: [{ provide: DropdownToken, useExisting: forwardRef(() => DropdownComponent) }], exportAs: ["cDropdownToggle"], ngImport: i0 }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: DropdownToken, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.3", type: DropdownToggleDirective, isStandalone: true, selector: "[cDropdownToggle]", inputs: { dropdownComponent: "dropdownComponent", disabled: ["disabled", "disabled", booleanAttribute], caret: "caret", split: ["split", "split", booleanAttribute] }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.hostClasses" } }, providers: [{ provide: DropdownToken, useExisting: forwardRef(() => DropdownComponent) }], exportAs: ["cDropdownToggle"], ngImport: i0 }); }
60
56
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownToggleDirective, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownToggleDirective, decorators: [{
62
58
  type: Directive,
63
59
  args: [{
64
60
  selector: '[cDropdownToggle]',
@@ -71,11 +67,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
71
67
  }] }], propDecorators: { dropdownComponent: [{
72
68
  type: Input
73
69
  }], disabled: [{
74
- type: Input
70
+ type: Input,
71
+ args: [{ transform: booleanAttribute }]
75
72
  }], caret: [{
76
73
  type: Input
77
74
  }], split: [{
78
- type: Input
75
+ type: Input,
76
+ args: [{ transform: booleanAttribute }]
79
77
  }], hostClasses: [{
80
78
  type: HostBinding,
81
79
  args: ['class']
@@ -92,13 +90,17 @@ export class DropdownComponent {
92
90
  this.changeDetectorRef = changeDetectorRef;
93
91
  this.dropdownService = dropdownService;
94
92
  this.autoClose = true;
95
- this._dark = false;
96
93
  /**
97
94
  * Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property.
98
95
  * @type Placement
99
96
  */
100
97
  this.placement = 'bottom-start';
101
- this._popper = true;
98
+ /**
99
+ * If you want to disable dynamic positioning set this property to `false`.
100
+ * @type boolean
101
+ * @default true
102
+ */
103
+ this.popper = true;
102
104
  this._popperOptions = {
103
105
  placement: this.placement,
104
106
  modifiers: [],
@@ -115,29 +117,6 @@ export class DropdownComponent {
115
117
  this.listeners = [];
116
118
  this.dropdownStateSubscribe();
117
119
  }
118
- /**
119
- * Sets a darker color scheme to match a dark navbar.
120
- * @type boolean
121
- * @default false
122
- */
123
- set dark(value) {
124
- this._dark = coerceBooleanProperty(value);
125
- }
126
- ;
127
- get dark() {
128
- return this._dark;
129
- }
130
- /**
131
- * If you want to disable dynamic positioning set this property to `false`.
132
- * @type boolean
133
- * @default true
134
- */
135
- set popper(value) {
136
- this._popper = coerceBooleanProperty(value);
137
- }
138
- get popper() {
139
- return this._popper;
140
- }
141
120
  /**
142
121
  * Optional popper Options object, placement prop takes precedence over
143
122
  * @type Partial<Options>
@@ -182,7 +161,7 @@ export class DropdownComponent {
182
161
  * @default false
183
162
  */
184
163
  set visible(value) {
185
- const _value = coerceBooleanProperty(value);
164
+ const _value = value;
186
165
  if (_value !== this._visible) {
187
166
  this.activeTrap = _value;
188
167
  this._visible = _value;
@@ -324,12 +303,12 @@ export class DropdownComponent {
324
303
  this.listeners.fill(undefined);
325
304
  this.listeners = [];
326
305
  }
327
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownComponent, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DropdownService }], target: i0.ɵɵFactoryTarget.Component }); }
328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DropdownComponent, isStandalone: true, selector: "c-dropdown", inputs: { alignment: "alignment", autoClose: "autoClose", dark: "dark", direction: "direction", placement: "placement", popper: "popper", popperOptions: "popperOptions", variant: "variant", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class": "this.hostClasses", "style": "this.hostStyle" } }, providers: [DropdownService], queries: [{ propertyName: "_toggler", first: true, predicate: DropdownToggleDirective, descendants: true }, { propertyName: "_menu", first: true, predicate: DropdownMenuDirective, descendants: true }, { propertyName: "_menuElementRef", first: true, predicate: DropdownMenuDirective, descendants: true, read: ElementRef }], exportAs: ["cDropdown"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block;min-width:fit-content}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }); }
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownComponent, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DropdownService }], target: i0.ɵɵFactoryTarget.Component }); }
307
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: DropdownComponent, isStandalone: true, selector: "c-dropdown", inputs: { alignment: "alignment", autoClose: "autoClose", direction: "direction", placement: "placement", popper: ["popper", "popper", booleanAttribute], popperOptions: "popperOptions", variant: "variant", visible: ["visible", "visible", booleanAttribute] }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class": "this.hostClasses", "style": "this.hostStyle" } }, providers: [DropdownService], queries: [{ propertyName: "_toggler", first: true, predicate: DropdownToggleDirective, descendants: true }, { propertyName: "_menu", first: true, predicate: DropdownMenuDirective, descendants: true }, { propertyName: "_menuElementRef", first: true, predicate: DropdownMenuDirective, descendants: true, read: ElementRef }], exportAs: ["cDropdown"], usesOnChanges: true, hostDirectives: [{ directive: i2.ThemeDirective, inputs: ["dark", "dark"] }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }); }
329
308
  }
330
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownComponent, decorators: [{
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownComponent, decorators: [{
331
310
  type: Component,
332
- args: [{ selector: 'c-dropdown', template: '<ng-content></ng-content>', exportAs: 'cDropdown', providers: [DropdownService], standalone: true, styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block;min-width:fit-content}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
311
+ args: [{ selector: 'c-dropdown', template: '<ng-content />', exportAs: 'cDropdown', providers: [DropdownService], standalone: true, hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }], styles: [":host-context(.dropdown,.dropup):not(.btn-group){display:block}:host-context(.dropstart,.dropend):not(.btn-group){display:inline-flex}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-right-radius:0;border-bottom-right-radius:0}:host-context(html:not([dir=rtl])) :host-context(.input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host{direction:rtl}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :first-child{border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:first-child::ng-deep :not(:first-child):not(.dropdown-menu):not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child{border-top-right-radius:0;border-bottom-right-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :first-child:not(:only-of-type){border-top-left-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl] .input-group) :host:last-child::ng-deep :not(:first-child):not(.dropdown-menu){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
333
312
  }], ctorParameters: () => [{ type: Document, decorators: [{
334
313
  type: Inject,
335
314
  args: [DOCUMENT]
@@ -337,20 +316,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
337
316
  type: Input
338
317
  }], autoClose: [{
339
318
  type: Input
340
- }], dark: [{
341
- type: Input
342
319
  }], direction: [{
343
320
  type: Input
344
321
  }], placement: [{
345
322
  type: Input
346
323
  }], popper: [{
347
- type: Input
324
+ type: Input,
325
+ args: [{ transform: booleanAttribute }]
348
326
  }], popperOptions: [{
349
327
  type: Input
350
328
  }], variant: [{
351
329
  type: Input
352
330
  }], visible: [{
353
- type: Input
331
+ type: Input,
332
+ args: [{ transform: booleanAttribute }]
354
333
  }], visibleChange: [{
355
334
  type: Output
356
335
  }], _toggler: [{
@@ -372,4 +351,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
372
351
  type: HostListener,
373
352
  args: ['click', ['$event']]
374
353
  }] } });
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFdEQsOEJBQThCO0FBQzlCLE1BQU0sT0FBZ0IsYUFBYTtDQUFHO0FBUXRDLE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNyQixRQUF3QjtRQUZwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQVU3Qzs7OztXQUlHO1FBQ00sYUFBUSxHQUFhLEtBQUssQ0FBQztRQUVwQzs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBZWQsV0FBTSxHQUFHLEtBQUssQ0FBQztJQW5DcEIsQ0FB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b3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuXG5pbXBvcnQgeyBEcm9wZG93bk1lbnVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL2Ryb3Bkb3duLnNlcnZpY2UnO1xuXG4vLyBsaWdodHdlaWdodCBpbmplY3Rpb24gdG9rZW5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcm9wZG93blRva2VuIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjRHJvcGRvd25Ub2dnbGVdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEcm9wZG93blRva2VuLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCkgfV0sXG4gIGV4cG9ydEFzOiAnY0Ryb3Bkb3duVG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zcGxpdDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcG9wcGVyOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93blRva2VuXG4gICkge31cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIHRvZ2dsZXIuXG4gICAqIEB0eXBlIERyb3Bkb3duQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgQElucHV0KCkgZHJvcGRvd25Db21wb25lbnQ/OiBEcm9wZG93bkNvbXBvbmVudDtcblxuICAvKipcbiAgICogRGlzYWJsZXMgdGhlIHRvZ2dsZXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHBzZXVkbyBlbGVtZW50IGNhcmV0IG9uIHRvZ2dsZXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGNhcmV0ID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ3JlYXRlIHNwbGl0IGJ1dHRvbiBkcm9wZG93bnMgd2l0aCB2aXJ0dWFsbHkgdGhlIHNhbWUgbWFya3VwIGFzIHNpbmdsZSBidXR0b24gZHJvcGRvd25zLCBidXQgd2l0aCB0aGUgYWRkaXRpb24gb2YgYC5kcm9wZG93bi10b2dnbGUtc3BsaXRgIGNsYXNzIGZvciBwcm9wZXIgc3BhY2luZyBhcm91bmQgdGhlIGRyb3Bkb3duIGNhcmV0LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3BsaXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zcGxpdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgc3BsaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NwbGl0O1xuICB9XG5cbiAgcHJpdmF0ZSBfc3BsaXQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdkcm9wZG93bi10b2dnbGUnOiB0aGlzLmNhcmV0LFxuICAgICAgJ2Ryb3Bkb3duLXRvZ2dsZS1zcGxpdCc6IHRoaXMuc3BsaXQsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZFxuICAgIH07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuZHJvcGRvd25TZXJ2aWNlLnRvZ2dsZSh7IHZpc2libGU6ICd0b2dnbGUnLCBkcm9wZG93bjogdGhpcy5kcm9wZG93biB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudCkge1xuICAgICAgdGhpcy5kcm9wZG93biA9IHRoaXMuZHJvcGRvd25Db21wb25lbnQ7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZSA9IHRoaXMuZHJvcGRvd25Db21wb25lbnQ/LmRyb3Bkb3duU2VydmljZTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kcm9wZG93bicsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY0Ryb3Bkb3duJyxcbiAgcHJvdmlkZXJzOiBbRHJvcGRvd25TZXJ2aWNlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kYXJrOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXNpYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYWxpZ25tZW50IG9mIGRyb3Bkb3duIG1lbnUuXG4gICAqIEB0eXBlIHsnc3RhcnQnIHwgJ2VuZCcgfCB7IHhzOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgc206ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBtZDogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IGxnOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgeGw6ICdzdGFydCcgfCAnZW5kJ30gfCB7IHh4bDogJ3N0YXJ0JyB8ICdlbmQnfX1cbiAgICovXG4gIEBJbnB1dCgpIGFsaWdubWVudD86IHN0cmluZztcblxuICBASW5wdXQoKSBhdXRvQ2xvc2U6IGJvb2xlYW4gfCAnaW5zaWRlJyB8ICdvdXRzaWRlJyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFNldHMgYSBkYXJrZXIgY29sb3Igc2NoZW1lIHRvIG1hdGNoIGEgZGFyayBuYXZiYXIuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYXJrKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGFyayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH07XG5cbiAgZ2V0IGRhcmsoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rhcms7XG4gIH1cblxuICBwcml2YXRlIF9kYXJrID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldHMgYSBzcGVjaWZpZWQgIGRpcmVjdGlvbiBhbmQgbG9jYXRpb24gb2YgdGhlIGRyb3Bkb3duIG1lbnUuXG4gICAqIEB0eXBlICdkcm9wdXAnIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCdcbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbj86ICdjZW50ZXInIHwgJ2Ryb3B1cCcgfCAnZHJvcHVwLWNlbnRlcicgfCAnZHJvcGVuZCcgfCAnZHJvcHN0YXJ0JztcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBwbGFjZW1lbnQgb2YgeW91ciBjb21wb25lbnQgYWZ0ZXIgUG9wcGVyLmpzIGhhcyBhcHBsaWVkIGFsbCB0aGUgbW9kaWZpZXJzIHRoYXQgbWF5IGhhdmUgZmxpcHBlZCBvciBhbHRlcmVkIHRoZSBvcmlnaW5hbGx5IHByb3ZpZGVkIHBsYWNlbWVudCBwcm9wZXJ0eS5cbiAgICogQHR5cGUgUGxhY2VtZW50XG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGR5bmFtaWMgcG9zaXRpb25pbmcgc2V0IHRoaXMgcHJvcGVydHkgdG8gYGZhbHNlYC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcG9wcGVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcG9wcGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBwb3BwZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlcjtcbiAgfVxuXG4gIHByaXZhdGUgX3BvcHBlciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHBvcHBlciBPcHRpb25zIG9iamVjdCwgcGxhY2VtZW50IHByb3AgdGFrZXMgcHJlY2VkZW5jZSBvdmVyXG4gICAqIEB0eXBlIFBhcnRpYWw8T3B0aW9ucz5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwb3BwZXJPcHRpb25zKHZhbHVlOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XG4gICAgdGhpcy5fcG9wcGVyT3B0aW9ucyA9IHsgLi4udGhpcy5fcG9wcGVyT3B0aW9ucywgLi4udmFsdWUgfTtcbiAgfTtcblxuICBnZXQgcG9wcGVyT3B0aW9ucygpOiBQYXJ0aWFsPE9wdGlvbnM+IHtcbiAgICBsZXQgcGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQ7XG4gICAgc3dpdGNoICh0aGlzLmRpcmVjdGlvbikge1xuICAgICAgY2FzZSAnZHJvcHVwJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAndG9wLXN0YXJ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkcm9wZW5kJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAncmlnaHQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Ryb3BzdGFydCc6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2xlZnQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZHJvcHVwLWNlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ3RvcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5hbGlnbm1lbnQgPT09ICdlbmQnKSB7XG4gICAgICBwbGFjZW1lbnQgPSAnYm90dG9tLWVuZCc7XG4gICAgfVxuICAgIHRoaXMuX3BvcHBlck9wdGlvbnMgPSB7IC4uLnRoaXMuX3BvcHBlck9wdGlvbnMsIHBsYWNlbWVudDogcGxhY2VtZW50IH07XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlck9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIF9wb3BwZXJPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG4gICAgbW9kaWZpZXJzOiBbXSxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRyb3Bkb3duIHZhcmlhbnQgdG8gYSBidG4tZ3JvdXAsIGRyb3Bkb3duLCBpbnB1dC1ncm91cCwgYW5kIG5hdi1pdGVtLlxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudD86ICdidG4tZ3JvdXAnIHwgJ2Ryb3Bkb3duJyB8ICdpbnB1dC1ncm91cCcgfCAnbmF2LWl0ZW0nID0gJ2Ryb3Bkb3duJztcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IF92YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKF92YWx1ZSAhPT0gdGhpcy5fdmlzaWJsZSkge1xuICAgICAgdGhpcy5hY3RpdmVUcmFwID0gX3ZhbHVlO1xuICAgICAgdGhpcy5fdmlzaWJsZSA9IF92YWx1ZTtcbiAgICAgIF92YWx1ZSA/IHRoaXMuY3JlYXRlUG9wcGVySW5zdGFuY2UoKSA6IHRoaXMuZGVzdHJveVBvcHBlckluc3RhbmNlKCk7XG4gICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChfdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgZHJvcGRvd25Db250ZXh0ID0geyAkaW1wbGljaXQ6IHRoaXMudmlzaWJsZSB9O1xuICBAQ29udGVudENoaWxkKERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlKSBfdG9nZ2xlciE6IERyb3Bkb3duVG9nZ2xlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKERyb3Bkb3duTWVudURpcmVjdGl2ZSkgX21lbnUhOiBEcm9wZG93bk1lbnVEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25NZW51RGlyZWN0aXZlLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgX21lbnVFbGVtZW50UmVmITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgYWN0aXZlVHJhcCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwb3BwZXJJbnN0YW5jZSE6IEluc3RhbmNlIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGxpc3RlbmVyczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRyb3Bkb3duOlxuICAgICAgICAodGhpcy52YXJpYW50ID09PSAnZHJvcGRvd24nIHx8IHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykgJiZcbiAgICAgICAgIXRoaXMuZGlyZWN0aW9uLFxuICAgICAgW2Ake3RoaXMuZGlyZWN0aW9ufWBdOiAhIXRoaXMuZGlyZWN0aW9uLFxuICAgICAgW2Ake3RoaXMudmFyaWFudH1gXTogISF0aGlzLnZhcmlhbnQsXG4gICAgICAnZHJvcHVwJzogdGhpcy5kaXJlY3Rpb24gPT09ICdkcm9wdXAnIHx8IHRoaXMuZGlyZWN0aW9uID09PSAnZHJvcHVwLWNlbnRlcicsXG4gICAgICBzaG93OiB0aGlzLnZpc2libGVcbiAgICB9O1xuICB9XG5cbiAgLy8gdG9kbzogZmluZCBiZXR0ZXIgc29sdXRpb25cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIGdldCBob3N0U3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YXJpYW50ID09PSAnaW5wdXQtZ3JvdXAnID8geyBkaXNwbGF5OiAnY29udGVudHMnIH0gOiB7fTtcbiAgfVxuXG4gIHByaXZhdGUgY2xpY2tlZFRhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbkhvc3RDbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrZWRUYXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgZHJvcGRvd25TdGF0ZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID1cbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuZHJvcGRvd25TdGF0ZSQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcyA9PT0gc3RhdGUuZHJvcGRvd247XG4gICAgICAgICAgfSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCd2aXNpYmxlJyBpbiBzdGF0ZSkge1xuICAgICAgICAgICAgc3RhdGU/LnZpc2libGUgPT09ICd0b2dnbGUnXG4gICAgICAgICAgICA/IHRoaXMudG9nZ2xlRHJvcGRvd24oKVxuICAgICAgICAgICAgOiAodGhpcy52aXNpYmxlID0gc3RhdGUudmlzaWJsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3RvZ2dsZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQ/LmNsb3Nlc3QoJ1tjRHJvcGRvd25Ub2dnbGVdJykpKSB7XG4gICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fdG9nZ2xlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICduYXYtbGluaycpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKHRoaXMudmlzaWJsZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Zpc2libGUnXSAmJiAhY2hhbmdlc1sndmlzaWJsZSddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShjaGFuZ2VzWyd2aXNpYmxlJ10uY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaWJlKGZhbHNlKTtcbiAgICB0aGlzLmRlc3Ryb3lQb3BwZXJJbnN0YW5jZSgpO1xuICB9XG5cbiAgc2V0VmlzaWJsZVN0YXRlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UudG9nZ2xlKHsgdmlzaWJsZTogdmFsdWUsIGRyb3Bkb3duOiB0aGlzIH0pO1xuICB9XG5cbiAgLy8gdG9kbzogdHVybiBvZmYgcG9wcGVyIGluIG5hdmJhci1uYXZcbiAgY3JlYXRlUG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RvZ2dsZXIgJiYgdGhpcy5fbWVudSkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBwb3BwZXIgcG9zaXRpb24gY2FsY3VsYXRlIChzZWUgYWxzbzogZHJvcGRvd24tbWVudS5jb21wb25lbnQpXG4gICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgIGlmICh0aGlzLnBvcHBlcikge1xuICAgICAgICAgIHRoaXMucG9wcGVySW5zdGFuY2UgPSBjcmVhdGVQb3BwZXIoXG4gICAgICAgICAgICB0aGlzLl90b2dnbGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgeyAuLi50aGlzLnBvcHBlck9wdGlvbnMgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldExpc3RlbmVycygpO1xuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveVBvcHBlckluc3RhbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlPy5kZXN0cm95KCk7XG4gICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLl9tZW51RWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5jbGlja2VkVGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl90b2dnbGVyPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hdXRvQ2xvc2UgPT09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNsaWNrZWRUYXJnZXQgPT09IHRhcmdldCAmJiB0aGlzLmF1dG9DbG9zZSA9PT0gJ2luc2lkZScpIHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNsaWNrZWRUYXJnZXQgIT09IHRhcmdldCAmJiB0aGlzLmF1dG9DbG9zZSA9PT0gJ291dHNpZGUnKSB7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnICYmIHRoaXMuYXV0b0Nsb3NlICE9PSBmYWxzZSkge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2tleXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInICYmIHRoaXMuYXV0b0Nsb3NlICE9PSBmYWxzZSAmJiAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgodW5MaXN0ZW4pID0+IHtcbiAgICAgIHVuTGlzdGVuKCk7XG4gICAgfSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMubGlzdGVuZXJzLmZpbGwodW5kZWZpbmVkKTtcbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICB9XG59XG4iXX0=
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGdCQUFnQixFQUVoQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBS0wsUUFBUSxFQUNSLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFdEQsOEJBQThCO0FBQzlCLE1BQU0sT0FBZ0IsYUFBYTtDQUFHO0FBUXRDLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNyQixRQUF3QjtRQUZwQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQVU3Qzs7OztXQUlHO1FBQ3FDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbEU7OztXQUdHO1FBQ00sVUFBSyxHQUFHLElBQUksQ0FBQztRQUV0Qjs7OztXQUlHO1FBQ3FDLFVBQUss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QUFJLGtCQUNBLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7OzBCQUs5RCxNQUFNOzJCQUFDLFFBQVE7NktBY1QsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFPa0MsTUFBTTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPbEMsYUFBYTtzQkFEaEIsS0FBSztnQkE2Q0csT0FBTztzQkFBZixLQUFLO2dCQVFGLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFpQjVCLGFBQWE7c0JBQXRCLE1BQU07Z0JBR2dDLFFBQVE7c0JBQTlDLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUNBLEtBQUs7c0JBQXpDLFlBQVk7dUJBQUMscUJBQXFCO2dCQUN3QixlQUFlO3NCQUF6RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFTckQsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBZWhCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQVFaLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuXG5pbXBvcnQgeyBUaGVtZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBEcm9wZG93bk1lbnVEaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL2Ryb3Bkb3duLnNlcnZpY2UnO1xuXG4vLyBsaWdodHdlaWdodCBpbmplY3Rpb24gdG9rZW5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcm9wZG93blRva2VuIHt9XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjRHJvcGRvd25Ub2dnbGVdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBEcm9wZG93blRva2VuLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93bkNvbXBvbmVudCkgfV0sXG4gIGV4cG9ydEFzOiAnY0Ryb3Bkb3duVG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRyb3Bkb3duPzogRHJvcGRvd25Ub2tlblxuICApIHt9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIHRoZSB0b2dnbGVyLlxuICAgKiBAdHlwZSBEcm9wZG93bkNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIEBJbnB1dCgpIGRyb3Bkb3duQ29tcG9uZW50PzogRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSB0b2dnbGVyLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlcyBwc2V1ZG8gZWxlbWVudCBjYXJldCBvbiB0b2dnbGVyLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBjYXJldCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBzcGxpdCBidXR0b24gZHJvcGRvd25zIHdpdGggdmlydHVhbGx5IHRoZSBzYW1lIG1hcmt1cCBhcyBzaW5nbGUgYnV0dG9uIGRyb3Bkb3ducywgYnV0IHdpdGggdGhlIGFkZGl0aW9uIG9mIGAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0YCBjbGFzcyBmb3IgcHJvcGVyIHNwYWNpbmcgYXJvdW5kIHRoZSBkcm9wZG93biBjYXJldC5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNwbGl0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnZHJvcGRvd24tdG9nZ2xlJzogdGhpcy5jYXJldCxcbiAgICAgICdkcm9wZG93bi10b2dnbGUtc3BsaXQnOiB0aGlzLnNwbGl0LFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoeyB2aXNpYmxlOiAndG9nZ2xlJywgZHJvcGRvd246IHRoaXMuZHJvcGRvd24gfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25Db21wb25lbnQpIHtcbiAgICAgIHRoaXMuZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duQ29tcG9uZW50O1xuICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UgPSB0aGlzLmRyb3Bkb3duQ29tcG9uZW50Py5kcm9wZG93blNlcnZpY2U7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjRHJvcGRvd24nLFxuICBwcm92aWRlcnM6IFtEcm9wZG93blNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBUaGVtZURpcmVjdGl2ZSwgaW5wdXRzOiBbJ2RhcmsnXSB9XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGFsaWdubWVudCBvZiBkcm9wZG93biBtZW51LlxuICAgKiBAdHlwZSB7J3N0YXJ0JyB8ICdlbmQnIHwgeyB4czogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IHNtOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgbWQ6ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBsZzogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IHhsOiAnc3RhcnQnIHwgJ2VuZCd9IHwgeyB4eGw6ICdzdGFydCcgfCAnZW5kJ319XG4gICAqL1xuICBASW5wdXQoKSBhbGlnbm1lbnQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgYXV0b0Nsb3NlOiBib29sZWFuIHwgJ2luc2lkZScgfCAnb3V0c2lkZScgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3BlY2lmaWVkICBkaXJlY3Rpb24gYW5kIGxvY2F0aW9uIG9mIHRoZSBkcm9wZG93biBtZW51LlxuICAgKiBAdHlwZSAnZHJvcHVwJyB8ICdkcm9wZW5kJyB8ICdkcm9wc3RhcnQnXG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb24/OiAnY2VudGVyJyB8ICdkcm9wdXAnIHwgJ2Ryb3B1cC1jZW50ZXInIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCc7XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgcGxhY2VtZW50IG9mIHlvdXIgY29tcG9uZW50IGFmdGVyIFBvcHBlci5qcyBoYXMgYXBwbGllZCBhbGwgdGhlIG1vZGlmaWVycyB0aGF0IG1heSBoYXZlIGZsaXBwZWQgb3IgYWx0ZXJlZCB0aGUgb3JpZ2luYWxseSBwcm92aWRlZCBwbGFjZW1lbnQgcHJvcGVydHkuXG4gICAqIEB0eXBlIFBsYWNlbWVudFxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0JztcblxuICAvKipcbiAgICogSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBkeW5hbWljIHBvc2l0aW9uaW5nIHNldCB0aGlzIHByb3BlcnR5IHRvIGBmYWxzZWAuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBvcHBlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHBvcHBlciBPcHRpb25zIG9iamVjdCwgcGxhY2VtZW50IHByb3AgdGFrZXMgcHJlY2VkZW5jZSBvdmVyXG4gICAqIEB0eXBlIFBhcnRpYWw8T3B0aW9ucz5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwb3BwZXJPcHRpb25zKHZhbHVlOiBQYXJ0aWFsPE9wdGlvbnM+KSB7XG4gICAgdGhpcy5fcG9wcGVyT3B0aW9ucyA9IHsgLi4udGhpcy5fcG9wcGVyT3B0aW9ucywgLi4udmFsdWUgfTtcbiAgfTtcblxuICBnZXQgcG9wcGVyT3B0aW9ucygpOiBQYXJ0aWFsPE9wdGlvbnM+IHtcbiAgICBsZXQgcGxhY2VtZW50ID0gdGhpcy5wbGFjZW1lbnQ7XG4gICAgc3dpdGNoICh0aGlzLmRpcmVjdGlvbikge1xuICAgICAgY2FzZSAnZHJvcHVwJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAndG9wLXN0YXJ0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkcm9wZW5kJzoge1xuICAgICAgICBwbGFjZW1lbnQgPSAncmlnaHQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Ryb3BzdGFydCc6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2xlZnQtc3RhcnQnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZHJvcHVwLWNlbnRlcic6IHtcbiAgICAgICAgcGxhY2VtZW50ID0gJ3RvcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5hbGlnbm1lbnQgPT09ICdlbmQnKSB7XG4gICAgICBwbGFjZW1lbnQgPSAnYm90dG9tLWVuZCc7XG4gICAgfVxuICAgIHRoaXMuX3BvcHBlck9wdGlvbnMgPSB7IC4uLnRoaXMuX3BvcHBlck9wdGlvbnMsIHBsYWNlbWVudDogcGxhY2VtZW50IH07XG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlck9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIF9wb3BwZXJPcHRpb25zOiBQYXJ0aWFsPE9wdGlvbnM+ID0ge1xuICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG4gICAgbW9kaWZpZXJzOiBbXSxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRyb3Bkb3duIHZhcmlhbnQgdG8gYSBidG4tZ3JvdXAsIGRyb3Bkb3duLCBpbnB1dC1ncm91cCwgYW5kIG5hdi1pdGVtLlxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudD86ICdidG4tZ3JvdXAnIHwgJ2Ryb3Bkb3duJyB8ICdpbnB1dC1ncm91cCcgfCAnbmF2LWl0ZW0nID0gJ2Ryb3Bkb3duJztcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGRyb3Bkb3duIG1lbnUgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBfdmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAoX3ZhbHVlICE9PSB0aGlzLl92aXNpYmxlKSB7XG4gICAgICB0aGlzLmFjdGl2ZVRyYXAgPSBfdmFsdWU7XG4gICAgICB0aGlzLl92aXNpYmxlID0gX3ZhbHVlO1xuICAgICAgX3ZhbHVlID8gdGhpcy5jcmVhdGVQb3BwZXJJbnN0YW5jZSgpIDogdGhpcy5kZXN0cm95UG9wcGVySW5zdGFuY2UoKTtcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KF92YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBkcm9wZG93bkNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy52aXNpYmxlIH07XG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUpIF90b2dnbGVyITogRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25NZW51RGlyZWN0aXZlKSBfbWVudSE6IERyb3Bkb3duTWVudURpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBfbWVudUVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBhY3RpdmVUcmFwID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHBvcHBlckluc3RhbmNlITogSW5zdGFuY2UgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgbGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZHJvcGRvd246XG4gICAgICAgICh0aGlzLnZhcmlhbnQgPT09ICdkcm9wZG93bicgfHwgdGhpcy52YXJpYW50ID09PSAnbmF2LWl0ZW0nKSAmJlxuICAgICAgICAhdGhpcy5kaXJlY3Rpb24sXG4gICAgICBbYCR7dGhpcy5kaXJlY3Rpb259YF06ICEhdGhpcy5kaXJlY3Rpb24sXG4gICAgICBbYCR7dGhpcy52YXJpYW50fWBdOiAhIXRoaXMudmFyaWFudCxcbiAgICAgICdkcm9wdXAnOiB0aGlzLmRpcmVjdGlvbiA9PT0gJ2Ryb3B1cCcgfHwgdGhpcy5kaXJlY3Rpb24gPT09ICdkcm9wdXAtY2VudGVyJyxcbiAgICAgIHNob3c6IHRoaXMudmlzaWJsZVxuICAgIH07XG4gIH1cblxuICAvLyB0b2RvOiBmaW5kIGJldHRlciBzb2x1dGlvblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgZ2V0IGhvc3RTdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhbnQgPT09ICdpbnB1dC1ncm91cCcgPyB7IGRpc3BsYXk6ICdjb250ZW50cycgfSA6IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBjbGlja2VkVGFyZ2V0ITogSFRNTEVsZW1lbnQ7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uSG9zdENsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tlZFRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBkcm9wZG93blN0YXRlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPVxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5kcm9wZG93blN0YXRlJC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzID09PSBzdGF0ZS5kcm9wZG93bjtcbiAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICBpZiAoJ3Zpc2libGUnIGluIHN0YXRlKSB7XG4gICAgICAgICAgICBzdGF0ZT8udmlzaWJsZSA9PT0gJ3RvZ2dsZSdcbiAgICAgICAgICAgID8gdGhpcy50b2dnbGVEcm9wZG93bigpXG4gICAgICAgICAgICA6ICh0aGlzLnZpc2libGUgPSBzdGF0ZS52aXNpYmxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdG9nZ2xlcj8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldD8uY2xvc2VzdCgnW2NEcm9wZG93blRvZ2dsZV0nKSkpIHtcbiAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl90b2dnbGVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ25hdi1saW5rJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUodGhpcy52aXNpYmxlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddICYmICFjaGFuZ2VzWyd2aXNpYmxlJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGNoYW5nZXNbJ3Zpc2libGUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xuICAgIHRoaXMuZGVzdHJveVBvcHBlckluc3RhbmNlKCk7XG4gIH1cblxuICBzZXRWaXNpYmxlU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoeyB2aXNpYmxlOiB2YWx1ZSwgZHJvcGRvd246IHRoaXMgfSk7XG4gIH1cblxuICAvLyB0b2RvOiB0dXJuIG9mZiBwb3BwZXIgaW4gbmF2YmFyLW5hdlxuICBjcmVhdGVQb3BwZXJJbnN0YW5jZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdG9nZ2xlciAmJiB0aGlzLl9tZW51KSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIC8vIHdvcmthcm91bmQgZm9yIHBvcHBlciBwb3NpdGlvbiBjYWxjdWxhdGUgKHNlZSBhbHNvOiBkcm9wZG93bi1tZW51LmNvbXBvbmVudClcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICB0aGlzLl9tZW51LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgaWYgKHRoaXMucG9wcGVyKSB7XG4gICAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IGNyZWF0ZVBvcHBlcihcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB7IC4uLnRoaXMucG9wcGVyT3B0aW9ucyB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95UG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMucG9wcGVySW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuX21lbnVFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLmNsaWNrZWRUYXJnZXQgPSB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmF1dG9DbG9zZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xpY2tlZFRhcmdldCA9PT0gdGFyZ2V0ICYmIHRoaXMuYXV0b0Nsb3NlID09PSAnaW5zaWRlJykge1xuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2xpY2tlZFRhcmdldCAhPT0gdGFyZ2V0ICYmIHRoaXMuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScpIHtcbiAgICAgICAgICB0aGlzLnNldFZpc2libGVTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlKSB7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAna2V5dXAnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgdGhpcy5hdXRvQ2xvc2UgIT09IGZhbHNlICYmICF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKCh1bkxpc3RlbikgPT4ge1xuICAgICAgdW5MaXN0ZW4oKTtcbiAgICB9KTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5saXN0ZW5lcnMuZmlsbCh1bmRlZmluZWQpO1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cbn1cbiJdfQ==
@@ -36,10 +36,10 @@ export class DropdownCloseDirective {
36
36
  !this.disabled && this.dropdownService.toggle({ visible: false, dropdown: this.dropdown });
37
37
  }
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownCloseDirective, deps: [{ token: i1.DropdownService }, { token: i2.DropdownComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: DropdownCloseDirective, isStandalone: true, selector: "[cDropdownClose]", inputs: { disabled: "disabled", dropdownComponent: "dropdownComponent", tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick($event)", "keyup": "onKeyUp($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex", "attr.aria-disabled": "this.isDisabled" } }, exportAs: ["cDropdownClose"], ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownCloseDirective, deps: [{ token: i1.DropdownService }, { token: i2.DropdownComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: DropdownCloseDirective, isStandalone: true, selector: "[cDropdownClose]", inputs: { disabled: "disabled", dropdownComponent: "dropdownComponent", tabIndex: "tabIndex" }, host: { listeners: { "click": "onClick($event)", "keyup": "onKeyUp($event)" }, properties: { "class": "this.hostClasses", "attr.tabindex": "this.tabIndex", "attr.aria-disabled": "this.isDisabled" } }, exportAs: ["cDropdownClose"], ngImport: i0 }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownCloseDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownCloseDirective, decorators: [{
43
43
  type: Directive,
44
44
  args: [{
45
45
  selector: '[cDropdownClose]',
@@ -6,10 +6,10 @@ export class DropdownDividerDirective {
6
6
  'dropdown-divider': true
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownDividerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: DropdownDividerDirective, isStandalone: true, selector: "[cDropdownDivider]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownDividerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: DropdownDividerDirective, isStandalone: true, selector: "[cDropdownDivider]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownDividerDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownDividerDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cDropdownDivider]',
@@ -6,10 +6,10 @@ export class DropdownHeaderDirective {
6
6
  'dropdown-header': true,
7
7
  };
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: DropdownHeaderDirective, isStandalone: true, selector: "[cDropdownHeader]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: DropdownHeaderDirective, isStandalone: true, selector: "[cDropdownHeader]", host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DropdownHeaderDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DropdownHeaderDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[cDropdownHeader]',