@mintplayer/ng-bootstrap 20.6.3 → 21.1.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 (267) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +41 -54
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +20 -38
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +8 -20
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  8. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +3 -3
  12. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
  14. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +32 -66
  16. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +11 -11
  18. package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +207 -138
  20. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +7 -9
  22. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +16 -19
  24. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +252 -368
  26. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +4 -4
  28. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  30. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +3 -3
  32. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +53 -49
  34. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +9 -37
  36. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +12 -11
  38. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
  40. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +12 -12
  42. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +59 -98
  44. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +9 -9
  46. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
  48. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +19 -18
  50. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +4 -4
  52. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
  54. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +3 -3
  56. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +14 -14
  58. package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +48 -90
  60. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -4
  62. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
  64. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
  66. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
  68. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  70. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +8 -9
  72. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
  74. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +11 -11
  76. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +26 -26
  78. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
  80. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +44 -45
  82. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +29 -23
  84. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +10 -30
  86. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +224 -285
  88. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +17 -30
  90. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
  92. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +64 -59
  94. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +8 -8
  96. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +61 -122
  98. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +4 -5
  100. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +19 -33
  102. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +10 -30
  104. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  105. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +80 -116
  106. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  107. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +44 -73
  108. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  109. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +16 -16
  110. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  111. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +21 -49
  112. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  113. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +43 -49
  114. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  115. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +208 -782
  116. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  117. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +43 -48
  118. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  119. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +85 -111
  120. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  121. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +48 -90
  122. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  123. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +88 -55
  124. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  125. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +24 -34
  126. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  127. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +16 -42
  128. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  129. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
  130. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  131. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +10 -34
  132. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  133. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
  134. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  135. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +79 -85
  136. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  137. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +20 -20
  138. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  139. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +61 -107
  140. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  141. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +9 -40
  142. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  143. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +24 -50
  144. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  145. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +53 -58
  146. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  147. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +56 -109
  148. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  149. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +21 -33
  150. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  151. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +27 -49
  152. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  153. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +8 -8
  154. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  155. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +31 -51
  156. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  157. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
  158. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  159. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
  160. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  161. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
  162. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  163. package/package.json +96 -96
  164. package/{accordion/index.d.ts → types/mintplayer-ng-bootstrap-accordion.d.ts} +11 -15
  165. package/{alert/index.d.ts → types/mintplayer-ng-bootstrap-alert.d.ts} +4 -9
  166. package/types/mintplayer-ng-bootstrap-badge.d.ts +12 -0
  167. package/types/mintplayer-ng-bootstrap-calendar.d.ts +25 -0
  168. package/types/mintplayer-ng-bootstrap-carousel.d.ts +73 -0
  169. package/{close/index.d.ts → types/mintplayer-ng-bootstrap-close.d.ts} +1 -2
  170. package/{code-snippet/index.d.ts → types/mintplayer-ng-bootstrap-code-snippet.d.ts} +4 -5
  171. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +170 -0
  172. package/{context-menu/index.d.ts → types/mintplayer-ng-bootstrap-context-menu.d.ts} +1 -1
  173. package/{datatable/index.d.ts → types/mintplayer-ng-bootstrap-datatable.d.ts} +11 -11
  174. package/types/mintplayer-ng-bootstrap-datepicker.d.ts +13 -0
  175. package/{dropdown/index.d.ts → types/mintplayer-ng-bootstrap-dropdown.d.ts} +17 -23
  176. package/{enhanced-paste/index.d.ts → types/mintplayer-ng-bootstrap-enhanced-paste.d.ts} +1 -3
  177. package/{file-upload/index.d.ts → types/mintplayer-ng-bootstrap-file-upload.d.ts} +1 -1
  178. package/{grid/index.d.ts → types/mintplayer-ng-bootstrap-grid.d.ts} +14 -26
  179. package/{let/index.d.ts → types/mintplayer-ng-bootstrap-let.d.ts} +0 -2
  180. package/{markdown/index.d.ts → types/mintplayer-ng-bootstrap-markdown.d.ts} +1 -5
  181. package/{modal/index.d.ts → types/mintplayer-ng-bootstrap-modal.d.ts} +4 -7
  182. package/{multiselect/index.d.ts → types/mintplayer-ng-bootstrap-multiselect.d.ts} +6 -6
  183. package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +11 -0
  184. package/types/mintplayer-ng-bootstrap-navbar.d.ts +148 -0
  185. package/{navigation-lock/index.d.ts → types/mintplayer-ng-bootstrap-navigation-lock.d.ts} +2 -4
  186. package/{offcanvas/index.d.ts → types/mintplayer-ng-bootstrap-offcanvas.d.ts} +12 -14
  187. package/{ordinal-number/index.d.ts → types/mintplayer-ng-bootstrap-ordinal-number.d.ts} +1 -2
  188. package/types/mintplayer-ng-bootstrap-pagination.d.ts +42 -0
  189. package/{placeholder/index.d.ts → types/mintplayer-ng-bootstrap-placeholder.d.ts} +3 -8
  190. package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +11 -0
  191. package/{popover/index.d.ts → types/mintplayer-ng-bootstrap-popover.d.ts} +15 -23
  192. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +43 -0
  193. package/{range/index.d.ts → types/mintplayer-ng-bootstrap-range.d.ts} +1 -2
  194. package/types/mintplayer-ng-bootstrap-rating.d.ts +17 -0
  195. package/{resizable/index.d.ts → types/mintplayer-ng-bootstrap-resizable.d.ts} +7 -11
  196. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +144 -0
  197. package/{scrollspy/index.d.ts → types/mintplayer-ng-bootstrap-scrollspy.d.ts} +14 -15
  198. package/{searchbox/index.d.ts → types/mintplayer-ng-bootstrap-searchbox.d.ts} +20 -27
  199. package/{select/index.d.ts → types/mintplayer-ng-bootstrap-select.d.ts} +14 -24
  200. package/{select2/index.d.ts → types/mintplayer-ng-bootstrap-select2.d.ts} +16 -14
  201. package/{shell/index.d.ts → types/mintplayer-ng-bootstrap-shell.d.ts} +6 -12
  202. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +36 -0
  203. package/types/mintplayer-ng-bootstrap-spinner.d.ts +14 -0
  204. package/types/mintplayer-ng-bootstrap-splitter.d.ts +76 -0
  205. package/{sticky-footer/index.d.ts → types/mintplayer-ng-bootstrap-sticky-footer.d.ts} +3 -3
  206. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +64 -0
  207. package/types/mintplayer-ng-bootstrap-table.d.ts +11 -0
  208. package/types/mintplayer-ng-bootstrap-timepicker.d.ts +26 -0
  209. package/{toast/index.d.ts → types/mintplayer-ng-bootstrap-toast.d.ts} +5 -10
  210. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +55 -0
  211. package/{tooltip/index.d.ts → types/mintplayer-ng-bootstrap-tooltip.d.ts} +5 -8
  212. package/{treeview/index.d.ts → types/mintplayer-ng-bootstrap-treeview.d.ts} +10 -15
  213. package/{trust-html/index.d.ts → types/mintplayer-ng-bootstrap-trust-html.d.ts} +0 -2
  214. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +25 -0
  215. package/badge/index.d.ts +0 -16
  216. package/calendar/index.d.ts +0 -33
  217. package/carousel/index.d.ts +0 -67
  218. package/color-picker/index.d.ts +0 -197
  219. package/datepicker/index.d.ts +0 -20
  220. package/navbar/index.d.ts +0 -154
  221. package/navbar-toggler/index.d.ts +0 -17
  222. package/pagination/index.d.ts +0 -56
  223. package/playlist-toggler/index.d.ts +0 -17
  224. package/progress-bar/index.d.ts +0 -46
  225. package/rating/index.d.ts +0 -23
  226. package/scheduler/index.d.ts +0 -232
  227. package/signature-pad/index.d.ts +0 -41
  228. package/spinner/index.d.ts +0 -22
  229. package/splitter/index.d.ts +0 -82
  230. package/tab-control/index.d.ts +0 -72
  231. package/table/index.d.ts +0 -18
  232. package/timepicker/index.d.ts +0 -33
  233. package/toggle-button/index.d.ts +0 -69
  234. package/typeahead/index.d.ts +0 -28
  235. /package/{async-host-binding/index.d.ts → types/mintplayer-ng-bootstrap-async-host-binding.d.ts} +0 -0
  236. /package/{breadcrumb/index.d.ts → types/mintplayer-ng-bootstrap-breadcrumb.d.ts} +0 -0
  237. /package/{button-group/index.d.ts → types/mintplayer-ng-bootstrap-button-group.d.ts} +0 -0
  238. /package/{button-type/index.d.ts → types/mintplayer-ng-bootstrap-button-type.d.ts} +0 -0
  239. /package/{calendar-month/index.d.ts → types/mintplayer-ng-bootstrap-calendar-month.d.ts} +0 -0
  240. /package/{card/index.d.ts → types/mintplayer-ng-bootstrap-card.d.ts} +0 -0
  241. /package/{container/index.d.ts → types/mintplayer-ng-bootstrap-container.d.ts} +0 -0
  242. /package/{copy/index.d.ts → types/mintplayer-ng-bootstrap-copy.d.ts} +0 -0
  243. /package/{dock/index.d.ts → types/mintplayer-ng-bootstrap-dock.d.ts} +0 -0
  244. /package/{dropdown-divider/index.d.ts → types/mintplayer-ng-bootstrap-dropdown-divider.d.ts} +0 -0
  245. /package/{dropdown-menu/index.d.ts → types/mintplayer-ng-bootstrap-dropdown-menu.d.ts} +0 -0
  246. /package/{enum/index.d.ts → types/mintplayer-ng-bootstrap-enum.d.ts} +0 -0
  247. /package/{floating-labels/index.d.ts → types/mintplayer-ng-bootstrap-floating-labels.d.ts} +0 -0
  248. /package/{font-color/index.d.ts → types/mintplayer-ng-bootstrap-font-color.d.ts} +0 -0
  249. /package/{for/index.d.ts → types/mintplayer-ng-bootstrap-for.d.ts} +0 -0
  250. /package/{form/index.d.ts → types/mintplayer-ng-bootstrap-form.d.ts} +0 -0
  251. /package/{has-id/index.d.ts → types/mintplayer-ng-bootstrap-has-id.d.ts} +0 -0
  252. /package/{has-overlay/index.d.ts → types/mintplayer-ng-bootstrap-has-overlay.d.ts} +0 -0
  253. /package/{has-property/index.d.ts → types/mintplayer-ng-bootstrap-has-property.d.ts} +0 -0
  254. /package/{in-list/index.d.ts → types/mintplayer-ng-bootstrap-in-list.d.ts} +0 -0
  255. /package/{input-group/index.d.ts → types/mintplayer-ng-bootstrap-input-group.d.ts} +0 -0
  256. /package/{instance-of/index.d.ts → types/mintplayer-ng-bootstrap-instance-of.d.ts} +0 -0
  257. /package/{linify/index.d.ts → types/mintplayer-ng-bootstrap-linify.d.ts} +0 -0
  258. /package/{list-group/index.d.ts → types/mintplayer-ng-bootstrap-list-group.d.ts} +0 -0
  259. /package/{marquee/index.d.ts → types/mintplayer-ng-bootstrap-marquee.d.ts} +0 -0
  260. /package/{no-noscript/index.d.ts → types/mintplayer-ng-bootstrap-no-noscript.d.ts} +0 -0
  261. /package/{parallax/index.d.ts → types/mintplayer-ng-bootstrap-parallax.d.ts} +0 -0
  262. /package/{slugify/index.d.ts → types/mintplayer-ng-bootstrap-slugify.d.ts} +0 -0
  263. /package/{split-string/index.d.ts → types/mintplayer-ng-bootstrap-split-string.d.ts} +0 -0
  264. /package/{uc-first/index.d.ts → types/mintplayer-ng-bootstrap-uc-first.d.ts} +0 -0
  265. /package/{user-agent/index.d.ts → types/mintplayer-ng-bootstrap-user-agent.d.ts} +0 -0
  266. /package/{word-count/index.d.ts → types/mintplayer-ng-bootstrap-word-count.d.ts} +0 -0
  267. /package/{index.d.ts → types/mintplayer-ng-bootstrap.d.ts} +0 -0
