@mintplayer/ng-bootstrap 18.5.0 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/breadcrumb/src/breadcrumb/breadcrumb.component.d.ts +1 -4
  2. package/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.d.ts +1 -4
  3. package/close/src/close.component.d.ts +2 -4
  4. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +16 -16
  5. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  6. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +12 -12
  7. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  8. package/fesm2022/mintplayer-ng-bootstrap-async-host-binding.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +3 -3
  10. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +14 -17
  12. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +3 -3
  14. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +4 -4
  16. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +11 -11
  18. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +3 -3
  20. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-card.mjs +12 -12
  22. package/fesm2022/mintplayer-ng-bootstrap-card.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +18 -16
  24. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +4 -5
  26. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +3 -3
  28. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +42 -35
  30. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +3 -3
  32. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +9 -8
  34. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +3 -3
  36. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +18 -16
  38. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +3 -3
  40. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +23 -23
  42. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +4 -4
  44. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +12 -12
  46. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +19 -16
  48. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +3 -3
  50. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs +3 -3
  52. package/fesm2022/mintplayer-ng-bootstrap-enum.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +17 -15
  54. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +3 -3
  56. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +4 -4
  58. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +3 -3
  60. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-form.mjs +18 -16
  62. package/fesm2022/mintplayer-ng-bootstrap-form.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +28 -24
  64. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -4
  66. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +4 -4
  68. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +4 -4
  70. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +3 -3
  72. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs +20 -16
  74. package/fesm2022/mintplayer-ng-bootstrap-instance-of.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +4 -4
  76. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +4 -4
  78. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +13 -17
  80. package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +16 -16
  82. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +3 -3
  84. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +37 -32
  86. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +23 -20
  88. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +3 -3
  90. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +44 -40
  92. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +12 -11
  94. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +4 -4
  96. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +36 -38
  98. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +4 -4
  100. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +3 -3
  102. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs +3 -3
  104. package/fesm2022/mintplayer-ng-bootstrap-parallax.mjs.map +1 -1
  105. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +13 -12
  106. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  107. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +3 -3
  108. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  109. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +23 -20
  110. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  111. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +12 -12
  112. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  113. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +13 -12
  114. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  115. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +3 -3
  116. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  117. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +13 -12
  118. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  119. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +35 -31
  120. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  121. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +16 -15
  122. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  123. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +20 -17
  124. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  125. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +19 -15
  126. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  127. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +17 -15
  128. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  129. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +12 -11
  130. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  131. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +3 -3
  132. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  133. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +4 -4
  134. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  135. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +3 -3
  136. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  137. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +4 -4
  138. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  139. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +17 -16
  140. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  141. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +12 -11
  142. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  143. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +17 -16
  144. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  145. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +4 -4
  146. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  147. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +3 -3
  148. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  149. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +33 -31
  150. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  151. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +18 -17
  152. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  153. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +13 -12
  154. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  155. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +12 -12
  156. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  157. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +4 -4
  158. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  159. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +3 -3
  160. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  161. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +4 -4
  162. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  163. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +4 -4
  164. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  165. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +4 -4
  166. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  167. package/fesm2022/mintplayer-ng-bootstrap.mjs.map +1 -1
  168. package/list-group/src/list-group/list-group.component.d.ts +2 -4
  169. package/offcanvas/src/components/offcanvas-body/offcanvas-body.component.d.ts +1 -4
  170. package/offcanvas/src/components/offcanvas-header/offcanvas-header.component.d.ts +1 -4
  171. package/package.json +13 -181
  172. package/range/src/component/range.component.d.ts +0 -1
  173. package/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.d.ts +0 -1
  174. package/esm2022/accordion/index.mjs +0 -2
  175. package/esm2022/accordion/mintplayer-ng-bootstrap-accordion.mjs +0 -5
  176. package/esm2022/accordion/src/accordion/accordion.component.mjs +0 -26
  177. package/esm2022/accordion/src/accordion-tab/accordion-tab.component.mjs +0 -68
  178. package/esm2022/accordion/src/accordion-tab-header/accordion-tab-header.component.mjs +0 -20
  179. package/esm2022/accordion/src/accordion.module.mjs +0 -37
  180. package/esm2022/accordion/src/index.mjs +0 -5
  181. package/esm2022/alert/index.mjs +0 -2
  182. package/esm2022/alert/mintplayer-ng-bootstrap-alert.mjs +0 -5
  183. package/esm2022/alert/src/alert/alert.component.mjs +0 -40
  184. package/esm2022/alert/src/alert-close/alert-close.component.mjs +0 -19
  185. package/esm2022/alert/src/alert.module.mjs +0 -25
  186. package/esm2022/alert/src/index.mjs +0 -4
  187. package/esm2022/async-host-binding/index.mjs +0 -2
  188. package/esm2022/async-host-binding/mintplayer-ng-bootstrap-async-host-binding.mjs +0 -5
  189. package/esm2022/async-host-binding/src/bind-event.plugin.mjs +0 -31
  190. package/esm2022/async-host-binding/src/index.mjs +0 -3
  191. package/esm2022/async-host-binding/src/provide-async-host-bindings.mjs +0 -10
  192. package/esm2022/badge/index.mjs +0 -2
  193. package/esm2022/badge/mintplayer-ng-bootstrap-badge.mjs +0 -5
  194. package/esm2022/badge/src/badge.component.mjs +0 -29
  195. package/esm2022/badge/src/index.mjs +0 -2
  196. package/esm2022/breadcrumb/index.mjs +0 -2
  197. package/esm2022/breadcrumb/mintplayer-ng-bootstrap-breadcrumb.mjs +0 -5
  198. package/esm2022/breadcrumb/src/breadcrumb/breadcrumb.component.mjs +0 -13
  199. package/esm2022/breadcrumb/src/breadcrumb-item/breadcrumb-item.component.mjs +0 -18
  200. package/esm2022/breadcrumb/src/breadcrumb.module.mjs +0 -17
  201. package/esm2022/breadcrumb/src/index.mjs +0 -4
  202. package/esm2022/button-group/index.mjs +0 -2
  203. package/esm2022/button-group/mintplayer-ng-bootstrap-button-group.mjs +0 -5
  204. package/esm2022/button-group/src/button-group/button-group.component.mjs +0 -11
  205. package/esm2022/button-group/src/index.mjs +0 -2
  206. package/esm2022/button-type/index.mjs +0 -2
  207. package/esm2022/button-type/mintplayer-ng-bootstrap-button-type.mjs +0 -5
  208. package/esm2022/button-type/src/button-type/button-type.directive.mjs +0 -31
  209. package/esm2022/button-type/src/index.mjs +0 -2
  210. package/esm2022/calendar/index.mjs +0 -2
  211. package/esm2022/calendar/mintplayer-ng-bootstrap-calendar.mjs +0 -5
  212. package/esm2022/calendar/src/calendar.component.mjs +0 -108
  213. package/esm2022/calendar/src/index.mjs +0 -2
  214. package/esm2022/calendar-month/index.mjs +0 -2
  215. package/esm2022/calendar-month/mintplayer-ng-bootstrap-calendar-month.mjs +0 -5
  216. package/esm2022/calendar-month/src/index.mjs +0 -4
  217. package/esm2022/calendar-month/src/interfaces/date-day-of-month.mjs +0 -2
  218. package/esm2022/calendar-month/src/interfaces/first-and-last-date.mjs +0 -2
  219. package/esm2022/calendar-month/src/interfaces/index.mjs +0 -5
  220. package/esm2022/calendar-month/src/interfaces/week.mjs +0 -2
  221. package/esm2022/calendar-month/src/interfaces/weekday.mjs +0 -2
  222. package/esm2022/calendar-month/src/pipes/index.mjs +0 -3
  223. package/esm2022/calendar-month/src/pipes/month-name/month-name.pipe.mjs +0 -23
  224. package/esm2022/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +0 -18
  225. package/esm2022/calendar-month/src/service/calendar-month.service.mjs +0 -94
  226. package/esm2022/card/index.mjs +0 -2
  227. package/esm2022/card/mintplayer-ng-bootstrap-card.mjs +0 -5
  228. package/esm2022/card/src/card/card.component.mjs +0 -16
  229. package/esm2022/card/src/card-header/card-header.component.mjs +0 -16
  230. package/esm2022/card/src/card.module.mjs +0 -27
  231. package/esm2022/card/src/index.mjs +0 -4
  232. package/esm2022/carousel/index.mjs +0 -2
  233. package/esm2022/carousel/mintplayer-ng-bootstrap-carousel.mjs +0 -5
  234. package/esm2022/carousel/src/carousel/carousel.component.mjs +0 -149
  235. package/esm2022/carousel/src/carousel-image/carousel-image.directive.mjs +0 -21
  236. package/esm2022/carousel/src/carousel-img/carousel-img.directive.mjs +0 -20
  237. package/esm2022/carousel/src/carousel.module.mjs +0 -42
  238. package/esm2022/carousel/src/index.mjs +0 -5
  239. package/esm2022/close/index.mjs +0 -2
  240. package/esm2022/close/mintplayer-ng-bootstrap-close.mjs +0 -5
  241. package/esm2022/close/src/close.component.mjs +0 -21
  242. package/esm2022/close/src/index.mjs +0 -2
  243. package/esm2022/code-snippet/index.mjs +0 -2
  244. package/esm2022/code-snippet/mintplayer-ng-bootstrap-code-snippet.mjs +0 -5
  245. package/esm2022/code-snippet/src/code-snippet.component.mjs +0 -47
  246. package/esm2022/code-snippet/src/index.mjs +0 -2
  247. package/esm2022/color-picker/color-picker.module.mjs +0 -60
  248. package/esm2022/color-picker/components/alpha-strip/alpha-strip.component.mjs +0 -80
  249. package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +0 -52
  250. package/esm2022/color-picker/components/color-wheel/color-wheel.component.mjs +0 -321
  251. package/esm2022/color-picker/components/index.mjs +0 -6
  252. package/esm2022/color-picker/components/luminosity-strip/luminosity-strip.component.mjs +0 -72
  253. package/esm2022/color-picker/components/slider/slider.component.mjs +0 -125
  254. package/esm2022/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.mjs +0 -130
  255. package/esm2022/color-picker/directives/index.mjs +0 -2
  256. package/esm2022/color-picker/index.mjs +0 -6
  257. package/esm2022/color-picker/interfaces/hs.mjs +0 -2
  258. package/esm2022/color-picker/interfaces/hsl-color.mjs +0 -2
  259. package/esm2022/color-picker/interfaces/index.mjs +0 -4
  260. package/esm2022/color-picker/interfaces/rgb-color.mjs +0 -2
  261. package/esm2022/color-picker/mintplayer-ng-bootstrap-color-picker.mjs +0 -5
  262. package/esm2022/color-picker/types/html-color.mjs +0 -2
  263. package/esm2022/color-picker/types/index.mjs +0 -2
  264. package/esm2022/container/index.mjs +0 -2
  265. package/esm2022/container/mintplayer-ng-bootstrap-container.mjs +0 -5
  266. package/esm2022/container/src/container/container.component.mjs +0 -11
  267. package/esm2022/container/src/index.mjs +0 -2
  268. package/esm2022/context-menu/index.mjs +0 -2
  269. package/esm2022/context-menu/mintplayer-ng-bootstrap-context-menu.mjs +0 -5
  270. package/esm2022/context-menu/src/context-menu.directive.mjs +0 -83
  271. package/esm2022/context-menu/src/context-menu.module.mjs +0 -34
  272. package/esm2022/context-menu/src/index.mjs +0 -3
  273. package/esm2022/copy/index.mjs +0 -2
  274. package/esm2022/copy/mintplayer-ng-bootstrap-copy.mjs +0 -5
  275. package/esm2022/copy/src/copy.directive.mjs +0 -46
  276. package/esm2022/copy/src/index.mjs +0 -2
  277. package/esm2022/datatable/index.mjs +0 -2
  278. package/esm2022/datatable/mintplayer-ng-bootstrap-datatable.mjs +0 -5
  279. package/esm2022/datatable/src/datatable/datatable.component.mjs +0 -56
  280. package/esm2022/datatable/src/datatable-column/datatable-column.directive.mjs +0 -24
  281. package/esm2022/datatable/src/datatable-settings.mjs +0 -37
  282. package/esm2022/datatable/src/datatable.module.mjs +0 -47
  283. package/esm2022/datatable/src/index.mjs +0 -6
  284. package/esm2022/datatable/src/row-template/row-template.directive.mjs +0 -31
  285. package/esm2022/datepicker/index.mjs +0 -2
  286. package/esm2022/datepicker/mintplayer-ng-bootstrap-datepicker.mjs +0 -5
  287. package/esm2022/datepicker/src/datepicker.component.mjs +0 -53
  288. package/esm2022/datepicker/src/index.mjs +0 -2
  289. package/esm2022/dock/index.mjs +0 -2
  290. package/esm2022/dock/mintplayer-ng-bootstrap-dock.mjs +0 -5
  291. package/esm2022/dock/src/dock/dock.component.mjs +0 -88
  292. package/esm2022/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +0 -59
  293. package/esm2022/dock/src/dock-panel/dock-panel.component.mjs +0 -27
  294. package/esm2022/dock/src/dock-panel-header/dock-panel-header.component.mjs +0 -274
  295. package/esm2022/dock/src/dock.module.mjs +0 -62
  296. package/esm2022/dock/src/enums/index.mjs +0 -2
  297. package/esm2022/dock/src/enums/pane-type.enum.mjs +0 -8
  298. package/esm2022/dock/src/index.mjs +0 -10
  299. package/esm2022/dock/src/interfaces/dock-layout.mjs +0 -2
  300. package/esm2022/dock/src/interfaces/drag-operation.mjs +0 -2
  301. package/esm2022/dock/src/interfaces/index.mjs +0 -6
  302. package/esm2022/dock/src/interfaces/point.mjs +0 -2
  303. package/esm2022/dock/src/interfaces/remove-from-pane-result.mjs +0 -2
  304. package/esm2022/dock/src/interfaces/size.mjs +0 -2
  305. package/esm2022/dock/src/panes/content-pane.mjs +0 -11
  306. package/esm2022/dock/src/panes/dock-pane.mjs +0 -3
  307. package/esm2022/dock/src/panes/document-host-pane.mjs +0 -11
  308. package/esm2022/dock/src/panes/floating-pane.mjs +0 -11
  309. package/esm2022/dock/src/panes/index.mjs +0 -7
  310. package/esm2022/dock/src/panes/split-pane.mjs +0 -13
  311. package/esm2022/dock/src/panes/tab-group-pane.mjs +0 -12
  312. package/esm2022/dock/src/services/dock/dock.service.mjs +0 -56
  313. package/esm2022/dock/src/services/index.mjs +0 -2
  314. package/esm2022/dock/src/types/split-pane-orientation.type.mjs +0 -2
  315. package/esm2022/dropdown/index.mjs +0 -2
  316. package/esm2022/dropdown/mintplayer-ng-bootstrap-dropdown.mjs +0 -5
  317. package/esm2022/dropdown/src/dropdown/dropdown.directive.mjs +0 -70
  318. package/esm2022/dropdown/src/dropdown-menu/dropdown-menu.directive.mjs +0 -110
  319. package/esm2022/dropdown/src/dropdown-toggle/dropdown-toggle.directive.mjs +0 -27
  320. package/esm2022/dropdown/src/dropdown.module.mjs +0 -41
  321. package/esm2022/dropdown/src/index.mjs +0 -5
  322. package/esm2022/dropdown-divider/index.mjs +0 -2
  323. package/esm2022/dropdown-divider/mintplayer-ng-bootstrap-dropdown-divider.mjs +0 -5
  324. package/esm2022/dropdown-divider/src/dropdown-divider.directive.mjs +0 -20
  325. package/esm2022/dropdown-divider/src/index.mjs +0 -2
  326. package/esm2022/dropdown-menu/index.mjs +0 -2
  327. package/esm2022/dropdown-menu/mintplayer-ng-bootstrap-dropdown-menu.mjs +0 -5
  328. package/esm2022/dropdown-menu/src/dropdown-item/dropdown-item.component.mjs +0 -19
  329. package/esm2022/dropdown-menu/src/dropdown-menu/dropdown-menu.component.mjs +0 -41
  330. package/esm2022/dropdown-menu/src/dropdown-menu.module.mjs +0 -26
  331. package/esm2022/dropdown-menu/src/index.mjs +0 -4
  332. package/esm2022/enhanced-paste/index.mjs +0 -2
  333. package/esm2022/enhanced-paste/mintplayer-ng-bootstrap-enhanced-paste.mjs +0 -5
  334. package/esm2022/enhanced-paste/src/directive/enhanced-paste.directive.mjs +0 -58
  335. package/esm2022/enhanced-paste/src/index.mjs +0 -3
  336. package/esm2022/enhanced-paste/src/interfaces/number-overflow.mjs +0 -2
  337. package/esm2022/enum/index.mjs +0 -2
  338. package/esm2022/enum/mintplayer-ng-bootstrap-enum.mjs +0 -5
  339. package/esm2022/enum/src/index.mjs +0 -3
  340. package/esm2022/enum/src/interfaces/enum-item.mjs +0 -2
  341. package/esm2022/enum/src/interfaces/index.mjs +0 -2
  342. package/esm2022/enum/src/service/enum.service.mjs +0 -31
  343. package/esm2022/file-upload/index.mjs +0 -2
  344. package/esm2022/file-upload/mintplayer-ng-bootstrap-file-upload.mjs +0 -5
  345. package/esm2022/file-upload/src/component/file-upload.component.mjs +0 -86
  346. package/esm2022/file-upload/src/directive/file-upload-template.directive.mjs +0 -31
  347. package/esm2022/file-upload/src/file-upload.mjs +0 -2
  348. package/esm2022/file-upload/src/file-upload.module.mjs +0 -47
  349. package/esm2022/file-upload/src/index.mjs +0 -6
  350. package/esm2022/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +0 -24
  351. package/esm2022/file-upload/src/pipes/index.mjs +0 -2
  352. package/esm2022/floating-labels/index.mjs +0 -2
  353. package/esm2022/floating-labels/mintplayer-ng-bootstrap-floating-labels.mjs +0 -5
  354. package/esm2022/floating-labels/src/floating-label/floating-label.component.mjs +0 -19
  355. package/esm2022/floating-labels/src/index.mjs +0 -2
  356. package/esm2022/font-color/index.mjs +0 -2
  357. package/esm2022/font-color/mintplayer-ng-bootstrap-font-color.mjs +0 -5
  358. package/esm2022/font-color/src/font-color.pipe.mjs +0 -28
  359. package/esm2022/for/index.mjs +0 -2
  360. package/esm2022/for/mintplayer-ng-bootstrap-for.mjs +0 -5
  361. package/esm2022/for/src/for.directive.mjs +0 -37
  362. package/esm2022/for/src/index.mjs +0 -2
  363. package/esm2022/form/index.mjs +0 -2
  364. package/esm2022/form/mintplayer-ng-bootstrap-form.mjs +0 -5
  365. package/esm2022/form/src/form/form.component.mjs +0 -24
  366. package/esm2022/form/src/form-control/form-control.directive.mjs +0 -22
  367. package/esm2022/form/src/form-group/form-group.directive.mjs +0 -19
  368. package/esm2022/form/src/form.module.mjs +0 -20
  369. package/esm2022/form/src/index.mjs +0 -5
  370. package/esm2022/grid/index.mjs +0 -2
  371. package/esm2022/grid/mintplayer-ng-bootstrap-grid.mjs +0 -5
  372. package/esm2022/grid/src/component/grid.component.mjs +0 -33
  373. package/esm2022/grid/src/directives/col-form-label/col-form-label.directive.mjs +0 -19
  374. package/esm2022/grid/src/directives/column/column.directive.mjs +0 -105
  375. package/esm2022/grid/src/directives/index.mjs +0 -4
  376. package/esm2022/grid/src/directives/row/row.directive.mjs +0 -19
  377. package/esm2022/grid/src/grid.module.mjs +0 -22
  378. package/esm2022/grid/src/index.mjs +0 -5
  379. package/esm2022/grid/src/interfaces/column-definition.mjs +0 -2
  380. package/esm2022/grid/src/interfaces/index.mjs +0 -2
  381. package/esm2022/has-id/index.mjs +0 -2
  382. package/esm2022/has-id/mintplayer-ng-bootstrap-has-id.mjs +0 -5
  383. package/esm2022/has-id/src/has-id.mjs +0 -2
  384. package/esm2022/has-overlay/index.mjs +0 -2
  385. package/esm2022/has-overlay/mintplayer-ng-bootstrap-has-overlay.mjs +0 -5
  386. package/esm2022/has-overlay/src/has-overlay/has-overlay.component.mjs +0 -11
  387. package/esm2022/has-overlay/src/index.mjs +0 -2
  388. package/esm2022/has-property/index.mjs +0 -2
  389. package/esm2022/has-property/mintplayer-ng-bootstrap-has-property.mjs +0 -5
  390. package/esm2022/has-property/src/has-property.pipe.mjs +0 -17
  391. package/esm2022/has-property/src/index.mjs +0 -2
  392. package/esm2022/in-list/index.mjs +0 -2
  393. package/esm2022/in-list/mintplayer-ng-bootstrap-in-list.mjs +0 -5
  394. package/esm2022/in-list/src/in-list.pipe.mjs +0 -17
  395. package/esm2022/index.mjs +0 -4
  396. package/esm2022/input-group/index.mjs +0 -2
  397. package/esm2022/input-group/mintplayer-ng-bootstrap-input-group.mjs +0 -5
  398. package/esm2022/input-group/src/index.mjs +0 -2
  399. package/esm2022/input-group/src/input-group/input-group.component.mjs +0 -11
  400. package/esm2022/instance-of/index.mjs +0 -2
  401. package/esm2022/instance-of/mintplayer-ng-bootstrap-instance-of.mjs +0 -5
  402. package/esm2022/instance-of/src/directives/index.mjs +0 -5
  403. package/esm2022/instance-of/src/directives/instanceof-case.directive.mjs +0 -46
  404. package/esm2022/instance-of/src/directives/instanceof-default.directive.mjs +0 -29
  405. package/esm2022/instance-of/src/directives/instanceof.directive.mjs +0 -62
  406. package/esm2022/instance-of/src/directives/switch-view.mjs +0 -30
  407. package/esm2022/instance-of/src/index.mjs +0 -6
  408. package/esm2022/instance-of/src/instance-of.module.mjs +0 -37
  409. package/esm2022/instance-of/src/interfaces/index.mjs +0 -2
  410. package/esm2022/instance-of/src/interfaces/instance-of-context.mjs +0 -7
  411. package/esm2022/instance-of/src/pipes/index.mjs +0 -2
  412. package/esm2022/instance-of/src/pipes/instance-of.pipe.mjs +0 -17
  413. package/esm2022/instance-of/src/types/abstract.type.mjs +0 -2
  414. package/esm2022/instance-of/src/types/index.mjs +0 -2
  415. package/esm2022/let/directive/let.directive.mjs +0 -39
  416. package/esm2022/let/index.mjs +0 -3
  417. package/esm2022/let/interfaces/index.mjs +0 -2
  418. package/esm2022/let/interfaces/let-context.mjs +0 -2
  419. package/esm2022/let/mintplayer-ng-bootstrap-let.mjs +0 -5
  420. package/esm2022/lib/enums/color.enum.mjs +0 -15
  421. package/esm2022/lib/enums/index.mjs +0 -2
  422. package/esm2022/lib/providers/development.provider.mjs +0 -8
  423. package/esm2022/lib/providers/index.mjs +0 -2
  424. package/esm2022/lib/types/breakpoint.mjs +0 -2
  425. package/esm2022/lib/types/index.mjs +0 -4
  426. package/esm2022/lib/types/position.mjs +0 -2
  427. package/esm2022/lib/types/size.mjs +0 -2
  428. package/esm2022/linify/index.mjs +0 -2
  429. package/esm2022/linify/mintplayer-ng-bootstrap-linify.mjs +0 -5
  430. package/esm2022/linify/src/linify.pipe.mjs +0 -22
  431. package/esm2022/list-group/index.mjs +0 -2
  432. package/esm2022/list-group/mintplayer-ng-bootstrap-list-group.mjs +0 -5
  433. package/esm2022/list-group/src/index.mjs +0 -4
  434. package/esm2022/list-group/src/list-group/list-group.component.mjs +0 -19
  435. package/esm2022/list-group/src/list-group-item/list-group-item.component.mjs +0 -17
  436. package/esm2022/list-group/src/list-group.module.mjs +0 -27
  437. package/esm2022/markdown/index.mjs +0 -5
  438. package/esm2022/markdown/mintplayer-ng-bootstrap-markdown.mjs +0 -5
  439. package/esm2022/markdown/src/bold/bold.pipe.mjs +0 -31
  440. package/esm2022/markdown/src/italic/italic.pipe.mjs +0 -31
  441. package/esm2022/markdown/src/strikethrough/strikethrough.pipe.mjs +0 -31
  442. package/esm2022/markdown/src/underline/underline.pipe.mjs +0 -31
  443. package/esm2022/marquee/index.mjs +0 -2
  444. package/esm2022/marquee/mintplayer-ng-bootstrap-marquee.mjs +0 -5
  445. package/esm2022/marquee/src/marquee/marquee.component.mjs +0 -11
  446. package/esm2022/mintplayer-ng-bootstrap.mjs +0 -5
  447. package/esm2022/modal/index.mjs +0 -2
  448. package/esm2022/modal/mintplayer-ng-bootstrap-modal.mjs +0 -5
  449. package/esm2022/modal/src/components/index.mjs +0 -3
  450. package/esm2022/modal/src/components/modal/modal.component.mjs +0 -21
  451. package/esm2022/modal/src/components/modal-host/modal-host.component.mjs +0 -76
  452. package/esm2022/modal/src/directives/index.mjs +0 -6
  453. package/esm2022/modal/src/directives/modal/modal.directive.mjs +0 -17
  454. package/esm2022/modal/src/directives/modal-body/modal-body.directive.mjs +0 -19
  455. package/esm2022/modal/src/directives/modal-close/modal-close.directive.mjs +0 -23
  456. package/esm2022/modal/src/directives/modal-footer/modal-footer.directive.mjs +0 -19
  457. package/esm2022/modal/src/directives/modal-header/modal-header.directive.mjs +0 -19
  458. package/esm2022/modal/src/index.mjs +0 -4
  459. package/esm2022/modal/src/modal.module.mjs +0 -74
  460. package/esm2022/modal/src/providers/modal-content.provider.mjs +0 -3
  461. package/esm2022/modal/src/providers/portal-factory.provider.mjs +0 -3
  462. package/esm2022/multiselect/index.mjs +0 -2
  463. package/esm2022/multiselect/mintplayer-ng-bootstrap-multiselect.mjs +0 -5
  464. package/esm2022/multiselect/src/component/multiselect.component.mjs +0 -40
  465. package/esm2022/multiselect/src/directives/button-template/button-template.directive.mjs +0 -25
  466. package/esm2022/multiselect/src/directives/footer-template/footer-template.directive.mjs +0 -17
  467. package/esm2022/multiselect/src/directives/header-template/header-template.directive.mjs +0 -17
  468. package/esm2022/multiselect/src/directives/index.mjs +0 -4
  469. package/esm2022/multiselect/src/index.mjs +0 -4
  470. package/esm2022/multiselect/src/multiselect.module.mjs +0 -60
  471. package/esm2022/navbar/index.mjs +0 -2
  472. package/esm2022/navbar/mintplayer-ng-bootstrap-navbar.mjs +0 -5
  473. package/esm2022/navbar/src/dropdown-toggle/dropdown-toggle.directive.mjs +0 -38
  474. package/esm2022/navbar/src/expand-button/expand-button.directive.mjs +0 -25
  475. package/esm2022/navbar/src/index.mjs +0 -12
  476. package/esm2022/navbar/src/nav-link/nav-link.directive.mjs +0 -42
  477. package/esm2022/navbar/src/navbar/navbar.component.mjs +0 -137
  478. package/esm2022/navbar/src/navbar-brand/navbar-brand.component.mjs +0 -20
  479. package/esm2022/navbar/src/navbar-content/navbar-content.directive.mjs +0 -63
  480. package/esm2022/navbar/src/navbar-dropdown/navbar-dropdown.component.mjs +0 -147
  481. package/esm2022/navbar/src/navbar-item/navbar-item.component.mjs +0 -96
  482. package/esm2022/navbar/src/navbar-nav/navbar-nav.component.mjs +0 -63
  483. package/esm2022/navbar/src/navbar.module.mjs +0 -93
  484. package/esm2022/navbar-toggler/index.mjs +0 -2
  485. package/esm2022/navbar-toggler/mintplayer-ng-bootstrap-navbar-toggler.mjs +0 -5
  486. package/esm2022/navbar-toggler/src/index.mjs +0 -2
  487. package/esm2022/navbar-toggler/src/navbar-toggler/navbar-toggler.component.mjs +0 -43
  488. package/esm2022/navigation-lock/index.mjs +0 -2
  489. package/esm2022/navigation-lock/mintplayer-ng-bootstrap-navigation-lock.mjs +0 -5
  490. package/esm2022/navigation-lock/src/directive/navigation-lock.directive.mjs +0 -89
  491. package/esm2022/navigation-lock/src/guard/navigation-lock.guard.mjs +0 -22
  492. package/esm2022/navigation-lock/src/index.mjs +0 -5
  493. package/esm2022/navigation-lock/src/interface/has-navigation-lock.mjs +0 -2
  494. package/esm2022/navigation-lock/src/navigation-lock.module.mjs +0 -28
  495. package/esm2022/no-noscript/index.mjs +0 -2
  496. package/esm2022/no-noscript/mintplayer-ng-bootstrap-no-noscript.mjs +0 -5
  497. package/esm2022/no-noscript/src/index.mjs +0 -2
  498. package/esm2022/no-noscript/src/no-noscript/no-noscript.directive.mjs +0 -28
  499. package/esm2022/offcanvas/index.mjs +0 -2
  500. package/esm2022/offcanvas/mintplayer-ng-bootstrap-offcanvas.mjs +0 -5
  501. package/esm2022/offcanvas/src/components/index.mjs +0 -5
  502. package/esm2022/offcanvas/src/components/offcanvas/offcanvas.component.mjs +0 -108
  503. package/esm2022/offcanvas/src/components/offcanvas-body/offcanvas-body.component.mjs +0 -18
  504. package/esm2022/offcanvas/src/components/offcanvas-header/offcanvas-header.component.mjs +0 -14
  505. package/esm2022/offcanvas/src/components/offcanvas-host/offcanvas-host.component.mjs +0 -125
  506. package/esm2022/offcanvas/src/directives/index.mjs +0 -4
  507. package/esm2022/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.mjs +0 -23
  508. package/esm2022/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.mjs +0 -17
  509. package/esm2022/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.mjs +0 -65
  510. package/esm2022/offcanvas/src/index.mjs +0 -4
  511. package/esm2022/offcanvas/src/offcanvas.module.mjs +0 -76
  512. package/esm2022/offcanvas/src/providers/offcanvas-content.provider.mjs +0 -3
  513. package/esm2022/offcanvas/src/providers/portal-factory.provider.mjs +0 -3
  514. package/esm2022/ordinal-number/index.mjs +0 -2
  515. package/esm2022/ordinal-number/mintplayer-ng-bootstrap-ordinal-number.mjs +0 -5
  516. package/esm2022/ordinal-number/src/index.mjs +0 -2
  517. package/esm2022/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +0 -30
  518. package/esm2022/pagination/index.mjs +0 -2
  519. package/esm2022/pagination/mintplayer-ng-bootstrap-pagination.mjs +0 -5
  520. package/esm2022/pagination/src/component/index.mjs +0 -2
  521. package/esm2022/pagination/src/component/pagination/pagination.component.mjs +0 -188
  522. package/esm2022/pagination/src/index.mjs +0 -4
  523. package/esm2022/pagination/src/interfaces/index.mjs +0 -2
  524. package/esm2022/pagination/src/interfaces/page-with-selection.mjs +0 -2
  525. package/esm2022/pagination/src/types/index.mjs +0 -2
  526. package/esm2022/pagination/src/types/page-number.type.mjs +0 -2
  527. package/esm2022/parallax/index.mjs +0 -2
  528. package/esm2022/parallax/mintplayer-ng-bootstrap-parallax.mjs +0 -5
  529. package/esm2022/parallax/src/parallax.component.mjs +0 -20
  530. package/esm2022/placeholder/index.mjs +0 -2
  531. package/esm2022/placeholder/mintplayer-ng-bootstrap-placeholder.mjs +0 -5
  532. package/esm2022/placeholder/src/index.mjs +0 -4
  533. package/esm2022/placeholder/src/placeholder/placeholder.component.mjs +0 -26
  534. package/esm2022/placeholder/src/placeholder-field/placeholder-field.directive.mjs +0 -41
  535. package/esm2022/placeholder/src/placeholder.module.mjs +0 -19
  536. package/esm2022/playlist-toggler/index.mjs +0 -2
  537. package/esm2022/playlist-toggler/mintplayer-ng-bootstrap-playlist-toggler.mjs +0 -5
  538. package/esm2022/playlist-toggler/src/index.mjs +0 -2
  539. package/esm2022/playlist-toggler/src/playlist-toggler/playlist-toggler.component.mjs +0 -43
  540. package/esm2022/popover/index.mjs +0 -2
  541. package/esm2022/popover/mintplayer-ng-bootstrap-popover.mjs +0 -5
  542. package/esm2022/popover/src/component/popover.component.mjs +0 -57
  543. package/esm2022/popover/src/directives/index.mjs +0 -4
  544. package/esm2022/popover/src/directives/popover/popover.directive.mjs +0 -128
  545. package/esm2022/popover/src/directives/popover-body/popover-body.directive.mjs +0 -19
  546. package/esm2022/popover/src/directives/popover-header/popover-header.directive.mjs +0 -19
  547. package/esm2022/popover/src/index.mjs +0 -4
  548. package/esm2022/popover/src/popover.module.mjs +0 -36
  549. package/esm2022/popover/src/providers/popover-content.provider.mjs +0 -3
  550. package/esm2022/popover/src/providers/portal-factory.provider.mjs +0 -3
  551. package/esm2022/progress-bar/index.mjs +0 -2
  552. package/esm2022/progress-bar/mintplayer-ng-bootstrap-progress-bar.mjs +0 -5
  553. package/esm2022/progress-bar/src/index.mjs +0 -4
  554. package/esm2022/progress-bar/src/progress/progress.component.mjs +0 -30
  555. package/esm2022/progress-bar/src/progress-bar/progress-bar.component.mjs +0 -103
  556. package/esm2022/progress-bar/src/progress-bar.module.mjs +0 -29
  557. package/esm2022/range/index.mjs +0 -2
  558. package/esm2022/range/mintplayer-ng-bootstrap-range.mjs +0 -5
  559. package/esm2022/range/src/component/range.component.mjs +0 -25
  560. package/esm2022/range/src/index.mjs +0 -4
  561. package/esm2022/range/src/range.module.mjs +0 -19
  562. package/esm2022/range/src/value-accessor/range-value-accessor.mjs +0 -57
  563. package/esm2022/rating/index.mjs +0 -2
  564. package/esm2022/rating/mintplayer-ng-bootstrap-rating.mjs +0 -5
  565. package/esm2022/rating/src/component/rating.component.mjs +0 -69
  566. package/esm2022/rating/src/index.mjs +0 -2
  567. package/esm2022/resizable/index.mjs +0 -2
  568. package/esm2022/resizable/mintplayer-ng-bootstrap-resizable.mjs +0 -5
  569. package/esm2022/resizable/src/index.mjs +0 -7
  570. package/esm2022/resizable/src/interfaces/index.mjs +0 -4
  571. package/esm2022/resizable/src/interfaces/pointer-data.mjs +0 -2
  572. package/esm2022/resizable/src/interfaces/preset-position.mjs +0 -2
  573. package/esm2022/resizable/src/interfaces/resize-action.mjs +0 -2
  574. package/esm2022/resizable/src/providers/index.mjs +0 -2
  575. package/esm2022/resizable/src/providers/resizable.provider.mjs +0 -3
  576. package/esm2022/resizable/src/resizable/resizable.component.mjs +0 -95
  577. package/esm2022/resizable/src/resizable.module.mjs +0 -29
  578. package/esm2022/resizable/src/resize-glyph/resize-glyph.directive.mjs +0 -219
  579. package/esm2022/resizable/src/types/index.mjs +0 -2
  580. package/esm2022/resizable/src/types/positioning.mjs +0 -2
  581. package/esm2022/scheduler/index.mjs +0 -2
  582. package/esm2022/scheduler/mintplayer-ng-bootstrap-scheduler.mjs +0 -5
  583. package/esm2022/scheduler/src/components/index.mjs +0 -3
  584. package/esm2022/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +0 -86
  585. package/esm2022/scheduler/src/components/scheduler/scheduler.component.mjs +0 -536
  586. package/esm2022/scheduler/src/constants/available-scales.mjs +0 -12
  587. package/esm2022/scheduler/src/constants/index.mjs +0 -2
  588. package/esm2022/scheduler/src/enums/drag-operation.mjs +0 -8
  589. package/esm2022/scheduler/src/enums/index.mjs +0 -2
  590. package/esm2022/scheduler/src/enums/scheduler-mode.mjs +0 -6
  591. package/esm2022/scheduler/src/index.mjs +0 -6
  592. package/esm2022/scheduler/src/interfaces/drag-operation.mjs +0 -2
  593. package/esm2022/scheduler/src/interfaces/index.mjs +0 -6
  594. package/esm2022/scheduler/src/interfaces/preview-event.mjs +0 -2
  595. package/esm2022/scheduler/src/interfaces/resource-group.mjs +0 -2
  596. package/esm2022/scheduler/src/interfaces/resource-or-group.mjs +0 -2
  597. package/esm2022/scheduler/src/interfaces/resource.mjs +0 -2
  598. package/esm2022/scheduler/src/interfaces/scheduler-event-part.mjs +0 -2
  599. package/esm2022/scheduler/src/interfaces/scheduler-event-with-parts.mjs +0 -2
  600. package/esm2022/scheduler/src/interfaces/scheduler-event.mjs +0 -2
  601. package/esm2022/scheduler/src/interfaces/scheduler-schale.mjs +0 -2
  602. package/esm2022/scheduler/src/interfaces/scheduler-stamp-with-slots.mjs +0 -2
  603. package/esm2022/scheduler/src/interfaces/time-slot.mjs +0 -2
  604. package/esm2022/scheduler/src/interfaces/timeline-options.mjs +0 -2
  605. package/esm2022/scheduler/src/interfaces/timeline-track.mjs +0 -2
  606. package/esm2022/scheduler/src/interfaces/week-options.mjs +0 -2
  607. package/esm2022/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.mjs +0 -16
  608. package/esm2022/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.mjs +0 -20
  609. package/esm2022/scheduler/src/pipes/date-offset/date-offset.pipe.mjs +0 -20
  610. package/esm2022/scheduler/src/pipes/day-of-week/day-of-week.pipe.mjs +0 -22
  611. package/esm2022/scheduler/src/scheduler.module.mjs +0 -41
  612. package/esm2022/scheduler/src/services/timeline/timeline.service.mjs +0 -65
  613. package/esm2022/scrollspy/index.mjs +0 -2
  614. package/esm2022/scrollspy/mintplayer-ng-bootstrap-scrollspy.mjs +0 -5
  615. package/esm2022/scrollspy/src/component/scrollspy.component.mjs +0 -85
  616. package/esm2022/scrollspy/src/directives/scrollspy.directive.mjs +0 -16
  617. package/esm2022/scrollspy/src/index.mjs +0 -5
  618. package/esm2022/scrollspy/src/scrollspy.module.mjs +0 -26
  619. package/esm2022/scrollspy/src/services/index.mjs +0 -2
  620. package/esm2022/scrollspy/src/services/scroll-offset/scroll-offset.service.mjs +0 -31
  621. package/esm2022/searchbox/index.mjs +0 -4
  622. package/esm2022/searchbox/mintplayer-ng-bootstrap-searchbox.mjs +0 -5
  623. package/esm2022/searchbox/src/directives/enter-search-term.directive.mjs +0 -17
  624. package/esm2022/searchbox/src/directives/index.mjs +0 -4
  625. package/esm2022/searchbox/src/directives/no-results.directive.mjs +0 -17
  626. package/esm2022/searchbox/src/directives/suggestion.directive.mjs +0 -32
  627. package/esm2022/searchbox/src/searchbox/searchbox.component.mjs +0 -113
  628. package/esm2022/searchbox/src/searchbox.module.mjs +0 -66
  629. package/esm2022/select/index.mjs +0 -2
  630. package/esm2022/select/mintplayer-ng-bootstrap-select.mjs +0 -5
  631. package/esm2022/select/src/component/select.component.mjs +0 -85
  632. package/esm2022/select/src/index.mjs +0 -5
  633. package/esm2022/select/src/select.module.mjs +0 -31
  634. package/esm2022/select/src/types/index.mjs +0 -2
  635. package/esm2022/select/src/types/select-size.mjs +0 -2
  636. package/esm2022/select/src/value-accessors/index.mjs +0 -2
  637. package/esm2022/select/src/value-accessors/select-value-accessor.mjs +0 -166
  638. package/esm2022/select2/index.mjs +0 -2
  639. package/esm2022/select2/mintplayer-ng-bootstrap-select2.mjs +0 -5
  640. package/esm2022/select2/src/component/select2.component.mjs +0 -85
  641. package/esm2022/select2/src/directive/index.mjs +0 -3
  642. package/esm2022/select2/src/directive/item-template/item-template.directive.mjs +0 -32
  643. package/esm2022/select2/src/directive/suggestion-template/suggestion-template.directive.mjs +0 -32
  644. package/esm2022/select2/src/index.mjs +0 -4
  645. package/esm2022/select2/src/select2.module.mjs +0 -52
  646. package/esm2022/shell/index.mjs +0 -5
  647. package/esm2022/shell/mintplayer-ng-bootstrap-shell.mjs +0 -5
  648. package/esm2022/shell/src/shell/shell.component.mjs +0 -41
  649. package/esm2022/shell/src/shell-sidebar/shell-sidebar.directive.mjs +0 -19
  650. package/esm2022/shell/src/shell-state.mjs +0 -2
  651. package/esm2022/shell/src/shell.module.mjs +0 -19
  652. package/esm2022/signature-pad/index.mjs +0 -2
  653. package/esm2022/signature-pad/mintplayer-ng-bootstrap-signature-pad.mjs +0 -5
  654. package/esm2022/signature-pad/src/component/signature-pad.component.mjs +0 -109
  655. package/esm2022/signature-pad/src/index.mjs +0 -3
  656. package/esm2022/signature-pad/src/interfaces/index.mjs +0 -4
  657. package/esm2022/signature-pad/src/interfaces/point.mjs +0 -2
  658. package/esm2022/signature-pad/src/interfaces/signature.mjs +0 -2
  659. package/esm2022/signature-pad/src/interfaces/stroke.mjs +0 -2
  660. package/esm2022/slugify/index.mjs +0 -2
  661. package/esm2022/slugify/mintplayer-ng-bootstrap-slugify.mjs +0 -5
  662. package/esm2022/slugify/src/slugify.pipe.mjs +0 -24
  663. package/esm2022/spinner/index.mjs +0 -2
  664. package/esm2022/spinner/mintplayer-ng-bootstrap-spinner.mjs +0 -5
  665. package/esm2022/spinner/src/index.mjs +0 -2
  666. package/esm2022/spinner/src/spinner.component.mjs +0 -43
  667. package/esm2022/split-string/index.mjs +0 -2
  668. package/esm2022/split-string/mintplayer-ng-bootstrap-split-string.mjs +0 -5
  669. package/esm2022/split-string/src/split-string.pipe.mjs +0 -19
  670. package/esm2022/splitter/index.mjs +0 -2
  671. package/esm2022/splitter/mintplayer-ng-bootstrap-splitter.mjs +0 -5
  672. package/esm2022/splitter/src/element-at/element-at.pipe.mjs +0 -21
  673. package/esm2022/splitter/src/index.mjs +0 -6
  674. package/esm2022/splitter/src/interfaces/drag-operation.mjs +0 -6
  675. package/esm2022/splitter/src/interfaces/point.mjs +0 -2
  676. package/esm2022/splitter/src/split-panel/split-panel.component.mjs +0 -18
  677. package/esm2022/splitter/src/splitter/splitter.component.mjs +0 -205
  678. package/esm2022/splitter/src/splitter.module.mjs +0 -22
  679. package/esm2022/splitter/src/types/direction.type.mjs +0 -2
  680. package/esm2022/splitter/src/types/index.mjs +0 -2
  681. package/esm2022/sticky-footer/index.mjs +0 -2
  682. package/esm2022/sticky-footer/mintplayer-ng-bootstrap-sticky-footer.mjs +0 -5
  683. package/esm2022/sticky-footer/src/index.mjs +0 -4
  684. package/esm2022/sticky-footer/src/sticky-footer/sticky-footer.component.mjs +0 -28
  685. package/esm2022/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.mjs +0 -16
  686. package/esm2022/sticky-footer/src/sticky-footer.module.mjs +0 -20
  687. package/esm2022/tab-control/index.mjs +0 -2
  688. package/esm2022/tab-control/mintplayer-ng-bootstrap-tab-control.mjs +0 -5
  689. package/esm2022/tab-control/src/index.mjs +0 -6
  690. package/esm2022/tab-control/src/tab-control/tab-control.component.mjs +0 -128
  691. package/esm2022/tab-control/src/tab-control.module.mjs +0 -42
  692. package/esm2022/tab-control/src/tab-page/tab-page.component.mjs +0 -29
  693. package/esm2022/tab-control/src/tab-page-header/tab-page-header.directive.mjs +0 -16
  694. package/esm2022/tab-control/src/tabs-position.mjs +0 -2
  695. package/esm2022/table/index.mjs +0 -2
  696. package/esm2022/table/mintplayer-ng-bootstrap-table.mjs +0 -5
  697. package/esm2022/table/src/component/table.component.mjs +0 -47
  698. package/esm2022/table/src/index.mjs +0 -2
  699. package/esm2022/timepicker/index.mjs +0 -2
  700. package/esm2022/timepicker/mintplayer-ng-bootstrap-timepicker.mjs +0 -5
  701. package/esm2022/timepicker/src/index.mjs +0 -2
  702. package/esm2022/timepicker/src/timepicker.component.mjs +0 -127
  703. package/esm2022/toast/index.mjs +0 -2
  704. package/esm2022/toast/mintplayer-ng-bootstrap-toast.mjs +0 -5
  705. package/esm2022/toast/src/components/index.mjs +0 -5
  706. package/esm2022/toast/src/components/toast/toast.component.mjs +0 -16
  707. package/esm2022/toast/src/components/toast-body/toast-body.component.mjs +0 -20
  708. package/esm2022/toast/src/components/toast-container/toast-container.component.mjs +0 -22
  709. package/esm2022/toast/src/components/toast-header/toast-header.component.mjs +0 -17
  710. package/esm2022/toast/src/directives/index.mjs +0 -2
  711. package/esm2022/toast/src/directives/toast-close/toast-close.directive.mjs +0 -30
  712. package/esm2022/toast/src/index.mjs +0 -6
  713. package/esm2022/toast/src/pipes/add-properties.pipe.mjs +0 -17
  714. package/esm2022/toast/src/providers/portal-factory.provider.mjs +0 -3
  715. package/esm2022/toast/src/services/index.mjs +0 -2
  716. package/esm2022/toast/src/services/toast/toast.service.mjs +0 -55
  717. package/esm2022/toast/src/toast.module.mjs +0 -78
  718. package/esm2022/toggle-button/index.mjs +0 -2
  719. package/esm2022/toggle-button/mintplayer-ng-bootstrap-toggle-button.mjs +0 -5
  720. package/esm2022/toggle-button/src/component/toggle-button.component.mjs +0 -153
  721. package/esm2022/toggle-button/src/directives/index.mjs +0 -2
  722. package/esm2022/toggle-button/src/directives/toggle-button-group/toggle-button-group.directive.mjs +0 -19
  723. package/esm2022/toggle-button/src/index.mjs +0 -6
  724. package/esm2022/toggle-button/src/toggle-button.module.mjs +0 -34
  725. package/esm2022/toggle-button/src/types/check-style.mjs +0 -2
  726. package/esm2022/toggle-button/src/types/index.mjs +0 -2
  727. package/esm2022/toggle-button/src/value-accessor/toggle-button-value-accessor.mjs +0 -103
  728. package/esm2022/tooltip/index.mjs +0 -2
  729. package/esm2022/tooltip/mintplayer-ng-bootstrap-tooltip.mjs +0 -5
  730. package/esm2022/tooltip/src/component/tooltip.component.mjs +0 -47
  731. package/esm2022/tooltip/src/directive/tooltip.directive.mjs +0 -111
  732. package/esm2022/tooltip/src/index.mjs +0 -4
  733. package/esm2022/tooltip/src/providers/tooltip-content.provider.mjs +0 -3
  734. package/esm2022/tooltip/src/tooltip.module.mjs +0 -35
  735. package/esm2022/treeview/index.mjs +0 -2
  736. package/esm2022/treeview/mintplayer-ng-bootstrap-treeview.mjs +0 -5
  737. package/esm2022/treeview/src/index.mjs +0 -4
  738. package/esm2022/treeview/src/treeview/treeview.component.mjs +0 -42
  739. package/esm2022/treeview/src/treeview-item/treeview-item.component.mjs +0 -32
  740. package/esm2022/treeview/src/treeview.module.mjs +0 -20
  741. package/esm2022/trust-html/index.mjs +0 -2
  742. package/esm2022/trust-html/mintplayer-ng-bootstrap-trust-html.mjs +0 -5
  743. package/esm2022/trust-html/src/trust-html.pipe.mjs +0 -22
  744. package/esm2022/typeahead/index.mjs +0 -2
  745. package/esm2022/typeahead/mintplayer-ng-bootstrap-typeahead.mjs +0 -5
  746. package/esm2022/typeahead/src/index.mjs +0 -2
  747. package/esm2022/typeahead/src/typeahead.component.mjs +0 -87
  748. package/esm2022/uc-first/index.mjs +0 -2
  749. package/esm2022/uc-first/mintplayer-ng-bootstrap-uc-first.mjs +0 -5
  750. package/esm2022/uc-first/src/uc-first.pipe.mjs +0 -18
  751. package/esm2022/user-agent/index.mjs +0 -2
  752. package/esm2022/user-agent/mintplayer-ng-bootstrap-user-agent.mjs +0 -5
  753. package/esm2022/user-agent/src/directive/index.mjs +0 -2
  754. package/esm2022/user-agent/src/directive/user-agent.directive.mjs +0 -99
  755. package/esm2022/user-agent/src/index.mjs +0 -4
  756. package/esm2022/user-agent/src/interfaces/index.mjs +0 -2
  757. package/esm2022/user-agent/src/interfaces/user-agent.mjs +0 -2
  758. package/esm2022/user-agent/src/types/index.mjs +0 -3
  759. package/esm2022/user-agent/src/types/operating-system.type.mjs +0 -2
  760. package/esm2022/user-agent/src/types/webbrowser.type.mjs +0 -2
  761. package/esm2022/word-count/index.mjs +0 -2
  762. package/esm2022/word-count/mintplayer-ng-bootstrap-word-count.mjs +0 -5
  763. package/esm2022/word-count/src/word-count.pipe.mjs +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-scheduler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scheduler/src/enums/scheduler-mode.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/enums/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/services/timeline/timeline.service.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/day-of-week/day-of-week.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/constants/available-scales.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/date-offset/date-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/scheduler.module.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/mintplayer-ng-bootstrap-scheduler.ts"],"sourcesContent":["export enum ESchedulerMode {\n week,\n timeline\n}","export enum EDragOperation {\n none,\n createEvent,\n resizeEvent,\n moveEvent,\n}","import { Injectable } from '@angular/core';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimelineTrack } from '../../interfaces/timeline-track';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsTimelineService {\n\n public splitInParts(event: SchedulerEvent | PreviewEvent) {\n let startTime = event.start;\n const result: SchedulerEventPart[] = [];\n const eventOrNull = 'color' in event ? event : null;\n while (!this.dateEquals(startTime, event.end)) {\n const end = new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate() + 1, 0, 0, 0);\n result.push({ start: startTime, end: end, event: eventOrNull });\n startTime = end;\n }\n if (startTime != event.end) {\n result.push({ start: startTime, end: event.end, event: eventOrNull });\n }\n\n return <SchedulerEventWithParts>{ event: event, parts: result };\n }\n \n private dateEquals(date1: Date, date2: Date) {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n public getTimeline(events: SchedulerEvent[]) {\n const timestamps = this.getTimestamps(events);\n const tracks: TimelineTrack[] = [];\n\n timestamps.forEach((timestamp, tIndex) => {\n const starting = events.filter((e) => e.start === timestamp);\n // const ending = events.filter((e) => e.end === timestamp);\n\n starting.forEach((startedEvent, eIndex) => {\n const freeTracks = tracks.filter(t => this.trackIsFreeAt(t, startedEvent));\n if (freeTracks.length === 0) {\n tracks.push({ index: tracks.length, events: [startedEvent] });\n } else {\n freeTracks[0].events.push(startedEvent);\n }\n });\n });\n\n return tracks;\n }\n\n private getTimestamps(events: SchedulerEvent[]) {\n const allTimestamps = events.map(e => [e.start, e.end])\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n \n return allTimestamps\n .filter((t, i) => allTimestamps.indexOf(t) === i)\n .sort((t1, t2) => <any>t1 - <any>t2);\n }\n\n private trackIsFreeAt(track: TimelineTrack, event: SchedulerEvent) {\n if (track.events.every((ev) => (ev.end <= event.start) || (event.end <= ev.start))) {\n return true;\n } else {\n return false;\n }\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable } from 'rxjs';\nimport { Resource, ResourceGroup } from '../../interfaces';\nimport { ResourceOrGroup } from '../../interfaces/resource-or-group';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-resource-group-presenter',\n templateUrl: './resource-group-presenter.component.html',\n styleUrls: ['./resource-group-presenter.component.scss'],\n \n})\nexport class ResourceGroupPresenterComponent {\n \n constructor(private sanitizer: DomSanitizer) {\n this.data$ = this.resourceOrGroup$\n .pipe(map((resourceOrGroup) => {\n if (!resourceOrGroup) {\n return null;\n } else if ('children' in resourceOrGroup) {\n return <ResourceOrGroup>{\n resource: null,\n resourceGroup: resourceOrGroup\n };\n } else {\n return <ResourceOrGroup>{\n resource: resourceOrGroup,\n resourceGroup: null\n };\n }\n }))\n .pipe(filter((resourceOrGroup) => !!resourceOrGroup))\n .pipe(map((resourceOrGroup) => <ResourceOrGroup>resourceOrGroup));\n\n this.colSpan$ = this.timeSlots$\n .pipe(map(timeSlots => timeSlots\n .map(timeslot => timeslot.slots.length)\n .reduce((sum, current) => sum + current, 0)\n ));\n\n import('bootstrap-icons/icons/chevron-down.svg').then((icon) => {\n this.chevronDown = 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 chevronDown?: SafeHtml;\n chevronRight?: SafeHtml;\n @Input() level = 0;\n resourceOrGroup$ = new BehaviorSubject<Resource | ResourceGroup | null>(null);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n isExpanded$ = new BehaviorSubject<boolean>(false);\n data$: Observable<ResourceOrGroup>;\n colSpan$: Observable<number>;\n\n //#region resourceOrGroup\n public get resourceOrGroup() {\n return this.resourceOrGroup$.value;\n }\n @Input() public set resourceGroup(value: Resource | ResourceGroup | null) {\n this.resourceOrGroup$.next(value);\n }\n //#endregion\n\n //#region timeSlots\n public get timeSlots() {\n return this.timeSlots$.value;\n }\n @Input() public set timeSlots(value: SchedulerStampWithSlots[]) {\n this.timeSlots$.next(value);\n }\n //#endregion\n\n //#region isExpanded\n public get isExpanded() {\n return this.isExpanded$.value;\n }\n @Input() public set isExpanded(value: boolean) {\n this.isExpanded$.next(value);\n }\n //#endregion\n\n toggleExpanded() {\n this.isExpanded$.next(!this.isExpanded$.value);\n }\n\n}\n","@if (data$ | async; as data) {\n\n <!-- Data is a resource group -->\n @if (data.resourceGroup) {\n <!-- Header -->\n @if (timeSlots$ | async; as timeSlots) {\n <tr class=\"p-0 cursor-pointer\" [title]=\"data.resourceGroup.description\">\n @if (colSpan$ | async; as colspan) {\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n @if (isExpanded$ | async) {\n <span [innerHTML]=\"chevronDown\" [style.padding-left.px]=\"level * 20\"></span>\n } @else {\n <span [innerHTML]=\"chevronRight\" [style.padding-left.px]=\"level * 20\"></span>\n }\n {{ data.resourceGroup.description }}\n </span>\n </td>\n }\n </tr>\n }\n\n <!-- Subgroups or resources -->\n @if (isExpanded$ | async) {\n @if (timeSlots$ | async; as timeSlots) {\n @for (child of data.resourceGroup.children; track child) {\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n }\n }\n }\n }\n\n <!-- Data is a resource -->\n @if (data.resource) {\n <tr class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n @for (slots of (timeSlots$ | async); track $index) {\n @for (slot of slots.slots; track slot) {\n <td class=\"bg-white border-1\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n }\n }\n </tr>\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTimespan'\n})\nexport class BsSecondsTimespanPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n return (value.end.getTime() - value.start.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTodayOffset'\n})\nexport class BsSecondsTodayOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dayOfWeek'\n})\nexport class DayOfWeekPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const dayOfWeek = value.start.getDay();\n if (dayOfWeek === 0) {\n return 7;\n } else {\n return dayOfWeek;\n }\n }\n\n}\n","/// <reference types=\"../../types\" />\n\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, QueryList, ViewChildren } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, take } from 'rxjs';\nimport { BsCalendarMonthService } from '@mintplayer/ng-bootstrap/calendar-month';\nimport { ESchedulerMode } from '../../enums/scheduler-mode';\nimport { EDragOperation } from '../../enums/drag-operation';\nimport { DragOperation } from '../../interfaces/drag-operation';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimeSlot } from '../../interfaces/time-slot';\nimport { BsTimelineService } from '../../services/timeline/timeline.service';\nimport { ResourceGroup } from '../../interfaces/resource-group';\nimport { Resource } from '../../interfaces/resource';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { WeekOptions } from '../../interfaces/week-options';\nimport { TimelineOptions } from '../../interfaces/timeline-options';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n})\nexport class BsSchedulerComponent {\n constructor(private sanitizer: DomSanitizer, private calendarMonthService: BsCalendarMonthService, private timelineService: BsTimelineService) {\n const monday = this.calendarMonthService.getMondayBefore(new Date());\n this.currentWeekOrMonth$ = new BehaviorSubject<Date>(monday);\n\n this.shownDays$ = combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentDay, mode]) => {\n currentDay.setHours(0);\n currentDay.setMinutes(0);\n currentDay.setSeconds(0);\n currentDay.setMilliseconds(0);\n switch (mode) {\n case ESchedulerMode.week: {\n return Array.from(Array(7).keys()).map((x) => this.addDays(currentDay, x));\n }\n case ESchedulerMode.timeline: {\n const firstDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), 1);\n const daysOfMonth = new Date(currentDay.getFullYear(), currentDay.getMonth() + 1, 0).getDate();\n return Array.from(Array(daysOfMonth).keys()).map((x) => this.addDays(firstDay, x));\n }\n }\n })\n );\n\n this.daysOfWeekWithTimestamps$ = this.shownDays$\n .pipe(map((shownDays) => ({ start: shownDays[0].getTime(), end: shownDays[shownDays.length - 1].getTime() + 24 * 60 * 60 * 1000 })));\n \n this.events$ = this.resources$\n .pipe(map((resourcesOrGroups) => resourcesOrGroups.map(resOrGroup => this.getResourcesForGroup(resOrGroup))))\n .pipe(map(jaggedResources => jaggedResources.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n .pipe(map(resources => resources.map(res => res.events)))\n .pipe(map(jaggedEvents => jaggedEvents.reduce((flat, toFlatten) => flat.concat(toFlatten), [])));\n\n // groups.reduce((flat, toFlatten) => flat.concat(toFlatten.children), [])\n this.eventParts$ = this.events$.pipe(\n map((events) => events.map((ev) => this.timelineService.splitInParts(ev)))\n );\n\n this.eventPartsForThisWeek$ = combineLatest([\n this.daysOfWeekWithTimestamps$,\n this.eventParts$\n .pipe(map(eventParts => eventParts.map(evp => evp.parts)))\n .pipe(map(jaggedParts => jaggedParts.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n ])\n .pipe(map(([startAndEnd, eventParts]) => {\n return eventParts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n }));\n\n this.previewEventParts$ = this.previewEvent$.pipe(\n map((event) => {\n if (event) {\n return this.timelineService.splitInParts(event)\n } else {\n return null;\n }\n })\n );\n this.previewEventPartsForThisWeek$ = combineLatest([this.daysOfWeekWithTimestamps$, this.previewEventParts$])\n .pipe(map(([startAndEnd, previewEventParts]) => {\n if (previewEventParts) {\n return previewEventParts.parts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n } else {\n return [];\n }\n }));\n\n this.timelinedEventPartsForThisWeek$ = this.eventPartsForThisWeek$\n .pipe(map(eventParts => {\n // We'll only use the events for this week\n const events = eventParts.map(ep => ep.event)\n .filter((e, i, list) => list.indexOf(e) === i)\n .filter((e) => !!e)\n .map((e) => <SchedulerEvent>e);\n const timeline = this.timelineService.getTimeline(events);\n\n const result = timeline.map(track => track.events.map(ev => ({ event: ev, index: track.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), [])\n .map((evi) => eventParts.filter(p => p.event === evi.event).map(p => ({ part: p, index: evi.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n\n return {\n total: timeline.length,\n parts: result\n };\n }));\n\n combineLatest([this.mode$, this.shownDays$, this.timeSlotDuration$])\n .pipe(filter(([mode, shownDays, duration]) => mode !== null))\n .pipe(map(([mode, shownDays, duration]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n const timeSlotsPerDay = Math.floor((60 * 60 * 24) / duration);\n return Array.from(Array(timeSlotsPerDay).keys()).map((index) => {\n const timeslotForMonday = this.createTimeslot(shownDays[0], index, duration);\n\n return <SchedulerStampWithSlots>{\n slots: shownDays.map((day) => {\n const start = new Date(day);\n start.setHours(timeslotForMonday.start.getHours());\n start.setMinutes(timeslotForMonday.start.getMinutes());\n start.setSeconds(timeslotForMonday.start.getSeconds());\n start.setMilliseconds(timeslotForMonday.start.getMilliseconds());\n \n const end = new Date(day);\n end.setHours(timeslotForMonday.end.getHours());\n end.setMinutes(timeslotForMonday.end.getMinutes());\n end.setSeconds(timeslotForMonday.end.getSeconds());\n end.setMilliseconds(timeslotForMonday.end.getMilliseconds());\n end.setDate(end.getDate() + timeslotForMonday.end.getDate() - timeslotForMonday.start.getDate());\n \n return <TimeSlot>{ start, end };\n }),\n stamp: timeslotForMonday.start\n };\n });\n }\n case ESchedulerMode.timeline: {\n const totalTimeslots = (24 * 60 * 60) / duration;\n return shownDays.map((day) => {\n return <SchedulerStampWithSlots>{\n slots: Array.from(Array(totalTimeslots).keys())\n .map((index) => {\n return this.createTimeslot(day, index, duration);\n }),\n stamp: day\n } \n });\n }\n default: {\n throw 'Unknown value for Mode: ' + mode;\n }\n }\n }))\n .subscribe((timeslots) => {\n // For performance reasons, we're not using an observable here, but persist the timeslots in a BehaviorSubject.\n this.timeSlots$.next(timeslots);\n });\n \n this.weekOptions$.pipe(takeUntilDestroyed())\n .subscribe(weekOptions => this.weekOptionsChange.emit(weekOptions));\n this.timelineOptions$.pipe(takeUntilDestroyed())\n .subscribe(timelineOptions => this.timelineOptionsChange.emit(timelineOptions));\n\n // combineLatest([this.mode$, this.scale$])\n // .pipe(filter(([mode, scale]) => mode === ESchedulerMode.timeline))\n\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 resources$ = new BehaviorSubject<(Resource | ResourceGroup)[]>([]);\n events$: Observable<SchedulerEvent[]>;\n eventParts$: Observable<SchedulerEventWithParts[]>;\n eventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n timelinedEventPartsForThisWeek$: Observable<{ total: number, parts: { part: SchedulerEventPart, index: number}[] }>;\n weekOptions$ = new BehaviorSubject<WeekOptions>({ unitHeight: 30 });\n timelineOptions$ = new BehaviorSubject<TimelineOptions>({ unitWidth: 50 });\n \n previewEvent$ = new BehaviorSubject<PreviewEvent | null>(null);\n previewEventParts$: Observable<SchedulerEventWithParts | null>;\n previewEventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n \n currentWeekOrMonth$: BehaviorSubject<Date>;\n shownDays$: Observable<Date[]>;\n daysOfWeekWithTimestamps$: Observable<{start: number, end: number}>;\n timeSlotDuration$ = new BehaviorSubject<number>(1800);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n mouseState$ = new BehaviorSubject<boolean>(false);\n hoveredTimeSlot$ = new BehaviorSubject<TimeSlot | null>(null);\n hoveredEvent$ = new BehaviorSubject<SchedulerEvent | null>(null);\n resourceGroupPresenterCounter = 1;\n\n @ViewChildren('slot') timeSlotElements!: QueryList<ElementRef<HTMLDivElement>>;\n\n createTimeslot(date: Date, index: number, duration: number) {\n const timeSlotStart = new Date(date);\n timeSlotStart.setTime(+timeSlotStart.getTime() + index * duration * 1000);\n const timeSlotEnd = new Date(timeSlotStart);\n timeSlotEnd.setTime(+timeSlotEnd.getTime() + duration * 1000);\n\n return <TimeSlot>{ start: timeSlotStart, end: timeSlotEnd };\n }\n\n getResourcesForGroup(resourceOrGroup: Resource | ResourceGroup) : Resource[] {\n if ('children' in resourceOrGroup) {\n return resourceOrGroup.children\n .map((child) => this.getResourcesForGroup(child))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n } else {\n return [resourceOrGroup];\n }\n }\n\n //#region Mode\n modes = ESchedulerMode;\n mode$ = new BehaviorSubject<ESchedulerMode>(ESchedulerMode.week);\n @Output() public modeChange = new EventEmitter<ESchedulerMode>();\n public get mode() {\n return this.mode$.value;\n }\n @Input() public set mode(value: ESchedulerMode) {\n this.mode$.next(value);\n }\n //#endregion\n // //#region Scale\n // scale$ = new BehaviorSubject<SchedulerScale>(availableScales[4]);\n // @Output() public scaleChange = new EventEmitter<SchedulerScale>();\n // public get scale() {\n // return this.scale$.value;\n // }\n // @Input() public set scale(value: SchedulerScale) {\n // this.scale$.next(value);\n // }\n // //#endregion\n //#region WeekOptions\n @Output() public weekOptionsChange = new EventEmitter<WeekOptions>();\n public get weekOptions() {\n return this.weekOptions$.value;\n }\n @Input() public set weekOptions(value: WeekOptions) {\n this.weekOptions$.next(value);\n }\n //#endregion\n //#region TimelineOptions\n @Output() public timelineOptionsChange = new EventEmitter<TimelineOptions>();\n public get timelineOptions() {\n return this.timelineOptions$.value;\n }\n @Input() public set timelineOptions(value: TimelineOptions) {\n this.timelineOptions$.next(value);\n }\n //#endregion\n //#region maxInnerHeight\n @Input() public maxInnerHeight: number | null = null;\n //#endregion\n //#region Resources\n public get resources() {\n return this.resources$.value;\n }\n @Input() public set resources(value: (Resource | ResourceGroup)[]) {\n this.resources$.next(value);\n }\n //#endregion\n\n private addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n onPreviousWeekOrMonth() {\n this.onChangeWeekOrMonth(false);\n }\n\n onNextWeekOrMonth() {\n this.onChangeWeekOrMonth(true);\n }\n\n private onChangeWeekOrMonth(next: boolean) {\n combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentWeekOrMonth, mode]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n return this.addDays(currentWeekOrMonth, (next ? 7 : -7));\n }\n case ESchedulerMode.timeline: {\n return new Date(currentWeekOrMonth.getFullYear(), currentWeekOrMonth.getMonth() + (next ? 1 : -1), 1);\n }\n }\n }), take(1))\n .subscribe((w) => this.currentWeekOrMonth$.next(w));\n }\n\n onHoverEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(ev);\n }\n\n onLeaveEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(null);\n }\n\n operation: DragOperation | null = null;\n dragStartTimeslot: TimeSlot | null = null;\n onCreateEvent(ev: MouseEvent, slot: TimeSlot) {\n ev.preventDefault();\n this.mouseState$.next(true);\n this.dragStartTimeslot = slot;\n this.operation = {\n operation: EDragOperation.createEvent,\n event: {\n start: slot.start,\n end: slot.end,\n color: '#F00',\n description: 'Test event',\n },\n meta: null,\n };\n this.previewEvent$.next({ start: slot.start, end: slot.end });\n }\n\n randomColor() {\n const brightness = 128;\n return '#' + this.randomChannel(brightness) + this.randomChannel(brightness) + this.randomChannel(brightness);\n }\n randomChannel(brightness: number){\n const r = 255-brightness;\n const n = 0|((Math.random() * r) + brightness);\n const s = n.toString(16);\n return (s.length==1) ? '0'+s : s;\n }\n\n onStartDragEvent(eventPart: SchedulerEventPart, ev: MouseEvent) {\n ev.preventDefault();\n this.hoveredTimeSlot$.pipe(take(1)).subscribe((hoveredTimeSlot) => {\n if (eventPart.event) {\n this.dragStartTimeslot = hoveredTimeSlot;\n this.operation = {\n operation: EDragOperation.moveEvent,\n event: eventPart.event,\n meta: null,\n };\n this.previewEvent$.next({ start: eventPart.event.start, end: eventPart.event.end });\n }\n });\n }\n\n onStartResizeEvent(event: SchedulerEvent | null, position: 'top' | 'bottom') {\n if (event) {\n switch (position) {\n case 'top': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n case 'bottom': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n }\n }\n }\n\n //#region hoveredTimeslot$\n private getHoveredTimeslot(ev: MouseEvent, timeSlots: SchedulerStampWithSlots[]) {\n const hoveredSlots = this.timeSlotElements.filter((el) => {\n const rct = el.nativeElement.getBoundingClientRect();\n if (rct.left <= ev.x && ev.x <= rct.right && rct.top <= ev.y && ev.y <= rct.bottom) {\n return true;\n } else {\n return false;\n }\n });\n\n if (!hoveredSlots || hoveredSlots.length === 0) {\n return null;\n }\n\n const slotElement = hoveredSlots[0].nativeElement;\n\n const strRow = slotElement.getAttribute('data-row');\n if (!strRow) {\n return null;\n }\n const row = parseInt(strRow);\n\n const strColumn = slotElement.getAttribute('data-column');\n if (!strColumn) {\n return null;\n }\n const column = parseInt(strColumn);\n\n const slot = timeSlots[row].slots[column];\n return slot;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove(ev: MouseEvent) {\n this.timeSlots$.pipe(take(1)).subscribe((timeSlots) => {\n const hovered = this.getHoveredTimeslot(ev, timeSlots);\n this.hoveredTimeSlot$.next(hovered);\n\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n if (this.operation.event && this.dragStartTimeslot && hovered && (this.operation.event.end.getTime() != hovered.end.getTime())) {\n if (this.dragStartTimeslot.start.getTime() === hovered.start.getTime()) {\n // 1 slot\n } else if (this.dragStartTimeslot.start.getTime() < hovered.start.getTime()) {\n // Drag down\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = this.dragStartTimeslot.start;\n ev.end = hovered.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n } else if (this.dragStartTimeslot.start.getTime() > hovered.start.getTime()) {\n // Drag up\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = hovered.start;\n ev.end = this.dragStartTimeslot.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n }\n } break;\n case EDragOperation.moveEvent: {\n if (hovered && this.dragStartTimeslot) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n const result = <PreviewEvent>{\n start: new Date(ev.start.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime()),\n end: new Date(ev.end.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime())\n };\n \n this.dragStartTimeslot = hovered;\n\n return result;\n } else {\n return ev;\n }\n }))\n .pipe(take(1))\n .subscribe(ev => this.previewEvent$.next(ev));\n }\n } break;\n case EDragOperation.resizeEvent: {\n if (hovered) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(map((ev) => {\n if (ev && this.operation && this.operation.event) {\n if (this.operation.meta.position === 'top') {\n ev.start = hovered.start;\n ev.end = this.operation.event.end;\n } else if (this.operation.meta.position === 'bottom') {\n ev.start = this.operation.event.start;\n ev.end = hovered.end;\n }\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n } break;\n }\n }\n\n });\n }\n //#endregion\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n combineLatest([this.previewEvent$])\n .pipe(take(1))\n .subscribe(([previewEvent]) => {\n if (previewEvent) {\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next([\n ...this.resources$.value,\n <Resource>{\n description: 'New resource group',\n events: [{\n start: previewEvent.start,\n end: previewEvent.end,\n color: this.randomColor(),\n description: 'New event'\n }]\n }\n ]);\n this.previewEvent$.next(null);\n }\n });\n } break;\n case EDragOperation.moveEvent:\n case EDragOperation.resizeEvent: {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(take(1))\n .subscribe((previewEvent) => {\n if (this.operation && this.operation.event && previewEvent) {\n this.operation.event.start = previewEvent.start;\n this.operation.event.end = previewEvent.end;\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next(this.resources$.value);\n this.previewEvent$.next(null);\n }\n });\n } break;\n }\n }\n }\n}\n","@switch (mode$ | async) {\n @case (modes.week) {\n <div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n @for (day of (shownDays$ | async); track day) {\n <div class=\"flex-grow-1 calendar-head-cell\">\n <span class=\"d-block col-form-label text-center text-nowrap\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n }\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n @if (timeSlots$ | async; as row) {\n <div class=\"position-relative\">\n @if (weekOptions$ | async; as weekOptions) {\n <!-- Timeslots -->\n @for (timeslots of row; track timeslots; let i = $index) {\n <div class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n @for (slot of timeslots.slots; track slot.start; let j = $index) {\n <div class=\"calendar-cell flex-grow-1\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n }\n </div>\n }\n \n <!-- Events -->\n @if (timeSlotDuration$ | async; as timeSlotDuration) {\n @if (timelinedEventPartsForThisWeek$ | async; as partData) {\n @for (eventPart of partData.parts; track eventPart) {\n <div class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n \n @if (eventPart.part.start === eventPart.part.event?.start) {\n <div class=\"event-resize top\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n }\n <div class=\"event-border\"></div>\n @if (eventPart.part.event) {\n <div class=\"event-wrapper\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n }\n @if (eventPart.part.end === eventPart.part.event?.end) {\n <div class=\"event-resize bottom\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n }\n </div>\n </div>\n }\n }\n @if (previewEventPartsForThisWeek$ | async; as previewPartData) {\n @for (eventPart of previewPartData; track eventPart) {\n <div class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n }\n }\n }\n }\n </div>\n }\n </div>\n </div>\n }\n @case (modes.timeline) {\n <div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <div class=\"flex-grow-1 h3 py-2 mb-0 text-center\">{{ currentWeekOrMonth$ | async | date: 'MMMM yyyy' }}</div>\n <button class=\"btn flex-start\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n @if (timeSlots$ | async; as timeSlots) {\n <tr>\n <td></td>\n @for (day of timeSlots; track day) {\n <td [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n }\n </tr>\n <tr>\n <td></td>\n @if (timelineOptions$ | async; as timelineOptions) {\n @for (day of timeSlots; track day) {\n @for (slot of day.slots; track slot) {\n <td>\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n }\n }\n }\n </tr>\n @for (group of (resources$ | async); track group) {\n <bs-resource-group-presenter [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n }\n }\n </table>\n </div>\n </div>\n }\n}","import { SchedulerScale } from \"../interfaces/scheduler-schale\";\n\nexport const availableScales: SchedulerScale[] = [\n { time: 60, pixels: 60, markerSize: 900 }, // 60s / 60px = 1 s/px = 1 min / 60 px\n { time: 120, pixels: 60, markerSize: 900 }, // 120s / 60px = 2 s/px = 2 min / 60 px\n { time: 300, pixels: 60, markerSize: 900 }, // 180s / 60px = 3 s/px = 5 min / 60 px\n { time: 900, pixels: 60, markerSize: 900 }, // 360s / 60px = 6 s/px = 15 min / 60 px\n\n { time: 3600, pixels: 60, markerSize: 21600 }, // 600s / 60px = 10 s/px = 1 u / 60 px\n { time: 7200, pixels: 60, markerSize: 21600 }, // 1200s / 60px = 20 s/px\n { time: 10800, pixels: 60, markerSize: 21600 }, // 1800s / 60px = 30 s/px\n { time: 21600, pixels: 60, markerSize: 21600 }, // 3600s / 60px = 60 s/px\n\n { time: 86400, pixels: 60, markerSize: 604800 }, // 6000s / 60px = 100 s/px\n]","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dateOffset'\n})\nexport class DateOffsetPipe implements PipeTransform {\n\n transform(value: SchedulerEventPart) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSecondsTimespanPipe } from './pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe';\nimport { BsSecondsTodayOffsetPipe } from './pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe';\nimport { DateOffsetPipe } from './pipes/date-offset/date-offset.pipe';\nimport { DayOfWeekPipe } from './pipes/day-of-week/day-of-week.pipe';\nimport { BsSchedulerComponent } from './components/scheduler/scheduler.component';\nimport { ResourceGroupPresenterComponent } from './components/resource-group-presenter/resource-group-presenter.component';\n\n@NgModule({\n declarations: [\n BsSchedulerComponent,\n BsSecondsTimespanPipe,\n BsSecondsTodayOffsetPipe,\n DateOffsetPipe,\n DayOfWeekPipe,\n ResourceGroupPresenterComponent\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n BsSchedulerComponent,\n ResourceGroupPresenterComponent\n ]\n})\nexport class BsSchedulerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3.BsTimelineService","i4.ResourceGroupPresenterComponent","i6.BsSecondsTimespanPipe","i7.BsSecondsTodayOffsetPipe","i8.DayOfWeekPipe"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-scheduler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scheduler/src/enums/scheduler-mode.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/enums/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/services/timeline/timeline.service.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/day-of-week/day-of-week.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/components/scheduler/scheduler.component.html","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/constants/available-scales.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/pipes/date-offset/date-offset.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/src/scheduler.module.ts","../../../../libs/mintplayer-ng-bootstrap/scheduler/mintplayer-ng-bootstrap-scheduler.ts"],"sourcesContent":["export enum ESchedulerMode {\n week,\n timeline\n}","export enum EDragOperation {\n none,\n createEvent,\n resizeEvent,\n moveEvent,\n}","import { Injectable } from '@angular/core';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimelineTrack } from '../../interfaces/timeline-track';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsTimelineService {\n\n public splitInParts(event: SchedulerEvent | PreviewEvent) {\n let startTime = event.start;\n const result: SchedulerEventPart[] = [];\n const eventOrNull = 'color' in event ? event : null;\n while (!this.dateEquals(startTime, event.end)) {\n const end = new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate() + 1, 0, 0, 0);\n result.push({ start: startTime, end: end, event: eventOrNull });\n startTime = end;\n }\n if (startTime != event.end) {\n result.push({ start: startTime, end: event.end, event: eventOrNull });\n }\n\n return <SchedulerEventWithParts>{ event: event, parts: result };\n }\n \n private dateEquals(date1: Date, date2: Date) {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n public getTimeline(events: SchedulerEvent[]) {\n const timestamps = this.getTimestamps(events);\n const tracks: TimelineTrack[] = [];\n\n timestamps.forEach((timestamp, tIndex) => {\n const starting = events.filter((e) => e.start === timestamp);\n // const ending = events.filter((e) => e.end === timestamp);\n\n starting.forEach((startedEvent, eIndex) => {\n const freeTracks = tracks.filter(t => this.trackIsFreeAt(t, startedEvent));\n if (freeTracks.length === 0) {\n tracks.push({ index: tracks.length, events: [startedEvent] });\n } else {\n freeTracks[0].events.push(startedEvent);\n }\n });\n });\n\n return tracks;\n }\n\n private getTimestamps(events: SchedulerEvent[]) {\n const allTimestamps = events.map(e => [e.start, e.end])\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n \n return allTimestamps\n .filter((t, i) => allTimestamps.indexOf(t) === i)\n .sort((t1, t2) => <any>t1 - <any>t2);\n }\n\n private trackIsFreeAt(track: TimelineTrack, event: SchedulerEvent) {\n if (track.events.every((ev) => (ev.end <= event.start) || (event.end <= ev.start))) {\n return true;\n } else {\n return false;\n }\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { BehaviorSubject, filter, map, Observable } from 'rxjs';\nimport { Resource, ResourceGroup } from '../../interfaces';\nimport { ResourceOrGroup } from '../../interfaces/resource-or-group';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-resource-group-presenter',\n templateUrl: './resource-group-presenter.component.html',\n styleUrls: ['./resource-group-presenter.component.scss'],\n standalone: false,\n})\nexport class ResourceGroupPresenterComponent {\n \n constructor(private sanitizer: DomSanitizer) {\n this.data$ = this.resourceOrGroup$\n .pipe(map((resourceOrGroup) => {\n if (!resourceOrGroup) {\n return null;\n } else if ('children' in resourceOrGroup) {\n return <ResourceOrGroup>{\n resource: null,\n resourceGroup: resourceOrGroup\n };\n } else {\n return <ResourceOrGroup>{\n resource: resourceOrGroup,\n resourceGroup: null\n };\n }\n }))\n .pipe(filter((resourceOrGroup) => !!resourceOrGroup))\n .pipe(map((resourceOrGroup) => <ResourceOrGroup>resourceOrGroup));\n\n this.colSpan$ = this.timeSlots$\n .pipe(map(timeSlots => timeSlots\n .map(timeslot => timeslot.slots.length)\n .reduce((sum, current) => sum + current, 0)\n ));\n\n import('bootstrap-icons/icons/chevron-down.svg').then((icon) => {\n this.chevronDown = 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 chevronDown?: SafeHtml;\n chevronRight?: SafeHtml;\n @Input() level = 0;\n resourceOrGroup$ = new BehaviorSubject<Resource | ResourceGroup | null>(null);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n isExpanded$ = new BehaviorSubject<boolean>(false);\n data$: Observable<ResourceOrGroup>;\n colSpan$: Observable<number>;\n\n //#region resourceOrGroup\n public get resourceOrGroup() {\n return this.resourceOrGroup$.value;\n }\n @Input() public set resourceGroup(value: Resource | ResourceGroup | null) {\n this.resourceOrGroup$.next(value);\n }\n //#endregion\n\n //#region timeSlots\n public get timeSlots() {\n return this.timeSlots$.value;\n }\n @Input() public set timeSlots(value: SchedulerStampWithSlots[]) {\n this.timeSlots$.next(value);\n }\n //#endregion\n\n //#region isExpanded\n public get isExpanded() {\n return this.isExpanded$.value;\n }\n @Input() public set isExpanded(value: boolean) {\n this.isExpanded$.next(value);\n }\n //#endregion\n\n toggleExpanded() {\n this.isExpanded$.next(!this.isExpanded$.value);\n }\n\n}\n","@if (data$ | async; as data) {\n\n <!-- Data is a resource group -->\n @if (data.resourceGroup) {\n <!-- Header -->\n @if (timeSlots$ | async; as timeSlots) {\n <tr class=\"p-0 cursor-pointer\" [title]=\"data.resourceGroup.description\">\n @if (colSpan$ | async; as colspan) {\n <td class=\"p-2 cursor-pointer\" [colSpan]=\"colspan + 1\" (click)=\"toggleExpanded()\">\n <span class=\"p-2 align-middle position-sticky\">\n @if (isExpanded$ | async) {\n <span [innerHTML]=\"chevronDown\" [style.padding-left.px]=\"level * 20\"></span>\n } @else {\n <span [innerHTML]=\"chevronRight\" [style.padding-left.px]=\"level * 20\"></span>\n }\n {{ data.resourceGroup.description }}\n </span>\n </td>\n }\n </tr>\n }\n\n <!-- Subgroups or resources -->\n @if (isExpanded$ | async) {\n @if (timeSlots$ | async; as timeSlots) {\n @for (child of data.resourceGroup.children; track child) {\n <bs-resource-group-presenter [resourceGroup]=\"child\" [timeSlots]=\"timeSlots\" [level]=\"level + 1\"></bs-resource-group-presenter>\n }\n }\n }\n }\n\n <!-- Data is a resource -->\n @if (data.resource) {\n <tr class=\"p-0 bordered\" [title]=\"data.resource.description\">\n <td class=\"p-0 bg-white\">\n <div class=\"p-2\">{{ data.resource.description }}</div>\n </td>\n @for (slots of (timeSlots$ | async); track $index) {\n @for (slot of slots.slots; track slot) {\n <td class=\"bg-white border-1\">\n <!-- {{ slot.start | date: 'dd/MM/yyyy HH:mm:ss' }} -->\n </td>\n }\n }\n </tr>\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTimespan',\n standalone: false,\n})\nexport class BsSecondsTimespanPipe implements PipeTransform {\n transform(value: SchedulerEventPart | SchedulerEvent) {\n return (value.end.getTime() - value.start.getTime()) / 1000;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'bsSecondsTodayOffset',\n standalone: false,\n})\nexport class BsSecondsTodayOffsetPipe implements PipeTransform {\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dayOfWeek',\n standalone: false,\n})\nexport class DayOfWeekPipe implements PipeTransform {\n transform(value: SchedulerEventPart | SchedulerEvent) {\n const dayOfWeek = value.start.getDay();\n if (dayOfWeek === 0) {\n return 7;\n } else {\n return dayOfWeek;\n }\n }\n}\n","/// <reference types=\"../../types\" />\n\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, QueryList, ViewChildren } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, take } from 'rxjs';\nimport { BsCalendarMonthService } from '@mintplayer/ng-bootstrap/calendar-month';\nimport { ESchedulerMode } from '../../enums/scheduler-mode';\nimport { EDragOperation } from '../../enums/drag-operation';\nimport { DragOperation } from '../../interfaces/drag-operation';\nimport { PreviewEvent } from '../../interfaces/preview-event';\nimport { SchedulerEvent } from '../../interfaces/scheduler-event';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\nimport { SchedulerEventWithParts } from '../../interfaces/scheduler-event-with-parts';\nimport { TimeSlot } from '../../interfaces/time-slot';\nimport { BsTimelineService } from '../../services/timeline/timeline.service';\nimport { ResourceGroup } from '../../interfaces/resource-group';\nimport { Resource } from '../../interfaces/resource';\nimport { SchedulerStampWithSlots } from '../../interfaces/scheduler-stamp-with-slots';\nimport { WeekOptions } from '../../interfaces/week-options';\nimport { TimelineOptions } from '../../interfaces/timeline-options';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n standalone: false,\n})\nexport class BsSchedulerComponent {\n constructor(private sanitizer: DomSanitizer, private calendarMonthService: BsCalendarMonthService, private timelineService: BsTimelineService) {\n const monday = this.calendarMonthService.getMondayBefore(new Date());\n this.currentWeekOrMonth$ = new BehaviorSubject<Date>(monday);\n\n this.shownDays$ = combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentDay, mode]) => {\n currentDay.setHours(0);\n currentDay.setMinutes(0);\n currentDay.setSeconds(0);\n currentDay.setMilliseconds(0);\n switch (mode) {\n case ESchedulerMode.week: {\n return Array.from(Array(7).keys()).map((x) => this.addDays(currentDay, x));\n }\n case ESchedulerMode.timeline: {\n const firstDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), 1);\n const daysOfMonth = new Date(currentDay.getFullYear(), currentDay.getMonth() + 1, 0).getDate();\n return Array.from(Array(daysOfMonth).keys()).map((x) => this.addDays(firstDay, x));\n }\n }\n })\n );\n\n this.daysOfWeekWithTimestamps$ = this.shownDays$\n .pipe(map((shownDays) => ({ start: shownDays[0].getTime(), end: shownDays[shownDays.length - 1].getTime() + 24 * 60 * 60 * 1000 })));\n \n this.events$ = this.resources$\n .pipe(map((resourcesOrGroups) => resourcesOrGroups.map(resOrGroup => this.getResourcesForGroup(resOrGroup))))\n .pipe(map(jaggedResources => jaggedResources.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n .pipe(map(resources => resources.map(res => res.events)))\n .pipe(map(jaggedEvents => jaggedEvents.reduce((flat, toFlatten) => flat.concat(toFlatten), [])));\n\n // groups.reduce((flat, toFlatten) => flat.concat(toFlatten.children), [])\n this.eventParts$ = this.events$.pipe(\n map((events) => events.map((ev) => this.timelineService.splitInParts(ev)))\n );\n\n this.eventPartsForThisWeek$ = combineLatest([\n this.daysOfWeekWithTimestamps$,\n this.eventParts$\n .pipe(map(eventParts => eventParts.map(evp => evp.parts)))\n .pipe(map(jaggedParts => jaggedParts.reduce((flat, toFlatten) => flat.concat(toFlatten), [])))\n ])\n .pipe(map(([startAndEnd, eventParts]) => {\n return eventParts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n }));\n\n this.previewEventParts$ = this.previewEvent$.pipe(\n map((event) => {\n if (event) {\n return this.timelineService.splitInParts(event)\n } else {\n return null;\n }\n })\n );\n this.previewEventPartsForThisWeek$ = combineLatest([this.daysOfWeekWithTimestamps$, this.previewEventParts$])\n .pipe(map(([startAndEnd, previewEventParts]) => {\n if (previewEventParts) {\n return previewEventParts.parts.filter(eventPart => {\n return !((eventPart.end.getTime() <= startAndEnd.start) || (eventPart.start.getTime() >= startAndEnd.end));\n });\n } else {\n return [];\n }\n }));\n\n this.timelinedEventPartsForThisWeek$ = this.eventPartsForThisWeek$\n .pipe(map(eventParts => {\n // We'll only use the events for this week\n const events = eventParts.map(ep => ep.event)\n .filter((e, i, list) => list.indexOf(e) === i)\n .filter((e) => !!e)\n .map((e) => <SchedulerEvent>e);\n const timeline = this.timelineService.getTimeline(events);\n\n const result = timeline.map(track => track.events.map(ev => ({ event: ev, index: track.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), [])\n .map((evi) => eventParts.filter(p => p.event === evi.event).map(p => ({ part: p, index: evi.index })))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n\n return {\n total: timeline.length,\n parts: result\n };\n }));\n\n combineLatest([this.mode$, this.shownDays$, this.timeSlotDuration$])\n .pipe(filter(([mode, shownDays, duration]) => mode !== null))\n .pipe(map(([mode, shownDays, duration]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n const timeSlotsPerDay = Math.floor((60 * 60 * 24) / duration);\n return Array.from(Array(timeSlotsPerDay).keys()).map((index) => {\n const timeslotForMonday = this.createTimeslot(shownDays[0], index, duration);\n\n return <SchedulerStampWithSlots>{\n slots: shownDays.map((day) => {\n const start = new Date(day);\n start.setHours(timeslotForMonday.start.getHours());\n start.setMinutes(timeslotForMonday.start.getMinutes());\n start.setSeconds(timeslotForMonday.start.getSeconds());\n start.setMilliseconds(timeslotForMonday.start.getMilliseconds());\n \n const end = new Date(day);\n end.setHours(timeslotForMonday.end.getHours());\n end.setMinutes(timeslotForMonday.end.getMinutes());\n end.setSeconds(timeslotForMonday.end.getSeconds());\n end.setMilliseconds(timeslotForMonday.end.getMilliseconds());\n end.setDate(end.getDate() + timeslotForMonday.end.getDate() - timeslotForMonday.start.getDate());\n \n return <TimeSlot>{ start, end };\n }),\n stamp: timeslotForMonday.start\n };\n });\n }\n case ESchedulerMode.timeline: {\n const totalTimeslots = (24 * 60 * 60) / duration;\n return shownDays.map((day) => {\n return <SchedulerStampWithSlots>{\n slots: Array.from(Array(totalTimeslots).keys())\n .map((index) => {\n return this.createTimeslot(day, index, duration);\n }),\n stamp: day\n } \n });\n }\n default: {\n throw 'Unknown value for Mode: ' + mode;\n }\n }\n }))\n .subscribe((timeslots) => {\n // For performance reasons, we're not using an observable here, but persist the timeslots in a BehaviorSubject.\n this.timeSlots$.next(timeslots);\n });\n \n this.weekOptions$.pipe(takeUntilDestroyed())\n .subscribe(weekOptions => this.weekOptionsChange.emit(weekOptions));\n this.timelineOptions$.pipe(takeUntilDestroyed())\n .subscribe(timelineOptions => this.timelineOptionsChange.emit(timelineOptions));\n\n // combineLatest([this.mode$, this.scale$])\n // .pipe(filter(([mode, scale]) => mode === ESchedulerMode.timeline))\n\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 resources$ = new BehaviorSubject<(Resource | ResourceGroup)[]>([]);\n events$: Observable<SchedulerEvent[]>;\n eventParts$: Observable<SchedulerEventWithParts[]>;\n eventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n timelinedEventPartsForThisWeek$: Observable<{ total: number, parts: { part: SchedulerEventPart, index: number}[] }>;\n weekOptions$ = new BehaviorSubject<WeekOptions>({ unitHeight: 30 });\n timelineOptions$ = new BehaviorSubject<TimelineOptions>({ unitWidth: 50 });\n \n previewEvent$ = new BehaviorSubject<PreviewEvent | null>(null);\n previewEventParts$: Observable<SchedulerEventWithParts | null>;\n previewEventPartsForThisWeek$: Observable<SchedulerEventPart[]>;\n \n currentWeekOrMonth$: BehaviorSubject<Date>;\n shownDays$: Observable<Date[]>;\n daysOfWeekWithTimestamps$: Observable<{start: number, end: number}>;\n timeSlotDuration$ = new BehaviorSubject<number>(1800);\n timeSlots$ = new BehaviorSubject<SchedulerStampWithSlots[]>([]);\n mouseState$ = new BehaviorSubject<boolean>(false);\n hoveredTimeSlot$ = new BehaviorSubject<TimeSlot | null>(null);\n hoveredEvent$ = new BehaviorSubject<SchedulerEvent | null>(null);\n resourceGroupPresenterCounter = 1;\n\n @ViewChildren('slot') timeSlotElements!: QueryList<ElementRef<HTMLDivElement>>;\n\n createTimeslot(date: Date, index: number, duration: number) {\n const timeSlotStart = new Date(date);\n timeSlotStart.setTime(+timeSlotStart.getTime() + index * duration * 1000);\n const timeSlotEnd = new Date(timeSlotStart);\n timeSlotEnd.setTime(+timeSlotEnd.getTime() + duration * 1000);\n\n return <TimeSlot>{ start: timeSlotStart, end: timeSlotEnd };\n }\n\n getResourcesForGroup(resourceOrGroup: Resource | ResourceGroup) : Resource[] {\n if ('children' in resourceOrGroup) {\n return resourceOrGroup.children\n .map((child) => this.getResourcesForGroup(child))\n .reduce((flat, toFlatten) => flat.concat(toFlatten), []);\n } else {\n return [resourceOrGroup];\n }\n }\n\n //#region Mode\n modes = ESchedulerMode;\n mode$ = new BehaviorSubject<ESchedulerMode>(ESchedulerMode.week);\n @Output() public modeChange = new EventEmitter<ESchedulerMode>();\n public get mode() {\n return this.mode$.value;\n }\n @Input() public set mode(value: ESchedulerMode) {\n this.mode$.next(value);\n }\n //#endregion\n // //#region Scale\n // scale$ = new BehaviorSubject<SchedulerScale>(availableScales[4]);\n // @Output() public scaleChange = new EventEmitter<SchedulerScale>();\n // public get scale() {\n // return this.scale$.value;\n // }\n // @Input() public set scale(value: SchedulerScale) {\n // this.scale$.next(value);\n // }\n // //#endregion\n //#region WeekOptions\n @Output() public weekOptionsChange = new EventEmitter<WeekOptions>();\n public get weekOptions() {\n return this.weekOptions$.value;\n }\n @Input() public set weekOptions(value: WeekOptions) {\n this.weekOptions$.next(value);\n }\n //#endregion\n //#region TimelineOptions\n @Output() public timelineOptionsChange = new EventEmitter<TimelineOptions>();\n public get timelineOptions() {\n return this.timelineOptions$.value;\n }\n @Input() public set timelineOptions(value: TimelineOptions) {\n this.timelineOptions$.next(value);\n }\n //#endregion\n //#region maxInnerHeight\n @Input() public maxInnerHeight: number | null = null;\n //#endregion\n //#region Resources\n public get resources() {\n return this.resources$.value;\n }\n @Input() public set resources(value: (Resource | ResourceGroup)[]) {\n this.resources$.next(value);\n }\n //#endregion\n\n private addDays(date: Date, days: number) {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n onPreviousWeekOrMonth() {\n this.onChangeWeekOrMonth(false);\n }\n\n onNextWeekOrMonth() {\n this.onChangeWeekOrMonth(true);\n }\n\n private onChangeWeekOrMonth(next: boolean) {\n combineLatest([this.currentWeekOrMonth$, this.mode$])\n .pipe(map(([currentWeekOrMonth, mode]) => {\n switch (mode) {\n case ESchedulerMode.week: {\n return this.addDays(currentWeekOrMonth, (next ? 7 : -7));\n }\n case ESchedulerMode.timeline: {\n return new Date(currentWeekOrMonth.getFullYear(), currentWeekOrMonth.getMonth() + (next ? 1 : -1), 1);\n }\n }\n }), take(1))\n .subscribe((w) => this.currentWeekOrMonth$.next(w));\n }\n\n onHoverEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(ev);\n }\n\n onLeaveEvent(ev: SchedulerEvent | null) {\n this.hoveredEvent$.next(null);\n }\n\n operation: DragOperation | null = null;\n dragStartTimeslot: TimeSlot | null = null;\n onCreateEvent(ev: MouseEvent, slot: TimeSlot) {\n ev.preventDefault();\n this.mouseState$.next(true);\n this.dragStartTimeslot = slot;\n this.operation = {\n operation: EDragOperation.createEvent,\n event: {\n start: slot.start,\n end: slot.end,\n color: '#F00',\n description: 'Test event',\n },\n meta: null,\n };\n this.previewEvent$.next({ start: slot.start, end: slot.end });\n }\n\n randomColor() {\n const brightness = 128;\n return '#' + this.randomChannel(brightness) + this.randomChannel(brightness) + this.randomChannel(brightness);\n }\n randomChannel(brightness: number){\n const r = 255-brightness;\n const n = 0|((Math.random() * r) + brightness);\n const s = n.toString(16);\n return (s.length==1) ? '0'+s : s;\n }\n\n onStartDragEvent(eventPart: SchedulerEventPart, ev: MouseEvent) {\n ev.preventDefault();\n this.hoveredTimeSlot$.pipe(take(1)).subscribe((hoveredTimeSlot) => {\n if (eventPart.event) {\n this.dragStartTimeslot = hoveredTimeSlot;\n this.operation = {\n operation: EDragOperation.moveEvent,\n event: eventPart.event,\n meta: null,\n };\n this.previewEvent$.next({ start: eventPart.event.start, end: eventPart.event.end });\n }\n });\n }\n\n onStartResizeEvent(event: SchedulerEvent | null, position: 'top' | 'bottom') {\n if (event) {\n switch (position) {\n case 'top': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n case 'bottom': {\n this.operation = {\n operation: EDragOperation.resizeEvent,\n event: event,\n meta: { position },\n }\n this.previewEvent$.next({ start: event.start, end: event.end });\n } break;\n }\n }\n }\n\n //#region hoveredTimeslot$\n private getHoveredTimeslot(ev: MouseEvent, timeSlots: SchedulerStampWithSlots[]) {\n const hoveredSlots = this.timeSlotElements.filter((el) => {\n const rct = el.nativeElement.getBoundingClientRect();\n if (rct.left <= ev.x && ev.x <= rct.right && rct.top <= ev.y && ev.y <= rct.bottom) {\n return true;\n } else {\n return false;\n }\n });\n\n if (!hoveredSlots || hoveredSlots.length === 0) {\n return null;\n }\n\n const slotElement = hoveredSlots[0].nativeElement;\n\n const strRow = slotElement.getAttribute('data-row');\n if (!strRow) {\n return null;\n }\n const row = parseInt(strRow);\n\n const strColumn = slotElement.getAttribute('data-column');\n if (!strColumn) {\n return null;\n }\n const column = parseInt(strColumn);\n\n const slot = timeSlots[row].slots[column];\n return slot;\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMousemove(ev: MouseEvent) {\n this.timeSlots$.pipe(take(1)).subscribe((timeSlots) => {\n const hovered = this.getHoveredTimeslot(ev, timeSlots);\n this.hoveredTimeSlot$.next(hovered);\n\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n if (this.operation.event && this.dragStartTimeslot && hovered && (this.operation.event.end.getTime() != hovered.end.getTime())) {\n if (this.dragStartTimeslot.start.getTime() === hovered.start.getTime()) {\n // 1 slot\n } else if (this.dragStartTimeslot.start.getTime() < hovered.start.getTime()) {\n // Drag down\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = this.dragStartTimeslot.start;\n ev.end = hovered.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n } else if (this.dragStartTimeslot.start.getTime() > hovered.start.getTime()) {\n // Drag up\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n ev.start = hovered.start;\n ev.end = this.dragStartTimeslot.end;\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n }\n } break;\n case EDragOperation.moveEvent: {\n if (hovered && this.dragStartTimeslot) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev && !!this.dragStartTimeslot))\n .pipe(map((ev) => {\n if (ev && this.dragStartTimeslot) {\n const result = <PreviewEvent>{\n start: new Date(ev.start.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime()),\n end: new Date(ev.end.getTime() + hovered.start.getTime() - this.dragStartTimeslot.start.getTime())\n };\n \n this.dragStartTimeslot = hovered;\n\n return result;\n } else {\n return ev;\n }\n }))\n .pipe(take(1))\n .subscribe(ev => this.previewEvent$.next(ev));\n }\n } break;\n case EDragOperation.resizeEvent: {\n if (hovered) {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(map((ev) => {\n if (ev && this.operation && this.operation.event) {\n if (this.operation.meta.position === 'top') {\n ev.start = hovered.start;\n ev.end = this.operation.event.end;\n } else if (this.operation.meta.position === 'bottom') {\n ev.start = this.operation.event.start;\n ev.end = hovered.end;\n }\n }\n return ev;\n }))\n .pipe(take(1))\n .subscribe((ev) => this.previewEvent$.next(ev));\n }\n } break;\n }\n }\n\n });\n }\n //#endregion\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.createEvent: {\n combineLatest([this.previewEvent$])\n .pipe(take(1))\n .subscribe(([previewEvent]) => {\n if (previewEvent) {\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next([\n ...this.resources$.value,\n <Resource>{\n description: 'New resource group',\n events: [{\n start: previewEvent.start,\n end: previewEvent.end,\n color: this.randomColor(),\n description: 'New event'\n }]\n }\n ]);\n this.previewEvent$.next(null);\n }\n });\n } break;\n case EDragOperation.moveEvent:\n case EDragOperation.resizeEvent: {\n this.previewEvent$\n .pipe(filter((ev) => !!ev))\n .pipe(take(1))\n .subscribe((previewEvent) => {\n if (this.operation && this.operation.event && previewEvent) {\n this.operation.event.start = previewEvent.start;\n this.operation.event.end = previewEvent.end;\n this.operation = null;\n this.dragStartTimeslot = null;\n this.resources$.next(this.resources$.value);\n this.previewEvent$.next(null);\n }\n });\n } break;\n }\n }\n }\n}\n","@switch (mode$ | async) {\n @case (modes.week) {\n <div class=\"d-flex flex-column w-100 overflow-y-auto mb-0 week-schedule\" [style.max-height.px]=\"null\">\n <div class=\"calendar-head\">\n <div class=\"w-100 d-flex flex-row\">\n <div class=\"d-flex calendar-left justify-content-between\">\n <button class=\"btn btn-default flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <button class=\"btn btn-default flex-end\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n @for (day of (shownDays$ | async); track day) {\n <div class=\"flex-grow-1 calendar-head-cell\">\n <span class=\"d-block col-form-label text-center text-nowrap\">\n <span>{{ day | date: 'dd-MM' }}</span><span class=\"d-none d-lg-inline-block\">-{{ day | date: 'yyyy' }}</span>\n </span>\n </div>\n }\n </div>\n </div>\n <div class=\"calendar-body\" [style.height.px]=\"maxInnerHeight\">\n @if (timeSlots$ | async; as row) {\n <div class=\"position-relative\">\n @if (weekOptions$ | async; as weekOptions) {\n <!-- Timeslots -->\n @for (timeslots of row; track timeslots; let i = $index) {\n <div class=\"d-flex flex-row p-0 timeslot\" [style.height.px]=\"weekOptions.unitHeight\">\n <div class=\"calendar-cell calendar-left align-top px-2 py-0\">{{ timeslots.slots[0].start | date: 'HH:mm:ss' }}</div>\n @for (slot of timeslots.slots; track slot.start; let j = $index) {\n <div class=\"calendar-cell flex-grow-1\" #slot (mousedown)=\"onCreateEvent($event, slot)\" [attr.data-row]=\"i\" [attr.data-column]=\"j\"></div>\n }\n </div>\n }\n \n <!-- Events -->\n @if (timeSlotDuration$ | async; as timeSlotDuration) {\n @if (timelinedEventPartsForThisWeek$ | async; as partData) {\n @for (eventPart of partData.parts; track eventPart) {\n <div class=\"event p-0\"\n [style.top.px]=\"(eventPart.part | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart.part | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner\" [class.hover]=\"(hoveredEvent$ | async) === eventPart.part.event\"\n [style.width]=\"'calc(100% / ' + partData.total + ')'\"\n [style.height.px]=\"(eventPart.part | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.margin-left]=\"'calc(100% / ' + partData.total + ' * ' + eventPart.index + ')'\">\n \n @if (eventPart.part.start === eventPart.part.event?.start) {\n <div class=\"event-resize top\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'top')\"></div>\n }\n <div class=\"event-border\"></div>\n @if (eventPart.part.event) {\n <div class=\"event-wrapper\"\n (mousedown)=\"onStartDragEvent(eventPart.part, $event)\"\n (mouseenter)=\"onHoverEvent(eventPart.part.event)\"\n (mouseleave)=\"onLeaveEvent(eventPart.part.event)\">\n <div class=\"event-bg\" [style.background-color]=\"eventPart.part.event.color\"></div>\n <div class=\"event-label\">{{ eventPart.part.event.description }}</div>\n </div>\n }\n @if (eventPart.part.end === eventPart.part.event?.end) {\n <div class=\"event-resize bottom\" (mousedown)=\"onStartResizeEvent(eventPart.part.event, 'bottom')\"></div>\n }\n </div>\n </div>\n }\n }\n @if (previewEventPartsForThisWeek$ | async; as previewPartData) {\n @for (eventPart of previewPartData; track eventPart) {\n <div class=\"event preview p-0\"\n [style.top.px]=\"(eventPart | bsSecondsTodayOffset) / timeSlotDuration * weekOptions.unitHeight\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\"\n [style.left]=\"'calc(90px + ((100% - 90px) / 7 * ' + ((eventPart | dayOfWeek) - 1) + '))'\">\n <div class=\"event-inner w-100\"\n [style.height.px]=\"(eventPart | bsSecondsTimespan) / timeSlotDuration * weekOptions.unitHeight\">\n </div>\n </div>\n }\n }\n }\n }\n </div>\n }\n </div>\n </div>\n }\n @case (modes.timeline) {\n <div class=\"d-flex flex-column-100 overflow-y-auto mb-0 bg-white timeline\">\n <div class=\"calendar-head d-flex\">\n <button class=\"btn flex-start\" (click)=\"onPreviousWeekOrMonth()\">\n <span [innerHTML]=\"chevronLeft\" class=\"px-0\"></span>\n </button>\n <div class=\"flex-grow-1 h3 py-2 mb-0 text-center\">{{ currentWeekOrMonth$ | async | date: 'MMMM yyyy' }}</div>\n <button class=\"btn flex-start\" (click)=\"onNextWeekOrMonth()\">\n <span [innerHTML]=\"chevronRight\" class=\"px-0\"></span>\n </button>\n </div>\n \n <div class=\"calendar-body table-responsive overflow-x-auto\">\n <table class=\"table mb-0\">\n @if (timeSlots$ | async; as timeSlots) {\n <tr>\n <td></td>\n @for (day of timeSlots; track day) {\n <td [attr.colspan]=\"day.slots.length\" class=\"text-center px-2\">\n <span class=\"position-sticky day-label\">{{ day.stamp | date: 'd EE' }}</span>\n </td>\n }\n </tr>\n <tr>\n <td></td>\n @if (timelineOptions$ | async; as timelineOptions) {\n @for (day of timeSlots; track day) {\n @for (slot of day.slots; track slot) {\n <td>\n <span class=\"d-block p-0 text-center\" [style.width.px]=\"timelineOptions.unitWidth\">\n {{ slot.start | date: 'HH:mm' }}\n </span>\n </td>\n }\n }\n }\n </tr>\n @for (group of (resources$ | async); track group) {\n <bs-resource-group-presenter [resourceGroup]=\"group\" [timeSlots]=\"timeSlots\"></bs-resource-group-presenter>\n }\n }\n </table>\n </div>\n </div>\n }\n}","import { SchedulerScale } from \"../interfaces/scheduler-schale\";\n\nexport const availableScales: SchedulerScale[] = [\n { time: 60, pixels: 60, markerSize: 900 }, // 60s / 60px = 1 s/px = 1 min / 60 px\n { time: 120, pixels: 60, markerSize: 900 }, // 120s / 60px = 2 s/px = 2 min / 60 px\n { time: 300, pixels: 60, markerSize: 900 }, // 180s / 60px = 3 s/px = 5 min / 60 px\n { time: 900, pixels: 60, markerSize: 900 }, // 360s / 60px = 6 s/px = 15 min / 60 px\n\n { time: 3600, pixels: 60, markerSize: 21600 }, // 600s / 60px = 10 s/px = 1 u / 60 px\n { time: 7200, pixels: 60, markerSize: 21600 }, // 1200s / 60px = 20 s/px\n { time: 10800, pixels: 60, markerSize: 21600 }, // 1800s / 60px = 30 s/px\n { time: 21600, pixels: 60, markerSize: 21600 }, // 3600s / 60px = 60 s/px\n\n { time: 86400, pixels: 60, markerSize: 604800 }, // 6000s / 60px = 100 s/px\n]","import { Pipe, PipeTransform } from '@angular/core';\nimport { SchedulerEventPart } from '../../interfaces/scheduler-event-part';\n\n@Pipe({\n name: 'dateOffset',\n standalone: false,\n})\nexport class DateOffsetPipe implements PipeTransform {\n transform(value: SchedulerEventPart) {\n const today = new Date(value.start);\n today.setHours(0); today.setMinutes(0); today.setSeconds(0);\n\n return (value.start.getTime() - today.getTime()) / 1000;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsSecondsTimespanPipe } from './pipes/bs-seconds-timespan.pipe/bs-seconds-timespan.pipe';\nimport { BsSecondsTodayOffsetPipe } from './pipes/bs-seconds-today-offset/bs-seconds-today-offset.pipe';\nimport { DateOffsetPipe } from './pipes/date-offset/date-offset.pipe';\nimport { DayOfWeekPipe } from './pipes/day-of-week/day-of-week.pipe';\nimport { BsSchedulerComponent } from './components/scheduler/scheduler.component';\nimport { ResourceGroupPresenterComponent } from './components/resource-group-presenter/resource-group-presenter.component';\n\n@NgModule({\n declarations: [\n BsSchedulerComponent,\n BsSecondsTimespanPipe,\n BsSecondsTodayOffsetPipe,\n DateOffsetPipe,\n DayOfWeekPipe,\n ResourceGroupPresenterComponent\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n BsSchedulerComponent,\n ResourceGroupPresenterComponent\n ]\n})\nexport class BsSchedulerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3.BsTimelineService","i4.ResourceGroupPresenterComponent","i6.BsSecondsTimespanPipe","i7.BsSecondsTodayOffsetPipe","i8.DayOfWeekPipe"],"mappings":"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"}
@@ -9,13 +9,14 @@ class BsScrollspyDirective {
9
9
  constructor(element) {
10
10
  this.element = element;
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: BsScrollspyDirective, selector: "[bsScrollspy]", ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: BsScrollspyDirective, isStandalone: false, selector: "[bsScrollspy]", ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
- selector: '[bsScrollspy]'
18
+ selector: '[bsScrollspy]',
19
+ standalone: false,
19
20
  }]
20
21
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
21
22
 
@@ -34,10 +35,10 @@ class BsScrollOffsetService {
34
35
  return this.routerConfig.scrollOffset();
35
36
  }
36
37
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable }); }
38
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollOffsetService, deps: [{ token: ROUTER_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollOffsetService, providedIn: 'root' }); }
39
40
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollOffsetService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollOffsetService, decorators: [{
41
42
  type: Injectable,
42
43
  args: [{
43
44
  providedIn: 'root'
@@ -105,12 +106,12 @@ class BsScrollspyComponent {
105
106
  window.scrollTo({ top: y, behavior: 'smooth' });
106
107
  }
107
108
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: BsScrollspyComponent, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: BsScrollspyComponent, isStandalone: false, selector: "bs-scrollspy", host: { listeners: { "window:scroll": "onWindowScroll($event)" } }, queries: [{ propertyName: "directives", predicate: BsScrollspyDirective, descendants: true }], viewQueries: [{ propertyName: "anchors", predicate: ["anchor"], descendants: true }], ngImport: i0, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }); }
110
111
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyComponent, decorators: [{
112
113
  type: Component,
113
- args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
114
+ args: [{ selector: 'bs-scrollspy', standalone: false, template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}.spy>ul{list-style-type:none;padding-left:0}.spy>ul>li:hover{color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.spy>ul>li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 768px){:host{display:grid;grid-template-areas:\"content toc\";grid-template-columns:auto 200px;grid-template-rows:auto;gap:inherit;grid-area:main}.spy{position:sticky;top:5rem;right:0;z-index:2;height:calc(100vh - 7rem);overflow-y:auto;grid-area:toc}.spy>ul{padding-left:2rem}}.navH2{margin-left:20px}.navH3{margin-left:40px}.navH4{margin-left:60px}\n"] }]
114
115
  }], ctorParameters: () => [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
115
116
  type: Inject,
116
117
  args: [DOCUMENT]
@@ -126,13 +127,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
126
127
  }] } });
