@mintplayer/ng-bootstrap 17.1.3 → 17.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/accordion/src/accordion.module.d.ts +1 -1
  2. package/alert/src/alert.module.d.ts +1 -2
  3. package/async-host-binding/src/index.d.ts +1 -1
  4. package/async-host-binding/src/provide-async-host-bindings.d.ts +2 -0
  5. package/badge/src/badge.component.d.ts +1 -1
  6. package/badge/src/index.d.ts +0 -1
  7. package/breadcrumb/src/breadcrumb.module.d.ts +1 -2
  8. package/button-group/src/button-group/button-group.component.d.ts +2 -5
  9. package/button-group/src/index.d.ts +0 -1
  10. package/button-type/src/button-type/button-type.directive.d.ts +1 -1
  11. package/button-type/src/index.d.ts +0 -1
  12. package/calendar/src/calendar.component.d.ts +1 -1
  13. package/calendar/src/index.d.ts +0 -1
  14. package/calendar-month/src/pipes/index.d.ts +2 -2
  15. package/calendar-month/src/pipes/month-name/month-name.pipe.d.ts +3 -3
  16. package/calendar-month/src/pipes/weekday-name/weekday-name.pipe.d.ts +3 -3
  17. package/carousel/src/carousel.module.d.ts +2 -3
  18. package/close/src/close.component.d.ts +1 -1
  19. package/close/src/index.d.ts +0 -1
  20. package/code-snippet/src/code-snippet.component.d.ts +8 -2
  21. package/code-snippet/src/index.d.ts +0 -1
  22. package/color-picker/color-picker.module.d.ts +1 -1
  23. package/container/src/container/container.component.d.ts +1 -1
  24. package/container/src/index.d.ts +0 -1
  25. package/context-menu/src/context-menu.module.d.ts +1 -1
  26. package/copy/src/copy.directive.d.ts +1 -1
  27. package/copy/src/index.d.ts +0 -1
  28. package/datatable/src/datatable.module.d.ts +1 -1
  29. package/datepicker/src/datepicker.component.d.ts +1 -1
  30. package/datepicker/src/index.d.ts +0 -1
  31. package/dock/src/dock.module.d.ts +1 -1
  32. package/dropdown/src/dropdown/dropdown.directive.d.ts +3 -3
  33. package/dropdown/src/dropdown.module.d.ts +1 -1
  34. package/dropdown-divider/src/dropdown-divider.directive.d.ts +1 -1
  35. package/dropdown-divider/src/index.d.ts +0 -1
  36. package/dropdown-menu/src/dropdown-menu.module.d.ts +1 -1
  37. package/enhanced-paste/src/directive/enhanced-paste.directive.d.ts +1 -1
  38. package/enhanced-paste/src/index.d.ts +0 -1
  39. package/esm2022/accordion/src/accordion.module.mjs +8 -9
  40. package/esm2022/alert/src/alert/alert.component.mjs +3 -4
  41. package/esm2022/alert/src/alert.module.mjs +3 -5
  42. package/esm2022/async-host-binding/src/index.mjs +2 -2
  43. package/esm2022/async-host-binding/src/provide-async-host-bindings.mjs +10 -0
  44. package/esm2022/badge/src/badge.component.mjs +4 -4
  45. package/esm2022/badge/src/index.mjs +1 -2
  46. package/esm2022/breadcrumb/src/breadcrumb.module.mjs +3 -5
  47. package/esm2022/button-group/src/button-group/button-group.component.mjs +4 -6
  48. package/esm2022/button-group/src/index.mjs +1 -2
  49. package/esm2022/button-type/src/button-type/button-type.directive.mjs +4 -3
  50. package/esm2022/button-type/src/index.mjs +1 -2
  51. package/esm2022/calendar/src/calendar.component.mjs +7 -8
  52. package/esm2022/calendar/src/index.mjs +1 -2
  53. package/esm2022/calendar-month/src/pipes/index.mjs +3 -3
  54. package/esm2022/calendar-month/src/pipes/month-name/month-name.pipe.mjs +7 -6
  55. package/esm2022/calendar-month/src/pipes/weekday-name/weekday-name.pipe.mjs +7 -6
  56. package/esm2022/carousel/src/carousel/carousel.component.mjs +4 -5
  57. package/esm2022/carousel/src/carousel.module.mjs +13 -18
  58. package/esm2022/close/src/close.component.mjs +3 -3
  59. package/esm2022/close/src/index.mjs +1 -2
  60. package/esm2022/code-snippet/src/code-snippet.component.mjs +22 -8
  61. package/esm2022/code-snippet/src/index.mjs +1 -2
  62. package/esm2022/color-picker/color-picker.module.mjs +8 -10
  63. package/esm2022/color-picker/components/color-picker/color-picker.component.mjs +8 -8
  64. package/esm2022/color-picker/components/color-wheel/color-wheel.component.mjs +3 -3
  65. package/esm2022/container/src/container/container.component.mjs +3 -3
  66. package/esm2022/container/src/index.mjs +1 -2
  67. package/esm2022/context-menu/src/context-menu.module.mjs +8 -8
  68. package/esm2022/copy/src/copy.directive.mjs +3 -2
  69. package/esm2022/copy/src/index.mjs +1 -2
  70. package/esm2022/datatable/src/datatable/datatable.component.mjs +3 -3
  71. package/esm2022/datatable/src/datatable.module.mjs +15 -14
  72. package/esm2022/datepicker/src/datepicker.component.mjs +10 -8
  73. package/esm2022/datepicker/src/index.mjs +1 -2
  74. package/esm2022/dock/src/dock/dock.component.mjs +5 -5
  75. package/esm2022/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +9 -9
  76. package/esm2022/dock/src/dock.module.mjs +5 -6
  77. package/esm2022/dropdown/src/dropdown/dropdown.directive.mjs +5 -3
  78. package/esm2022/dropdown/src/dropdown.module.mjs +8 -10
  79. package/esm2022/dropdown-divider/src/dropdown-divider.directive.mjs +4 -3
  80. package/esm2022/dropdown-divider/src/index.mjs +1 -2
  81. package/esm2022/dropdown-menu/src/dropdown-menu.module.mjs +5 -5
  82. package/esm2022/enhanced-paste/src/directive/enhanced-paste.directive.mjs +4 -3
  83. package/esm2022/enhanced-paste/src/index.mjs +1 -2
  84. package/esm2022/file-upload/src/component/file-upload.component.mjs +6 -7
  85. package/esm2022/file-upload/src/file-upload.module.mjs +12 -19
  86. package/esm2022/file-upload/src/pipes/format-bytes/format-bytes.pipe.mjs +2 -2
  87. package/esm2022/floating-labels/src/floating-label/floating-label.component.mjs +20 -0
  88. package/esm2022/floating-labels/src/index.mjs +2 -3
  89. package/esm2022/font-color/index.mjs +1 -2
  90. package/esm2022/font-color/src/font-color.pipe.mjs +4 -3
  91. package/esm2022/for/src/for.directive.mjs +4 -3
  92. package/esm2022/for/src/index.mjs +1 -2
  93. package/esm2022/grid/src/grid.module.mjs +5 -5
  94. package/esm2022/has-overlay/src/has-overlay/has-overlay.component.mjs +3 -3
  95. package/esm2022/has-overlay/src/index.mjs +1 -2
  96. package/esm2022/has-property/src/has-property.pipe.mjs +6 -5
  97. package/esm2022/has-property/src/index.mjs +1 -2
  98. package/esm2022/in-list/index.mjs +1 -2
  99. package/esm2022/in-list/src/in-list.pipe.mjs +4 -3
  100. package/esm2022/input-group/src/index.mjs +1 -2
  101. package/esm2022/input-group/src/input-group/input-group.component.mjs +3 -3
  102. package/esm2022/let/directive/let.directive.mjs +4 -3
  103. package/esm2022/let/index.mjs +1 -2
  104. package/esm2022/linify/index.mjs +1 -2
  105. package/esm2022/linify/src/linify.pipe.mjs +3 -2
  106. package/esm2022/markdown/index.mjs +1 -2
  107. package/esm2022/markdown/src/bold/bold.pipe.mjs +4 -3
  108. package/esm2022/markdown/src/italic/italic.pipe.mjs +4 -3
  109. package/esm2022/markdown/src/strikethrough/strikethrough.pipe.mjs +4 -3
  110. package/esm2022/markdown/src/underline/underline.pipe.mjs +4 -3
  111. package/esm2022/marquee/index.mjs +1 -2
  112. package/esm2022/marquee/src/marquee/marquee.component.mjs +3 -3
  113. package/esm2022/modal/src/components/modal/modal.component.mjs +3 -3
  114. package/esm2022/modal/src/modal.module.mjs +9 -10
  115. package/esm2022/multiselect/src/component/multiselect.component.mjs +3 -8
  116. package/esm2022/multiselect/src/multiselect.module.mjs +15 -18
  117. package/esm2022/navbar/src/navbar.module.mjs +30 -33
  118. package/esm2022/navbar-toggler/src/index.mjs +1 -2
  119. package/esm2022/navbar-toggler/src/navbar-toggler/navbar-toggler.component.mjs +4 -4
  120. package/esm2022/no-noscript/src/index.mjs +1 -2
  121. package/esm2022/no-noscript/src/no-noscript/no-noscript.directive.mjs +4 -3
  122. package/esm2022/offcanvas/src/components/offcanvas/offcanvas.component.mjs +3 -3
  123. package/esm2022/offcanvas/src/offcanvas.module.mjs +11 -10
  124. package/esm2022/ordinal-number/src/index.mjs +1 -2
  125. package/esm2022/ordinal-number/src/ordinal-number/ordinal-number.pipe.mjs +4 -3
  126. package/esm2022/pagination/src/component/pagination/pagination.component.mjs +4 -5
  127. package/esm2022/pagination/src/index.mjs +1 -2
  128. package/esm2022/playlist-toggler/src/index.mjs +1 -2
  129. package/esm2022/playlist-toggler/src/playlist-toggler/playlist-toggler.component.mjs +4 -4
  130. package/esm2022/popover/src/component/popover.component.mjs +3 -3
  131. package/esm2022/popover/src/popover.module.mjs +6 -6
  132. package/esm2022/progress-bar/src/progress/progress.component.mjs +3 -4
  133. package/esm2022/rating/src/component/rating.component.mjs +4 -4
  134. package/esm2022/rating/src/index.mjs +1 -2
  135. package/esm2022/scheduler/src/components/resource-group-presenter/resource-group-presenter.component.mjs +3 -3
  136. package/esm2022/scheduler/src/components/scheduler/scheduler.component.mjs +5 -5
  137. package/esm2022/scrollspy/src/component/scrollspy.component.mjs +3 -4
  138. package/esm2022/scrollspy/src/scrollspy.module.mjs +4 -7
  139. package/esm2022/searchbox/src/searchbox/searchbox.component.mjs +5 -5
  140. package/esm2022/searchbox/src/searchbox.module.mjs +21 -23
  141. package/esm2022/select2/src/component/select2.component.mjs +3 -3
  142. package/esm2022/select2/src/select2.module.mjs +12 -14
  143. package/esm2022/signature-pad/src/component/signature-pad.component.mjs +3 -3
  144. package/esm2022/signature-pad/src/index.mjs +1 -2
  145. package/esm2022/slugify/index.mjs +1 -2
  146. package/esm2022/slugify/src/slugify.pipe.mjs +4 -3
  147. package/esm2022/spinner/src/index.mjs +1 -2
  148. package/esm2022/spinner/src/spinner.component.mjs +4 -4
  149. package/esm2022/split-string/index.mjs +1 -2
  150. package/esm2022/split-string/src/split-string.pipe.mjs +4 -3
  151. package/esm2022/splitter/src/splitter/splitter.component.mjs +7 -7
  152. package/esm2022/splitter/src/splitter.module.mjs +7 -7
  153. package/esm2022/tab-control/src/tab-control/tab-control.component.mjs +4 -4
  154. package/esm2022/tab-control/src/tab-control.module.mjs +13 -14
  155. package/esm2022/table/src/component/table.component.mjs +4 -4
  156. package/esm2022/table/src/index.mjs +1 -2
  157. package/esm2022/timepicker/src/index.mjs +1 -2
  158. package/esm2022/timepicker/src/timepicker.component.mjs +17 -12
  159. package/esm2022/toast/src/components/toast-container/toast-container.component.mjs +3 -3
  160. package/esm2022/toast/src/toast.module.mjs +11 -10
  161. package/esm2022/tooltip/src/tooltip.module.mjs +5 -5
  162. package/esm2022/trust-html/index.mjs +1 -2
  163. package/esm2022/trust-html/src/trust-html.pipe.mjs +4 -3
  164. package/esm2022/typeahead/src/index.mjs +1 -2
  165. package/esm2022/typeahead/src/typeahead.component.mjs +16 -10
  166. package/esm2022/uc-first/index.mjs +1 -2
  167. package/esm2022/uc-first/src/uc-first.pipe.mjs +4 -3
  168. package/esm2022/user-agent/src/directive/user-agent.directive.mjs +4 -3
  169. package/esm2022/user-agent/src/index.mjs +1 -2
  170. package/esm2022/word-count/index.mjs +1 -2
  171. package/esm2022/word-count/src/word-count.pipe.mjs +4 -3
  172. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +8 -9
  173. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  174. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +4 -7
  175. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  176. package/fesm2022/mintplayer-ng-bootstrap-async-host-binding.mjs +7 -29
  177. package/fesm2022/mintplayer-ng-bootstrap-async-host-binding.mjs.map +1 -1
  178. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +5 -20
  179. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  180. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +2 -4
  181. package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
  182. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +4 -21
  183. package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
  184. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs +5 -25
  185. package/fesm2022/mintplayer-ng-bootstrap-button-type.mjs.map +1 -1
  186. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs +14 -53
  187. package/fesm2022/mintplayer-ng-bootstrap-calendar-month.mjs.map +1 -1
  188. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +9 -49
  189. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  190. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +15 -21
  191. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  192. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +4 -19
  193. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  194. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +20 -39
  195. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  196. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +13 -15
  197. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  198. package/fesm2022/mintplayer-ng-bootstrap-container.mjs +4 -19
  199. package/fesm2022/mintplayer-ng-bootstrap-container.mjs.map +1 -1
  200. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs +7 -7
  201. package/fesm2022/mintplayer-ng-bootstrap-context-menu.mjs.map +1 -1
  202. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs +5 -24
  203. package/fesm2022/mintplayer-ng-bootstrap-copy.mjs.map +1 -1
  204. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +16 -15
  205. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  206. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +10 -45
  207. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  208. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +14 -15
  209. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  210. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs +5 -19
  211. package/fesm2022/mintplayer-ng-bootstrap-dropdown-divider.mjs.map +1 -1
  212. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +4 -4
  213. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  214. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +10 -10
  215. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  216. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +5 -25
  217. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  218. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +16 -24
  219. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  220. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs +4 -19
  221. package/fesm2022/mintplayer-ng-bootstrap-floating-labels.mjs.map +1 -1
  222. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs +5 -25
  223. package/fesm2022/mintplayer-ng-bootstrap-font-color.mjs.map +1 -1
  224. package/fesm2022/mintplayer-ng-bootstrap-for.mjs +5 -25
  225. package/fesm2022/mintplayer-ng-bootstrap-for.mjs.map +1 -1
  226. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +4 -4
  227. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  228. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +4 -19
  229. package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
  230. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs +7 -21
  231. package/fesm2022/mintplayer-ng-bootstrap-has-property.mjs.map +1 -1
  232. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs +5 -25
  233. package/fesm2022/mintplayer-ng-bootstrap-in-list.mjs.map +1 -1
  234. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs +4 -19
  235. package/fesm2022/mintplayer-ng-bootstrap-input-group.mjs.map +1 -1
  236. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +5 -25
  237. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  238. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs +4 -18
  239. package/fesm2022/mintplayer-ng-bootstrap-linify.mjs.map +1 -1
  240. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +28 -57
  241. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  242. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +4 -19
  243. package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
  244. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +10 -11
  245. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  246. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -24
  247. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  248. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +5 -20
  249. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  250. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +29 -32
  251. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  252. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs +6 -19
  253. package/fesm2022/mintplayer-ng-bootstrap-no-noscript.mjs.map +1 -1
  254. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +12 -11
  255. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  256. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +5 -25
  257. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  258. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +5 -31
  259. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  260. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +5 -20
  261. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  262. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +7 -7
  263. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  264. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +2 -3
  265. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  266. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +5 -26
  267. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  268. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +5 -5
  269. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  270. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +6 -9
  271. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  272. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +24 -26
  273. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  274. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +13 -15
  275. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  276. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +4 -19
  277. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  278. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs +5 -19
  279. package/fesm2022/mintplayer-ng-bootstrap-slugify.mjs.map +1 -1
  280. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +5 -20
  281. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  282. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs +5 -19
  283. package/fesm2022/mintplayer-ng-bootstrap-split-string.mjs.map +1 -1
  284. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +12 -12
  285. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  286. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +15 -16
  287. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  288. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +5 -20
  289. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  290. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +16 -64
  291. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  292. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +12 -11
  293. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  294. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +4 -4
  295. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  296. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +5 -19
  297. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  298. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +14 -53
  299. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  300. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs +5 -25
  301. package/fesm2022/mintplayer-ng-bootstrap-uc-first.mjs.map +1 -1
  302. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs +6 -25
  303. package/fesm2022/mintplayer-ng-bootstrap-user-agent.mjs.map +1 -1
  304. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs +5 -19
  305. package/fesm2022/mintplayer-ng-bootstrap-word-count.mjs.map +1 -1
  306. package/file-upload/src/file-upload.module.d.ts +4 -5
  307. package/floating-labels/src/{floating-labels/floating-label → floating-label}/floating-label.component.d.ts +1 -1
  308. package/floating-labels/src/index.d.ts +1 -2
  309. package/font-color/index.d.ts +0 -1
  310. package/font-color/src/font-color.pipe.d.ts +1 -1
  311. package/for/src/for.directive.d.ts +1 -1
  312. package/for/src/index.d.ts +0 -1
  313. package/grid/src/grid.module.d.ts +1 -1
  314. package/has-overlay/src/has-overlay/has-overlay.component.d.ts +1 -1
  315. package/has-overlay/src/index.d.ts +0 -1
  316. package/has-property/src/has-property.pipe.d.ts +3 -3
  317. package/has-property/src/index.d.ts +0 -1
  318. package/in-list/index.d.ts +0 -1
  319. package/in-list/src/in-list.pipe.d.ts +1 -1
  320. package/input-group/src/index.d.ts +0 -1
  321. package/input-group/src/input-group/input-group.component.d.ts +1 -1
  322. package/let/directive/let.directive.d.ts +1 -1
  323. package/let/index.d.ts +0 -1
  324. package/linify/index.d.ts +0 -1
  325. package/linify/src/linify.pipe.d.ts +1 -1
  326. package/markdown/index.d.ts +0 -1
  327. package/markdown/src/bold/bold.pipe.d.ts +1 -1
  328. package/markdown/src/italic/italic.pipe.d.ts +1 -1
  329. package/markdown/src/strikethrough/strikethrough.pipe.d.ts +1 -1
  330. package/markdown/src/underline/underline.pipe.d.ts +1 -1
  331. package/marquee/index.d.ts +0 -1
  332. package/marquee/src/marquee/marquee.component.d.ts +1 -1
  333. package/modal/src/modal.module.d.ts +1 -1
  334. package/multiselect/src/component/multiselect.component.d.ts +2 -4
  335. package/multiselect/src/multiselect.module.d.ts +1 -1
  336. package/navbar/src/navbar.module.d.ts +1 -1
  337. package/navbar-toggler/src/index.d.ts +0 -1
  338. package/navbar-toggler/src/navbar-toggler/navbar-toggler.component.d.ts +1 -1
  339. package/no-noscript/src/index.d.ts +0 -1
  340. package/no-noscript/src/no-noscript/no-noscript.directive.d.ts +1 -1
  341. package/offcanvas/src/offcanvas.module.d.ts +1 -1
  342. package/ordinal-number/src/index.d.ts +0 -1
  343. package/ordinal-number/src/ordinal-number/ordinal-number.pipe.d.ts +1 -1
  344. package/package.json +1 -13
  345. package/pagination/src/component/pagination/pagination.component.d.ts +1 -1
  346. package/pagination/src/index.d.ts +0 -1
  347. package/playlist-toggler/src/index.d.ts +0 -1
  348. package/playlist-toggler/src/playlist-toggler/playlist-toggler.component.d.ts +1 -1
  349. package/popover/src/popover.module.d.ts +1 -1
  350. package/rating/src/component/rating.component.d.ts +1 -1
  351. package/rating/src/index.d.ts +0 -1
  352. package/scrollspy/src/scrollspy.module.d.ts +1 -2
  353. package/searchbox/src/searchbox.module.d.ts +3 -3
  354. package/select2/src/select2.module.d.ts +1 -1
  355. package/signature-pad/src/component/signature-pad.component.d.ts +1 -1
  356. package/signature-pad/src/index.d.ts +0 -1
  357. package/slugify/index.d.ts +0 -1
  358. package/slugify/src/slugify.pipe.d.ts +1 -1
  359. package/spinner/src/index.d.ts +0 -1
  360. package/spinner/src/spinner.component.d.ts +1 -1
  361. package/split-string/index.d.ts +0 -1
  362. package/split-string/src/split-string.pipe.d.ts +1 -1
  363. package/splitter/src/splitter.module.d.ts +1 -1
  364. package/tab-control/src/tab-control.module.d.ts +1 -1
  365. package/table/src/component/table.component.d.ts +1 -1
  366. package/table/src/index.d.ts +0 -1
  367. package/timepicker/src/index.d.ts +0 -1
  368. package/timepicker/src/timepicker.component.d.ts +1 -1
  369. package/toast/src/toast.module.d.ts +1 -1
  370. package/tooltip/src/tooltip.module.d.ts +1 -1
  371. package/trust-html/index.d.ts +0 -1
  372. package/trust-html/src/trust-html.pipe.d.ts +1 -1
  373. package/typeahead/src/index.d.ts +0 -1
  374. package/typeahead/src/typeahead.component.d.ts +1 -1
  375. package/uc-first/index.d.ts +0 -1
  376. package/uc-first/src/uc-first.pipe.d.ts +1 -1
  377. package/user-agent/src/directive/user-agent.directive.d.ts +1 -1
  378. package/user-agent/src/index.d.ts +0 -1
  379. package/word-count/index.d.ts +0 -1
  380. package/word-count/src/word-count.pipe.d.ts +1 -1
  381. package/async-host-binding/src/async-host-binding.module.d.ts +0 -7
  382. package/badge/src/badge.module.d.ts +0 -8
  383. package/button-group/src/button-group.module.d.ts +0 -8
  384. package/button-type/src/button-type/button-type.module.d.ts +0 -8
  385. package/calendar/src/calendar.module.d.ts +0 -12
  386. package/calendar-month/src/pipes/month-name/index.d.ts +0 -2
  387. package/calendar-month/src/pipes/month-name/month-name.module.d.ts +0 -8
  388. package/calendar-month/src/pipes/weekday-name/index.d.ts +0 -2
  389. package/calendar-month/src/pipes/weekday-name/weekday-name.module.d.ts +0 -8
  390. package/close/src/close.module.d.ts +0 -8
  391. package/code-snippet/src/code-snippet.module.d.ts +0 -11
  392. package/container/src/container.module.d.ts +0 -8
  393. package/copy/src/copy.module.d.ts +0 -8
  394. package/datepicker/src/datepicker.module.d.ts +0 -12
  395. package/dropdown-divider/src/dropdown-divider.module.d.ts +0 -8
  396. package/enhanced-paste/src/enhanced-paste.module.d.ts +0 -8
  397. package/esm2022/async-host-binding/src/async-host-binding.module.mjs +0 -32
  398. package/esm2022/badge/src/badge.module.mjs +0 -18
  399. package/esm2022/button-group/src/button-group.module.mjs +0 -18
  400. package/esm2022/button-type/src/button-type/button-type.module.mjs +0 -24
  401. package/esm2022/calendar/src/calendar.module.mjs +0 -43
  402. package/esm2022/calendar-month/src/pipes/month-name/index.mjs +0 -3
  403. package/esm2022/calendar-month/src/pipes/month-name/month-name.module.mjs +0 -24
  404. package/esm2022/calendar-month/src/pipes/weekday-name/index.mjs +0 -3
  405. package/esm2022/calendar-month/src/pipes/weekday-name/weekday-name.module.mjs +0 -24
  406. package/esm2022/close/src/close.module.mjs +0 -18
  407. package/esm2022/code-snippet/src/code-snippet.module.mjs +0 -36
  408. package/esm2022/container/src/container.module.mjs +0 -18
  409. package/esm2022/copy/src/copy.module.mjs +0 -24
  410. package/esm2022/datepicker/src/datepicker.module.mjs +0 -40
  411. package/esm2022/dropdown-divider/src/dropdown-divider.module.mjs +0 -18
  412. package/esm2022/enhanced-paste/src/enhanced-paste.module.mjs +0 -24
  413. package/esm2022/floating-labels/src/floating-labels/floating-label/floating-label.component.mjs +0 -20
  414. package/esm2022/floating-labels/src/floating-labels/floating-labels.module.mjs +0 -18
  415. package/esm2022/font-color/src/font-color.module.mjs +0 -24
  416. package/esm2022/for/src/for.module.mjs +0 -24
  417. package/esm2022/has-overlay/src/has-overlay/has-overlay.module.mjs +0 -18
  418. package/esm2022/has-property/src/has-property.module.mjs +0 -18
  419. package/esm2022/in-list/src/in-list.module.mjs +0 -24
  420. package/esm2022/input-group/src/input-group.module.mjs +0 -18
  421. package/esm2022/lazy-loading/index.mjs +0 -2
  422. package/esm2022/lazy-loading/mintplayer-ng-bootstrap-lazy-loading.mjs +0 -5
  423. package/esm2022/lazy-loading/src/index.mjs +0 -3
  424. package/esm2022/lazy-loading/src/lazy-load/lazy-load.directive.mjs +0 -32
  425. package/esm2022/lazy-loading/src/lazy-loading.module.mjs +0 -24
  426. package/esm2022/let/let.module.mjs +0 -24
  427. package/esm2022/linify/src/linify.module.mjs +0 -18
  428. package/esm2022/markdown/src/markdown.module.mjs +0 -39
  429. package/esm2022/marquee/src/marquee.module.mjs +0 -18
  430. package/esm2022/navbar-toggler/src/navbar-toggler.module.mjs +0 -18
  431. package/esm2022/no-noscript/src/no-noscript.module.mjs +0 -18
  432. package/esm2022/ordinal-number/src/ordinal-number.module.mjs +0 -24
  433. package/esm2022/pagination/src/pagination.module.mjs +0 -28
  434. package/esm2022/playlist-toggler/src/playlist-toggler.module.mjs +0 -18
  435. package/esm2022/rating/src/rating.module.mjs +0 -24
  436. package/esm2022/signature-pad/src/signature-pad.module.mjs +0 -18
  437. package/esm2022/slugify/src/slugify.module.mjs +0 -18
  438. package/esm2022/spinner/src/spinner.module.mjs +0 -18
  439. package/esm2022/split-string/src/split-string.module.mjs +0 -18
  440. package/esm2022/table/src/table.module.mjs +0 -18
  441. package/esm2022/timepicker/src/timepicker.module.mjs +0 -56
  442. package/esm2022/track-by/index.mjs +0 -4
  443. package/esm2022/track-by/mintplayer-ng-bootstrap-track-by.mjs +0 -5
  444. package/esm2022/track-by/src/track-by-index.directive.mjs +0 -22
  445. package/esm2022/track-by/src/track-by.directive.mjs +0 -28
  446. package/esm2022/track-by/src/track-by.module.mjs +0 -19
  447. package/esm2022/trust-html/src/trust-html.module.mjs +0 -18
  448. package/esm2022/typeahead/src/typeahead.module.mjs +0 -48
  449. package/esm2022/uc-first/src/uc-first.module.mjs +0 -24
  450. package/esm2022/user-agent/src/user-agent.module.mjs +0 -24
  451. package/esm2022/word-count/src/word-count.module.mjs +0 -18
  452. package/fesm2022/mintplayer-ng-bootstrap-lazy-loading.mjs +0 -60
  453. package/fesm2022/mintplayer-ng-bootstrap-lazy-loading.mjs.map +0 -1
  454. package/fesm2022/mintplayer-ng-bootstrap-track-by.mjs +0 -67
  455. package/fesm2022/mintplayer-ng-bootstrap-track-by.mjs.map +0 -1
  456. package/floating-labels/src/floating-labels/floating-labels.module.d.ts +0 -8
  457. package/font-color/src/font-color.module.d.ts +0 -8
  458. package/for/src/for.module.d.ts +0 -8
  459. package/has-overlay/src/has-overlay/has-overlay.module.d.ts +0 -8
  460. package/has-property/src/has-property.module.d.ts +0 -8
  461. package/in-list/src/in-list.module.d.ts +0 -8
  462. package/input-group/src/input-group.module.d.ts +0 -8
  463. package/lazy-loading/index.d.ts +0 -1
  464. package/lazy-loading/src/index.d.ts +0 -2
  465. package/lazy-loading/src/lazy-load/lazy-load.directive.d.ts +0 -13
  466. package/lazy-loading/src/lazy-loading.module.d.ts +0 -8
  467. package/let/let.module.d.ts +0 -8
  468. package/linify/src/linify.module.d.ts +0 -8
  469. package/markdown/src/markdown.module.d.ts +0 -11
  470. package/marquee/src/marquee.module.d.ts +0 -8
  471. package/navbar-toggler/src/navbar-toggler.module.d.ts +0 -8
  472. package/no-noscript/src/no-noscript.module.d.ts +0 -8
  473. package/ordinal-number/src/ordinal-number.module.d.ts +0 -8
  474. package/pagination/src/pagination.module.d.ts +0 -9
  475. package/playlist-toggler/src/playlist-toggler.module.d.ts +0 -8
  476. package/rating/src/rating.module.d.ts +0 -8
  477. package/signature-pad/src/signature-pad.module.d.ts +0 -8
  478. package/slugify/src/slugify.module.d.ts +0 -8
  479. package/spinner/src/spinner.module.d.ts +0 -8
  480. package/split-string/src/split-string.module.d.ts +0 -8
  481. package/table/src/table.module.d.ts +0 -8
  482. package/timepicker/src/timepicker.module.d.ts +0 -16
  483. package/track-by/index.d.ts +0 -3
  484. package/track-by/src/track-by-index.directive.d.ts +0 -9
  485. package/track-by/src/track-by.directive.d.ts +0 -11
  486. package/track-by/src/track-by.module.d.ts +0 -9
  487. package/trust-html/src/trust-html.module.d.ts +0 -8
  488. package/typeahead/src/typeahead.module.d.ts +0 -14
  489. package/uc-first/src/uc-first.module.d.ts +0 -8
  490. package/user-agent/src/user-agent.module.d.ts +0 -8
  491. package/word-count/src/word-count.module.d.ts +0 -8