@@ -1,121 +1,63 @@
1
- import * as i1 from '@angular/common';
2
- import { isPlatformServer, AsyncPipe, NgTemplateOutlet } from '@angular/common';
1
+ import { isPlatformServer, NgTemplateOutlet } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { Directive, PLATFORM_ID, HostListener, Input, HostBinding, forwardRef, ContentChildren, ViewChild, Inject, Component, NgModule } from '@angular/core';
3
+ import { inject, TemplateRef, ElementRef, Directive, PLATFORM_ID, DestroyRef, signal, input, output, computed, effect, HostListener, HostBinding, forwardRef, ContentChildren, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
5
4
  import { FadeInOutAnimation } from '@mintplayer/ng-animations';
6
5
  import { Color } from '@mintplayer/ng-bootstrap';
7
- import { BehaviorSubject, map } from 'rxjs';
8
- import * as i2 from '@mintplayer/ng-swiper/swiper';
9
- import { BsSwiperModule } from '@mintplayer/ng-swiper/swiper';
10
- import * as i3 from '@mintplayer/ng-bootstrap/no-noscript';
6
+ import { BsSwipeContainerDirective, BsSwipeDirective } from '@mintplayer/ng-swiper/swiper';
11
7
  import { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';
12
8
 
13
9
  class BsCarouselImageDirective {
14
- constructor(templateRef, carousel, element) {
15
- this.templateRef = templateRef;
16
- this.element = element;
10
+ constructor() {
11
+ this.templateRef = inject((TemplateRef));
12
+ this.carousel = inject(BsCarouselComponent);
13
+ this.element = inject((ElementRef));
17
14
  this.isFirst = false;
18
15
  this.itemTemplate = this.templateRef;
19
- this.id = carousel.imageCounter++;
16
+ this.id = this.carousel.imageCounter++;
20
17
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselImageDirective, deps: [{ token: i0.TemplateRef }, { token: BsCarouselComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: BsCarouselImageDirective, isStandalone: false, selector: "*[bsCarouselImage]", ngImport: i0 }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsCarouselImageDirective, isStandalone: true, selector: "*[bsCarouselImage]", ngImport: i0 }); }
23
20
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
25
22
  type: Directive,
26
23
  args: [{
27
24
  selector: '*[bsCarouselImage]',
28
- standalone: false,
25
+ standalone: true,
29
26
  }]
30
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: BsCarouselComponent }, { type: i0.ElementRef }] });
27
+ }], ctorParameters: () => [] });
31
28
 