127
128
 
128
129
  class BsScrollspyModule {
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
130
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
131
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
131
132
  BsScrollspyDirective], exports: [BsScrollspyComponent,
132
133
  BsScrollspyDirective] }); }
133
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyModule }); }
134
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyModule }); }
134
135
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BsScrollspyModule, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BsScrollspyModule, decorators: [{
136
137
  type: NgModule,
137
138
  args: [{
138
139
  declarations: [
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-scrollspy.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/scrollspy.module.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/mintplayer-ng-bootstrap-scrollspy.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]'\n})\nexport class BsScrollspyDirective {\n\n constructor(element: ElementRef) {\n this.element = element;\n }\n\n element: ElementRef;\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n constructor(\n @Inject(ROUTER_CONFIGURATION) private routerConfig: ExtraOptions\n ) { }\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Inject, NgZone, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, take } from 'rxjs';\nimport { BsScrollOffsetService } from '../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss']\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit {\n\n constructor(\n private scrollOffsetService: BsScrollOffsetService,\n @Inject(DOCUMENT) document: any,\n private zone: NgZone) {\n this.doc = <Document>document;\n combineLatest([this.viewInit$, this.contentInit$])\n .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n // this.setActiveDirective();\n this.scrollToCurrentInSpy();\n });\n }\n\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private contentInit$ = new BehaviorSubject<boolean>(false);\n\n @ContentChildren(BsScrollspyDirective, { descendants: true }) directives!: QueryList<BsScrollspyDirective>;\n @ViewChildren('anchor') anchors!: QueryList<ElementRef<HTMLSpanElement>>;\n\n doc: Document;\n activeDirective: BsScrollspyDirective | null = null;\n\n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngAfterContentInit() {\n this.contentInit$.next(true);\n }\n \n @HostListener('window:scroll', ['$event'])\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (this.directives.length === 0) {\n this.activeDirective = null;\n } else if (dirs.length === 0) {\n this.activeDirective = this.directives.get(0) ?? null;\n } else {\n this.activeDirective = dirs[dirs.length - 1];\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective) {\n const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);\n const anchor = this.anchors.get(index);\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n \n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { BsScrollspyComponent } from './component/scrollspy.component';\nimport { BsScrollspyDirective } from './directives/scrollspy.directive';\n\n\n\n@NgModule({\n declarations: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ],\n imports: [],\n exports: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ]\n})\nexport class BsScrollspyModule { }\n","/**\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-scrollspy.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/component/scrollspy.component.html","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/scrollspy.module.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/mintplayer-ng-bootstrap-scrollspy.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[bsScrollspy]',\n standalone: false,\n})\nexport class BsScrollspyDirective {\n constructor(element: ElementRef) {\n this.element = element;\n }\n\n element: ElementRef;\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ExtraOptions, ROUTER_CONFIGURATION } from '@angular/router';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BsScrollOffsetService {\n\n constructor(\n @Inject(ROUTER_CONFIGURATION) private routerConfig: ExtraOptions\n ) { }\n\n getScrollOffset(): [number, number] {\n if (!this.routerConfig.scrollOffset) {\n return [0, 0];\n } else if (Array.isArray(this.routerConfig.scrollOffset)) {\n return this.routerConfig.scrollOffset\n } else {\n return this.routerConfig.scrollOffset();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, ContentChildren, ElementRef, HostListener, Inject, NgZone, QueryList, ViewChildren } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, take } from 'rxjs';\nimport { BsScrollOffsetService } from '../services/scroll-offset/scroll-offset.service';\nimport { BsScrollspyDirective } from '../directives/scrollspy.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-scrollspy',\n templateUrl: './scrollspy.component.html',\n styleUrls: ['./scrollspy.component.scss'],\n standalone: false,\n})\nexport class BsScrollspyComponent implements AfterViewInit, AfterContentInit {\n\n constructor(\n private scrollOffsetService: BsScrollOffsetService,\n @Inject(DOCUMENT) document: any,\n private zone: NgZone) {\n this.doc = <Document>document;\n combineLatest([this.viewInit$, this.contentInit$])\n .pipe(filter(([viewInit, contentInit]) => viewInit && contentInit), take(1))\n .pipe(takeUntilDestroyed())\n .subscribe(() => {\n // this.setActiveDirective();\n this.scrollToCurrentInSpy();\n });\n }\n\n private viewInit$ = new BehaviorSubject<boolean>(false);\n private contentInit$ = new BehaviorSubject<boolean>(false);\n\n @ContentChildren(BsScrollspyDirective, { descendants: true }) directives!: QueryList<BsScrollspyDirective>;\n @ViewChildren('anchor') anchors!: QueryList<ElementRef<HTMLSpanElement>>;\n\n doc: Document;\n activeDirective: BsScrollspyDirective | null = null;\n\n ngAfterViewInit() {\n this.viewInit$.next(true);\n }\n\n ngAfterContentInit() {\n this.contentInit$.next(true);\n }\n \n @HostListener('window:scroll', ['$event'])\n onWindowScroll() {\n this.setActiveDirective();\n this.scrollToCurrentInSpy();\n }\n\n setActiveDirective() {\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const dirs = this.directives.filter((d) => d.element.nativeElement.getBoundingClientRect().y < offsetY);\n\n if (this.directives.length === 0) {\n this.activeDirective = null;\n } else if (dirs.length === 0) {\n this.activeDirective = this.directives.get(0) ?? null;\n } else {\n this.activeDirective = dirs[dirs.length - 1];\n }\n }\n\n scrollToCurrentInSpy() {\n if ((typeof window !== 'undefined') && (window.innerWidth >= 768)) {\n if (this.activeDirective) {\n const index = this.directives.toArray().findIndex((v, i) => v === this.activeDirective);\n const anchor = this.anchors.get(index);\n if (anchor && anchor.nativeElement.parentElement) {\n anchor.nativeElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n }\n }\n }\n \n scrollToHeader(directive: BsScrollspyDirective) {\n if (typeof window !== 'undefined') {\n const header = directive.element.nativeElement;\n const offsetY = this.scrollOffsetService.getScrollOffset()[1];\n const y = header.getBoundingClientRect().top + window.scrollY - offsetY + 1;\n window.scrollTo({top: y, behavior: 'smooth'});\n }\n }\n\n}\n","<div class=\"spy\">\n <ul class=\"text-muted\">\n @for (dir of directives; track dir; let i = $index) {\n <li>\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [class]=\"'nav' + dir.element.nativeElement.tagName\" [class.fw-bold]=\"activeDirective?.element === dir.element\" (click)=\"scrollToHeader(dir)\" [title]=\"dir.element.nativeElement.textContent\" #anchor>\n {{ dir.element.nativeElement.textContent }}\n </span>\n </li>\n }\n </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { BsScrollspyComponent } from './component/scrollspy.component';\nimport { BsScrollspyDirective } from './directives/scrollspy.directive';\n\n\n\n@NgModule({\n declarations: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ],\n imports: [],\n exports: [\n BsScrollspyComponent,\n BsScrollspyDirective\n ]\n})\nexport class BsScrollspyModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}