@coreui/angular-pro 4.0.0-alpha.8 → 4.0.0-beta.2

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 (281) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +13 -14
  3. package/esm2020/lib/accordion/accordion/accordion.component.mjs +3 -3
  4. package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +17 -4
  5. package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +30 -13
  6. package/esm2020/lib/accordion/accordion.module.mjs +4 -4
  7. package/esm2020/lib/accordion/accordion.service.mjs +7 -7
  8. package/esm2020/lib/alert/alert-heading.directive.mjs +3 -3
  9. package/esm2020/lib/alert/alert-link.directive.mjs +3 -3
  10. package/esm2020/lib/alert/alert.component.mjs +15 -4
  11. package/esm2020/lib/alert/alert.module.mjs +4 -4
  12. package/esm2020/lib/avatar/avatar.component.mjs +3 -3
  13. package/esm2020/lib/avatar/avatar.module.mjs +4 -4
  14. package/esm2020/lib/backdrop/backdrop.service.mjs +3 -3
  15. package/esm2020/lib/badge/badge.component.mjs +3 -3
  16. package/esm2020/lib/badge/badge.module.mjs +4 -4
  17. package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
  18. package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  19. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
  20. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +4 -4
  21. package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  22. package/esm2020/lib/button/button-close.directive.mjs +3 -3
  23. package/esm2020/lib/button/button.directive.mjs +7 -4
  24. package/esm2020/lib/button/button.module.mjs +4 -4
  25. package/esm2020/lib/button-group/button-group/button-group.component.mjs +3 -3
  26. package/esm2020/lib/button-group/button-group.module.mjs +4 -4
  27. package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
  28. package/esm2020/lib/callout/callout.component.mjs +3 -3
  29. package/esm2020/lib/callout/callout.module.mjs +4 -4
  30. package/esm2020/lib/card/card-body.component.mjs +3 -3
  31. package/esm2020/lib/card/card-footer.component.mjs +3 -3
  32. package/esm2020/lib/card/card-group.component.mjs +3 -3
  33. package/esm2020/lib/card/card-header-actions.component.mjs +3 -3
  34. package/esm2020/lib/card/card-header.component.mjs +3 -3
  35. package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
  36. package/esm2020/lib/card/card-img.directive.mjs +3 -3
  37. package/esm2020/lib/card/card-link.directive.mjs +3 -3
  38. package/esm2020/lib/card/card-subtitle.directive.mjs +3 -3
  39. package/esm2020/lib/card/card-text.directive.mjs +3 -3
  40. package/esm2020/lib/card/card-title.directive.mjs +3 -3
  41. package/esm2020/lib/card/card.component.mjs +3 -3
  42. package/esm2020/lib/card/card.module.mjs +4 -4
  43. package/esm2020/lib/carousel/carousel/carousel.component.mjs +82 -34
  44. package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  45. package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
  46. package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
  47. package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
  48. package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +13 -5
  49. package/esm2020/lib/carousel/carousel-state.mjs +12 -6
  50. package/esm2020/lib/carousel/carousel.config.mjs +3 -3
  51. package/esm2020/lib/carousel/carousel.module.mjs +4 -4
  52. package/esm2020/lib/carousel/carousel.service.mjs +4 -4
  53. package/esm2020/lib/collapse/collapse.animations.mjs +10 -1
  54. package/esm2020/lib/collapse/collapse.directive.mjs +65 -21
  55. package/esm2020/lib/collapse/collapse.module.mjs +4 -4
  56. package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +73 -48
  57. package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +64 -0
  58. package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
  59. package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
  60. package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
  61. package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +42 -24
  62. package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
  63. package/esm2020/lib/dropdown/dropdown.module.mjs +14 -9
  64. package/esm2020/lib/dropdown/dropdown.service.mjs +3 -3
  65. package/esm2020/lib/dropdown/public_api.mjs +2 -1
  66. package/esm2020/lib/element-cover/element-cover.component.mjs +71 -0
  67. package/esm2020/lib/element-cover/element-cover.module.mjs +30 -0
  68. package/esm2020/lib/element-cover/index.mjs +2 -0
  69. package/esm2020/lib/element-cover/public_api.mjs +3 -0
  70. package/esm2020/lib/footer/footer.component.mjs +3 -3
  71. package/esm2020/lib/footer/footer.module.mjs +4 -4
  72. package/esm2020/lib/form/form/form.directive.mjs +3 -3
  73. package/esm2020/lib/form/form-check/form-check-input.directive.mjs +7 -4
  74. package/esm2020/lib/form/form-check/form-check-label.directive.mjs +3 -3
  75. package/esm2020/lib/form/form-check/form-check.component.mjs +3 -3
  76. package/esm2020/lib/form/form-control/form-control.directive.mjs +3 -3
  77. package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  78. package/esm2020/lib/form/form-floating/form-floating.directive.mjs +3 -3
  79. package/esm2020/lib/form/form-label/form-label.directive.mjs +3 -3
  80. package/esm2020/lib/form/form-select/form-select.directive.mjs +3 -3
  81. package/esm2020/lib/form/form-text/form-text.directive.mjs +3 -3
  82. package/esm2020/lib/form/form.module.mjs +4 -4
  83. package/esm2020/lib/form/input-group/input-group.component.mjs +3 -3
  84. package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
  85. package/esm2020/lib/grid/col.component.mjs +3 -3
  86. package/esm2020/lib/grid/col.directive.mjs +10 -5
  87. package/esm2020/lib/grid/container.component.mjs +3 -3
  88. package/esm2020/lib/grid/grid.module.mjs +4 -4
  89. package/esm2020/lib/grid/gutter.directive.mjs +3 -3
  90. package/esm2020/lib/grid/row.component.mjs +3 -3
  91. package/esm2020/lib/grid/row.directive.mjs +3 -3
  92. package/esm2020/lib/header/header/header.component.mjs +3 -3
  93. package/esm2020/lib/header/header-brand/header-brand.component.mjs +3 -3
  94. package/esm2020/lib/header/header-divider/header-divider.component.mjs +3 -3
  95. package/esm2020/lib/header/header-nav/header-nav.component.mjs +3 -3
  96. package/esm2020/lib/header/header-text/header-text.component.mjs +3 -3
  97. package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
  98. package/esm2020/lib/header/header.module.mjs +4 -4
  99. package/esm2020/lib/image/img.directive.mjs +3 -3
  100. package/esm2020/lib/image/img.module.mjs +4 -4
  101. package/esm2020/lib/list-group/list-group-item.directive.mjs +3 -3
  102. package/esm2020/lib/list-group/list-group.directive.mjs +3 -3
  103. package/esm2020/lib/list-group/list-group.module.mjs +4 -4
  104. package/esm2020/lib/loading-button/loading-button.component.mjs +3 -3
  105. package/esm2020/lib/loading-button/loading-button.module.mjs +4 -4
  106. package/esm2020/lib/modal/modal/modal.component.mjs +3 -3
  107. package/esm2020/lib/modal/modal-body/modal-body.component.mjs +3 -3
  108. package/esm2020/lib/modal/modal-content/modal-content.component.mjs +3 -3
  109. package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
  110. package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  111. package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
  112. package/esm2020/lib/modal/modal-header/modal-header.component.mjs +3 -3
  113. package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +3 -3
  114. package/esm2020/lib/modal/modal.module.mjs +4 -4
  115. package/esm2020/lib/modal/modal.service.mjs +3 -3
  116. package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +3 -3
  117. package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
  118. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
  119. package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
  120. package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
  121. package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
  122. package/esm2020/lib/multi-select/multi-select.module.mjs +4 -4
  123. package/esm2020/lib/multi-select/multi-select.service.mjs +3 -3
  124. package/esm2020/lib/nav/nav-item.component.mjs +3 -3
  125. package/esm2020/lib/nav/nav-link.directive.mjs +3 -3
  126. package/esm2020/lib/nav/nav.component.mjs +5 -5
  127. package/esm2020/lib/nav/nav.module.mjs +4 -4
  128. package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  129. package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
  130. package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  131. package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
  132. package/esm2020/lib/navbar/navbar.component.mjs +3 -3
  133. package/esm2020/lib/navbar/navbar.module.mjs +4 -4
  134. package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
  135. package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
  136. package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
  137. package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
  138. package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  139. package/esm2020/lib/offcanvas/offcanvas.module.mjs +4 -4
  140. package/esm2020/lib/offcanvas/offcanvas.service.mjs +3 -3
  141. package/esm2020/lib/pagination/page-item/page-item.component.mjs +3 -3
  142. package/esm2020/lib/pagination/page-item/page-item.directive.mjs +3 -3
  143. package/esm2020/lib/pagination/page-link/page-link.directive.mjs +3 -3
  144. package/esm2020/lib/pagination/pagination/pagination.component.mjs +3 -3
  145. package/esm2020/lib/pagination/pagination.module.mjs +5 -5
  146. package/esm2020/lib/pagination/public_api.mjs +1 -1
  147. package/esm2020/lib/placeholder/index.mjs +2 -0
  148. package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +34 -0
  149. package/esm2020/lib/placeholder/placeholder.directive.mjs +51 -0
  150. package/esm2020/lib/placeholder/placeholder.module.mjs +31 -0
  151. package/esm2020/lib/placeholder/public_api.mjs +4 -0
  152. package/esm2020/lib/popover/popover/popover.component.mjs +3 -3
  153. package/esm2020/lib/popover/popover.directive.mjs +3 -3
  154. package/esm2020/lib/popover/popover.module.mjs +4 -4
  155. package/esm2020/lib/progress/progress-bar.component.mjs +3 -3
  156. package/esm2020/lib/progress/progress.component.mjs +3 -3
  157. package/esm2020/lib/progress/progress.module.mjs +4 -4
  158. package/esm2020/lib/services/class-toggle.service.mjs +3 -3
  159. package/esm2020/lib/services/intersection.service.mjs +34 -0
  160. package/esm2020/lib/services/listeners.service.mjs +3 -3
  161. package/esm2020/lib/services/public_api.mjs +2 -1
  162. package/esm2020/lib/shared/html-attr.directive.mjs +3 -3
  163. package/esm2020/lib/shared/shared.module.mjs +4 -4
  164. package/esm2020/lib/shared/template-id.directive.mjs +3 -3
  165. package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
  166. package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
  167. package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
  168. package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  169. package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  170. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  171. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  172. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  173. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
  174. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
  175. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
  176. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  177. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
  178. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
  179. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  180. package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  181. package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +3 -3
  182. package/esm2020/lib/sidebar/sidebar.module.mjs +4 -4
  183. package/esm2020/lib/sidebar/sidebar.service.mjs +3 -3
  184. package/esm2020/lib/smart-pagination/index.mjs +2 -0
  185. package/esm2020/lib/smart-pagination/public_api.mjs +3 -0
  186. package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +196 -0
  187. package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +30 -0
  188. package/esm2020/lib/smart-pagination/smart-pagination.type.mjs +2 -0
  189. package/esm2020/lib/smart-table/index.mjs +2 -0
  190. package/esm2020/lib/smart-table/public_api.mjs +3 -0
  191. package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +449 -0
  192. package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +48 -0
  193. package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +138 -0
  194. package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +46 -0
  195. package/esm2020/lib/smart-table/smart-table.module.mjs +72 -0
  196. package/esm2020/lib/smart-table/smart-table.type.mjs +2 -0
  197. package/esm2020/lib/spinner/spinner.component.mjs +3 -3
  198. package/esm2020/lib/spinner/spinner.module.mjs +4 -4
  199. package/esm2020/lib/table/table-active.directive.mjs +3 -3
  200. package/esm2020/lib/table/table-color.directive.mjs +3 -3
  201. package/esm2020/lib/table/table.directive.mjs +5 -5
  202. package/esm2020/lib/table/table.module.mjs +4 -4
  203. package/esm2020/lib/table/table.type.mjs +2 -0
  204. package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +3 -3
  205. package/esm2020/lib/tabs/tab-content-ref.directive.mjs +3 -3
  206. package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
  207. package/esm2020/lib/tabs/tab.service.mjs +3 -3
  208. package/esm2020/lib/tabs/tabs.module.mjs +4 -4
  209. package/esm2020/lib/toast/toast/toast.component.mjs +3 -3
  210. package/esm2020/lib/toast/toast-body/toast-body.component.mjs +3 -3
  211. package/esm2020/lib/toast/toast-close.directive.mjs +3 -3
  212. package/esm2020/lib/toast/toast-header/toast-header.component.mjs +3 -3
  213. package/esm2020/lib/toast/toast.module.mjs +4 -4
  214. package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  215. package/esm2020/lib/toast/toaster/toaster.component.mjs +3 -3
  216. package/esm2020/lib/toast/toaster/toaster.service.mjs +3 -3
  217. package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
  218. package/esm2020/lib/tooltip/tooltip.directive.mjs +3 -3
  219. package/esm2020/lib/tooltip/tooltip.module.mjs +4 -4
  220. package/esm2020/lib/utilities/align.directive.mjs +3 -3
  221. package/esm2020/lib/utilities/bg-color.directive.mjs +3 -3
  222. package/esm2020/lib/utilities/border.directive.mjs +3 -3
  223. package/esm2020/lib/utilities/rounded.directive.mjs +3 -3
  224. package/esm2020/lib/utilities/text-color.directive.mjs +3 -3
  225. package/esm2020/lib/utilities/utilities.module.mjs +4 -4
  226. package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
  227. package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
  228. package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
  229. package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
  230. package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
  231. package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
  232. package/esm2020/lib/widget/widget.module.mjs +4 -4
  233. package/esm2020/public-api.mjs +6 -2
  234. package/fesm2015/coreui-angular-pro.mjs +2633 -1203
  235. package/fesm2015/coreui-angular-pro.mjs.map +1 -1
  236. package/fesm2020/coreui-angular-pro.mjs +2639 -1224
  237. package/fesm2020/coreui-angular-pro.mjs.map +1 -1
  238. package/lib/accordion/accordion-button/accordion-button.directive.d.ts +7 -1
  239. package/lib/accordion/accordion-item/accordion-item.component.d.ts +9 -2
  240. package/lib/accordion/accordion.service.d.ts +1 -1
  241. package/lib/alert/alert.component.d.ts +7 -1
  242. package/lib/carousel/carousel/carousel.component.d.ts +29 -5
  243. package/lib/carousel/carousel-item/carousel-item.component.d.ts +8 -2
  244. package/lib/carousel/carousel.service.d.ts +2 -0
  245. package/lib/collapse/collapse.animations.d.ts +2 -0
  246. package/lib/collapse/collapse.directive.d.ts +19 -7
  247. package/lib/dropdown/dropdown/dropdown.component.d.ts +12 -6
  248. package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +23 -0
  249. package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +20 -11
  250. package/lib/dropdown/dropdown.module.d.ts +3 -2
  251. package/lib/dropdown/public_api.d.ts +1 -0
  252. package/lib/element-cover/element-cover.component.d.ts +27 -0
  253. package/lib/element-cover/element-cover.module.d.ts +9 -0
  254. package/lib/element-cover/index.d.ts +1 -0
  255. package/lib/element-cover/public_api.d.ts +2 -0
  256. package/lib/form/form-check/form-check-input.directive.d.ts +1 -1
  257. package/lib/grid/col.directive.d.ts +3 -1
  258. package/lib/placeholder/index.d.ts +1 -0
  259. package/lib/placeholder/placeholder-animation.directive.d.ts +18 -0
  260. package/lib/placeholder/placeholder.directive.d.ts +22 -0
  261. package/lib/placeholder/placeholder.module.d.ts +9 -0
  262. package/lib/placeholder/public_api.d.ts +3 -0
  263. package/lib/services/intersection.service.d.ts +22 -0
  264. package/lib/services/public_api.d.ts +1 -0
  265. package/lib/smart-pagination/index.d.ts +1 -0
  266. package/lib/smart-pagination/public_api.d.ts +2 -0
  267. package/lib/smart-pagination/smart-pagination.component.d.ts +109 -0
  268. package/lib/smart-pagination/smart-pagination.module.d.ts +9 -0
  269. package/lib/smart-pagination/smart-pagination.type.d.ts +79 -0
  270. package/lib/smart-table/index.d.ts +1 -0
  271. package/lib/smart-table/public_api.d.ts +2 -0
  272. package/lib/smart-table/smart-table/smart-table.component.d.ts +124 -0
  273. package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +15 -0
  274. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +36 -0
  275. package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +14 -0
  276. package/lib/smart-table/smart-table.module.d.ts +20 -0
  277. package/lib/smart-table/smart-table.type.d.ts +272 -0
  278. package/lib/table/table.directive.d.ts +3 -2
  279. package/lib/table/table.type.d.ts +76 -0
  280. package/package.json +2 -2
  281. package/public-api.d.ts +5 -1
