@coreui/angular 4.2.23 → 4.2.28

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 (579) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +212 -212
  3. package/esm2020/coreui-angular.mjs +4 -4
  4. package/esm2020/lib/accordion/accordion/accordion.component.mjs +39 -39
  5. package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +43 -43
  6. package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +72 -72
  7. package/esm2020/lib/accordion/accordion.module.mjs +47 -47
  8. package/esm2020/lib/accordion/accordion.service.mjs +36 -36
  9. package/esm2020/lib/accordion/index.mjs +1 -1
  10. package/esm2020/lib/accordion/public_api.mjs +4 -4
  11. package/esm2020/lib/alert/alert-heading.directive.mjs +21 -21
  12. package/esm2020/lib/alert/alert-link.directive.mjs +21 -21
  13. package/esm2020/lib/alert/alert.component.mjs +181 -181
  14. package/esm2020/lib/alert/alert.module.mjs +37 -37
  15. package/esm2020/lib/alert/index.mjs +1 -1
  16. package/esm2020/lib/alert/public_api.mjs +4 -4
  17. package/esm2020/lib/avatar/avatar.component.mjs +48 -48
  18. package/esm2020/lib/avatar/avatar.module.mjs +23 -23
  19. package/esm2020/lib/avatar/index.mjs +1 -1
  20. package/esm2020/lib/avatar/public_api.mjs +3 -3
  21. package/esm2020/lib/backdrop/backdrop.service.mjs +58 -52
  22. package/esm2020/lib/badge/badge.component.mjs +41 -41
  23. package/esm2020/lib/badge/badge.module.mjs +23 -23
  24. package/esm2020/lib/badge/index.mjs +1 -1
  25. package/esm2020/lib/badge/public_api.mjs +2 -2
  26. package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +42 -42
  27. package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +37 -37
  28. package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +1 -1
  29. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +41 -41
  30. package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +53 -53
  31. package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +36 -36
  32. package/esm2020/lib/breadcrumb/index.mjs +1 -1
  33. package/esm2020/lib/breadcrumb/public_api.mjs +6 -6
  34. package/esm2020/lib/button/button-close.directive.mjs +44 -44
  35. package/esm2020/lib/button/button.directive.mjs +112 -112
  36. package/esm2020/lib/button/button.module.mjs +28 -28
  37. package/esm2020/lib/button/index.mjs +1 -1
  38. package/esm2020/lib/button/public_api.mjs +3 -3
  39. package/esm2020/lib/button-group/button-group/button-group.component.mjs +40 -40
  40. package/esm2020/lib/button-group/button-group.module.mjs +28 -28
  41. package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +34 -34
  42. package/esm2020/lib/button-group/index.mjs +1 -1
  43. package/esm2020/lib/button-group/public_api.mjs +3 -3
  44. package/esm2020/lib/callout/callout.component.mjs +23 -23
  45. package/esm2020/lib/callout/callout.module.mjs +19 -19
  46. package/esm2020/lib/callout/index.mjs +1 -1
  47. package/esm2020/lib/callout/public_api.mjs +2 -2
  48. package/esm2020/lib/card/card-body.component.mjs +21 -21
  49. package/esm2020/lib/card/card-footer.component.mjs +21 -21
  50. package/esm2020/lib/card/card-group.component.mjs +21 -21
  51. package/esm2020/lib/card/card-header-actions.component.mjs +19 -19
  52. package/esm2020/lib/card/card-header.component.mjs +21 -21
  53. package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +18 -18
  54. package/esm2020/lib/card/card-img.directive.mjs +24 -24
  55. package/esm2020/lib/card/card-link.directive.mjs +20 -20
  56. package/esm2020/lib/card/card-subtitle.directive.mjs +20 -20
  57. package/esm2020/lib/card/card-text.directive.mjs +20 -20
  58. package/esm2020/lib/card/card-title.directive.mjs +20 -20
  59. package/esm2020/lib/card/card.component.mjs +28 -28
  60. package/esm2020/lib/card/card.module.mjs +78 -78
  61. package/esm2020/lib/card/index.mjs +1 -1
  62. package/esm2020/lib/card/public_api.mjs +13 -13
  63. package/esm2020/lib/carousel/carousel/carousel.component.mjs +214 -214
  64. package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +16 -16
  65. package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +83 -83
  66. package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +44 -44
  67. package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +47 -47
  68. package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +68 -68
  69. package/esm2020/lib/carousel/carousel-state.mjs +77 -77
  70. package/esm2020/lib/carousel/carousel-state.type.mjs +1 -1
  71. package/esm2020/lib/carousel/carousel.animation.mjs +69 -69
  72. package/esm2020/lib/carousel/carousel.config.mjs +21 -21
  73. package/esm2020/lib/carousel/carousel.module.mjs +53 -53
  74. package/esm2020/lib/carousel/carousel.service.mjs +18 -18
  75. package/esm2020/lib/carousel/index.mjs +2 -2
  76. package/esm2020/lib/carousel/public_api.mjs +9 -9
  77. package/esm2020/lib/collapse/collapse.animations.mjs +18 -18
  78. package/esm2020/lib/collapse/collapse.directive.mjs +190 -190
  79. package/esm2020/lib/collapse/collapse.module.mjs +22 -22
  80. package/esm2020/lib/collapse/index.mjs +1 -1
  81. package/esm2020/lib/collapse/public_api.mjs +2 -2
  82. package/esm2020/lib/coreui.types.mjs +10 -10
  83. package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +374 -366
  84. package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +72 -72
  85. package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +22 -22
  86. package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +22 -22
  87. package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +22 -22
  88. package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +86 -86
  89. package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +81 -81
  90. package/esm2020/lib/dropdown/dropdown.module.mjs +64 -64
  91. package/esm2020/lib/dropdown/dropdown.service.mjs +17 -17
  92. package/esm2020/lib/dropdown/index.mjs +1 -1
  93. package/esm2020/lib/dropdown/public_api.mjs +10 -10
  94. package/esm2020/lib/footer/footer.component.mjs +37 -37
  95. package/esm2020/lib/footer/footer.module.mjs +23 -23
  96. package/esm2020/lib/footer/index.mjs +1 -1
  97. package/esm2020/lib/footer/public_api.mjs +2 -2
  98. package/esm2020/lib/form/form/form.directive.mjs +37 -37
  99. package/esm2020/lib/form/form-check/form-check-input.directive.mjs +62 -62
  100. package/esm2020/lib/form/form-check/form-check-label.directive.mjs +20 -20
  101. package/esm2020/lib/form/form-check/form-check.component.mjs +75 -75
  102. package/esm2020/lib/form/form-control/form-control.directive.mjs +70 -70
  103. package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +42 -42
  104. package/esm2020/lib/form/form-floating/form-floating.directive.mjs +37 -37
  105. package/esm2020/lib/form/form-label/form-label.directive.mjs +39 -39
  106. package/esm2020/lib/form/form-select/form-select.directive.mjs +34 -34
  107. package/esm2020/lib/form/form-text/form-text.directive.mjs +21 -21
  108. package/esm2020/lib/form/form.module.mjs +76 -76
  109. package/esm2020/lib/form/index.mjs +1 -1
  110. package/esm2020/lib/form/input-group/input-group.component.mjs +30 -30
  111. package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +21 -21
  112. package/esm2020/lib/form/public_api.mjs +13 -13
  113. package/esm2020/lib/grid/col.component.mjs +11 -11
  114. package/esm2020/lib/grid/col.directive.mjs +156 -156
  115. package/esm2020/lib/grid/col.type.mjs +1 -1
  116. package/esm2020/lib/grid/container.component.mjs +42 -42
  117. package/esm2020/lib/grid/container.type.mjs +1 -1
  118. package/esm2020/lib/grid/grid.module.mjs +47 -47
  119. package/esm2020/lib/grid/gutter.directive.mjs +55 -55
  120. package/esm2020/lib/grid/gutter.type.mjs +1 -1
  121. package/esm2020/lib/grid/index.mjs +1 -1
  122. package/esm2020/lib/grid/public_api.mjs +7 -7
  123. package/esm2020/lib/grid/row.component.mjs +11 -11
  124. package/esm2020/lib/grid/row.directive.mjs +44 -44
  125. package/esm2020/lib/grid/row.type.mjs +1 -1
  126. package/esm2020/lib/header/header/header.component.mjs +47 -47
  127. package/esm2020/lib/header/header-brand/header-brand.component.mjs +30 -30
  128. package/esm2020/lib/header/header-divider/header-divider.component.mjs +19 -19
  129. package/esm2020/lib/header/header-nav/header-nav.component.mjs +27 -27
  130. package/esm2020/lib/header/header-text/header-text.component.mjs +19 -19
  131. package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +53 -53
  132. package/esm2020/lib/header/header.module.mjs +48 -48
  133. package/esm2020/lib/header/index.mjs +1 -1
  134. package/esm2020/lib/header/public_api.mjs +7 -7
  135. package/esm2020/lib/image/img.directive.mjs +91 -91
  136. package/esm2020/lib/image/img.module.mjs +23 -23
  137. package/esm2020/lib/image/index.mjs +1 -1
  138. package/esm2020/lib/image/public_api.mjs +2 -2
  139. package/esm2020/lib/list-group/index.mjs +1 -1
  140. package/esm2020/lib/list-group/list-group-item.directive.mjs +72 -72
  141. package/esm2020/lib/list-group/list-group.directive.mjs +43 -43
  142. package/esm2020/lib/list-group/list-group.module.mjs +24 -24
  143. package/esm2020/lib/list-group/public_api.mjs +3 -3
  144. package/esm2020/lib/modal/index.mjs +1 -1
  145. package/esm2020/lib/modal/modal/modal.component.mjs +305 -311
  146. package/esm2020/lib/modal/modal-body/modal-body.component.mjs +18 -18
  147. package/esm2020/lib/modal/modal-content/modal-content.component.mjs +23 -23
  148. package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +31 -31
  149. package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +26 -26
  150. package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +21 -21
  151. package/esm2020/lib/modal/modal-header/modal-header.component.mjs +21 -21
  152. package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +20 -20
  153. package/esm2020/lib/modal/modal.module.mjs +68 -68
  154. package/esm2020/lib/modal/modal.service.mjs +20 -20
  155. package/esm2020/lib/modal/public_api.mjs +10 -10
  156. package/esm2020/lib/nav/index.mjs +1 -1
  157. package/esm2020/lib/nav/nav-item.component.mjs +18 -18
  158. package/esm2020/lib/nav/nav-link.directive.mjs +87 -87
  159. package/esm2020/lib/nav/nav.component.mjs +24 -24
  160. package/esm2020/lib/nav/nav.module.mjs +21 -21
  161. package/esm2020/lib/nav/public_api.mjs +4 -4
  162. package/esm2020/lib/navbar/index.mjs +1 -1
  163. package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +22 -22
  164. package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +39 -39
  165. package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +19 -19
  166. package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +62 -62
  167. package/esm2020/lib/navbar/navbar.component.mjs +84 -84
  168. package/esm2020/lib/navbar/navbar.module.mjs +47 -47
  169. package/esm2020/lib/navbar/public_api.mjs +6 -6
  170. package/esm2020/lib/offcanvas/index.mjs +1 -1
  171. package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +316 -244
  172. package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +18 -18
  173. package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +18 -18
  174. package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +20 -20
  175. package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +26 -26
  176. package/esm2020/lib/offcanvas/offcanvas.module.mjs +56 -56
  177. package/esm2020/lib/offcanvas/offcanvas.service.mjs +20 -20
  178. package/esm2020/lib/offcanvas/public_api.mjs +7 -7
  179. package/esm2020/lib/pagination/index.mjs +1 -1
  180. package/esm2020/lib/pagination/page-item/page-item.component.mjs +11 -11
  181. package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -62
  182. package/esm2020/lib/pagination/page-link/page-link.directive.mjs +20 -20
  183. package/esm2020/lib/pagination/pagination/pagination.component.mjs +40 -40
  184. package/esm2020/lib/pagination/pagination.module.mjs +38 -38
  185. package/esm2020/lib/pagination/public_api.mjs +5 -5
  186. package/esm2020/lib/placeholder/index.mjs +2 -2
  187. package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +34 -34
  188. package/esm2020/lib/placeholder/placeholder.directive.mjs +51 -51
  189. package/esm2020/lib/placeholder/placeholder.module.mjs +29 -29
  190. package/esm2020/lib/placeholder/public_api.mjs +4 -4
  191. package/esm2020/lib/popover/index.mjs +1 -1
  192. package/esm2020/lib/popover/popover/popover.component.mjs +92 -92
  193. package/esm2020/lib/popover/popover.directive.mjs +196 -196
  194. package/esm2020/lib/popover/popover.module.mjs +28 -28
  195. package/esm2020/lib/popover/public_api.mjs +3 -3
  196. package/esm2020/lib/progress/index.mjs +1 -1
  197. package/esm2020/lib/progress/progress-bar.component.mjs +111 -111
  198. package/esm2020/lib/progress/progress-bar.mjs +1 -1
  199. package/esm2020/lib/progress/progress.component.mjs +71 -71
  200. package/esm2020/lib/progress/progress.module.mjs +24 -24
  201. package/esm2020/lib/progress/public_api.mjs +3 -3
  202. package/esm2020/lib/services/class-toggle.service.mjs +29 -29
  203. package/esm2020/lib/services/index.mjs +1 -1
  204. package/esm2020/lib/services/intersection.service.mjs +34 -34
  205. package/esm2020/lib/services/listeners.service.mjs +42 -42
  206. package/esm2020/lib/services/public_api.mjs +3 -3
  207. package/esm2020/lib/shared/html-attr.directive.mjs +52 -52
  208. package/esm2020/lib/shared/index.mjs +1 -1
  209. package/esm2020/lib/shared/public_api.mjs +3 -3
  210. package/esm2020/lib/shared/shared.module.mjs +45 -45
  211. package/esm2020/lib/shared/template-id.directive.mjs +18 -18
  212. package/esm2020/lib/sidebar/index.mjs +1 -1
  213. package/esm2020/lib/sidebar/public_api.mjs +9 -9
  214. package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +244 -244
  215. package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +59 -59
  216. package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +29 -29
  217. package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +19 -19
  218. package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +19 -19
  219. package/esm2020/lib/sidebar/sidebar-nav/index.mjs +1 -1
  220. package/esm2020/lib/sidebar/sidebar-nav/public_api.mjs +13 -13
  221. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +23 -23
  222. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +18 -18
  223. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +18 -18
  224. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +21 -21
  225. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +33 -33
  226. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -43
  227. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -94
  228. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -23
  229. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +68 -68
  230. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +204 -204
  231. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs +2 -2
  232. package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +54 -54
  233. package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +39 -39
  234. package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +25 -25
  235. package/esm2020/lib/sidebar/sidebar.module.mjs +99 -99
  236. package/esm2020/lib/sidebar/sidebar.service.mjs +20 -20
  237. package/esm2020/lib/spinner/index.mjs +1 -1
  238. package/esm2020/lib/spinner/public_api.mjs +2 -2
  239. package/esm2020/lib/spinner/spinner.component.mjs +49 -49
  240. package/esm2020/lib/spinner/spinner.module.mjs +27 -27
  241. package/esm2020/lib/table/index.mjs +1 -1
  242. package/esm2020/lib/table/public_api.mjs +4 -4
  243. package/esm2020/lib/table/table-active.directive.mjs +39 -39
  244. package/esm2020/lib/table/table-color.directive.mjs +23 -23
  245. package/esm2020/lib/table/table.directive.mjs +147 -147
  246. package/esm2020/lib/table/table.module.mjs +33 -33
  247. package/esm2020/lib/tabs/index.mjs +1 -1
  248. package/esm2020/lib/tabs/public_api.mjs +5 -5
  249. package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -92
  250. package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -128
  251. package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +56 -56
  252. package/esm2020/lib/tabs/tab.service.mjs +20 -20
  253. package/esm2020/lib/tabs/tabs.module.mjs +39 -39
  254. package/esm2020/lib/toast/index.mjs +1 -1
  255. package/esm2020/lib/toast/public_api.mjs +8 -8
  256. package/esm2020/lib/toast/toast/toast.component.mjs +238 -238
  257. package/esm2020/lib/toast/toast-body/toast-body.component.mjs +20 -20
  258. package/esm2020/lib/toast/toast-close.directive.mjs +27 -27
  259. package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -31
  260. package/esm2020/lib/toast/toast.module.mjs +49 -49
  261. package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +16 -16
  262. package/esm2020/lib/toast/toaster/toaster.component.mjs +140 -140
  263. package/esm2020/lib/toast/toaster/toaster.service.mjs +20 -20
  264. package/esm2020/lib/tooltip/index.mjs +1 -1
  265. package/esm2020/lib/tooltip/public_api.mjs +3 -3
  266. package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -88
  267. package/esm2020/lib/tooltip/tooltip.directive.mjs +191 -191
  268. package/esm2020/lib/tooltip/tooltip.module.mjs +28 -28
  269. package/esm2020/lib/utilities/align.directive.mjs +23 -23
  270. package/esm2020/lib/utilities/bg-color.directive.mjs +32 -32
  271. package/esm2020/lib/utilities/border.directive.mjs +65 -65
  272. package/esm2020/lib/utilities/border.type.mjs +1 -1
  273. package/esm2020/lib/utilities/index.mjs +1 -1
  274. package/esm2020/lib/utilities/public_api.mjs +6 -6
  275. package/esm2020/lib/utilities/rounded.directive.mjs +65 -65
  276. package/esm2020/lib/utilities/rounded.type.mjs +1 -1
  277. package/esm2020/lib/utilities/text-color.directive.mjs +31 -31
  278. package/esm2020/lib/utilities/utilities.module.mjs +43 -43
  279. package/esm2020/lib/widget/index.mjs +2 -2
  280. package/esm2020/lib/widget/public_api.mjs +7 -7
  281. package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +48 -48
  282. package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -52
  283. package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +79 -79
  284. package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +38 -38
  285. package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +29 -29
  286. package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +92 -92
  287. package/esm2020/lib/widget/widget.module.mjs +56 -56
  288. package/esm2020/public-api.mjs +41 -41
  289. package/fesm2015/coreui-angular.mjs +9774 -9696
  290. package/fesm2015/coreui-angular.mjs.map +1 -1
  291. package/fesm2020/coreui-angular.mjs +9706 -9630
  292. package/fesm2020/coreui-angular.mjs.map +1 -1
  293. package/index.d.ts +5 -5
  294. package/lib/accordion/accordion/accordion.component.d.ts +22 -22
  295. package/lib/accordion/accordion-button/accordion-button.directive.d.ts +18 -18
  296. package/lib/accordion/accordion-item/accordion-item.component.d.ts +33 -33
  297. package/lib/accordion/accordion.module.d.ts +12 -12
  298. package/lib/accordion/accordion.service.d.ts +13 -13
  299. package/lib/accordion/index.d.ts +1 -1
  300. package/lib/accordion/public_api.d.ts +4 -4
  301. package/lib/alert/alert-heading.directive.d.ts +7 -7
  302. package/lib/alert/alert-link.directive.d.ts +7 -7
  303. package/lib/alert/alert.component.d.ts +68 -68
  304. package/lib/alert/alert.module.d.ts +11 -11
  305. package/lib/alert/index.d.ts +1 -1
  306. package/lib/alert/public_api.d.ts +4 -4
  307. package/lib/avatar/avatar.component.d.ts +40 -40
  308. package/lib/avatar/avatar.module.d.ts +8 -8
  309. package/lib/avatar/index.d.ts +1 -1
  310. package/lib/avatar/public_api.d.ts +2 -2
  311. package/lib/backdrop/backdrop.service.d.ts +17 -16
  312. package/lib/badge/badge.component.d.ts +32 -32
  313. package/lib/badge/badge.module.d.ts +8 -8
  314. package/lib/badge/index.d.ts +1 -1
  315. package/lib/badge/public_api.d.ts +2 -2
  316. package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +21 -21
  317. package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +28 -28
  318. package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +9 -9
  319. package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.d.ts +21 -21
  320. package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +14 -14
  321. package/lib/breadcrumb/breadcrumb.module.d.ts +12 -12
  322. package/lib/breadcrumb/index.d.ts +1 -1
  323. package/lib/breadcrumb/public_api.d.ts +6 -6
  324. package/lib/button/button-close.directive.d.ts +16 -16
  325. package/lib/button/button.directive.d.ts +54 -54
  326. package/lib/button/button.module.d.ts +9 -9
  327. package/lib/button/index.d.ts +1 -1
  328. package/lib/button/public_api.d.ts +3 -3
  329. package/lib/button-group/button-group/button-group.component.d.ts +23 -23
  330. package/lib/button-group/button-group.module.d.ts +9 -9
  331. package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +13 -13
  332. package/lib/button-group/index.d.ts +1 -1
  333. package/lib/button-group/public_api.d.ts +3 -3
  334. package/lib/callout/callout.component.d.ts +13 -13
  335. package/lib/callout/callout.module.d.ts +8 -8
  336. package/lib/callout/index.d.ts +1 -1
  337. package/lib/callout/public_api.d.ts +2 -2
  338. package/lib/card/card-body.component.d.ts +6 -6
  339. package/lib/card/card-footer.component.d.ts +6 -6
  340. package/lib/card/card-group.component.d.ts +6 -6
  341. package/lib/card/card-header-actions.component.d.ts +6 -6
  342. package/lib/card/card-header.component.d.ts +6 -6
  343. package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +6 -6
  344. package/lib/card/card-img.directive.d.ts +11 -11
  345. package/lib/card/card-link.directive.d.ts +6 -6
  346. package/lib/card/card-subtitle.directive.d.ts +6 -6
  347. package/lib/card/card-text.directive.d.ts +6 -6
  348. package/lib/card/card-title.directive.d.ts +6 -6
  349. package/lib/card/card.component.d.ts +18 -18
  350. package/lib/card/card.module.d.ts +19 -19
  351. package/lib/card/index.d.ts +1 -1
  352. package/lib/card/public_api.d.ts +13 -13
  353. package/lib/carousel/carousel/carousel.component.d.ts +92 -92
  354. package/lib/carousel/carousel-caption/carousel-caption.component.d.ts +7 -7
  355. package/lib/carousel/carousel-control/carousel-control.component.d.ts +31 -31
  356. package/lib/carousel/carousel-indicators/carousel-indicators.component.d.ts +18 -18
  357. package/lib/carousel/carousel-inner/carousel-inner.component.d.ts +21 -21
  358. package/lib/carousel/carousel-item/carousel-item.component.d.ts +30 -30
  359. package/lib/carousel/carousel-state.d.ts +16 -16
  360. package/lib/carousel/carousel-state.type.d.ts +15 -15
  361. package/lib/carousel/carousel.animation.d.ts +4 -4
  362. package/lib/carousel/carousel.config.d.ts +10 -10
  363. package/lib/carousel/carousel.module.d.ts +15 -15
  364. package/lib/carousel/carousel.service.d.ts +14 -14
  365. package/lib/carousel/index.d.ts +1 -1
  366. package/lib/carousel/public_api.d.ts +8 -8
  367. package/lib/collapse/collapse.animations.d.ts +4 -4
  368. package/lib/collapse/collapse.directive.d.ts +65 -65
  369. package/lib/collapse/collapse.module.d.ts +10 -10
  370. package/lib/collapse/index.d.ts +1 -1
  371. package/lib/collapse/public_api.d.ts +2 -2
  372. package/lib/coreui.types.d.ts +46 -46
  373. package/lib/dropdown/dropdown/dropdown.component.d.ts +136 -135
  374. package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +26 -26
  375. package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +7 -7
  376. package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +7 -7
  377. package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +7 -7
  378. package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +36 -36
  379. package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +36 -36
  380. package/lib/dropdown/dropdown.module.d.ts +14 -14
  381. package/lib/dropdown/dropdown.service.d.ts +13 -13
  382. package/lib/dropdown/index.d.ts +1 -1
  383. package/lib/dropdown/public_api.d.ts +9 -9
  384. package/lib/footer/footer.component.d.ts +18 -18
  385. package/lib/footer/footer.module.d.ts +8 -8
  386. package/lib/footer/index.d.ts +1 -1
  387. package/lib/footer/public_api.d.ts +2 -2
  388. package/lib/form/form/form.directive.d.ts +17 -17
  389. package/lib/form/form-check/form-check-input.directive.d.ts +31 -31
  390. package/lib/form/form-check/form-check-label.directive.d.ts +6 -6
  391. package/lib/form/form-check/form-check.component.d.ts +36 -36
  392. package/lib/form/form-control/form-control.directive.d.ts +34 -34
  393. package/lib/form/form-feedback/form-feedback.component.d.ts +18 -18
  394. package/lib/form/form-floating/form-floating.directive.d.ts +16 -16
  395. package/lib/form/form-label/form-label.directive.d.ts +16 -16
  396. package/lib/form/form-select/form-select.directive.d.ts +16 -16
  397. package/lib/form/form-text/form-text.directive.d.ts +7 -7
  398. package/lib/form/form.module.d.ts +19 -19
  399. package/lib/form/index.d.ts +1 -1
  400. package/lib/form/input-group/input-group.component.d.ts +11 -11
  401. package/lib/form/input-group-text/input-group-text.directive.d.ts +7 -7
  402. package/lib/form/public_api.d.ts +13 -13
  403. package/lib/grid/col.component.d.ts +6 -6
  404. package/lib/grid/col.directive.d.ts +75 -75
  405. package/lib/grid/col.type.d.ts +11 -11
  406. package/lib/grid/container.component.d.ts +20 -20
  407. package/lib/grid/container.type.d.ts +5 -5
  408. package/lib/grid/grid.module.d.ts +13 -13
  409. package/lib/grid/gutter.directive.d.ts +13 -13
  410. package/lib/grid/gutter.type.d.ts +13 -13
  411. package/lib/grid/index.d.ts +1 -1
  412. package/lib/grid/public_api.d.ts +7 -7
  413. package/lib/grid/row.component.d.ts +6 -6
  414. package/lib/grid/row.directive.d.ts +37 -37
  415. package/lib/grid/row.type.d.ts +9 -9
  416. package/lib/header/header/header.component.d.ts +25 -25
  417. package/lib/header/header-brand/header-brand.component.d.ts +12 -12
  418. package/lib/header/header-divider/header-divider.component.d.ts +6 -6
  419. package/lib/header/header-nav/header-nav.component.d.ts +12 -12
  420. package/lib/header/header-text/header-text.component.d.ts +6 -6
  421. package/lib/header/header-toggler/header-toggler.directive.d.ts +25 -25
  422. package/lib/header/header.module.d.ts +13 -13
  423. package/lib/header/index.d.ts +1 -1
  424. package/lib/header/public_api.d.ts +7 -7
  425. package/lib/image/img.directive.d.ts +42 -42
  426. package/lib/image/img.module.d.ts +8 -8
  427. package/lib/image/index.d.ts +1 -1
  428. package/lib/image/public_api.d.ts +2 -2
  429. package/lib/list-group/index.d.ts +1 -1
  430. package/lib/list-group/list-group-item.directive.d.ts +33 -33
  431. package/lib/list-group/list-group.directive.d.ts +21 -21
  432. package/lib/list-group/list-group.module.d.ts +9 -9
  433. package/lib/list-group/public_api.d.ts +3 -3
  434. package/lib/modal/index.d.ts +1 -1
  435. package/lib/modal/modal/modal.component.d.ts +103 -104
  436. package/lib/modal/modal-body/modal-body.component.d.ts +6 -6
  437. package/lib/modal/modal-content/modal-content.component.d.ts +7 -7
  438. package/lib/modal/modal-dialog/modal-dialog.component.d.ts +25 -25
  439. package/lib/modal/modal-dismiss/modal-toggle.directive.d.ts +13 -13
  440. package/lib/modal/modal-footer/modal-footer.component.d.ts +6 -6
  441. package/lib/modal/modal-header/modal-header.component.d.ts +6 -6
  442. package/lib/modal/modal-title/modal-title.directive.d.ts +6 -6
  443. package/lib/modal/modal.module.d.ts +16 -16
  444. package/lib/modal/modal.service.d.ts +15 -15
  445. package/lib/modal/public_api.d.ts +10 -10
  446. package/lib/nav/index.d.ts +1 -1
  447. package/lib/nav/nav-item.component.d.ts +6 -6
  448. package/lib/nav/nav-link.directive.d.ts +34 -34
  449. package/lib/nav/nav.component.d.ts +16 -16
  450. package/lib/nav/nav.module.d.ts +10 -10
  451. package/lib/nav/public_api.d.ts +4 -4
  452. package/lib/navbar/index.d.ts +1 -1
  453. package/lib/navbar/navbar-brand/navbar-brand.directive.d.ts +7 -7
  454. package/lib/navbar/navbar-nav/navbar-nav.component.d.ts +15 -15
  455. package/lib/navbar/navbar-text/navbar-text.component.d.ts +6 -6
  456. package/lib/navbar/navbar-toggler/navbar-toggler.directive.d.ts +33 -33
  457. package/lib/navbar/navbar.component.d.ts +39 -39
  458. package/lib/navbar/navbar.module.d.ts +13 -13
  459. package/lib/navbar/public_api.d.ts +6 -6
  460. package/lib/offcanvas/index.d.ts +1 -1
  461. package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +94 -82
  462. package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +6 -6
  463. package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +6 -6
  464. package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +6 -6
  465. package/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.d.ts +14 -14
  466. package/lib/offcanvas/offcanvas.module.d.ts +13 -13
  467. package/lib/offcanvas/offcanvas.service.d.ts +15 -15
  468. package/lib/offcanvas/public_api.d.ts +7 -7
  469. package/lib/pagination/index.d.ts +1 -1
  470. package/lib/pagination/page-item/page-item.component.d.ts +6 -6
  471. package/lib/pagination/page-item/page-item.directive.d.ts +24 -24
  472. package/lib/pagination/page-link/page-link.directive.d.ts +6 -6
  473. package/lib/pagination/pagination/pagination.component.d.ts +22 -22
  474. package/lib/pagination/pagination.module.d.ts +11 -11
  475. package/lib/pagination/public_api.d.ts +5 -5
  476. package/lib/placeholder/index.d.ts +1 -1
  477. package/lib/placeholder/placeholder-animation.directive.d.ts +18 -18
  478. package/lib/placeholder/placeholder.directive.d.ts +22 -22
  479. package/lib/placeholder/placeholder.module.d.ts +9 -9
  480. package/lib/placeholder/public_api.d.ts +3 -3
  481. package/lib/popover/index.d.ts +1 -1
  482. package/lib/popover/popover/popover.component.d.ts +30 -30
  483. package/lib/popover/popover.directive.d.ts +58 -58
  484. package/lib/popover/popover.module.d.ts +9 -9
  485. package/lib/popover/public_api.d.ts +3 -3
  486. package/lib/progress/index.d.ts +1 -1
  487. package/lib/progress/progress-bar.component.d.ts +52 -52
  488. package/lib/progress/progress-bar.d.ts +10 -10
  489. package/lib/progress/progress.component.d.ts +32 -32
  490. package/lib/progress/progress.module.d.ts +9 -9
  491. package/lib/progress/public_api.d.ts +4 -4
  492. package/lib/services/class-toggle.service.d.ts +11 -11
  493. package/lib/services/index.d.ts +1 -1
  494. package/lib/services/intersection.service.d.ts +22 -22
  495. package/lib/services/listeners.service.d.ts +19 -19
  496. package/lib/services/public_api.d.ts +2 -2
  497. package/lib/shared/html-attr.directive.d.ts +16 -16
  498. package/lib/shared/index.d.ts +1 -1
  499. package/lib/shared/public_api.d.ts +3 -3
  500. package/lib/shared/shared.module.d.ts +11 -11
  501. package/lib/shared/template-id.directive.d.ts +9 -9
  502. package/lib/sidebar/index.d.ts +1 -1
  503. package/lib/sidebar/public_api.d.ts +9 -9
  504. package/lib/sidebar/sidebar/sidebar.component.d.ts +85 -85
  505. package/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.d.ts +16 -16
  506. package/lib/sidebar/sidebar-brand/sidebar-brand.component.d.ts +12 -12
  507. package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +7 -7
  508. package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +7 -7
  509. package/lib/sidebar/sidebar-nav/index.d.ts +1 -1
  510. package/lib/sidebar/sidebar-nav/public_api.d.ts +12 -12
  511. package/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.d.ts +7 -7
  512. package/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.d.ts +7 -7
  513. package/lib/sidebar/sidebar-nav/sidebar-nav-group.service.d.ts +14 -14
  514. package/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.d.ts +7 -7
  515. package/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.d.ts +10 -10
  516. package/lib/sidebar/sidebar-nav/sidebar-nav-label.component.d.ts +18 -18
  517. package/lib/sidebar/sidebar-nav/sidebar-nav-link.component.d.ts +34 -34
  518. package/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.d.ts +7 -7
  519. package/lib/sidebar/sidebar-nav/sidebar-nav-title.component.d.ts +15 -15
  520. package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +59 -59
  521. package/lib/sidebar/sidebar-nav/sidebar-nav.d.ts +53 -53
  522. package/lib/sidebar/sidebar-nav/sidebar-nav.service.d.ts +20 -20
  523. package/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.d.ts +25 -25
  524. package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +7 -7
  525. package/lib/sidebar/sidebar.module.d.ts +25 -25
  526. package/lib/sidebar/sidebar.service.d.ts +19 -19
  527. package/lib/spinner/index.d.ts +1 -1
  528. package/lib/spinner/public_api.d.ts +2 -2
  529. package/lib/spinner/spinner.component.d.ts +31 -31
  530. package/lib/spinner/spinner.module.d.ts +9 -9
  531. package/lib/table/index.d.ts +1 -1
  532. package/lib/table/public_api.d.ts +4 -4
  533. package/lib/table/table-active.directive.d.ts +16 -16
  534. package/lib/table/table-color.directive.d.ts +12 -12
  535. package/lib/table/table.directive.d.ts +89 -89
  536. package/lib/table/table.module.d.ts +10 -10
  537. package/lib/tabs/index.d.ts +1 -1
  538. package/lib/tabs/public_api.d.ts +5 -5
  539. package/lib/tabs/tab-content/tab-content.component.d.ts +33 -33
  540. package/lib/tabs/tab-content-ref.directive.d.ts +50 -50
  541. package/lib/tabs/tab-pane/tab-pane.component.d.ts +26 -26
  542. package/lib/tabs/tab.service.d.ts +14 -14
  543. package/lib/tabs/tabs.module.d.ts +10 -10
  544. package/lib/toast/index.d.ts +1 -1
  545. package/lib/toast/public_api.d.ts +8 -8
  546. package/lib/toast/toast/toast.component.d.ts +84 -84
  547. package/lib/toast/toast-body/toast-body.component.d.ts +9 -9
  548. package/lib/toast/toast-close.directive.d.ts +10 -10
  549. package/lib/toast/toast-header/toast-header.component.d.ts +14 -14
  550. package/lib/toast/toast.module.d.ts +14 -14
  551. package/lib/toast/toaster/toaster-host.directive.d.ts +8 -8
  552. package/lib/toast/toaster/toaster.component.d.ts +55 -55
  553. package/lib/toast/toaster/toaster.service.d.ts +16 -16
  554. package/lib/tooltip/index.d.ts +1 -1
  555. package/lib/tooltip/public_api.d.ts +3 -3
  556. package/lib/tooltip/tooltip/tooltip.component.d.ts +30 -30
  557. package/lib/tooltip/tooltip.directive.d.ts +58 -58
  558. package/lib/tooltip/tooltip.module.d.ts +9 -9
  559. package/lib/utilities/align.directive.d.ts +12 -12
  560. package/lib/utilities/bg-color.directive.d.ts +17 -17
  561. package/lib/utilities/border.directive.d.ts +12 -12
  562. package/lib/utilities/border.type.d.ts +15 -15
  563. package/lib/utilities/index.d.ts +1 -1
  564. package/lib/utilities/public_api.d.ts +6 -6
  565. package/lib/utilities/rounded.directive.d.ts +12 -12
  566. package/lib/utilities/rounded.type.d.ts +12 -12
  567. package/lib/utilities/text-color.directive.d.ts +13 -13
  568. package/lib/utilities/utilities.module.d.ts +12 -12
  569. package/lib/widget/index.d.ts +1 -1
  570. package/lib/widget/public_api.d.ts +7 -7
  571. package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +37 -37
  572. package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +47 -47
  573. package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +58 -58
  574. package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +31 -31
  575. package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +24 -24
  576. package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +77 -77
  577. package/lib/widget/widget.module.d.ts +15 -15
  578. package/package.json +1 -1
  579. package/public-api.d.ts +37 -37
