@mintplayer/ng-bootstrap 18.2.0 → 18.2.1

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 (431) hide show
  1. package/async-host-binding/index.d.ts +1 -0
  2. package/async-host-binding/src/bind-event.plugin.d.ts +1 -0
  3. package/async-host-binding/src/index.d.ts +1 -0
  4. package/async-host-binding/src/provide-async-host-bindings.d.ts +1 -0
  5. package/button-type/index.d.ts +1 -0
  6. package/button-type/src/button-type/button-type.directive.d.ts +1 -0
  7. package/button-type/src/index.d.ts +1 -0
  8. package/calendar-month/index.d.ts +1 -0
  9. package/calendar-month/src/index.d.ts +1 -0
  10. package/calendar-month/src/interfaces/date-day-of-month.d.ts +1 -0
  11. package/calendar-month/src/interfaces/first-and-last-date.d.ts +1 -0
  12. package/calendar-month/src/interfaces/index.d.ts +1 -0
  13. package/calendar-month/src/interfaces/week.d.ts +1 -0
  14. package/calendar-month/src/interfaces/weekday.d.ts +1 -0
  15. package/calendar-month/src/pipes/index.d.ts +1 -0
  16. package/calendar-month/src/pipes/month-name/month-name.pipe.d.ts +1 -0
  17. package/calendar-month/src/pipes/weekday-name/weekday-name.pipe.d.ts +1 -0
  18. package/calendar-month/src/service/calendar-month.service.d.ts +1 -0
  19. package/carousel/src/carousel.module.d.ts +3 -4
  20. package/color-picker/color-picker.module.d.ts +1 -2
  21. package/context-menu/index.d.ts +1 -0
  22. package/context-menu/src/context-menu.directive.d.ts +1 -0
  23. package/context-menu/src/context-menu.module.d.ts +1 -0
  24. package/context-menu/src/index.d.ts +1 -0
  25. package/copy/index.d.ts +1 -0
  26. package/copy/src/copy.directive.d.ts +1 -0
  27. package/copy/src/index.d.ts +1 -0
  28. package/dropdown/index.d.ts +1 -0
  29. package/dropdown/src/dropdown/dropdown.directive.d.ts +1 -0
  30. package/dropdown/src/dropdown-menu/dropdown-menu.directive.d.ts +1 -0
  31. package/dropdown/src/dropdown-toggle/dropdown-toggle.directive.d.ts +1 -0
  32. package/dropdown/src/dropdown.module.d.ts +1 -0
  33. package/dropdown/src/index.d.ts +1 -0
  34. package/dropdown-divider/index.d.ts +1 -0
  35. package/dropdown-divider/src/dropdown-divider.directive.d.ts +1 -0
  36. package/dropdown-divider/src/index.d.ts +1 -0
  37. package/enhanced-paste/index.d.ts +1 -0
  38. package/enhanced-paste/src/directive/enhanced-paste.directive.d.ts +1 -0
  39. package/enhanced-paste/src/index.d.ts +1 -0
  40. package/enhanced-paste/src/interfaces/number-overflow.d.ts +1 -0
  41. package/enum/index.d.ts +1 -0
  42. package/enum/src/index.d.ts +1 -0
  43. package/enum/src/interfaces/enum-item.d.ts +1 -0
  44. package/enum/src/interfaces/index.d.ts +1 -0
  45. package/enum/src/service/enum.service.d.ts +1 -0
  46. package/esm2022/accordion/src/accordion/accordion.component.mjs +3 -3
  47. package/esm2022/accordion/src/accordion-tab/accordion-tab.component.mjs +3 -3
  48. package/esm2022/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +3 -3
  49. package/esm2022/accordion/src/accordion.module.mjs +4 -4
  50. package/esm2022/alert/src/alert/alert.component.mjs +3 -3
  51. package/esm2022/alert/src/alert-close/alert-close.component.mjs +3 -3
  52. package/esm2022/alert/src/alert.module.mjs +4 -4
  53. package/esm2022/badge/src/badge.component.mjs +3 -3
  54. package/esm2022/breadcrumb/src/breadcrumb/breadcrumb.component.mjs +3 -3
  55. package/esm2022/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  56. package/esm2022/breadcrumb/src/breadcrumb.module.mjs +4 -4
  57. package/esm2022/button-group/src/button-group/button-group.component.mjs +3 -3
  58. package/esm2022/button-type/src/button-type/button-type.directive.mjs +3 -3
  59. package/esm2022/calendar/src/calendar.component.mjs +5 -6
  60. package/esm2022/calendar-month/src/pipes/month-name/month-name.pipe.mjs +3 -3
  61. package/esm2022/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +3 -3
  62. package/esm2022/calendar-month/src/service/calendar-month.service.mjs +3 -3
  63. package/esm2022/card/src/card/card.component.mjs +3 -3
  64. package/esm2022/card/src/card-header/card-header.component.mjs +3 -3
  65. package/esm2022/card/src/card.module.mjs +4 -4
  66. package/esm2022/carousel/src/carousel/carousel.component.mjs +7 -8
  67. package/esm2022/carousel/src/carousel-image/carousel-image.directive.mjs +3 -3
  68. package/esm2022/carousel/src/carousel-img/carousel-img.directive.mjs +3 -3
  69. package/esm2022/carousel/src/carousel.module.mjs +5 -8
  70. package/esm2022/close/src/close.component.mjs +3 -3
  71. package/esm2022/code-snippet/src/code-snippet.component.mjs +3 -3
  72. package/esm2022/color-picker/color-picker.module.mjs +6 -9
  73. package/esm2022/color-picker/components/alpha-strip/alpha-strip.component.mjs +3 -3
  74. package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +9 -10
  75. package/esm2022/color-picker/components/color-wheel/color-wheel.component.mjs +3 -3
  76. package/esm2022/color-picker/components/luminosity-strip/luminosity-strip.component.mjs +3 -3
  77. package/esm2022/color-picker/components/slider/slider.component.mjs +9 -9
  78. package/esm2022/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.mjs +3 -3
  79. package/esm2022/container/src/container/container.component.mjs +3 -3
  80. package/esm2022/context-menu/src/context-menu.directive.mjs +3 -3
  81. package/esm2022/context-menu/src/context-menu.module.mjs +4 -4
  82. package/esm2022/copy/src/copy.directive.mjs +3 -3
  83. package/esm2022/datatable/src/datatable/datatable.component.mjs +3 -3
  84. package/esm2022/datatable/src/datatable-column/datatable-column.directive.mjs +3 -3
  85. package/esm2022/datatable/src/datatable.module.mjs +4 -4
  86. package/esm2022/datatable/src/row-template/row-template.directive.mjs +3 -3
  87. package/esm2022/datepicker/src/datepicker.component.mjs +3 -3
  88. package/esm2022/dock/src/dock/dock.component.mjs +3 -3
  89. package/esm2022/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +3 -3
  90. package/esm2022/dock/src/dock-panel/dock-panel.component.mjs +3 -3
  91. package/esm2022/dock/src/dock-panel-header/dock-panel-header.component.mjs +3 -3
  92. package/esm2022/dock/src/dock.module.mjs +4 -4
  93. package/esm2022/dock/src/services/dock/dock.service.mjs +3 -3
  94. package/esm2022/dropdown/src/dropdown/dropdown.directive.mjs +3 -3
  95. package/esm2022/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +3 -3
  96. package/esm2022/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  97. package/esm2022/dropdown/src/dropdown.module.mjs +4 -4
  98. package/esm2022/dropdown-divider/src/dropdown-divider.directive.mjs +3 -3
  99. package/esm2022/dropdown-menu/src/dropdown-item/dropdown-item.component.mjs +3 -3
  100. package/esm2022/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +3 -3
  101. package/esm2022/dropdown-menu/src/dropdown-menu.module.mjs +4 -4
  102. package/esm2022/enhanced-paste/src/directive/enhanced-paste.directive.mjs +3 -3
  103. package/esm2022/enum/src/service/enum.service.mjs +3 -3
  104. package/esm2022/file-upload/src/component/file-upload.component.mjs +3 -3
  105. package/esm2022/file-upload/src/directive/file-upload-template.directive.mjs +3 -3
  106. package/esm2022/file-upload/src/file-upload.module.mjs +4 -4
  107. package/esm2022/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +3 -3
  108. package/esm2022/floating-labels/src/floating-label/floating-label.component.mjs +3 -3
  109. package/esm2022/font-color/src/font-color.pipe.mjs +3 -3
  110. package/esm2022/for/src/for.directive.mjs +3 -3
  111. package/esm2022/form/src/form/form.component.mjs +3 -3
  112. package/esm2022/form/src/form-control/form-control.directive.mjs +3 -3
  113. package/esm2022/form/src/form-group/form-group.directive.mjs +3 -3
  114. package/esm2022/form/src/form.module.mjs +4 -4
  115. package/esm2022/grid/src/component/grid.component.mjs +3 -3
  116. package/esm2022/grid/src/directives/col-form-label/col-form-label.directive.mjs +3 -3
  117. package/esm2022/grid/src/directives/column/column.directive.mjs +6 -6
  118. package/esm2022/grid/src/directives/row/row.directive.mjs +3 -3
  119. package/esm2022/grid/src/grid.module.mjs +4 -4
  120. package/esm2022/has-overlay/src/has-overlay/has-overlay.component.mjs +3 -3
  121. package/esm2022/has-property/src/has-property.pipe.mjs +3 -3
  122. package/esm2022/in-list/src/in-list.pipe.mjs +3 -3
  123. package/esm2022/input-group/src/input-group/input-group.component.mjs +3 -3
  124. package/esm2022/instance-of/src/directives/instanceof-case.directive.mjs +3 -3
  125. package/esm2022/instance-of/src/directives/instanceof-default.directive.mjs +3 -3
  126. package/esm2022/instance-of/src/directives/instanceof.directive.mjs +3 -3
  127. package/esm2022/instance-of/src/instance-of.module.mjs +4 -4
  128. package/esm2022/instance-of/src/pipes/instance-of.pipe.mjs +3 -3
  129. package/esm2022/let/directive/let.directive.mjs +3 -3
  130. package/esm2022/linify/src/linify.pipe.mjs +3 -3
  131. package/esm2022/list-group/src/list-group/list-group.component.mjs +3 -3
  132. package/esm2022/list-group/src/list-group-item/list-group-item.component.mjs +3 -3
  133. package/esm2022/list-group/src/list-group.module.mjs +4 -4
  134. package/esm2022/markdown/src/bold/bold.pipe.mjs +3 -3
  135. package/esm2022/markdown/src/italic/italic.pipe.mjs +3 -3
  136. package/esm2022/markdown/src/strikethrough/strikethrough.pipe.mjs +3 -3
  137. package/esm2022/markdown/src/underline/underline.pipe.mjs +3 -3
  138. package/esm2022/marquee/src/marquee/marquee.component.mjs +3 -3
  139. package/esm2022/modal/src/components/modal/modal.component.mjs +3 -3
  140. package/esm2022/modal/src/components/modal-host/modal-host.component.mjs +3 -3
  141. package/esm2022/modal/src/directives/modal/modal.directive.mjs +3 -3
  142. package/esm2022/modal/src/directives/modal-body/modal-body.directive.mjs +3 -3
  143. package/esm2022/modal/src/directives/modal-close/modal-close.directive.mjs +3 -3
  144. package/esm2022/modal/src/directives/modal-footer/modal-footer.directive.mjs +3 -3
  145. package/esm2022/modal/src/directives/modal-header/modal-header.directive.mjs +3 -3
  146. package/esm2022/modal/src/modal.module.mjs +4 -4
  147. package/esm2022/multiselect/src/component/multiselect.component.mjs +3 -3
  148. package/esm2022/multiselect/src/directives/button-template/button-template.directive.mjs +3 -3
  149. package/esm2022/multiselect/src/directives/footer-template/footer-template.directive.mjs +3 -3
  150. package/esm2022/multiselect/src/directives/header-template/header-template.directive.mjs +3 -3
  151. package/esm2022/multiselect/src/multiselect.module.mjs +4 -4
  152. package/esm2022/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +3 -3
  153. package/esm2022/navbar/src/expand-button/expand-button.directive.mjs +3 -3
  154. package/esm2022/navbar/src/nav-link/nav-link.directive.mjs +3 -3
  155. package/esm2022/navbar/src/navbar/navbar.component.mjs +3 -3
  156. package/esm2022/navbar/src/navbar-brand/navbar-brand.component.mjs +3 -3
  157. package/esm2022/navbar/src/navbar-content/navbar-content.directive.mjs +3 -3
  158. package/esm2022/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +3 -3
  159. package/esm2022/navbar/src/navbar-item/navbar-item.component.mjs +3 -3
  160. package/esm2022/navbar/src/navbar-nav/navbar-nav.component.mjs +3 -3
  161. package/esm2022/navbar/src/navbar.module.mjs +4 -4
  162. package/esm2022/navbar-toggler/src/navbar-toggler/navbar-toggler.component.mjs +3 -3
  163. package/esm2022/navigation-lock/src/directive/navigation-lock.directive.mjs +3 -3
  164. package/esm2022/navigation-lock/src/guard/navigation-lock.guard.mjs +3 -3
  165. package/esm2022/navigation-lock/src/navigation-lock.module.mjs +4 -4
  166. package/esm2022/no-noscript/src/no-noscript/no-noscript.directive.mjs +3 -3
  167. package/esm2022/offcanvas/src/components/offcanvas/offcanvas.component.mjs +3 -3
  168. package/esm2022/offcanvas/src/components/offcanvas-body/offcanvas-body.component.mjs +3 -3
  169. package/esm2022/offcanvas/src/components/offcanvas-header/offcanvas-header.component.mjs +3 -3
  170. package/esm2022/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +3 -3
  171. package/esm2022/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +3 -3
  172. package/esm2022/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +3 -3
  173. package/esm2022/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +3 -3
  174. package/esm2022/offcanvas/src/offcanvas.module.mjs +4 -4
  175. package/esm2022/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +3 -3
  176. package/esm2022/pagination/src/component/pagination/pagination.component.mjs +3 -3
  177. package/esm2022/parallax/src/parallax.component.mjs +3 -3
  178. package/esm2022/placeholder/src/placeholder/placeholder.component.mjs +3 -3
  179. package/esm2022/placeholder/src/placeholder-field/placeholder-field.directive.mjs +3 -3
  180. package/esm2022/placeholder/src/placeholder.module.mjs +4 -4
  181. package/esm2022/playlist-toggler/src/playlist-toggler/playlist-toggler.component.mjs +3 -3
  182. package/esm2022/popover/src/component/popover.component.mjs +3 -3
  183. package/esm2022/popover/src/directives/popover/popover.directive.mjs +3 -3
  184. package/esm2022/popover/src/directives/popover-body/popover-body.directive.mjs +3 -3
  185. package/esm2022/popover/src/directives/popover-header/popover-header.directive.mjs +3 -3
  186. package/esm2022/popover/src/popover.module.mjs +4 -4
  187. package/esm2022/progress-bar/src/progress/progress.component.mjs +3 -3
  188. package/esm2022/progress-bar/src/progress-bar/progress-bar.component.mjs +3 -3
  189. package/esm2022/progress-bar/src/progress-bar.module.mjs +4 -4
  190. package/esm2022/range/src/component/range.component.mjs +3 -3
  191. package/esm2022/range/src/range.module.mjs +4 -4
  192. package/esm2022/range/src/value-accessor/range-value-accessor.mjs +3 -3
  193. package/esm2022/rating/src/component/rating.component.mjs +3 -3
  194. package/esm2022/resizable/src/resizable/resizable.component.mjs +3 -3
  195. package/esm2022/resizable/src/resizable.module.mjs +4 -4
  196. package/esm2022/resizable/src/resize-glyph/resize-glyph.directive.mjs +3 -3
  197. package/esm2022/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +3 -3
  198. package/esm2022/scheduler/src/components/scheduler/scheduler.component.mjs +3 -3
  199. package/esm2022/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.mjs +3 -3
  200. package/esm2022/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.mjs +3 -3
  201. package/esm2022/scheduler/src/pipes/date-offset/date-offset.pipe.mjs +3 -3
  202. package/esm2022/scheduler/src/pipes/day-of-week/day-of-week.pipe.mjs +3 -3
  203. package/esm2022/scheduler/src/scheduler.module.mjs +4 -4
  204. package/esm2022/scheduler/src/services/timeline/timeline.service.mjs +3 -3
  205. package/esm2022/scrollspy/src/component/scrollspy.component.mjs +3 -3
  206. package/esm2022/scrollspy/src/directives/scrollspy.directive.mjs +3 -3
  207. package/esm2022/scrollspy/src/scrollspy.module.mjs +4 -4
  208. package/esm2022/scrollspy/src/services/scroll-offset/scroll-offset.service.mjs +3 -3
  209. package/esm2022/searchbox/src/directives/enter-search-term.directive.mjs +3 -3
  210. package/esm2022/searchbox/src/directives/no-results.directive.mjs +3 -3
  211. package/esm2022/searchbox/src/directives/suggestion.directive.mjs +3 -3
  212. package/esm2022/searchbox/src/searchbox/searchbox.component.mjs +10 -11
  213. package/esm2022/searchbox/src/searchbox.module.mjs +5 -8
  214. package/esm2022/select/src/component/select.component.mjs +3 -3
  215. package/esm2022/select/src/select.module.mjs +4 -4
  216. package/esm2022/select/src/value-accessors/select-value-accessor.mjs +6 -6
  217. package/esm2022/select2/src/component/select2.component.mjs +3 -3
  218. package/esm2022/select2/src/directive/item-template/item-template.directive.mjs +3 -3
  219. package/esm2022/select2/src/directive/suggestion-template/suggestion-template.directive.mjs +3 -3
  220. package/esm2022/select2/src/select2.module.mjs +4 -4
  221. package/esm2022/shell/src/shell/shell.component.mjs +3 -3
  222. package/esm2022/shell/src/shell-sidebar/shell-sidebar.directive.mjs +3 -3
  223. package/esm2022/shell/src/shell.module.mjs +4 -4
  224. package/esm2022/signature-pad/src/component/signature-pad.component.mjs +3 -3
  225. package/esm2022/slugify/src/slugify.pipe.mjs +3 -3
  226. package/esm2022/spinner/src/spinner.component.mjs +3 -3
  227. package/esm2022/split-string/src/split-string.pipe.mjs +3 -3
  228. package/esm2022/splitter/src/element-at/element-at.pipe.mjs +3 -3
  229. package/esm2022/splitter/src/split-panel/split-panel.component.mjs +3 -3
  230. package/esm2022/splitter/src/splitter/splitter.component.mjs +8 -9
  231. package/esm2022/splitter/src/splitter.module.mjs +6 -7
  232. package/esm2022/sticky-footer/src/sticky-footer/sticky-footer.component.mjs +3 -3
  233. package/esm2022/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.mjs +3 -3
  234. package/esm2022/sticky-footer/src/sticky-footer.module.mjs +4 -4
  235. package/esm2022/tab-control/src/tab-control/tab-control.component.mjs +7 -8
  236. package/esm2022/tab-control/src/tab-control.module.mjs +5 -8
  237. package/esm2022/tab-control/src/tab-page/tab-page.component.mjs +3 -3
  238. package/esm2022/tab-control/src/tab-page-header/tab-page-header.directive.mjs +3 -3
  239. package/esm2022/table/src/component/table.component.mjs +3 -3
  240. package/esm2022/timepicker/src/timepicker.component.mjs +3 -3
  241. package/esm2022/toast/src/components/toast/toast.component.mjs +3 -3
  242. package/esm2022/toast/src/components/toast-body/toast-body.component.mjs +3 -3
  243. package/esm2022/toast/src/components/toast-container/toast-container.component.mjs +3 -3
  244. package/esm2022/toast/src/components/toast-header/toast-header.component.mjs +3 -3
  245. package/esm2022/toast/src/directives/toast-close/toast-close.directive.mjs +3 -3
  246. package/esm2022/toast/src/pipes/add-properties.pipe.mjs +3 -3
  247. package/esm2022/toast/src/services/toast/toast.service.mjs +3 -3
  248. package/esm2022/toast/src/toast.module.mjs +4 -4
  249. package/esm2022/toggle-button/src/component/toggle-button.component.mjs +3 -3
  250. package/esm2022/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +3 -3
  251. package/esm2022/toggle-button/src/toggle-button.module.mjs +4 -4
  252. package/esm2022/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +3 -3
  253. package/esm2022/tooltip/src/component/tooltip.component.mjs +3 -3
  254. package/esm2022/tooltip/src/directive/tooltip.directive.mjs +3 -3
  255. package/esm2022/tooltip/src/tooltip.module.mjs +4 -4
  256. package/esm2022/treeview/src/treeview/treeview.component.mjs +3 -3
  257. package/esm2022/treeview/src/treeview-item/treeview-item.component.mjs +3 -3
  258. package/esm2022/treeview/src/treeview.module.mjs +4 -4
  259. package/esm2022/trust-html/src/trust-html.pipe.mjs +3 -3
  260. package/esm2022/typeahead/src/typeahead.component.mjs +3 -3
  261. package/esm2022/uc-first/src/uc-first.pipe.mjs +3 -3
  262. package/esm2022/user-agent/src/directive/user-agent.directive.mjs +3 -3
  263. package/esm2022/word-count/src/word-count.pipe.mjs +3 -3
  264. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +13 -13
  265. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +10 -10
  266. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +3 -3
  267. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -10
  268. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
  269. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +3 -3
  270. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +9 -9
  271. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +4 -5
  272. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  273. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +10 -10
  274. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +16 -20
  275. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  276. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +3 -3
  277. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +3 -3
  278. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +30 -34
  279. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  280. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
  281. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  282. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +3 -3
  283. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +13 -13
  284. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +3 -3
  285. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +19 -19
  286. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +3 -3
  287. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +10 -10
  288. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +13 -13
  289. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
  290. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
  291. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +13 -13
  292. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
  293. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +3 -3
  294. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +3 -3
  295. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +13 -13
  296. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +19 -19
  297. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +3 -3
  298. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +3 -3
  299. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +3 -3
  300. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
  301. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +16 -16
  302. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +3 -3
  303. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +3 -3
  304. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +10 -10
  305. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +12 -12
  306. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
  307. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +25 -25
  308. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -16
  309. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +3 -3
  310. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +31 -31
  311. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +10 -10
  312. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +3 -3
  313. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +25 -25
  314. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +3 -3
  315. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +3 -3
  316. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +3 -3
  317. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +10 -10
  318. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +3 -3
  319. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +16 -16
  320. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +10 -10
  321. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +10 -10
  322. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +3 -3
  323. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +10 -10
  324. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +25 -25
  325. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +13 -13
  326. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +22 -26
  327. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  328. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +13 -13
  329. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +13 -13
  330. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +10 -10
  331. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +3 -3
  332. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +3 -3
  333. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +3 -3
  334. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +3 -3
  335. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +17 -19
  336. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  337. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +10 -10
  338. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +15 -19
  339. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  340. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +3 -3
  341. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +3 -3
  342. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +25 -25
  343. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +13 -13
  344. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +10 -10
  345. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +10 -10
  346. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +3 -3
  347. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +3 -3
  348. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +3 -3
  349. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +3 -3
  350. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +3 -3
  351. package/font-color/index.d.ts +1 -0
  352. package/font-color/src/font-color.pipe.d.ts +1 -0
  353. package/for/index.d.ts +1 -0
  354. package/for/src/for.directive.d.ts +1 -0
  355. package/for/src/index.d.ts +1 -0
  356. package/has-id/index.d.ts +1 -0
  357. package/has-id/src/has-id.d.ts +1 -0
  358. package/has-property/index.d.ts +1 -0
  359. package/has-property/src/has-property.pipe.d.ts +1 -0
  360. package/has-property/src/index.d.ts +1 -0
  361. package/in-list/index.d.ts +1 -0
  362. package/in-list/src/in-list.pipe.d.ts +1 -0
  363. package/index.d.ts +1 -0
  364. package/instance-of/index.d.ts +1 -0
  365. package/instance-of/src/directives/index.d.ts +1 -0
  366. package/instance-of/src/directives/instanceof-case.directive.d.ts +1 -0
  367. package/instance-of/src/directives/instanceof-default.directive.d.ts +1 -0
  368. package/instance-of/src/directives/instanceof.directive.d.ts +1 -0
  369. package/instance-of/src/directives/switch-view.d.ts +1 -0
  370. package/instance-of/src/index.d.ts +1 -0
  371. package/instance-of/src/instance-of.module.d.ts +1 -0
  372. package/instance-of/src/interfaces/index.d.ts +1 -0
  373. package/instance-of/src/interfaces/instance-of-context.d.ts +1 -0
  374. package/instance-of/src/pipes/index.d.ts +1 -0
  375. package/instance-of/src/pipes/instance-of.pipe.d.ts +1 -0
  376. package/instance-of/src/types/abstract.type.d.ts +1 -0
  377. package/instance-of/src/types/index.d.ts +1 -0
  378. package/let/directive/let.directive.d.ts +1 -0
  379. package/let/index.d.ts +1 -0
  380. package/let/interfaces/index.d.ts +1 -0
  381. package/let/interfaces/let-context.d.ts +1 -0
  382. package/lib/enums/color.enum.d.ts +1 -0
  383. package/lib/enums/index.d.ts +1 -0
  384. package/lib/providers/development.provider.d.ts +1 -0
  385. package/lib/providers/index.d.ts +1 -0
  386. package/lib/types/breakpoint.d.ts +1 -0
  387. package/lib/types/index.d.ts +1 -0
  388. package/lib/types/position.d.ts +1 -0
  389. package/lib/types/size.d.ts +1 -0
  390. package/linify/index.d.ts +1 -0
  391. package/linify/src/linify.pipe.d.ts +1 -0
  392. package/markdown/index.d.ts +1 -0
  393. package/markdown/src/bold/bold.pipe.d.ts +1 -0
  394. package/markdown/src/italic/italic.pipe.d.ts +1 -0
  395. package/markdown/src/strikethrough/strikethrough.pipe.d.ts +1 -0
  396. package/markdown/src/underline/underline.pipe.d.ts +1 -0
  397. package/navigation-lock/index.d.ts +1 -0
  398. package/navigation-lock/src/directive/navigation-lock.directive.d.ts +1 -0
  399. package/navigation-lock/src/guard/navigation-lock.guard.d.ts +1 -0
  400. package/navigation-lock/src/index.d.ts +1 -0
  401. package/navigation-lock/src/interface/has-navigation-lock.d.ts +1 -0
  402. package/navigation-lock/src/navigation-lock.module.d.ts +1 -0
  403. package/no-noscript/index.d.ts +1 -0
  404. package/no-noscript/src/index.d.ts +1 -0
  405. package/no-noscript/src/no-noscript/no-noscript.directive.d.ts +1 -0
  406. package/ordinal-number/index.d.ts +1 -0
  407. package/ordinal-number/src/index.d.ts +1 -0
  408. package/ordinal-number/src/ordinal-number/ordinal-number.pipe.d.ts +1 -0
  409. package/package.json +1 -1
  410. package/searchbox/src/searchbox.module.d.ts +6 -7
  411. package/slugify/index.d.ts +1 -0
  412. package/slugify/src/slugify.pipe.d.ts +1 -0
  413. package/split-string/index.d.ts +1 -0
  414. package/split-string/src/split-string.pipe.d.ts +1 -0
  415. package/splitter/src/splitter.module.d.ts +2 -3
  416. package/tab-control/src/tab-control.module.d.ts +2 -3
  417. package/trust-html/index.d.ts +1 -0
  418. package/trust-html/src/trust-html.pipe.d.ts +1 -0
  419. package/uc-first/index.d.ts +1 -0
  420. package/uc-first/src/uc-first.pipe.d.ts +1 -0
  421. package/user-agent/index.d.ts +1 -0
  422. package/user-agent/src/directive/index.d.ts +1 -0
  423. package/user-agent/src/directive/user-agent.directive.d.ts +1 -0
  424. package/user-agent/src/index.d.ts +1 -0
  425. package/user-agent/src/interfaces/index.d.ts +1 -0
  426. package/user-agent/src/interfaces/user-agent.d.ts +1 -0
  427. package/user-agent/src/types/index.d.ts +1 -0
  428. package/user-agent/src/types/operating-system.type.d.ts +1 -0
  429. package/user-agent/src/types/webbrowser.type.d.ts +1 -0
  430. package/word-count/index.d.ts +1 -0
  431. package/word-count/src/word-count.pipe.d.ts +1 -0