@@ -1,5 +1,4 @@
1
- import * as i2 from '@angular/common';
2
- import { DOCUMENT, CommonModule } from '@angular/common';
1
+ import { DOCUMENT } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
3
  import { Injectable, Inject, Directive, Component, ContentChildren, ViewChildren, HostListener, NgModule } from '@angular/core';
5
4
  import { BehaviorSubject, combineLatest, filter, take } from 'rxjs';
@@ -107,11 +106,11 @@ class BsScrollspyComponent {
107
106
  }
108
107
  }
109
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyComponent, deps: [{ token: BsScrollOffsetService }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", 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 <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'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 </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"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.1", 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"] }); }
111
110
  }
112
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyComponent, decorators: [{
113
112
  type: Component,
114
- args: [{ selector: 'bs-scrollspy', template: "<div class=\"spy\">\n <ul class=\"text-muted\">\n <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'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 </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"] }]
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"] }]
115
114
  }], ctorParameters: () => [{ type: BsScrollOffsetService }, { type: undefined, decorators: [{
116
115
  type: Inject,
117
116
  args: [DOCUMENT]
@@ -129,9 +128,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
129
128
  class BsScrollspyModule {
130
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
131
130
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyModule, declarations: [BsScrollspyComponent,
132
- BsScrollspyDirective], imports: [CommonModule], exports: [BsScrollspyComponent,
131
+ BsScrollspyDirective], exports: [BsScrollspyComponent,
133
132
  BsScrollspyDirective] }); }
134
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyModule, imports: [CommonModule] }); }
133
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyModule }); }
135
134
  }