@@ -1,244 +1,244 @@
1
- var _SidebarComponent_narrow, _SidebarComponent_overlaid, _SidebarComponent_unfoldable, _SidebarComponent_visible, _SidebarComponent_onMobile, _SidebarComponent_layoutChangeSubscription, _SidebarComponent_stateToggleSubscription, _SidebarComponent_stateInitial;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Component, EventEmitter, HostBinding, Inject, Input, Output } from "@angular/core";
4
- import { DOCUMENT } from "@angular/common";
5
- import { coerceBooleanProperty } from "@angular/cdk/coercion";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/layout";
8
- import * as i2 from "../sidebar.service";
9
- import * as i3 from "../sidebar-backdrop/sidebar-backdrop.service";
10
- export class SidebarComponent {
11
- constructor(document, renderer, breakpointObserver, sidebarService, backdropService) {
12
- this.document = document;
13
- this.renderer = renderer;
14
- this.breakpointObserver = breakpointObserver;
15
- this.sidebarService = sidebarService;
16
- this.backdropService = backdropService;
17
- _SidebarComponent_narrow.set(this, false);
18
- _SidebarComponent_overlaid.set(this, false);
19
- _SidebarComponent_unfoldable.set(this, false);
20
- _SidebarComponent_visible.set(this, false);
21
- _SidebarComponent_onMobile.set(this, false);
22
- _SidebarComponent_layoutChangeSubscription.set(this, void 0);
23
- _SidebarComponent_stateToggleSubscription.set(this, void 0);
24
- this.state = {
25
- sidebar: this
26
- };
27
- _SidebarComponent_stateInitial.set(this, {
28
- narrow: false,
29
- visible: false,
30
- unfoldable: false
31
- });
32
- /**
33
- * Place sidebar in non-static positions. [docs]
34
- * @default 'fixed'
35
- */
36
- this.position = 'fixed';
37
- /**
38
- * Event emitted on visibility change. [docs]
39
- * @type boolean
40
- */
41
- this.visibleChange = new EventEmitter();
42
- this.backdropService.renderer = renderer;
43
- }
44
- /**
45
- * Make sidebar narrow. [docs]
46
- * @type boolean
47
- */
48
- set narrow(value) {
49
- __classPrivateFieldSet(this, _SidebarComponent_narrow, coerceBooleanProperty(value), "f");
50
- }
51
- get narrow() {
52
- return __classPrivateFieldGet(this, _SidebarComponent_narrow, "f");
53
- }
54
- /**
55
- * Set sidebar to overlaid variant.
56
- * @type boolean
57
- */
58
- set overlaid(value) {
59
- __classPrivateFieldSet(this, _SidebarComponent_overlaid, coerceBooleanProperty(value), "f");
60
- }
61
- get overlaid() {
62
- return __classPrivateFieldGet(this, _SidebarComponent_overlaid, "f");
63
- }
64
- /**
65
- * Expand narrowed sidebar on hover. [docs]
66
- */
67
- set unfoldable(value) {
68
- __classPrivateFieldSet(this, _SidebarComponent_unfoldable, coerceBooleanProperty(value), "f");
69
- }
70
- get unfoldable() {
71
- return __classPrivateFieldGet(this, _SidebarComponent_unfoldable, "f");
72
- }
73
- /**
74
- * Toggle the visibility of sidebar component. [docs]
75
- */
76
- set visible(value) {
77
- const visible = coerceBooleanProperty(value);
78
- if (__classPrivateFieldGet(this, _SidebarComponent_visible, "f") !== visible) {
79
- __classPrivateFieldSet(this, _SidebarComponent_visible, visible, "f");
80
- this.visibleChange.emit(__classPrivateFieldGet(this, _SidebarComponent_visible, "f"));
81
- }
82
- }
83
- get visible() {
84
- return __classPrivateFieldGet(this, _SidebarComponent_visible, "f");
85
- }
86
- set sidebarState(value) {
87
- const newState = value;
88
- if ('toggle' in newState) {
89
- if (newState.toggle === 'visible') {
90
- newState.visible = !this.state.visible;
91
- this.visible = newState.visible;
92
- }
93
- else if (newState.toggle === 'unfoldable') {
94
- newState.unfoldable = !this.state.unfoldable;
95
- this.unfoldable = newState.unfoldable;
96
- }
97
- }
98
- else {
99
- this.visible = (newState.visible ?? this.visible) && !this.overlaid;
100
- }
101
- this.state = {
102
- ...this.state,
103
- ...newState,
104
- };
105
- this.state.mobile && this.state.visible
106
- ? this.backdropService.setBackdrop(this)
107
- : this.backdropService.clearBackdrop();
108
- }
109
- get sidebarState() {
110
- return this.state;
111
- }
112
- get getMobileBreakpoint() {
113
- const element = this.document.documentElement;
114
- const mobileBreakpoint = getComputedStyle(element).getPropertyValue('--cui-mobile-breakpoint') ||
115
- 'md';
116
- const breakpointValue = getComputedStyle(element).getPropertyValue(`--cui-breakpoint-${mobileBreakpoint.trim()}`) || '768px';
117
- return `${parseFloat(breakpointValue.trim()) - 0.02}px` || '767.98px';
118
- }
119
- get getClasses() {
120
- const { mobile, visible } = this.sidebarState;
121
- return {
122
- sidebar: true,
123
- 'sidebar-fixed': this.position === 'fixed' && !mobile,
124
- 'sidebar-narrow': this.narrow && !this.unfoldable,
125
- 'sidebar-narrow-unfoldable': this.unfoldable,
126
- 'sidebar-overlaid': this.overlaid,
127
- [`sidebar-${this.size}`]: !!this.size,
128
- show: visible && __classPrivateFieldGet(this, _SidebarComponent_onMobile, "f"),
129
- hide: !visible,
130
- };
131
- }
132
- ngOnInit() {
133
- this.setInitialState();
134
- this.layoutChangeSubscribe();
135
- this.stateToggleSubscribe();
136
- }
137
- ngOnDestroy() {
138
- this.stateToggleSubscribe(false);
139
- this.layoutChangeSubscribe(false);
140
- }
141
- ngOnChanges(changes) {
142
- const oldStateMap = new Map(Object.entries(this.state));
143
- const newStateMap = new Map();
144
- newStateMap.set('sidebar', this);
145
- const propList = ['visible', 'unfoldable', 'narrow'];
146
- for (const propName in changes) {
147
- if (propList.includes(propName)) {
148
- if (changes[propName] && !changes[propName].firstChange) {
149
- const value = coerceBooleanProperty(changes[propName].currentValue);
150
- if (oldStateMap.get(propName) !== value) {
151
- newStateMap.set(propName, value);
152
- }
153
- }
154
- }
155
- }
156
- if (newStateMap.size > 1) {
157
- const state = Object.fromEntries(newStateMap.entries());
158
- this.sidebarService.toggle(state);
159
- }
160
- }
161
- setInitialState() {
162
- __classPrivateFieldSet(this, _SidebarComponent_stateInitial, {
163
- narrow: this.narrow,
164
- visible: this.visible,
165
- unfoldable: this.unfoldable,
166
- }, "f");
167
- this.sidebarService.toggle({
168
- ...__classPrivateFieldGet(this, _SidebarComponent_stateInitial, "f"),
169
- sidebar: this,
170
- });
171
- }
172
- stateToggleSubscribe(subscribe = true) {
173
- if (subscribe) {
174
- __classPrivateFieldSet(this, _SidebarComponent_stateToggleSubscription, this.sidebarService.sidebarState$.subscribe((state) => {
175
- if (this === state.sidebar || this.id === state.id) {
176
- this.sidebarState = state;
177
- }
178
- }), "f");
179
- }
180
- else {
181
- __classPrivateFieldGet(this, _SidebarComponent_stateToggleSubscription, "f").unsubscribe();
182
- }
183
- }
184
- layoutChangeSubscribe(subscribe = true) {
185
- const onMobile = `(max-width: ${this.getMobileBreakpoint})`;
186
- if (subscribe) {
187
- const layoutChanges = this.breakpointObserver.observe([onMobile]);
188
- __classPrivateFieldSet(this, _SidebarComponent_layoutChangeSubscription, layoutChanges.subscribe((result) => {
189
- const isOnMobile = result.breakpoints[onMobile];
190
- const isUnfoldable = isOnMobile ? false : this.unfoldable;
191
- if (__classPrivateFieldGet(this, _SidebarComponent_onMobile, "f") !== isOnMobile) {
192
- __classPrivateFieldSet(this, _SidebarComponent_onMobile, isOnMobile, "f");
193
- this.sidebarService.toggle({
194
- mobile: isOnMobile,
195
- unfoldable: isUnfoldable,
196
- visible: isOnMobile ? !isOnMobile : __classPrivateFieldGet(this, _SidebarComponent_stateInitial, "f").visible,
197
- sidebar: this,
198
- });
199
- }
200
- }), "f");
201
- }
202
- else {
203
- __classPrivateFieldGet(this, _SidebarComponent_layoutChangeSubscription, "f").unsubscribe();
204
- }
205
- }
206
- }
207
- _SidebarComponent_narrow = new WeakMap(), _SidebarComponent_overlaid = new WeakMap(), _SidebarComponent_unfoldable = new WeakMap(), _SidebarComponent_visible = new WeakMap(), _SidebarComponent_onMobile = new WeakMap(), _SidebarComponent_layoutChangeSubscription = new WeakMap(), _SidebarComponent_stateToggleSubscription = new WeakMap(), _SidebarComponent_stateInitial = new WeakMap();
208
- SidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SidebarComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1.BreakpointObserver }, { token: i2.SidebarService }, { token: i3.SidebarBackdropService }], target: i0.ɵɵFactoryTarget.Component });
209
- SidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SidebarComponent, selector: "c-sidebar", inputs: { colorScheme: "colorScheme", id: "id", narrow: "narrow", overlaid: "overlaid", placement: "placement", position: "position", size: "size", unfoldable: "unfoldable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.getClasses" } }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SidebarComponent, decorators: [{
211
- type: Component,
212
- args: [{
213
- selector: 'c-sidebar',
214
- exportAs: 'cSidebar',
215
- template: '<ng-content></ng-content>'
216
- }]
217
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
218
- type: Inject,
219
- args: [DOCUMENT]
220
- }] }, { type: i0.Renderer2 }, { type: i1.BreakpointObserver }, { type: i2.SidebarService }, { type: i3.SidebarBackdropService }]; }, propDecorators: { colorScheme: [{
221
- type: Input
222
- }], id: [{
223
- type: Input
224
- }], narrow: [{
225
- type: Input
226
- }], overlaid: [{
227
- type: Input
228
- }], placement: [{
229
- type: Input
230
- }], position: [{
231
- type: Input
232
- }], size: [{
233
- type: Input
234
- }], unfoldable: [{
235
- type: Input
236
- }], visible: [{
237
- type: Input
238
- }], visibleChange: [{
239
- type: Output
240
- }], getClasses: [{
241
- type: HostBinding,
242
- args: ['class']
243
- }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVk1RSxNQUFNLE9BQU8sZ0JBQWdCO0lBeUozQixZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBdUM7UUFKckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQXhKakQsbUNBQVUsS0FBSyxFQUFDO1FBQ2hCLHFDQUFZLEtBQUssRUFBQztRQUNsQix1Q0FBYyxLQUFLLEVBQUM7UUFDcEIsb0NBQVcsS0FBSyxFQUFDO1FBQ2pCLHFDQUFZLEtBQUssRUFBQztRQUNsQiw2REFBeUM7UUFDekMsNERBQXdDO1FBRXhDLFVBQUssR0FBbUI7WUFDdEIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBRUYseUNBQWdCO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztZQUNkLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLEVBQUM7UUFnREY7OztXQUdHO1FBQ00sYUFBUSxHQUF1QixPQUFP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bnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IElTaWRlYmFyQWN0aW9uLCBTaWRlYmFyU2VydmljZSB9IGZyb20gXCIuLi9zaWRlYmFyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2lkZWJhckJhY2tkcm9wU2VydmljZSB9IGZyb20gXCIuLi9zaWRlYmFyLWJhY2tkcm9wL3NpZGViYXItYmFja2Ryb3Auc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLXNpZGViYXInLFxyXG4gIGV4cG9ydEFzOiAnY1NpZGViYXInLFxyXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmFycm93OiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX292ZXJsYWlkOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3VuZm9sZGFibGU6IEJvb2xlYW5JbnB1dDtcclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdmlzaWJsZTogQm9vbGVhbklucHV0O1xyXG5cclxuICAjbmFycm93ID0gZmFsc2U7XHJcbiAgI292ZXJsYWlkID0gZmFsc2U7XHJcbiAgI3VuZm9sZGFibGUgPSBmYWxzZTtcclxuICAjdmlzaWJsZSA9IGZhbHNlO1xyXG4gICNvbk1vYmlsZSA9IGZhbHNlO1xyXG4gICNsYXlvdXRDaGFuZ2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgI3N0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBzdGF0ZTogSVNpZGViYXJBY3Rpb24gPSB7XHJcbiAgICBzaWRlYmFyOiB0aGlzXHJcbiAgfTtcclxuXHJcbiAgI3N0YXRlSW5pdGlhbCA9IHtcclxuICAgIG5hcnJvdzogZmFsc2UsXHJcbiAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgIHVuZm9sZGFibGU6IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBpZiB0aGUgY29sb3Igb2YgdGV4dCBzaG91bGQgYmUgY29sb3JlZCBmb3IgYSBsaWdodCBvciBkYXJrIGJhY2tncm91bmQuIFtkb2NzXVxyXG4gICAqXHJcbiAgICogQHR5cGUgJ2RhcmsnIHwgJ2xpZ2h0J1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbG9yU2NoZW1lPzogJ2RhcmsnIHwgJ2xpZ2h0JztcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBodG1sIGF0dHJpYnV0ZSBpZC4gW2RvY3NdXHJcbiAgICpcclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogTWFrZSBzaWRlYmFyIG5hcnJvdy4gW2RvY3NdXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5hcnJvdyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy4jbmFycm93ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBuYXJyb3coKSB7XHJcbiAgICByZXR1cm4gdGhpcy4jbmFycm93O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHNpZGViYXIgdG8gb3ZlcmxhaWQgdmFyaWFudC5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgb3ZlcmxhaWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuI292ZXJsYWlkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBvdmVybGFpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLiNvdmVybGFpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBvbmVudHMgcGxhY2VtZW50LCB0aGVyZeKAmXMgbm8gZGVmYXVsdCBwbGFjZW1lbnQuIFtkb2NzXVxyXG4gICAqIEB0eXBlICdzdGFydCcgfCAnZW5kJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBsYWNlbWVudD86ICdzdGFydCcgfCAnZW5kJztcclxuXHJcbiAgLyoqXHJcbiAgICogUGxhY2Ugc2lkZWJhciBpbiBub24tc3RhdGljIHBvc2l0aW9ucy4gW2RvY3NdXHJcbiAgICogQGRlZmF1bHQgJ2ZpeGVkJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAnZml4ZWQnIHwgJ3N0aWNreScgPSAnZml4ZWQnO1xyXG5cclxuICAvKipcclxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwsIGxhcmdlLCBvciBleHRyYSBsYXJnZS4gW2RvY3NdXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnIHwgJ3hsJztcclxuXHJcbiAgLyoqXHJcbiAgICogRXhwYW5kIG5hcnJvd2VkIHNpZGViYXIgb24gaG92ZXIuIFtkb2NzXVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHVuZm9sZGFibGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuI3VuZm9sZGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVuZm9sZGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy4jdW5mb2xkYWJsZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBzaWRlYmFyIGNvbXBvbmVudC4gW2RvY3NdXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgdmlzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy4jdmlzaWJsZSAhPT0gdmlzaWJsZSkge1xyXG4gICAgICB0aGlzLiN2aXNpYmxlID0gdmlzaWJsZTtcclxuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy4jdmlzaWJsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLiN2aXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCBvbiB2aXNpYmlsaXR5IGNoYW5nZS4gW2RvY3NdXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBzZXQgc2lkZWJhclN0YXRlKHZhbHVlOiBJU2lkZWJhckFjdGlvbikge1xyXG4gICAgY29uc3QgbmV3U3RhdGUgPSB2YWx1ZTtcclxuICAgIGlmICgndG9nZ2xlJyBpbiBuZXdTdGF0ZSkge1xyXG4gICAgICBpZiAobmV3U3RhdGUudG9nZ2xlID09PSAndmlzaWJsZScpIHtcclxuICAgICAgICBuZXdTdGF0ZS52aXNpYmxlID0gIXRoaXMuc3RhdGUudmlzaWJsZTtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBuZXdTdGF0ZS52aXNpYmxlO1xyXG4gICAgICB9IGVsc2UgaWYgKG5ld1N0YXRlLnRvZ2dsZSA9PT0gJ3VuZm9sZGFibGUnKSB7XHJcbiAgICAgICAgbmV3U3RhdGUudW5mb2xkYWJsZSA9ICF0aGlzLnN0YXRlLnVuZm9sZGFibGU7XHJcbiAgICAgICAgdGhpcy51bmZvbGRhYmxlID0gbmV3U3RhdGUudW5mb2xkYWJsZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gKG5ld1N0YXRlLnZpc2libGUgPz8gdGhpcy52aXNpYmxlKSAmJiAhdGhpcy5vdmVybGFpZDtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIC4uLnRoaXMuc3RhdGUsXHJcbiAgICAgIC4uLm5ld1N0YXRlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RhdGUubW9iaWxlICYmIHRoaXMuc3RhdGUudmlzaWJsZVxyXG4gICAgICA/IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnNldEJhY2tkcm9wKHRoaXMpXHJcbiAgICAgIDogdGhpcy5iYWNrZHJvcFNlcnZpY2UuY2xlYXJCYWNrZHJvcCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpZGViYXJTdGF0ZSgpOiBJU2lkZWJhckFjdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRNb2JpbGVCcmVha3BvaW50KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCBtb2JpbGVCcmVha3BvaW50ID1cclxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWN1aS1tb2JpbGUtYnJlYWtwb2ludCcpIHx8XHJcbiAgICAgICdtZCc7XHJcbiAgICBjb25zdCBicmVha3BvaW50VmFsdWUgPVxyXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoXHJcbiAgICAgICAgYC0tY3VpLWJyZWFrcG9pbnQtJHttb2JpbGVCcmVha3BvaW50LnRyaW0oKX1gXHJcbiAgICAgICkgfHwgJzc2OHB4JztcclxuICAgIHJldHVybiBgJHtwYXJzZUZsb2F0KGJyZWFrcG9pbnRWYWx1ZS50cmltKCkpIC0gMC4wMn1weGAgfHwgJzc2Ny45OHB4JztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxyXG4gICAgcHJpdmF0ZSBzaWRlYmFyU2VydmljZTogU2lkZWJhclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJhY2tkcm9wU2VydmljZTogU2lkZWJhckJhY2tkcm9wU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5iYWNrZHJvcFNlcnZpY2UucmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBnZXRDbGFzc2VzKCk6IGFueSB7XHJcbiAgICBjb25zdCB7IG1vYmlsZSwgdmlzaWJsZSB9ID0gdGhpcy5zaWRlYmFyU3RhdGU7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaWRlYmFyOiB0cnVlLFxyXG4gICAgICAnc2lkZWJhci1maXhlZCc6IHRoaXMucG9zaXRpb24gPT09ICdmaXhlZCcgJiYgIW1vYmlsZSxcclxuICAgICAgJ3NpZGViYXItbmFycm93JzogdGhpcy5uYXJyb3cgJiYgIXRoaXMudW5mb2xkYWJsZSxcclxuICAgICAgJ3NpZGViYXItbmFycm93LXVuZm9sZGFibGUnOiB0aGlzLnVuZm9sZGFibGUsXHJcbiAgICAgICdzaWRlYmFyLW92ZXJsYWlkJzogdGhpcy5vdmVybGFpZCxcclxuICAgICAgW2BzaWRlYmFyLSR7dGhpcy5zaXplfWBdOiAhIXRoaXMuc2l6ZSxcclxuICAgICAgc2hvdzogdmlzaWJsZSAmJiB0aGlzLiNvbk1vYmlsZSxcclxuICAgICAgaGlkZTogIXZpc2libGUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gICAgdGhpcy5sYXlvdXRDaGFuZ2VTdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZShmYWxzZSk7XHJcbiAgICB0aGlzLmxheW91dENoYW5nZVN1YnNjcmliZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCBvbGRTdGF0ZU1hcCA9IG5ldyBNYXAoT2JqZWN0LmVudHJpZXModGhpcy5zdGF0ZSkpO1xyXG4gICAgY29uc3QgbmV3U3RhdGVNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICBuZXdTdGF0ZU1hcC5zZXQoJ3NpZGViYXInLCB0aGlzKTtcclxuXHJcbiAgICBjb25zdCBwcm9wTGlzdCA9IFsndmlzaWJsZScsICd1bmZvbGRhYmxlJywgJ25hcnJvdyddO1xyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAocHJvcExpc3QuaW5jbHVkZXMocHJvcE5hbWUpKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbcHJvcE5hbWVdICYmICFjaGFuZ2VzW3Byb3BOYW1lXS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1twcm9wTmFtZV0uY3VycmVudFZhbHVlKTtcclxuICAgICAgICAgIGlmIChvbGRTdGF0ZU1hcC5nZXQocHJvcE5hbWUpICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICBuZXdTdGF0ZU1hcC5zZXQocHJvcE5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAobmV3U3RhdGVNYXAuc2l6ZSA+IDEpIHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuZnJvbUVudHJpZXMobmV3U3RhdGVNYXAuZW50cmllcygpKTtcclxuICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS50b2dnbGUoc3RhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy4jc3RhdGVJbml0aWFsID0ge1xyXG4gICAgICBuYXJyb3c6IHRoaXMubmFycm93LFxyXG4gICAgICB2aXNpYmxlOiB0aGlzLnZpc2libGUsXHJcbiAgICAgIHVuZm9sZGFibGU6IHRoaXMudW5mb2xkYWJsZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XHJcbiAgICAgIC4uLnRoaXMuI3N0YXRlSW5pdGlhbCxcclxuICAgICAgc2lkZWJhcjogdGhpcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuI3N0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uID1cclxuICAgICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnNpZGViYXJTdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMgPT09IHN0YXRlLnNpZGViYXIgfHwgdGhpcy5pZCA9PT0gc3RhdGUuaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI3N0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYXlvdXRDaGFuZ2VTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgY29uc3Qgb25Nb2JpbGUgPSBgKG1heC13aWR0aDogJHt0aGlzLmdldE1vYmlsZUJyZWFrcG9pbnR9KWA7XHJcblxyXG4gICAgaWYgKHN1YnNjcmliZSkge1xyXG4gICAgICBjb25zdCBsYXlvdXRDaGFuZ2VzID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbb25Nb2JpbGVdKTtcclxuXHJcbiAgICAgIHRoaXMuI2xheW91dENoYW5nZVN1YnNjcmlwdGlvbiA9IGxheW91dENoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXN1bHQ6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXNPbk1vYmlsZSA9IHJlc3VsdC5icmVha3BvaW50c1tvbk1vYmlsZV07XHJcbiAgICAgICAgICBjb25zdCBpc1VuZm9sZGFibGUgPSBpc09uTW9iaWxlID8gZmFsc2UgOiB0aGlzLnVuZm9sZGFibGU7XHJcbiAgICAgICAgICBpZiAodGhpcy4jb25Nb2JpbGUgIT09IGlzT25Nb2JpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy4jb25Nb2JpbGUgPSBpc09uTW9iaWxlO1xyXG4gICAgICAgICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XHJcbiAgICAgICAgICAgICAgbW9iaWxlOiBpc09uTW9iaWxlLFxyXG4gICAgICAgICAgICAgIHVuZm9sZGFibGU6IGlzVW5mb2xkYWJsZSxcclxuICAgICAgICAgICAgICB2aXNpYmxlOiBpc09uTW9iaWxlID8gIWlzT25Nb2JpbGUgOiB0aGlzLiNzdGF0ZUluaXRpYWwudmlzaWJsZSxcclxuICAgICAgICAgICAgICBzaWRlYmFyOiB0aGlzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLiNsYXlvdXRDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
1
+ var _SidebarComponent_narrow, _SidebarComponent_overlaid, _SidebarComponent_unfoldable, _SidebarComponent_visible, _SidebarComponent_onMobile, _SidebarComponent_layoutChangeSubscription, _SidebarComponent_stateToggleSubscription, _SidebarComponent_stateInitial;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { Component, EventEmitter, HostBinding, Inject, Input, Output, } from '@angular/core';
4
+ import { DOCUMENT } from '@angular/common';
5
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/layout";
8
+ import * as i2 from "../sidebar.service";
9
+ import * as i3 from "../sidebar-backdrop/sidebar-backdrop.service";
10
+ export class SidebarComponent {
11
+ constructor(document, renderer, breakpointObserver, sidebarService, backdropService) {
12
+ this.document = document;
13
+ this.renderer = renderer;
14
+ this.breakpointObserver = breakpointObserver;
15
+ this.sidebarService = sidebarService;
16
+ this.backdropService = backdropService;
17
+ _SidebarComponent_narrow.set(this, false);
18
+ _SidebarComponent_overlaid.set(this, false);
19
+ _SidebarComponent_unfoldable.set(this, false);
20
+ _SidebarComponent_visible.set(this, false);
21
+ _SidebarComponent_onMobile.set(this, false);
22
+ _SidebarComponent_layoutChangeSubscription.set(this, void 0);
23
+ _SidebarComponent_stateToggleSubscription.set(this, void 0);
24
+ this.state = {
25
+ sidebar: this,
26
+ };
27
+ _SidebarComponent_stateInitial.set(this, {
28
+ narrow: false,
29
+ visible: false,
30
+ unfoldable: false,
31
+ });
32
+ /**
33
+ * Place sidebar in non-static positions. [docs]
34
+ * @default 'fixed'
35
+ */
36
+ this.position = 'fixed';
37
+ /**
38
+ * Event emitted on visibility change. [docs]
39
+ * @type boolean
40
+ */
41
+ this.visibleChange = new EventEmitter();
42
+ this.backdropService.renderer = renderer;
43
+ }
44
+ /**
45
+ * Make sidebar narrow. [docs]
46
+ * @type boolean
47
+ */
48
+ set narrow(value) {
49
+ __classPrivateFieldSet(this, _SidebarComponent_narrow, coerceBooleanProperty(value), "f");
50
+ }
51
+ get narrow() {
52
+ return __classPrivateFieldGet(this, _SidebarComponent_narrow, "f");
53
+ }
54
+ /**
55
+ * Set sidebar to overlaid variant.
56
+ * @type boolean
57
+ */
58
+ set overlaid(value) {
59
+ __classPrivateFieldSet(this, _SidebarComponent_overlaid, coerceBooleanProperty(value), "f");
60
+ }
61
+ get overlaid() {
62
+ return __classPrivateFieldGet(this, _SidebarComponent_overlaid, "f");
63
+ }
64
+ /**
65
+ * Expand narrowed sidebar on hover. [docs]
66
+ */
67
+ set unfoldable(value) {
68
+ __classPrivateFieldSet(this, _SidebarComponent_unfoldable, coerceBooleanProperty(value), "f");
69
+ }
70
+ get unfoldable() {
71
+ return __classPrivateFieldGet(this, _SidebarComponent_unfoldable, "f");
72
+ }
73
+ /**
74
+ * Toggle the visibility of sidebar component. [docs]
75
+ */
76
+ set visible(value) {
77
+ const visible = coerceBooleanProperty(value);
78
+ if (__classPrivateFieldGet(this, _SidebarComponent_visible, "f") !== visible) {
79
+ __classPrivateFieldSet(this, _SidebarComponent_visible, visible, "f");
80
+ this.visibleChange.emit(__classPrivateFieldGet(this, _SidebarComponent_visible, "f"));
81
+ }
82
+ }
83
+ get visible() {
84
+ return __classPrivateFieldGet(this, _SidebarComponent_visible, "f");
85
+ }
86
+ set sidebarState(value) {
87
+ const newState = value;
88
+ if ('toggle' in newState) {
89
+ if (newState.toggle === 'visible') {
90
+ newState.visible = !this.state.visible;
91
+ this.visible = newState.visible;
92
+ }
93
+ else if (newState.toggle === 'unfoldable') {
94
+ newState.unfoldable = !this.state.unfoldable;
95
+ this.unfoldable = newState.unfoldable;
96
+ }
97
+ }
98
+ else {
99
+ this.visible = (newState.visible ?? this.visible) && !this.overlaid;
100
+ }
101
+ this.state = {
102
+ ...this.state,
103
+ ...newState,
104
+ };
105
+ this.state.mobile && this.state.visible
106
+ ? this.backdropService.setBackdrop(this)
107
+ : this.backdropService.clearBackdrop();
108
+ }
109
+ get sidebarState() {
110
+ return this.state;
111
+ }
112
+ get getMobileBreakpoint() {
113
+ const element = this.document.documentElement;
114
+ const mobileBreakpoint = getComputedStyle(element).getPropertyValue('--cui-mobile-breakpoint') ||
115
+ 'md';
116
+ const breakpointValue = getComputedStyle(element).getPropertyValue(`--cui-breakpoint-${mobileBreakpoint.trim()}`) || '768px';
117
+ return `${parseFloat(breakpointValue.trim()) - 0.02}px` || '767.98px';
118
+ }
119
+ get getClasses() {
120
+ const { mobile, visible } = this.sidebarState;
121
+ return {
122
+ sidebar: true,
123
+ 'sidebar-fixed': this.position === 'fixed' && !mobile,
124
+ 'sidebar-narrow': this.narrow && !this.unfoldable,
125
+ 'sidebar-narrow-unfoldable': this.unfoldable,
126
+ 'sidebar-overlaid': this.overlaid,
127
+ [`sidebar-${this.size}`]: !!this.size,
128
+ show: visible && __classPrivateFieldGet(this, _SidebarComponent_onMobile, "f"),
129
+ hide: !visible,
130
+ };
131
+ }
132
+ ngOnInit() {
133
+ this.setInitialState();
134
+ this.layoutChangeSubscribe();
135
+ this.stateToggleSubscribe();
136
+ }
137
+ ngOnDestroy() {
138
+ this.stateToggleSubscribe(false);
139
+ this.layoutChangeSubscribe(false);
140
+ }
141
+ ngOnChanges(changes) {
142
+ const oldStateMap = new Map(Object.entries(this.state));
143
+ const newStateMap = new Map();
144
+ newStateMap.set('sidebar', this);
145
+ const propList = ['visible', 'unfoldable', 'narrow'];
146
+ for (const propName in changes) {
147
+ if (propList.includes(propName)) {
148
+ if (changes[propName] && !changes[propName].firstChange) {
149
+ const value = coerceBooleanProperty(changes[propName].currentValue);
150
+ if (oldStateMap.get(propName) !== value) {
151
+ newStateMap.set(propName, value);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ if (newStateMap.size > 1) {
157
+ const state = Object.fromEntries(newStateMap.entries());
158
+ this.sidebarService.toggle(state);
159
+ }
160
+ }
161
+ setInitialState() {
162
+ __classPrivateFieldSet(this, _SidebarComponent_stateInitial, {
163
+ narrow: this.narrow,
164
+ visible: this.visible,
165
+ unfoldable: this.unfoldable,
166
+ }, "f");
167
+ this.sidebarService.toggle({
168
+ ...__classPrivateFieldGet(this, _SidebarComponent_stateInitial, "f"),
169
+ sidebar: this,
170
+ });
171
+ }
172
+ stateToggleSubscribe(subscribe = true) {
173
+ if (subscribe) {
174
+ __classPrivateFieldSet(this, _SidebarComponent_stateToggleSubscription, this.sidebarService.sidebarState$.subscribe((state) => {
175
+ if (this === state.sidebar || this.id === state.id) {
176
+ this.sidebarState = state;
177
+ }
178
+ }), "f");
179
+ }
180
+ else {
181
+ __classPrivateFieldGet(this, _SidebarComponent_stateToggleSubscription, "f")?.unsubscribe();
182
+ }
183
+ }
184
+ layoutChangeSubscribe(subscribe = true) {
185
+ const onMobile = `(max-width: ${this.getMobileBreakpoint})`;
186
+ if (subscribe) {
187
+ const layoutChanges = this.breakpointObserver.observe([onMobile]);
188
+ __classPrivateFieldSet(this, _SidebarComponent_layoutChangeSubscription, layoutChanges.subscribe((result) => {
189
+ const isOnMobile = result.breakpoints[onMobile];
190
+ const isUnfoldable = isOnMobile ? false : this.unfoldable;
191
+ if (__classPrivateFieldGet(this, _SidebarComponent_onMobile, "f") !== isOnMobile) {
192
+ __classPrivateFieldSet(this, _SidebarComponent_onMobile, isOnMobile, "f");
193
+ this.sidebarService.toggle({
194
+ mobile: isOnMobile,
195
+ unfoldable: isUnfoldable,
196
+ visible: isOnMobile ? !isOnMobile : __classPrivateFieldGet(this, _SidebarComponent_stateInitial, "f").visible,
197
+ sidebar: this,
198
+ });
199
+ }
200
+ }), "f");
201
+ }
202
+ else {
203
+ __classPrivateFieldGet(this, _SidebarComponent_layoutChangeSubscription, "f").unsubscribe();
204
+ }
205
+ }
206
+ }
207
+ _SidebarComponent_narrow = new WeakMap(), _SidebarComponent_overlaid = new WeakMap(), _SidebarComponent_unfoldable = new WeakMap(), _SidebarComponent_visible = new WeakMap(), _SidebarComponent_onMobile = new WeakMap(), _SidebarComponent_layoutChangeSubscription = new WeakMap(), _SidebarComponent_stateToggleSubscription = new WeakMap(), _SidebarComponent_stateInitial = new WeakMap();
208
+ SidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SidebarComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i1.BreakpointObserver }, { token: i2.SidebarService }, { token: i3.SidebarBackdropService }], target: i0.ɵɵFactoryTarget.Component });
209
+ SidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SidebarComponent, selector: "c-sidebar", inputs: { colorScheme: "colorScheme", id: "id", narrow: "narrow", overlaid: "overlaid", placement: "placement", position: "position", size: "size", unfoldable: "unfoldable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "this.getClasses" } }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SidebarComponent, decorators: [{
211
+ type: Component,
212
+ args: [{
213
+ selector: 'c-sidebar',
214
+ exportAs: 'cSidebar',
215
+ template: '<ng-content></ng-content>',
216
+ }]
217
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
218
+ type: Inject,
219
+ args: [DOCUMENT]
220
+ }] }, { type: i0.Renderer2 }, { type: i1.BreakpointObserver }, { type: i2.SidebarService }, { type: i3.SidebarBackdropService }]; }, propDecorators: { colorScheme: [{
221
+ type: Input
222
+ }], id: [{
223
+ type: Input
224
+ }], narrow: [{
225
+ type: Input
226
+ }], overlaid: [{
227
+ type: Input
228
+ }], placement: [{
229
+ type: Input
230
+ }], position: [{
231
+ type: Input
232
+ }], size: [{
233
+ type: Input
234
+ }], unfoldable: [{
235
+ type: Input
236
+ }], visible: [{
237
+ type: Input
238
+ }], visibleChange: [{
239
+ type: Output
240
+ }], getClasses: [{
241
+ type: HostBinding,
242
+ args: ['class']
243
+ }] } });
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NpZGViYXIvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVk1RSxNQUFNLE9BQU8sZ0JBQWdCO0lBeUozQixZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBdUM7UUFKckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQXhKakQsbUNBQVUsS0FBSyxFQUFDO1FBQ2hCLHFDQUFZLEtBQUssRUFBQztRQUNsQix1Q0FBYyxLQUFLLEVBQUM7UUFDcEIsb0NBQVcsS0FBSyxFQUFDO1FBQ2pCLHFDQUFZLEtBQUssRUFBQztRQUNsQiw2REFBeUM7UUFDekMsNERBQXdDO1FBRXhDLFVBQUssR0FBbUI7WUFDdEIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBRUYseUNBQWdCO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztZQUNkLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLEVBQUM7UUFnREY7OztXQUdHO1FBQ00sYUFBUSxHQUF1QixPQUFP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bnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElTaWRlYmFyQWN0aW9uLCBTaWRlYmFyU2VydmljZSB9IGZyb20gJy4uL3NpZGViYXIuc2VydmljZSc7XG5pbXBvcnQgeyBTaWRlYmFyQmFja2Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi4vc2lkZWJhci1iYWNrZHJvcC9zaWRlYmFyLWJhY2tkcm9wLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLXNpZGViYXInLFxuICBleHBvcnRBczogJ2NTaWRlYmFyJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmFycm93OiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vdmVybGFpZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdW5mb2xkYWJsZTogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdmlzaWJsZTogQm9vbGVhbklucHV0O1xuXG4gICNuYXJyb3cgPSBmYWxzZTtcbiAgI292ZXJsYWlkID0gZmFsc2U7XG4gICN1bmZvbGRhYmxlID0gZmFsc2U7XG4gICN2aXNpYmxlID0gZmFsc2U7XG4gICNvbk1vYmlsZSA9IGZhbHNlO1xuICAjbGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICAjc3RhdGVUb2dnbGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgc3RhdGU6IElTaWRlYmFyQWN0aW9uID0ge1xuICAgIHNpZGViYXI6IHRoaXMsXG4gIH07XG5cbiAgI3N0YXRlSW5pdGlhbCA9IHtcbiAgICBuYXJyb3c6IGZhbHNlLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIHVuZm9sZGFibGU6IGZhbHNlLFxuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIGlmIHRoZSBjb2xvciBvZiB0ZXh0IHNob3VsZCBiZSBjb2xvcmVkIGZvciBhIGxpZ2h0IG9yIGRhcmsgYmFja2dyb3VuZC4gW2RvY3NdXG4gICAqXG4gICAqIEB0eXBlICdkYXJrJyB8ICdsaWdodCdcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yU2NoZW1lPzogJ2RhcmsnIHwgJ2xpZ2h0JztcblxuICAvKipcbiAgICogU2V0cyBodG1sIGF0dHJpYnV0ZSBpZC4gW2RvY3NdXG4gICAqXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgQElucHV0KCkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2Ugc2lkZWJhciBuYXJyb3cuIFtkb2NzXVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbmFycm93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jbmFycm93ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBuYXJyb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuI25hcnJvdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc2lkZWJhciB0byBvdmVybGFpZCB2YXJpYW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgb3ZlcmxhaWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNvdmVybGFpZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgb3ZlcmxhaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI292ZXJsYWlkO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudHMgcGxhY2VtZW50LCB0aGVyZeKAmXMgbm8gZGVmYXVsdCBwbGFjZW1lbnQuIFtkb2NzXVxuICAgKiBAdHlwZSAnc3RhcnQnIHwgJ2VuZCdcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlbWVudD86ICdzdGFydCcgfCAnZW5kJztcblxuICAvKipcbiAgICogUGxhY2Ugc2lkZWJhciBpbiBub24tc3RhdGljIHBvc2l0aW9ucy4gW2RvY3NdXG4gICAqIEBkZWZhdWx0ICdmaXhlZCdcbiAgICovXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAnZml4ZWQnIHwgJ3N0aWNreScgPSAnZml4ZWQnO1xuXG4gIC8qKlxuICAgKiBTaXplIHRoZSBjb21wb25lbnQgc21hbGwsIGxhcmdlLCBvciBleHRyYSBsYXJnZS4gW2RvY3NdXG4gICAqL1xuICBASW5wdXQoKSBzaXplPzogJ3NtJyB8ICdsZycgfCAneGwnO1xuXG4gIC8qKlxuICAgKiBFeHBhbmQgbmFycm93ZWQgc2lkZWJhciBvbiBob3Zlci4gW2RvY3NdXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdW5mb2xkYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI3VuZm9sZGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHVuZm9sZGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3VuZm9sZGFibGU7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIHNpZGViYXIgY29tcG9uZW50LiBbZG9jc11cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgdmlzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuI3Zpc2libGUgIT09IHZpc2libGUpIHtcbiAgICAgIHRoaXMuI3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy4jdmlzaWJsZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3Zpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCBvbiB2aXNpYmlsaXR5IGNoYW5nZS4gW2RvY3NdXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNldCBzaWRlYmFyU3RhdGUodmFsdWU6IElTaWRlYmFyQWN0aW9uKSB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSB2YWx1ZTtcbiAgICBpZiAoJ3RvZ2dsZScgaW4gbmV3U3RhdGUpIHtcbiAgICAgIGlmIChuZXdTdGF0ZS50b2dnbGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICBuZXdTdGF0ZS52aXNpYmxlID0gIXRoaXMuc3RhdGUudmlzaWJsZTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gbmV3U3RhdGUudmlzaWJsZTtcbiAgICAgIH0gZWxzZSBpZiAobmV3U3RhdGUudG9nZ2xlID09PSAndW5mb2xkYWJsZScpIHtcbiAgICAgICAgbmV3U3RhdGUudW5mb2xkYWJsZSA9ICF0aGlzLnN0YXRlLnVuZm9sZGFibGU7XG4gICAgICAgIHRoaXMudW5mb2xkYWJsZSA9IG5ld1N0YXRlLnVuZm9sZGFibGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IChuZXdTdGF0ZS52aXNpYmxlID8/IHRoaXMudmlzaWJsZSkgJiYgIXRoaXMub3ZlcmxhaWQ7XG4gICAgfVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAuLi50aGlzLnN0YXRlLFxuICAgICAgLi4ubmV3U3RhdGUsXG4gICAgfTtcbiAgICB0aGlzLnN0YXRlLm1vYmlsZSAmJiB0aGlzLnN0YXRlLnZpc2libGVcbiAgICAgID8gdGhpcy5iYWNrZHJvcFNlcnZpY2Uuc2V0QmFja2Ryb3AodGhpcylcbiAgICAgIDogdGhpcy5iYWNrZHJvcFNlcnZpY2UuY2xlYXJCYWNrZHJvcCgpO1xuICB9XG5cbiAgZ2V0IHNpZGViYXJTdGF0ZSgpOiBJU2lkZWJhckFjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICBnZXQgZ2V0TW9iaWxlQnJlYWtwb2ludCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVsZW1lbnQ6IEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCBtb2JpbGVCcmVha3BvaW50ID1cbiAgICAgIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1jdWktbW9iaWxlLWJyZWFrcG9pbnQnKSB8fFxuICAgICAgJ21kJztcbiAgICBjb25zdCBicmVha3BvaW50VmFsdWUgPVxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgICBgLS1jdWktYnJlYWtwb2ludC0ke21vYmlsZUJyZWFrcG9pbnQudHJpbSgpfWBcbiAgICAgICkgfHwgJzc2OHB4JztcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdChicmVha3BvaW50VmFsdWUudHJpbSgpKSAtIDAuMDJ9cHhgIHx8ICc3NjcuOThweCc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBwcml2YXRlIHNpZGViYXJTZXJ2aWNlOiBTaWRlYmFyU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tkcm9wU2VydmljZTogU2lkZWJhckJhY2tkcm9wU2VydmljZVxuICApIHtcbiAgICB0aGlzLmJhY2tkcm9wU2VydmljZS5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBnZXRDbGFzc2VzKCk6IGFueSB7XG4gICAgY29uc3QgeyBtb2JpbGUsIHZpc2libGUgfSA9IHRoaXMuc2lkZWJhclN0YXRlO1xuICAgIHJldHVybiB7XG4gICAgICBzaWRlYmFyOiB0cnVlLFxuICAgICAgJ3NpZGViYXItZml4ZWQnOiB0aGlzLnBvc2l0aW9uID09PSAnZml4ZWQnICYmICFtb2JpbGUsXG4gICAgICAnc2lkZWJhci1uYXJyb3cnOiB0aGlzLm5hcnJvdyAmJiAhdGhpcy51bmZvbGRhYmxlLFxuICAgICAgJ3NpZGViYXItbmFycm93LXVuZm9sZGFibGUnOiB0aGlzLnVuZm9sZGFibGUsXG4gICAgICAnc2lkZWJhci1vdmVybGFpZCc6IHRoaXMub3ZlcmxhaWQsXG4gICAgICBbYHNpZGViYXItJHt0aGlzLnNpemV9YF06ICEhdGhpcy5zaXplLFxuICAgICAgc2hvdzogdmlzaWJsZSAmJiB0aGlzLiNvbk1vYmlsZSxcbiAgICAgIGhpZGU6ICF2aXNpYmxlLFxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZShmYWxzZSk7XG4gICAgdGhpcy5sYXlvdXRDaGFuZ2VTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IG9sZFN0YXRlTWFwID0gbmV3IE1hcChPYmplY3QuZW50cmllcyh0aGlzLnN0YXRlKSk7XG4gICAgY29uc3QgbmV3U3RhdGVNYXAgPSBuZXcgTWFwKCk7XG4gICAgbmV3U3RhdGVNYXAuc2V0KCdzaWRlYmFyJywgdGhpcyk7XG5cbiAgICBjb25zdCBwcm9wTGlzdCA9IFsndmlzaWJsZScsICd1bmZvbGRhYmxlJywgJ25hcnJvdyddO1xuXG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XG4gICAgICBpZiAocHJvcExpc3QuaW5jbHVkZXMocHJvcE5hbWUpKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzW3Byb3BOYW1lXSAmJiAhY2hhbmdlc1twcm9wTmFtZV0uZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzW3Byb3BOYW1lXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgIGlmIChvbGRTdGF0ZU1hcC5nZXQocHJvcE5hbWUpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgbmV3U3RhdGVNYXAuc2V0KHByb3BOYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5ld1N0YXRlTWFwLnNpemUgPiAxKSB7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5mcm9tRW50cmllcyhuZXdTdGF0ZU1hcC5lbnRyaWVzKCkpO1xuICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS50b2dnbGUoc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdGF0ZUluaXRpYWwgPSB7XG4gICAgICBuYXJyb3c6IHRoaXMubmFycm93LFxuICAgICAgdmlzaWJsZTogdGhpcy52aXNpYmxlLFxuICAgICAgdW5mb2xkYWJsZTogdGhpcy51bmZvbGRhYmxlLFxuICAgIH07XG4gICAgdGhpcy5zaWRlYmFyU2VydmljZS50b2dnbGUoe1xuICAgICAgLi4udGhpcy4jc3RhdGVJbml0aWFsLFxuICAgICAgc2lkZWJhcjogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGVUb2dnbGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuI3N0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uID1cbiAgICAgICAgdGhpcy5zaWRlYmFyU2VydmljZS5zaWRlYmFyU3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICBpZiAodGhpcyA9PT0gc3RhdGUuc2lkZWJhciB8fCB0aGlzLmlkID09PSBzdGF0ZS5pZCkge1xuICAgICAgICAgICAgdGhpcy5zaWRlYmFyU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNzdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBsYXlvdXRDaGFuZ2VTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IG9uTW9iaWxlID0gYChtYXgtd2lkdGg6ICR7dGhpcy5nZXRNb2JpbGVCcmVha3BvaW50fSlgO1xuXG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgY29uc3QgbGF5b3V0Q2hhbmdlcyA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW29uTW9iaWxlXSk7XG5cbiAgICAgIHRoaXMuI2xheW91dENoYW5nZVN1YnNjcmlwdGlvbiA9IGxheW91dENoYW5nZXMuc3Vic2NyaWJlKFxuICAgICAgICAocmVzdWx0OiBCcmVha3BvaW50U3RhdGUpID0+IHtcbiAgICAgICAgICBjb25zdCBpc09uTW9iaWxlID0gcmVzdWx0LmJyZWFrcG9pbnRzW29uTW9iaWxlXTtcbiAgICAgICAgICBjb25zdCBpc1VuZm9sZGFibGUgPSBpc09uTW9iaWxlID8gZmFsc2UgOiB0aGlzLnVuZm9sZGFibGU7XG4gICAgICAgICAgaWYgKHRoaXMuI29uTW9iaWxlICE9PSBpc09uTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLiNvbk1vYmlsZSA9IGlzT25Nb2JpbGU7XG4gICAgICAgICAgICB0aGlzLnNpZGViYXJTZXJ2aWNlLnRvZ2dsZSh7XG4gICAgICAgICAgICAgIG1vYmlsZTogaXNPbk1vYmlsZSxcbiAgICAgICAgICAgICAgdW5mb2xkYWJsZTogaXNVbmZvbGRhYmxlLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBpc09uTW9iaWxlID8gIWlzT25Nb2JpbGUgOiB0aGlzLiNzdGF0ZUluaXRpYWwudmlzaWJsZSxcbiAgICAgICAgICAgICAgc2lkZWJhcjogdGhpcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jbGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=