@@ -83,10 +83,10 @@ class BsCalendarMonthService {
83
83
  }
84
84
  return sunday;
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCalendarMonthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCalendarMonthService, providedIn: 'root' }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCalendarMonthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCalendarMonthService, providedIn: 'root' }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCalendarMonthService, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCalendarMonthService, decorators: [{
90
90
  type: Injectable,
91
91
  args: [{
92
92
  providedIn: 'root'
@@ -102,10 +102,10 @@ class BsMonthNamePipe {
102
102
  return '';
103
103
  }
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsMonthNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
106
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BsMonthNamePipe, isStandalone: true, name: "monthName" }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsMonthNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
106
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsMonthNamePipe, isStandalone: true, name: "monthName" }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsMonthNamePipe, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsMonthNamePipe, decorators: [{
109
109
  type: Pipe,
110
110
  args: [{
111
111
  name: 'monthName',
@@ -118,10 +118,10 @@ class BsWeekdayNamePipe {
118
118
  transform(date) {
119
119
  return date.toLocaleString("default", { weekday: 'short' });
120
120
  }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsWeekdayNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
122
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BsWeekdayNamePipe, isStandalone: true, name: "weekdayName" }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsWeekdayNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
122
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsWeekdayNamePipe, isStandalone: true, name: "weekdayName" }); }
123
123
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsWeekdayNamePipe, decorators: [{
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsWeekdayNamePipe, decorators: [{
125
125
  type: Pipe,
126
126
  args: [{
127
127
  name: 'weekdayName',
@@ -6,7 +6,6 @@ import { BehaviorSubject, map, filter, take } from 'rxjs';
6
6
  import * as i2 from '@mintplayer/ng-bootstrap/calendar-month';
7
7
  import { BsMonthNamePipe, BsWeekdayNamePipe } from '@mintplayer/ng-bootstrap/calendar-month';
8
8
  import * as i1 from '@angular/platform-browser';
9
- import { BsLetDirective } from '@mintplayer/ng-bootstrap/let';
10
9
  import { BsUcFirstPipe } from '@mintplayer/ng-bootstrap/uc-first';
11
10
 
12
11
  /// <reference types="./types" />
@@ -90,12 +89,12 @@ class BsCalendarComponent {
90
89
  this.selectedDate$.next(day.date);
91
90
  }
92
91
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCalendarComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.BsCalendarMonthService }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: BsCalendarComponent, isStandalone: true, selector: "bs-calendar", inputs: { currentMonth: "currentMonth", selectedDate: "selectedDate", disableDateFn: "disableDateFn" }, outputs: { currentMonthChange: "currentMonthChange", selectedDateChange: "selectedDateChange" }, ngImport: i0, template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n <ng-container *bsLet=\"((day !== null) && day.isInMonth) as showSpan\">\n <ng-container *bsLet=\"(disableDateFn && disableDateFn(day.date)) as disabled\">\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n </ng-container>\n </ng-container>\n }\n </tr>\n }\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid var(--bs-border-color);background:#fff}table td,table th{width:40px;height:40px;text-align:center;cursor:default}table td span,table th span{white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid var(--bs-border-color)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid var(--bs-border-color)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid var(--bs-border-color)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "pipe", type: BsUcFirstPipe, name: "bsUcFirst" }, { kind: "pipe", type: BsMonthNamePipe, name: "monthName" }] }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCalendarComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.BsCalendarMonthService }], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: BsCalendarComponent, isStandalone: true, selector: "bs-calendar", inputs: { currentMonth: "currentMonth", selectedDate: "selectedDate", disableDateFn: "disableDateFn" }, outputs: { currentMonthChange: "currentMonthChange", selectedDateChange: "selectedDateChange" }, ngImport: i0, template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n @let showSpan = (day !== null) && day.isInMonth;\n @let disabled = disableDateFn && day && disableDateFn(day.date);\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n }\n </tr>\n }\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid var(--bs-border-color);background:#fff}table td,table th{width:40px;height:40px;text-align:center;cursor:default}table td span,table th span{white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid var(--bs-border-color)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid var(--bs-border-color)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid var(--bs-border-color)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: BsUcFirstPipe, name: "bsUcFirst" }, { kind: "pipe", type: BsMonthNamePipe, name: "monthName" }] }); }
95
94
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCalendarComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCalendarComponent, decorators: [{
97
96
  type: Component,
98
- args: [{ selector: 'bs-calendar', standalone: true, imports: [AsyncPipe, BsLetDirective, BsUcFirstPipe, BsMonthNamePipe, BsWeekdayNamePipe], template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n <ng-container *bsLet=\"((day !== null) && day.isInMonth) as showSpan\">\n <ng-container *bsLet=\"(disableDateFn && disableDateFn(day.date)) as disabled\">\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n </ng-container>\n </ng-container>\n }\n </tr>\n }\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid var(--bs-border-color);background:#fff}table td,table th{width:40px;height:40px;text-align:center;cursor:default}table td span,table th span{white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid var(--bs-border-color)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid var(--bs-border-color)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid var(--bs-border-color)}\n"] }]
97
+ args: [{ selector: 'bs-calendar', standalone: true, imports: [AsyncPipe, BsUcFirstPipe, BsMonthNamePipe, BsWeekdayNamePipe], template: "<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n @let showSpan = (day !== null) && day.isInMonth;\n @let disabled = disableDateFn && day && disableDateFn(day.date);\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n }\n </tr>\n }\n</table>", styles: [".text-muted{color:#9ea7af!important}table{border-collapse:collapse;border:1px solid var(--bs-border-color);background:#fff}table td,table th{width:40px;height:40px;text-align:center;cursor:default}table td span,table th span{white-space:nowrap}table td.selected{background-color:#0d6efd;color:#fff}table th{background-color:#f8f9fa}table tr{border-top:none}table tr:first-child>td{border-bottom:1px solid var(--bs-border-color)}table tr:nth-of-type(2)>th:not(:nth-of-type(1)){border-bottom:1px solid var(--bs-border-color)}table tr:not(:nth-of-type(2))>th:nth-of-type(1){border-right:1px solid var(--bs-border-color)}\n"] }]
99
98
  }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.BsCalendarMonthService }], propDecorators: { currentMonthChange: [{
100
99
  type: Output
101
100
  }], currentMonth: [{
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-calendar.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/calendar/src/calendar.component.ts","../../../../libs/mintplayer-ng-bootstrap/calendar/src/calendar.component.html","../../../../libs/mintplayer-ng-bootstrap/calendar/mintplayer-ng-bootstrap-calendar.ts"],"sourcesContent":["/// <reference types=\"./types\" />\n\nimport { AsyncPipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, filter, map, Observable, take } from 'rxjs';\nimport { BsCalendarMonthService, BsMonthNamePipe, BsWeekdayNamePipe, DateDayOfMonth, Week, WeekDay } from '@mintplayer/ng-bootstrap/calendar-month';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { BsLetDirective } from '@mintplayer/ng-bootstrap/let';\nimport { BsUcFirstPipe } from '@mintplayer/ng-bootstrap/uc-first';\n\n@Component({\n selector: 'bs-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n standalone: true,\n imports: [AsyncPipe, BsLetDirective, BsUcFirstPipe, BsMonthNamePipe, BsWeekdayNamePipe]\n})\nexport class BsCalendarComponent {\n constructor(private sanitizer: DomSanitizer, private calendarMonthService: BsCalendarMonthService) {\n this.weeks$ = this.currentMonth$\n .pipe(map((month) => this.calendarMonthService.getWeeks(month)));\n this.shownDays$ = this.weeks$\n .pipe(filter((weeks) => weeks.length > 1))\n .pipe(map((weeks) => weeks[1].days))\n .pipe(\n map((days) => {\n const firstDay = days[0];\n if (firstDay) {\n return days.map((d) => {\n const date = new Date(\n firstDay.date.getFullYear(),\n firstDay.date.getMonth(),\n d?.dayOfMonth\n );\n return <WeekDay>{\n short: date.toLocaleString('default', { weekday: 'short' }),\n long: date.toLocaleString('default', { weekday: 'long' })\n };\n });\n } else {\n return [];\n }\n })\n );\n this.selectedDate$.pipe(takeUntilDestroyed())\n .subscribe(date => this.selectedDateChange.emit(date));\n this.currentMonth$.pipe(takeUntilDestroyed())\n .subscribe(month => this.currentMonthChange.emit(month));\n import('bootstrap-icons/icons/chevron-left.svg').then((icon) => {\n this.chevronLeft = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/chevron-right.svg').then((icon) => {\n this.chevronRight = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n chevronLeft?: SafeHtml;\n chevronRight?: SafeHtml;\n weeks$: Observable<Week[]>;\n shownDays$: Observable<WeekDay[]>;\n\n //#region CurrentMonth\n currentMonth$ = new BehaviorSubject<Date>(new Date());\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this.currentMonth$.value;\n }\n @Input() set currentMonth(value: Date) {\n this.currentMonth$.next(value);\n }\n //#endregion\n //#region SelectedDate\n selectedDate$ = new BehaviorSubject<Date>(new Date());\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this.selectedDate$.value;\n }\n @Input() set selectedDate(value: Date) {\n this.selectedDate$.next(value);\n }\n //#endregion\n\n @Input() disableDateFn?: (date: Date) => boolean;\n\n previousMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() - 1, 1)\n );\n });\n\n return false;\n }\n\n nextMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() + 1, 1)\n );\n });\n\n return false;\n }\n\n isSameDate(date1: Date | null, date2: Date | null) {\n if (date1 === null && date2 === null) return true;\n if (date1 === null || date2 === null) return false;\n\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n goto(day: DateDayOfMonth | null) {\n if (day && day.isInMonth && (!this.disableDateFn || !this.disableDateFn(day.date))) {\n this.selectedDate$.next(day.date);\n }\n }\n}\n","<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n <ng-container *bsLet=\"((day !== null) && day.isInMonth) as showSpan\">\n <ng-container *bsLet=\"(disableDateFn && disableDateFn(day.date)) as disabled\">\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n </ng-container>\n </ng-container>\n }\n </tr>\n }\n</table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-calendar.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/calendar/src/calendar.component.ts","../../../../libs/mintplayer-ng-bootstrap/calendar/src/calendar.component.html","../../../../libs/mintplayer-ng-bootstrap/calendar/mintplayer-ng-bootstrap-calendar.ts"],"sourcesContent":["/// <reference types=\"./types\" />\n\nimport { AsyncPipe } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, filter, map, Observable, take } from 'rxjs';\nimport { BsCalendarMonthService, BsMonthNamePipe, BsWeekdayNamePipe, DateDayOfMonth, Week, WeekDay } from '@mintplayer/ng-bootstrap/calendar-month';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { BsUcFirstPipe } from '@mintplayer/ng-bootstrap/uc-first';\n\n@Component({\n selector: 'bs-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n standalone: true,\n imports: [AsyncPipe, BsUcFirstPipe, BsMonthNamePipe, BsWeekdayNamePipe]\n})\nexport class BsCalendarComponent {\n constructor(private sanitizer: DomSanitizer, private calendarMonthService: BsCalendarMonthService) {\n this.weeks$ = this.currentMonth$\n .pipe(map((month) => this.calendarMonthService.getWeeks(month)));\n this.shownDays$ = this.weeks$\n .pipe(filter((weeks) => weeks.length > 1))\n .pipe(map((weeks) => weeks[1].days))\n .pipe(\n map((days) => {\n const firstDay = days[0];\n if (firstDay) {\n return days.map((d) => {\n const date = new Date(\n firstDay.date.getFullYear(),\n firstDay.date.getMonth(),\n d?.dayOfMonth\n );\n return <WeekDay>{\n short: date.toLocaleString('default', { weekday: 'short' }),\n long: date.toLocaleString('default', { weekday: 'long' })\n };\n });\n } else {\n return [];\n }\n })\n );\n this.selectedDate$.pipe(takeUntilDestroyed())\n .subscribe(date => this.selectedDateChange.emit(date));\n this.currentMonth$.pipe(takeUntilDestroyed())\n .subscribe(month => this.currentMonthChange.emit(month));\n import('bootstrap-icons/icons/chevron-left.svg').then((icon) => {\n this.chevronLeft = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/chevron-right.svg').then((icon) => {\n this.chevronRight = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n chevronLeft?: SafeHtml;\n chevronRight?: SafeHtml;\n weeks$: Observable<Week[]>;\n shownDays$: Observable<WeekDay[]>;\n\n //#region CurrentMonth\n currentMonth$ = new BehaviorSubject<Date>(new Date());\n @Output() public currentMonthChange = new EventEmitter<Date>();\n get currentMonth() {\n return this.currentMonth$.value;\n }\n @Input() set currentMonth(value: Date) {\n this.currentMonth$.next(value);\n }\n //#endregion\n //#region SelectedDate\n selectedDate$ = new BehaviorSubject<Date>(new Date());\n @Output() public selectedDateChange = new EventEmitter<Date>();\n get selectedDate() {\n return this.selectedDate$.value;\n }\n @Input() set selectedDate(value: Date) {\n this.selectedDate$.next(value);\n }\n //#endregion\n\n @Input() disableDateFn?: (date: Date) => boolean;\n\n previousMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() - 1, 1)\n );\n });\n\n return false;\n }\n\n nextMonth() {\n this.currentMonth$.pipe(take(1)).subscribe((month) => {\n this.currentMonth$.next(\n new Date(month.getFullYear(), month.getMonth() + 1, 1)\n );\n });\n\n return false;\n }\n\n isSameDate(date1: Date | null, date2: Date | null) {\n if (date1 === null && date2 === null) return true;\n if (date1 === null || date2 === null) return false;\n\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n goto(day: DateDayOfMonth | null) {\n if (day && day.isInMonth && (!this.disableDateFn || !this.disableDateFn(day.date))) {\n this.selectedDate$.next(day.date);\n }\n }\n}\n","<table class=\"table w-auto mb-0\">\n <tr>\n <td>\n <button class=\"btn btn-default\" (click)=\"previousMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"fw-bolder\"></span>\n </button>\n </td>\n <td colspan=\"6\" class=\"fw-bolder\">\n {{ currentMonth$ | async | monthName | bsUcFirst }}\n {{ (currentMonth$ | async)?.getFullYear() }}\n </td>\n <td>\n <button class=\"btn btn-default border-bottom-0\" (click)=\"nextMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"fw-bolder\"></span>\n </button>\n </td>\n </tr>\n <tr>\n <th></th>\n @for (dayOfWeek of shownDays$ | async; track dayOfWeek.long) {\n <th [title]=\"dayOfWeek.long\">\n {{ dayOfWeek.short }}\n </th>\n }\n </tr>\n @for (week of (weeks$ | async); track week.number) {\n <tr>\n <th>\n {{ week.number }}\n </th>\n @for (day of week.days; track day?.date) {\n @let showSpan = (day !== null) && day.isInMonth;\n @let disabled = disableDateFn && day && disableDateFn(day.date);\n <td [class.selected]=\"day === null ? false : !day.isInMonth ? false : isSameDate(selectedDate$ | async, day.date)\" [class.cursor-pointer]=\"showSpan && !disabled\" (click)=\"goto(day)\">\n @if (showSpan) {\n <span [class.text-muted]=\"disabled\">{{ day.dayOfMonth }}</span>\n }\n </td>\n }\n </tr>\n }\n</table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ class BsCardComponent {
6
6
  constructor() {
7
7
  this.rounded = true;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BsCardComponent, selector: "bs-card", inputs: { rounded: "rounded" }, ngImport: i0, template: "<div class=\"card\" [class.rounded-0]=\"!rounded\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-body p-0\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host ::ng-deep .card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}:host ::ng-deep .card>hr{margin-right:0;margin-left:0}:host ::ng-deep .card>.list-group{border-top:inherit;border-bottom:inherit}:host ::ng-deep .card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.card-header+.list-group,:host ::ng-deep .card>.list-group+.card-footer{border-top:0}:host ::ng-deep .card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}:host ::ng-deep .card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}:host ::ng-deep .card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}:host ::ng-deep .card-text:last-child{margin-bottom:0}:host ::ng-deep .card-link+.card-link{margin-left:var(--bs-card-spacer-x)}:host ::ng-deep .card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}:host ::ng-deep .card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}:host ::ng-deep .card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}:host ::ng-deep .card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}:host ::ng-deep .card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}:host ::ng-deep .card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top,:host ::ng-deep .card-img-bottom{width:100%}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){:host ::ng-deep .card-group{display:flex;flex-flow:row wrap}:host ::ng-deep .card-group>.card{flex:1 0 0%;margin-bottom:0}:host ::ng-deep .card-group>.card+.card{margin-left:0;border-left:0}:host ::ng-deep .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}:host ::ng-deep .card-body{margin:-1px}\n"] }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: BsCardComponent, selector: "bs-card", inputs: { rounded: "rounded" }, ngImport: i0, template: "<div class=\"card\" [class.rounded-0]=\"!rounded\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-body p-0\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host ::ng-deep .card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}:host ::ng-deep .card>hr{margin-right:0;margin-left:0}:host ::ng-deep .card>.list-group{border-top:inherit;border-bottom:inherit}:host ::ng-deep .card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.card-header+.list-group,:host ::ng-deep .card>.list-group+.card-footer{border-top:0}:host ::ng-deep .card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}:host ::ng-deep .card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}:host ::ng-deep .card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}:host ::ng-deep .card-text:last-child{margin-bottom:0}:host ::ng-deep .card-link+.card-link{margin-left:var(--bs-card-spacer-x)}:host ::ng-deep .card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}:host ::ng-deep .card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}:host ::ng-deep .card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}:host ::ng-deep .card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}:host ::ng-deep .card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}:host ::ng-deep .card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top,:host ::ng-deep .card-img-bottom{width:100%}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){:host ::ng-deep .card-group{display:flex;flex-flow:row wrap}:host ::ng-deep .card-group>.card{flex:1 0 0%;margin-bottom:0}:host ::ng-deep .card-group>.card+.card{margin-left:0;border-left:0}:host ::ng-deep .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}:host ::ng-deep .card-body{margin:-1px}\n"] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'bs-card', template: "<div class=\"card\" [class.rounded-0]=\"!rounded\">\n <ng-content select=\"bs-card-header\"></ng-content>\n <div class=\"card-body p-0\">\n <ng-content></ng-content>\n </div>\n</div>", styles: [":host ::ng-deep .card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}:host ::ng-deep .card>hr{margin-right:0;margin-left:0}:host ::ng-deep .card>.list-group{border-top:inherit;border-bottom:inherit}:host ::ng-deep .card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card>.card-header+.list-group,:host ::ng-deep .card>.list-group+.card-footer{border-top:0}:host ::ng-deep .card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}:host ::ng-deep .card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}:host ::ng-deep .card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}:host ::ng-deep .card-text:last-child{margin-bottom:0}:host ::ng-deep .card-link+.card-link{margin-left:var(--bs-card-spacer-x)}:host ::ng-deep .card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}:host ::ng-deep .card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}:host ::ng-deep .card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}:host ::ng-deep .card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}:host ::ng-deep .card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}:host ::ng-deep .card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}:host ::ng-deep .card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top,:host ::ng-deep .card-img-bottom{width:100%}:host ::ng-deep .card-img,:host ::ng-deep .card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-img,:host ::ng-deep .card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}:host ::ng-deep .card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){:host ::ng-deep .card-group{display:flex;flex-flow:row wrap}:host ::ng-deep .card-group>.card{flex:1 0 0%;margin-bottom:0}:host ::ng-deep .card-group>.card+.card{margin-left:0;border-left:0}:host ::ng-deep .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}:host ::ng-deep .card-group>.card:not(:last-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}:host ::ng-deep .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-top,:host ::ng-deep .card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}:host ::ng-deep .card-group>.card:not(:first-child) .card-img-bottom,:host ::ng-deep .card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}:host ::ng-deep .card-body{margin:-1px}\n"] }]
15
15
  }], propDecorators: { rounded: [{
@@ -20,10 +20,10 @@ class BsCardHeaderComponent {
20
20
  constructor() {
21
21
  this.noPadding = false;
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BsCardHeaderComponent, selector: "bs-card-header", inputs: { noPadding: "noPadding" }, ngImport: i0, template: "<div class=\"card-header\" [class.p-0]=\"noPadding\">\n <ng-content></ng-content>\n</div>", styles: [""] }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: BsCardHeaderComponent, selector: "bs-card-header", inputs: { noPadding: "noPadding" }, ngImport: i0, template: "<div class=\"card-header\" [class.p-0]=\"noPadding\">\n <ng-content></ng-content>\n</div>", styles: [""] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardHeaderComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardHeaderComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'bs-card-header', template: "<div class=\"card-header\" [class.p-0]=\"noPadding\">\n <ng-content></ng-content>\n</div>" }]
29
29
  }], propDecorators: { noPadding: [{
@@ -31,13 +31,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
31
31
  }] } });
32
32
 
33
33
  class BsCardModule {
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BsCardModule, declarations: [BsCardComponent,
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
35
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsCardModule, declarations: [BsCardComponent,
36
36
  BsCardHeaderComponent], imports: [CommonModule], exports: [BsCardComponent,
37
37
  BsCardHeaderComponent] }); }
