@ngbase/adk 0.1.11 → 0.1.14

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 (381) hide show
  1. package/a11y/index.d.ts +151 -5
  2. package/accordion/index.d.ts +44 -5
  3. package/autocomplete/index.d.ts +54 -5
  4. package/avatar/index.d.ts +25 -5
  5. package/bidi/index.d.ts +17 -5
  6. package/breadcrumb/index.d.ts +36 -5
  7. package/cache/index.d.ts +46 -5
  8. package/carousel/index.d.ts +79 -5
  9. package/checkbox/index.d.ts +33 -5
  10. package/chip/index.d.ts +28 -5
  11. package/clipboard/index.d.ts +11 -5
  12. package/collections/index.d.ts +23 -5
  13. package/color-picker/index.d.ts +119 -5
  14. package/cookies/index.d.ts +35 -5
  15. package/datepicker/index.d.ts +317 -5
  16. package/dialog/index.d.ts +63 -5
  17. package/drag/index.d.ts +107 -5
  18. package/fesm2022/ngbase-adk-a11y.mjs +100 -74
  19. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  20. package/fesm2022/ngbase-adk-accordion.mjs +31 -19
  21. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  22. package/fesm2022/ngbase-adk-autocomplete.mjs +17 -17
  23. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  24. package/fesm2022/ngbase-adk-avatar.mjs +16 -16
  25. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  26. package/fesm2022/ngbase-adk-bidi.mjs +6 -7
  27. package/fesm2022/ngbase-adk-bidi.mjs.map +1 -1
  28. package/fesm2022/ngbase-adk-breadcrumb.mjs +15 -15
  29. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  30. package/fesm2022/ngbase-adk-cache.mjs +3 -3
  31. package/fesm2022/ngbase-adk-carousel.mjs +24 -24
  32. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-checkbox.mjs +10 -10
  34. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  35. package/fesm2022/ngbase-adk-chip.mjs +13 -13
  36. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-clipboard.mjs +27 -12
  38. package/fesm2022/ngbase-adk-clipboard.mjs.map +1 -1
  39. package/fesm2022/ngbase-adk-collections.mjs +5 -5
  40. package/fesm2022/ngbase-adk-collections.mjs.map +1 -1
  41. package/fesm2022/ngbase-adk-color-picker.mjs +39 -39
  42. package/fesm2022/ngbase-adk-color-picker.mjs.map +1 -1
  43. package/fesm2022/ngbase-adk-cookies.mjs +3 -3
  44. package/fesm2022/ngbase-adk-datepicker.mjs +107 -107
  45. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  46. package/fesm2022/ngbase-adk-dialog.mjs +39 -113
  47. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  48. package/fesm2022/ngbase-adk-drag.mjs +21 -22
  49. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  50. package/fesm2022/ngbase-adk-form-field.mjs +229 -41
  51. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  52. package/fesm2022/ngbase-adk-hover-card.mjs +6 -6
  53. package/fesm2022/ngbase-adk-hover-card.mjs.map +1 -1
  54. package/fesm2022/ngbase-adk-icon.mjs +10 -10
  55. package/fesm2022/ngbase-adk-icon.mjs.map +1 -1
  56. package/fesm2022/ngbase-adk-inline-edit.mjs +29 -27
  57. package/fesm2022/ngbase-adk-inline-edit.mjs.map +1 -1
  58. package/fesm2022/ngbase-adk-jwt.mjs +6 -6
  59. package/fesm2022/ngbase-adk-keys.mjs +7 -8
  60. package/fesm2022/ngbase-adk-keys.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-layout.mjs +1 -1
  62. package/fesm2022/ngbase-adk-layout.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-list.mjs +10 -10
  64. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  65. package/fesm2022/ngbase-adk-mask.mjs +8 -8
  66. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-menu.mjs +41 -41
  68. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  69. package/fesm2022/ngbase-adk-network.mjs +4 -4
  70. package/fesm2022/ngbase-adk-network.mjs.map +1 -1
  71. package/fesm2022/ngbase-adk-otp.mjs +19 -19
  72. package/fesm2022/ngbase-adk-otp.mjs.map +1 -1
  73. package/fesm2022/ngbase-adk-pagination.mjs +20 -20
  74. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  75. package/fesm2022/ngbase-adk-popover.mjs +28 -28
  76. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  77. package/fesm2022/ngbase-adk-portal.mjs +14 -15
  78. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  79. package/fesm2022/ngbase-adk-progress.mjs +8 -8
  80. package/fesm2022/ngbase-adk-progress.mjs.map +1 -1
  81. package/fesm2022/ngbase-adk-radio.mjs +15 -15
  82. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  83. package/fesm2022/ngbase-adk-resizable.mjs +19 -20
  84. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  85. package/fesm2022/ngbase-adk-scroll-area.mjs +31 -31
  86. package/fesm2022/ngbase-adk-scroll-area.mjs.map +1 -1
  87. package/fesm2022/ngbase-adk-select.mjs +73 -75
  88. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  89. package/fesm2022/ngbase-adk-selectable.mjs +9 -9
  90. package/fesm2022/ngbase-adk-selectable.mjs.map +1 -1
  91. package/fesm2022/ngbase-adk-sheet.mjs +9 -7
  92. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -1
  93. package/fesm2022/ngbase-adk-sidenav.mjs +37 -37
  94. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  95. package/fesm2022/ngbase-adk-slider.mjs +26 -26
  96. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  97. package/fesm2022/ngbase-adk-sonner.mjs +11 -11
  98. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  99. package/fesm2022/ngbase-adk-stepper.mjs +28 -28
  100. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  101. package/fesm2022/ngbase-adk-switch.mjs +16 -16
  102. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  103. package/fesm2022/ngbase-adk-table.mjs +98 -78
  104. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  105. package/fesm2022/ngbase-adk-tabs.mjs +44 -44
  106. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  107. package/fesm2022/ngbase-adk-toggle-group.mjs +15 -15
  108. package/fesm2022/ngbase-adk-toggle-group.mjs.map +1 -1
  109. package/fesm2022/ngbase-adk-toggle.mjs +4 -4
  110. package/fesm2022/ngbase-adk-toggle.mjs.map +1 -1
  111. package/fesm2022/ngbase-adk-tooltip.mjs +15 -15
  112. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  113. package/fesm2022/ngbase-adk-tour.mjs +28 -28
  114. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  115. package/fesm2022/ngbase-adk-translate.mjs +13 -13
  116. package/fesm2022/ngbase-adk-translate.mjs.map +1 -1
  117. package/fesm2022/ngbase-adk-tree.mjs +27 -27
  118. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  119. package/fesm2022/ngbase-adk-utils.mjs +43 -20
  120. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  121. package/fesm2022/ngbase-adk-virtualizer.mjs +20 -20
  122. package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
  123. package/form-field/index.d.ts +97 -5
  124. package/hover-card/index.d.ts +21 -5
  125. package/icon/index.d.ts +28 -5
  126. package/index.d.ts +2 -5
  127. package/inline-edit/index.d.ts +53 -5
  128. package/jwt/index.d.ts +20 -5
  129. package/keys/index.d.ts +54 -5
  130. package/layout/index.d.ts +20 -5
  131. package/list/index.d.ts +34 -5
  132. package/mask/index.d.ts +33 -5
  133. package/menu/index.d.ts +145 -5
  134. package/network/index.d.ts +29 -5
  135. package/otp/index.d.ts +51 -5
  136. package/package.json +57 -57
  137. package/pagination/index.d.ts +35 -5
  138. package/popover/index.d.ts +212 -5
  139. package/portal/index.d.ts +113 -5
  140. package/progress/index.d.ts +17 -5
  141. package/radio/index.d.ts +45 -5
  142. package/resizable/index.d.ts +73 -5
  143. package/schematics/components/files/accordion/accordion.ts.template +2 -2
  144. package/schematics/components/files/alert/alert.ts.template +2 -2
  145. package/schematics/components/files/autocomplete/autocomplete.ts.template +1 -0
  146. package/schematics/components/files/avatar/avatar.ts.template +32 -5
  147. package/schematics/components/files/badge/badge.ts.template +4 -2
  148. package/schematics/components/files/button/button.ts.template +32 -13
  149. package/schematics/components/files/command/command.ts.template +10 -9
  150. package/schematics/components/files/datepicker/datepicker-llm.md.template +15 -2
  151. package/schematics/components/files/dialog/dialog-llm.md.template +24 -13
  152. package/schematics/components/files/dialog/dialog.ts.template +11 -2
  153. package/schematics/components/files/drawer/drawer.ts.template +1 -1
  154. package/schematics/components/files/form-field/form-field.ts.template +10 -1
  155. package/schematics/components/files/form-field/input-style.directive.ts.template +1 -1
  156. package/schematics/components/files/icon/icon-llm.md.template +0 -1
  157. package/schematics/components/files/inline-edit/inline-edit.ts.template +2 -2
  158. package/schematics/components/files/otp/otp.ts.template +1 -1
  159. package/schematics/components/files/picasa/picasa-base.component.ts.template +1 -2
  160. package/schematics/components/files/picasa/picasa.component.ts.template +4 -4
  161. package/schematics/components/files/select/select.ts.template +5 -18
  162. package/schematics/components/files/sheet/sheet.ts.template +1 -1
  163. package/schematics/components/files/sidenav/sidenav-llm.md.template +0 -1
  164. package/schematics/components/files/spinner/spinner.ts.template +1 -29
  165. package/scroll-area/index.d.ts +60 -5
  166. package/select/index.d.ts +177 -5
  167. package/selectable/index.d.ts +32 -5
  168. package/sheet/index.d.ts +44 -5
  169. package/sidenav/index.d.ts +74 -5
  170. package/slider/index.d.ts +79 -5
  171. package/sonner/index.d.ts +50 -5
  172. package/stepper/index.d.ts +54 -5
  173. package/switch/index.d.ts +47 -5
  174. package/table/index.d.ts +143 -5
  175. package/tabs/index.d.ts +85 -5
  176. package/test/index.d.ts +81 -5
  177. package/toggle/index.d.ts +16 -5
  178. package/toggle-group/index.d.ts +39 -5
  179. package/tooltip/index.d.ts +60 -5
  180. package/tour/index.d.ts +70 -5
  181. package/translate/index.d.ts +58 -5
  182. package/tree/index.d.ts +95 -5
  183. package/utils/index.d.ts +82 -5
  184. package/virtualizer/index.d.ts +45 -5
  185. package/a11y/accessibility-group.d.ts +0 -46
  186. package/a11y/accessibility-item.d.ts +0 -49
  187. package/a11y/accessibility.service.d.ts +0 -17
  188. package/a11y/autofocus.d.ts +0 -18
  189. package/a11y/focus-trap.d.ts +0 -15
  190. package/a11y/public-api.d.ts +0 -4
  191. package/accordion/accordion-content.d.ts +0 -8
  192. package/accordion/accordion-group.d.ts +0 -10
  193. package/accordion/accordion-header.d.ts +0 -7
  194. package/accordion/accordion-item.d.ts +0 -16
  195. package/accordion/public-api.d.ts +0 -4
  196. package/autocomplete/autocomplete-input.d.ts +0 -19
  197. package/autocomplete/autocomplete.d.ts +0 -34
  198. package/autocomplete/public-api.d.ts +0 -2
  199. package/avatar/avatar.d.ts +0 -22
  200. package/avatar/public-api.d.ts +0 -1
  201. package/bidi/direction.service.d.ts +0 -14
  202. package/bidi/public-api.d.ts +0 -1
  203. package/breadcrumb/breadcrumb-link.d.ts +0 -7
  204. package/breadcrumb/breadcrumb-separator.d.ts +0 -6
  205. package/breadcrumb/breadcrumb.d.ts +0 -12
  206. package/breadcrumb/breadcrumbs.d.ts +0 -9
  207. package/breadcrumb/public-api.d.ts +0 -4
  208. package/cache/cache-config.d.ts +0 -22
  209. package/cache/cache.d.ts +0 -17
  210. package/cache/cache.interecptor.d.ts +0 -2
  211. package/cache/public-api.d.ts +0 -3
  212. package/carousel/carousel-item.d.ts +0 -7
  213. package/carousel/carousel-next.d.ts +0 -8
  214. package/carousel/carousel.d.ts +0 -61
  215. package/carousel/public-api.d.ts +0 -3
  216. package/checkbox/checkbox.d.ts +0 -30
  217. package/checkbox/public-api.d.ts +0 -1
  218. package/chip/chip-group.d.ts +0 -7
  219. package/chip/chip.d.ts +0 -19
  220. package/chip/public-api.d.ts +0 -2
  221. package/clipboard/clipboard.d.ts +0 -7
  222. package/clipboard/public-api.d.ts +0 -1
  223. package/collections/SelectionModel.d.ts +0 -19
  224. package/collections/public-api.d.ts +0 -1
  225. package/color-picker/color-input.d.ts +0 -16
  226. package/color-picker/color-picker-trigger.d.ts +0 -30
  227. package/color-picker/color-picker.d.ts +0 -72
  228. package/color-picker/public-api.d.ts +0 -3
  229. package/color-picker/utils.d.ts +0 -21
  230. package/cookies/cookie.service.d.ts +0 -32
  231. package/cookies/public-api.d.ts +0 -1
  232. package/datepicker/calendar.d.ts +0 -121
  233. package/datepicker/datepicker-trigger.d.ts +0 -66
  234. package/datepicker/datepicker.d.ts +0 -55
  235. package/datepicker/native-date-adapter.d.ts +0 -33
  236. package/datepicker/public-api.d.ts +0 -5
  237. package/datepicker/time.d.ts +0 -42
  238. package/dialog/dialog.animation.d.ts +0 -3
  239. package/dialog/dialog.d.ts +0 -49
  240. package/dialog/dialog.service.d.ts +0 -7
  241. package/dialog/public-api.d.ts +0 -3
  242. package/drag/drag-drop.d.ts +0 -37
  243. package/drag/drag-move.d.ts +0 -17
  244. package/drag/drag.d.ts +0 -52
  245. package/drag/public-api.d.ts +0 -3
  246. package/form-field/auto-height.d.ts +0 -9
  247. package/form-field/error.d.ts +0 -18
  248. package/form-field/form-field.d.ts +0 -14
  249. package/form-field/input.d.ts +0 -16
  250. package/form-field/label.d.ts +0 -7
  251. package/form-field/public-api.d.ts +0 -5
  252. package/hover-card/hover-card.d.ts +0 -18
  253. package/hover-card/public-api.d.ts +0 -1
  254. package/icon/icon.d.ts +0 -12
  255. package/icon/icon.service.d.ts +0 -12
  256. package/icon/public-api.d.ts +0 -2
  257. package/inline-edit/inline-edit.d.ts +0 -47
  258. package/inline-edit/public-api.d.ts +0 -1
  259. package/jwt/jwt.service.d.ts +0 -27
  260. package/jwt/public-api.d.ts +0 -1
  261. package/keys/keys.service.d.ts +0 -13
  262. package/keys/public-api.d.ts +0 -2
  263. package/keys/shortcuts.service.d.ts +0 -38
  264. package/layout/layout.d.ts +0 -16
  265. package/layout/public-api.d.ts +0 -1
  266. package/list/list.d.ts +0 -20
  267. package/list/list.directive.d.ts +0 -12
  268. package/list/public-api.d.ts +0 -2
  269. package/mask/mask-pipe.d.ts +0 -7
  270. package/mask/mask.d.ts +0 -24
  271. package/mask/public-api.d.ts +0 -2
  272. package/menu/context-menu.d.ts +0 -21
  273. package/menu/mention.d.ts +0 -18
  274. package/menu/menu-trigger.d.ts +0 -34
  275. package/menu/menu.d.ts +0 -58
  276. package/menu/navigation-menu.d.ts +0 -19
  277. package/menu/public-api.d.ts +0 -5
  278. package/network/network.interceptor.d.ts +0 -6
  279. package/network/network.service.d.ts +0 -18
  280. package/network/public-api.d.ts +0 -2
  281. package/otp/otp.d.ts +0 -48
  282. package/otp/public-api.d.ts +0 -1
  283. package/pagination/pagination.d.ts +0 -32
  284. package/pagination/public-api.d.ts +0 -1
  285. package/popover/base-popover.service.d.ts +0 -16
  286. package/popover/popover-arrow.ng.d.ts +0 -34
  287. package/popover/popover-trigger.d.ts +0 -21
  288. package/popover/popover.d.ts +0 -60
  289. package/popover/popover.service.d.ts +0 -43
  290. package/popover/public-api.d.ts +0 -6
  291. package/popover/utils.d.ts +0 -69
  292. package/portal/dialog-ref.d.ts +0 -70
  293. package/portal/portal-base.service.d.ts +0 -19
  294. package/portal/portal-close.directive.d.ts +0 -9
  295. package/portal/portal.component.d.ts +0 -7
  296. package/portal/portal.service.d.ts +0 -16
  297. package/portal/public-api.d.ts +0 -5
  298. package/progress/progress.d.ts +0 -13
  299. package/progress/public-api.d.ts +0 -1
  300. package/public-api.d.ts +0 -2
  301. package/radio/public-api.d.ts +0 -2
  302. package/radio/radio-group.d.ts +0 -19
  303. package/radio/radio.d.ts +0 -26
  304. package/resizable/public-api.d.ts +0 -2
  305. package/resizable/resizable-group.d.ts +0 -22
  306. package/resizable/resizable.d.ts +0 -50
  307. package/scroll-area/public-api.d.ts +0 -1
  308. package/scroll-area/scroll-area.d.ts +0 -56
  309. package/select/list-selection.d.ts +0 -7
  310. package/select/option-group.d.ts +0 -7
  311. package/select/option.d.ts +0 -25
  312. package/select/public-api.d.ts +0 -6
  313. package/select/select-base.d.ts +0 -66
  314. package/select/select-input.d.ts +0 -23
  315. package/select/select.d.ts +0 -53
  316. package/selectable/public-api.d.ts +0 -2
  317. package/selectable/selectable-item.d.ts +0 -12
  318. package/selectable/selectable.d.ts +0 -19
  319. package/sheet/public-api.d.ts +0 -2
  320. package/sheet/sheet.d.ts +0 -26
  321. package/sheet/sheet.service.d.ts +0 -13
  322. package/sidenav/public-api.d.ts +0 -3
  323. package/sidenav/sidenav-header.d.ts +0 -31
  324. package/sidenav/sidenav.d.ts +0 -23
  325. package/sidenav/sidenav.service.d.ts +0 -18
  326. package/slider/public-api.d.ts +0 -1
  327. package/slider/slider.d.ts +0 -76
  328. package/sonner/public-api.d.ts +0 -2
  329. package/sonner/sonner.d.ts +0 -25
  330. package/sonner/sonner.service.d.ts +0 -21
  331. package/stepper/animation.d.ts +0 -1
  332. package/stepper/public-api.d.ts +0 -3
  333. package/stepper/step.d.ts +0 -24
  334. package/stepper/stepper.d.ts +0 -26
  335. package/switch/public-api.d.ts +0 -1
  336. package/switch/switch.d.ts +0 -44
  337. package/table/body-cell.d.ts +0 -11
  338. package/table/body-row.d.ts +0 -25
  339. package/table/column.d.ts +0 -10
  340. package/table/head-cell.d.ts +0 -12
  341. package/table/head-row.d.ts +0 -24
  342. package/table/public-api.d.ts +0 -8
  343. package/table/sort.d.ts +0 -40
  344. package/table/table.d.ts +0 -38
  345. package/tabs/public-api.d.ts +0 -2
  346. package/tabs/tab-group.d.ts +0 -52
  347. package/tabs/tab.d.ts +0 -31
  348. package/test/public-api.d.ts +0 -1
  349. package/test/utils.d.ts +0 -78
  350. package/toggle/public-api.d.ts +0 -1
  351. package/toggle/toggle.d.ts +0 -13
  352. package/toggle-group/public-api.d.ts +0 -2
  353. package/toggle-group/toggle-group.d.ts +0 -25
  354. package/toggle-group/toggle-item.d.ts +0 -14
  355. package/tooltip/public-api.d.ts +0 -2
  356. package/tooltip/tooltip.d.ts +0 -24
  357. package/tooltip/tooltip.directive.d.ts +0 -34
  358. package/tooltip/tooltip.service.d.ts +0 -28
  359. package/tour/animation.d.ts +0 -2
  360. package/tour/public-api.d.ts +0 -5
  361. package/tour/tour-base.d.ts +0 -21
  362. package/tour/tour-step.d.ts +0 -11
  363. package/tour/tour.d.ts +0 -9
  364. package/tour/tour.service.d.ts +0 -29
  365. package/translate/config.d.ts +0 -16
  366. package/translate/public-api.d.ts +0 -3
  367. package/translate/translate.d.ts +0 -11
  368. package/translate/translate.service.d.ts +0 -31
  369. package/tree/public-api.d.ts +0 -3
  370. package/tree/tree-node.d.ts +0 -28
  371. package/tree/tree-toggle.d.ts +0 -16
  372. package/tree/tree.d.ts +0 -55
  373. package/utils/animation.d.ts +0 -3
  374. package/utils/disposals.d.ts +0 -7
  375. package/utils/number-only.d.ts +0 -22
  376. package/utils/public-api.d.ts +0 -6
  377. package/utils/range.pipe.d.ts +0 -7
  378. package/utils/ssr.d.ts +0 -2
  379. package/utils/utils.d.ts +0 -28
  380. package/virtualizer/public-api.d.ts +0 -1
  381. package/virtualizer/virtualizer.d.ts +0 -42