@@ -1,32 +1,36 @@
1
1
  import { Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
2
  import { useAnimation } from '@angular/animations';
3
- import { collapseAnimation, expandAnimation } from './collapse.animations';
4
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { collapseAnimation, collapseHorizontalAnimation, expandAnimation, expandHorizontalAnimation } from './collapse.animations';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/animations";
7
7
  // todo
8
8
  // tslint:disable-next-line:no-conflicting-lifecycle
9
9
  export class CollapseDirective {
10
- constructor(hostElement, animationBuilder) {
10
+ constructor(hostElement, renderer, animationBuilder) {
11
11
  this.hostElement = hostElement;
12
+ this.renderer = renderer;
12
13
  this.animationBuilder = animationBuilder;
13
14
  this._animate = true;
15
+ this._horizontal = false;
14
16
  this._visible = false;
15
17
  this._navbar = false;
16
18
  /**
17
19
  * @ignore
18
20
  */
19
- this.duration = '400ms';
21
+ this.duration = '350ms';
20
22
  /**
21
23
  * @ignore
22
24
  */
23
- this.transition = 'ease-in-out';
25
+ this.transition = 'ease';
24
26
  /**
25
27
  * Event emitted on visibility change. [docs]
26
28
  * @type string
27
29
  */
28
30
  this.collapseChange = new EventEmitter();
31
+ this.collapsing = false;
29
32
  this.host = this.hostElement.nativeElement;
33
+ this.renderer.setStyle(this.host, 'display', 'none');
30
34
  }
31
35
  /**
32
36
  * @ignore
@@ -37,6 +41,15 @@ export class CollapseDirective {
37
41
  get animate() {
38
42
  return this._animate;
39
43
  }
44
+ /**
45
+ * Set horizontal collapsing to transition the width instead of height.
46
+ */
47
+ set horizontal(value) {
48
+ this._horizontal = coerceBooleanProperty(value);
49
+ }
50
+ get horizontal() {
51
+ return this._horizontal;
52
+ }
40
53
  /**
41
54
  * Toggle the visibility of collapsible element.
42
55
  */
@@ -60,15 +73,24 @@ export class CollapseDirective {
60
73
  return {
61
74
  'navbar-collapse': this.navbar,
62
75
  show: this.visible,
76
+ 'collapse-horizontal': this.horizontal,
77
+ collapsing: this.collapsing
78
+ // collapse: !this.collapsing && !this.visible
63
79
  };
64
80
  }
81
+ ngAfterViewInit() {
82
+ if (this.visible) {
83
+ this.toggle();
84
+ }
85
+ }
65
86
  ngOnDestroy() {
66
87
  this.destroyPlayer();
67
88
  }
68
89
  ngOnChanges(changes) {
69
90
  if (changes['visible']) {
70
- // tslint:disable-next-line:no-unused-expression
71
- (!changes['visible'].firstChange || !changes['visible'].currentValue) && this.toggle(changes['visible'].currentValue);
91
+ if (!changes['visible'].firstChange || !changes['visible'].currentValue) {
92
+ this.toggle(changes['visible'].currentValue);
93
+ }
72
94
  }
73
95
  }
74
96
  ngDoCheck() {
@@ -77,36 +99,58 @@ export class CollapseDirective {
77
99
  }
78
100
  }
79
101
  toggle(visible = this.visible) {
80
- this.visible = visible;
81
102
  this.createPlayer(visible);
82
- this.player.play();
103
+ this.player?.play();
83
104
  }
84
105
  destroyPlayer() {
85
- if (this.player) {
86
- this.player.destroy();
87
- }
106
+ this.player?.destroy();
88
107
  }
89
108
  createPlayer(visible = this.visible) {
90
- if (this.player) {
109
+ if (this.player?.hasStarted()) {
91
110
  this.destroyPlayer();
92
111
  }
93
- let animationFactory;
112
+ if (visible) {
113
+ this.renderer.removeStyle(this.host, 'display');
114
+ }
94
115
  const duration = this.animate ? this.duration : '0ms';
95
- animationFactory = this.animationBuilder.build(useAnimation(visible ? expandAnimation : collapseAnimation, { params: { time: duration, easing: this.transition } }));
116
+ const expand = this.horizontal ? expandHorizontalAnimation : expandAnimation;
117
+ const collapse = this.horizontal ? collapseHorizontalAnimation : collapseAnimation;
118
+ const animationFactory = this.animationBuilder.build(useAnimation(visible ? expand : collapse, { params: { time: duration, easing: this.transition } }));
96
119
  this.player = animationFactory.create(this.host);
97
- this.player.onStart(() => { this.collapseChange.emit(visible ? 'opening' : 'collapsing'); });
98
- this.player.onDone(() => { this.collapseChange.emit(visible ? 'open' : 'collapsed'); });
120
+ this.player.onStart(() => {
121
+ this.setMaxSize();
122
+ this.visible = visible;
123
+ this.collapsing = true;
124
+ this.collapseChange.emit(visible ? 'opening' : 'collapsing');
125
+ });
126
+ this.player.onDone(() => {
127
+ this.collapsing = false;
128
+ this.collapseChange.emit(visible ? 'open' : 'collapsed');
129
+ });
130
+ }
131
+ setMaxSize() {
132
+ setTimeout(() => {
133
+ if (this.horizontal) {
134
+ this.scrollWidth = this.host.scrollWidth;
135
+ this.scrollWidth > 0 && this.renderer.setStyle(this.host, 'maxWidth', `${this.scrollWidth}px`);
136
+ // } else {
137
+ // this.scrollHeight = this.host.scrollHeight;
138
+ // this.scrollHeight > 0 && this.renderer.setStyle(this.host, 'maxHeight', `${this.scrollHeight}px`);
139
+ }
140
+ });
99
141
  }
100
142
  }
101
- CollapseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive });
102
- CollapseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: CollapseDirective, selector: "[cCollapse]", inputs: { animate: "animate", visible: "visible", navbar: "navbar", duration: "duration", transition: "transition" }, outputs: { collapseChange: "collapseChange" }, host: { properties: { "class": "this.hostClasses" } }, exportAs: ["cCollapse"], usesOnChanges: true, ngImport: i0 });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseDirective, decorators: [{
143
+ CollapseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive });
144
+ CollapseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: CollapseDirective, 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 });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseDirective, decorators: [{
104
146
  type: Directive,
105
147
  args: [{
106
148
  selector: '[cCollapse]',
107
149
  exportAs: 'cCollapse'
108
150
  }]
109
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.AnimationBuilder }]; }, propDecorators: { animate: [{
151
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.AnimationBuilder }]; }, propDecorators: { animate: [{
152
+ type: Input
153
+ }], horizontal: [{
110
154
  type: Input
111
155
  }], visible: [{
112
156
  type: Input
@@ -122,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
122
166
  type: HostBinding,
123
167
  args: ['class']
124
168
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb2xsYXBzZS9jb2xsYXBzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFFNUUsT0FBTztBQUNQLG9EQUFvRDtBQUtwRCxNQUFNLE9BQU8saUJBQWlCO0lBd0Q1QixZQUNVLFdBQXVCLEVBQ3ZCLGdCQUFrQztRQURsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdERwQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBWWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFZakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVd4Qjs7V0FFRztRQUNNLGFBQVEsR0FBRyxPQUFPLENBQUM7UUFDNUI7O1dBRUc7UUFDTSxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBQ3BDOzs7V0FHRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUF4REQ7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJ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QUFNLENBQUMsR0FBRyxFQUFFLEdBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQzs7OEdBcEhVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO2lCQUN0QjtnSUFVSyxPQUFPO3NCQURWLEtBQUs7Z0JBYUYsT0FBTztzQkFEVixLQUFLO2dCQWFGLE1BQU07c0JBRFQsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0ksY0FBYztzQkFBdkIsTUFBTTtnQkFhSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIERvQ2hlY2ssXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25QbGF5ZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgY29sbGFwc2VBbmltYXRpb24sIGV4cGFuZEFuaW1hdGlvbiB9IGZyb20gJy4vY29sbGFwc2UuYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuXHJcbi8vIHRvZG9cclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbmZsaWN0aW5nLWxpZmVjeWNsZVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjQ29sbGFwc2VdJyxcclxuICBleHBvcnRBczogJ2NDb2xsYXBzZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxhcHNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIERvQ2hlY2sge1xyXG5cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmF2YmFyOiBCb29sZWFuSW5wdXQ7XHJcblxyXG4gIHByaXZhdGUgX2FuaW1hdGUgPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBhbmltYXRlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbmltYXRlID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBhbmltYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF92aXNpYmxlID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGNvbGxhcHNpYmxlIGVsZW1lbnQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbmF2YmFyID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQWRkIGBuYXZiYXJgIHByb3AgZm9yIGdyb3VwaW5nIGFuZCBoaWRpbmcgbmF2YmFyIGNvbnRlbnRzIGJ5IGEgcGFyZW50IGJyZWFrcG9pbnQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2YmFyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9uYXZiYXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH07XHJcbiAgZ2V0IG5hdmJhcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9uYXZiYXI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBkdXJhdGlvbiA9ICc0MDBtcyc7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRyYW5zaXRpb24gPSAnZWFzZS1pbi1vdXQnO1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdmlzaWJpbGl0eSBjaGFuZ2UuIFtkb2NzXVxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb2xsYXBzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIHBsYXllciE6IEFuaW1hdGlvblBsYXllcjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IEhUTUxFbGVtZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGFuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXJcclxuICApIHtcclxuICAgIHRoaXMuaG9zdCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ25hdmJhci1jb2xsYXBzZSc6IHRoaXMubmF2YmFyLFxyXG4gICAgICBzaG93OiB0aGlzLnZpc2libGUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3lQbGF5ZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2aXNpYmxlJ10pIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC1leHByZXNzaW9uXHJcbiAgICAgICghY2hhbmdlc1sndmlzaWJsZSddLmZpcnN0Q2hhbmdlIHx8ICFjaGFuZ2VzWyd2aXNpYmxlJ10uY3VycmVudFZhbHVlKSAmJiB0aGlzLnRvZ2dsZShjaGFuZ2VzWyd2aXNpYmxlJ10uY3VycmVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92aXNpYmxlICE9PSB0aGlzLnZpc2libGUpIHtcclxuICAgICAgdGhpcy50b2dnbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZSh2aXNpYmxlID0gdGhpcy52aXNpYmxlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgdGhpcy5jcmVhdGVQbGF5ZXIodmlzaWJsZSk7XHJcbiAgICB0aGlzLnBsYXllci5wbGF5KCk7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UGxheWVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGxheWVyKSB7XHJcbiAgICAgIHRoaXMucGxheWVyLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZVBsYXllcih2aXNpYmxlOiBib29sZWFuID0gdGhpcy52aXNpYmxlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wbGF5ZXIpIHtcclxuICAgICAgdGhpcy5kZXN0cm95UGxheWVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGFuaW1hdGlvbkZhY3Rvcnk7XHJcblxyXG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmFuaW1hdGUgPyB0aGlzLmR1cmF0aW9uIDogJzBtcyc7XHJcblxyXG4gICAgYW5pbWF0aW9uRmFjdG9yeSA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChcclxuICAgICAgdXNlQW5pbWF0aW9uKHZpc2libGUgPyBleHBhbmRBbmltYXRpb24gOiBjb2xsYXBzZUFuaW1hdGlvbiwgeyBwYXJhbXM6IHsgdGltZTogZHVyYXRpb24sIGVhc2luZzogdGhpcy50cmFuc2l0aW9uIH0gfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5wbGF5ZXIgPSBhbmltYXRpb25GYWN0b3J5LmNyZWF0ZSh0aGlzLmhvc3QpO1xyXG4gICAgdGhpcy5wbGF5ZXIub25TdGFydCgoKSA9PiB7dGhpcy5jb2xsYXBzZUNoYW5nZS5lbWl0KHZpc2libGUgPyAnb3BlbmluZycgOiAnY29sbGFwc2luZycpOyB9KTtcclxuICAgIHRoaXMucGxheWVyLm9uRG9uZSgoKSA9PiB7dGhpcy5jb2xsYXBzZUNoYW5nZS5lbWl0KHZpc2libGUgPyAnb3BlbicgOiAnY29sbGFwc2VkJyk7IH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb2xsYXBzZS9jb2xsYXBzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLHVCQUF1QixDQUFDOzs7QUFFL0IsT0FBTztBQUNQLG9EQUFvRDtBQUtwRCxNQUFNLE9BQU8saUJBQWlCO0lBeUU1QixZQUNVLFdBQXVCLEVBQ3ZCLFFBQW1CLEVBQ25CLGdCQUFrQztRQUZsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE3RHBDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFZaEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFZN0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQVlqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhCOztXQUVHO1FBQ00sYUFBUSxHQUFHLE9BQU8sQ0FBQztRQUM1Qjs7V0FFRztRQUNNLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFDN0I7OztXQUdHO1FBQ08sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBTTlDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFPbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBM0VEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQ0ksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFHRDs7T0FFRztJQUNILElBQ0ksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBZ0NELElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDbEIscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDdEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLDhDQUE4QztTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRTtnQkFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDOUM7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsVUFBbUIsSUFBSSxDQUFDLE9BQU87UUFDMUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRDtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUV0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBQzdFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUVuRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQ2xELFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FDbkcsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUM7Z0JBQy9GLFdBQVc7Z0JBQ1gsOENBQThDO2dCQUM5QyxxR0FBcUc7YUFDdEc7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQXZLVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztpQkFDdEI7d0pBVUssT0FBTztzQkFEVixLQUFLO2dCQWFGLFVBQVU7c0JBRGIsS0FBSztnQkFhRixPQUFPO3NCQURWLEtBQUs7Z0JBYUYsTUFBTTtzQkFEVCxLQUFLO2dCQVlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLSSxjQUFjO3NCQUF2QixNQUFNO2dCQWtCSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRG9DaGVjayxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25QbGF5ZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5cclxuaW1wb3J0IHtcclxuICBjb2xsYXBzZUFuaW1hdGlvbixcclxuICBjb2xsYXBzZUhvcml6b250YWxBbmltYXRpb24sXHJcbiAgZXhwYW5kQW5pbWF0aW9uLFxyXG4gIGV4cGFuZEhvcml6b250YWxBbmltYXRpb25cclxufSBmcm9tICcuL2NvbGxhcHNlLmFuaW1hdGlvbnMnO1xyXG5cclxuLy8gdG9kb1xyXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uZmxpY3RpbmctbGlmZWN5Y2xlXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NDb2xsYXBzZV0nLFxyXG4gIGV4cG9ydEFzOiAnY0NvbGxhcHNlJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sbGFwc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ob3Jpem9udGFsOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX25hdmJhcjogQm9vbGVhbklucHV0O1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgYW5pbWF0ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYW5pbWF0ZSA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgYW5pbWF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbmltYXRlO1xyXG4gIH1cclxuICBwcml2YXRlIF9hbmltYXRlID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGhvcml6b250YWwgY29sbGFwc2luZyB0byB0cmFuc2l0aW9uIHRoZSB3aWR0aCBpbnN0ZWFkIG9mIGhlaWdodC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBob3Jpem9udGFsKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9ob3Jpem9udGFsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGhvcml6b250YWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgY29sbGFwc2libGUgZWxlbWVudC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XHJcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGBuYXZiYXJgIHByb3AgZm9yIGdyb3VwaW5nIGFuZCBoaWRpbmcgbmF2YmFyIGNvbnRlbnRzIGJ5IGEgcGFyZW50IGJyZWFrcG9pbnQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2YmFyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9uYXZiYXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH07XHJcbiAgZ2V0IG5hdmJhcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9uYXZiYXI7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hdmJhciA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZHVyYXRpb24gPSAnMzUwbXMnO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBASW5wdXQoKSB0cmFuc2l0aW9uID0gJ2Vhc2UnO1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gdmlzaWJpbGl0eSBjaGFuZ2UuIFtkb2NzXVxyXG4gICAqIEB0eXBlIHN0cmluZ1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb2xsYXBzZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIHBsYXllciE6IEFuaW1hdGlvblBsYXllcjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGhvc3Q6IEhUTUxFbGVtZW50O1xyXG4gIC8vIHByaXZhdGUgc2Nyb2xsSGVpZ2h0ITogbnVtYmVyO1xyXG4gIHByaXZhdGUgc2Nyb2xsV2lkdGghOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBjb2xsYXBzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgYW5pbWF0aW9uQnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlclxyXG4gICkge1xyXG4gICAgdGhpcy5ob3N0ID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3QsICdkaXNwbGF5JywgJ25vbmUnKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ25hdmJhci1jb2xsYXBzZSc6IHRoaXMubmF2YmFyLFxyXG4gICAgICBzaG93OiB0aGlzLnZpc2libGUsXHJcbiAgICAgICdjb2xsYXBzZS1ob3Jpem9udGFsJzogdGhpcy5ob3Jpem9udGFsLFxyXG4gICAgICBjb2xsYXBzaW5nOiB0aGlzLmNvbGxhcHNpbmdcclxuICAgICAgLy8gY29sbGFwc2U6ICF0aGlzLmNvbGxhcHNpbmcgJiYgIXRoaXMudmlzaWJsZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpc2libGUpIHtcclxuICAgICAgdGhpcy50b2dnbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95UGxheWVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XHJcbiAgICAgIGlmICghY2hhbmdlc1sndmlzaWJsZSddLmZpcnN0Q2hhbmdlIHx8ICFjaGFuZ2VzWyd2aXNpYmxlJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGUoY2hhbmdlc1sndmlzaWJsZSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl92aXNpYmxlICE9PSB0aGlzLnZpc2libGUpIHtcclxuICAgICAgdGhpcy50b2dnbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZSh2aXNpYmxlID0gdGhpcy52aXNpYmxlKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZVBsYXllcih2aXNpYmxlKTtcclxuICAgIHRoaXMucGxheWVyPy5wbGF5KCk7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UGxheWVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wbGF5ZXI/LmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVBsYXllcih2aXNpYmxlOiBib29sZWFuID0gdGhpcy52aXNpYmxlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wbGF5ZXI/Lmhhc1N0YXJ0ZWQoKSkge1xyXG4gICAgICB0aGlzLmRlc3Ryb3lQbGF5ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmlzaWJsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaG9zdCwgJ2Rpc3BsYXknKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuYW5pbWF0ZSA/IHRoaXMuZHVyYXRpb24gOiAnMG1zJztcclxuXHJcbiAgICBjb25zdCBleHBhbmQgPSB0aGlzLmhvcml6b250YWwgPyBleHBhbmRIb3Jpem9udGFsQW5pbWF0aW9uIDogZXhwYW5kQW5pbWF0aW9uO1xyXG4gICAgY29uc3QgY29sbGFwc2UgPSB0aGlzLmhvcml6b250YWwgPyBjb2xsYXBzZUhvcml6b250YWxBbmltYXRpb24gOiBjb2xsYXBzZUFuaW1hdGlvbjtcclxuXHJcbiAgICBjb25zdCBhbmltYXRpb25GYWN0b3J5ID0gdGhpcy5hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFxyXG4gICAgICB1c2VBbmltYXRpb24odmlzaWJsZSA/IGV4cGFuZCA6IGNvbGxhcHNlLCB7IHBhcmFtczogeyB0aW1lOiBkdXJhdGlvbiwgZWFzaW5nOiB0aGlzLnRyYW5zaXRpb24gfSB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbkZhY3RvcnkuY3JlYXRlKHRoaXMuaG9zdCk7XHJcbiAgICB0aGlzLnBsYXllci5vblN0YXJ0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRNYXhTaXplKCk7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgIHRoaXMuY29sbGFwc2luZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VDaGFuZ2UuZW1pdCh2aXNpYmxlID8gJ29wZW5pbmcnIDogJ2NvbGxhcHNpbmcnKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wbGF5ZXIub25Eb25lKCgpID0+IHtcclxuICAgICAgdGhpcy5jb2xsYXBzaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VDaGFuZ2UuZW1pdCh2aXNpYmxlID8gJ29wZW4nIDogJ2NvbGxhcHNlZCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNYXhTaXplKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmhvcml6b250YWwpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFdpZHRoID0gdGhpcy5ob3N0LnNjcm9sbFdpZHRoO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsV2lkdGggPiAwICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCAnbWF4V2lkdGgnLCBgJHt0aGlzLnNjcm9sbFdpZHRofXB4YCk7XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAvLyB0aGlzLnNjcm9sbEhlaWdodCA9IHRoaXMuaG9zdC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgLy8gdGhpcy5zY3JvbGxIZWlnaHQgPiAwICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0LCAnbWF4SGVpZ2h0JywgYCR7dGhpcy5zY3JvbGxIZWlnaHR9cHhgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -7,12 +7,12 @@ export class CollapseModule {
7
7
  return { ngModule: CollapseModule, providers: [] };
8
8
  }
9
9
  }
10
- CollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- CollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseModule, declarations: [CollapseDirective], imports: [CommonModule], exports: [CollapseDirective] });
12
- CollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseModule, imports: [[
10
+ CollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ CollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseModule, declarations: [CollapseDirective], imports: [CommonModule], exports: [CollapseDirective] });
12
+ CollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseModule, imports: [[
13
13
  CommonModule
14
14
  ]] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: CollapseModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CollapseModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  declarations: [CollapseDirective],