38
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardModule, imports: [CommonModule] }); }
38
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardModule, imports: [CommonModule] }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCardModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCardModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  imports: [CommonModule],
@@ -4,12 +4,10 @@ import * as i0 from '@angular/core';
4
4
  import { Directive, PLATFORM_ID, Component, Inject, Input, ViewChild, ContentChildren, forwardRef, HostBinding, HostListener, NgModule } from '@angular/core';
5
5
  import { FadeInOutAnimation } from '@mintplayer/ng-animations';
6
6
  import { Color } from '@mintplayer/ng-bootstrap';
7
- import * as i3 from '@mintplayer/ng-swiper/swiper';
7
+ import * as i2 from '@mintplayer/ng-swiper/swiper';
8
8
  import { BsSwiperModule } from '@mintplayer/ng-swiper/swiper';
9
9
  import { BehaviorSubject, map } from 'rxjs';
10
- import * as i2 from '@mintplayer/ng-bootstrap/let';
11
- import { BsLetDirective } from '@mintplayer/ng-bootstrap/let';
12
- import * as i4 from '@mintplayer/ng-bootstrap/no-noscript';
10
+ import * as i3 from '@mintplayer/ng-bootstrap/no-noscript';
13
11
  import { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';
14
12
 
15
13
  class BsCarouselImageDirective {
@@ -20,10 +18,10 @@ class BsCarouselImageDirective {
20
18
  this.itemTemplate = this.templateRef;
21
19
  this.id = carousel.imageCounter++;
22
20
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselImageDirective, deps: [{ token: i0.TemplateRef }, { token: BsCarouselComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
24
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BsCarouselImageDirective, selector: "*[bsCarouselImage]", ngImport: i0 }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", 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: "18.1.0", type: BsCarouselImageDirective, selector: "*[bsCarouselImage]", ngImport: i0 }); }
25
23
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
27
25
  type: Directive,
28
26
  args: [{
29
27
  selector: '*[bsCarouselImage]'
@@ -134,12 +132,12 @@ class BsCarouselComponent {
134
132
  this.resizeObserver?.unobserve(this.innerElement.nativeElement);
135
133
  this.resizeObserver?.disconnect();
136
134
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", keyboardEvents: "keyboardEvents", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "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\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *bsLet=\"(images$ | async) as images\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </ng-container>\n </div>\n </div>\n} @else {\n @switch (animation) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <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;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 0z'/%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-.708z'/%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:#fff;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:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-next-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],:host ::ng-deep [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-caption,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-caption{color:#000}: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}.wrapper{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "directive", type: i3.BsSwipeDirective, selector: "[bsSwipe]", inputs: ["offside"] }, { kind: "directive", type: i3.BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: ["minimumOffset", "imageIndex"], outputs: ["imageIndexChange"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: i4.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] }); }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", keyboardEvents: "keyboardEvents", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "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\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <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\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <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;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 0z'/%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-.708z'/%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:#fff;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:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-next-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],:host ::ng-deep [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-caption,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-caption{color:#000}: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}.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", "imageIndex"], outputs: ["imageIndexChange"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: i3.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] }); }
139
137
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselComponent, decorators: [{
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselComponent, decorators: [{
141
139
  type: Component,
142
- args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation], template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *bsLet=\"(images$ | async) as images\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </ng-container>\n </div>\n </div>\n} @else {\n @switch (animation) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <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;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 0z'/%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-.708z'/%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:#fff;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:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-next-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],:host ::ng-deep [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-caption,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-caption{color:#000}: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}.wrapper{overflow:hidden}\n"] }]
140
+ args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation], template: "@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <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\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <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;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 0z'/%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-.708z'/%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:#fff;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:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-control-next-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-prev-icon,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],:host ::ng-deep [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep [data-bs-theme=dark] .carousel .carousel-caption,:host ::ng-deep [data-bs-theme=dark].carousel .carousel-caption{color:#000}: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}.wrapper{overflow:hidden}\n"] }]
143
141
  }], ctorParameters: () => [{ type: undefined, decorators: [{
144
142
  type: Inject,
145
143
  args: [PLATFORM_ID]
@@ -173,10 +171,10 @@ class BsCarouselImgDirective {
173
171
  constructor(image) {
174
172
  this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';
175
173
  }
176
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselImgDirective, deps: [{ token: BsCarouselImageDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
177
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BsCarouselImgDirective, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselImgDirective, deps: [{ token: BsCarouselImageDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
175
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: BsCarouselImgDirective, selector: "img", host: { properties: { "attr.fetch-priority": "this.fetchPriority" } }, ngImport: i0 }); }
178
176
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselImgDirective, decorators: [{
180
178
  type: Directive,
181
179
  args: [{
182
180
  selector: 'img'
@@ -187,19 +185,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
187
185
  }] } });
188
186
 
189
187
  class BsCarouselModule {
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
191
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
189
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
192
190
  BsCarouselImageDirective,
193
191
  BsCarouselImgDirective], imports: [AsyncPipe,
194
192
  NgTemplateOutlet,
195
- BsLetDirective,
196
193
  BsSwiperModule,
197
194
  BsNoNoscriptDirective], exports: [BsCarouselComponent,
198
195
  BsCarouselImageDirective,
199
196
  BsCarouselImgDirective] }); }
200
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselModule, imports: [BsSwiperModule] }); }
197
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselModule, imports: [BsSwiperModule] }); }
201
198
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BsCarouselModule, decorators: [{
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: BsCarouselModule, decorators: [{
203
200
  type: NgModule,
204
201
  args: [{
205
202
  declarations: [
@@ -210,7 +207,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
210
207
  imports: [
211
208
  AsyncPipe,
212
209
  NgTemplateOutlet,
213
- BsLetDirective,
214
210
  BsSwiperModule,
215
211
  BsNoNoscriptDirective
216
212
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-img/carousel-img.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, ElementRef, HostBinding } from '@angular/core';\nimport { BsCarouselComponent } from '../carousel/carousel.component';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>, carousel: BsCarouselComponent, private element: ElementRef<HTMLElement>) {\n this.itemTemplate = this.templateRef;\n this.id = carousel.imageCounter++;\n }\n \n id: number;\n isFirst = false;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, OnDestroy, PLATFORM_ID, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper/swiper';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent implements AfterViewInit, OnDestroy {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));\n this.firstImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n\n const img = images.get(0);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n this.lastImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n \n const img = images.get(images.length - 1);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n\n if (!isPlatformServer(platformId)) {\n this.resizeObserver = new ResizeObserver((entries) => {\n this.cdRef.detectChanges();\n });\n }\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n images$ = new BehaviorSubject<QueryList<BsCarouselImageDirective> | null>(null);\n imageCount$: Observable<number>;\n firstImageTemplate$: Observable<TemplateRef<any> | null>;\n lastImageTemplate$: Observable<TemplateRef<any> | null>;\n resizeObserver?: ResizeObserver;\n\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('innerElement') innerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) set images(value: QueryList<BsCarouselImageDirective>) {\n this.images$.next(value);\n value.forEach((item, index) => item.isFirst = (index === 0));\n }\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images$.value!.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images$.value!.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n imageCounter = 1;\n\n ngAfterViewInit() {\n this.resizeObserver?.observe(this.innerElement.nativeElement);\n }\n\n ngOnDestroy() {\n this.resizeObserver?.unobserve(this.innerElement.nativeElement);\n this.resizeObserver?.disconnect();\n }\n}\n","@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\">\n <div class=\"carousel-inner d-grid\">\n <ng-container *bsLet=\"(images$ | async) as images\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </label>\n }\n }\n </ng-container>\n </div>\n </div>\n} @else {\n @switch (animation) {\n @case ('slide') {\n <div class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}","import { Directive, HostBinding } from '@angular/core';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Directive({\n selector: 'img'\n})\nexport class BsCarouselImgDirective {\n constructor(image: BsCarouselImageDirective) {\n this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';\n }\n \n @HostBinding('attr.fetch-priority') fetchPriority: 'high' | 'low' | 'auto';\n}\n","import { NgModule } from '@angular/core';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper/swiper';\nimport { BsLetDirective } from '@mintplayer/ng-bootstrap/let';\nimport { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\nimport { BsCarouselImgDirective } from './carousel-img/carousel-img.directive';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n BsLetDirective,\n BsSwiperModule,\n BsNoNoscriptDirective\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsCarouselComponent","i1.BsCarouselImageDirective"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-carousel.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-image/carousel-image.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel/carousel.component.html","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel-img/carousel-img.directive.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/src/carousel.module.ts","../../../../libs/mintplayer-ng-bootstrap/carousel/mintplayer-ng-bootstrap-carousel.ts"],"sourcesContent":["import { Directive, TemplateRef, ElementRef, HostBinding } from '@angular/core';\nimport { BsCarouselComponent } from '../carousel/carousel.component';\n\n@Directive({\n selector: '*[bsCarouselImage]'\n})\nexport class BsCarouselImageDirective {\n\n public itemTemplate: TemplateRef<any>;\n \n constructor(private templateRef: TemplateRef<any>, carousel: BsCarouselComponent, private element: ElementRef<HTMLElement>) {\n this.itemTemplate = this.templateRef;\n this.id = carousel.imageCounter++;\n }\n \n id: number;\n isFirst = false;\n}\n","import { isPlatformServer } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, forwardRef, HostBinding, HostListener, Inject, Input, OnDestroy, PLATFORM_ID, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsSwipeContainerDirective } from '@mintplayer/ng-swiper/swiper';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Component({\n selector: 'bs-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n animations: [FadeInOutAnimation]\n})\nexport class BsCarouselComponent implements AfterViewInit, OnDestroy {\n\n constructor(@Inject(PLATFORM_ID) platformId: any, private cdRef: ChangeDetectorRef) {\n this.isServerSide = isPlatformServer(platformId);\n this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));\n this.firstImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n\n const img = images.get(0);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n this.lastImageTemplate$ = this.images$.pipe(map((images) => {\n if (!images) return null;\n if (images.length === 0) return null;\n \n const img = images.get(images.length - 1);\n if (!img) return null;\n\n return img.itemTemplate;\n }));\n\n if (!isPlatformServer(platformId)) {\n this.resizeObserver = new ResizeObserver((entries) => {\n this.cdRef.detectChanges();\n });\n }\n }\n \n colors = Color;\n isServerSide: boolean;\n currentImageIndex = 0;\n images$ = new BehaviorSubject<QueryList<BsCarouselImageDirective> | null>(null);\n imageCount$: Observable<number>;\n firstImageTemplate$: Observable<TemplateRef<any> | null>;\n lastImageTemplate$: Observable<TemplateRef<any> | null>;\n resizeObserver?: ResizeObserver;\n\n @Input() indicators = false;\n @Input() keyboardEvents = true;\n\n @ViewChild('innerElement') innerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('container') swipeContainer!: BsSwipeContainerDirective;\n @ContentChildren(forwardRef(() => BsCarouselImageDirective)) set images(value: QueryList<BsCarouselImageDirective>) {\n this.images$.next(value);\n value.forEach((item, index) => item.isFirst = (index === 0));\n }\n\n //#region Animation\n @HostBinding('@.disabled') public animationsDisabled = false;\n private _animation: 'fade' | 'slide' = 'slide';\n @Input() public set animation(value: 'fade' | 'slide') {\n this.animationsDisabled = true;\n this._animation = value;\n setTimeout(() => this.animationsDisabled = false, 20);\n setTimeout(() => this.cdRef.detectChanges(), 50);\n }\n public get animation() {\n return this._animation;\n }\n //#endregion\n\n @HostListener('document:keydown.ArrowLeft', ['$event'])\n @HostListener('document:keydown.ArrowRight', ['$event'])\n onKeyPress(ev: KeyboardEvent) {\n if (this.keyboardEvents) {\n switch (ev.key) {\n case 'ArrowLeft':\n this.previousImage();\n break;\n case 'ArrowRight':\n this.nextImage();\n break;\n }\n ev.preventDefault();\n }\n }\n\n previousImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex > 0) {\n this.currentImageIndex--;\n } else {\n this.currentImageIndex = this.images$.value!.length - 1;\n }\n break;\n case 'slide':\n this.swipeContainer.previous();\n break;\n }\n }\n\n nextImage() {\n switch (this.animation) {\n case 'fade':\n if (this.currentImageIndex < this.images$.value!.length - 1) {\n this.currentImageIndex++;\n } else {\n this.currentImageIndex = 0;\n }\n break;\n case 'slide':\n this.swipeContainer.next();\n break;\n }\n }\n\n imageCounter = 1;\n\n ngAfterViewInit() {\n this.resizeObserver?.observe(this.innerElement.nativeElement);\n }\n\n ngOnDestroy() {\n this.resizeObserver?.unobserve(this.innerElement.nativeElement);\n this.resizeObserver?.disconnect();\n }\n}\n","@if (isServerSide) {\n <div class=\"carousel mx-auto noscript\">\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 <div class=\"w-100 position-relative\">\n <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n @if (indicators) {\n <div class=\"carousel-indicators\">\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 <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 <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\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\n @for (image of (images$ | async); track image.id; let i = $index) {\n <button type=\"button\" (click)=\"container.goto(i)\"\n [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n [attr.aria-label]=\"'Slide ' + i\"></button>\n }\n </div>\n }\n <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\" #innerElement>\n <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\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 <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 <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\">\n @if (indicators) {\n <div class=\"carousel-indicators\">\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\">\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 <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 <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"visually-hidden\">Next</span>\n </button>\n </div>\n }\n }\n}","import { Directive, HostBinding } from '@angular/core';\nimport { BsCarouselImageDirective } from '../carousel-image/carousel-image.directive';\n\n@Directive({\n selector: 'img'\n})\nexport class BsCarouselImgDirective {\n constructor(image: BsCarouselImageDirective) {\n this.fetchPriority = (image && image.isFirst) ? 'high' : 'low';\n }\n \n @HostBinding('attr.fetch-priority') fetchPriority: 'high' | 'low' | 'auto';\n}\n","import { NgModule } from '@angular/core';\nimport { BsSwiperModule } from '@mintplayer/ng-swiper/swiper';\nimport { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsCarouselComponent } from './carousel/carousel.component';\nimport { BsCarouselImageDirective } from './carousel-image/carousel-image.directive';\nimport { BsCarouselImgDirective } from './carousel-img/carousel-img.directive';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\n\n@NgModule({\n declarations: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n BsSwiperModule,\n BsNoNoscriptDirective\n ],\n exports: [\n BsCarouselComponent,\n BsCarouselImageDirective,\n BsCarouselImgDirective,\n ]\n})\nexport class BsCarouselModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsCarouselComponent","i1.BsCarouselImageDirective"],"mappings":"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"}