@@ -4,23 +4,23 @@ import { inject, input, numberAttribute, computed, Directive, model, output } fr
4
4
  class NgbPaginationBtn {
5
5
  constructor() {
6
6
  this.pagination = inject(NgbPagination);
7
- this.ngbPaginationBtn = input.required();
8
- this.jump = input(undefined, { transform: numberAttribute });
7
+ this.ngbPaginationBtn = input.required(...(ngDevMode ? [{ debugName: "ngbPaginationBtn" }] : []));
8
+ this.jump = input(undefined, ...(ngDevMode ? [{ debugName: "jump", transform: numberAttribute }] : [{ transform: numberAttribute }]));
9
9
  this.disabled = computed(() => this.ngbPaginationBtn() === 'page'
10
10
  ? false
11
11
  : this.ngbPaginationBtn() === 'prev'
12
12
  ? !this.pagination.prev()
13
- : !this.pagination.next());
13
+ : !this.pagination.next(), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
14
14
  this.ariaLabel = computed(() => {
15
15
  return this.ngbPaginationBtn() === 'page'
16
16
  ? 'Go to page'
17
17
  : this.ngbPaginationBtn() === 'prev'
18
18
  ? 'Go to previous page'
19
19
  : 'Go to next page';
20
- });
20
+ }, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
21
21
  this.ariaCurrent = computed(() => this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()
22
22
  ? 'page'
23
- : undefined);
23
+ : undefined, ...(ngDevMode ? [{ debugName: "ariaCurrent" }] : []));
24
24
  }