@@ -1,9 +1,9 @@
1
- import { Component, ContentChild, Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, } from '@angular/core';
2
- import { DropdownService } from '../dropdown.service';
3
- import { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
1
+ import { Component, ContentChild, Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
4
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
4
  import { createPopper } from '@popperjs/core';
6
- import { DOCUMENT } from '@angular/common';
5
+ import { DropdownService } from '../dropdown.service';
6
+ import { DropdownMenuDirective } from '../dropdown-menu/dropdown-menu.directive';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../dropdown.service";
9
9
  export class DropdownToggleDirective {
@@ -39,9 +39,9 @@ export class DropdownToggleDirective {
39
39
  this.dropdownService.toggle({ visible: 'toggle', dropdown: this.dropdown });
40
40
  }
41
41
  }
42
- DropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: DropdownComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
43
- DropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: { caret: "caret", split: "split" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.hostClasses" } }, exportAs: ["cDropdownToggle"], ngImport: i0 });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DropdownToggleDirective, decorators: [{
42
+ DropdownToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DropdownToggleDirective, deps: [{ token: i0.ElementRef }, { token: i1.DropdownService }, { token: DropdownComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
43
+ DropdownToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: { caret: "caret", split: "split" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.hostClasses" } }, exportAs: ["cDropdownToggle"], ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DropdownToggleDirective, decorators: [{
45
45
  type: Directive,
46
46
  args: [{
47
47
  selector: '[cDropdownToggle]',
@@ -76,6 +76,11 @@ export class DropdownComponent {
76
76
  */
77
77
  this.placement = 'bottom-start';
78
78
  this._popper = true;
79
+ this._popperOptions = {
80
+ placement: this.placement,
81
+ modifiers: [],
82
+ strategy: 'absolute'
83
+ };
79
84
  /**
80
85
  * Set the dropdown variant to an btn-group, dropdown, input-group, and nav-item.
81
86
  */
@@ -85,11 +90,6 @@ export class DropdownComponent {
85
90
  this.dropdownContext = { $implicit: this.visible };
86
91
  this.activeTrap = false;
87
92
  this.listeners = [];
88
- this._popperOptions = {
89
- placement: this.placement,
90
- modifiers: [],
91
- strategy: 'absolute',
92
- };
93
93
  }
94
94
  /**
95
95
  * Sets a darker color scheme to match a dark navbar.
@@ -115,34 +115,13 @@ export class DropdownComponent {
115
115
  return this._popper;
116
116
  }
117
117
  /**
118
- * Toggle the visibility of dropdown menu component.
119
- * @type boolean
120
- * @default false
118
+ * Optional popper Options object, placement prop takes precedence over
119
+ * @type Partial<Options>
121
120
  */
122
- set visible(value) {
123
- this.activeTrap = value;
124
- this._visible = value;
125
- value ? this.createPopperInstance() : this.destroyPopperInstance();
126
- this.visibleChange.emit(value);
127
- }
128
- get visible() {
129
- return this._visible;
130
- }
131
- get hostClasses() {
132
- return {
133
- dropdown: (this.variant === 'dropdown' || this.variant === 'nav-item') &&
134
- !this.direction,
135
- [`${this.direction}`]: !!this.direction,
136
- 'btn-group': this.variant === 'btn-group',
137
- 'nav-item': this.variant === 'nav-item',
138
- 'input-group': this.variant === 'input-group',
139
- show: this.visible,
140
- };
141
- }
142
- // todo: find better solution
143
- get hostStyle() {
144
- return this.variant === 'input-group' ? { display: 'contents' } : {};
121
+ set popperOptions(value) {
122
+ this._popperOptions = { ...this._popperOptions, ...value };
145
123
  }
124
+ ;
146
125
  get popperOptions() {
147
126
  let placement = this.placement;
148
127
  switch (this.direction) {
@@ -165,6 +144,36 @@ export class DropdownComponent {
165
144
  this._popperOptions = { ...this._popperOptions, placement: placement };
166
145
  return this._popperOptions;
167
146
  }
147
+ /**
148
+ * Toggle the visibility of dropdown menu component.
149
+ * @type boolean
150
+ * @default false
151
+ */
152
+ set visible(value) {
153
+ const _value = coerceBooleanProperty(value);
154
+ this.activeTrap = _value;
155
+ this._visible = _value;
156
+ _value ? this.createPopperInstance() : this.destroyPopperInstance();
157
+ this.visibleChange.emit(_value);
158
+ }
159
+ get visible() {
160
+ return this._visible;
161
+ }
162
+ get hostClasses() {
163
+ return {
164
+ dropdown: (this.variant === 'dropdown' || this.variant === 'nav-item') &&
165
+ !this.direction,
166
+ [`${this.direction}`]: !!this.direction,
167
+ 'btn-group': this.variant === 'btn-group',
168
+ 'nav-item': this.variant === 'nav-item',
169
+ 'input-group': this.variant === 'input-group',
170
+ show: this.visible,
171
+ };
172
+ }
173
+ // todo: find better solution
174
+ get hostStyle() {
175
+ return this.variant === 'input-group' ? { display: 'contents' } : {};
176
+ }
168
177
  dropdownStateSubscribe(subscribe = true) {
169
178
  if (subscribe) {
170
179
  this.dropdownStateSubscription =
@@ -186,10 +195,8 @@ export class DropdownComponent {
186
195
  this.visible = !this.visible;
187
196
  }
188
197
  onClick(event) {
189
- if (this.autoClose === true || this.autoClose === 'outside') {
190
- if (!this._toggler?.elementRef.nativeElement.contains(event.target?.closest('[cDropdownToggle]'))) {
191
- this.toggleDropdown();
192
- }
198
+ if (!this._toggler?.elementRef.nativeElement.contains(event.target?.closest('[cDropdownToggle]'))) {
199
+ this.toggleDropdown();
193
200
  }
194
201
  }
195
202
  ngAfterContentInit() {
@@ -235,12 +242,28 @@ export class DropdownComponent {
235
242
  setListeners() {
236
243
  const host = this.elementRef.nativeElement;
237
244
  this.listeners.push(this.renderer.listen(this.document, 'click', (event) => {
238
- if (!host.contains(event.target)) {
245
+ if (this._toggler?.elementRef.nativeElement.contains(event.target)) {
246
+ return;
247
+ }
248
+ if (this.autoClose === true) {
239
249
  this.setVisibleState(false);
250
+ return;
251
+ }
252
+ if (!host.contains(event.target)) {
253
+ if (this.autoClose === 'outside') {
254
+ this.setVisibleState(false);
255
+ return;
256
+ }
257
+ }
258
+ if (this._menu.elementRef.nativeElement.contains(event.target)) {
259
+ if (this.autoClose === 'inside') {
260
+ this.setVisibleState(false);
261
+ return;
262
+ }
240
263
  }
241
264
  }));
242
265
  this.listeners.push(this.renderer.listen(this.document, 'keyup', (event) => {
243
- if (event.key === 'Escape') {
266
+ if (event.key === 'Escape' && this.autoClose !== false) {
244
267
  this.setVisibleState(false);
245
268
  }
246
269
  }));
@@ -254,9 +277,9 @@ export class DropdownComponent {
254
277
  this.listeners = [];
255
278
  }
256
279
  }
257
- DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", 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 });
258
- DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: DropdownComponent, selector: "c-dropdown", inputs: { alignment: "alignment", autoClose: "autoClose", dark: "dark", direction: "direction", placement: "placement", popper: "popper", variant: "variant", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { 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 }], exportAs: ["cDropdown"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":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"] });
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DropdownComponent, decorators: [{
280
+ DropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", 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 });
281
+ DropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: DropdownComponent, 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: { 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 }], exportAs: ["cDropdown"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":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"] });
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DropdownComponent, decorators: [{
260
283
  type: Component,
261
284
  args: [{ selector: 'c-dropdown', template: '<ng-content></ng-content>', exportAs: 'cDropdown', providers: [DropdownService], styles: [":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"] }]
262
285
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -274,6 +297,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
274
297
  type: Input
275
298
  }], popper: [{
276
299
  type: Input
300
+ }], popperOptions: [{
301
+ type: Input
277
302
  }], variant: [{
278
303
  type: Input
279
304
  }], visible: [{
@@ -293,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
293
318
  type: HostBinding,
294
319
  args: ['style']
295
320
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLHVCQUF1QjtJQXlCbEMsWUFDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNyQixRQUE0QjtRQUZ4QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQXZCakQ7OztXQUdHO1FBQ00sVUFBSyxHQUFHLElBQUksQ0FBQztRQUVkLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFrQnBCLENBQUM7SUFqQko7OztPQUdHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxN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dUI7Z0JBQ0EsS0FBSztzQkFBekMsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBa0IvQixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFnQmhCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tICcuLi9kcm9wZG93bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHJvcGRvd25NZW51RGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjRHJvcGRvd25Ub2dnbGVdJyxcclxuICBleHBvcnRBczogJ2NEcm9wZG93blRvZ2dsZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93blRvZ2dsZURpcmVjdGl2ZSB7XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zcGxpdDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9wb3BwZXI6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgLyoqXHJcbiAgICogRW5hYmxlcyBwc2V1ZG8gZWxlbWVudCBjYXJldCBvbiB0b2dnbGVyLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKSBjYXJldCA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX3NwbGl0ID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHNwbGl0IGJ1dHRvbiBkcm9wZG93bnMgd2l0aCB2aXJ0dWFsbHkgdGhlIHNhbWUgbWFya3VwIGFzIHNpbmdsZSBidXR0b24gZHJvcGRvd25zLCBidXQgd2l0aCB0aGUgYWRkaXRpb24gb2YgYC5kcm9wZG93bi10b2dnbGUtc3BsaXRgIGNsYXNzIGZvciBwcm9wZXIgc3BhY2luZyBhcm91bmQgdGhlIGRyb3Bkb3duIGNhcmV0LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBzcGxpdCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc3BsaXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNwbGl0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NwbGl0O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93bkNvbXBvbmVudFxyXG4gICkge31cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZHJvcGRvd24tdG9nZ2xlJzogdGhpcy5jYXJldCxcclxuICAgICAgJ2Ryb3Bkb3duLXRvZ2dsZS1zcGxpdCc6IHRoaXMuc3BsaXQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoe3Zpc2libGU6ICd0b2dnbGUnLCBkcm9wZG93bjogdGhpcy5kcm9wZG93bn0pO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjRHJvcGRvd24nLFxyXG4gIHByb3ZpZGVyczogW0Ryb3Bkb3duU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rhcms6IEJvb2xlYW5JbnB1dDtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGFsaWdubWVudCBvZiBkcm9wZG93biBtZW51LlxyXG4gICAqIEB0eXBlIHsnc3RhcnQnIHwgJ2VuZCcgfCB7IHhzOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgc206ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBtZDogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IGxnOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgeGw6ICdzdGFydCcgfCAnZW5kJ30gfCB7IHh4bDogJ3N0YXJ0JyB8ICdlbmQnfX1cclxuICAgKi9cclxuICBASW5wdXQoKSBhbGlnbm1lbnQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGF1dG9DbG9zZTogYm9vbGVhbiB8ICdpbnNpZGUnIHwgJ291dHNpZGUnID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBhIGRhcmtlciBjb2xvciBzY2hlbWUgdG8gbWF0Y2ggYSBkYXJrIG5hdmJhci5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBkYXJrKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kYXJrID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9O1xyXG4gIGdldCBkYXJrKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhcms7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhcmsgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBhIHNwZWNpZmllZCAgZGlyZWN0aW9uIGFuZCBsb2NhdGlvbiBvZiB0aGUgZHJvcGRvd24gbWVudS5cclxuICAgKiBAdHlwZSAnZHJvcHVwJyB8ICdkcm9wZW5kJyB8ICdkcm9wc3RhcnQnXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlyZWN0aW9uPzogJ2Ryb3B1cCcgfCAnZHJvcGVuZCcgfCAnZHJvcHN0YXJ0JztcclxuXHJcbiAgLyoqXHJcbiAgICogRGVzY3JpYmVzIHRoZSBwbGFjZW1lbnQgb2YgeW91ciBjb21wb25lbnQgYWZ0ZXIgUG9wcGVyLmpzIGhhcyBhcHBsaWVkIGFsbCB0aGUgbW9kaWZpZXJzIHRoYXQgbWF5IGhhdmUgZmxpcHBlZCBvciBhbHRlcmVkIHRoZSBvcmlnaW5hbGx5IHByb3ZpZGVkIHBsYWNlbWVudCBwcm9wZXJ0eS5cclxuICAgKiBAdHlwZSBQbGFjZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xyXG5cclxuICAvKipcclxuICAgKiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGR5bmFtaWMgcG9zaXRpb25pbmcgc2V0IHRoaXMgcHJvcGVydHkgdG8gYGZhbHNlYC5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHBvcHBlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcG9wcGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHBvcHBlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wb3BwZXI7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BvcHBlciA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgZHJvcGRvd24gdmFyaWFudCB0byBhbiBidG4tZ3JvdXAsIGRyb3Bkb3duLCBpbnB1dC1ncm91cCwgYW5kIG5hdi1pdGVtLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHZhcmlhbnQ/OiAnYnRuLWdyb3VwJyB8ICdkcm9wZG93bicgfCAnaW5wdXQtZ3JvdXAnIHwgJ25hdi1pdGVtJyA9ICdkcm9wZG93bic7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBkcm9wZG93biBtZW51IGNvbXBvbmVudC5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmFjdGl2ZVRyYXAgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgIHZhbHVlID8gdGhpcy5jcmVhdGVQb3BwZXJJbnN0YW5jZSgpIDogdGhpcy5kZXN0cm95UG9wcGVySW5zdGFuY2UoKTtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBkcm9wZG93bkNvbnRleHQgPSB7JGltcGxpY2l0OiB0aGlzLnZpc2libGV9O1xyXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUpIF90b2dnbGVyITogRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVEaXJlY3RpdmUpIF9tZW51ITogRHJvcGRvd25NZW51RGlyZWN0aXZlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZlVHJhcCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBwb3BwZXJJbnN0YW5jZSE6IEluc3RhbmNlIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgbGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZHJvcGRvd246XHJcbiAgICAgICAgKHRoaXMudmFyaWFudCA9PT0gJ2Ryb3Bkb3duJyB8fCB0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScpICYmXHJcbiAgICAgICAgIXRoaXMuZGlyZWN0aW9uLFxyXG4gICAgICBbYCR7dGhpcy5kaXJlY3Rpb259YF06ICEhdGhpcy5kaXJlY3Rpb24sXHJcbiAgICAgICdidG4tZ3JvdXAnOiB0aGlzLnZhcmlhbnQgPT09ICdidG4tZ3JvdXAnLFxyXG4gICAgICAnbmF2LWl0ZW0nOiB0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScsXHJcbiAgICAgICdpbnB1dC1ncm91cCc6IHRoaXMudmFyaWFudCA9PT0gJ2lucHV0LWdyb3VwJyxcclxuICAgICAgc2hvdzogdGhpcy52aXNpYmxlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG86IGZpbmQgYmV0dGVyIHNvbHV0aW9uXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXHJcbiAgZ2V0IGhvc3RTdHlsZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gJ2lucHV0LWdyb3VwJyA/IHtkaXNwbGF5OiAnY29udGVudHMnfSA6IHt9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcG9wcGVyT3B0aW9uczogT3B0aW9ucyA9IHtcclxuICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXHJcbiAgICBtb2RpZmllcnM6IFtdLFxyXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZScsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgcG9wcGVyT3B0aW9ucygpOiBPcHRpb25zIHtcclxuICAgIGxldCBwbGFjZW1lbnQgPSB0aGlzLnBsYWNlbWVudDtcclxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcclxuICAgICAgY2FzZSAnZHJvcHVwJzoge1xyXG4gICAgICAgIHBsYWNlbWVudCA9ICd0b3Atc3RhcnQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2Ryb3BlbmQnOiB7XHJcbiAgICAgICAgcGxhY2VtZW50ID0gJ3JpZ2h0LXN0YXJ0JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdkcm9wc3RhcnQnOiB7XHJcbiAgICAgICAgcGxhY2VtZW50ID0gJ2xlZnQtc3RhcnQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hbGlnbm1lbnQgPT09ICdlbmQnKSB7XHJcbiAgICAgIHBsYWNlbWVudCA9ICdib3R0b20tZW5kJztcclxuICAgIH1cclxuICAgIHRoaXMuX3BvcHBlck9wdGlvbnMgPSB7Li4udGhpcy5fcG9wcGVyT3B0aW9ucywgcGxhY2VtZW50OiBwbGFjZW1lbnR9O1xyXG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlck9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBkcm9wZG93blN0YXRlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmIChzdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID1cclxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5kcm9wZG93blN0YXRlJC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcyA9PT0gc3RhdGUuZHJvcGRvd24pIHtcclxuICAgICAgICAgICAgaWYgKCd2aXNpYmxlJyBpbiBzdGF0ZSkge1xyXG4gICAgICAgICAgICAgIHN0YXRlPy52aXNpYmxlID09PSAndG9nZ2xlJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRvZ2dsZURyb3Bkb3duKClcclxuICAgICAgICAgICAgICAgIDogKHRoaXMudmlzaWJsZSA9IHN0YXRlLnZpc2libGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZURyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0b0Nsb3NlID09PSB0cnVlIHx8IHRoaXMuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICF0aGlzLl90b2dnbGVyPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXHJcbiAgICAgICAgICBldmVudC50YXJnZXQ/LmNsb3Nlc3QoJ1tjRHJvcGRvd25Ub2dnbGVdJylcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX3RvZ2dsZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbmF2LWxpbmsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNldFZpc2libGVTdGF0ZSh0aGlzLnZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xyXG4gICAgdGhpcy5kZXN0cm95UG9wcGVySW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFZpc2libGVTdGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UudG9nZ2xlKHt2aXNpYmxlOiB2YWx1ZSwgZHJvcGRvd246IHRoaXN9KTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG86IHR1cm4gb2ZmIHBvcHBlciBpbiBuYXZiYXItbmF2XHJcbiAgY3JlYXRlUG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdG9nZ2xlciAmJiB0aGlzLl9tZW51KSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBwb3BwZXIgcG9zaXRpb24gY2FsY3VsYXRlIChzZWUgYWxzbzogZHJvcGRvd24tbWVudS5jb21wb25lbnQpXHJcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlcikge1xyXG4gICAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IGNyZWF0ZVBvcHBlcihcclxuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB7Li4udGhpcy5wb3BwZXJPcHRpb25zfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlPy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCFob3N0LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2tleXVwJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKHVuTGlzdGVuKSA9PiB7XHJcbiAgICAgIHVuTGlzdGVuKCk7XHJcbiAgICB9KTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMubGlzdGVuZXJzLmZpbGwodW5kZWZpbmVkKTtcclxuICAgIHRoaXMubGlzdGVuZXJzID0gW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxZQUFZLEVBQWdDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFNakYsTUFBTSxPQUFPLHVCQUF1QjtJQXdCbEMsWUFDUyxVQUFzQixFQUNyQixlQUFnQyxFQUNyQixRQUE0QjtRQUZ4QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQXRCakQ7OztXQUdHO1FBQ00sVUFBSyxHQUFHLElBQUksQ0FBQztRQWFkLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFNcEIsQ0FBQztJQWpCSjs7O09BR0c7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1B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RSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxhQUFhO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7OEdBaFJVLGlCQUFpQixrQkE4SGxCLFFBQVE7a0dBOUhQLGlCQUFpQix3WEFGakIsQ0FBQyxlQUFlLENBQUMsZ0VBc0hkLHVCQUF1Qix3RUFDdkIscUJBQXFCLHlFQTFIekIsMkJBQTJCOzJGQUsxQixpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLDJCQUEyQixZQUUzQixXQUFXLGFBQ1YsQ0FBQyxlQUFlLENBQUM7OzBCQWdJekIsTUFBTTsyQkFBQyxRQUFRO2dMQXJIVCxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQWFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsU0FBUztzQkFBakIsS0FBSztnQkFRRixNQUFNO3NCQURULEtBQUs7Z0JBY0YsYUFBYTtzQkFEaEIsS0FBSztnQkFvQ0csT0FBTztzQkFBZixLQUFLO2dCQVFGLE9BQU87c0JBRFYsS0FBSztnQkFhSSxhQUFhO3NCQUF0QixNQUFNO2dCQUdnQyxRQUFRO3NCQUE5QyxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDQSxLQUFLO3NCQUF6QyxZQUFZO3VCQUFDLHFCQUFxQjtnQkFrQi9CLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQWdCaEIsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgT3B0aW9ucywgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vZHJvcGRvd24uc2VydmljZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duTWVudURpcmVjdGl2ZSB9IGZyb20gJy4uL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbY0Ryb3Bkb3duVG9nZ2xlXScsXHJcbiAgZXhwb3J0QXM6ICdjRHJvcGRvd25Ub2dnbGUnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUge1xyXG5cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3BsaXQ6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcG9wcGVyOiBCb29sZWFuSW5wdXQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZXMgcHNldWRvIGVsZW1lbnQgY2FyZXQgb24gdG9nZ2xlci5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FyZXQgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgc3BsaXQgYnV0dG9uIGRyb3Bkb3ducyB3aXRoIHZpcnR1YWxseSB0aGUgc2FtZSBtYXJrdXAgYXMgc2luZ2xlIGJ1dHRvbiBkcm9wZG93bnMsIGJ1dCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdGAgY2xhc3MgZm9yIHByb3BlciBzcGFjaW5nIGFyb3VuZCB0aGUgZHJvcGRvd24gY2FyZXQuXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNwbGl0KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zcGxpdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBzcGxpdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zcGxpdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc3BsaXQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93bkNvbXBvbmVudFxyXG4gICkge31cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAnZHJvcGRvd24tdG9nZ2xlJzogdGhpcy5jYXJldCxcclxuICAgICAgJ2Ryb3Bkb3duLXRvZ2dsZS1zcGxpdCc6IHRoaXMuc3BsaXQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbkNsaWNrKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoe3Zpc2libGU6ICd0b2dnbGUnLCBkcm9wZG93bjogdGhpcy5kcm9wZG93bn0pO1xyXG4gIH1cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZXhwb3J0QXM6ICdjRHJvcGRvd24nLFxyXG4gIHByb3ZpZGVyczogW0Ryb3Bkb3duU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rhcms6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdmlzaWJsZTogQm9vbGVhbklucHV0O1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgYWxpZ25tZW50IG9mIGRyb3Bkb3duIG1lbnUuXHJcbiAgICogQHR5cGUgeydzdGFydCcgfCAnZW5kJyB8IHsgeHM6ICdzdGFydCcgfCAnZW5kJyB9IHwgeyBzbTogJ3N0YXJ0JyB8ICdlbmQnIH0gfCB7IG1kOiAnc3RhcnQnIHwgJ2VuZCcgfSB8IHsgbGc6ICdzdGFydCcgfCAnZW5kJyB9IHwgeyB4bDogJ3N0YXJ0JyB8ICdlbmQnfSB8IHsgeHhsOiAnc3RhcnQnIHwgJ2VuZCd9fVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsaWdubWVudD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgYXV0b0Nsb3NlOiBib29sZWFuIHwgJ2luc2lkZScgfCAnb3V0c2lkZScgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGEgZGFya2VyIGNvbG9yIHNjaGVtZSB0byBtYXRjaCBhIGRhcmsgbmF2YmFyLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRhcmsodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RhcmsgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH07XHJcbiAgZ2V0IGRhcmsoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGFyaztcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGFyayA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGEgc3BlY2lmaWVkICBkaXJlY3Rpb24gYW5kIGxvY2F0aW9uIG9mIHRoZSBkcm9wZG93biBtZW51LlxyXG4gICAqIEB0eXBlICdkcm9wdXAnIHwgJ2Ryb3BlbmQnIHwgJ2Ryb3BzdGFydCdcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXJlY3Rpb24/OiAnZHJvcHVwJyB8ICdkcm9wZW5kJyB8ICdkcm9wc3RhcnQnO1xyXG5cclxuICAvKipcclxuICAgKiBEZXNjcmliZXMgdGhlIHBsYWNlbWVudCBvZiB5b3VyIGNvbXBvbmVudCBhZnRlciBQb3BwZXIuanMgaGFzIGFwcGxpZWQgYWxsIHRoZSBtb2RpZmllcnMgdGhhdCBtYXkgaGF2ZSBmbGlwcGVkIG9yIGFsdGVyZWQgdGhlIG9yaWdpbmFsbHkgcHJvdmlkZWQgcGxhY2VtZW50IHByb3BlcnR5LlxyXG4gICAqIEB0eXBlIFBsYWNlbWVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlbWVudDogUGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHlvdSB3YW50IHRvIGRpc2FibGUgZHluYW1pYyBwb3NpdGlvbmluZyBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgZmFsc2VgLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcG9wcGVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9wb3BwZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgcG9wcGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BvcHBlcjtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcG9wcGVyID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgcG9wcGVyIE9wdGlvbnMgb2JqZWN0LCBwbGFjZW1lbnQgcHJvcCB0YWtlcyBwcmVjZWRlbmNlIG92ZXJcclxuICAgKiBAdHlwZSBQYXJ0aWFsPE9wdGlvbnM+XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcG9wcGVyT3B0aW9ucyh2YWx1ZTogUGFydGlhbDxPcHRpb25zPikge1xyXG4gICAgdGhpcy5fcG9wcGVyT3B0aW9ucyA9IHsgLi4udGhpcy5fcG9wcGVyT3B0aW9ucywgLi4udmFsdWUgfTtcclxuICB9O1xyXG4gIGdldCBwb3BwZXJPcHRpb25zKCk6IFBhcnRpYWw8T3B0aW9ucz4ge1xyXG4gICAgbGV0IHBsYWNlbWVudCA9IHRoaXMucGxhY2VtZW50O1xyXG4gICAgc3dpdGNoICh0aGlzLmRpcmVjdGlvbikge1xyXG4gICAgICBjYXNlICdkcm9wdXAnOiB7XHJcbiAgICAgICAgcGxhY2VtZW50ID0gJ3RvcC1zdGFydCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZHJvcGVuZCc6IHtcclxuICAgICAgICBwbGFjZW1lbnQgPSAncmlnaHQtc3RhcnQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2Ryb3BzdGFydCc6IHtcclxuICAgICAgICBwbGFjZW1lbnQgPSAnbGVmdC1zdGFydCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFsaWdubWVudCA9PT0gJ2VuZCcpIHtcclxuICAgICAgcGxhY2VtZW50ID0gJ2JvdHRvbS1lbmQnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcG9wcGVyT3B0aW9ucyA9IHsgLi4udGhpcy5fcG9wcGVyT3B0aW9ucywgcGxhY2VtZW50OiBwbGFjZW1lbnQgfTtcclxuICAgIHJldHVybiB0aGlzLl9wb3BwZXJPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcG9wcGVyT3B0aW9uczogUGFydGlhbDxPcHRpb25zPiA9IHtcclxuICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXHJcbiAgICBtb2RpZmllcnM6IFtdLFxyXG4gICAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGRyb3Bkb3duIHZhcmlhbnQgdG8gYW4gYnRuLWdyb3VwLCBkcm9wZG93biwgaW5wdXQtZ3JvdXAsIGFuZCBuYXYtaXRlbS5cclxuICAgKi9cclxuICBASW5wdXQoKSB2YXJpYW50PzogJ2J0bi1ncm91cCcgfCAnZHJvcGRvd24nIHwgJ2lucHV0LWdyb3VwJyB8ICduYXYtaXRlbScgPSAnZHJvcGRvd24nO1xyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgZHJvcGRvd24gbWVudSBjb21wb25lbnQuXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgX3ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuYWN0aXZlVHJhcCA9IF92YWx1ZTtcclxuICAgIHRoaXMuX3Zpc2libGUgPSBfdmFsdWU7XHJcbiAgICBfdmFsdWUgPyB0aGlzLmNyZWF0ZVBvcHBlckluc3RhbmNlKCkgOiB0aGlzLmRlc3Ryb3lQb3BwZXJJbnN0YW5jZSgpO1xyXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoX3ZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBkcm9wZG93bkNvbnRleHQgPSB7JGltcGxpY2l0OiB0aGlzLnZpc2libGV9O1xyXG4gIEBDb250ZW50Q2hpbGQoRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmUpIF90b2dnbGVyITogRHJvcGRvd25Ub2dnbGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVEaXJlY3RpdmUpIF9tZW51ITogRHJvcGRvd25NZW51RGlyZWN0aXZlO1xyXG5cclxuICBwdWJsaWMgYWN0aXZlVHJhcCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBwb3BwZXJJbnN0YW5jZSE6IEluc3RhbmNlIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgbGlzdGVuZXJzOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZHJvcGRvd246XHJcbiAgICAgICAgKHRoaXMudmFyaWFudCA9PT0gJ2Ryb3Bkb3duJyB8fCB0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScpICYmXHJcbiAgICAgICAgIXRoaXMuZGlyZWN0aW9uLFxyXG4gICAgICBbYCR7dGhpcy5kaXJlY3Rpb259YF06ICEhdGhpcy5kaXJlY3Rpb24sXHJcbiAgICAgICdidG4tZ3JvdXAnOiB0aGlzLnZhcmlhbnQgPT09ICdidG4tZ3JvdXAnLFxyXG4gICAgICAnbmF2LWl0ZW0nOiB0aGlzLnZhcmlhbnQgPT09ICduYXYtaXRlbScsXHJcbiAgICAgICdpbnB1dC1ncm91cCc6IHRoaXMudmFyaWFudCA9PT0gJ2lucHV0LWdyb3VwJyxcclxuICAgICAgc2hvdzogdGhpcy52aXNpYmxlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG86IGZpbmQgYmV0dGVyIHNvbHV0aW9uXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXHJcbiAgZ2V0IGhvc3RTdHlsZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFyaWFudCA9PT0gJ2lucHV0LWdyb3VwJyA/IHtkaXNwbGF5OiAnY29udGVudHMnfSA6IHt9O1xyXG4gIH1cclxuXHJcbiAgZHJvcGRvd25TdGF0ZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbiA9XHJcbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuZHJvcGRvd25TdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMgPT09IHN0YXRlLmRyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIGlmICgndmlzaWJsZScgaW4gc3RhdGUpIHtcclxuICAgICAgICAgICAgICBzdGF0ZT8udmlzaWJsZSA9PT0gJ3RvZ2dsZSdcclxuICAgICAgICAgICAgICAgID8gdGhpcy50b2dnbGVEcm9wZG93bigpXHJcbiAgICAgICAgICAgICAgICA6ICh0aGlzLnZpc2libGUgPSBzdGF0ZS52aXNpYmxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVEcm9wZG93bigpOiB2b2lkIHtcclxuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fdG9nZ2xlcj8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldD8uY2xvc2VzdCgnW2NEcm9wZG93blRvZ2dsZV0nKSkpIHtcclxuICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ25hdi1pdGVtJykge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX3RvZ2dsZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbmF2LWxpbmsnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93blN0YXRlU3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNldFZpc2libGVTdGF0ZSh0aGlzLnZpc2libGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLmRyb3Bkb3duU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xyXG4gICAgdGhpcy5kZXN0cm95UG9wcGVySW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFZpc2libGVTdGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UudG9nZ2xlKHt2aXNpYmxlOiB2YWx1ZSwgZHJvcGRvd246IHRoaXN9KTtcclxuICB9XHJcblxyXG4gIC8vIHRvZG86IHR1cm4gb2ZmIHBvcHBlciBpbiBuYXZiYXItbmF2XHJcbiAgY3JlYXRlUG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdG9nZ2xlciAmJiB0aGlzLl9tZW51KSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBwb3BwZXIgcG9zaXRpb24gY2FsY3VsYXRlIChzZWUgYWxzbzogZHJvcGRvd24tbWVudS5jb21wb25lbnQpXHJcbiAgICAgICAgdGhpcy5fbWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xyXG4gICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlcikge1xyXG4gICAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZSA9IGNyZWF0ZVBvcHBlcihcclxuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuX21lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB7Li4udGhpcy5wb3BwZXJPcHRpb25zfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9wcGVySW5zdGFuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlPy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5saXN0ZW5lcnMucHVzaChcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RvZ2dsZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9DbG9zZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWhvc3QuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9tZW51LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hdXRvQ2xvc2UgPT09ICdpbnNpZGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmxpc3RlbmVycy5wdXNoKFxyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAna2V5dXAnLCAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLmF1dG9DbG9zZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0YXRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKHVuTGlzdGVuKSA9PiB7XHJcbiAgICAgIHVuTGlzdGVuKCk7XHJcbiAgICB9KTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMubGlzdGVuZXJzLmZpbGwodW5kZWZpbmVkKTtcclxuICAgIHRoaXMubGlzdGVuZXJzID0gW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { Directive, HostBinding, HostListener, Input, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../dropdown.service";
4
+ import * as i2 from "../dropdown/dropdown.component";
5
+ export class DropdownCloseDirective {
6
+ constructor(dropdownService, dropdown) {
7
+ this.dropdownService = dropdownService;
8
+ this.dropdown = dropdown;
9
+ this._tabIndex = null;
10
+ }
11
+ get hostClasses() {
12
+ return {
13
+ disabled: this.disabled
14
+ };
15
+ }
16
+ set tabIndex(value) {
17
+ this._tabIndex = value;
18
+ }
19
+ get tabIndex() {
20
+ return this.disabled ? '-1' : this._tabIndex;
21
+ }
22
+ get isDisabled() {
23
+ return this.disabled || null;
24
+ }
25
+ onClick($event) {
26
+ this.dropdownService.toggle({ visible: false, dropdown: this.dropdown });
27
+ }
28
+ onKeyUp($event) {
29
+ if ($event.key === 'Enter') {
30
+ this.dropdownService.toggle({ visible: false, dropdown: this.dropdown });
31
+ }
32
+ }
33
+ }
34
+ DropdownCloseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DropdownCloseDirective, deps: [{ token: i1.DropdownService }, { token: i2.DropdownComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
35
+ DropdownCloseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: DropdownCloseDirective, selector: "[cDropdownClose]", inputs: { disabled: "disabled", 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 });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: DropdownCloseDirective, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: '[cDropdownClose]',
40
+ exportAs: 'cDropdownClose'
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i1.DropdownService }, { type: i2.DropdownComponent, decorators: [{
43
+ type: Optional
44
+ }] }]; }, propDecorators: { disabled: [{
45
+ type: Input
46
+ }], hostClasses: [{
47
+ type: HostBinding,
48
+ args: ['class']
49
+ }], tabIndex: [{
50
+ type: HostBinding,
51
+ args: ['attr.tabindex']
52
+ }, {
53
+ type: Input
54
+ }], isDisabled: [{
55
+ type: HostBinding,
56
+ args: ['attr.aria-disabled']
57
+ }], onClick: [{
58
+ type: HostListener,
59
+ args: ['click', ['$event']]
60
+ }], onKeyUp: [{
61
+ type: HostListener,
62
+ args: ['keyup', ['$event']]
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY2xvc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi1jbG9zZS9kcm9wZG93bi1jbG9zZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdEYsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQyxZQUNVLGVBQWdDLEVBQ3JCLFFBQTRCO1FBRHZDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQWtCekMsY0FBUyxHQUEyQixJQUFJLENBQUM7SUFqQjdDLENBQUM7SUFFTCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFFSSxRQUFRLENBQUMsS0FBNkI7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFHRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFHTyxPQUFPLENBQUMsTUFBa0I7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBR08sT0FBTyxDQUFDLE1BQXFCO1FBQ25DLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7O21IQTlDVSxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCOzswQkFZSSxRQUFROzRDQUpGLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBU2hCLFFBQVE7c0JBRlgsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSztnQkFVRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU16QixPQUFPO3NCQURkLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU16QixPQUFPO3NCQURkLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vZHJvcGRvd24uc2VydmljZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NEcm9wZG93bkNsb3NlXScsXHJcbiAgZXhwb3J0QXM6ICdjRHJvcGRvd25DbG9zZSdcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ2xvc2VEaXJlY3RpdmUge1xyXG5cclxuICAvKipcclxuICAgKiBEaXNhYmxlcyBhIGRyb3Bkb3duLWNsb3NlIGRpcmVjdGl2ZS5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBEcm9wZG93blNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZHJvcGRvd24/OiBEcm9wZG93bkNvbXBvbmVudFxyXG4gICkgeyB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHRhYkluZGV4KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XHJcbiAgICB0aGlzLl90YWJJbmRleCA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgdGFiSW5kZXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICctMScgOiB0aGlzLl90YWJJbmRleDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXHJcbiAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBwcml2YXRlIG9uQ2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS50b2dnbGUoeyB2aXNpYmxlOiBmYWxzZSwgZHJvcGRvd246IHRoaXMuZHJvcGRvd24gfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgcHJpdmF0ZSBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UudG9nZ2xlKHsgdmlzaWJsZTogZmFsc2UsIGRyb3Bkb3duOiB0aGlzLmRyb3Bkb3duIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=