32
29
  class BsCarouselComponent {
33
- constructor(platformId, cdRef) {
34
- this.cdRef = cdRef;
35
- this.colors = Color;
36
- this.currentImageIndex = 0;
37
- this.images$ = new BehaviorSubject(null);
38
- this.indicators = false;
39
- this.keyboardEvents = true;
40
- this._orientation = 'horizontal';
41
- //#region Animation
42
- this.animationsDisabled = false;
43
- this._animation = 'slide';
44
- this.imageCounter = 1;
45
- this.isServerSide = isPlatformServer(platformId);
46
- this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));
47
- this.firstImageTemplate$ = this.images$.pipe(map((images) => {
48
- if (!images)
49
- return null;
50
- if (images.length === 0)
51
- return null;
52
- const img = images.get(0);
53
- if (!img)
54
- return null;
55
- return img.itemTemplate;
56
- }));
57
- this.lastImageTemplate$ = this.images$.pipe(map((images) => {
58
- if (!images)
59
- return null;
60
- if (images.length === 0)
61
- return null;
62
- const img = images.get(images.length - 1);
63
- if (!img)
64
- return null;
65
- return img.itemTemplate;
66
- }));
67
- if (!isPlatformServer(platformId)) {
68
- this.resizeObserver = new ResizeObserver((entries) => {
69
- this.cdRef.detectChanges();
70
- });
71
- }
72
- }
73
- set orientation(value) {
74
- this._orientation = value ?? 'horizontal';
75
- this.cdRef.detectChanges();
76
- }
77
- get orientation() {
78
- return this._orientation;
79
- }
80
- set images(value) {
81
- this.images$.next(value);
30
+ set imagesQuery(value) {
31
+ this.images.set(value);
82
32
  value.forEach((item, index) => item.isFirst = (index === 0));
83
33
  }
84
- set animation(value) {
85
- this.animationsDisabled = true;
86
- this._animation = value;
87
- setTimeout(() => this.animationsDisabled = false, 20);
88
- setTimeout(() => this.cdRef.detectChanges(), 50);
89
- }
90
- get animation() {
91
- return this._animation;
92
- }
93
- //#endregion
94
- onKeyPress(ev) {
95
- if (this.keyboardEvents) {
34
+ onKeyPress(event) {
35
+ const ev = event;
36
+ if (this.keyboardEvents()) {
96
37
  let handled = false;
38
+ const orientation = this.orientation();
97
39
  switch (ev.key) {
98
40
  case 'ArrowLeft':
99
- if (this.orientation === 'horizontal') {
100
- this.previousImage();
41
+ if (orientation === 'horizontal') {
42
+ this.previous();
101
43
  handled = true;
102
44
  }
103
45
  break;
104
46
  case 'ArrowRight':
105
- if (this.orientation === 'horizontal') {
106
- this.nextImage();
47
+ if (orientation === 'horizontal') {
48
+ this.next();
107
49
  handled = true;
108
50
  }
109
51
  break;
110
52
  case 'ArrowUp':
111
- if (this.orientation === 'vertical') {
112
- this.previousImage();
53
+ if (orientation === 'vertical') {
54
+ this.previous();
113
55
  handled = true;
114
56
  }
115
57
  break;
116
58
  case 'ArrowDown':
117
- if (this.orientation === 'vertical') {
118
- this.nextImage();
59
+ if (orientation === 'vertical') {
60
+ this.next();
119
61
  handled = true;
120
62
  }
121
63
  break;
@@ -125,72 +67,207 @@ class BsCarouselComponent {
125
67
  }
126
68
  }
127
69
  }
128
- previousImage() {
129
- switch (this.animation) {
70
+ constructor() {
71
+ this.platformId = inject(PLATFORM_ID);
72
+ this.destroyRef = inject(DestroyRef);
73
+ this.colors = Color;
74
+ this.isServerSide = isPlatformServer(this.platformId);
75
+ this.currentImageIndex = signal(0, ...(ngDevMode ? [{ debugName: "currentImageIndex" }] : []));
76
+ this.images = signal(null, ...(ngDevMode ? [{ debugName: "images" }] : []));
77
+ // Inputs
78
+ this.indicators = input(false, ...(ngDevMode ? [{ debugName: "indicators" }] : []));
79
+ this.keyboardEvents = input(true, ...(ngDevMode ? [{ debugName: "keyboardEvents" }] : []));
80
+ this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
81
+ this.animation = input('slide', ...(ngDevMode ? [{ debugName: "animation" }] : []));
82
+ this.interval = input(null, ...(ngDevMode ? [{ debugName: "interval" }] : []));
83
+ this.wrap = input(true, ...(ngDevMode ? [{ debugName: "wrap" }] : []));
84
+ // Outputs
85
+ this.slideChange = output();
86
+ this.animationStart = output();
87
+ this.animationEnd = output();
88
+ // Computed signals
89
+ this.imageCount = computed(() => this.images()?.length ?? 0, ...(ngDevMode ? [{ debugName: "imageCount" }] : []));
90
+ this.firstImageTemplate = computed(() => {
91
+ const images = this.images();
92
+ if (!images)
93
+ return null;
94
+ if (images.length === 0)
95
+ return null;
96
+ const img = images.get(0);
97
+ if (!img)
98
+ return null;
99
+ return img.itemTemplate;
100
+ }, ...(ngDevMode ? [{ debugName: "firstImageTemplate" }] : []));
101
+ this.lastImageTemplate = computed(() => {
102
+ const images = this.images();
103
+ if (!images)
104
+ return null;
105
+ if (images.length === 0)
106
+ return null;
107
+ const img = images.get(images.length - 1);
108
+ if (!img)
109
+ return null;
110
+ return img.itemTemplate;
111
+ }, ...(ngDevMode ? [{ debugName: "lastImageTemplate" }] : []));
112
+ this.animationsDisabled = false;
113
+ this.imageCounter = 1;
114
+ // Setup auto-advance interval effect
115
+ effect(() => {
116
+ const intervalTime = this.interval();
117
+ this.clearAutoAdvance();
118
+ if (intervalTime && intervalTime > 0) {
119
+ this.intervalId = setInterval(() => {
120
+ this.next();
121
+ }, intervalTime);
122
+ }
123
+ });
124
+ // Emit slideChange when currentImageIndex changes
125
+ effect(() => {
126
+ const index = this.currentImageIndex();
127
+ this.slideChange.emit(index);
128
+ });
129
+ // Cleanup on destroy
130
+ this.destroyRef.onDestroy(() => {
131
+ this.clearAutoAdvance();
132
+ this.resizeObserver?.disconnect();
133
+ });
134
+ }
135
+ clearAutoAdvance() {
136
+ if (this.intervalId) {
137
+ clearInterval(this.intervalId);
138
+ this.intervalId = undefined;
139
+ }
140
+ }
141
+ previous() {
142
+ const animation = this.animation();
143
+ const imageCount = this.imageCount();
144
+ const wrap = this.wrap();
145
+ switch (animation) {
130
146
  case 'fade':
131
- if (this.currentImageIndex > 0) {
132
- this.currentImageIndex--;
147
+ case 'none': {
148
+ const currentIndex = this.currentImageIndex();
149
+ if (currentIndex > 0) {
150
+ if (animation === 'none') {
151
+ this.animationStart.emit();
152
+ }
153
+ this.currentImageIndex.set(currentIndex - 1);
154
+ if (animation === 'none') {
155
+ this.animationEnd.emit();
156
+ }
133
157
  }
134
- else {
135
- this.currentImageIndex = this.images$.value.length - 1;
158
+ else if (wrap) {
159
+ if (animation === 'none') {
160
+ this.animationStart.emit();
161
+ }
162
+ this.currentImageIndex.set(imageCount - 1);
163
+ if (animation === 'none') {
164
+ this.animationEnd.emit();
165
+ }
136
166
  }
137
167
  break;
168
+ }
138
169
  case 'slide':
139
170
  this.swipeContainer.previous();
140
171
  break;
141
172
  }
142
173
  }
143
- nextImage() {
144
- switch (this.animation) {
174
+ next() {
175
+ const animation = this.animation();
176
+ const imageCount = this.imageCount();
177
+ const wrap = this.wrap();
178
+ switch (animation) {
145
179
  case 'fade':
146
- if (this.currentImageIndex < this.images$.value.length - 1) {
147
- this.currentImageIndex++;
180
+ case 'none': {
181
+ const currentIndex = this.currentImageIndex();
182
+ if (currentIndex < imageCount - 1) {
183
+ if (animation === 'none') {
184
+ this.animationStart.emit();
185
+ }
186
+ this.currentImageIndex.set(currentIndex + 1);
187
+ if (animation === 'none') {
188
+ this.animationEnd.emit();
189
+ }
148
190
  }
149
- else {
150
- this.currentImageIndex = 0;
191
+ else if (wrap) {
192
+ if (animation === 'none') {
193
+ this.animationStart.emit();
194
+ }
195
+ this.currentImageIndex.set(0);
196
+ if (animation === 'none') {
197
+ this.animationEnd.emit();
198
+ }
151
199
  }
152
200
  break;
201
+ }
153
202
  case 'slide':
154
203
  this.swipeContainer.next();
155
204
  break;
156
205
  }
157
206
  }
207
+ goto(index) {
208
+ const animation = this.animation();
209
+ switch (animation) {
210
+ case 'fade':
211
+ case 'none':
212
+ if (animation === 'none') {
213
+ this.animationStart.emit();
214
+ }
215
+ this.currentImageIndex.set(index);
216
+ if (animation === 'none') {
217
+ this.animationEnd.emit();
218
+ }
219
+ break;
220
+ case 'slide':
221
+ this.swipeContainer.goto(index);
222
+ break;
223
+ }
224
+ }
158
225
  ngAfterViewInit() {
159
- this.resizeObserver?.observe(this.innerElement.nativeElement);
226
+ if (!this.isServerSide) {
227
+ this.resizeObserver = new ResizeObserver(() => {
228
+ // Signals automatically trigger change detection in zoneless mode
229
+ // The resize will be picked up by the observe-size directive
230
+ });
231
+ this.resizeObserver.observe(this.innerElement.nativeElement);
232
+ }
160
233
  }
161
234
  ngOnDestroy() {
162
- this.resizeObserver?.unobserve(this.innerElement.nativeElement);
235
+ this.resizeObserver?.unobserve(this.innerElement?.nativeElement);
163
236
  this.resizeObserver?.disconnect();
237
+ this.clearAutoAdvance();
238
+ }
239
+ onContainerAnimationStart() {
240
+ this.animationStart.emit();
241
+ }
242
+ onContainerAnimationEnd() {
243
+ this.animationEnd.emit();
164
244
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.13", type: BsCarouselComponent, isStandalone: false, selector: "bs-carousel", inputs: { indicators: "indicators", keyboardEvents: "keyboardEvents", orientation: "orientation", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "onKeyPress($event)", "document:keydown.ArrowUp": "onKeyPress($event)", "document:keydown.ArrowDown": "onKeyPress($event)" }, properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: i0.forwardRef(() => BsCarouselImageDirective) }], viewQueries: [{ propertyName: "innerElement", first: true, predicate: ["innerElement"], descendants: true }, { propertyName: "swipeContainer", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\" [class.carousel-vertical]=\"orientation === 'vertical'\">\n <div class=\"carousel-inner d-grid\">\n @let images = images$ | async;\n @if (imageCount$ | async; as imageCount) {\n @for (image of images; track image.id; let i = $index) {\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\"\n [class.flex-column]=\"orientation === 'vertical'\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\"\n [class.carousel-indicators-vertical]=\"orientation === 'vertical'\">\n @for (image of images; track image.id; let j = $index) {\n <label [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n }\n </div>\n }\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </div>\n </div>\n} @else {\n @switch (animation) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [class.carousel-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"swipeContainer?.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"orientation === 'vertical' ? (swipeContainer?.maxSlideHeight$ | async) : null\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"swipeContainer?.goto(i)\"\n [class.active]=\"(swipeContainer?.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(swipeContainer?.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden pe-none\" [class.text-nowrap]=\"orientation === 'horizontal'\"\n [class.carousel-inner-vertical]=\"orientation === 'vertical'\" #innerElement\n [style.height.px]=\"swipeContainer?.currentSlideHeight$ | async\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\"\n [orientation]=\"orientation\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n @for (image of (images$ | async); track image.id) {\n <div class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n }\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('fade') {\n <div class=\"carousel fade mx-auto\" [class.carousel-vertical]=\"orientation === 'vertical'\">\n @if (indicators) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"orientation === 'vertical' ? (swipeContainer?.currentSlideHeight$ | async) : null\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" [class.carousel-inner-vertical]=\"orientation === 'vertical'\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n @if (currentImageIndex === i) {\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut>\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}:host ::ng-deep .carousel-dark{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep :root,:host ::ng-deep [data-bs-theme=light]{--bs-carousel-indicator-active-bg: #fff;--bs-carousel-caption-color: #fff;--bs-carousel-control-icon-filter: }:host ::ng-deep [data-bs-theme=dark]{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}:host ::ng-deep .carousel .carousel-item>*{width:100%!important}:host ::ng-deep .carousel-indicators [data-bs-target]{background-color:var(--bs-carousel-indicator-active-bg, #fff)}:host ::ng-deep .carousel.carousel-vertical{display:flex;flex-direction:row;align-items:stretch;gap:1rem;flex-wrap:nowrap}:host ::ng-deep .carousel.carousel-vertical .carousel-inner{order:1;flex:1 1 auto}:host ::ng-deep .carousel.carousel-vertical .carousel-indicators{order:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next{width:100%;left:0;right:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev.carousel-control-vertical,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next.carousel-control-vertical{justify-content:center}:host ::ng-deep .carousel-inner-vertical{display:flex;flex-direction:column;height:100%}:host ::ng-deep .carousel-inner-vertical .carousel-item{flex:1 1 auto;display:block}:host ::ng-deep .carousel-indicators-vertical{position:static;flex-direction:column;justify-content:center;align-items:stretch;margin:0;gap:.5rem;height:100%}:host ::ng-deep .carousel-indicators-vertical [data-bs-target]{width:auto;height:.75rem}:host ::ng-deep .carousel-control-vertical{top:0;bottom:auto;height:2.5rem;align-items:center}:host ::ng-deep .carousel-control-vertical.carousel-control-next{top:auto;bottom:0}:host ::ng-deep .carousel-control-vertical.carousel-control-prev .carousel-control-prev-icon{transform:rotate(90deg)}:host ::ng-deep .carousel-control-vertical.carousel-control-next .carousel-control-next-icon{transform:rotate(90deg)}.wrapper{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsSwipeDirective, selector: "[bsSwipe]", inputs: ["offside"] }, { kind: "directive", type: i2.BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: ["minimumOffset", "orientation", "imageIndex"], outputs: ["imageIndexChange"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: i3.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] }); }
245
+ onImageIndexChange(index) {
246
+ this.currentImageIndex.set(index);
247
+ }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsCarouselComponent, isStandalone: true, selector: "bs-carousel", inputs: { indicators: { classPropertyName: "indicators", publicName: "indicators", isSignal: true, isRequired: false, transformFunction: null }, keyboardEvents: { classPropertyName: "keyboardEvents", publicName: "keyboardEvents", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, interval: { classPropertyName: "interval", publicName: "interval", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { slideChange: "slideChange", animationStart: "animationStart", animationEnd: "animationEnd" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "onKeyPress($event)", "document:keydown.ArrowUp": "onKeyPress($event)", "document:keydown.ArrowDown": "onKeyPress($event)" }, properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "imagesQuery", predicate: i0.forwardRef(() => BsCarouselImageDirective) }], viewQueries: [{ propertyName: "innerElement", first: true, predicate: ["innerElement"], descendants: true }, { propertyName: "swipeContainer", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n <div class=\"carousel-inner d-grid\">\n @let imagesValue = images();\n @if (imageCount(); as imageCount) {\n @for (image of imagesValue; track image.id; let i = $index) {\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\"\n [class.flex-column]=\"orientation() === 'vertical'\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators()) {\n <div class=\"carousel-indicators\"\n [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of imagesValue; track image.id; let j = $index) {\n <label [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n }\n </div>\n }\n </div>\n </div>\n\n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </div>\n </div>\n} @else {\n @switch (animation()) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\"\n [style.height.px]=\"swipeContainer.currentSlideHeight()\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"swipeContainer.goto(i)\"\n [class.active]=\"swipeContainer.imageIndex() === i\" data-bs-target\n [attr.aria-current]=\"swipeContainer.imageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden pe-none\" [class.text-nowrap]=\"orientation() === 'horizontal'\"\n [class.carousel-inner-vertical]=\"orientation() === 'vertical'\" #innerElement\n [style.height.px]=\"swipeContainer.currentSlideHeight()\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\"\n (imageIndexChange)=\"onImageIndexChange($event)\"\n (animationStart)=\"onContainerAnimationStart()\"\n (animationEnd)=\"onContainerAnimationEnd()\"\n [orientation]=\"orientation()\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate()\"></ng-container>\n </div>\n @for (image of images(); track image.id) {\n <div class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n }\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('fade') {\n <div class=\"carousel fade mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"goto(i)\"\n [class.active]=\"currentImageIndex() === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" #innerElement>\n @for (image of images(); track image.id; let i = $index) {\n @if (currentImageIndex() === i) {\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut>\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('none') {\n <div class=\"carousel mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"goto(i)\"\n [class.active]=\"currentImageIndex() === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" #innerElement>\n @for (image of images(); track image.id; let i = $index) {\n @if (currentImageIndex() === i) {\n <div class=\"carousel-item\" [class.active]=\"true\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}\n", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}:host ::ng-deep .carousel-dark{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep :root,:host ::ng-deep [data-bs-theme=light]{--bs-carousel-indicator-active-bg: #fff;--bs-carousel-caption-color: #fff;--bs-carousel-control-icon-filter: }:host ::ng-deep [data-bs-theme=dark]{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}:host ::ng-deep .carousel .carousel-item>*{width:100%!important}:host ::ng-deep .carousel-indicators [data-bs-target]{background-color:var(--bs-carousel-indicator-active-bg, #fff)}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next{width:100%;left:0;right:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev.carousel-control-vertical,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next.carousel-control-vertical{justify-content:center}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev-icon,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next-icon{background-color:#00000080;border-radius:50%;padding:1.5rem;background-size:50%;box-shadow:0 2px 8px #0000004d}:host ::ng-deep .carousel-inner-vertical{display:flex;flex-direction:column}:host ::ng-deep .carousel-inner-vertical .carousel-item{flex:0 0 auto;display:flex!important;flex-direction:column;justify-content:center;align-items:center}:host ::ng-deep .carousel-indicators-vertical{position:absolute;inset:50% auto auto 0;transform:translateY(-50%);flex-direction:column;justify-content:center;align-items:center;margin:0;margin-left:.5rem;gap:.5rem}:host ::ng-deep .carousel-indicators-vertical [data-bs-target]{width:12px;height:12px;border-radius:50%;background-color:#ffffff80;border:none;box-shadow:0 1px 3px #0000004d;opacity:.7;transition:opacity .15s ease}:host ::ng-deep .carousel-indicators-vertical [data-bs-target].active{opacity:1;background-color:#fff}:host ::ng-deep .carousel-control-vertical{top:0;bottom:auto;height:2.5rem;align-items:center}:host ::ng-deep .carousel-control-vertical.carousel-control-next{top:auto;bottom:0}:host ::ng-deep .carousel-control-vertical.carousel-control-prev .carousel-control-prev-icon{transform:rotate(90deg)}:host ::ng-deep .carousel-control-vertical.carousel-control-next .carousel-control-next-icon{transform:rotate(90deg)}.wrapper{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: ["minimumOffset", "animation", "orientation", "imageIndex"], outputs: ["imageIndexChange", "animationStart", "animationEnd"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: BsSwipeDirective, selector: "[bsSwipe]", inputs: ["offside"] }, { kind: "directive", type: BsNoNoscriptDirective, selector: "[bsNoNoscript]" }], animations: [FadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
167
250
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselComponent, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselComponent, decorators: [{
169
252
  type: Component,
170
- args: [{ selector: 'bs-carousel', standalone: false, animations: [FadeInOutAnimation], template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\" [class.carousel-vertical]=\"orientation === 'vertical'\">\n <div class=\"carousel-inner d-grid\">\n @let images = images$ | async;\n @if (imageCount$ | async; as imageCount) {\n @for (image of images; track image.id; let i = $index) {\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\"\n [class.flex-column]=\"orientation === 'vertical'\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\"\n [class.carousel-indicators-vertical]=\"orientation === 'vertical'\">\n @for (image of images; track image.id; let j = $index) {\n <label [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n }\n </div>\n }\n </div>\n </div>\n \n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </div>\n </div>\n} @else {\n @switch (animation) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [class.carousel-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"swipeContainer?.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"orientation === 'vertical' ? (swipeContainer?.maxSlideHeight$ | async) : null\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"swipeContainer?.goto(i)\"\n [class.active]=\"(swipeContainer?.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(swipeContainer?.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden pe-none\" [class.text-nowrap]=\"orientation === 'horizontal'\"\n [class.carousel-inner-vertical]=\"orientation === 'vertical'\" #innerElement\n [style.height.px]=\"swipeContainer?.currentSlideHeight$ | async\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\"\n [orientation]=\"orientation\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n </div>\n @for (image of (images$ | async); track image.id) {\n <div class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n }\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('fade') {\n <div class=\"carousel fade mx-auto\" [class.carousel-vertical]=\"orientation === 'vertical'\">\n @if (indicators) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation === 'vertical'\"\n [style.height.px]=\"orientation === 'vertical' ? (swipeContainer?.currentSlideHeight$ | async) : null\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"currentImageIndex = i\"\n [class.active]=\"currentImageIndex === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" [class.carousel-inner-vertical]=\"orientation === 'vertical'\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n @if (currentImageIndex === i) {\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut>\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\"\n [class.carousel-control-vertical]=\"orientation === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}:host ::ng-deep .carousel-dark{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep :root,:host ::ng-deep [data-bs-theme=light]{--bs-carousel-indicator-active-bg: #fff;--bs-carousel-caption-color: #fff;--bs-carousel-control-icon-filter: }:host ::ng-deep [data-bs-theme=dark]{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}:host ::ng-deep .carousel .carousel-item>*{width:100%!important}:host ::ng-deep .carousel-indicators [data-bs-target]{background-color:var(--bs-carousel-indicator-active-bg, #fff)}:host ::ng-deep .carousel.carousel-vertical{display:flex;flex-direction:row;align-items:stretch;gap:1rem;flex-wrap:nowrap}:host ::ng-deep .carousel.carousel-vertical .carousel-inner{order:1;flex:1 1 auto}:host ::ng-deep .carousel.carousel-vertical .carousel-indicators{order:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next{width:100%;left:0;right:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev.carousel-control-vertical,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next.carousel-control-vertical{justify-content:center}:host ::ng-deep .carousel-inner-vertical{display:flex;flex-direction:column;height:100%}:host ::ng-deep .carousel-inner-vertical .carousel-item{flex:1 1 auto;display:block}:host ::ng-deep .carousel-indicators-vertical{position:static;flex-direction:column;justify-content:center;align-items:stretch;margin:0;gap:.5rem;height:100%}:host ::ng-deep .carousel-indicators-vertical [data-bs-target]{width:auto;height:.75rem}:host ::ng-deep .carousel-control-vertical{top:0;bottom:auto;height:2.5rem;align-items:center}:host ::ng-deep .carousel-control-vertical.carousel-control-next{top:auto;bottom:0}:host ::ng-deep .carousel-control-vertical.carousel-control-prev .carousel-control-prev-icon{transform:rotate(90deg)}:host ::ng-deep .carousel-control-vertical.carousel-control-next .carousel-control-next-icon{transform:rotate(90deg)}.wrapper{overflow:hidden}\n"] }]
171
- }], ctorParameters: () => [{ type: undefined, decorators: [{
172
- type: Inject,
173
- args: [PLATFORM_ID]
174
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { indicators: [{
175
- type: Input
176
- }], keyboardEvents: [{
177
- type: Input
178
- }], orientation: [{
179
- type: Input
180
- }], innerElement: [{
253
+ args: [{ selector: 'bs-carousel', standalone: true, imports: [
254
+ NgTemplateOutlet,
255
+ BsSwipeContainerDirective,
256
+ BsSwipeDirective,
257
+ BsNoNoscriptDirective,
258
+ ], animations: [FadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n <div class=\"carousel-inner d-grid\">\n @let imagesValue = images();\n @if (imageCount(); as imageCount) {\n @for (image of imagesValue; track image.id; let i = $index) {\n <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\"\n [class.flex-column]=\"orientation() === 'vertical'\">\n <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators()) {\n <div class=\"carousel-indicators\"\n [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of imagesValue; track image.id; let j = $index) {\n <label [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n }\n </div>\n }\n </div>\n </div>\n\n <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </label>\n <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </div>\n </div>\n} @else {\n @switch (animation()) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\"\n [style.height.px]=\"swipeContainer.currentSlideHeight()\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"swipeContainer.goto(i)\"\n [class.active]=\"swipeContainer.imageIndex() === i\" data-bs-target\n [attr.aria-current]=\"swipeContainer.imageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden pe-none\" [class.text-nowrap]=\"orientation() === 'horizontal'\"\n [class.carousel-inner-vertical]=\"orientation() === 'vertical'\" #innerElement\n [style.height.px]=\"swipeContainer.currentSlideHeight()\">\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\"\n (imageIndexChange)=\"onImageIndexChange($event)\"\n (animationStart)=\"onContainerAnimationStart()\"\n (animationEnd)=\"onContainerAnimationEnd()\"\n [orientation]=\"orientation()\">\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"lastImageTemplate()\"></ng-container>\n </div>\n @for (image of images(); track image.id) {\n <div class=\"carousel-item\" [class.active]=\"true\" bsSwipe>\n <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n </div>\n }\n <div class=\"carousel-item\" bsSwipe [offside]=\"true\">\n <ng-container *ngTemplateOutlet=\"firstImageTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('fade') {\n <div class=\"carousel fade mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"goto(i)\"\n [class.active]=\"currentImageIndex() === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" #innerElement>\n @for (image of images(); track image.id; let i = $index) {\n @if (currentImageIndex() === i) {\n <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut>\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n @case ('none') {\n <div class=\"carousel mx-auto\" [class.carousel-vertical]=\"orientation() === 'vertical'\">\n @if (indicators()) {\n <div class=\"carousel-indicators\" [class.carousel-indicators-vertical]=\"orientation() === 'vertical'\">\n @for (image of images(); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"goto(i)\"\n [class.active]=\"currentImageIndex() === i\" data-bs-target\n [attr.aria-current]=\"currentImageIndex() === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner\" #innerElement>\n @for (image of images(); track image.id; let i = $index) {\n @if (currentImageIndex() === i) {\n <div class=\"carousel-item\" [class.active]=\"true\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n </div>\n }\n }\n </div>\n <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previous()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Previous slide\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Previous</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" (click)=\"next()\"\n [class.carousel-control-vertical]=\"orientation() === 'vertical'\"\n aria-label=\"Next slide\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}\n", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion:reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}:host ::ng-deep .carousel-dark{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep :root,:host ::ng-deep [data-bs-theme=light]{--bs-carousel-indicator-active-bg: #fff;--bs-carousel-caption-color: #fff;--bs-carousel-control-icon-filter: }:host ::ng-deep [data-bs-theme=dark]{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}:host ::ng-deep .carousel .carousel-item>*{width:100%!important}:host ::ng-deep .carousel-indicators [data-bs-target]{background-color:var(--bs-carousel-indicator-active-bg, #fff)}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next{width:100%;left:0;right:0}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev.carousel-control-vertical,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next.carousel-control-vertical{justify-content:center}:host ::ng-deep .carousel.carousel-vertical .carousel-control-prev-icon,:host ::ng-deep .carousel.carousel-vertical .carousel-control-next-icon{background-color:#00000080;border-radius:50%;padding:1.5rem;background-size:50%;box-shadow:0 2px 8px #0000004d}:host ::ng-deep .carousel-inner-vertical{display:flex;flex-direction:column}:host ::ng-deep .carousel-inner-vertical .carousel-item{flex:0 0 auto;display:flex!important;flex-direction:column;justify-content:center;align-items:center}:host ::ng-deep .carousel-indicators-vertical{position:absolute;inset:50% auto auto 0;transform:translateY(-50%);flex-direction:column;justify-content:center;align-items:center;margin:0;margin-left:.5rem;gap:.5rem}:host ::ng-deep .carousel-indicators-vertical [data-bs-target]{width:12px;height:12px;border-radius:50%;background-color:#ffffff80;border:none;box-shadow:0 1px 3px #0000004d;opacity:.7;transition:opacity .15s ease}:host ::ng-deep .carousel-indicators-vertical [data-bs-target].active{opacity:1;background-color:#fff}:host ::ng-deep .carousel-control-vertical{top:0;bottom:auto;height:2.5rem;align-items:center}:host ::ng-deep .carousel-control-vertical.carousel-control-next{top:auto;bottom:0}:host ::ng-deep .carousel-control-vertical.carousel-control-prev .carousel-control-prev-icon{transform:rotate(90deg)}:host ::ng-deep .carousel-control-vertical.carousel-control-next .carousel-control-next-icon{transform:rotate(90deg)}.wrapper{overflow:hidden}\n"] }]
259
+ }], ctorParameters: () => [], propDecorators: { indicators: [{ type: i0.Input, args: [{ isSignal: true, alias: "indicators", required: false }] }], keyboardEvents: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyboardEvents", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], interval: [{ type: i0.Input, args: [{ isSignal: true, alias: "interval", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], slideChange: [{ type: i0.Output, args: ["slideChange"] }], animationStart: [{ type: i0.Output, args: ["animationStart"] }], animationEnd: [{ type: i0.Output, args: ["animationEnd"] }], innerElement: [{
181
260
  type: ViewChild,
182
261
  args: ['innerElement']
183
262
  }], swipeContainer: [{
184
263
  type: ViewChild,
185
264
  args: ['container']
186
- }], images: [{
265
+ }], imagesQuery: [{
187
266
  type: ContentChildren,
188
267
  args: [forwardRef(() => BsCarouselImageDirective)]
189
268
  }], animationsDisabled: [{
190
269
  type: HostBinding,
191
270
  args: ['@.disabled']
192
- }], animation: [{
193
- type: Input
194
271
  }], onKeyPress: [{
195
272
  type: HostListener,
196
273
  args: ['document:keydown.ArrowLeft', ['$event']]
@@ -206,49 +283,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
206
283
  }] } });
207
284
 
208
285
  class BsCarouselImgDirective {
209
- constructor(image) {
210
- this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';
286
+ constructor() {
287
+ this.image = inject(BsCarouselImageDirective, { optional: true });
288
+ this.fetchPriority = (this.image && this.image.isFirst) ? 'high' : 'low';
211
289
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselImgDirective, deps: [{ token: BsCarouselImageDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
213
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: BsCarouselImgDirective, isStandalone: false, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
290
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselImgDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
291
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsCarouselImgDirective, isStandalone: true, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
214
292
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
216
294
  type: Directive,
217
295
  args: [{
218
296
  selector: 'img',
219
- standalone: false,
297
+ standalone: true,
220
298
  }]
221
- }], ctorParameters: () => [{ type: BsCarouselImageDirective }], propDecorators: { fetchPriority: [{
299
+ }], ctorParameters: () => [], propDecorators: { fetchPriority: [{
222
300
  type: HostBinding,
223
301
  args: ['attr.fetch-priority']
224
302
  }] } });
225
303
 
226
304
  class BsCarouselModule {
227
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
228
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
305
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
306
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselModule, imports: [BsCarouselComponent,
229
307
  BsCarouselImageDirective,
230
- BsCarouselImgDirective], imports: [AsyncPipe,
231
- NgTemplateOutlet,
232
- BsSwiperModule,
233
- BsNoNoscriptDirective], exports: [BsCarouselComponent,
308
+ BsCarouselImgDirective], exports: [BsCarouselComponent,
234
309
  BsCarouselImageDirective,
235
310
  BsCarouselImgDirective] }); }
236
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselModule, imports: [BsSwiperModule] }); }
311
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselModule }); }
237
312
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: BsCarouselModule, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsCarouselModule, decorators: [{
239
314
  type: NgModule,
240
315
  args: [{
241
- declarations: [
316
+ imports: [
242
317
  BsCarouselComponent,
243
318
  BsCarouselImageDirective,
244
319
  BsCarouselImgDirective,
245
320
  ],
246
- imports: [
247
- AsyncPipe,
248
- NgTemplateOutlet,
249
- BsSwiperModule,
250
- BsNoNoscriptDirective
251
- ],
252
321
  exports: [
253
322
  BsCarouselComponent,
254
323
  BsCarouselImageDirective,