136
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsScrollspyModule, decorators: [{
137
136
  type: NgModule,
@@ -140,9 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
140
139
  BsScrollspyComponent,
141
140
  BsScrollspyDirective
142
141
  ],
143
- imports: [
144
- CommonModule
145
- ],
142
+ imports: [],
146
143
  exports: [
147
144
  BsScrollspyComponent,
148
145
  BsScrollspyDirective
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-scrollspy.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.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 { 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 { 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 { 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 <li *ngFor=\"let dir of directives; let i = index\">\n <span [attr.data-index]=\"i\" class=\"cursor-pointer\" [ngClass]=\"'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 </ul>\n</div>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\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 CommonModule\n ],\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/services/scroll-offset/scroll-offset.service.ts","../../../../libs/mintplayer-ng-bootstrap/scrollspy/src/directives/scrollspy.directive.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 { 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 { 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 { 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,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Optional, ViewChild, Input, Output, Directive, NgModule } from '@angular/core';
3
- import * as i4 from '@angular/forms';
3
+ import * as i3 from '@angular/forms';
4
4
  import { FormsModule } from '@angular/forms';
5
- import * as i3 from '@angular/common';
6
- import { CommonModule } from '@angular/common';
5
+ import * as i4 from '@angular/common';
6
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
7
7
  import * as i6 from '@mintplayer/ng-bootstrap/let';
8
- import { BsLetModule } from '@mintplayer/ng-bootstrap/let';
8
+ import { BsLetDirective } from '@mintplayer/ng-bootstrap/let';
9
9
  import * as i5 from '@mintplayer/ng-focus-on-load';
10
- import { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';
10
+ import { FocusOnLoadDirective } from '@mintplayer/ng-focus-on-load';
11
11
  import * as i7 from '@mintplayer/ng-bootstrap/dropdown';
12
12
  import { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';
13
13
  import * as i11 from '@mintplayer/ng-bootstrap/progress-bar';
@@ -15,9 +15,9 @@ import { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';
15
15
  import * as i9 from '@mintplayer/ng-bootstrap/dropdown-menu';
16
16
  import { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';
17
17
  import * as i10 from '@mintplayer/ng-bootstrap/button-type';
18
- import { BsButtonTypeModule } from '@mintplayer/ng-bootstrap/button-type';
18
+ import { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';
19
19
  import * as i8 from '@mintplayer/ng-bootstrap/has-overlay';
20
- import { BsHasOverlayModule } from '@mintplayer/ng-bootstrap/has-overlay';
20
+ import { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';
21
21
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
22
22
  import { Color } from '@mintplayer/ng-bootstrap';
23
23
  import * as i1 from '@mintplayer/ng-bootstrap/form';
@@ -99,11 +99,11 @@ class BsSearchboxComponent {
99
99
  this.searchterm = '';
100
100
  }
101
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxComponent, deps: [{ token: i1.BsFormComponent, optional: true }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BsSearchboxComponent, selector: "bs-searchbox", inputs: { isOpen: "isOpen", suggestions: "suggestions", selectedItem: "selectedItem", searchterm: "searchterm" }, outputs: { selectedItemChange: "selectedItemChange", provideSuggestions: "provideSuggestions" }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n <ng-content *ngIf=\"!selectedItem\"></ng-content>\n <ng-container *ngIf=\"selectedItem && suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n </ng-container>\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\" *ngIf=\"isBusy\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n <bs-dropdown-item [disabled]=\"true\" *ngIf=\"searchterm === ''\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n <div *ngIf=\"searchterm !== ''\" class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n <ng-container *ngIf=\"suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n </ng-container>\n </bs-dropdown-item>\n <bs-dropdown-item *ngIf=\"suggestions.length === 0\" [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n </div>\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.FocusOnLoadDirective, selector: "*[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i6.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "directive", type: i7.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: i7.BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: i7.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: i8.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "component", type: i9.BsDropdownMenuComponent, selector: "bs-dropdown-menu", inputs: ["maxHeight"] }, { kind: "component", type: i9.BsDropdownItemComponent, selector: "bs-dropdown-item", inputs: ["isSelected", "disabled"] }, { kind: "directive", type: i10.BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }, { kind: "component", type: i11.BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "component", type: i11.BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.1", type: BsSearchboxComponent, selector: "bs-searchbox", inputs: { isOpen: "isOpen", suggestions: "suggestions", selectedItem: "selectedItem", searchterm: "searchterm" }, outputs: { selectedItemChange: "selectedItemChange", provideSuggestions: "provideSuggestions" }, viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.FocusOnLoadDirective, selector: "*[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i6.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "directive", type: i7.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: i7.BsDropdownToggleDirective, selector: "[bsDropdownToggle]" }, { kind: "directive", type: i7.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: i8.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "component", type: i9.BsDropdownMenuComponent, selector: "bs-dropdown-menu", inputs: ["maxHeight"] }, { kind: "component", type: i9.BsDropdownItemComponent, selector: "bs-dropdown-item", inputs: ["isSelected", "disabled"] }, { kind: "directive", type: i10.BsButtonTypeDirective, selector: "button[color],input[type=\"button\"][color],input[type=\"submit\"][color],a[color]", inputs: ["color"] }, { kind: "component", type: i11.BsProgressBarComponent, selector: "bs-progress-bar", inputs: ["minimum", "maximum", "value", "color", "striped", "animated"] }, { kind: "component", type: i11.BsProgressComponent, selector: "bs-progress", inputs: ["height", "isIndeterminate"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'bs-searchbox', template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n <ng-content *ngIf=\"!selectedItem\"></ng-content>\n <ng-container *ngIf=\"selectedItem && suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n </ng-container>\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\" *ngIf=\"isBusy\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n <bs-dropdown-item [disabled]=\"true\" *ngIf=\"searchterm === ''\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n <div *ngIf=\"searchterm !== ''\" class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n <ng-container *ngIf=\"suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n </ng-container>\n </bs-dropdown-item>\n <bs-dropdown-item *ngIf=\"suggestions.length === 0\" [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n </div>\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"] }]
106
+ args: [{ selector: 'bs-searchbox', template: "<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>", styles: [".prog{height:.3rem;margin-top:-.5rem;margin-bottom:.2rem}\n"] }]
107
107
  }], ctorParameters: () => [{ type: i1.BsFormComponent, decorators: [{
108
108
  type: Optional
109
109
  }] }, { type: i2.DomSanitizer }], propDecorators: { textbox: [{
@@ -185,27 +185,24 @@ class BsSearchboxModule {
185
185
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxModule, declarations: [BsSearchboxComponent,
186
186
  BsEnterSearchTermTemplateDirective,
187
187
  BsSuggestionTemplateDirective,
188
- BsNoResultsTemplateDirective], imports: [CommonModule,
189
- FormsModule,
190
- FocusOnLoadModule,
191
- BsLetModule,
188
+ BsNoResultsTemplateDirective], imports: [FormsModule,
189
+ AsyncPipe,
190
+ NgTemplateOutlet,
191
+ FocusOnLoadDirective,
192
+ BsLetDirective,
192
193
  BsDropdownModule,
193
194
  BsDropdownMenuModule,
194
- BsButtonTypeModule,
195
+ BsButtonTypeDirective,
195
196
  BsProgressBarModule,
196
- BsHasOverlayModule], exports: [BsSearchboxComponent,
197
+ BsHasOverlayComponent], exports: [BsSearchboxComponent,
197
198
  BsEnterSearchTermTemplateDirective,
198
199
  BsSuggestionTemplateDirective,
199
200
  BsNoResultsTemplateDirective] }); }
200
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxModule, imports: [CommonModule,
201
- FormsModule,
202
- FocusOnLoadModule,
203
- BsLetModule,
201
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxModule, imports: [FormsModule,
204
202
  BsDropdownModule,
205
203
  BsDropdownMenuModule,
206
- BsButtonTypeModule,
207
204
  BsProgressBarModule,
208
- BsHasOverlayModule] }); }
205
+ BsHasOverlayComponent] }); }
209
206
  }
210
207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSearchboxModule, decorators: [{
211
208
  type: NgModule,
@@ -217,15 +214,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
217
214
  BsNoResultsTemplateDirective,
218
215
  ],
219
216
  imports: [
220
- CommonModule,
221
217
  FormsModule,
222
- FocusOnLoadModule,
223
- BsLetModule,
218
+ AsyncPipe,
219
+ NgTemplateOutlet,
220
+ FocusOnLoadDirective,
221
+ BsLetDirective,
224
222
  BsDropdownModule,
225
223
  BsDropdownMenuModule,
226
- BsButtonTypeModule,
224
+ BsButtonTypeDirective,
227
225
  BsProgressBarModule,
228
- BsHasOverlayModule,
226
+ BsHasOverlayComponent,
229
227
  ],
230
228
  exports: [
231
229
  BsSearchboxComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-searchbox.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.html","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/enter-search-term.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/suggestion.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/no-results.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox.module.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/mintplayer-ng-bootstrap-searchbox.ts"],"sourcesContent":["/// <reference types=\"../types\" />\n\nimport { Component, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject, debounceTime } from 'rxjs';\nimport { BsSuggestionTemplateContext } from '../directives';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-searchbox',\n templateUrl: './searchbox.component.html',\n styleUrls: ['./searchbox.component.scss'],\n})\nexport class BsSearchboxComponent<T extends HasId<U>, U> {\n constructor(@Optional() bsForm: BsFormComponent, sanitizer: DomSanitizer) {\n if (!bsForm) {\n throw '<bs-searchbox> must be inside a <bs-form>';\n }\n\n this.searchterm$.pipe(debounceTime(200), takeUntilDestroyed()).subscribe((searchterm) => {\n if (searchterm === '') {\n this.suggestions = [];\n } else {\n this.isBusy$.next(true);\n this.provideSuggestions.emit(searchterm);\n }\n });\n \n import('bootstrap-icons/icons/caret-up-fill.svg').then((icon) => {\n this.caretUpFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/caret-down-fill.svg').then((icon) => {\n this.caretDownFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n caretUpFill?: SafeHtml;\n caretDownFill?: SafeHtml;\n colors = Color;\n isBusy$ = new BehaviorSubject<boolean>(false);\n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n \n //#region isOpen\n private _isOpen = false;\n public get isOpen() {\n return this._isOpen;\n }\n @Input() public set isOpen(value: boolean) {\n const changed = (this._isOpen !== value);\n this._isOpen = value;\n if (changed && value) {\n setTimeout(() => this.textbox.nativeElement.setSelectionRange(0, -1), 20);\n }\n }\n //#endregion\n\n //#region suggestions\n private _suggestions: T[] = [];\n public get suggestions() {\n return this._suggestions;\n }\n @Input() public set suggestions(value: T[]) {\n this._suggestions = value;\n this.isBusy$.next(false);\n }\n //#endregion\n\n //#region selectedItem\n private _selectedItem?: T;\n public get selectedItem() {\n return this._selectedItem;\n }\n @Input() public set selectedItem(value: T | undefined) {\n this._selectedItem = value;\n this.selectedItemChange.emit(value);\n };\n @Output() selectedItemChange = new EventEmitter<T | undefined>();\n //#endregion\n\n //#region searchterm\n searchterm$ = new BehaviorSubject<string>('');\n public get searchterm() {\n return this.searchterm$.value;\n }\n @Input() public set searchterm(value: string) {\n this.searchterm$.next(value);\n }\n //#endregion\n\n suggestionTemplate?: TemplateRef<BsSuggestionTemplateContext<T, U>>;\n enterSearchtermTemplate?: TemplateRef<T>;\n noResultsTemplate?: TemplateRef<T>;\n @Output() provideSuggestions = new EventEmitter<string>();\n\n onSearchtermChange(searchterm: string) {\n this.searchterm$.next(searchterm);\n }\n\n onSuggestionClicked(suggestion: T) {\n this.selectedItem = suggestion;\n this.isOpen = false;\n this.searchterm = '';\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n <ng-content *ngIf=\"!selectedItem\"></ng-content>\n <ng-container *ngIf=\"selectedItem && suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n </ng-container>\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\" *ngIf=\"isBusy\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n <bs-dropdown-item [disabled]=\"true\" *ngIf=\"searchterm === ''\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n <div *ngIf=\"searchterm !== ''\" class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n <ng-container *ngIf=\"suggestionTemplate\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n </ng-container>\n </bs-dropdown-item>\n <bs-dropdown-item *ngIf=\"suggestions.length === 0\" [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n </div>\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsEnterSearchTermTemplate]',\n})\nexport class BsEnterSearchTermTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.enterSearchtermTemplate = template;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<TData extends HasId<U>, U> {\n constructor(private searchbox: BsSearchboxComponent<TData, U>, template: TemplateRef<BsSuggestionTemplateContext<TData, U>>) {\n searchbox.suggestionTemplate = template;\n }\n \n public static ngTemplateContextGuard<TData extends HasId<U>, U>(\n dir: BsSuggestionTemplateDirective<TData, U>,\n ctx: any\n ): ctx is BsSuggestionTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: TData[]) {\n this.searchbox.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<TData extends HasId<U>, U> {\n public $implicit: TData = null!;\n public searchbox: BsSearchboxComponent<TData, U> = null!;\n}","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsNoResultsTemplate]',\n})\nexport class BsNoResultsTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.noResultsTemplate = template;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { FocusOnLoadModule } from '@mintplayer/ng-focus-on-load';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsButtonTypeModule } from '@mintplayer/ng-bootstrap/button-type';\nimport { BsHasOverlayModule } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSearchboxComponent } from './searchbox/searchbox.component';\nimport { BsEnterSearchTermTemplateDirective } from './directives/enter-search-term.directive';\nimport { BsSuggestionTemplateDirective } from './directives/suggestion.directive';\nimport { BsNoResultsTemplateDirective } from './directives/no-results.directive';\n\n@NgModule({\n declarations: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n FocusOnLoadModule,\n BsLetModule,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsButtonTypeModule,\n BsProgressBarModule,\n BsHasOverlayModule,\n ],\n exports: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n})\nexport class BsSearchboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSearchboxComponent"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-searchbox.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox/searchbox.component.html","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/enter-search-term.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/suggestion.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/directives/no-results.directive.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/src/searchbox.module.ts","../../../../libs/mintplayer-ng-bootstrap/searchbox/mintplayer-ng-bootstrap-searchbox.ts"],"sourcesContent":["/// <reference types=\"../types\" />\n\nimport { Component, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Color } from '@mintplayer/ng-bootstrap';\nimport { BsFormComponent } from '@mintplayer/ng-bootstrap/form';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject, debounceTime } from 'rxjs';\nimport { BsSuggestionTemplateContext } from '../directives';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-searchbox',\n templateUrl: './searchbox.component.html',\n styleUrls: ['./searchbox.component.scss'],\n})\nexport class BsSearchboxComponent<T extends HasId<U>, U> {\n constructor(@Optional() bsForm: BsFormComponent, sanitizer: DomSanitizer) {\n if (!bsForm) {\n throw '<bs-searchbox> must be inside a <bs-form>';\n }\n\n this.searchterm$.pipe(debounceTime(200), takeUntilDestroyed()).subscribe((searchterm) => {\n if (searchterm === '') {\n this.suggestions = [];\n } else {\n this.isBusy$.next(true);\n this.provideSuggestions.emit(searchterm);\n }\n });\n \n import('bootstrap-icons/icons/caret-up-fill.svg').then((icon) => {\n this.caretUpFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n import('bootstrap-icons/icons/caret-down-fill.svg').then((icon) => {\n this.caretDownFill = sanitizer.bypassSecurityTrustHtml(icon.default);\n });\n }\n\n caretUpFill?: SafeHtml;\n caretDownFill?: SafeHtml;\n colors = Color;\n isBusy$ = new BehaviorSubject<boolean>(false);\n @ViewChild('textbox') textbox!: ElementRef<HTMLInputElement>;\n \n //#region isOpen\n private _isOpen = false;\n public get isOpen() {\n return this._isOpen;\n }\n @Input() public set isOpen(value: boolean) {\n const changed = (this._isOpen !== value);\n this._isOpen = value;\n if (changed && value) {\n setTimeout(() => this.textbox.nativeElement.setSelectionRange(0, -1), 20);\n }\n }\n //#endregion\n\n //#region suggestions\n private _suggestions: T[] = [];\n public get suggestions() {\n return this._suggestions;\n }\n @Input() public set suggestions(value: T[]) {\n this._suggestions = value;\n this.isBusy$.next(false);\n }\n //#endregion\n\n //#region selectedItem\n private _selectedItem?: T;\n public get selectedItem() {\n return this._selectedItem;\n }\n @Input() public set selectedItem(value: T | undefined) {\n this._selectedItem = value;\n this.selectedItemChange.emit(value);\n };\n @Output() selectedItemChange = new EventEmitter<T | undefined>();\n //#endregion\n\n //#region searchterm\n searchterm$ = new BehaviorSubject<string>('');\n public get searchterm() {\n return this.searchterm$.value;\n }\n @Input() public set searchterm(value: string) {\n this.searchterm$.next(value);\n }\n //#endregion\n\n suggestionTemplate?: TemplateRef<BsSuggestionTemplateContext<T, U>>;\n enterSearchtermTemplate?: TemplateRef<T>;\n noResultsTemplate?: TemplateRef<T>;\n @Output() provideSuggestions = new EventEmitter<string>();\n\n onSearchtermChange(searchterm: string) {\n this.searchterm$.next(searchterm);\n }\n\n onSuggestionClicked(suggestion: T) {\n this.selectedItem = suggestion;\n this.isOpen = false;\n this.searchterm = '';\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\">\n <button [color]=\"colors.primary\" class=\"d-flex w-100\" bsDropdownToggle>\n <div class=\"flex-grow-1\">\n @if (!selectedItem) {\n <ng-content></ng-content>\n } @else if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: selectedItem, searchbox: this }\"></ng-container>\n }\n </div>\n <span [innerHTML]=\"isOpen ? caretUpFill : caretDownFill\" class=\"float-end\"></span>\n </button>\n <bs-dropdown-menu *bsDropdownMenu>\n <ng-container *bsLet=\"(isBusy$ | async) as isBusy\">\n @if (isBusy) {\n <bs-progress [isIndeterminate]=\"true\" class=\"prog\">\n <bs-progress-bar></bs-progress-bar>\n </bs-progress>\n }\n <div class=\"w-100 px-2 mb-2\">\n <input type=\"text\" #textbox autofocus class=\"form-control d-block\" [ngModel]=\"searchterm$ | async\" (ngModelChange)=\"onSearchtermChange($event)\">\n </div>\n \n @if (searchterm === '') {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"enterSearchtermTemplate ?? defaultEnterSearchtermTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n } @else {\n <div class=\"overflow-y-auto\" [style.max-height.px]=\"200\">\n @for (suggestion of suggestions; track suggestion) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItem?.id === suggestion.id\" [disabled]=\"isBusy ?? true\">\n @if (suggestionTemplate) {\n <ng-container *ngTemplateOutlet=\"suggestionTemplate; context: { $implicit: suggestion, searchbox: this }\"></ng-container>\n }\n </bs-dropdown-item>\n }\n @if (suggestions.length === 0) {\n <bs-dropdown-item [disabled]=\"true\">\n <ng-container *ngTemplateOutlet=\"noResultsTemplate ?? defaultNoResultsTemplate; context: { }\"></ng-container>\n </bs-dropdown-item>\n }\n </div>\n }\n </ng-container>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultEnterSearchtermTemplate>\n Enter a search term\n</ng-template>\n<ng-template #defaultNoResultsTemplate>\n No results\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsEnterSearchTermTemplate]',\n})\nexport class BsEnterSearchTermTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.enterSearchtermTemplate = template;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<TData extends HasId<U>, U> {\n constructor(private searchbox: BsSearchboxComponent<TData, U>, template: TemplateRef<BsSuggestionTemplateContext<TData, U>>) {\n searchbox.suggestionTemplate = template;\n }\n \n public static ngTemplateContextGuard<TData extends HasId<U>, U>(\n dir: BsSuggestionTemplateDirective<TData, U>,\n ctx: any\n ): ctx is BsSuggestionTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: TData[]) {\n this.searchbox.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<TData extends HasId<U>, U> {\n public $implicit: TData = null!;\n public searchbox: BsSearchboxComponent<TData, U> = null!;\n}","import { Directive, TemplateRef } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BsSearchboxComponent } from '../searchbox/searchbox.component';\n\n@Directive({\n selector: '[bsNoResultsTemplate]',\n})\nexport class BsNoResultsTemplateDirective<T extends HasId<U>, U> {\n constructor(searchbox: BsSearchboxComponent<T, U>, template: TemplateRef<T>) {\n searchbox.noResultsTemplate = template;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncPipe, CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { BsLetDirective } from '@mintplayer/ng-bootstrap/let';\nimport { FocusOnLoadDirective } from '@mintplayer/ng-focus-on-load';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsProgressBarModule } from '@mintplayer/ng-bootstrap/progress-bar';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsButtonTypeDirective } from '@mintplayer/ng-bootstrap/button-type';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSearchboxComponent } from './searchbox/searchbox.component';\nimport { BsEnterSearchTermTemplateDirective } from './directives/enter-search-term.directive';\nimport { BsSuggestionTemplateDirective } from './directives/suggestion.directive';\nimport { BsNoResultsTemplateDirective } from './directives/no-results.directive';\n\n@NgModule({\n declarations: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n imports: [\n FormsModule,\n AsyncPipe,\n NgTemplateOutlet,\n FocusOnLoadDirective,\n BsLetDirective,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsButtonTypeDirective,\n BsProgressBarModule,\n BsHasOverlayComponent,\n ],\n exports: [\n BsSearchboxComponent,\n BsEnterSearchTermTemplateDirective,\n BsSuggestionTemplateDirective,\n BsNoResultsTemplateDirective,\n ],\n})\nexport class BsSearchboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSearchboxComponent"],"mappings":"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"}
@@ -2,17 +2,17 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ViewChild, Input, Output, HostBinding, HostListener, Directive, NgModule } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
5
+ import { NgTemplateOutlet } from '@angular/common';
6
6
  import * as i2 from '@angular/forms';
7
7
  import { FormsModule } from '@angular/forms';
8
8
  import * as i3 from '@mintplayer/ng-bootstrap/dropdown';
9
9
  import { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';
10
10
  import * as i4 from '@mintplayer/ng-bootstrap/has-overlay';
11
- import { BsHasOverlayModule } from '@mintplayer/ng-bootstrap/has-overlay';
11
+ import { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';
12
12
  import * as i5 from '@mintplayer/ng-bootstrap/dropdown-menu';
13
13
  import { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';
14
14
  import * as i6 from '@mintplayer/ng-bootstrap/in-list';
15
- import { BsInListModule } from '@mintplayer/ng-bootstrap/in-list';
15
+ import { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';
16
16
 
17
17
  class BsSelect2Component {
18
18
  constructor() {
@@ -60,11 +60,11 @@ class BsSelect2Component {
60
60
  this.searchBox.nativeElement.focus();
61
61
  }
62
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }], ngImport: i0, template: "<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>", styles: [".items-box{min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: i4.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "component", type: i5.BsDropdownMenuComponent, selector: "bs-dropdown-menu", inputs: ["maxHeight"] }, { kind: "component", type: i5.BsDropdownItemComponent, selector: "bs-dropdown-item", inputs: ["isSelected", "disabled"] }, { kind: "pipe", type: i6.BsInListPipe, name: "bsInList" }] }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.1", type: BsSelect2Component, selector: "bs-select2", inputs: { searchterm: "searchterm", suggestions: "suggestions", selectedItems: "selectedItems" }, outputs: { provideSuggestions: "provideSuggestions" }, host: { listeners: { "click": "focus()" }, properties: { "class.focus": "this.isFocused" } }, viewQueries: [{ propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true, static: true }, { propertyName: "searchBox", first: true, predicate: ["searchBox"], descendants: true }, { propertyName: "itemsBox", first: true, predicate: ["itemsBox"], descendants: true }], ngImport: i0, template: "<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n @for (item of selectedItems; track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n @for (suggestion of suggestions; track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>", styles: [".items-box{min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown]", inputs: ["hasBackdrop", "sameWidth", "closeOnClickOutside", "sameDropdownWidth", "isOpen"], outputs: ["isOpenChange"] }, { kind: "directive", type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu]" }, { kind: "component", type: i4.BsHasOverlayComponent, selector: "bs-has-overlay" }, { kind: "component", type: i5.BsDropdownMenuComponent, selector: "bs-dropdown-menu", inputs: ["maxHeight"] }, { kind: "component", type: i5.BsDropdownItemComponent, selector: "bs-dropdown-item", inputs: ["isSelected", "disabled"] }, { kind: "pipe", type: i6.BsInListPipe, name: "bsInList" }] }); }
64
64
  }
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Component, decorators: [{
66
66
  type: Component,
67
- args: [{ selector: 'bs-select2', template: "<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>", styles: [".items-box{min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"] }]
67
+ args: [{ selector: 'bs-select2', template: "<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n @for (item of selectedItems; track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n @for (suggestion of suggestions; track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">\u00D7</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>", styles: [".items-box{min-height:38px;padding:0 5px 3px;cursor:text;border:1px solid #ccc}.items-box .select2-item{display:inline-block;background-color:#e4e4e4;color:#1a1a1a;border:1px solid #aaa;border-radius:4px;margin-top:5px;margin-right:5px;padding:0 5px;cursor:default;user-select:none;-webkit-user-select:none}.items-box .select2-item>span{cursor:pointer;color:#999}.items-box .select2-item>span:hover{color:#333}.items-box input{border:none;outline:0;margin:5px 0 2px;background:none}:host{display:block;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}:host.focus{color:#495057;background-color:#fff;border-color:#80bdff!important;outline:0;box-shadow:0 0 0 .2rem #007bff40}ul{max-height:200px;overflow-y:auto}ul>li{padding:10px;cursor:pointer}ul>li.selected{background:#ddd}ul>li:hover{color:#fff;background-color:#5897fb}\n"] }]
68
68
  }], propDecorators: { defaultItemTemplate: [{
69
69
  type: ViewChild,
70
70
  args: ['defaultItemTemplate', { static: true }]
@@ -152,20 +152,18 @@ class BsSelect2Module {
152
152
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
153
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Module, declarations: [BsSelect2Component,
154
154
  BsItemTemplateDirective,
155
- BsSuggestionTemplateDirective], imports: [CommonModule,
155
+ BsSuggestionTemplateDirective], imports: [NgTemplateOutlet,
156
156
  FormsModule,
157
157
  BsDropdownModule,
158
158
  BsDropdownMenuModule,
159
- BsHasOverlayModule,
160
- BsInListModule], exports: [BsSelect2Component,
159
+ BsHasOverlayComponent,
160
+ BsInListPipe], exports: [BsSelect2Component,
161
161
  BsItemTemplateDirective,
162
162
  BsSuggestionTemplateDirective] }); }
163
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Module, imports: [CommonModule,
164
- FormsModule,
163
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Module, imports: [FormsModule,
165
164
  BsDropdownModule,
166
165
  BsDropdownMenuModule,
167
- BsHasOverlayModule,
168
- BsInListModule] }); }
166
+ BsHasOverlayComponent] }); }
169
167
  }
170
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BsSelect2Module, decorators: [{
171
169
  type: NgModule,
@@ -176,12 +174,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
176
174
  BsSuggestionTemplateDirective,
177
175
  ],
178
176
  imports: [
179
- CommonModule,
177
+ NgTemplateOutlet,
180
178
  FormsModule,
181
179
  BsDropdownModule,
182
180
  BsDropdownMenuModule,
183
- BsHasOverlayModule,
184
- BsInListModule,
181
+ BsHasOverlayComponent,
182
+ BsInListPipe,
185
183
  ],
186
184
  exports: [
187
185
  BsSelect2Component,
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss']\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<T[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n @Input() searchterm = '';\n @Input() public suggestions: T[] = [];\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Input() selectedItems: T[] = [];\n @HostBinding('class.focus') isFocused = false;\n\n private charWidth = 10;\n searchWidth = 20;\n itemTemplate?: TemplateRef<T>;\n suggestionTemplate?: TemplateRef<T>;\n\n onProvideSuggestions(value: string) {\n this.searchWidth = this.charWidth * (this.searchterm.length + 2);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n onSuggestionClicked(suggestion: T) {\n this.searchterm = '';\n this.isOpen = false;\n\n const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.push(suggestion);\n } else {\n this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);\n }\n\n this.searchBox.nativeElement.focus();\n }\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n this.focus();\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n \n}\n","<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n <ng-container *ngFor=\"let item of selectedItems\">\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n </ng-container>\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n <bs-dropdown-item *ngFor=\"let suggestion of suggestions\" (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">×</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]'\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n\n constructor(private select2component: BsSelect2Component<T, U>, templateRef: TemplateRef<T>) {\n this.select2component.itemTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsItemTemplateOf(value: T[]) {\n this.select2component.selectedItems = value;\n }\n\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n constructor(private select2component: BsSelect2Component<T, U>, templateRef: TemplateRef<T>) {\n this.select2component.suggestionTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: T[]) {\n this.select2component.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { BsInListModule } from '@mintplayer/ng-bootstrap/in-list';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsHasOverlayModule } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsItemTemplateDirective } from './directive/item-template/item-template.directive';\nimport { BsSuggestionTemplateDirective } from './directive/suggestion-template/suggestion-template.directive';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsHasOverlayModule,\n BsInListModule,\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n})\nexport class BsSelect2Module {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSelect2Component"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss']\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = false;\n \n suggestions$ = new BehaviorSubject<T[]>([]);\n isLoading$ = new BehaviorSubject<boolean>(false);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n @Input() searchterm = '';\n @Input() public suggestions: T[] = [];\n @Output() public provideSuggestions = new EventEmitter<string>();\n @Input() selectedItems: T[] = [];\n @HostBinding('class.focus') isFocused = false;\n\n private charWidth = 10;\n searchWidth = 20;\n itemTemplate?: TemplateRef<T>;\n suggestionTemplate?: TemplateRef<T>;\n\n onProvideSuggestions(value: string) {\n this.searchWidth = this.charWidth * (this.searchterm.length + 2);\n if (value === '') {\n this.isOpen = false;\n this.suggestions$.next([]);\n } else {\n this.isLoading$.next(true);\n this.isOpen = true;\n this.provideSuggestions.emit(value);\n }\n }\n onSuggestionClicked(suggestion: T) {\n this.searchterm = '';\n this.isOpen = false;\n\n const existing = this.selectedItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.push(suggestion);\n } else {\n this.selectedItems.splice(this.selectedItems.indexOf(existing), 1);\n }\n\n this.searchBox.nativeElement.focus();\n }\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n this.selectedItems.splice(this.selectedItems.indexOf(item), 1);\n this.focus();\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n \n}\n","<!-- <bs-dropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" #itemsBox class=\"items-box text-wrap\"></bs-dropdown> -->\n<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n @for (item of selectedItems; track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [(ngModel)]=\"searchterm\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n @for (suggestion of suggestions; track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">×</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]'\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n\n constructor(private select2component: BsSelect2Component<T, U>, templateRef: TemplateRef<T>) {\n this.select2component.itemTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsItemTemplateOf(value: T[]) {\n this.select2component.selectedItems = value;\n }\n\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n constructor(private select2component: BsSelect2Component<T, U>, templateRef: TemplateRef<T>) {\n this.select2component.suggestionTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: T[]) {\n this.select2component.suggestions = value;\n }\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsItemTemplateDirective } from './directive/item-template/item-template.directive';\nimport { BsSuggestionTemplateDirective } from './directive/suggestion-template/suggestion-template.directive';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n imports: [\n NgTemplateOutlet,\n FormsModule,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsHasOverlayComponent,\n BsInListPipe,\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n})\nexport class BsSelect2Module {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSelect2Component"],"mappings":"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"}