@coreui/angular 5.2.24 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/README.md +5 -5
  2. package/fesm2022/coreui-angular.mjs +809 -912
  3. package/fesm2022/coreui-angular.mjs.map +1 -1
  4. package/lib/grid/col.directive.d.ts +26 -26
  5. package/package.json +7 -9
  6. package/esm2022/coreui-angular.mjs +0 -5
  7. package/esm2022/lib/accordion/accordion/accordion.component.mjs +0 -34
  8. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +0 -35
  9. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +0 -59
  10. package/esm2022/lib/accordion/accordion.module.mjs +0 -36
  11. package/esm2022/lib/accordion/accordion.service.mjs +0 -36
  12. package/esm2022/lib/accordion/index.mjs +0 -2
  13. package/esm2022/lib/accordion/public_api.mjs +0 -5
  14. package/esm2022/lib/alert/alert-heading.directive.mjs +0 -15
  15. package/esm2022/lib/alert/alert-link.directive.mjs +0 -15
  16. package/esm2022/lib/alert/alert.component.mjs +0 -173
  17. package/esm2022/lib/alert/alert.module.mjs +0 -30
  18. package/esm2022/lib/alert/index.mjs +0 -2
  19. package/esm2022/lib/alert/public_api.mjs +0 -5
  20. package/esm2022/lib/avatar/avatar.component.mjs +0 -71
  21. package/esm2022/lib/avatar/avatar.module.mjs +0 -20
  22. package/esm2022/lib/avatar/index.mjs +0 -2
  23. package/esm2022/lib/avatar/public_api.mjs +0 -3
  24. package/esm2022/lib/backdrop/backdrop.service.mjs +0 -82
  25. package/esm2022/lib/backdrop/index.mjs +0 -2
  26. package/esm2022/lib/backdrop/public_api.mjs +0 -2
  27. package/esm2022/lib/badge/badge.component.mjs +0 -77
  28. package/esm2022/lib/badge/badge.module.mjs +0 -20
  29. package/esm2022/lib/badge/index.mjs +0 -2
  30. package/esm2022/lib/badge/public_api.mjs +0 -3
  31. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +0 -40
  32. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +0 -39
  33. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +0 -2
  34. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +0 -41
  35. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +0 -52
  36. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +0 -34
  37. package/esm2022/lib/breadcrumb/index.mjs +0 -2
  38. package/esm2022/lib/breadcrumb/public_api.mjs +0 -6
  39. package/esm2022/lib/button/button-close.directive.mjs +0 -46
  40. package/esm2022/lib/button/button.directive.mjs +0 -88
  41. package/esm2022/lib/button/button.module.mjs +0 -25
  42. package/esm2022/lib/button/index.mjs +0 -2
  43. package/esm2022/lib/button/public_api.mjs +0 -4
  44. package/esm2022/lib/button-group/button-group/button-group.component.mjs +0 -41
  45. package/esm2022/lib/button-group/button-group.module.mjs +0 -17
  46. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +0 -24
  47. package/esm2022/lib/button-group/index.mjs +0 -2
  48. package/esm2022/lib/button-group/public_api.mjs +0 -4
  49. package/esm2022/lib/callout/callout.component.mjs +0 -25
  50. package/esm2022/lib/callout/callout.module.mjs +0 -16
  51. package/esm2022/lib/callout/index.mjs +0 -2
  52. package/esm2022/lib/callout/public_api.mjs +0 -3
  53. package/esm2022/lib/card/card-body.component.mjs +0 -16
  54. package/esm2022/lib/card/card-footer.component.mjs +0 -16
  55. package/esm2022/lib/card/card-group.component.mjs +0 -16
  56. package/esm2022/lib/card/card-header-actions.component.mjs +0 -16
  57. package/esm2022/lib/card/card-header.component.mjs +0 -16
  58. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +0 -11
  59. package/esm2022/lib/card/card-img.directive.mjs +0 -32
  60. package/esm2022/lib/card/card-link.directive.mjs +0 -15
  61. package/esm2022/lib/card/card-subtitle.directive.mjs +0 -15
  62. package/esm2022/lib/card/card-text.directive.mjs +0 -15
  63. package/esm2022/lib/card/card-title.directive.mjs +0 -15
  64. package/esm2022/lib/card/card.component.mjs +0 -50
  65. package/esm2022/lib/card/card.module.mjs +0 -75
  66. package/esm2022/lib/card/index.mjs +0 -2
  67. package/esm2022/lib/card/public_api.mjs +0 -14
  68. package/esm2022/lib/carousel/carousel/carousel.component.mjs +0 -212
  69. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +0 -17
  70. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +0 -82
  71. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +0 -44
  72. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +0 -47
  73. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +0 -67
  74. package/esm2022/lib/carousel/carousel-state.mjs +0 -77
  75. package/esm2022/lib/carousel/carousel-state.type.mjs +0 -2
  76. package/esm2022/lib/carousel/carousel.animation.mjs +0 -70
  77. package/esm2022/lib/carousel/carousel.config.mjs +0 -22
  78. package/esm2022/lib/carousel/carousel.module.mjs +0 -52
  79. package/esm2022/lib/carousel/carousel.service.mjs +0 -18
  80. package/esm2022/lib/carousel/index.mjs +0 -2
  81. package/esm2022/lib/carousel/public_api.mjs +0 -9
  82. package/esm2022/lib/collapse/collapse.animations.mjs +0 -9
  83. package/esm2022/lib/collapse/collapse.directive.mjs +0 -145
  84. package/esm2022/lib/collapse/collapse.module.mjs +0 -19
  85. package/esm2022/lib/collapse/index.mjs +0 -2
  86. package/esm2022/lib/collapse/public_api.mjs +0 -3
  87. package/esm2022/lib/coreui.types.mjs +0 -10
  88. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +0 -371
  89. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +0 -73
  90. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +0 -15
  91. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +0 -15
  92. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +0 -15
  93. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +0 -96
  94. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +0 -119
  95. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -56
  96. package/esm2022/lib/dropdown/dropdown.service.mjs +0 -18
  97. package/esm2022/lib/dropdown/index.mjs +0 -2
  98. package/esm2022/lib/dropdown/public_api.mjs +0 -10
  99. package/esm2022/lib/footer/footer.component.mjs +0 -39
  100. package/esm2022/lib/footer/footer.module.mjs +0 -16
  101. package/esm2022/lib/footer/index.mjs +0 -2
  102. package/esm2022/lib/footer/public_api.mjs +0 -3
  103. package/esm2022/lib/form/form/form.directive.mjs +0 -33
  104. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +0 -78
  105. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +0 -15
  106. package/esm2022/lib/form/form-check/form-check.component.mjs +0 -77
  107. package/esm2022/lib/form/form-control/form-control.directive.mjs +0 -66
  108. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +0 -38
  109. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +0 -32
  110. package/esm2022/lib/form/form-label/form-label.directive.mjs +0 -41
  111. package/esm2022/lib/form/form-select/form-select.directive.mjs +0 -36
  112. package/esm2022/lib/form/form-text/form-text.directive.mjs +0 -15
  113. package/esm2022/lib/form/form.module.mjs +0 -75
  114. package/esm2022/lib/form/index.mjs +0 -2
  115. package/esm2022/lib/form/input-group/input-group.component.mjs +0 -29
  116. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +0 -15
  117. package/esm2022/lib/form/public_api.mjs +0 -14
  118. package/esm2022/lib/grid/col.component.mjs +0 -12
  119. package/esm2022/lib/grid/col.directive.mjs +0 -157
  120. package/esm2022/lib/grid/col.type.mjs +0 -2
  121. package/esm2022/lib/grid/container.component.mjs +0 -33
  122. package/esm2022/lib/grid/container.type.mjs +0 -2
  123. package/esm2022/lib/grid/grid.module.mjs +0 -45
  124. package/esm2022/lib/grid/gutter.directive.mjs +0 -57
  125. package/esm2022/lib/grid/gutter.type.mjs +0 -2
  126. package/esm2022/lib/grid/index.mjs +0 -2
  127. package/esm2022/lib/grid/public_api.mjs +0 -8
  128. package/esm2022/lib/grid/row.component.mjs +0 -16
  129. package/esm2022/lib/grid/row.directive.mjs +0 -47
  130. package/esm2022/lib/grid/row.type.mjs +0 -2
  131. package/esm2022/lib/header/header/header.component.mjs +0 -45
  132. package/esm2022/lib/header/header-brand/header-brand.component.mjs +0 -32
  133. package/esm2022/lib/header/header-divider/header-divider.component.mjs +0 -21
  134. package/esm2022/lib/header/header-nav/header-nav.component.mjs +0 -28
  135. package/esm2022/lib/header/header-text/header-text.component.mjs +0 -21
  136. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +0 -55
  137. package/esm2022/lib/header/header.module.mjs +0 -45
  138. package/esm2022/lib/header/index.mjs +0 -2
  139. package/esm2022/lib/header/public_api.mjs +0 -8
  140. package/esm2022/lib/image/img.directive.mjs +0 -58
  141. package/esm2022/lib/image/img.module.mjs +0 -16
  142. package/esm2022/lib/image/index.mjs +0 -2
  143. package/esm2022/lib/image/public_api.mjs +0 -3
  144. package/esm2022/lib/list-group/index.mjs +0 -2
  145. package/esm2022/lib/list-group/list-group-item.directive.mjs +0 -63
  146. package/esm2022/lib/list-group/list-group.directive.mjs +0 -38
  147. package/esm2022/lib/list-group/list-group.module.mjs +0 -17
  148. package/esm2022/lib/list-group/public_api.mjs +0 -4
  149. package/esm2022/lib/modal/index.mjs +0 -2
  150. package/esm2022/lib/modal/modal/modal.component.mjs +0 -334
  151. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +0 -11
  152. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +0 -16
  153. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +0 -32
  154. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +0 -28
  155. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +0 -16
  156. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +0 -16
  157. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +0 -15
  158. package/esm2022/lib/modal/modal.module.mjs +0 -57
  159. package/esm2022/lib/modal/modal.service.mjs +0 -21
  160. package/esm2022/lib/modal/public_api.mjs +0 -11
  161. package/esm2022/lib/nav/index.mjs +0 -2
  162. package/esm2022/lib/nav/nav-item.component.mjs +0 -11
  163. package/esm2022/lib/nav/nav-link.directive.mjs +0 -76
  164. package/esm2022/lib/nav/nav.component.mjs +0 -25
  165. package/esm2022/lib/nav/nav.module.mjs +0 -30
  166. package/esm2022/lib/nav/public_api.mjs +0 -5
  167. package/esm2022/lib/navbar/index.mjs +0 -2
  168. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +0 -18
  169. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +0 -29
  170. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +0 -16
  171. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +0 -63
  172. package/esm2022/lib/navbar/navbar.component.mjs +0 -107
  173. package/esm2022/lib/navbar/navbar.module.mjs +0 -40
  174. package/esm2022/lib/navbar/public_api.mjs +0 -7
  175. package/esm2022/lib/offcanvas/index.mjs +0 -2
  176. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +0 -309
  177. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +0 -11
  178. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +0 -16
  179. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +0 -15
  180. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +0 -28
  181. package/esm2022/lib/offcanvas/offcanvas.module.mjs +0 -49
  182. package/esm2022/lib/offcanvas/offcanvas.service.mjs +0 -21
  183. package/esm2022/lib/offcanvas/public_api.mjs +0 -8
  184. package/esm2022/lib/pagination/index.mjs +0 -2
  185. package/esm2022/lib/pagination/page-item/page-item.component.mjs +0 -12
  186. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +0 -64
  187. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +0 -15
  188. package/esm2022/lib/pagination/pagination/pagination.component.mjs +0 -41
  189. package/esm2022/lib/pagination/pagination.module.mjs +0 -35
  190. package/esm2022/lib/pagination/public_api.mjs +0 -6
  191. package/esm2022/lib/placeholder/index.mjs +0 -2
  192. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +0 -34
  193. package/esm2022/lib/placeholder/placeholder.directive.mjs +0 -43
  194. package/esm2022/lib/placeholder/placeholder.module.mjs +0 -25
  195. package/esm2022/lib/placeholder/public_api.mjs +0 -4
  196. package/esm2022/lib/popover/index.mjs +0 -2
  197. package/esm2022/lib/popover/popover/popover.component.mjs +0 -70
  198. package/esm2022/lib/popover/popover.directive.mjs +0 -204
  199. package/esm2022/lib/popover/popover.module.mjs +0 -25
  200. package/esm2022/lib/popover/public_api.mjs +0 -4
  201. package/esm2022/lib/progress/index.mjs +0 -2
  202. package/esm2022/lib/progress/progress-bar.component.mjs +0 -40
  203. package/esm2022/lib/progress/progress-bar.directive.mjs +0 -113
  204. package/esm2022/lib/progress/progress-stacked.component.mjs +0 -19
  205. package/esm2022/lib/progress/progress.component.mjs +0 -74
  206. package/esm2022/lib/progress/progress.module.mjs +0 -35
  207. package/esm2022/lib/progress/progress.type.mjs +0 -2
  208. package/esm2022/lib/progress/public_api.mjs +0 -6
  209. package/esm2022/lib/services/class-toggle.service.mjs +0 -30
  210. package/esm2022/lib/services/color-mode.service.mjs +0 -78
  211. package/esm2022/lib/services/in-memory-storage.service.mjs +0 -32
  212. package/esm2022/lib/services/index.mjs +0 -2
  213. package/esm2022/lib/services/intersection.service.mjs +0 -51
  214. package/esm2022/lib/services/listeners.service.mjs +0 -52
  215. package/esm2022/lib/services/local-storage.service.mjs +0 -45
  216. package/esm2022/lib/services/public_api.mjs +0 -7
  217. package/esm2022/lib/shared/element-ref.directive.mjs +0 -18
  218. package/esm2022/lib/shared/html-attr.directive.mjs +0 -56
  219. package/esm2022/lib/shared/index.mjs +0 -2
  220. package/esm2022/lib/shared/public_api.mjs +0 -6
  221. package/esm2022/lib/shared/shared.module.mjs +0 -24
  222. package/esm2022/lib/shared/template-id.directive.mjs +0 -20
  223. package/esm2022/lib/shared/theme.directive.mjs +0 -45
  224. package/esm2022/lib/sidebar/index.mjs +0 -2
  225. package/esm2022/lib/sidebar/public_api.mjs +0 -10
  226. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +0 -241
  227. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +0 -62
  228. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +0 -30
  229. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +0 -16
  230. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +0 -16
  231. package/esm2022/lib/sidebar/sidebar-nav/index.mjs +0 -2
  232. package/esm2022/lib/sidebar/sidebar-nav/public_api.mjs +0 -14
  233. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +0 -25
  234. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +0 -17
  235. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +0 -18
  236. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +0 -21
  237. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +0 -34
  238. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +0 -43
  239. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +0 -111
  240. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +0 -23
  241. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +0 -71
  242. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +0 -230
  243. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.mjs +0 -2
  244. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +0 -54
  245. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +0 -41
  246. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +0 -39
  247. package/esm2022/lib/sidebar/sidebar.module.mjs +0 -83
  248. package/esm2022/lib/sidebar/sidebar.service.mjs +0 -21
  249. package/esm2022/lib/spinner/index.mjs +0 -2
  250. package/esm2022/lib/spinner/public_api.mjs +0 -3
  251. package/esm2022/lib/spinner/spinner.component.mjs +0 -52
  252. package/esm2022/lib/spinner/spinner.module.mjs +0 -20
  253. package/esm2022/lib/table/index.mjs +0 -2
  254. package/esm2022/lib/table/public_api.mjs +0 -5
  255. package/esm2022/lib/table/table-active.directive.mjs +0 -32
  256. package/esm2022/lib/table/table-color.directive.mjs +0 -25
  257. package/esm2022/lib/table/table.directive.mjs +0 -112
  258. package/esm2022/lib/table/table.module.mjs +0 -30
  259. package/esm2022/lib/table/table.type.mjs +0 -2
  260. package/esm2022/lib/tabs/index.mjs +0 -2
  261. package/esm2022/lib/tabs/public_api.mjs +0 -6
  262. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +0 -83
  263. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +0 -141
  264. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +0 -60
  265. package/esm2022/lib/tabs/tab.service.mjs +0 -21
  266. package/esm2022/lib/tabs/tabs.module.mjs +0 -36
  267. package/esm2022/lib/tabs-2/index.mjs +0 -2
  268. package/esm2022/lib/tabs-2/public_api.mjs +0 -8
  269. package/esm2022/lib/tabs-2/tab/tab.directive.mjs +0 -96
  270. package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +0 -113
  271. package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +0 -19
  272. package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +0 -93
  273. package/esm2022/lib/tabs-2/tabs.component.mjs +0 -37
  274. package/esm2022/lib/tabs-2/tabs.service.mjs +0 -15
  275. package/esm2022/lib/tabs-2/tabs2.module.mjs +0 -22
  276. package/esm2022/lib/toast/index.mjs +0 -2
  277. package/esm2022/lib/toast/public_api.mjs +0 -9
  278. package/esm2022/lib/toast/toast/toast.component.mjs +0 -204
  279. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +0 -21
  280. package/esm2022/lib/toast/toast-close.directive.mjs +0 -29
  281. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +0 -30
  282. package/esm2022/lib/toast/toast.module.mjs +0 -47
  283. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +0 -18
  284. package/esm2022/lib/toast/toaster/toaster.component.mjs +0 -123
  285. package/esm2022/lib/toast/toaster/toaster.service.mjs +0 -22
  286. package/esm2022/lib/tooltip/index.mjs +0 -2
  287. package/esm2022/lib/tooltip/public_api.mjs +0 -4
  288. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +0 -66
  289. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -204
  290. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -25
  291. package/esm2022/lib/utilities/align.directive.mjs +0 -25
  292. package/esm2022/lib/utilities/bg-color.directive.mjs +0 -34
  293. package/esm2022/lib/utilities/border.directive.mjs +0 -67
  294. package/esm2022/lib/utilities/border.type.mjs +0 -2
  295. package/esm2022/lib/utilities/index.mjs +0 -2
  296. package/esm2022/lib/utilities/public_api.mjs +0 -9
  297. package/esm2022/lib/utilities/rounded.directive.mjs +0 -66
  298. package/esm2022/lib/utilities/rounded.type.mjs +0 -2
  299. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +0 -48
  300. package/esm2022/lib/utilities/text-bg-color.directive.mjs +0 -30
  301. package/esm2022/lib/utilities/text-color.directive.mjs +0 -30
  302. package/esm2022/lib/utilities/utilities.module.mjs +0 -16
  303. package/esm2022/lib/widget/index.mjs +0 -2
  304. package/esm2022/lib/widget/public_api.mjs +0 -8
  305. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +0 -55
  306. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +0 -57
  307. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +0 -71
  308. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +0 -36
  309. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +0 -36
  310. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +0 -96
  311. package/esm2022/lib/widget/widget.module.mjs +0 -45
  312. package/esm2022/public-api.mjs +0 -43
