@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,311 +1,305 @@
1
- import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, ViewChild } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { animate, state, style, transition, trigger } from '@angular/animations';
4
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
- import { ModalContentComponent } from '../modal-content/modal-content.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../modal.service";
8
- import * as i2 from "../../backdrop/backdrop.service";
9
- import * as i3 from "@angular/cdk/a11y";
10
- import * as i4 from "../modal-content/modal-content.component";
11
- import * as i5 from "../modal-dialog/modal-dialog.component";
12
- export class ModalComponent {
13
- constructor(document, renderer, hostElement, modalService, backdropService) {
14
- this.document = document;
15
- this.renderer = renderer;
16
- this.hostElement = hostElement;
17
- this.modalService = modalService;
18
- this.backdropService = backdropService;
19
- /**
20
- * Align the modal in the center or top of the screen.
21
- * @type {'top' | 'center'}
22
- * @default 'top'
23
- */
24
- this.alignment = 'top';
25
- /**
26
- * Apply a backdrop on body while modal is open.
27
- * @type boolean | 'static'
28
- * @default true
29
- */
30
- this.backdrop = true;
31
- /**
32
- * Closes the modal when escape key is pressed.
33
- * @type boolean
34
- * @default true
35
- */
36
- this.keyboard = true;
37
- /**
38
- * Remove animation to create modal that simply appear rather than fade in to view.
39
- */
40
- this.transition = true;
41
- /**
42
- * Default role for modal. [docs]
43
- * @type string
44
- * @default 'dialog'
45
- */
46
- this.role = 'dialog';
47
- /**
48
- * Set aria-modal html attr for modal. [docs]
49
- * @type boolean
50
- * @default true
51
- */
52
- this.ariaModal = true;
53
- this._scrollable = false;
54
- /**
55
- * Event triggered on modal dismiss.
56
- */
57
- this.visibleChange = new EventEmitter();
58
- this._show = true;
59
- this.mouseDownTarget = null;
60
- }
61
- /**
62
- * Create a scrollable modal that allows scrolling the modal body.
63
- * @type boolean
64
- */
65
- set scrollable(value) {
66
- this._scrollable = coerceBooleanProperty(value);
67
- }
68
- get scrollable() {
69
- return this._scrollable;
70
- }
71
- /**
72
- * Toggle the visibility of modal component.
73
- * @type boolean
74
- */
75
- set visible(value) {
76
- const newValue = coerceBooleanProperty(value);
77
- if (this._visible !== newValue) {
78
- this._visible = newValue;
79
- this.setBackdrop(this.backdrop !== false && newValue);
80
- this.setBodyStyles(newValue);
81
- this.visibleChange.emit(newValue);
82
- }
83
- }
84
- get visible() {
85
- return this._visible;
86
- }
87
- // private inBoundingClientRect!: boolean;
88
- get hostClasses() {
89
- return {
90
- modal: true,
91
- fade: this.transition,
92
- show: this.show
93
- };
94
- }
95
- get ariaHidden() {
96
- return this.visible ? null : true;
97
- }
98
- ;
99
- get tabIndex() {
100
- return '-1';
101
- }
102
- get animateTrigger() {
103
- return this.visible ? 'visible' : 'hidden';
104
- }
105
- get show() {
106
- return this.visible && this._show;
107
- }
108
- set show(value) {
109
- this._show = value;
110
- }
111
- get scrollbarWidth() {
112
- // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
113
- const documentWidth = this.document.documentElement.clientWidth;
114
- const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth);
115
- return `${scrollbarWidth}px`;
116
- }
117
- animateStart(event) {
118
- const scrollbarWidth = this.scrollbarWidth;
119
- if (event.toState === 'visible') {
120
- this.renderer.setStyle(this.document.body, 'overflow', 'hidden');
121
- this.renderer.setStyle(this.document.body, 'padding-right', scrollbarWidth);
122
- this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'block');
123
- }
124
- else {
125
- if (!this.transition) {
126
- this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'none');
127
- }
128
- }
129
- }
130
- animateDone(event) {
131
- setTimeout(() => {
132
- if (event.toState === 'hidden') {
133
- this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'none');
134
- this.renderer.removeStyle(this.document.body, 'overflow');
135
- this.renderer.removeStyle(this.document.body, 'padding-right');
136
- }
137
- });
138
- this.show = this.visible;
139
- }
140
- onKeyDownHandler(event) {
141
- if (event.key === 'Escape' && this.keyboard && this.visible) {
142
- if (this.backdrop === 'static') {
143
- this.setStaticBackdrop();
144
- }
145
- else {
146
- this.modalService.toggle({ show: false, modal: this });
147
- }
148
- }
149
- }
150
- onMouseDownHandler($event) {
151
- this.mouseDownTarget = $event.target;
152
- }
153
- onClickHandler($event) {
154
- if (this.mouseDownTarget !== $event.target) {
155
- this.mouseDownTarget = null;
156
- return;
157
- }
158
- const targetElement = $event.target;
159
- if (targetElement === this.hostElement.nativeElement) {
160
- if (this.backdrop === 'static') {
161
- this.setStaticBackdrop();
162
- return;
163
- }
164
- this.modalService.toggle({ show: false, modal: this });
165
- }
166
- }
167
- ngOnInit() {
168
- this.stateToggleSubscribe();
169
- }
170
- ngOnDestroy() {
171
- this.modalService.toggle({ show: false, modal: this });
172
- this.stateToggleSubscribe(false);
173
- }
174
- stateToggleSubscribe(subscribe = true) {
175
- if (subscribe) {
176
- this.stateToggleSubscription = this.modalService.modalState$.subscribe((action) => {
177
- if (this === action.modal || this.id === action.id) {
178
- if ('show' in action) {
179
- this.visible = action?.show === 'toggle' ? !this.visible : action.show;
180
- }
181
- }
182
- else {
183
- if (this.visible) {
184
- this.visible = false;
185
- }
186
- }
187
- });
188
- }
189
- else {
190
- this.stateToggleSubscription.unsubscribe();
191
- }
192
- }
193
- setBackdrop(setBackdrop) {
194
- if (setBackdrop) {
195
- this.activeBackdrop = this.backdropService.setBackdrop('modal');
196
- }
197
- else {
198
- this.activeBackdrop = this.backdropService.clearBackdrop(this.activeBackdrop);
199
- }
200
- }
201
- setBodyStyles(open) {
202
- if (open) {
203
- if (this.backdrop === true) {
204
- this.renderer.addClass(this.document.body, 'modal-open');
205
- }
206
- }
207
- else {
208
- this.renderer.removeClass(this.document.body, 'modal-open');
209
- }
210
- }
211
- setStaticBackdrop() {
212
- if (this.transition) {
213
- this.renderer.addClass(this.hostElement.nativeElement, 'modal-static');
214
- this.renderer.setStyle(this.hostElement.nativeElement, 'overflow-y', 'hidden');
215
- setTimeout(() => {
216
- this.renderer.removeClass(this.hostElement.nativeElement, 'modal-static');
217
- this.renderer.removeStyle(this.hostElement.nativeElement, 'overflow-y');
218
- }, 300);
219
- }
220
- }
221
- }
222
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.ModalService }, { token: i2.BackdropService }], target: i0.ɵɵFactoryTarget.Component });
223
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "c-modal", inputs: { alignment: "alignment", backdrop: "backdrop", fullscreen: "fullscreen", keyboard: "keyboard", id: "id", size: "size", transition: "transition", role: "role", ariaModal: "ariaModal", scrollable: "scrollable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keyup": "onKeyDownHandler($event)", "mousedown": "onMouseDownHandler($event)", "click": "onClickHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ModalContentComponent, descendants: true, read: ElementRef }], exportAs: ["cModal"], ngImport: i0, template: "<c-modal-dialog\n [alignment]=\"alignment\"\n [fullscreen]=\"fullscreen\"\n [scrollable]=\"scrollable\"\n [size]=\"size\">\n <c-modal-content>\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\n <ng-content></ng-content>\n </div>\n </c-modal-content>\n</c-modal-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i4.ModalContentComponent, selector: "c-modal-content" }, { kind: "component", type: i5.ModalDialogComponent, selector: "c-modal-dialog", inputs: ["alignment", "fullscreen", "scrollable", "size"] }], animations: [
224
- trigger('showHide', [
225
- state('visible', style({
226
- // display: 'block'
227
- })),
228
- state('hidden', style({
229
- // display: 'none'
230
- })),
231
- transition('visible <=> *', [animate('300ms')])
232
- ])
233
- ] });
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
235
- type: Component,
236
- args: [{ selector: 'c-modal', animations: [
237
- trigger('showHide', [
238
- state('visible', style({
239
- // display: 'block'
240
- })),
241
- state('hidden', style({
242
- // display: 'none'
243
- })),
244
- transition('visible <=> *', [animate('300ms')])
245
- ])
246
- ], exportAs: 'cModal', template: "<c-modal-dialog\n [alignment]=\"alignment\"\n [fullscreen]=\"fullscreen\"\n [scrollable]=\"scrollable\"\n [size]=\"size\">\n <c-modal-content>\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\n <ng-content></ng-content>\n </div>\n </c-modal-content>\n</c-modal-dialog>\n" }]
247
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
248
- type: Inject,
249
- args: [DOCUMENT]
250
- }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.ModalService }, { type: i2.BackdropService }]; }, propDecorators: { alignment: [{
251
- type: Input
252
- }], backdrop: [{
253
- type: Input
254
- }], fullscreen: [{
255
- type: Input
256
- }], keyboard: [{
257
- type: Input
258
- }], id: [{
259
- type: Input
260
- }], size: [{
261
- type: Input
262
- }], transition: [{
263
- type: Input
264
- }], role: [{
265
- type: Input
266
- }, {
267
- type: HostBinding,
268
- args: ['attr.role']
269
- }], ariaModal: [{
270
- type: Input
271
- }, {
272
- type: HostBinding,
273
- args: ['attr.aria-modal']
274
- }], scrollable: [{
275
- type: Input
276
- }], visible: [{
277
- type: Input
278
- }], visibleChange: [{
279
- type: Output
280
- }], modalContent: [{
281
- type: ViewChild,
282
- args: [ModalContentComponent, { read: ElementRef }]
283
- }], hostClasses: [{
284
- type: HostBinding,
285
- args: ['class']
286
- }], ariaHidden: [{
287
- type: HostBinding,
288
- args: ['attr.aria-hidden']
289
- }], tabIndex: [{
290
- type: HostBinding,
291
- args: ['attr.tabindex']
292
- }], animateTrigger: [{
293
- type: HostBinding,
294
- args: ['@showHide']
295
- }], animateStart: [{
296
- type: HostListener,
297
- args: ['@showHide.start', ['$event']]
298
- }], animateDone: [{
299
- type: HostListener,
300
- args: ['@showHide.done', ['$event']]
301
- }], onKeyDownHandler: [{
302
- type: HostListener,
303
- args: ['document:keyup', ['$event']]
304
- }], onMouseDownHandler: [{
305
- type: HostListener,
306
- args: ['mousedown', ['$event']]
307
- }], onClickHandler: [{
308
- type: HostListener,
309
- args: ['click', ['$event']]
310
- }] } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL21vZGFsL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakcsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBeUJqRixNQUFNLE9BQU8sY0FBYztJQUt6QixZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixXQUF1QixFQUN2QixZQUEwQixFQUMxQixlQUFnQztRQUpkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHMUM7Ozs7V0FJRztRQUNNLGNBQVMsR0FBc0IsS0FBSyxDQUFDO1FBQzlDOzs7O1dBSUc7UUFDTSxhQUFRLEdBQXVCLElBQUks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M0MsV0FBVztzQkFEVixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWExQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjbkMsa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNOUIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFja2Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYmFja2Ryb3AvYmFja2Ryb3Auc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWNvbnRlbnQvbW9kYWwtY29udGVudC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjLW1vZGFsJyxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaG93SGlkZScsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJ3Zpc2libGUnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIC8vIGRpc3BsYXk6ICdibG9jaydcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnaGlkZGVuJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICAvLyBkaXNwbGF5OiAnbm9uZSdcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlIDw9PiAqJywgW2FuaW1hdGUoJzMwMG1zJyldKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBleHBvcnRBczogJ2NNb2RhbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2Nyb2xsYWJsZTogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXNpYmxlOiBCb29sZWFuSW5wdXQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFja2Ryb3BTZXJ2aWNlOiBCYWNrZHJvcFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGlnbiB0aGUgbW9kYWwgaW4gdGhlIGNlbnRlciBvciB0b3Agb2YgdGhlIHNjcmVlbi5cclxuICAgKiBAdHlwZSB7J3RvcCcgfCAnY2VudGVyJ31cclxuICAgKiBAZGVmYXVsdCAndG9wJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFsaWdubWVudD86ICd0b3AnIHwgJ2NlbnRlcicgPSAndG9wJztcclxuICAvKipcclxuICAgKiBBcHBseSBhIGJhY2tkcm9wIG9uIGJvZHkgd2hpbGUgbW9kYWwgaXMgb3Blbi5cclxuICAgKiBAdHlwZSBib29sZWFuIHwgJ3N0YXRpYydcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgYmFja2Ryb3A6IGJvb2xlYW4gfCAnc3RhdGljJyA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogU2V0IG1vZGFsIHRvIGNvdmVyIHRoZSBlbnRpcmUgdXNlciB2aWV3cG9ydC5cclxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJ31cclxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBmdWxsc2NyZWVuPzogYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJztcclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkLlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KCkga2V5Ym9hcmQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCwgbGFyZ2UsIG9yIGV4dHJhIGxhcmdlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNpemU/OiAnc20nIHwgJ2xnJyB8ICd4bCc7XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGFuaW1hdGlvbiB0byBjcmVhdGUgbW9kYWwgdGhhdCBzaW1wbHkgYXBwZWFyIHJhdGhlciB0aGFuIGZhZGUgaW4gdG8gdmlldy5cclxuICAgKi9cclxuICBASW5wdXQoKSB0cmFuc2l0aW9uID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBEZWZhdWx0IHJvbGUgZm9yIG1vZGFsLiBbZG9jc11cclxuICAgKiBAdHlwZSBzdHJpbmdcclxuICAgKiBAZGVmYXVsdCAnZGlhbG9nJ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdkaWFsb2cnO1xyXG4gIC8qKlxyXG4gICAqIFNldCBhcmlhLW1vZGFsIGh0bWwgYXR0ciBmb3IgbW9kYWwuIFtkb2NzXVxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWwgPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBzY3JvbGxhYmxlIG1vZGFsIHRoYXQgYWxsb3dzIHNjcm9sbGluZyB0aGUgbW9kYWwgYm9keS5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc2Nyb2xsYWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2Nyb2xsYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2Nyb2xsYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zY3JvbGxhYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2Nyb2xsYWJsZSA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgbW9kYWwgY29tcG9uZW50LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5fdmlzaWJsZSAhPT0gbmV3VmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICB0aGlzLnNldEJhY2tkcm9wKHRoaXMuYmFja2Ryb3AgIT09IGZhbHNlICYmIG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5zZXRCb2R5U3R5bGVzKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Zpc2libGUhOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCB0cmlnZ2VyZWQgb24gbW9kYWwgZGlzbWlzcy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChNb2RhbENvbnRlbnRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBtb2RhbENvbnRlbnQhOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgYWN0aXZlQmFja2Ryb3AhOiBhbnk7XHJcbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLy8gcHJpdmF0ZSBpbkJvdW5kaW5nQ2xpZW50UmVjdCE6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9kYWw6IHRydWUsXHJcbiAgICAgIGZhZGU6IHRoaXMudHJhbnNpdGlvbixcclxuICAgICAgc2hvdzogdGhpcy5zaG93XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJylcclxuICBnZXQgYXJpYUhpZGRlbigpOiBib29sZWFuIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlID8gbnVsbCA6IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcclxuICBnZXQgdGFiSW5kZXgoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gJy0xJztcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnQHNob3dIaWRlJylcclxuICBnZXQgYW5pbWF0ZVRyaWdnZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJztcclxuICB9XHJcblxyXG4gIGdldCBzaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSAmJiB0aGlzLl9zaG93O1xyXG4gIH1cclxuXHJcbiAgc2V0IHNob3codmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Nob3cgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3cgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGdldCBzY3JvbGxiYXJXaWR0aCgpIHtcclxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XaW5kb3cvaW5uZXJXaWR0aCN1c2FnZV9ub3Rlc1xyXG4gICAgY29uc3QgZG9jdW1lbnRXaWR0aCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBNYXRoLmFicygod2luZG93Py5pbm5lcldpZHRoID8/IGRvY3VtZW50V2lkdGgpIC0gZG9jdW1lbnRXaWR0aCk7XHJcbiAgICByZXR1cm4gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignQHNob3dIaWRlLnN0YXJ0JywgWyckZXZlbnQnXSlcclxuICBhbmltYXRlU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XHJcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuc2Nyb2xsYmFyV2lkdGg7XHJcbiAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAncGFkZGluZy1yaWdodCcsIHNjcm9sbGJhcldpZHRoKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRoaXMudHJhbnNpdGlvbikge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ0BzaG93SGlkZS5kb25lJywgWyckZXZlbnQnXSlcclxuICBhbmltYXRlRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2hpZGRlbicpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3BhZGRpbmctcmlnaHQnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNob3cgPSB0aGlzLnZpc2libGU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5rZXlib2FyZCAmJiB0aGlzLnZpc2libGUpIHtcclxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0aWNCYWNrZHJvcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLnRvZ2dsZSh7IHNob3c6IGZhbHNlLCBtb2RhbDogdGhpcyB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb3VzZURvd25UYXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uTW91c2VEb3duSGFuZGxlcigkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMubW91c2VEb3duVGFyZ2V0ID0gJGV2ZW50LnRhcmdldDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25DbGlja0hhbmRsZXIoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMubW91c2VEb3duVGFyZ2V0ICE9PSAkZXZlbnQudGFyZ2V0KSB7XHJcbiAgICAgIHRoaXMubW91c2VEb3duVGFyZ2V0ID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0O1xyXG4gICAgaWYgKHRhcmdldEVsZW1lbnQgPT09IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG5cclxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0aWNCYWNrZHJvcCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2UudG9nZ2xlKHsgc2hvdzogZmFsc2UsIG1vZGFsOiB0aGlzIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlVG9nZ2xlU3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLnRvZ2dsZSh7IHNob3c6IGZhbHNlLCBtb2RhbDogdGhpcyB9KTtcclxuICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpYmUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpcHRpb24gPSB0aGlzLm1vZGFsU2VydmljZS5tb2RhbFN0YXRlJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGFjdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMgPT09IGFjdGlvbi5tb2RhbCB8fCB0aGlzLmlkID09PSBhY3Rpb24uaWQpIHtcclxuICAgICAgICAgICAgaWYgKCdzaG93JyBpbiBhY3Rpb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSBhY3Rpb24/LnNob3cgPT09ICd0b2dnbGUnID8gIXRoaXMudmlzaWJsZSA6IGFjdGlvbi5zaG93O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0YXRlVG9nZ2xlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJhY2tkcm9wKHNldEJhY2tkcm9wOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoc2V0QmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5hY3RpdmVCYWNrZHJvcCA9IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnNldEJhY2tkcm9wKCdtb2RhbCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVCYWNrZHJvcCA9IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLmNsZWFyQmFja2Ryb3AodGhpcy5hY3RpdmVCYWNrZHJvcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEJvZHlTdHlsZXMob3BlbjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKG9wZW4pIHtcclxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ21vZGFsLW9wZW4nKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdtb2RhbC1vcGVuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0YXRpY0JhY2tkcm9wKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNpdGlvbikge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21vZGFsLXN0YXRpYycpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ292ZXJmbG93LXknLCAnaGlkZGVuJyk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbW9kYWwtc3RhdGljJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdy15Jyk7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxjLW1vZGFsLWRpYWxvZ1xuICBbYWxpZ25tZW50XT1cImFsaWdubWVudFwiXG4gIFtmdWxsc2NyZWVuXT1cImZ1bGxzY3JlZW5cIlxuICBbc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlXCJcbiAgW3NpemVdPVwic2l6ZVwiPlxuICA8Yy1tb2RhbC1jb250ZW50PlxuICAgIDxkaXYgW2Nka1RyYXBGb2N1c109XCJ2aXNpYmxlXCIgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInZpc2libGVcIiBzdHlsZT1cImRpc3BsYXk6IGNvbnRlbnRzO1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2MtbW9kYWwtY29udGVudD5cbjwvYy1tb2RhbC1kaWFsb2c+XG4iXX0=
1
+ import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, ViewChild } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { animate, state, style, transition, trigger } from '@angular/animations';
4
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
+ import { ModalContentComponent } from '../modal-content/modal-content.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../modal.service";
8
+ import * as i2 from "../../backdrop/backdrop.service";
9
+ import * as i3 from "@angular/cdk/a11y";
10
+ import * as i4 from "../modal-content/modal-content.component";
11
+ import * as i5 from "../modal-dialog/modal-dialog.component";
12
+ export class ModalComponent {
13
+ constructor(document, renderer, hostElement, modalService, backdropService) {
14
+ this.document = document;
15
+ this.renderer = renderer;
16
+ this.hostElement = hostElement;
17
+ this.modalService = modalService;
18
+ this.backdropService = backdropService;
19
+ /**
20
+ * Align the modal in the center or top of the screen.
21
+ * @type {'top' | 'center'}
22
+ * @default 'top'
23
+ */
24
+ this.alignment = 'top';
25
+ /**
26
+ * Apply a backdrop on body while modal is open.
27
+ * @type boolean | 'static'
28
+ * @default true
29
+ */
30
+ this.backdrop = true;
31
+ /**
32
+ * Closes the modal when escape key is pressed.
33
+ * @type boolean
34
+ * @default true
35
+ */
36
+ this.keyboard = true;
37
+ /**
38
+ * Remove animation to create modal that simply appear rather than fade in to view.
39
+ */
40
+ this.transition = true;
41
+ /**
42
+ * Default role for modal. [docs]
43
+ * @type string
44
+ * @default 'dialog'
45
+ */
46
+ this.role = 'dialog';
47
+ /**
48
+ * Set aria-modal html attr for modal. [docs]
49
+ * @type boolean
50
+ * @default true
51
+ */
52
+ this.ariaModal = true;
53
+ this._scrollable = false;
54
+ /**
55
+ * Event triggered on modal dismiss.
56
+ */
57
+ this.visibleChange = new EventEmitter();
58
+ this._show = true;
59
+ this.mouseDownTarget = null;
60
+ }
61
+ /**
62
+ * Create a scrollable modal that allows scrolling the modal body.
63
+ * @type boolean
64
+ */
65
+ set scrollable(value) {
66
+ this._scrollable = coerceBooleanProperty(value);
67
+ }
68
+ get scrollable() {
69
+ return this._scrollable;
70
+ }
71
+ /**
72
+ * Toggle the visibility of modal component.
73
+ * @type boolean
74
+ */
75
+ set visible(value) {
76
+ const newValue = coerceBooleanProperty(value);
77
+ if (this._visible !== newValue) {
78
+ this._visible = newValue;
79
+ this.setBackdrop(this.backdrop !== false && newValue);
80
+ this.setBodyStyles(newValue);
81
+ this.visibleChange.emit(newValue);
82
+ }
83
+ }
84
+ get visible() {
85
+ return this._visible;
86
+ }
87
+ // private inBoundingClientRect!: boolean;
88
+ get hostClasses() {
89
+ return {
90
+ modal: true,
91
+ fade: this.transition,
92
+ show: this.show
93
+ };
94
+ }
95
+ get ariaHidden() {
96
+ return this.visible ? null : true;
97
+ }
98
+ ;
99
+ get tabIndex() {
100
+ return '-1';
101
+ }
102
+ get animateTrigger() {
103
+ return this.visible ? 'visible' : 'hidden';
104
+ }
105
+ get show() {
106
+ return this.visible && this._show;
107
+ }
108
+ set show(value) {
109
+ this._show = value;
110
+ }
111
+ animateStart(event) {
112
+ const scrollbarWidth = this.backdropService.scrollbarWidth;
113
+ if (event.toState === 'visible') {
114
+ this.renderer.setStyle(this.document.body, 'overflow', 'hidden');
115
+ this.renderer.setStyle(this.document.body, 'padding-right', scrollbarWidth);
116
+ this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'block');
117
+ }
118
+ else {
119
+ if (!this.transition) {
120
+ this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'none');
121
+ }
122
+ }
123
+ }
124
+ animateDone(event) {
125
+ setTimeout(() => {
126
+ if (event.toState === 'hidden') {
127
+ this.renderer.setStyle(this.hostElement.nativeElement, 'display', 'none');
128
+ this.renderer.removeStyle(this.document.body, 'overflow');
129
+ this.renderer.removeStyle(this.document.body, 'padding-right');
130
+ }
131
+ });
132
+ this.show = this.visible;
133
+ }
134
+ onKeyDownHandler(event) {
135
+ if (event.key === 'Escape' && this.keyboard && this.visible) {
136
+ if (this.backdrop === 'static') {
137
+ this.setStaticBackdrop();
138
+ }
139
+ else {
140
+ this.modalService.toggle({ show: false, modal: this });
141
+ }
142
+ }
143
+ }
144
+ onMouseDownHandler($event) {
145
+ this.mouseDownTarget = $event.target;
146
+ }
147
+ onClickHandler($event) {
148
+ if (this.mouseDownTarget !== $event.target) {
149
+ this.mouseDownTarget = null;
150
+ return;
151
+ }
152
+ const targetElement = $event.target;
153
+ if (targetElement === this.hostElement.nativeElement) {
154
+ if (this.backdrop === 'static') {
155
+ this.setStaticBackdrop();
156
+ return;
157
+ }
158
+ this.modalService.toggle({ show: false, modal: this });
159
+ }
160
+ }
161
+ ngOnInit() {
162
+ this.stateToggleSubscribe();
163
+ }
164
+ ngOnDestroy() {
165
+ this.modalService.toggle({ show: false, modal: this });
166
+ this.stateToggleSubscribe(false);
167
+ }
168
+ stateToggleSubscribe(subscribe = true) {
169
+ if (subscribe) {
170
+ this.stateToggleSubscription = this.modalService.modalState$.subscribe((action) => {
171
+ if (this === action.modal || this.id === action.id) {
172
+ if ('show' in action) {
173
+ this.visible = action?.show === 'toggle' ? !this.visible : action.show;
174
+ }
175
+ }
176
+ else {
177
+ if (this.visible) {
178
+ this.visible = false;
179
+ }
180
+ }
181
+ });
182
+ }
183
+ else {
184
+ this.stateToggleSubscription.unsubscribe();
185
+ }
186
+ }
187
+ setBackdrop(setBackdrop) {
188
+ if (setBackdrop) {
189
+ this.activeBackdrop = this.backdropService.setBackdrop('modal');
190
+ }
191
+ else {
192
+ this.activeBackdrop = this.backdropService.clearBackdrop(this.activeBackdrop);
193
+ }
194
+ }
195
+ setBodyStyles(open) {
196
+ if (open) {
197
+ if (this.backdrop === true) {
198
+ this.renderer.addClass(this.document.body, 'modal-open');
199
+ }
200
+ }
201
+ else {
202
+ this.renderer.removeClass(this.document.body, 'modal-open');
203
+ }
204
+ }
205
+ setStaticBackdrop() {
206
+ if (this.transition) {
207
+ this.renderer.addClass(this.hostElement.nativeElement, 'modal-static');
208
+ this.renderer.setStyle(this.hostElement.nativeElement, 'overflow-y', 'hidden');
209
+ setTimeout(() => {
210
+ this.renderer.removeClass(this.hostElement.nativeElement, 'modal-static');
211
+ this.renderer.removeStyle(this.hostElement.nativeElement, 'overflow-y');
212
+ }, 300);
213
+ }
214
+ }
215
+ }
216
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.ModalService }, { token: i2.BackdropService }], target: i0.ɵɵFactoryTarget.Component });
217
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "c-modal", inputs: { alignment: "alignment", backdrop: "backdrop", fullscreen: "fullscreen", keyboard: "keyboard", id: "id", size: "size", transition: "transition", role: "role", ariaModal: "ariaModal", scrollable: "scrollable", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keyup": "onKeyDownHandler($event)", "mousedown": "onMouseDownHandler($event)", "click": "onClickHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, viewQueries: [{ propertyName: "modalContent", first: true, predicate: ModalContentComponent, descendants: true, read: ElementRef }], exportAs: ["cModal"], ngImport: i0, template: "<c-modal-dialog\n [alignment]=\"alignment\"\n [fullscreen]=\"fullscreen\"\n [scrollable]=\"scrollable\"\n [size]=\"size\">\n <c-modal-content>\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\n <ng-content></ng-content>\n </div>\n </c-modal-content>\n</c-modal-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i4.ModalContentComponent, selector: "c-modal-content" }, { kind: "component", type: i5.ModalDialogComponent, selector: "c-modal-dialog", inputs: ["alignment", "fullscreen", "scrollable", "size"] }], animations: [
218
+ trigger('showHide', [
219
+ state('visible', style({
220
+ // display: 'block'
221
+ })),
222
+ state('hidden', style({
223
+ // display: 'none'
224
+ })),
225
+ transition('visible <=> *', [animate('300ms')])
226
+ ])
227
+ ] });
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
229
+ type: Component,
230
+ args: [{ selector: 'c-modal', animations: [
231
+ trigger('showHide', [
232
+ state('visible', style({
233
+ // display: 'block'
234
+ })),
235
+ state('hidden', style({
236
+ // display: 'none'
237
+ })),
238
+ transition('visible <=> *', [animate('300ms')])
239
+ ])
240
+ ], exportAs: 'cModal', template: "<c-modal-dialog\n [alignment]=\"alignment\"\n [fullscreen]=\"fullscreen\"\n [scrollable]=\"scrollable\"\n [size]=\"size\">\n <c-modal-content>\n <div [cdkTrapFocus]=\"visible\" [cdkTrapFocusAutoCapture]=\"visible\" style=\"display: contents;\">\n <ng-content></ng-content>\n </div>\n </c-modal-content>\n</c-modal-dialog>\n" }]
241
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
242
+ type: Inject,
243
+ args: [DOCUMENT]
244
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.ModalService }, { type: i2.BackdropService }]; }, propDecorators: { alignment: [{
245
+ type: Input
246
+ }], backdrop: [{
247
+ type: Input
248
+ }], fullscreen: [{
249
+ type: Input
250
+ }], keyboard: [{
251
+ type: Input
252
+ }], id: [{
253
+ type: Input
254
+ }], size: [{
255
+ type: Input
256
+ }], transition: [{
257
+ type: Input
258
+ }], role: [{
259
+ type: Input
260
+ }, {
261
+ type: HostBinding,
262
+ args: ['attr.role']
263
+ }], ariaModal: [{
264
+ type: Input
265
+ }, {
266
+ type: HostBinding,
267
+ args: ['attr.aria-modal']
268
+ }], scrollable: [{
269
+ type: Input
270
+ }], visible: [{
271
+ type: Input
272
+ }], visibleChange: [{
273
+ type: Output
274
+ }], modalContent: [{
275
+ type: ViewChild,
276
+ args: [ModalContentComponent, { read: ElementRef }]
277
+ }], hostClasses: [{
278
+ type: HostBinding,
279
+ args: ['class']
280
+ }], ariaHidden: [{
281
+ type: HostBinding,
282
+ args: ['attr.aria-hidden']
283
+ }], tabIndex: [{
284
+ type: HostBinding,
285
+ args: ['attr.tabindex']
286
+ }], animateTrigger: [{
287
+ type: HostBinding,
288
+ args: ['@showHide']
289
+ }], animateStart: [{
290
+ type: HostListener,
291
+ args: ['@showHide.start', ['$event']]
292
+ }], animateDone: [{
293
+ type: HostListener,
294
+ args: ['@showHide.done', ['$event']]
295
+ }], onKeyDownHandler: [{
296
+ type: HostListener,
297
+ args: ['document:keyup', ['$event']]
298
+ }], onMouseDownHandler: [{
299
+ type: HostListener,
300
+ args: ['mousedown', ['$event']]
301
+ }], onClickHandler: [{
302
+ type: HostListener,
303
+ args: ['click', ['$event']]
304
+ }] } });
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL21vZGFsL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakcsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7O0FBeUJqRixNQUFNLE9BQU8sY0FBYztJQUt6QixZQUM0QixRQUFrQixFQUNwQyxRQUFtQixFQUNuQixXQUF1QixFQUN2QixZQUEwQixFQUMxQixlQUFnQztRQUpkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHMUM7Ozs7V0FJRztRQUNNLGNBQVMsR0FBc0IsS0FBSyxDQUFDO1FBQzlDOzs7O1dBSUc7UUFDTSxhQUFRLEdBQXVCLElBQUks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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkV2ZW50LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhY2tkcm9wU2VydmljZSB9IGZyb20gJy4uLy4uL2JhY2tkcm9wL2JhY2tkcm9wLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtY29udGVudC9tb2RhbC1jb250ZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtbW9kYWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2hvd0hpZGUnLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgLy8gZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIC8vIGRpc3BsYXk6ICdub25lJ1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IConLCBbYW5pbWF0ZSgnMzAwbXMnKV0pXG4gICAgXSlcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjTW9kYWwnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zY3JvbGxhYmxlOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXNpYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tkcm9wU2VydmljZTogQmFja2Ryb3BTZXJ2aWNlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIEFsaWduIHRoZSBtb2RhbCBpbiB0aGUgY2VudGVyIG9yIHRvcCBvZiB0aGUgc2NyZWVuLlxuICAgKiBAdHlwZSB7J3RvcCcgfCAnY2VudGVyJ31cbiAgICogQGRlZmF1bHQgJ3RvcCdcbiAgICovXG4gIEBJbnB1dCgpIGFsaWdubWVudD86ICd0b3AnIHwgJ2NlbnRlcicgPSAndG9wJztcbiAgLyoqXG4gICAqIEFwcGx5IGEgYmFja2Ryb3Agb24gYm9keSB3aGlsZSBtb2RhbCBpcyBvcGVuLlxuICAgKiBAdHlwZSBib29sZWFuIHwgJ3N0YXRpYydcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgYmFja2Ryb3A6IGJvb2xlYW4gfCAnc3RhdGljJyA9IHRydWU7XG4gIC8qKlxuICAgKiBTZXQgbW9kYWwgdG8gY292ZXIgdGhlIGVudGlyZSB1c2VyIHZpZXdwb3J0LlxuICAgKiBAdHlwZSB7Ym9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJ31cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBmdWxsc2NyZWVuPzogYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJztcbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgd2hlbiBlc2NhcGUga2V5IGlzIHByZXNzZWQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkga2V5Ym9hcmQgPSB0cnVlO1xuICBASW5wdXQoKSBpZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNpemUgdGhlIGNvbXBvbmVudCBzbWFsbCwgbGFyZ2UsIG9yIGV4dHJhIGxhcmdlLlxuICAgKi9cbiAgQElucHV0KCkgc2l6ZT86ICdzbScgfCAnbGcnIHwgJ3hsJztcbiAgLyoqXG4gICAqIFJlbW92ZSBhbmltYXRpb24gdG8gY3JlYXRlIG1vZGFsIHRoYXQgc2ltcGx5IGFwcGVhciByYXRoZXIgdGhhbiBmYWRlIGluIHRvIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKSB0cmFuc2l0aW9uID0gdHJ1ZTtcbiAgLyoqXG4gICAqIERlZmF1bHQgcm9sZSBmb3IgbW9kYWwuIFtkb2NzXVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgJ2RpYWxvZydcbiAgICovXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdkaWFsb2cnO1xuICAvKipcbiAgICogU2V0IGFyaWEtbW9kYWwgaHRtbCBhdHRyIGZvciBtb2RhbC4gW2RvY3NdXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWwgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzY3JvbGxhYmxlIG1vZGFsIHRoYXQgYWxsb3dzIHNjcm9sbGluZyB0aGUgbW9kYWwgYm9keS5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNjcm9sbGFibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zY3JvbGxhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzY3JvbGxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2Nyb2xsYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgbW9kYWwgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMuc2V0QmFja2Ryb3AodGhpcy5iYWNrZHJvcCAhPT0gZmFsc2UgJiYgbmV3VmFsdWUpO1xuICAgICAgdGhpcy5zZXRCb2R5U3R5bGVzKG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2libGUhOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFdmVudCB0cmlnZ2VyZWQgb24gbW9kYWwgZGlzbWlzcy5cbiAgICovXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoTW9kYWxDb250ZW50Q29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbW9kYWxDb250ZW50ITogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBhY3RpdmVCYWNrZHJvcCE6IGFueTtcbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICAvLyBwcml2YXRlIGluQm91bmRpbmdDbGllbnRSZWN0ITogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGFsOiB0cnVlLFxuICAgICAgZmFkZTogdGhpcy50cmFuc2l0aW9uLFxuICAgICAgc2hvdzogdGhpcy5zaG93XG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gIGdldCBhcmlhSGlkZGVuKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlID8gbnVsbCA6IHRydWU7XG4gIH07XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgZ2V0IHRhYkluZGV4KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAnLTEnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdAc2hvd0hpZGUnKVxuICBnZXQgYW5pbWF0ZVRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7XG4gIH1cblxuICBnZXQgc2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlICYmIHRoaXMuX3Nob3c7XG4gIH1cblxuICBzZXQgc2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3cgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Nob3cgPSB0cnVlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ0BzaG93SGlkZS5zdGFydCcsIFsnJGV2ZW50J10pXG4gIGFuaW1hdGVTdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnNjcm9sbGJhcldpZHRoO1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAndmlzaWJsZScpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwgJ3BhZGRpbmctcmlnaHQnLCBzY3JvbGxiYXJXaWR0aCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnRyYW5zaXRpb24pIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdAc2hvd0hpZGUuZG9uZScsIFsnJGV2ZW50J10pXG4gIGFuaW1hdGVEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksICdwYWRkaW5nLXJpZ2h0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zaG93ID0gdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleURvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5rZXlib2FyZCAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIGlmICh0aGlzLmJhY2tkcm9wID09PSAnc3RhdGljJykge1xuICAgICAgICB0aGlzLnNldFN0YXRpY0JhY2tkcm9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS50b2dnbGUoeyBzaG93OiBmYWxzZSwgbW9kYWw6IHRoaXMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZURvd25UYXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCA9IG51bGw7XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uTW91c2VEb3duSGFuZGxlcigkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm1vdXNlRG93blRhcmdldCA9ICRldmVudC50YXJnZXQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNsaWNrSGFuZGxlcigkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcblxuICAgIGlmICh0aGlzLm1vdXNlRG93blRhcmdldCAhPT0gJGV2ZW50LnRhcmdldCkge1xuICAgICAgdGhpcy5tb3VzZURvd25UYXJnZXQgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0O1xuICAgIGlmICh0YXJnZXRFbGVtZW50ID09PSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcblxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGljQmFja2Ryb3AoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS50b2dnbGUoeyBzaG93OiBmYWxzZSwgbW9kYWw6IHRoaXMgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UudG9nZ2xlKHsgc2hvdzogZmFsc2UsIG1vZGFsOiB0aGlzIH0pO1xuICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZVRvZ2dsZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbiA9IHRoaXMubW9kYWxTZXJ2aWNlLm1vZGFsU3RhdGUkLnN1YnNjcmliZShcbiAgICAgICAgKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzID09PSBhY3Rpb24ubW9kYWwgfHwgdGhpcy5pZCA9PT0gYWN0aW9uLmlkKSB7XG4gICAgICAgICAgICBpZiAoJ3Nob3cnIGluIGFjdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLnZpc2libGUgPSBhY3Rpb24/LnNob3cgPT09ICd0b2dnbGUnID8gIXRoaXMudmlzaWJsZSA6IGFjdGlvbi5zaG93O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QmFja2Ryb3Aoc2V0QmFja2Ryb3A6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoc2V0QmFja2Ryb3ApIHtcbiAgICAgIHRoaXMuYWN0aXZlQmFja2Ryb3AgPSB0aGlzLmJhY2tkcm9wU2VydmljZS5zZXRCYWNrZHJvcCgnbW9kYWwnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVCYWNrZHJvcCA9IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLmNsZWFyQmFja2Ryb3AodGhpcy5hY3RpdmVCYWNrZHJvcCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRCb2R5U3R5bGVzKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAob3Blbikge1xuICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdtb2RhbC1vcGVuJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCAnbW9kYWwtb3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U3RhdGljQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNpdGlvbikge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtb2RhbC1zdGF0aWMnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cteScsICdoaWRkZW4nKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21vZGFsLXN0YXRpYycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ292ZXJmbG93LXknKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yy1tb2RhbC1kaWFsb2dcbiAgW2FsaWdubWVudF09XCJhbGlnbm1lbnRcIlxuICBbZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCJcbiAgW3Njcm9sbGFibGVdPVwic2Nyb2xsYWJsZVwiXG4gIFtzaXplXT1cInNpemVcIj5cbiAgPGMtbW9kYWwtY29udGVudD5cbiAgICA8ZGl2IFtjZGtUcmFwRm9jdXNdPVwidmlzaWJsZVwiIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ2aXNpYmxlXCIgc3R5bGU9XCJkaXNwbGF5OiBjb250ZW50cztcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9jLW1vZGFsLWNvbnRlbnQ+XG48L2MtbW9kYWwtZGlhbG9nPlxuIl19