25
25
  clicked() {
26
26
  if (this.ngbPaginationBtn() === 'page') {
@@ -43,13 +43,13 @@ class NgbPaginationBtn {
43
43
  }
44
44
  }
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPaginationBtn, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbPaginationBtn, isStandalone: true, selector: "[ngbPaginationBtn]", inputs: { ngbPaginationBtn: { classPropertyName: "ngbPaginationBtn", publicName: "ngbPaginationBtn", isSignal: true, isRequired: true, transformFunction: null }, jump: { classPropertyName: "jump", publicName: "jump", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "click": "clicked()" }, properties: { "attr.aria-label": "ariaLabel()", "disabled": "disabled()", "attr.aria-current": "ariaCurrent()" } }, ngImport: i0 }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPaginationBtn, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbPaginationBtn, isStandalone: true, selector: "button[ngbPaginationBtn]", inputs: { ngbPaginationBtn: { classPropertyName: "ngbPaginationBtn", publicName: "ngbPaginationBtn", isSignal: true, isRequired: true, transformFunction: null }, jump: { classPropertyName: "jump", publicName: "jump", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button" }, listeners: { "click": "clicked()" }, properties: { "attr.aria-label": "ariaLabel()", "disabled": "disabled()", "attr.aria-current": "ariaCurrent()" } }, ngImport: i0 }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPaginationBtn, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPaginationBtn, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
- selector: '[ngbPaginationBtn]',
52
+ selector: 'button[ngbPaginationBtn]',
53
53
  host: {
54
54
  type: 'button',
55
55
  '[attr.aria-label]': 'ariaLabel()',
@@ -62,13 +62,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
62
62
  class NgbPagination {
63
63
  constructor() {
64
64
  // Inputs
65
- this.size = model.required();
66
- this.active = model.required();
67
- this.total = input.required();
68
- this.sizeOptions = input([10, 20, 50, 100]);
65
+ this.size = model.required(...(ngDevMode ? [{ debugName: "size" }] : []));
66
+ this.active = model.required(...(ngDevMode ? [{ debugName: "active" }] : []));
67
+ this.total = input.required(...(ngDevMode ? [{ debugName: "total" }] : []));
68
+ this.sizeOptions = input([10, 20, 50, 100], ...(ngDevMode ? [{ debugName: "sizeOptions" }] : []));
69
69
  this.valueChanged = output();
70
70
  // State
71
- this.totalSnaps = computed(() => Math.ceil(this.total() / this.size()));
71
+ this.totalSnaps = computed(() => Math.ceil(this.total() / this.size()), ...(ngDevMode ? [{ debugName: "totalSnaps" }] : []));
72
72
  this.snaps = computed(() => {
73
73
  const activeIndex = this.active();
74
74
  const total = this.totalSnaps();
@@ -83,9 +83,9 @@ class NgbPagination {
83
83
  num.push(i);
84
84
  }
85
85
  return num;
86
- });
87
- this.prev = computed(() => this.active() > 1);
88
- this.next = computed(() => this.active() < this.totalSnaps());
86
+ }, ...(ngDevMode ? [{ debugName: "snaps" }] : []));
87
+ this.prev = computed(() => this.active() > 1, ...(ngDevMode ? [{ debugName: "prev" }] : []));
88
+ this.next = computed(() => this.active() < this.totalSnaps(), ...(ngDevMode ? [{ debugName: "next" }] : []));
89
89
  }
90
90
  goto(index) {
91
91
  const total = this.totalSnaps();
@@ -105,10 +105,10 @@ class NgbPagination {
105
105
  this.active.set(1);
106
106
  this.valueChanged.emit(this.active());
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" } }, ngImport: i0 }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" } }, ngImport: i0 }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPagination, decorators: [{
112
112
  type: Directive,
113
113
  args: [{
114
114
  selector: '[ngbPagination]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import { computed, Directive, inject, input, model, numberAttribute, output } from '@angular/core';\n\n@Directive({\n selector: '[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Directive({\n selector: '[ngbPagination]',\n host: {\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly size = model.required<number>();\n readonly active = model.required<number>();\n readonly total = input.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n\nexport function aliasPagination(pagination: typeof NgbPagination) {\n return { provide: NgbPagination, useExisting: pagination };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import { computed, Directive, inject, input, model, numberAttribute, output } from '@angular/core';\n\n@Directive({\n selector: 'button[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Directive({\n selector: '[ngbPagination]',\n host: {\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly size = model.required<number>();\n readonly active = model.required<number>();\n readonly total = input.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n\nexport function aliasPagination(pagination: typeof NgbPagination) {\n return { provide: NgbPagination, useExisting: pagination };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -378,7 +378,7 @@ function providePopoverArrowTracker() {
378
378
  class NgbPopoverArrow {
379
379
  constructor() {
380
380
  this.arrowTracker = inject(POPOVER_ARROW_TRACKER);
381
- this.anchor = input(false);
381
+ this.anchor = input(false, ...(ngDevMode ? [{ debugName: "anchor" }] : []));
382
382
  this.el = inject((ElementRef));
383
383
  this.styles = computed(() => {
384
384
  const { target, position } = this.arrowTracker.values();
@@ -386,7 +386,7 @@ class NgbPopoverArrow {
386
386
  return this.updateAnchorPosition(position, target, this.el.nativeElement);
387
387
  }
388
388
  return {};
389
- });
389
+ }, ...(ngDevMode ? [{ debugName: "styles" }] : []));
390
390
  }
391
391
  updateAnchorPosition(position, target, el) {
392
392
  const { height, width, top } = el.getBoundingClientRect();
@@ -429,8 +429,8 @@ class NgbPopoverArrow {
429
429
  }
430
430
  return { '--action-angle': deg, '--action-left': anchorLeft, '--action-top': anchorTop };
431
431
  }
432
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
433
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbPopoverArrow, isStandalone: true, selector: "[ngbPopoverArrow]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "styles()" } }, ngImport: i0, template: `
432
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverArrow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
433
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0", type: NgbPopoverArrow, isStandalone: true, selector: "[ngbPopoverArrow]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "styles()" } }, ngImport: i0, template: `
434
434
  <ng-content />
435
435
  @if (anchor()) {
436
436
  <style>
@@ -460,7 +460,7 @@ class NgbPopoverArrow {
460
460
  }
461
461
  `, isInline: true, styles: [":host{--action-angle: 180deg;--action-left: 50%;--action-top: -1rem;--action-color: var(--color-background)}:host:before{content:\"\";position:absolute;width:0;height:0;border-style:solid;border-top:.5rem solid var(--action-color);border-left:.45rem solid transparent;border-right:.45rem solid transparent;top:var(--action-top);left:var(--action-left);transform:translate(-50%) rotate(var(--action-angle, 180deg))}\n"] }); }
462
462
  }
463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverArrow, decorators: [{
463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverArrow, decorators: [{
464
464
  type: Component,
465
465
  args: [{
466
466
  selector: '[ngbPopoverArrow]',
@@ -505,10 +505,10 @@ class NgbPopoverBackdrop {
505
505
  this.focusTrap = inject(FocusTrap);
506
506
  this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true);
507
507
  }
508
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
509
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbPopoverBackdrop, isStandalone: true, selector: "[ngbPopoverBackdrop]", host: { listeners: { "click": "!popover.options().disableClose && popover.close()" }, properties: { "style.clipPath": "popover.options().clipPath?.()", "class": "popover.options().backdropClassName" } }, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
508
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
509
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbPopoverBackdrop, isStandalone: true, selector: "[ngbPopoverBackdrop]", host: { listeners: { "click": "!popover.options().disableClose && popover.close()" }, properties: { "style.clipPath": "popover.options().clipPath?.()", "class": "popover.options().backdropClassName" } }, hostDirectives: [{ directive: i1.FocusTrap }], ngImport: i0 }); }
510
510
  }
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverBackdrop, decorators: [{
511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverBackdrop, decorators: [{
512
512
  type: Directive,
513
513
  args: [{
514
514
  selector: '[ngbPopoverBackdrop]',
@@ -524,10 +524,10 @@ class NgbPopoverMain {
524
524
  constructor() {
525
525
  this.popover = inject(NgbPopover);
526
526
  }
527
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverMain, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
528
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbPopoverMain, isStandalone: true, selector: "[ngbPopoverMain]", host: { properties: { "class": "popover.options().className" } }, ngImport: i0 }); }
527
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverMain, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
528
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbPopoverMain, isStandalone: true, selector: "[ngbPopoverMain]", host: { properties: { "class": "popover.options().className" } }, ngImport: i0 }); }
529
529
  }
530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverMain, decorators: [{
530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverMain, decorators: [{
531
531
  type: Directive,
532
532
  args: [{
533
533
  selector: '[ngbPopoverMain]',
@@ -545,10 +545,10 @@ class NgbPopover extends BaseDialog {
545
545
  this.container = viewChild.required(NgbPopoverMain, {
546
546
  read: ElementRef,
547
547
  });
548
- this.backdropElement = viewChild(NgbPopoverBackdrop, { read: ElementRef });
549
- this.options = signal({});
548
+ this.backdropElement = viewChild(NgbPopoverBackdrop, ...(ngDevMode ? [{ debugName: "backdropElement", read: ElementRef }] : [{ read: ElementRef }]));
549
+ this.options = signal({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
550
550
  this.lastPosition = 'top';
551
- this.scrolled = signal(0);
551
+ this.scrolled = signal(0, ...(ngDevMode ? [{ debugName: "scrolled" }] : []));
552
552
  this.events = this._afterViewSource.pipe(switchMap(e => {
553
553
  const el = this.container().nativeElement;
554
554
  const mouseenter = fromEvent(el, 'mouseenter');
@@ -562,7 +562,7 @@ class NgbPopover extends BaseDialog {
562
562
  const dialog = effect(() => {
563
563
  this._afterViewSource.next(this.myDialog());
564
564
  dialog.destroy();
565
- });
565
+ }, ...(ngDevMode ? [{ debugName: "dialog" }] : []));
566
566
  effect(cleanup => {
567
567
  const el = this.container().nativeElement;
568
568
  const options = this.options();
@@ -689,8 +689,8 @@ class NgbPopover extends BaseDialog {
689
689
  // console.log('setOptions', options);
690
690
  this.options.set(options);
691
691
  }
692
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
693
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.0", type: NgbPopover, isStandalone: true, selector: "ngb-popover", host: { listeners: { "@parentAnimation.done": "animationDone()" }, properties: { "@parentAnimation": "" } }, viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["myDialog"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "container", first: true, predicate: NgbPopoverMain, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "backdropElement", first: true, predicate: NgbPopoverBackdrop, descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, animations: [
692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.0", type: NgbPopover, isStandalone: true, selector: "ngb-popover", host: { listeners: { "@parentAnimation.done": "animationDone()" }, properties: { "@parentAnimation": "" } }, viewQueries: [{ propertyName: "myDialog", first: true, predicate: ["myDialog"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "container", first: true, predicate: NgbPopoverMain, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "backdropElement", first: true, predicate: NgbPopoverBackdrop, descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, animations: [
694
694
  createHostAnimation(['@slideInOutAnimation']),
695
695
  trigger('slideInOutAnimation', [
696
696
  state('1', style({ transform: 'none', opacity: 1 })),
@@ -700,7 +700,7 @@ class NgbPopover extends BaseDialog {
700
700
  ]),
701
701
  ] }); }
702
702
  }
703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopover, decorators: [{
703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopover, decorators: [{
704
704
  type: Component,
705
705
  args: [{
706
706
  selector: 'ngb-popover',
@@ -752,15 +752,15 @@ function scrollToElement(target) {
752
752
  class NgbPopoverClose extends NgbPortalClose {
753
753
  constructor() {
754
754
  super(...arguments);
755
- this.ngbPopoverClose = input();
755
+ this.ngbPopoverClose = input(...(ngDevMode ? [undefined, { debugName: "ngbPopoverClose" }] : []));
756
756
  }
757
757
  close() {
758
758
  super.close(this.ngbPopoverClose());
759
759
  }
760
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverClose, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
761
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbPopoverClose, isStandalone: true, selector: "[ngbPopoverClose]", inputs: { ngbPopoverClose: { classPropertyName: "ngbPopoverClose", publicName: "ngbPopoverClose", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
760
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverClose, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
761
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbPopoverClose, isStandalone: true, selector: "[ngbPopoverClose]", inputs: { ngbPopoverClose: { classPropertyName: "ngbPopoverClose", publicName: "ngbPopoverClose", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
762
762
  }
763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverClose, decorators: [{
763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverClose, decorators: [{
764
764
  type: Directive,
765
765
  args: [{ selector: '[ngbPopoverClose]' }]
766
766
  }] });
@@ -787,9 +787,9 @@ class NgbPopoverTrigger {
787
787
  constructor() {
788
788
  this.popoverPortal = ngbPopoverPortal();
789
789
  this.el = inject(ElementRef);
790
- this.ngbPopoverTrigger = input.required();
791
- this.ngbPopoverTriggerData = input();
792
- this.options = input();
790
+ this.ngbPopoverTrigger = input.required(...(ngDevMode ? [{ debugName: "ngbPopoverTrigger" }] : []));
791
+ this.ngbPopoverTriggerData = input(...(ngDevMode ? [undefined, { debugName: "ngbPopoverTriggerData" }] : []));
792
+ this.options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
793
793
  this.closeFn = () => { };
794
794
  }
795
795
  open() {
@@ -805,10 +805,10 @@ class NgbPopoverTrigger {
805
805
  close() {
806
806
  this.closeFn();
807
807
  }
808
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
809
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbPopoverTrigger, isStandalone: true, selector: "[ngbPopoverTrigger]", inputs: { ngbPopoverTrigger: { classPropertyName: "ngbPopoverTrigger", publicName: "ngbPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbPopoverTriggerData: { classPropertyName: "ngbPopoverTriggerData", publicName: "ngbPopoverTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "open()" } }, exportAs: ["ngbPopoverTrigger"], ngImport: i0 }); }
808
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
809
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbPopoverTrigger, isStandalone: true, selector: "[ngbPopoverTrigger]", inputs: { ngbPopoverTrigger: { classPropertyName: "ngbPopoverTrigger", publicName: "ngbPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbPopoverTriggerData: { classPropertyName: "ngbPopoverTriggerData", publicName: "ngbPopoverTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "open()" } }, exportAs: ["ngbPopoverTrigger"], ngImport: i0 }); }
810
810
  }
811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPopoverTrigger, decorators: [{
811
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbPopoverTrigger, decorators: [{
812
812
  type: Directive,
813
813
  args: [{
814
814
  selector: '[ngbPopoverTrigger]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-popover.mjs","sources":["../../../projects/adk/popover/base-popover.service.ts","../../../projects/adk/popover/utils.ts","../../../projects/adk/popover/popover-arrow.ng.ts","../../../projects/adk/popover/popover.ts","../../../projects/adk/popover/popover.service.ts","../../../projects/adk/popover/popover-trigger.ts","../../../projects/adk/popover/public-api.ts","../../../projects/adk/popover/ngbase-adk-popover.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { NgbPopover } from './popover';\nimport { PopoverOptions } from './popover.service';\n\nexport function basePopoverPortal<T>(component: Type<T>) {\n const NAME = 'popover';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions) {\n const { diaRef, parent, replace, childSignal } = base.open(\n component,\n (comp, opt) => {\n const compInst = comp.instance as NgbPopover;\n compInst.setOptions(opt as PopoverOptions);\n },\n options,\n );\n\n return {\n diaRef,\n events: (parent.instance as NgbPopover).events,\n parent: parent.instance,\n replace,\n childSignal,\n };\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n","export interface PopoverUtilConfig {\n offset?: number;\n sideOffset?: number;\n smoothScroll?: boolean;\n position?: Position | OverlayPosition;\n client?: { x: number; y: number; w: number; h: number } | null;\n target: HTMLElement;\n el?: HTMLElement;\n}\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport type OverlayPosition =\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'rs'\n | 're'\n | 'ls'\n | 'le'\n | 'tl'\n | 'tr'\n | 'bl'\n | 'br';\n\n// Main position enum with all supported positions\nexport enum Position {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n TopLeft = 'tl',\n TopRight = 'tr',\n BottomLeft = 'bl',\n BottomRight = 'br',\n RightStart = 'rs',\n RightEnd = 're',\n LeftStart = 'ls',\n LeftEnd = 'le',\n}\n\nexport interface PositionResult {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n position: Position;\n maxHeight?: number;\n maxWidth?: number;\n}\n\n// Position metadata - defines each position in terms of main axis, alignment, and coordinates calculation\ninterface PositionMeta {\n main: 'vertical' | 'horizontal';\n placement: 'before' | 'after';\n align: 'start' | 'center' | 'end';\n oppositePosition: Position;\n fallbacks: Position[];\n getCoords: (targetRect: Rect, elementRect: Rect, offset: number) => { top: number; left: number };\n}\n\n// Position metadata definitions\nconst POSITION_META: Record<Position, PositionMeta> = {\n [Position.Top]: {\n main: 'vertical',\n placement: 'before',\n align: 'center',\n oppositePosition: Position.Bottom,\n fallbacks: [Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left + (target.width - element.width) / 2,\n }),\n },\n [Position.Bottom]: {\n main: 'vertical',\n placement: 'after',\n align: 'center',\n oppositePosition: Position.Top,\n fallbacks: [Position.Top, Position.Right, Position.Left],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left + (target.width - element.width) / 2,\n }),\n },\n [Position.Left]: {\n main: 'horizontal',\n placement: 'before',\n align: 'center',\n oppositePosition: Position.Right,\n fallbacks: [Position.Right, Position.Top, Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top + (target.height - element.height) / 2,\n left: target.left - element.width - offset,\n }),\n },\n [Position.Right]: {\n main: 'horizontal',\n placement: 'after',\n align: 'center',\n oppositePosition: Position.Left,\n fallbacks: [Position.Left, Position.Top, Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top + (target.height - element.height) / 2,\n left: target.left + target.width + offset,\n }),\n },\n [Position.TopLeft]: {\n main: 'vertical',\n placement: 'before',\n align: 'start',\n oppositePosition: Position.BottomLeft,\n fallbacks: [Position.BottomLeft, Position.TopRight, Position.BottomRight],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left,\n }),\n },\n [Position.TopRight]: {\n main: 'vertical',\n placement: 'before',\n align: 'end',\n oppositePosition: Position.BottomRight,\n fallbacks: [Position.BottomRight, Position.TopLeft, Position.BottomLeft],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left + target.width - element.width,\n }),\n },\n [Position.BottomLeft]: {\n main: 'vertical',\n placement: 'after',\n align: 'start',\n oppositePosition: Position.BottomRight,\n fallbacks: [Position.BottomRight, Position.TopLeft, Position.TopRight],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left,\n }),\n },\n [Position.BottomRight]: {\n main: 'vertical',\n placement: 'after',\n align: 'end',\n oppositePosition: Position.BottomLeft,\n fallbacks: [Position.BottomLeft, Position.TopRight, Position.TopLeft],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left + target.width - element.width,\n }),\n },\n [Position.RightStart]: {\n main: 'horizontal',\n placement: 'after',\n align: 'start',\n oppositePosition: Position.RightEnd,\n fallbacks: [Position.RightEnd, Position.LeftStart, Position.LeftEnd],\n getCoords: (target, element, offset) => ({\n top: target.top,\n left: target.left + target.width + offset,\n }),\n },\n [Position.RightEnd]: {\n main: 'horizontal',\n placement: 'after',\n align: 'end',\n oppositePosition: Position.LeftEnd,\n fallbacks: [Position.LeftEnd, Position.RightStart, Position.LeftStart],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height - element.height,\n left: target.left + target.width + offset,\n }),\n },\n [Position.LeftStart]: {\n main: 'horizontal',\n placement: 'before',\n align: 'start',\n oppositePosition: Position.LeftEnd,\n fallbacks: [Position.LeftEnd, Position.RightStart, Position.RightEnd],\n getCoords: (target, element, offset) => ({\n top: target.top,\n left: target.left - element.width - offset,\n }),\n },\n [Position.LeftEnd]: {\n main: 'horizontal',\n placement: 'before',\n align: 'end',\n oppositePosition: Position.RightEnd,\n fallbacks: [Position.RightEnd, Position.LeftStart, Position.RightStart],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height - element.height,\n left: target.left - element.width - offset,\n }),\n },\n};\n\nexport class PopoverPositioner {\n private offset: number;\n private sideOffset: number;\n private elementRect!: Rect;\n\n constructor(\n private config: PopoverUtilConfig,\n private windowDimensions: { width: number; height: number },\n private scrollWidth = 0,\n ) {\n this.offset = this.config.offset || 5;\n this.sideOffset = this.config.sideOffset || 0;\n }\n\n public calculatePosition(): PositionResult {\n const targetRect = this.getTargetRect();\n this.elementRect = this.getElementRect();\n\n // Get initial position or use bottom as default\n const initialPosition = (this.config.position as Position) || Position.Bottom;\n\n // Find best position\n const bestPosition = this.findBestPosition(initialPosition, targetRect);\n\n // Generate and finalize coordinates\n const coords = POSITION_META[bestPosition].getCoords(targetRect, this.elementRect, this.offset);\n return this.finalizePosition(coords, bestPosition, targetRect);\n }\n\n private getTargetRect(): Rect {\n if (this.config.client) {\n const { x, y, w, h } = this.config.client;\n return { top: y, left: x, width: w, height: h };\n }\n return this.config.target.getBoundingClientRect();\n }\n\n private getElementRect(): Rect {\n const el = this.config.el!;\n return {\n top: 0,\n left: 0,\n width: el.clientWidth,\n height: el.clientHeight,\n };\n }\n\n private findBestPosition(initialPosition: Position, targetRect: Rect): Position {\n // If the initial position works, use it\n if (!this.positionOverflows(initialPosition, targetRect)) {\n return initialPosition;\n }\n\n // Get available space in each direction\n const space = this.getAvailableSpace(targetRect);\n\n // Special handling for simple cases (e.g., choosing between top and bottom based on space)\n const meta = POSITION_META[initialPosition];\n\n // 1. Try the opposite position on the same axis (e.g., bottom for top)\n const opposite = meta.oppositePosition;\n if (!this.positionOverflows(opposite, targetRect)) {\n return opposite;\n }\n\n // 2. Try fallbacks in order\n for (const fallback of meta.fallbacks) {\n if (!this.positionOverflows(fallback, targetRect)) {\n return fallback;\n }\n }\n\n // 3. For vertical positions, prefer the side with more space\n if (meta.main === 'vertical') {\n const preferredVertical = space.top > space.bottom ? Position.Top : Position.Bottom;\n if (!this.positionOverflows(preferredVertical, targetRect)) {\n return preferredVertical;\n }\n }\n\n // 4. For horizontal positions, prefer the side with more space\n if (meta.main === 'horizontal') {\n const preferredHorizontal = space.left > space.right ? Position.Left : Position.Right;\n if (!this.positionOverflows(preferredHorizontal, targetRect)) {\n return preferredHorizontal;\n }\n }\n\n // 5. If all positions have issues, find the one with the best fit\n return this.getPositionWithLeastOverflow(initialPosition, targetRect);\n }\n\n private getAvailableSpace(targetRect: Rect): {\n top: number;\n right: number;\n bottom: number;\n left: number;\n } {\n return {\n top: targetRect.top,\n right: this.windowDimensions.width - (targetRect.left + targetRect.width),\n bottom: this.windowDimensions.height - (targetRect.top + targetRect.height),\n left: targetRect.left,\n };\n }\n\n private positionOverflows(position: Position, targetRect: Rect): boolean {\n const meta = POSITION_META[position];\n const element = this.elementRect;\n const coords = meta.getCoords(targetRect, element, this.offset);\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n\n // Check boundaries and consider sideOffset\n return (\n coords.left < 0 ||\n coords.left + element.width + this.sideOffset > windowWidth ||\n coords.top < 0 ||\n coords.top + element.height + this.sideOffset > windowHeight\n );\n }\n\n private getOverflowAmount(position: Position, targetRect: Rect): number {\n const meta = POSITION_META[position];\n const element = this.elementRect;\n const coords = meta.getCoords(targetRect, element, this.offset);\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n\n let amount = 0;\n\n // Calculate overflow for each edge\n if (coords.left < 0) amount += Math.abs(coords.left);\n if (coords.left + element.width > windowWidth)\n amount += coords.left + element.width - windowWidth;\n if (coords.top < 0) amount += Math.abs(coords.top);\n if (coords.top + element.height > windowHeight)\n amount += coords.top + element.height - windowHeight;\n\n return amount;\n }\n\n private getPositionWithLeastOverflow(initialPosition: Position, targetRect: Rect): Position {\n const positionsToCheck = [initialPosition, ...POSITION_META[initialPosition].fallbacks];\n\n let bestPosition = initialPosition;\n let leastOverflow = this.getOverflowAmount(initialPosition, targetRect);\n\n for (const position of positionsToCheck) {\n const overflow = this.getOverflowAmount(position, targetRect);\n if (overflow < leastOverflow) {\n leastOverflow = overflow;\n bestPosition = position;\n }\n }\n\n return bestPosition;\n }\n\n private finalizePosition(\n coords: { top: number; left: number },\n position: Position,\n targetRect: Rect,\n ): PositionResult {\n const { top, left } = coords;\n const element = this.elementRect;\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n const meta = POSITION_META[position];\n\n // Calculate max dimensions\n let maxHeight: number | undefined;\n let maxWidth: number | undefined;\n\n // Set maxHeight if needed\n if (top - this.sideOffset < 0) {\n maxHeight = element.height + top - this.sideOffset;\n } else if (top + element.height + this.sideOffset > windowHeight) {\n maxHeight = element.height - (top + element.height + this.sideOffset - windowHeight);\n }\n\n // Set maxWidth if needed\n if (left + element.width + this.sideOffset > windowWidth) {\n maxWidth = windowWidth - left - this.sideOffset;\n }\n\n // Add sideOffset to maxHeight and maxWidth because the sideOffset is used for the maxHeight and maxWidth\n const h = maxHeight ? maxHeight + this.sideOffset : element.height;\n const w = maxWidth ? maxWidth + this.sideOffset : element.width;\n\n // Calculate adjusted coordinates\n let adjustedTop: number | undefined = Math.max(0, Math.min(top, windowHeight - h));\n let adjustedLeft = Math.max(0, Math.min(left, windowWidth - w));\n\n // Calculate bottom and right (for RTL support)\n let bottom: number | undefined;\n let right: number | undefined;\n\n // Set bottom if appropriate\n if (meta.main === 'vertical' && meta.placement === 'before') {\n bottom = windowHeight - (adjustedTop + h);\n adjustedTop = undefined;\n }\n\n // Set right if appropriate\n if (adjustedLeft + w > windowWidth) {\n adjustedLeft = 0;\n right = 0;\n } else if (\n meta.align === 'end' ||\n (meta.main === 'horizontal' && meta.placement === 'before')\n ) {\n right = windowWidth - (adjustedLeft + w) - this.scrollWidth;\n }\n\n return {\n top: adjustedTop,\n left: right !== undefined ? undefined : adjustedLeft,\n bottom,\n right,\n position,\n maxHeight: maxHeight && maxHeight > 0 ? maxHeight : undefined,\n maxWidth: maxWidth && maxWidth > 0 ? maxWidth : undefined,\n };\n }\n}\n\n// Main function to use the class\nexport function tooltipPosition(\n config: PopoverUtilConfig,\n windowDimensions = { width: window.innerWidth, height: window.innerHeight },\n scrollWidth = window.innerWidth - document.documentElement.clientWidth,\n): PositionResult {\n const positioner = new PopoverPositioner(config, windowDimensions, scrollWidth);\n return positioner.calculatePosition();\n}\n","import {\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport { PopoverPosition } from './popover.service';\n\nexport class PopoverArrowTracker {\n top? = 0;\n left? = 0;\n right? = 0;\n bottom? = 0;\n target?: HTMLElement;\n position?: PopoverPosition;\n}\n\nexport const POPOVER_ARROW_TRACKER = new InjectionToken<{\n values: WritableSignal<PopoverArrowTracker>;\n}>('popoverArrowTracker');\n\nexport function providePopoverArrowTracker() {\n return {\n provide: POPOVER_ARROW_TRACKER,\n useFactory: () => ({ values: signal<PopoverArrowTracker>(new PopoverArrowTracker()) }),\n };\n}\n\n@Component({\n selector: '[ngbPopoverArrow]',\n template: `\n <ng-content />\n @if (anchor()) {\n <style>\n :host {\n --action-angle: 180deg;\n --action-left: 50%;\n --action-top: -1rem;\n --action-color: var(--color-background);\n }\n :host::before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-top: 0.5rem solid var(--action-color);\n border-left: 0.45rem solid transparent;\n border-right: 0.45rem solid transparent;\n top: var(--action-top);\n left: var(--action-left);\n transform: translateX(-50%) rotate(var(--action-angle, 180deg));\n /* Add shadow to match the container shadow */\n /* filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n z-index: -1; */\n }\n </style>\n }\n `,\n host: {\n '[style]': 'styles()',\n },\n})\nexport class NgbPopoverArrow {\n readonly arrowTracker = inject(POPOVER_ARROW_TRACKER);\n readonly anchor = input(false);\n readonly el = inject(ElementRef<HTMLElement>);\n readonly styles = computed(() => {\n const { target, position } = this.arrowTracker.values();\n if (target && position) {\n return this.updateAnchorPosition(position, target, this.el.nativeElement);\n }\n return {};\n });\n\n private updateAnchorPosition(position: PopoverPosition, target: HTMLElement, el: HTMLElement) {\n const { height, width, top } = el.getBoundingClientRect();\n const { height: tHeight, width: tWidth, top: tTop } = target.getBoundingClientRect();\n let deg = '0deg';\n let anchorTop = '50%';\n let anchorLeft = '50%';\n const anchorWidth = 8;\n\n const thHeight = tHeight / 2 - anchorWidth / 2;\n const thWidth = tWidth / 2;\n\n switch (position) {\n case 'top':\n case 'tl':\n case 'tr':\n anchorTop = '100%';\n break;\n case 'left':\n deg = '270deg';\n anchorLeft = `calc(100% + ${anchorWidth / 2}px)`;\n anchorTop =\n tHeight > height\n ? `calc(50% - ${anchorWidth / 2}px)`\n : `calc(${thHeight + (tTop - top)}px)`;\n break;\n case 'right':\n deg = '90deg';\n anchorLeft = `-${anchorWidth / 2}px`;\n anchorTop =\n tHeight > height\n ? `calc(50% - ${anchorWidth / 2}px)`\n : `calc(${thHeight + (tTop - top)}px)`;\n break;\n case 'bottom':\n case 'bl':\n case 'br':\n deg = '180deg';\n anchorTop = '-0.5rem';\n anchorLeft = thWidth > width ? '50%' : `calc(100% - ${thWidth}px)`;\n break;\n }\n\n return { '--action-angle': deg, '--action-left': anchorLeft, '--action-top': anchorTop };\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n Directive,\n ElementRef,\n ViewContainerRef,\n effect,\n inject,\n input,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, disposals } from '@ngbase/adk/utils';\nimport { EMPTY, Observable, fromEvent, map, startWith, switchMap } from 'rxjs';\nimport { PopoverOptions, PopoverPosition } from './popover.service';\nimport { tooltipPosition } from './utils';\nimport { POPOVER_ARROW_TRACKER, providePopoverArrowTracker } from './popover-arrow.ng';\n\n@Directive({\n selector: '[ngbPopoverBackdrop]',\n hostDirectives: [FocusTrap],\n host: {\n '[style.clipPath]': 'popover.options().clipPath?.()',\n '[class]': 'popover.options().backdropClassName',\n '(click)': '!popover.options().disableClose && popover.close()',\n },\n})\nexport class NgbPopoverBackdrop {\n readonly popover = inject(NgbPopover);\n readonly focusTrap = inject(FocusTrap);\n\n constructor() {\n this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true);\n }\n}\n\n@Directive({\n selector: '[ngbPopoverMain]',\n host: {\n '[class]': 'popover.options().className',\n },\n})\nexport class NgbPopoverMain {\n readonly popover = inject(NgbPopover);\n}\n\n@Component({\n selector: 'ngb-popover',\n template: '',\n host: {\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@slideInOutAnimation']),\n trigger('slideInOutAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class NgbPopover extends BaseDialog {\n readonly arrowTracker = inject(POPOVER_ARROW_TRACKER);\n private readonly disposals = disposals();\n\n readonly myDialog = viewChild.required('myDialog', { read: ViewContainerRef });\n readonly container = viewChild.required<NgbPopoverMain, ElementRef<HTMLElement>>(NgbPopoverMain, {\n read: ElementRef,\n });\n readonly backdropElement = viewChild<NgbPopoverBackdrop, ElementRef<HTMLElement>>(\n NgbPopoverBackdrop,\n { read: ElementRef },\n );\n\n readonly options = signal<PopoverOptions>({} as PopoverOptions);\n private lastPosition: PopoverPosition = 'top';\n readonly scrolled = signal(0);\n\n readonly events: Observable<{ type: string; value: any }> = this._afterViewSource.pipe(\n switchMap(e => {\n const el = this.container()!.nativeElement;\n const mouseenter = fromEvent(el, 'mouseenter');\n const mouseleave = fromEvent(el, 'mouseleave');\n const event = mouseenter.pipe(\n switchMap(e =>\n mouseleave.pipe(\n map(x => ({ type: 'mouseleave', value: x })),\n startWith({ type: 'mouseenter', value: e }),\n ),\n ),\n );\n return e ? event : EMPTY;\n }),\n );\n\n constructor() {\n super();\n\n const dialog = effect(() => {\n this._afterViewSource.next(this.myDialog()!);\n dialog.destroy();\n });\n\n effect(cleanup => {\n const el = this.container()!.nativeElement;\n const options = this.options();\n const target = this.getTarget();\n if (options.anchor) {\n options.offset = 16;\n }\n this.lastPosition = options.position || 'bottom';\n // this.schedulePopoverUpdate(target, el);\n if (options.smoothScroll) {\n // target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 50')),\n // debounceTime(50),\n // take(1),\n // )\n // .subscribe(() => {});\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 10')),\n // debounceTime(10),\n // take(1),\n // )\n // .subscribe(() => {\n // this.scrolled.update((x) => x + 1);\n // this.schedulePopoverUpdate(target, el);\n // });\n scrollToElement(target).then(() => {\n this.scrolled.update(x => x + 1);\n this.schedulePopoverUpdate(target, el, options);\n });\n } else {\n this.schedulePopoverUpdate(target, el, options);\n }\n\n // TODO: remove this once we have multi cleanup support\n if (!options.backdrop) {\n window.addEventListener('scroll', this.scheduleUpdateDimension);\n cleanup(() => window.removeEventListener('scroll', this.scheduleUpdateDimension));\n }\n\n // observe the target element position change\n const resizeObserver = new ResizeObserver(() => {\n // console.log('resizeObserver');\n this.schedulePopoverUpdate(target, el, options);\n });\n resizeObserver.observe(target);\n cleanup(() => resizeObserver.disconnect());\n });\n }\n\n override getTarget(): HTMLElement {\n return this.target() || this.options().target;\n }\n\n private scheduleUpdateDimension = () => {\n this.disposals.afterNextRender(() => this.updateDimension());\n };\n\n private schedulePopoverUpdate(target: HTMLElement, el: HTMLElement, options: PopoverOptions) {\n // this.options().target = target;\n // if (options.backdrop) {\n // this.onOpen();\n // }\n if (options.width === 'target') {\n // update the width of the container to be the same as the target\n el.style.width = `${target.offsetWidth}px`;\n } else if (options.width === 'free') {\n el.style.minWidth = `${target.offsetWidth}px`;\n } else if (options.width) {\n el.style.width = options.width;\n }\n if (options.height) {\n el.style.height = options.height;\n }\n if (options.maxHeight) {\n el.style.maxHeight = options.maxHeight;\n }\n\n this.scheduleUpdateDimension();\n }\n\n private updateDimension() {\n const el = this.container()!.nativeElement;\n const target = this.getTarget();\n if (!target) {\n return;\n }\n const { top, bottom, left, right, position, maxHeight, maxWidth } = tooltipPosition({\n target,\n el,\n position: this.lastPosition,\n client: this.options().client,\n offset: this.options().offset,\n sideOffset: this.options().sideOffset,\n });\n // change the anchor position\n // if (this.options().anchor) {\n // this.updateAnchorPosition(position, el, target);\n // }\n this.lastPosition = position;\n // we need to update the values directly instead of signal to avoid too many CD checks\n if (bottom !== undefined) {\n el.style.bottom = `${bottom}px`;\n el.style.top = '';\n } else {\n el.style.top = `${top}px`;\n el.style.bottom = '';\n }\n if (right != undefined) {\n el.style.right = `${right}px`;\n el.style.left = '';\n } else {\n el.style.left = `${left}px`;\n el.style.right = '';\n }\n\n if (maxHeight) {\n el.style.maxHeight = `${maxHeight}px`;\n }\n if (maxWidth) {\n el.style.maxWidth = `${maxWidth}px`;\n }\n this.arrowTracker.values.set({ top, bottom, left, right, target, position });\n }\n\n override setOptions(options: PopoverOptions): void {\n // console.log('setOptions', options);\n this.options.set(options);\n }\n}\n\nfunction scrollToElement(target: HTMLElement) {\n return new Promise(resolve => {\n let lastPos: number;\n let currentPos = null;\n let samePosCount = 0;\n\n const checkIfScrollComplete = () => {\n currentPos = window.pageYOffset || document.documentElement.scrollTop;\n\n if (lastPos !== null && currentPos === lastPos) {\n samePosCount++;\n if (samePosCount > 2) {\n resolve(true);\n return;\n }\n } else {\n samePosCount = 0;\n lastPos = currentPos;\n }\n\n requestAnimationFrame(checkIfScrollComplete);\n };\n // scroll only if the target is not in the view\n // window.scrollTo({\n // top: target.offsetTop - 50,\n // behavior: 'smooth',\n // });\n target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n requestAnimationFrame(checkIfScrollComplete);\n });\n}\n\n@Directive({ selector: '[ngbPopoverClose]' })\nexport class NgbPopoverClose extends NgbPortalClose {\n readonly ngbPopoverClose = input();\n\n override close() {\n super.close(this.ngbPopoverClose());\n }\n}\n\nexport function aliasPopover(popover: typeof NgbPopover) {\n return [{ provide: NgbPopover, useExisting: popover }, providePopoverArrowTracker()];\n}\n","import { inject, InjectionToken, Signal, Type, WritableSignal } from '@angular/core';\nimport { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';\nimport { Observable } from 'rxjs';\nimport { basePopoverPortal } from './base-popover.service';\nimport { NgbPopover } from './popover';\nimport { OverlayPosition, PopoverUtilConfig } from './utils';\n\nexport type PopoverPosition = OverlayPosition;\n\nexport class PopoverOptions extends DialogOptions implements PopoverUtilConfig {\n target!: HTMLElement;\n el?: HTMLElement;\n position?: PopoverPosition;\n offset?: number;\n sideOffset?: number;\n client?: { x: number; y: number; w: number; h: number } | null;\n className?: string;\n backdropClassName?: string;\n clipPath?: Signal<string>;\n anchor?: boolean;\n smoothScroll?: boolean;\n}\n\nexport interface PopoverOpen<T> {\n diaRef: DialogRef<any>;\n events: Observable<{ type: string; value: any }>;\n parent: NgbPopover;\n replace: ((component: DialogInput<T>) => void) | undefined;\n childSignal: WritableSignal<any>;\n}\n\nconst POPOVER_TOKEN = new InjectionToken<Type<NgbPopover>>('POPOVER_TOKEN');\n\nexport type PopoverType = ReturnType<typeof ngbPopoverPortal>;\n\nexport function ngbPopoverPortal() {\n const popover = inject(POPOVER_TOKEN, { optional: true }) ?? NgbPopover;\n const base = basePopoverPortal(popover);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions): PopoverOpen<T> {\n return base.open(component, options);\n }\n\n return { open, closeAll: base.closeAll };\n}\n\nexport const registerNgbPopover = (popover: typeof NgbPopover) => {\n return { provide: POPOVER_TOKEN, useValue: popover };\n};\n","import { Directive, ElementRef, TemplateRef, inject, input } from '@angular/core';\nimport { PopoverPosition, ngbPopoverPortal } from './popover.service';\n\n@Directive({\n selector: '[ngbPopoverTrigger]',\n exportAs: 'ngbPopoverTrigger',\n host: {\n '(click)': 'open()',\n },\n})\nexport class NgbPopoverTrigger {\n readonly popoverPortal = ngbPopoverPortal();\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly ngbPopoverTrigger = input.required<TemplateRef<any>>();\n readonly ngbPopoverTriggerData = input();\n readonly options = input<{ position?: PopoverPosition; anchor?: boolean }>();\n\n private closeFn: VoidFunction = () => {};\n\n open() {\n const options = this.options();\n const { diaRef } = this.popoverPortal.open(this.ngbPopoverTrigger(), {\n target: this.el.nativeElement,\n anchor: options?.anchor,\n position: options?.position || 'top',\n data: this.ngbPopoverTriggerData(),\n });\n this.closeFn = diaRef.close;\n }\n\n close() {\n this.closeFn();\n }\n}\n","/*\n * Public API Surface of popover\n */\n\nexport * from './popover.service';\nexport * from './popover';\nexport * from './popover-trigger';\nexport * from './base-popover.service';\nexport * from './popover-arrow.ng';\nexport { tooltipPosition } from './utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-popover.mjs","sources":["../../../projects/adk/popover/base-popover.service.ts","../../../projects/adk/popover/utils.ts","../../../projects/adk/popover/popover-arrow.ng.ts","../../../projects/adk/popover/popover.ts","../../../projects/adk/popover/popover.service.ts","../../../projects/adk/popover/popover-trigger.ts","../../../projects/adk/popover/public-api.ts","../../../projects/adk/popover/ngbase-adk-popover.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { NgbPopover } from './popover';\nimport { PopoverOptions } from './popover.service';\n\nexport function basePopoverPortal<T>(component: Type<T>) {\n const NAME = 'popover';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions) {\n const { diaRef, parent, replace, childSignal } = base.open(\n component,\n (comp, opt) => {\n const compInst = comp.instance as NgbPopover;\n compInst.setOptions(opt as PopoverOptions);\n },\n options,\n );\n\n return {\n diaRef,\n events: (parent.instance as NgbPopover).events,\n parent: parent.instance,\n replace,\n childSignal,\n };\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n","export interface PopoverUtilConfig {\n offset?: number;\n sideOffset?: number;\n smoothScroll?: boolean;\n position?: Position | OverlayPosition;\n client?: { x: number; y: number; w: number; h: number } | null;\n target: HTMLElement;\n el?: HTMLElement;\n}\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport type OverlayPosition =\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'rs'\n | 're'\n | 'ls'\n | 'le'\n | 'tl'\n | 'tr'\n | 'bl'\n | 'br';\n\n// Main position enum with all supported positions\nexport enum Position {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n TopLeft = 'tl',\n TopRight = 'tr',\n BottomLeft = 'bl',\n BottomRight = 'br',\n RightStart = 'rs',\n RightEnd = 're',\n LeftStart = 'ls',\n LeftEnd = 'le',\n}\n\nexport interface PositionResult {\n top?: number;\n left?: number;\n bottom?: number;\n right?: number;\n position: Position;\n maxHeight?: number;\n maxWidth?: number;\n}\n\n// Position metadata - defines each position in terms of main axis, alignment, and coordinates calculation\ninterface PositionMeta {\n main: 'vertical' | 'horizontal';\n placement: 'before' | 'after';\n align: 'start' | 'center' | 'end';\n oppositePosition: Position;\n fallbacks: Position[];\n getCoords: (targetRect: Rect, elementRect: Rect, offset: number) => { top: number; left: number };\n}\n\n// Position metadata definitions\nconst POSITION_META: Record<Position, PositionMeta> = {\n [Position.Top]: {\n main: 'vertical',\n placement: 'before',\n align: 'center',\n oppositePosition: Position.Bottom,\n fallbacks: [Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left + (target.width - element.width) / 2,\n }),\n },\n [Position.Bottom]: {\n main: 'vertical',\n placement: 'after',\n align: 'center',\n oppositePosition: Position.Top,\n fallbacks: [Position.Top, Position.Right, Position.Left],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left + (target.width - element.width) / 2,\n }),\n },\n [Position.Left]: {\n main: 'horizontal',\n placement: 'before',\n align: 'center',\n oppositePosition: Position.Right,\n fallbacks: [Position.Right, Position.Top, Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top + (target.height - element.height) / 2,\n left: target.left - element.width - offset,\n }),\n },\n [Position.Right]: {\n main: 'horizontal',\n placement: 'after',\n align: 'center',\n oppositePosition: Position.Left,\n fallbacks: [Position.Left, Position.Top, Position.Bottom],\n getCoords: (target, element, offset) => ({\n top: target.top + (target.height - element.height) / 2,\n left: target.left + target.width + offset,\n }),\n },\n [Position.TopLeft]: {\n main: 'vertical',\n placement: 'before',\n align: 'start',\n oppositePosition: Position.BottomLeft,\n fallbacks: [Position.BottomLeft, Position.TopRight, Position.BottomRight],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left,\n }),\n },\n [Position.TopRight]: {\n main: 'vertical',\n placement: 'before',\n align: 'end',\n oppositePosition: Position.BottomRight,\n fallbacks: [Position.BottomRight, Position.TopLeft, Position.BottomLeft],\n getCoords: (target, element, offset) => ({\n top: target.top - element.height - offset,\n left: target.left + target.width - element.width,\n }),\n },\n [Position.BottomLeft]: {\n main: 'vertical',\n placement: 'after',\n align: 'start',\n oppositePosition: Position.BottomRight,\n fallbacks: [Position.BottomRight, Position.TopLeft, Position.TopRight],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left,\n }),\n },\n [Position.BottomRight]: {\n main: 'vertical',\n placement: 'after',\n align: 'end',\n oppositePosition: Position.BottomLeft,\n fallbacks: [Position.BottomLeft, Position.TopRight, Position.TopLeft],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height + offset,\n left: target.left + target.width - element.width,\n }),\n },\n [Position.RightStart]: {\n main: 'horizontal',\n placement: 'after',\n align: 'start',\n oppositePosition: Position.RightEnd,\n fallbacks: [Position.RightEnd, Position.LeftStart, Position.LeftEnd],\n getCoords: (target, element, offset) => ({\n top: target.top,\n left: target.left + target.width + offset,\n }),\n },\n [Position.RightEnd]: {\n main: 'horizontal',\n placement: 'after',\n align: 'end',\n oppositePosition: Position.LeftEnd,\n fallbacks: [Position.LeftEnd, Position.RightStart, Position.LeftStart],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height - element.height,\n left: target.left + target.width + offset,\n }),\n },\n [Position.LeftStart]: {\n main: 'horizontal',\n placement: 'before',\n align: 'start',\n oppositePosition: Position.LeftEnd,\n fallbacks: [Position.LeftEnd, Position.RightStart, Position.RightEnd],\n getCoords: (target, element, offset) => ({\n top: target.top,\n left: target.left - element.width - offset,\n }),\n },\n [Position.LeftEnd]: {\n main: 'horizontal',\n placement: 'before',\n align: 'end',\n oppositePosition: Position.RightEnd,\n fallbacks: [Position.RightEnd, Position.LeftStart, Position.RightStart],\n getCoords: (target, element, offset) => ({\n top: target.top + target.height - element.height,\n left: target.left - element.width - offset,\n }),\n },\n};\n\nexport class PopoverPositioner {\n private offset: number;\n private sideOffset: number;\n private elementRect!: Rect;\n\n constructor(\n private config: PopoverUtilConfig,\n private windowDimensions: { width: number; height: number },\n private scrollWidth = 0,\n ) {\n this.offset = this.config.offset || 5;\n this.sideOffset = this.config.sideOffset || 0;\n }\n\n public calculatePosition(): PositionResult {\n const targetRect = this.getTargetRect();\n this.elementRect = this.getElementRect();\n\n // Get initial position or use bottom as default\n const initialPosition = (this.config.position as Position) || Position.Bottom;\n\n // Find best position\n const bestPosition = this.findBestPosition(initialPosition, targetRect);\n\n // Generate and finalize coordinates\n const coords = POSITION_META[bestPosition].getCoords(targetRect, this.elementRect, this.offset);\n return this.finalizePosition(coords, bestPosition, targetRect);\n }\n\n private getTargetRect(): Rect {\n if (this.config.client) {\n const { x, y, w, h } = this.config.client;\n return { top: y, left: x, width: w, height: h };\n }\n return this.config.target.getBoundingClientRect();\n }\n\n private getElementRect(): Rect {\n const el = this.config.el!;\n return {\n top: 0,\n left: 0,\n width: el.clientWidth,\n height: el.clientHeight,\n };\n }\n\n private findBestPosition(initialPosition: Position, targetRect: Rect): Position {\n // If the initial position works, use it\n if (!this.positionOverflows(initialPosition, targetRect)) {\n return initialPosition;\n }\n\n // Get available space in each direction\n const space = this.getAvailableSpace(targetRect);\n\n // Special handling for simple cases (e.g., choosing between top and bottom based on space)\n const meta = POSITION_META[initialPosition];\n\n // 1. Try the opposite position on the same axis (e.g., bottom for top)\n const opposite = meta.oppositePosition;\n if (!this.positionOverflows(opposite, targetRect)) {\n return opposite;\n }\n\n // 2. Try fallbacks in order\n for (const fallback of meta.fallbacks) {\n if (!this.positionOverflows(fallback, targetRect)) {\n return fallback;\n }\n }\n\n // 3. For vertical positions, prefer the side with more space\n if (meta.main === 'vertical') {\n const preferredVertical = space.top > space.bottom ? Position.Top : Position.Bottom;\n if (!this.positionOverflows(preferredVertical, targetRect)) {\n return preferredVertical;\n }\n }\n\n // 4. For horizontal positions, prefer the side with more space\n if (meta.main === 'horizontal') {\n const preferredHorizontal = space.left > space.right ? Position.Left : Position.Right;\n if (!this.positionOverflows(preferredHorizontal, targetRect)) {\n return preferredHorizontal;\n }\n }\n\n // 5. If all positions have issues, find the one with the best fit\n return this.getPositionWithLeastOverflow(initialPosition, targetRect);\n }\n\n private getAvailableSpace(targetRect: Rect): {\n top: number;\n right: number;\n bottom: number;\n left: number;\n } {\n return {\n top: targetRect.top,\n right: this.windowDimensions.width - (targetRect.left + targetRect.width),\n bottom: this.windowDimensions.height - (targetRect.top + targetRect.height),\n left: targetRect.left,\n };\n }\n\n private positionOverflows(position: Position, targetRect: Rect): boolean {\n const meta = POSITION_META[position];\n const element = this.elementRect;\n const coords = meta.getCoords(targetRect, element, this.offset);\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n\n // Check boundaries and consider sideOffset\n return (\n coords.left < 0 ||\n coords.left + element.width + this.sideOffset > windowWidth ||\n coords.top < 0 ||\n coords.top + element.height + this.sideOffset > windowHeight\n );\n }\n\n private getOverflowAmount(position: Position, targetRect: Rect): number {\n const meta = POSITION_META[position];\n const element = this.elementRect;\n const coords = meta.getCoords(targetRect, element, this.offset);\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n\n let amount = 0;\n\n // Calculate overflow for each edge\n if (coords.left < 0) amount += Math.abs(coords.left);\n if (coords.left + element.width > windowWidth)\n amount += coords.left + element.width - windowWidth;\n if (coords.top < 0) amount += Math.abs(coords.top);\n if (coords.top + element.height > windowHeight)\n amount += coords.top + element.height - windowHeight;\n\n return amount;\n }\n\n private getPositionWithLeastOverflow(initialPosition: Position, targetRect: Rect): Position {\n const positionsToCheck = [initialPosition, ...POSITION_META[initialPosition].fallbacks];\n\n let bestPosition = initialPosition;\n let leastOverflow = this.getOverflowAmount(initialPosition, targetRect);\n\n for (const position of positionsToCheck) {\n const overflow = this.getOverflowAmount(position, targetRect);\n if (overflow < leastOverflow) {\n leastOverflow = overflow;\n bestPosition = position;\n }\n }\n\n return bestPosition;\n }\n\n private finalizePosition(\n coords: { top: number; left: number },\n position: Position,\n targetRect: Rect,\n ): PositionResult {\n const { top, left } = coords;\n const element = this.elementRect;\n const { width: windowWidth, height: windowHeight } = this.windowDimensions;\n const meta = POSITION_META[position];\n\n // Calculate max dimensions\n let maxHeight: number | undefined;\n let maxWidth: number | undefined;\n\n // Set maxHeight if needed\n if (top - this.sideOffset < 0) {\n maxHeight = element.height + top - this.sideOffset;\n } else if (top + element.height + this.sideOffset > windowHeight) {\n maxHeight = element.height - (top + element.height + this.sideOffset - windowHeight);\n }\n\n // Set maxWidth if needed\n if (left + element.width + this.sideOffset > windowWidth) {\n maxWidth = windowWidth - left - this.sideOffset;\n }\n\n // Add sideOffset to maxHeight and maxWidth because the sideOffset is used for the maxHeight and maxWidth\n const h = maxHeight ? maxHeight + this.sideOffset : element.height;\n const w = maxWidth ? maxWidth + this.sideOffset : element.width;\n\n // Calculate adjusted coordinates\n let adjustedTop: number | undefined = Math.max(0, Math.min(top, windowHeight - h));\n let adjustedLeft = Math.max(0, Math.min(left, windowWidth - w));\n\n // Calculate bottom and right (for RTL support)\n let bottom: number | undefined;\n let right: number | undefined;\n\n // Set bottom if appropriate\n if (meta.main === 'vertical' && meta.placement === 'before') {\n bottom = windowHeight - (adjustedTop + h);\n adjustedTop = undefined;\n }\n\n // Set right if appropriate\n if (adjustedLeft + w > windowWidth) {\n adjustedLeft = 0;\n right = 0;\n } else if (\n meta.align === 'end' ||\n (meta.main === 'horizontal' && meta.placement === 'before')\n ) {\n right = windowWidth - (adjustedLeft + w) - this.scrollWidth;\n }\n\n return {\n top: adjustedTop,\n left: right !== undefined ? undefined : adjustedLeft,\n bottom,\n right,\n position,\n maxHeight: maxHeight && maxHeight > 0 ? maxHeight : undefined,\n maxWidth: maxWidth && maxWidth > 0 ? maxWidth : undefined,\n };\n }\n}\n\n// Main function to use the class\nexport function tooltipPosition(\n config: PopoverUtilConfig,\n windowDimensions = { width: window.innerWidth, height: window.innerHeight },\n scrollWidth = window.innerWidth - document.documentElement.clientWidth,\n): PositionResult {\n const positioner = new PopoverPositioner(config, windowDimensions, scrollWidth);\n return positioner.calculatePosition();\n}\n","import {\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport { PopoverPosition } from './popover.service';\n\nexport class PopoverArrowTracker {\n top? = 0;\n left? = 0;\n right? = 0;\n bottom? = 0;\n target?: HTMLElement;\n position?: PopoverPosition;\n}\n\nexport const POPOVER_ARROW_TRACKER = new InjectionToken<{\n values: WritableSignal<PopoverArrowTracker>;\n}>('popoverArrowTracker');\n\nexport function providePopoverArrowTracker() {\n return {\n provide: POPOVER_ARROW_TRACKER,\n useFactory: () => ({ values: signal<PopoverArrowTracker>(new PopoverArrowTracker()) }),\n };\n}\n\n@Component({\n selector: '[ngbPopoverArrow]',\n template: `\n <ng-content />\n @if (anchor()) {\n <style>\n :host {\n --action-angle: 180deg;\n --action-left: 50%;\n --action-top: -1rem;\n --action-color: var(--color-background);\n }\n :host::before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-top: 0.5rem solid var(--action-color);\n border-left: 0.45rem solid transparent;\n border-right: 0.45rem solid transparent;\n top: var(--action-top);\n left: var(--action-left);\n transform: translateX(-50%) rotate(var(--action-angle, 180deg));\n /* Add shadow to match the container shadow */\n /* filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n z-index: -1; */\n }\n </style>\n }\n `,\n host: {\n '[style]': 'styles()',\n },\n})\nexport class NgbPopoverArrow {\n readonly arrowTracker = inject(POPOVER_ARROW_TRACKER);\n readonly anchor = input(false);\n readonly el = inject(ElementRef<HTMLElement>);\n readonly styles = computed(() => {\n const { target, position } = this.arrowTracker.values();\n if (target && position) {\n return this.updateAnchorPosition(position, target, this.el.nativeElement);\n }\n return {};\n });\n\n private updateAnchorPosition(position: PopoverPosition, target: HTMLElement, el: HTMLElement) {\n const { height, width, top } = el.getBoundingClientRect();\n const { height: tHeight, width: tWidth, top: tTop } = target.getBoundingClientRect();\n let deg = '0deg';\n let anchorTop = '50%';\n let anchorLeft = '50%';\n const anchorWidth = 8;\n\n const thHeight = tHeight / 2 - anchorWidth / 2;\n const thWidth = tWidth / 2;\n\n switch (position) {\n case 'top':\n case 'tl':\n case 'tr':\n anchorTop = '100%';\n break;\n case 'left':\n deg = '270deg';\n anchorLeft = `calc(100% + ${anchorWidth / 2}px)`;\n anchorTop =\n tHeight > height\n ? `calc(50% - ${anchorWidth / 2}px)`\n : `calc(${thHeight + (tTop - top)}px)`;\n break;\n case 'right':\n deg = '90deg';\n anchorLeft = `-${anchorWidth / 2}px`;\n anchorTop =\n tHeight > height\n ? `calc(50% - ${anchorWidth / 2}px)`\n : `calc(${thHeight + (tTop - top)}px)`;\n break;\n case 'bottom':\n case 'bl':\n case 'br':\n deg = '180deg';\n anchorTop = '-0.5rem';\n anchorLeft = thWidth > width ? '50%' : `calc(100% - ${thWidth}px)`;\n break;\n }\n\n return { '--action-angle': deg, '--action-left': anchorLeft, '--action-top': anchorTop };\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n Directive,\n ElementRef,\n ViewContainerRef,\n effect,\n inject,\n input,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, disposals } from '@ngbase/adk/utils';\nimport { EMPTY, Observable, fromEvent, map, startWith, switchMap } from 'rxjs';\nimport { PopoverOptions, PopoverPosition } from './popover.service';\nimport { tooltipPosition } from './utils';\nimport { POPOVER_ARROW_TRACKER, providePopoverArrowTracker } from './popover-arrow.ng';\n\n@Directive({\n selector: '[ngbPopoverBackdrop]',\n hostDirectives: [FocusTrap],\n host: {\n '[style.clipPath]': 'popover.options().clipPath?.()',\n '[class]': 'popover.options().backdropClassName',\n '(click)': '!popover.options().disableClose && popover.close()',\n },\n})\nexport class NgbPopoverBackdrop {\n readonly popover = inject(NgbPopover);\n readonly focusTrap = inject(FocusTrap);\n\n constructor() {\n this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true);\n }\n}\n\n@Directive({\n selector: '[ngbPopoverMain]',\n host: {\n '[class]': 'popover.options().className',\n },\n})\nexport class NgbPopoverMain {\n readonly popover = inject(NgbPopover);\n}\n\n@Component({\n selector: 'ngb-popover',\n template: '',\n host: {\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@slideInOutAnimation']),\n trigger('slideInOutAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class NgbPopover extends BaseDialog {\n readonly arrowTracker = inject(POPOVER_ARROW_TRACKER);\n private readonly disposals = disposals();\n\n readonly myDialog = viewChild.required('myDialog', { read: ViewContainerRef });\n readonly container = viewChild.required<NgbPopoverMain, ElementRef<HTMLElement>>(NgbPopoverMain, {\n read: ElementRef,\n });\n readonly backdropElement = viewChild<NgbPopoverBackdrop, ElementRef<HTMLElement>>(\n NgbPopoverBackdrop,\n { read: ElementRef },\n );\n\n readonly options = signal<PopoverOptions>({} as PopoverOptions);\n private lastPosition: PopoverPosition = 'top';\n readonly scrolled = signal(0);\n\n readonly events: Observable<{ type: string; value: any }> = this._afterViewSource.pipe(\n switchMap(e => {\n const el = this.container()!.nativeElement;\n const mouseenter = fromEvent(el, 'mouseenter');\n const mouseleave = fromEvent(el, 'mouseleave');\n const event = mouseenter.pipe(\n switchMap(e =>\n mouseleave.pipe(\n map(x => ({ type: 'mouseleave', value: x })),\n startWith({ type: 'mouseenter', value: e }),\n ),\n ),\n );\n return e ? event : EMPTY;\n }),\n );\n\n constructor() {\n super();\n\n const dialog = effect(() => {\n this._afterViewSource.next(this.myDialog()!);\n dialog.destroy();\n });\n\n effect(cleanup => {\n const el = this.container()!.nativeElement;\n const options = this.options();\n const target = this.getTarget();\n if (options.anchor) {\n options.offset = 16;\n }\n this.lastPosition = options.position || 'bottom';\n // this.schedulePopoverUpdate(target, el);\n if (options.smoothScroll) {\n // target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 50')),\n // debounceTime(50),\n // take(1),\n // )\n // .subscribe(() => {});\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 10')),\n // debounceTime(10),\n // take(1),\n // )\n // .subscribe(() => {\n // this.scrolled.update((x) => x + 1);\n // this.schedulePopoverUpdate(target, el);\n // });\n scrollToElement(target).then(() => {\n this.scrolled.update(x => x + 1);\n this.schedulePopoverUpdate(target, el, options);\n });\n } else {\n this.schedulePopoverUpdate(target, el, options);\n }\n\n // TODO: remove this once we have multi cleanup support\n if (!options.backdrop) {\n window.addEventListener('scroll', this.scheduleUpdateDimension);\n cleanup(() => window.removeEventListener('scroll', this.scheduleUpdateDimension));\n }\n\n // observe the target element position change\n const resizeObserver = new ResizeObserver(() => {\n // console.log('resizeObserver');\n this.schedulePopoverUpdate(target, el, options);\n });\n resizeObserver.observe(target);\n cleanup(() => resizeObserver.disconnect());\n });\n }\n\n override getTarget(): HTMLElement {\n return this.target() || this.options().target;\n }\n\n private scheduleUpdateDimension = () => {\n this.disposals.afterNextRender(() => this.updateDimension());\n };\n\n private schedulePopoverUpdate(target: HTMLElement, el: HTMLElement, options: PopoverOptions) {\n // this.options().target = target;\n // if (options.backdrop) {\n // this.onOpen();\n // }\n if (options.width === 'target') {\n // update the width of the container to be the same as the target\n el.style.width = `${target.offsetWidth}px`;\n } else if (options.width === 'free') {\n el.style.minWidth = `${target.offsetWidth}px`;\n } else if (options.width) {\n el.style.width = options.width;\n }\n if (options.height) {\n el.style.height = options.height;\n }\n if (options.maxHeight) {\n el.style.maxHeight = options.maxHeight;\n }\n\n this.scheduleUpdateDimension();\n }\n\n private updateDimension() {\n const el = this.container()!.nativeElement;\n const target = this.getTarget();\n if (!target) {\n return;\n }\n const { top, bottom, left, right, position, maxHeight, maxWidth } = tooltipPosition({\n target,\n el,\n position: this.lastPosition,\n client: this.options().client,\n offset: this.options().offset,\n sideOffset: this.options().sideOffset,\n });\n // change the anchor position\n // if (this.options().anchor) {\n // this.updateAnchorPosition(position, el, target);\n // }\n this.lastPosition = position;\n // we need to update the values directly instead of signal to avoid too many CD checks\n if (bottom !== undefined) {\n el.style.bottom = `${bottom}px`;\n el.style.top = '';\n } else {\n el.style.top = `${top}px`;\n el.style.bottom = '';\n }\n if (right != undefined) {\n el.style.right = `${right}px`;\n el.style.left = '';\n } else {\n el.style.left = `${left}px`;\n el.style.right = '';\n }\n\n if (maxHeight) {\n el.style.maxHeight = `${maxHeight}px`;\n }\n if (maxWidth) {\n el.style.maxWidth = `${maxWidth}px`;\n }\n this.arrowTracker.values.set({ top, bottom, left, right, target, position });\n }\n\n override setOptions(options: PopoverOptions): void {\n // console.log('setOptions', options);\n this.options.set(options);\n }\n}\n\nfunction scrollToElement(target: HTMLElement) {\n return new Promise(resolve => {\n let lastPos: number;\n let currentPos = null;\n let samePosCount = 0;\n\n const checkIfScrollComplete = () => {\n currentPos = window.pageYOffset || document.documentElement.scrollTop;\n\n if (lastPos !== null && currentPos === lastPos) {\n samePosCount++;\n if (samePosCount > 2) {\n resolve(true);\n return;\n }\n } else {\n samePosCount = 0;\n lastPos = currentPos;\n }\n\n requestAnimationFrame(checkIfScrollComplete);\n };\n // scroll only if the target is not in the view\n // window.scrollTo({\n // top: target.offsetTop - 50,\n // behavior: 'smooth',\n // });\n target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n requestAnimationFrame(checkIfScrollComplete);\n });\n}\n\n@Directive({ selector: '[ngbPopoverClose]' })\nexport class NgbPopoverClose extends NgbPortalClose {\n readonly ngbPopoverClose = input();\n\n override close() {\n super.close(this.ngbPopoverClose());\n }\n}\n\nexport function aliasPopover(popover: typeof NgbPopover) {\n return [{ provide: NgbPopover, useExisting: popover }, providePopoverArrowTracker()];\n}\n","import { inject, InjectionToken, Signal, Type, WritableSignal } from '@angular/core';\nimport { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';\nimport { Observable } from 'rxjs';\nimport { basePopoverPortal } from './base-popover.service';\nimport { NgbPopover } from './popover';\nimport { OverlayPosition, PopoverUtilConfig } from './utils';\n\nexport type PopoverPosition = OverlayPosition;\n\nexport class PopoverOptions extends DialogOptions implements PopoverUtilConfig {\n target!: HTMLElement;\n el?: HTMLElement;\n position?: PopoverPosition;\n offset?: number;\n sideOffset?: number;\n client?: { x: number; y: number; w: number; h: number } | null;\n className?: string;\n backdropClassName?: string;\n clipPath?: Signal<string>;\n anchor?: boolean;\n smoothScroll?: boolean;\n}\n\nexport interface PopoverOpen<T> {\n diaRef: DialogRef<any>;\n events: Observable<{ type: string; value: any }>;\n parent: NgbPopover;\n replace: ((component: DialogInput<T>) => void) | undefined;\n childSignal: WritableSignal<any>;\n}\n\nconst POPOVER_TOKEN = new InjectionToken<Type<NgbPopover>>('POPOVER_TOKEN');\n\nexport type PopoverType = ReturnType<typeof ngbPopoverPortal>;\n\nexport function ngbPopoverPortal() {\n const popover = inject(POPOVER_TOKEN, { optional: true }) ?? NgbPopover;\n const base = basePopoverPortal(popover);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions): PopoverOpen<T> {\n return base.open(component, options);\n }\n\n return { open, closeAll: base.closeAll };\n}\n\nexport const registerNgbPopover = (popover: typeof NgbPopover) => {\n return { provide: POPOVER_TOKEN, useValue: popover };\n};\n","import { Directive, ElementRef, TemplateRef, inject, input } from '@angular/core';\nimport { PopoverPosition, ngbPopoverPortal } from './popover.service';\n\n@Directive({\n selector: '[ngbPopoverTrigger]',\n exportAs: 'ngbPopoverTrigger',\n host: {\n '(click)': 'open()',\n },\n})\nexport class NgbPopoverTrigger {\n readonly popoverPortal = ngbPopoverPortal();\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly ngbPopoverTrigger = input.required<TemplateRef<any>>();\n readonly ngbPopoverTriggerData = input();\n readonly options = input<{ position?: PopoverPosition; anchor?: boolean }>();\n\n private closeFn: VoidFunction = () => {};\n\n open() {\n const options = this.options();\n const { diaRef } = this.popoverPortal.open(this.ngbPopoverTrigger(), {\n target: this.el.nativeElement,\n anchor: options?.anchor,\n position: options?.position || 'top',\n data: this.ngbPopoverTriggerData(),\n });\n this.closeFn = diaRef.close;\n }\n\n close() {\n this.closeFn();\n }\n}\n","/*\n * Public API Surface of popover\n */\n\nexport * from './popover.service';\nexport * from './popover';\nexport * from './popover-trigger';\nexport * from './base-popover.service';\nexport * from './popover-arrow.ng';\nexport { tooltipPosition } from './utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}