@@ -1,212 +0,0 @@
1
- import { Component, DestroyRef, EventEmitter, HostBinding, inject, Inject, Input, Output } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { fromEvent } from 'rxjs';
4
- import { filter, finalize, withLatestFrom, zipWith } from 'rxjs/operators';
5
- import { ListenersService } from '../../services';
6
- import { ThemeDirective } from '../../shared/theme.directive';
7
- import { CarouselState } from '../carousel-state';
8
- import { CarouselService } from '../carousel.service';
9
- import { CarouselConfig } from '../carousel.config';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../carousel.service";
12
- import * as i2 from "../carousel-state";
13
- import * as i3 from "../../services";
14
- import * as i4 from "../../shared/theme.directive";
15
- import * as i5 from "../carousel.config";
16
- export class CarouselComponent {
17
- constructor(config, hostElement, carouselService, carouselState, intersectionService, listenersService) {
18
- this.config = config;
19
- this.hostElement = hostElement;
20
- this.carouselService = carouselService;
21
- this.carouselState = carouselState;
22
- this.intersectionService = intersectionService;
23
- this.listenersService = listenersService;
24
- /**
25
- * Index of the active item.
26
- * @type number
27
- */
28
- this.activeIndex = 0;
29
- /**
30
- * Carousel automatically starts cycle items.
31
- * @type boolean
32
- */
33
- this.animate = true;
34
- /**
35
- * Carousel direction. [docs]
36
- * @type {'next' | 'prev'}
37
- */
38
- this.direction = 'next';
39
- /**
40
- * The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle.
41
- * @type number
42
- * @default 0
43
- */
44
- this.interval = 0;
45
- /**
46
- * Sets which event handlers you’d like provided to your pause prop. You can specify one trigger or an array of them.
47
- * @type {'hover' | 'focus' | 'click'}
48
- */
49
- this.pause = 'hover';
50
- /**
51
- * Support left/right swipe interactions on touchscreen devices.
52
- * @type boolean
53
- * @default true
54
- */
55
- this.touch = true;
56
- /**
57
- * Set type of the transition.
58
- * @type {'slide' | 'crossfade'}
59
- * @default 'slide'
60
- */
61
- this.transition = 'slide';
62
- /**
63
- * Set whether the carousel should cycle continuously or have hard stops.
64
- * @type boolean
65
- * @default true
66
- */
67
- this.wrap = true;
68
- /**
69
- * Event emitted on carousel item change. [docs]
70
- * @type number
71
- */
72
- this.itemChange = new EventEmitter();
73
- this.activeItemInterval = 0;
74
- this.#destroyRef = inject(DestroyRef);
75
- this._visible = true;
76
- Object.assign(this, config);
77
- }
78
- get hostClasses() {
79
- return {
80
- carousel: true,
81
- slide: true,
82
- 'carousel-fade': this.transition === 'crossfade'
83
- };
84
- }
85
- #destroyRef;
86
- ngOnInit() {
87
- this.carouselStateSubscribe();
88
- }
89
- ngOnDestroy() {
90
- this.resetTimer();
91
- this.clearListeners();
92
- this.swipeSubscribe(false);
93
- }
94
- ngAfterContentInit() {
95
- this.intersectionServiceSubscribe();
96
- this.carouselState.state = { activeItemIndex: this.activeIndex, animate: this.animate };
97
- this.setListeners();
98
- this.swipeSubscribe();
99
- }
100
- setListeners() {
101
- const config = {
102
- hostElement: this.hostElement,
103
- trigger: this.pause || [],
104
- callbackOff: () => {
105
- this.setTimer();
106
- },
107
- callbackOn: () => {
108
- this.resetTimer();
109
- }
110
- };
111
- this.listenersService.setListeners(config);
112
- }
113
- clearListeners() {
114
- this.listenersService.clearListeners();
115
- }
116
- set visible(value) {
117
- this._visible = value;
118
- }
119
- get visible() {
120
- return this._visible;
121
- }
122
- setTimer() {
123
- const interval = this.activeItemInterval || 0;
124
- this.resetTimer();
125
- if (interval > 0) {
126
- this.timerId = setTimeout(() => {
127
- const nextIndex = this.carouselState.direction(this.direction);
128
- this.carouselState.state = { activeItemIndex: nextIndex };
129
- }, interval);
130
- }
131
- }
132
- resetTimer() {
133
- clearTimeout(this.timerId);
134
- this.timerId = undefined;
135
- }
136
- carouselStateSubscribe() {
137
- this.carouselService.carouselIndex$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((nextItem) => {
138
- if ('active' in nextItem) {
139
- this.itemChange.emit(nextItem.active);
140
- }
141
- this.activeItemInterval =
142
- typeof nextItem.interval === 'number' && nextItem.interval > -1 ? nextItem.interval : this.interval;
143
- const isLastItem = (nextItem.active === nextItem.lastItemIndex && this.direction === 'next') ||
144
- (nextItem.active === 0 && this.direction === 'prev');
145
- !this.wrap && isLastItem ? this.resetTimer() : this.setTimer();
146
- });
147
- }
148
- intersectionServiceSubscribe() {
149
- this.intersectionService.createIntersectionObserver(this.hostElement);
150
- this.intersectionService.intersecting$
151
- .pipe(filter((next) => next.hostElement === this.hostElement), finalize(() => {
152
- this.intersectionService.unobserve(this.hostElement);
153
- }), takeUntilDestroyed(this.#destroyRef))
154
- .subscribe((next) => {
155
- this.visible = next.isIntersecting;
156
- next.isIntersecting ? this.setTimer() : this.resetTimer();
157
- });
158
- }
159
- swipeSubscribe(subscribe = true) {
160
- if (this.touch && subscribe) {
161
- const carouselElement = this.hostElement.nativeElement;
162
- const touchStart$ = fromEvent(carouselElement, 'touchstart');
163
- const touchEnd$ = fromEvent(carouselElement, 'touchend');
164
- const touchMove$ = fromEvent(carouselElement, 'touchmove');
165
- this.swipeSubscription = touchStart$
166
- .pipe(zipWith(touchEnd$.pipe(withLatestFrom(touchMove$))), takeUntilDestroyed(this.#destroyRef))
167
- .subscribe(([touchstart, [touchend, touchmove]]) => {
168
- touchstart.stopPropagation();
169
- touchmove.stopPropagation();
170
- const distanceX = touchstart.touches[0].clientX - touchmove.touches[0].clientX;
171
- if (Math.abs(distanceX) > 0.3 * carouselElement.clientWidth && touchstart.timeStamp <= touchmove.timeStamp) {
172
- const nextIndex = this.carouselState.direction(distanceX > 0 ? 'next' : 'prev');
173
- this.carouselState.state = { activeItemIndex: nextIndex };
174
- }
175
- });
176
- }
177
- else {
178
- this.swipeSubscription?.unsubscribe();
179
- }
180
- }
181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselComponent, deps: [{ token: CarouselConfig }, { token: i0.ElementRef }, { token: i1.CarouselService }, { token: i2.CarouselState }, { token: i3.IntersectionService }, { token: i3.ListenersService }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: CarouselComponent, isStandalone: true, selector: "c-carousel", inputs: { activeIndex: "activeIndex", animate: "animate", direction: "direction", interval: "interval", pause: "pause", touch: "touch", transition: "transition", wrap: "wrap" }, outputs: { itemChange: "itemChange" }, host: { properties: { "class": "this.hostClasses" }, classAttribute: "carousel slide" }, providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], hostDirectives: [{ directive: i4.ThemeDirective, inputs: ["dark", "dark"] }], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
183
- }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselComponent, decorators: [{
185
- type: Component,
186
- args: [{ selector: 'c-carousel', template: '<ng-content />', providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], standalone: true, hostDirectives: [{ directive: ThemeDirective, inputs: ['dark'] }], host: { class: 'carousel slide' }, styles: [":host{display:block}\n"] }]
187
- }], ctorParameters: () => [{ type: i5.CarouselConfig, decorators: [{
188
- type: Inject,
189
- args: [CarouselConfig]
190
- }] }, { type: i0.ElementRef }, { type: i1.CarouselService }, { type: i2.CarouselState }, { type: i3.IntersectionService }, { type: i3.ListenersService }], propDecorators: { activeIndex: [{
191
- type: Input
192
- }], animate: [{
193
- type: Input
194
- }], direction: [{
195
- type: Input
196
- }], interval: [{
197
- type: Input
198
- }], pause: [{
199
- type: Input
200
- }], touch: [{
201
- type: Input
202
- }], transition: [{
203
- type: Input
204
- }], wrap: [{
205
- type: Input
206
- }], itemChange: [{
207
- type: Output
208
- }], hostClasses: [{
209
- type: HostBinding,
210
- args: ['class']
211
- }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBeUMsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFXcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNrQyxNQUFzQixFQUM5QyxXQUF1QixFQUN2QixlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsZ0JBQWtDO1FBTFYsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDOUMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdC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QUFjO21HQUZiLGlCQUFpQiwyV0FMakIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyx3R0FGbkUsZ0JBQWdCOzs0RkFPZixpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLGdCQUFnQixhQUVmLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsY0FDakUsSUFBSSxrQkFDQSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQzNELEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFOzswQkFJOUIsTUFBTTsyQkFBQyxjQUFjOzZMQWNmLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUtJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0gsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCB3aXRoTGF0ZXN0RnJvbSwgemlwV2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUxpc3RlbmVyc0NvbmZpZywgSW50ZXJzZWN0aW9uU2VydmljZSwgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuaW1wb3J0IHsgVHJpZ2dlcnMgfSBmcm9tICcuLi8uLi9jb3JldWkudHlwZXMnO1xuaW1wb3J0IHsgVGhlbWVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9zaGFyZWQvdGhlbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENhcm91c2VsU3RhdGUgfSBmcm9tICcuLi9jYXJvdXNlbC1zdGF0ZSc7XG5pbXBvcnQgeyBDYXJvdXNlbFNlcnZpY2UgfSBmcm9tICcuLi9jYXJvdXNlbC5zZXJ2aWNlJztcbmltcG9ydCB7IENhcm91c2VsQ29uZmlnIH0gZnJvbSAnLi4vY2Fyb3VzZWwuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1jYXJvdXNlbCcsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYXJvdXNlbFNlcnZpY2UsIENhcm91c2VsU3RhdGUsIENhcm91c2VsQ29uZmlnLCBMaXN0ZW5lcnNTZXJ2aWNlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogVGhlbWVEaXJlY3RpdmUsIGlucHV0czogWydkYXJrJ10gfV0sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjYXJvdXNlbCBzbGlkZScgfVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDYXJvdXNlbENvbmZpZykgcHJpdmF0ZSBjb25maWc6IENhcm91c2VsQ29uZmlnLFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSxcbiAgICBwcml2YXRlIGNhcm91c2VsU3RhdGU6IENhcm91c2VsU3RhdGUsXG4gICAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25TZXJ2aWNlOiBJbnRlcnNlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdGVuZXJzU2VydmljZTogTGlzdGVuZXJzU2VydmljZVxuICApIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW5kZXggb2YgdGhlIGFjdGl2ZSBpdGVtLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpIGFjdGl2ZUluZGV4OiBudW1iZXIgPSAwO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgYXV0b21hdGljYWxseSBzdGFydHMgY3ljbGUgaXRlbXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGFuaW1hdGU6IGJvb2xlYW4gPSB0cnVlO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgZGlyZWN0aW9uLiBbZG9jc11cbiAgICogQHR5cGUgeyduZXh0JyB8ICdwcmV2J31cbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnID0gJ25leHQnO1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IGJldHdlZW4gYXV0b21hdGljYWxseSBjeWNsaW5nIGFuIGl0ZW0uIElmIGZhbHNlLCBjYXJvdXNlbCB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGN5Y2xlLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBTZXRzIHdoaWNoIGV2ZW50IGhhbmRsZXJzIHlvdeKAmWQgbGlrZSBwcm92aWRlZCB0byB5b3VyIHBhdXNlIHByb3AuIFlvdSBjYW4gc3BlY2lmeSBvbmUgdHJpZ2dlciBvciBhbiBhcnJheSBvZiB0aGVtLlxuICAgKiBAdHlwZSB7J2hvdmVyJyB8ICdmb2N1cycgfCAnY2xpY2snfVxuICAgKi9cbiAgQElucHV0KCkgcGF1c2U6IFRyaWdnZXJzIHwgVHJpZ2dlcnNbXSB8IGZhbHNlID0gJ2hvdmVyJztcbiAgLyoqXG4gICAqIFN1cHBvcnQgbGVmdC9yaWdodCBzd2lwZSBpbnRlcmFjdGlvbnMgb24gdG91Y2hzY3JlZW4gZGV2aWNlcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSB0b3VjaDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKlxuICAgKiBTZXQgdHlwZSBvZiB0aGUgdHJhbnNpdGlvbi5cbiAgICogQHR5cGUgeydzbGlkZScgfCAnY3Jvc3NmYWRlJ31cbiAgICogQGRlZmF1bHQgJ3NsaWRlJ1xuICAgKi9cbiAgQElucHV0KCkgdHJhbnNpdGlvbjogJ3NsaWRlJyB8ICdjcm9zc2ZhZGUnID0gJ3NsaWRlJztcbiAgLyoqXG4gICAqIFNldCB3aGV0aGVyIHRoZSBjYXJvdXNlbCBzaG91bGQgY3ljbGUgY29udGludW91c2x5IG9yIGhhdmUgaGFyZCBzdG9wcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSB3cmFwOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gY2Fyb3VzZWwgaXRlbSBjaGFuZ2UuIFtkb2NzXVxuICAgKiBAdHlwZSBudW1iZXJcbiAgICovXG4gIEBPdXRwdXQoKSBpdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2Fyb3VzZWw6IHRydWUsXG4gICAgICBzbGlkZTogdHJ1ZSxcbiAgICAgICdjYXJvdXNlbC1mYWRlJzogdGhpcy50cmFuc2l0aW9uID09PSAnY3Jvc3NmYWRlJ1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbWVySWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGFjdGl2ZUl0ZW1JbnRlcnZhbCA9IDA7XG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgIHRoaXMuc3dpcGVTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZVN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiB0aGlzLmFjdGl2ZUluZGV4LCBhbmltYXRlOiB0aGlzLmFuaW1hdGUgfTtcbiAgICB0aGlzLnNldExpc3RlbmVycygpO1xuICAgIHRoaXMuc3dpcGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZzogSUxpc3RlbmVyc0NvbmZpZyA9IHtcbiAgICAgIGhvc3RFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgdHJpZ2dlcjogdGhpcy5wYXVzZSB8fCBbXSxcbiAgICAgIGNhbGxiYWNrT2ZmOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGltZXIoKTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja09uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2UuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICBzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuYWN0aXZlSXRlbUludGVydmFsIHx8IDA7XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgaWYgKGludGVydmFsID4gMCkge1xuICAgICAgdGhpcy50aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuY2Fyb3VzZWxTdGF0ZS5kaXJlY3Rpb24odGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmNhcm91c2VsU3RhdGUuc3RhdGUgPSB7IGFjdGl2ZUl0ZW1JbmRleDogbmV4dEluZGV4IH07XG4gICAgICB9LCBpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcklkKTtcbiAgICB0aGlzLnRpbWVySWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNhcm91c2VsU3RhdGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2Fyb3VzZWxJbmRleCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZikpLnN1YnNjcmliZSgobmV4dEl0ZW0pID0+IHtcbiAgICAgIGlmICgnYWN0aXZlJyBpbiBuZXh0SXRlbSkge1xuICAgICAgICB0aGlzLml0ZW1DaGFuZ2UuZW1pdChuZXh0SXRlbS5hY3RpdmUpO1xuICAgICAgfVxuICAgICAgdGhpcy5hY3RpdmVJdGVtSW50ZXJ2YWwgPVxuICAgICAgICB0eXBlb2YgbmV4dEl0ZW0uaW50ZXJ2YWwgPT09ICdudW1iZXInICYmIG5leHRJdGVtLmludGVydmFsID4gLTEgPyBuZXh0SXRlbS5pbnRlcnZhbCA6IHRoaXMuaW50ZXJ2YWw7XG4gICAgICBjb25zdCBpc0xhc3RJdGVtID1cbiAgICAgICAgKG5leHRJdGVtLmFjdGl2ZSA9PT0gbmV4dEl0ZW0ubGFzdEl0ZW1JbmRleCAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ25leHQnKSB8fFxuICAgICAgICAobmV4dEl0ZW0uYWN0aXZlID09PSAwICYmIHRoaXMuZGlyZWN0aW9uID09PSAncHJldicpO1xuICAgICAgIXRoaXMud3JhcCAmJiBpc0xhc3RJdGVtID8gdGhpcy5yZXNldFRpbWVyKCkgOiB0aGlzLnNldFRpbWVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludGVyc2VjdGlvblNlcnZpY2VTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlLmNyZWF0ZUludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS5pbnRlcnNlY3RpbmckXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChuZXh0KSA9PiBuZXh0Lmhvc3RFbGVtZW50ID09PSB0aGlzLmhvc3RFbGVtZW50KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS51bm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG5leHQpID0+IHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gbmV4dC5pc0ludGVyc2VjdGluZztcbiAgICAgICAgbmV4dC5pc0ludGVyc2VjdGluZyA/IHRoaXMuc2V0VGltZXIoKSA6IHRoaXMucmVzZXRUaW1lcigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN3aXBlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b3VjaCAmJiBzdWJzY3JpYmUpIHtcbiAgICAgIGNvbnN0IGNhcm91c2VsRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNoc3RhcnQnKTtcbiAgICAgIGNvbnN0IHRvdWNoRW5kJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaGVuZCcpO1xuICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaG1vdmUnKTtcbiAgICAgIHRoaXMuc3dpcGVTdWJzY3JpcHRpb24gPSB0b3VjaFN0YXJ0JFxuICAgICAgICAucGlwZSh6aXBXaXRoKHRvdWNoRW5kJC5waXBlKHdpdGhMYXRlc3RGcm9tKHRvdWNoTW92ZSQpKSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW3RvdWNoc3RhcnQsIFt0b3VjaGVuZCwgdG91Y2htb3ZlXV0pID0+IHtcbiAgICAgICAgICB0b3VjaHN0YXJ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRvdWNobW92ZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBjb25zdCBkaXN0YW5jZVggPSB0b3VjaHN0YXJ0LnRvdWNoZXNbMF0uY2xpZW50WCAtIHRvdWNobW92ZS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlWCkgPiAwLjMgKiBjYXJvdXNlbEVsZW1lbnQuY2xpZW50V2lkdGggJiYgdG91Y2hzdGFydC50aW1lU3RhbXAgPD0gdG91Y2htb3ZlLnRpbWVTdGFtcCkge1xuICAgICAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5jYXJvdXNlbFN0YXRlLmRpcmVjdGlvbihkaXN0YW5jZVggPiAwID8gJ25leHQnIDogJ3ByZXYnKTtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiBuZXh0SW5kZXggfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN3aXBlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,17 +0,0 @@
1
- import { Component, HostBinding } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CarouselCaptionComponent {
4
- constructor() {
5
- this.carouselCaptionClass = true;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselCaptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: CarouselCaptionComponent, isStandalone: true, selector: "c-carousel-caption", host: { properties: { "class.carousel-caption": "this.carouselCaptionClass" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselCaptionComponent, decorators: [{
11
- type: Component,
12
- args: [{ selector: 'c-carousel-caption', template: '<ng-content />', standalone: true, styles: [":host{display:block}\n"] }]
13
- }], propDecorators: { carouselCaptionClass: [{
14
- type: HostBinding,
15
- args: ['class.carousel-caption']
16
- }] } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtY2FwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWNhcHRpb24vY2Fyb3VzZWwtY2FwdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXZELE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFReUMseUJBQW9CLEdBQUcsSUFBSSxDQUFDO0tBRXBFOytHQUpZLHdCQUF3QjttR0FBeEIsd0JBQXdCLCtKQUp6QixnQkFBZ0I7OzRGQUlmLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEIsZ0JBQWdCLGNBRWQsSUFBSTs4QkFJdUIsb0JBQW9CO3NCQUExRCxXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1jYXJvdXNlbC1jYXB0aW9uJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLWNhcHRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENhcHRpb25Db21wb25lbnQge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2Fyb3VzZWwtY2FwdGlvbicpIGNhcm91c2VsQ2FwdGlvbkNsYXNzID0gdHJ1ZTtcblxufVxuIl19
@@ -1,82 +0,0 @@
1
- import { Component, HostBinding, HostListener, Input, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../carousel-state";
4
- export class CarouselControlComponent {
5
- constructor(changeDetectorRef, carouselState) {
6
- this.changeDetectorRef = changeDetectorRef;
7
- this.carouselState = carouselState;
8
- /**
9
- * Carousel control direction. [docs]
10
- * @type {'next' | 'prev'}
11
- */
12
- this.direction = 'next';
13
- this.hasContent = true;
14
- }
15
- /**
16
- * Carousel control caption. [docs]
17
- * @type string
18
- */
19
- set caption(value) {
20
- this._caption = value;
21
- }
22
- get caption() {
23
- return !!this._caption ? this._caption : this.direction === 'prev' ? 'Previous' : 'Next';
24
- }
25
- get hostRole() {
26
- return 'button';
27
- }
28
- get hostClasses() {
29
- return `carousel-control-${this.direction}`;
30
- }
31
- get carouselControlIconClass() {
32
- return `carousel-control-${this.direction}-icon`;
33
- }
34
- onKeyUp($event) {
35
- if ($event.key === 'Enter') {
36
- this.play();
37
- }
38
- if ($event.key === 'ArrowLeft') {
39
- this.play('prev');
40
- }
41
- if ($event.key === 'ArrowRight') {
42
- this.play('next');
43
- }
44
- }
45
- onClick($event) {
46
- this.play();
47
- }
48
- ngAfterViewInit() {
49
- this.hasContent = this.content?.nativeElement.childNodes.length ?? false;
50
- this.changeDetectorRef.detectChanges();
51
- }
52
- play(direction = this.direction) {
53
- const nextIndex = this.carouselState.direction(direction);
54
- this.carouselState.state = { activeItemIndex: nextIndex };
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselControlComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CarouselState }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: CarouselControlComponent, isStandalone: true, selector: "c-carousel-control", inputs: { caption: "caption", direction: "direction" }, host: { listeners: { "keyup": "onKeyUp($event)", "click": "onClick($event)" }, properties: { "attr.role": "this.hostRole", "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "@if (hasContent) {\n <div #content>\n <ng-content />\n </div>\n} @else {\n <span [class]=\"carouselControlIconClass\" [attr.aria-label]=\"direction\" [attr.aria-hidden]=\"true\"></span>\n <span class=\"visually-hidden\">{{ caption }}</span>\n}\n" }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselControlComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: 'c-carousel-control', standalone: true, template: "@if (hasContent) {\n <div #content>\n <ng-content />\n </div>\n} @else {\n <span [class]=\"carouselControlIconClass\" [attr.aria-label]=\"direction\" [attr.aria-hidden]=\"true\"></span>\n <span class=\"visually-hidden\">{{ caption }}</span>\n}\n" }]
62
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CarouselState }], propDecorators: { caption: [{
63
- type: Input
64
- }], direction: [{
65
- type: Input
66
- }], hostRole: [{
67
- type: HostBinding,
68
- args: ['attr.role']
69
- }], hostClasses: [{
70
- type: HostBinding,
71
- args: ['class']
72
- }], content: [{
73
- type: ViewChild,
74
- args: ['content']
75
- }], onKeyUp: [{
76
- type: HostListener,
77
- args: ['keyup', ['$event']]
78
- }], onClick: [{
79
- type: HostListener,
80
- args: ['click', ['$event']]
81
- }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWNvbnRyb2wvY2Fyb3VzZWwtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWNvbnRyb2wvY2Fyb3VzZWwtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7O0FBU3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsWUFDVSxpQkFBb0MsRUFDcEMsYUFBNEI7UUFENUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWlCdEM7OztXQUdHO1FBQ00sY0FBUyxHQUFvQixNQUFNLENBQUM7UUFrQjdDLGVBQVUsR0FBRyxJQUFJLENBQUM7SUF0Q2YsQ0FBQztJQUdKOzs7T0FHRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNGLENBQUM7SUFRRCxJQUNJLFFBQVE7UUFDVixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMxQixPQUFPLG9CQUFvQixJQUFJLENBQUMsU0FBUyxPQUFPLENBQUM7SUFDbkQsQ0FBQztJQU9ELE9BQU8sQ0FBQyxNQUFxQjtRQUMzQixJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUdNLE9BQU8sQ0FBQyxNQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzVELENBQUM7K0dBdkVVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHNZQ2xCckMsOFBBUUE7OzRGRFVhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FFbEIsSUFBSTtrSEFlWixPQUFPO3NCQURWLEtBQUs7Z0JBYUcsU0FBUztzQkFBakIsS0FBSztnQkFHRixRQUFRO3NCQURYLFdBQVc7dUJBQUMsV0FBVztnQkFNcEIsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBU0UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUtwQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWMxQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2Fyb3VzZWxTdGF0ZSB9IGZyb20gJy4uL2Nhcm91c2VsLXN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1jYXJvdXNlbC1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgY2Fyb3VzZWxTdGF0ZTogQ2Fyb3VzZWxTdGF0ZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBfY2FwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIENhcm91c2VsIGNvbnRyb2wgY2FwdGlvbi4gW2RvY3NdXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNhcHRpb24odmFsdWUpIHtcbiAgICB0aGlzLl9jYXB0aW9uID0gdmFsdWU7XG4gIH1cblxuICBnZXQgY2FwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAhIXRoaXMuX2NhcHRpb24gPyB0aGlzLl9jYXB0aW9uIDogdGhpcy5kaXJlY3Rpb24gPT09ICdwcmV2JyA/ICdQcmV2aW91cycgOiAnTmV4dCc7XG4gIH1cblxuICAvKipcbiAgICogQ2Fyb3VzZWwgY29udHJvbCBkaXJlY3Rpb24uIFtkb2NzXVxuICAgKiBAdHlwZSB7J25leHQnIHwgJ3ByZXYnfVxuICAgKi9cbiAgQElucHV0KCkgZGlyZWN0aW9uOiAncHJldicgfCAnbmV4dCcgPSAnbmV4dCc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBnZXQgaG9zdFJvbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2J1dHRvbic7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjYXJvdXNlbC1jb250cm9sLSR7dGhpcy5kaXJlY3Rpb259YDtcbiAgfVxuXG4gIGdldCBjYXJvdXNlbENvbnRyb2xJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNhcm91c2VsLWNvbnRyb2wtJHt0aGlzLmRpcmVjdGlvbn0taWNvbmA7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudD86IEVsZW1lbnRSZWY7XG5cbiAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICB0aGlzLnBsYXkoJ3ByZXYnKTtcbiAgICB9XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgdGhpcy5wbGF5KCduZXh0Jyk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25DbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBsYXkoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5sZW5ndGggPz8gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHBsYXkoZGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0SW5kZXggPSB0aGlzLmNhcm91c2VsU3RhdGUuZGlyZWN0aW9uKGRpcmVjdGlvbik7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlLnN0YXRlID0geyBhY3RpdmVJdGVtSW5kZXg6IG5leHRJbmRleCB9O1xuICB9XG59XG4iLCJAaWYgKGhhc0NvbnRlbnQpIHtcbiAgPGRpdiAjY29udGVudD5cbiAgICA8bmctY29udGVudCAvPlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8c3BhbiBbY2xhc3NdPVwiY2Fyb3VzZWxDb250cm9sSWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJkaXJlY3Rpb25cIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7IGNhcHRpb24gfX08L3NwYW4+XG59XG4iXX0=
@@ -1,44 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../carousel.service";
4
- import * as i2 from "../carousel-state";
5
- export class CarouselIndicatorsComponent {
6
- constructor(carouselService, carouselState) {
7
- this.carouselService = carouselService;
8
- this.carouselState = carouselState;
9
- this.items = [];
10
- this.active = 0;
11
- }
12
- ngOnInit() {
13
- this.carouselStateSubscribe();
14
- }
15
- ngOnDestroy() {
16
- this.carouselStateSubscribe(false);
17
- }
18
- onClick(index) {
19
- if (index !== this.active) {
20
- const direction = index < this.active ? 'prev' : 'next';
21
- this.carouselState.state = { direction, activeItemIndex: index };
22
- }
23
- }
24
- carouselStateSubscribe(subscribe = true) {
25
- if (subscribe) {
26
- this.carouselIndexSubscription = this.carouselService.carouselIndex$.subscribe((nextIndex) => {
27
- this.items = this.carouselState?.state?.items?.map(item => item.index) ?? [];
28
- if ('active' in nextIndex) {
29
- this.active = nextIndex.active ?? 0;
30
- }
31
- });
32
- }
33
- else {
34
- this.carouselIndexSubscription?.unsubscribe();
35
- }
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselIndicatorsComponent, deps: [{ token: i1.CarouselService }, { token: i2.CarouselState }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: CarouselIndicatorsComponent, isStandalone: true, selector: "c-carousel-indicators", ngImport: i0, template: "<div class=\"carousel-indicators\">\n @for (item of items; track item; let i = $index) {\n <button\n [attr.data-coreui-target]=\"i\"\n type=\"button\"\n (click)=\"onClick(i)\"\n [class]=\"{ active: active === i }\"\n [attr.aria-current]=\"active === i\">\n </button>\n }\n</div>\n" }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselIndicatorsComponent, decorators: [{
41
- type: Component,
42
- args: [{ selector: 'c-carousel-indicators', standalone: true, template: "<div class=\"carousel-indicators\">\n @for (item of items; track item; let i = $index) {\n <button\n [attr.data-coreui-target]=\"i\"\n type=\"button\"\n (click)=\"onClick(i)\"\n [class]=\"{ active: active === i }\"\n [attr.aria-current]=\"active === i\">\n </button>\n }\n</div>\n" }]
43
- }], ctorParameters: () => [{ type: i1.CarouselService }, { type: i2.CarouselState }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW5kaWNhdG9ycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWluZGljYXRvcnMvY2Fyb3VzZWwtaW5kaWNhdG9ycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWluZGljYXRvcnMvY2Fyb3VzZWwtaW5kaWNhdG9ycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7OztBQVc3RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQ1UsZUFBZ0MsRUFDaEMsYUFBNEI7UUFENUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBR3RDLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBQ25DLFdBQU0sR0FBRyxDQUFDLENBQUM7SUFIUixDQUFDO0lBTUosUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUNuQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQXFCLElBQUk7UUFDdEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDN0UsSUFBSSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDOytHQXBDVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixpRkNYeEMsMlRBV0E7OzRGREFhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FFckIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDYXJvdXNlbFN0YXRlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtc3RhdGUnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtY2Fyb3VzZWwtaW5kaWNhdG9ycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC1pbmRpY2F0b3JzLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbEluZGljYXRvcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Fyb3VzZWxTZXJ2aWNlOiBDYXJvdXNlbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFN0YXRlOiBDYXJvdXNlbFN0YXRlXG4gICkge31cblxuICBpdGVtczogKG51bWJlciB8IHVuZGVmaW5lZClbXSA9IFtdO1xuICBhY3RpdmUgPSAwO1xuICBwcml2YXRlIGNhcm91c2VsSW5kZXhTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhcm91c2VsU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgb25DbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gaW5kZXggPCB0aGlzLmFjdGl2ZSA/ICdwcmV2JyA6ICduZXh0JztcbiAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgZGlyZWN0aW9uLCBhY3RpdmVJdGVtSW5kZXg6IGluZGV4IH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYXJvdXNlbFN0YXRlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmNhcm91c2VsSW5kZXhTdWJzY3JpcHRpb24gPSB0aGlzLmNhcm91c2VsU2VydmljZS5jYXJvdXNlbEluZGV4JC5zdWJzY3JpYmUoKG5leHRJbmRleCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5jYXJvdXNlbFN0YXRlPy5zdGF0ZT8uaXRlbXM/Lm1hcChpdGVtID0+IGl0ZW0uaW5kZXgpID8/IFtdO1xuICAgICAgICBpZiAoJ2FjdGl2ZScgaW4gbmV4dEluZGV4KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmUgPSBuZXh0SW5kZXguYWN0aXZlID8/IDA7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhcm91c2VsSW5kZXhTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtaW5kaWNhdG9yc1wiPlxuICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtOyBsZXQgaSA9ICRpbmRleCkge1xuICAgIDxidXR0b25cbiAgICAgIFthdHRyLmRhdGEtY29yZXVpLXRhcmdldF09XCJpXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaSlcIlxuICAgICAgW2NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmUgPT09IGkgfVwiXG4gICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlID09PSBpXCI+XG4gICAgPC9idXR0b24+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,47 +0,0 @@
1
- import { Component, ContentChildren, HostBinding } from '@angular/core';
2
- import { fadeAnimation, slideAnimation } from '../carousel.animation';
3
- import { CarouselItemComponent } from '../carousel-item/carousel-item.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../carousel-state";
6
- export class CarouselInnerComponent {
7
- constructor(carouselState) {
8
- this.carouselState = carouselState;
9
- this.carouselInnerClass = true;
10
- this.slide = { left: true };
11
- this.transition = 'slide';
12
- }
13
- ngAfterContentInit() {
14
- this.setItems();
15
- }
16
- ngAfterContentChecked() {
17
- this.setItems();
18
- const state = this.carouselState?.state;
19
- const nextIndex = state?.activeItemIndex;
20
- const nextDirection = state?.direction;
21
- if (this.activeIndex !== nextIndex) {
22
- this.animate = state?.animate;
23
- this.slide = { left: nextDirection === 'next' };
24
- this.activeIndex = state?.activeItemIndex;
25
- this.transition = state?.transition ?? 'slide';
26
- }
27
- }
28
- setItems() {
29
- if (this.prevContentItems !== this.contentItems) {
30
- this.prevContentItems = this.contentItems;
31
- this.carouselState.setItems(this.contentItems);
32
- }
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselInnerComponent, deps: [{ token: i1.CarouselState }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: CarouselInnerComponent, isStandalone: true, selector: "c-carousel-inner", host: { properties: { "class.carousel-inner": "this.carouselInnerClass" } }, queries: [{ propertyName: "contentItems", predicate: CarouselItemComponent }], ngImport: i0, template: "<div [@slideAnimation]=\"slide\" [@.disabled]=\"!animate\">\n <ng-content />\n</div>\n<!--todo-->\n<!--<div [@fadeAnimation]=\"slide\" [@.disabled]=\"!animate\" >-->\n<!-- <ng-content />-->\n<!--</div>-->\n", styles: [":host{display:block}\n"], animations: [slideAnimation, fadeAnimation] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselInnerComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'c-carousel-inner', animations: [slideAnimation, fadeAnimation], standalone: true, template: "<div [@slideAnimation]=\"slide\" [@.disabled]=\"!animate\">\n <ng-content />\n</div>\n<!--todo-->\n<!--<div [@fadeAnimation]=\"slide\" [@.disabled]=\"!animate\" >-->\n<!-- <ng-content />-->\n<!--</div>-->\n", styles: [":host{display:block}\n"] }]
40
- }], ctorParameters: () => [{ type: i1.CarouselState }], propDecorators: { carouselInnerClass: [{
41
- type: HostBinding,
42
- args: ['class.carousel-inner']
43
- }], contentItems: [{
44
- type: ContentChildren,
45
- args: [CarouselItemComponent]
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaW5uZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC1pbm5lci9jYXJvdXNlbC1pbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWlubmVyL2Nhcm91c2VsLWlubmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFVakYsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUVYLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUcvRCxVQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFHLE9BQU8sQ0FBQztJQU44QixDQUFDO0lBVXBELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLGVBQWUsQ0FBQztRQUN6QyxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQUUsU0FBUyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsZUFBZSxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLFVBQVUsSUFBSSxPQUFPLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzsrR0FqQ1Usc0JBQXNCO21HQUF0QixzQkFBc0Isc0xBUWhCLHFCQUFxQiw2QkM1QnhDLGtOQU9BLGtERFVjLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQzs7NEZBR2hDLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQy9CLElBQUk7a0ZBS3FCLGtCQUFrQjtzQkFBdEQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBS2EsWUFBWTtzQkFBM0QsZUFBZTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdEJpbmRpbmcsXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZmFkZUFuaW1hdGlvbiwgc2xpZGVBbmltYXRpb24gfSBmcm9tICcuLi9jYXJvdXNlbC5hbmltYXRpb24nO1xuaW1wb3J0IHsgQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJvdXNlbFN0YXRlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhcm91c2VsLWlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLWlubmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwtaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW3NsaWRlQW5pbWF0aW9uLCBmYWRlQW5pbWF0aW9uXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbElubmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Fyb3VzZWxTdGF0ZTogQ2Fyb3VzZWxTdGF0ZSkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNhcm91c2VsLWlubmVyJykgY2Fyb3VzZWxJbm5lckNsYXNzID0gdHJ1ZTtcbiAgYWN0aXZlSW5kZXg/OiBudW1iZXI7XG4gIGFuaW1hdGU/OiBib29sZWFuO1xuICBzbGlkZSA9IHsgbGVmdDogdHJ1ZSB9O1xuICB0cmFuc2l0aW9uID0gJ3NsaWRlJztcbiAgQENvbnRlbnRDaGlsZHJlbihDYXJvdXNlbEl0ZW1Db21wb25lbnQpIHByaXZhdGUgY29udGVudEl0ZW1zITogUXVlcnlMaXN0PENhcm91c2VsSXRlbUNvbXBvbmVudD47XG4gIHByaXZhdGUgcHJldkNvbnRlbnRJdGVtcyE6IFF1ZXJ5TGlzdDxDYXJvdXNlbEl0ZW1Db21wb25lbnQ+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEl0ZW1zKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRJdGVtcygpO1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jYXJvdXNlbFN0YXRlPy5zdGF0ZTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBzdGF0ZT8uYWN0aXZlSXRlbUluZGV4O1xuICAgIGNvbnN0IG5leHREaXJlY3Rpb24gPSBzdGF0ZT8uZGlyZWN0aW9uO1xuICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICE9PSBuZXh0SW5kZXgpIHtcbiAgICAgIHRoaXMuYW5pbWF0ZSA9IHN0YXRlPy5hbmltYXRlO1xuICAgICAgdGhpcy5zbGlkZSA9IHsgbGVmdDogbmV4dERpcmVjdGlvbiA9PT0gJ25leHQnIH07XG4gICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gc3RhdGU/LmFjdGl2ZUl0ZW1JbmRleDtcbiAgICAgIHRoaXMudHJhbnNpdGlvbiA9IHN0YXRlPy50cmFuc2l0aW9uID8/ICdzbGlkZSc7XG4gICAgfVxuICB9XG5cbiAgc2V0SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJldkNvbnRlbnRJdGVtcyAhPT0gdGhpcy5jb250ZW50SXRlbXMpIHtcbiAgICAgIHRoaXMucHJldkNvbnRlbnRJdGVtcyA9IHRoaXMuY29udGVudEl0ZW1zO1xuICAgICAgdGhpcy5jYXJvdXNlbFN0YXRlLnNldEl0ZW1zKHRoaXMuY29udGVudEl0ZW1zKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW0BzbGlkZUFuaW1hdGlvbl09XCJzbGlkZVwiIFtALmRpc2FibGVkXT1cIiFhbmltYXRlXCI+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbjwhLS10b2RvLS0+XG48IS0tPGRpdiBbQGZhZGVBbmltYXRpb25dPVwic2xpZGVcIiBbQC5kaXNhYmxlZF09XCIhYW5pbWF0ZVwiID4tLT5cbjwhLS0gIDxuZy1jb250ZW50IC8+LS0+XG48IS0tPC9kaXY+LS0+XG4iXX0=
@@ -1,67 +0,0 @@
1
- import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../carousel.service";
4
- export class CarouselItemComponent {
5
- /**
6
- * @ignore
7
- */
8
- set active(value) {
9
- this._active = value;
10
- this.changeDetectorRef.markForCheck();
11
- }
12
- get active() {
13
- return this._active;
14
- }
15
- get hostClasses() {
16
- return {
17
- 'carousel-item': true,
18
- active: this.active
19
- };
20
- }
21
- constructor(carouselService, changeDetectorRef) {
22
- this.carouselService = carouselService;
23
- this.changeDetectorRef = changeDetectorRef;
24
- this._active = false;
25
- /**
26
- * Time delay before cycling to next item. If -1, uses carousel interval value.
27
- * @type number
28
- * @default -1
29
- */
30
- this.interval = -1;
31
- }
32
- ngOnDestroy() {
33
- this.carouselStateSubscribe(false);
34
- }
35
- ngAfterViewInit() {
36
- setTimeout(() => {
37
- this.carouselStateSubscribe();
38
- });
39
- }
40
- carouselStateSubscribe(subscribe = true) {
41
- if (subscribe) {
42
- this.carouselIndexSubscription = this.carouselService.carouselIndex$.subscribe((nextIndex) => {
43
- if ('active' in nextIndex) {
44
- this.active = nextIndex.active === this.index;
45
- }
46
- });
47
- }
48
- else {
49
- this.carouselIndexSubscription?.unsubscribe();
50
- }
51
- }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselItemComponent, deps: [{ token: i1.CarouselService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: CarouselItemComponent, isStandalone: true, selector: "c-carousel-item", inputs: { active: ["active", "active", booleanAttribute], interval: "interval" }, host: { properties: { "class": "this.hostClasses" }, classAttribute: "carousel-item" }, ngImport: i0, template: "@if (active) {\n <ng-content />\n}\n", styles: [":host{display:block}\n"] }); }
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselItemComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'c-carousel-item', standalone: true, host: { class: 'carousel-item' }, template: "@if (active) {\n <ng-content />\n}\n", styles: [":host{display:block}\n"] }]
58
- }], ctorParameters: () => [{ type: i1.CarouselService }, { type: i0.ChangeDetectorRef }], propDecorators: { active: [{
59
- type: Input,
60
- args: [{ transform: booleanAttribute }]
61
- }], interval: [{
62
- type: Input
63
- }], hostClasses: [{
64
- type: HostBinding,
65
- args: ['class']
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZ0JBQWdCLEVBRWhCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDOzs7QUFZdkIsTUFBTSxPQUFPLHFCQUFxQjtJQUloQzs7T0FFRztJQUNILElBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBV0QsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQ1UsZUFBZ0MsRUFDaEMsaUJBQW9DO1FBRHBDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBbkJ0QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhCOzs7O1dBSUc7UUFDTSxhQUFRLEdBQVcsQ0FBQyxDQUFDLENBQUM7SUFhNUIsQ0FBQztJQUVKLFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsWUFBcUIsSUFBSTtRQUN0RCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUMzRixJQUFJLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDOytHQTNEVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwRkFPWixnQkFBZ0IsMklDM0J0Qyx1Q0FHQTs7NEZEaUJhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFFBQ1YsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO29IQVU1QixNQUFNO3NCQURULEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBaUI3QixRQUFRO3NCQUFoQixLQUFLO2dCQUdGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtY2Fyb3VzZWwtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7IGNsYXNzOiAnY2Fyb3VzZWwtaXRlbScgfVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBpbmRleD86IG51bWJlcjtcbiAgcHJpdmF0ZSBjYXJvdXNlbEluZGV4U3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IGFjdGl2ZSh2YWx1ZSkge1xuICAgIHRoaXMuX2FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XG4gIH1cblxuICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGltZSBkZWxheSBiZWZvcmUgY3ljbGluZyB0byBuZXh0IGl0ZW0uIElmIC0xLCB1c2VzIGNhcm91c2VsIGludGVydmFsIHZhbHVlLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgLTFcbiAgICovXG4gIEBJbnB1dCgpIGludGVydmFsOiBudW1iZXIgPSAtMTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjYXJvdXNlbC1pdGVtJzogdHJ1ZSxcbiAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmVcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlU3Vic2NyaWJlKGZhbHNlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXJvdXNlbFN0YXRlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmNhcm91c2VsSW5kZXhTdWJzY3JpcHRpb24gPSB0aGlzLmNhcm91c2VsU2VydmljZS5jYXJvdXNlbEluZGV4JC5zdWJzY3JpYmUoKG5leHRJbmRleCkgPT4ge1xuICAgICAgICBpZiAoJ2FjdGl2ZScgaW4gbmV4dEluZGV4KSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmUgPSBuZXh0SW5kZXguYWN0aXZlID09PSB0aGlzLmluZGV4O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXJvdXNlbEluZGV4U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChhY3RpdmUpIHtcbiAgPG5nLWNvbnRlbnQgLz5cbn1cbiJdfQ==
@@ -1,77 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./carousel.service";
4
- export class CarouselState {
5
- constructor(carouselService) {
6
- this.carouselService = carouselService;
7
- this._state = {
8
- activeItemIndex: -1,
9
- animate: true,
10
- items: [],
11
- direction: 'next',
12
- transition: 'slide'
13
- };
14
- }
15
- get state() {
16
- return this._state;
17
- }
18
- set state(state) {
19
- const prevState = { ...this._state };
20
- const nextState = { ...this._state, ...state };
21
- this._state = nextState;
22
- if (prevState.activeItemIndex !== nextState.activeItemIndex) {
23
- const activeItemIndex = this.state.activeItemIndex || 0;
24
- const itemInterval = this.state.items && this.state.items[activeItemIndex]?.interval || -1;
25
- this.carouselService.setIndex({
26
- active: nextState.activeItemIndex,
27
- interval: itemInterval,
28
- lastItemIndex: (nextState.items?.length ?? 0) - 1
29
- });
30
- }
31
- }
32
- setItems(newItems) {
33
- if (newItems.length) {
34
- const itemsArray = newItems.toArray();
35
- itemsArray.forEach((item, i) => {
36
- item.index = i;
37
- });
38
- this.state = {
39
- items: itemsArray
40
- };
41
- }
42
- else {
43
- this.reset();
44
- }
45
- }
46
- setNextIndex(nextIndex) {
47
- this.carouselService.setIndex(nextIndex);
48
- }
49
- direction(direction = 'next') {
50
- this.state = { direction };
51
- const { activeItemIndex = -1, items } = this.state;
52
- const itemsCount = items?.length ?? 0;
53
- if (itemsCount > 0) {
54
- return direction === 'next' ?
55
- (activeItemIndex === itemsCount - 1 ? 0 : activeItemIndex + 1) :
56
- (activeItemIndex === 0 ? itemsCount - 1 : activeItemIndex - 1);
57
- }
58
- else {
59
- return 0;
60
- }
61
- }
62
- reset() {
63
- this.state = {
64
- activeItemIndex: -1,
65
- animate: true,
66
- items: [],
67
- direction: 'next',
68
- transition: 'slide'
69
- };
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselState, deps: [{ token: i1.CarouselService }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselState }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CarouselState, decorators: [{
75
- type: Injectable
76
- }], ctorParameters: () => [{ type: i1.CarouselService }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sYUFBYTtJQVN4QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFSNUMsV0FBTSxHQUFtQjtZQUMvQixlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsTUFBTTtZQUNqQixVQUFVLEVBQUUsT0FBTztTQUNwQixDQUFDO0lBRXFELENBQUM7SUFFeEQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLO1FBQ2IsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksU0FBUyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1lBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDNUIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxlQUFlO2dCQUNqQyxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNsRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFhO1FBQ3BCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBMkIsRUFBRSxDQUFTLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNYLEtBQUssRUFBRSxVQUFVO2FBQ2xCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUE2QixNQUFNO1FBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMzQixNQUFNLEVBQUUsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsT0FBTyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQzNCLENBQUMsZUFBZSxLQUFLLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNuQixPQUFPLEVBQUUsSUFBSTtZQUNiLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLE1BQU07WUFDakIsVUFBVSxFQUFFLE9BQU87U0FDcEIsQ0FBQztJQUNKLENBQUM7K0dBckVVLGFBQWE7bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDYXJvdXNlbFN0YXRlIH0gZnJvbSAnLi9jYXJvdXNlbC1zdGF0ZS50eXBlJztcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4vY2Fyb3VzZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDYXJvdXNlbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxTdGF0ZSB7XG4gIHByaXZhdGUgX3N0YXRlOiBJQ2Fyb3VzZWxTdGF0ZSA9IHtcbiAgICBhY3RpdmVJdGVtSW5kZXg6IC0xLFxuICAgIGFuaW1hdGU6IHRydWUsXG4gICAgaXRlbXM6IFtdLFxuICAgIGRpcmVjdGlvbjogJ25leHQnLFxuICAgIHRyYW5zaXRpb246ICdzbGlkZSdcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcm91c2VsU2VydmljZTogQ2Fyb3VzZWxTZXJ2aWNlKSB7fVxuXG4gIGdldCBzdGF0ZSgpOiBJQ2Fyb3VzZWxTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICB9XG5cbiAgc2V0IHN0YXRlKHN0YXRlKSB7XG4gICAgY29uc3QgcHJldlN0YXRlID0geyAuLi50aGlzLl9zdGF0ZSB9O1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IHsgLi4udGhpcy5fc3RhdGUsIC4uLnN0YXRlIH07XG4gICAgdGhpcy5fc3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgaWYgKHByZXZTdGF0ZS5hY3RpdmVJdGVtSW5kZXggIT09IG5leHRTdGF0ZS5hY3RpdmVJdGVtSW5kZXgpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuc3RhdGUuYWN0aXZlSXRlbUluZGV4IHx8IDA7XG4gICAgICBjb25zdCBpdGVtSW50ZXJ2YWwgPSB0aGlzLnN0YXRlLml0ZW1zICYmIHRoaXMuc3RhdGUuaXRlbXNbYWN0aXZlSXRlbUluZGV4XT8uaW50ZXJ2YWwgfHwgLTE7XG4gICAgICB0aGlzLmNhcm91c2VsU2VydmljZS5zZXRJbmRleCh7XG4gICAgICAgIGFjdGl2ZTogbmV4dFN0YXRlLmFjdGl2ZUl0ZW1JbmRleCxcbiAgICAgICAgaW50ZXJ2YWw6IGl0ZW1JbnRlcnZhbCxcbiAgICAgICAgbGFzdEl0ZW1JbmRleDogKG5leHRTdGF0ZS5pdGVtcz8ubGVuZ3RoID8/IDApIC0gMVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0SXRlbXMobmV3SXRlbXM6IGFueSk6IHZvaWQge1xuICAgIGlmIChuZXdJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGl0ZW1zQXJyYXkgPSBuZXdJdGVtcy50b0FycmF5KCk7XG4gICAgICBpdGVtc0FycmF5LmZvckVhY2goKGl0ZW06IENhcm91c2VsSXRlbUNvbXBvbmVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGl0ZW0uaW5kZXggPSBpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICBpdGVtczogaXRlbXNBcnJheVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHNldE5leHRJbmRleChuZXh0SW5kZXg6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2Fyb3VzZWxTZXJ2aWNlLnNldEluZGV4KG5leHRJbmRleCk7XG4gIH1cblxuICBkaXJlY3Rpb24oZGlyZWN0aW9uOiAnbmV4dCcgfCAncHJldicgPSAnbmV4dCcpOiBudW1iZXIge1xuICAgIHRoaXMuc3RhdGUgPSB7IGRpcmVjdGlvbiB9O1xuICAgIGNvbnN0IHsgYWN0aXZlSXRlbUluZGV4ID0gLTEsIGl0ZW1zIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGl0ZW1zQ291bnQgPSBpdGVtcz8ubGVuZ3RoID8/IDA7XG4gICAgaWYgKGl0ZW1zQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnbmV4dCcgP1xuICAgICAgICAoYWN0aXZlSXRlbUluZGV4ID09PSBpdGVtc0NvdW50IC0gMSA/IDAgOiBhY3RpdmVJdGVtSW5kZXggKyAxKSA6XG4gICAgICAgIChhY3RpdmVJdGVtSW5kZXggPT09IDAgPyBpdGVtc0NvdW50IC0gMSA6IGFjdGl2ZUl0ZW1JbmRleCAtIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgYWN0aXZlSXRlbUluZGV4OiAtMSxcbiAgICAgIGFuaW1hdGU6IHRydWUsXG4gICAgICBpdGVtczogW10sXG4gICAgICBkaXJlY3Rpb246ICduZXh0JyxcbiAgICAgIHRyYW5zaXRpb246ICdzbGlkZSdcbiAgICB9O1xuICB9XG59XG4iXX0=