@ngbase/adk 0.1.11 → 0.1.12

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 (378) 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 -109
  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 +206 -31
  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 +95 -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 +51 -51
  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/autocomplete/autocomplete.ts.template +1 -0
  145. package/schematics/components/files/avatar/avatar.ts.template +12 -4
  146. package/schematics/components/files/button/button.ts.template +32 -13
  147. package/schematics/components/files/command/command.ts.template +10 -9
  148. package/schematics/components/files/datepicker/datepicker-llm.md.template +15 -2
  149. package/schematics/components/files/dialog/dialog.ts.template +9 -2
  150. package/schematics/components/files/drawer/drawer.ts.template +1 -1
  151. package/schematics/components/files/form-field/form-field.ts.template +10 -1
  152. package/schematics/components/files/form-field/input-style.directive.ts.template +1 -1
  153. package/schematics/components/files/icon/icon-llm.md.template +0 -1
  154. package/schematics/components/files/inline-edit/inline-edit.ts.template +2 -2
  155. package/schematics/components/files/otp/otp.ts.template +1 -1
  156. package/schematics/components/files/picasa/picasa-base.component.ts.template +1 -2
  157. package/schematics/components/files/picasa/picasa.component.ts.template +4 -4
  158. package/schematics/components/files/select/select.ts.template +5 -18
  159. package/schematics/components/files/sheet/sheet.ts.template +1 -1
  160. package/schematics/components/files/sidenav/sidenav-llm.md.template +0 -1
  161. package/schematics/components/files/spinner/spinner.ts.template +1 -29
  162. package/scroll-area/index.d.ts +60 -5
  163. package/select/index.d.ts +177 -5
  164. package/selectable/index.d.ts +32 -5
  165. package/sheet/index.d.ts +44 -5
  166. package/sidenav/index.d.ts +74 -5
  167. package/slider/index.d.ts +79 -5
  168. package/sonner/index.d.ts +50 -5
  169. package/stepper/index.d.ts +54 -5
  170. package/switch/index.d.ts +47 -5
  171. package/table/index.d.ts +143 -5
  172. package/tabs/index.d.ts +85 -5
  173. package/test/index.d.ts +81 -5
  174. package/toggle/index.d.ts +16 -5
  175. package/toggle-group/index.d.ts +39 -5
  176. package/tooltip/index.d.ts +60 -5
  177. package/tour/index.d.ts +70 -5
  178. package/translate/index.d.ts +58 -5
  179. package/tree/index.d.ts +95 -5
  180. package/utils/index.d.ts +82 -5
  181. package/virtualizer/index.d.ts +45 -5
  182. package/a11y/accessibility-group.d.ts +0 -46
  183. package/a11y/accessibility-item.d.ts +0 -49
  184. package/a11y/accessibility.service.d.ts +0 -17
  185. package/a11y/autofocus.d.ts +0 -18
  186. package/a11y/focus-trap.d.ts +0 -15
  187. package/a11y/public-api.d.ts +0 -4
  188. package/accordion/accordion-content.d.ts +0 -8
  189. package/accordion/accordion-group.d.ts +0 -10
  190. package/accordion/accordion-header.d.ts +0 -7
  191. package/accordion/accordion-item.d.ts +0 -16
  192. package/accordion/public-api.d.ts +0 -4
  193. package/autocomplete/autocomplete-input.d.ts +0 -19
  194. package/autocomplete/autocomplete.d.ts +0 -34
  195. package/autocomplete/public-api.d.ts +0 -2
  196. package/avatar/avatar.d.ts +0 -22
  197. package/avatar/public-api.d.ts +0 -1
  198. package/bidi/direction.service.d.ts +0 -14
  199. package/bidi/public-api.d.ts +0 -1
  200. package/breadcrumb/breadcrumb-link.d.ts +0 -7
  201. package/breadcrumb/breadcrumb-separator.d.ts +0 -6
  202. package/breadcrumb/breadcrumb.d.ts +0 -12
  203. package/breadcrumb/breadcrumbs.d.ts +0 -9
  204. package/breadcrumb/public-api.d.ts +0 -4
  205. package/cache/cache-config.d.ts +0 -22
  206. package/cache/cache.d.ts +0 -17
  207. package/cache/cache.interecptor.d.ts +0 -2
  208. package/cache/public-api.d.ts +0 -3
  209. package/carousel/carousel-item.d.ts +0 -7
  210. package/carousel/carousel-next.d.ts +0 -8
  211. package/carousel/carousel.d.ts +0 -61
  212. package/carousel/public-api.d.ts +0 -3
  213. package/checkbox/checkbox.d.ts +0 -30
  214. package/checkbox/public-api.d.ts +0 -1
  215. package/chip/chip-group.d.ts +0 -7
  216. package/chip/chip.d.ts +0 -19
  217. package/chip/public-api.d.ts +0 -2
  218. package/clipboard/clipboard.d.ts +0 -7
  219. package/clipboard/public-api.d.ts +0 -1
  220. package/collections/SelectionModel.d.ts +0 -19
  221. package/collections/public-api.d.ts +0 -1
  222. package/color-picker/color-input.d.ts +0 -16
  223. package/color-picker/color-picker-trigger.d.ts +0 -30
  224. package/color-picker/color-picker.d.ts +0 -72
  225. package/color-picker/public-api.d.ts +0 -3
  226. package/color-picker/utils.d.ts +0 -21
  227. package/cookies/cookie.service.d.ts +0 -32
  228. package/cookies/public-api.d.ts +0 -1
  229. package/datepicker/calendar.d.ts +0 -121
  230. package/datepicker/datepicker-trigger.d.ts +0 -66
  231. package/datepicker/datepicker.d.ts +0 -55
  232. package/datepicker/native-date-adapter.d.ts +0 -33
  233. package/datepicker/public-api.d.ts +0 -5
  234. package/datepicker/time.d.ts +0 -42
  235. package/dialog/dialog.animation.d.ts +0 -3
  236. package/dialog/dialog.d.ts +0 -49
  237. package/dialog/dialog.service.d.ts +0 -7
  238. package/dialog/public-api.d.ts +0 -3
  239. package/drag/drag-drop.d.ts +0 -37
  240. package/drag/drag-move.d.ts +0 -17
  241. package/drag/drag.d.ts +0 -52
  242. package/drag/public-api.d.ts +0 -3
  243. package/form-field/auto-height.d.ts +0 -9
  244. package/form-field/error.d.ts +0 -18
  245. package/form-field/form-field.d.ts +0 -14
  246. package/form-field/input.d.ts +0 -16
  247. package/form-field/label.d.ts +0 -7
  248. package/form-field/public-api.d.ts +0 -5
  249. package/hover-card/hover-card.d.ts +0 -18
  250. package/hover-card/public-api.d.ts +0 -1
  251. package/icon/icon.d.ts +0 -12
  252. package/icon/icon.service.d.ts +0 -12
  253. package/icon/public-api.d.ts +0 -2
  254. package/inline-edit/inline-edit.d.ts +0 -47
  255. package/inline-edit/public-api.d.ts +0 -1
  256. package/jwt/jwt.service.d.ts +0 -27
  257. package/jwt/public-api.d.ts +0 -1
  258. package/keys/keys.service.d.ts +0 -13
  259. package/keys/public-api.d.ts +0 -2
  260. package/keys/shortcuts.service.d.ts +0 -38
  261. package/layout/layout.d.ts +0 -16
  262. package/layout/public-api.d.ts +0 -1
  263. package/list/list.d.ts +0 -20
  264. package/list/list.directive.d.ts +0 -12
  265. package/list/public-api.d.ts +0 -2
  266. package/mask/mask-pipe.d.ts +0 -7
  267. package/mask/mask.d.ts +0 -24
  268. package/mask/public-api.d.ts +0 -2
  269. package/menu/context-menu.d.ts +0 -21
  270. package/menu/mention.d.ts +0 -18
  271. package/menu/menu-trigger.d.ts +0 -34
  272. package/menu/menu.d.ts +0 -58
  273. package/menu/navigation-menu.d.ts +0 -19
  274. package/menu/public-api.d.ts +0 -5
  275. package/network/network.interceptor.d.ts +0 -6
  276. package/network/network.service.d.ts +0 -18
  277. package/network/public-api.d.ts +0 -2
  278. package/otp/otp.d.ts +0 -48
  279. package/otp/public-api.d.ts +0 -1
  280. package/pagination/pagination.d.ts +0 -32
  281. package/pagination/public-api.d.ts +0 -1
  282. package/popover/base-popover.service.d.ts +0 -16
  283. package/popover/popover-arrow.ng.d.ts +0 -34
  284. package/popover/popover-trigger.d.ts +0 -21
  285. package/popover/popover.d.ts +0 -60
  286. package/popover/popover.service.d.ts +0 -43
  287. package/popover/public-api.d.ts +0 -6
  288. package/popover/utils.d.ts +0 -69
  289. package/portal/dialog-ref.d.ts +0 -70
  290. package/portal/portal-base.service.d.ts +0 -19
  291. package/portal/portal-close.directive.d.ts +0 -9
  292. package/portal/portal.component.d.ts +0 -7
  293. package/portal/portal.service.d.ts +0 -16
  294. package/portal/public-api.d.ts +0 -5
  295. package/progress/progress.d.ts +0 -13
  296. package/progress/public-api.d.ts +0 -1
  297. package/public-api.d.ts +0 -2
  298. package/radio/public-api.d.ts +0 -2
  299. package/radio/radio-group.d.ts +0 -19
  300. package/radio/radio.d.ts +0 -26
  301. package/resizable/public-api.d.ts +0 -2
  302. package/resizable/resizable-group.d.ts +0 -22
  303. package/resizable/resizable.d.ts +0 -50
  304. package/scroll-area/public-api.d.ts +0 -1
  305. package/scroll-area/scroll-area.d.ts +0 -56
  306. package/select/list-selection.d.ts +0 -7
  307. package/select/option-group.d.ts +0 -7
  308. package/select/option.d.ts +0 -25
  309. package/select/public-api.d.ts +0 -6
  310. package/select/select-base.d.ts +0 -66
  311. package/select/select-input.d.ts +0 -23
  312. package/select/select.d.ts +0 -53
  313. package/selectable/public-api.d.ts +0 -2
  314. package/selectable/selectable-item.d.ts +0 -12
  315. package/selectable/selectable.d.ts +0 -19
  316. package/sheet/public-api.d.ts +0 -2
  317. package/sheet/sheet.d.ts +0 -26
  318. package/sheet/sheet.service.d.ts +0 -13
  319. package/sidenav/public-api.d.ts +0 -3
  320. package/sidenav/sidenav-header.d.ts +0 -31
  321. package/sidenav/sidenav.d.ts +0 -23
  322. package/sidenav/sidenav.service.d.ts +0 -18
  323. package/slider/public-api.d.ts +0 -1
  324. package/slider/slider.d.ts +0 -76
  325. package/sonner/public-api.d.ts +0 -2
  326. package/sonner/sonner.d.ts +0 -25
  327. package/sonner/sonner.service.d.ts +0 -21
  328. package/stepper/animation.d.ts +0 -1
  329. package/stepper/public-api.d.ts +0 -3
  330. package/stepper/step.d.ts +0 -24
  331. package/stepper/stepper.d.ts +0 -26
  332. package/switch/public-api.d.ts +0 -1
  333. package/switch/switch.d.ts +0 -44
  334. package/table/body-cell.d.ts +0 -11
  335. package/table/body-row.d.ts +0 -25
  336. package/table/column.d.ts +0 -10
  337. package/table/head-cell.d.ts +0 -12
  338. package/table/head-row.d.ts +0 -24
  339. package/table/public-api.d.ts +0 -8
  340. package/table/sort.d.ts +0 -40
  341. package/table/table.d.ts +0 -38
  342. package/tabs/public-api.d.ts +0 -2
  343. package/tabs/tab-group.d.ts +0 -52
  344. package/tabs/tab.d.ts +0 -31
  345. package/test/public-api.d.ts +0 -1
  346. package/test/utils.d.ts +0 -78
  347. package/toggle/public-api.d.ts +0 -1
  348. package/toggle/toggle.d.ts +0 -13
  349. package/toggle-group/public-api.d.ts +0 -2
  350. package/toggle-group/toggle-group.d.ts +0 -25
  351. package/toggle-group/toggle-item.d.ts +0 -14
  352. package/tooltip/public-api.d.ts +0 -2
  353. package/tooltip/tooltip.d.ts +0 -24
  354. package/tooltip/tooltip.directive.d.ts +0 -34
  355. package/tooltip/tooltip.service.d.ts +0 -28
  356. package/tour/animation.d.ts +0 -2
  357. package/tour/public-api.d.ts +0 -5
  358. package/tour/tour-base.d.ts +0 -21
  359. package/tour/tour-step.d.ts +0 -11
  360. package/tour/tour.d.ts +0 -9
  361. package/tour/tour.service.d.ts +0 -29
  362. package/translate/config.d.ts +0 -16
  363. package/translate/public-api.d.ts +0 -3
  364. package/translate/translate.d.ts +0 -11
  365. package/translate/translate.service.d.ts +0 -31
  366. package/tree/public-api.d.ts +0 -3
  367. package/tree/tree-node.d.ts +0 -28
  368. package/tree/tree-toggle.d.ts +0 -16
  369. package/tree/tree.d.ts +0 -55
  370. package/utils/animation.d.ts +0 -3
  371. package/utils/disposals.d.ts +0 -7
  372. package/utils/number-only.d.ts +0 -22
  373. package/utils/public-api.d.ts +0 -6
  374. package/utils/range.pipe.d.ts +0 -7
  375. package/utils/ssr.d.ts +0 -2
  376. package/utils/utils.d.ts +0 -28
  377. package/virtualizer/public-api.d.ts +0 -1
  378. package/virtualizer/virtualizer.d.ts +0 -42
@@ -22,16 +22,16 @@ class MenuService {
22
22
  this.close();
23
23
  this.currentRef = ref;
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: MenuService, providedIn: 'root' }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MenuService, providedIn: 'root' }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: MenuService, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MenuService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{ providedIn: 'root' }]
31
31
  }] });
32
32
  class NgbContextMenu {
33
33
  constructor() {
34
- this.ngbContextMenu = input.required();
34
+ this.ngbContextMenu = input.required(...(ngDevMode ? [{ debugName: "ngbContextMenu" }] : []));
35
35
  this.menuService = inject(MenuService);
36
36
  this.ctxOpen = output();
37
37
  this.ctxClose = output();
@@ -59,10 +59,10 @@ class NgbContextMenu {
59
59
  });
60
60
  this.listeners.on();
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbContextMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
63
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbContextMenu, isStandalone: true, selector: "[ngbContextMenu]", inputs: { ngbContextMenu: { classPropertyName: "ngbContextMenu", publicName: "ngbContextMenu", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { ctxOpen: "ctxOpen", ctxClose: "ctxClose" }, host: { listeners: { "contextmenu": "open($event)" } }, ngImport: i0 }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbContextMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
63
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbContextMenu, isStandalone: true, selector: "[ngbContextMenu]", inputs: { ngbContextMenu: { classPropertyName: "ngbContextMenu", publicName: "ngbContextMenu", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { ctxOpen: "ctxOpen", ctxClose: "ctxClose" }, host: { listeners: { "contextmenu": "open($event)" } }, ngImport: i0 }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbContextMenu, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbContextMenu, decorators: [{
66
66
  type: Directive,
67
67
  args: [{
68
68
  selector: '[ngbContextMenu]',
@@ -75,9 +75,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
75
75
  class NgbMentionTrigger {
76
76
  constructor() {
77
77
  this.el = inject(ElementRef);
78
- this.ngbMentionTrigger = input.required();
79
- this.options = input();
80
- this.key = input.required();
78
+ this.ngbMentionTrigger = input.required(...(ngDevMode ? [{ debugName: "ngbMentionTrigger" }] : []));
79
+ this.options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
80
+ this.key = input.required(...(ngDevMode ? [{ debugName: "key" }] : []));
81
81
  this.search = output();
82
82
  }
83
83
  open() {
@@ -160,10 +160,10 @@ class NgbMentionTrigger {
160
160
  w: rect.width,
161
161
  };
162
162
  }
163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMentionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
164
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbMentionTrigger, isStandalone: true, selector: "[ngbMentionTrigger]", inputs: { ngbMentionTrigger: { classPropertyName: "ngbMentionTrigger", publicName: "ngbMentionTrigger", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { search: "search" }, host: { listeners: { "input": "open()" } }, ngImport: i0 }); }
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMentionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
164
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbMentionTrigger, isStandalone: true, selector: "[ngbMentionTrigger]", inputs: { ngbMentionTrigger: { classPropertyName: "ngbMentionTrigger", publicName: "ngbMentionTrigger", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { search: "search" }, host: { listeners: { "input": "open()" } }, ngImport: i0 }); }
165
165
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMentionTrigger, decorators: [{
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMentionTrigger, decorators: [{
167
167
  type: Directive,
168
168
  args: [{
169
169
  selector: '[ngbMentionTrigger]',
@@ -184,10 +184,10 @@ class NgpMenuGroup {
184
184
  this.allyGroup._isPopup.set(true);
185
185
  });
186
186
  }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgpMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
188
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgpMenuGroup, isStandalone: true, selector: "[ngbMenuGroup]", host: { listeners: { "click": "menu.noAutoClose() ? null : menu.close()" } }, hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgpMenuGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
188
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgpMenuGroup, isStandalone: true, selector: "[ngbMenuGroup]", host: { listeners: { "click": "menu.noAutoClose() ? null : menu.close()" } }, hostDirectives: [{ directive: i1.AccessibleGroup }], ngImport: i0 }); }
189
189
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgpMenuGroup, decorators: [{
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgpMenuGroup, decorators: [{
191
191
  type: Directive,
192
192
  args: [{
193
193
  selector: '[ngbMenuGroup]',
@@ -198,10 +198,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
198
198
  }]
199
199
  }], ctorParameters: () => [] });
200
200
  class NgpMenuContent {
201
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgpMenuContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
202
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgpMenuContent, isStandalone: true, selector: "ng-template[ngbMenuContent]", ngImport: i0 }); }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgpMenuContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgpMenuContent, isStandalone: true, selector: "ng-template[ngbMenuContent]", ngImport: i0 }); }
203
203
  }
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgpMenuContent, decorators: [{
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgpMenuContent, decorators: [{
205
205
  type: Directive,
206
206
  args: [{
207
207
  selector: 'ng-template[ngbMenuContent]',
@@ -211,17 +211,17 @@ class NgbMenu {
211
211
  constructor() {
212
212
  this.dir = injectDirectionality();
213
213
  this.popover = ngbPopoverPortal();
214
- this.menuEl = viewChild(NgpMenuGroup, {
215
- read: ElementRef,
216
- });
214
+ this.menuEl = viewChild(NgpMenuGroup, ...(ngDevMode ? [{ debugName: "menuEl", read: ElementRef }] : [{
215
+ read: ElementRef,
216
+ }]));
217
217
  this.container = viewChild.required('container', { read: TemplateRef });
218
- this.content = contentChildren(NgpMenuContent, { read: TemplateRef, descendants: true });
219
- this.options = contentChildren(NgbOption, { descendants: true });
220
- this.lists = contentChildren(NgbList, { descendants: true });
218
+ this.content = contentChildren(NgpMenuContent, ...(ngDevMode ? [{ debugName: "content", read: TemplateRef, descendants: true }] : [{ read: TemplateRef, descendants: true }]));
219
+ this.options = contentChildren(NgbOption, ...(ngDevMode ? [{ debugName: "options", descendants: true }] : [{ descendants: true }]));
220
+ this.lists = contentChildren(NgbList, ...(ngDevMode ? [{ debugName: "lists", descendants: true }] : [{ descendants: true }]));
221
221
  this.manager = new Keys();
222
222
  this.selected = output();
223
223
  this.ayId = uniqueId();
224
- this.noAutoClose = input(false);
224
+ this.noAutoClose = input(false, ...(ngDevMode ? [{ debugName: "noAutoClose" }] : []));
225
225
  this.events = new Subject();
226
226
  this.activeOption = new BehaviorSubject(null);
227
227
  this.isOpen = false;
@@ -291,10 +291,10 @@ class NgbMenu {
291
291
  ngOnDestroy() {
292
292
  this.close();
293
293
  }
294
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
295
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbMenu, isStandalone: true, selector: "[ngbMenu]", inputs: { noAutoClose: { classPropertyName: "noAutoClose", publicName: "noAutoClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, queries: [{ propertyName: "content", predicate: NgpMenuContent, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "options", predicate: NgbOption, descendants: true, isSignal: true }, { propertyName: "lists", predicate: NgbList, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuEl", first: true, predicate: NgpMenuGroup, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["ngbMenu"], ngImport: i0 }); }
294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
295
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbMenu, isStandalone: true, selector: "[ngbMenu]", inputs: { noAutoClose: { classPropertyName: "noAutoClose", publicName: "noAutoClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, queries: [{ propertyName: "content", predicate: NgpMenuContent, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "options", predicate: NgbOption, descendants: true, isSignal: true }, { propertyName: "lists", predicate: NgbList, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuEl", first: true, predicate: NgpMenuGroup, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["ngbMenu"], ngImport: i0 }); }
296
296
  }
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMenu, decorators: [{
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMenu, decorators: [{
298
298
  type: Directive,
299
299
  args: [{
300
300
  selector: '[ngbMenu]',
@@ -310,8 +310,8 @@ class NgbNavigationMenu {
310
310
  constructor() {
311
311
  this.popover = ngbPopoverPortal();
312
312
  this.dir = injectDirectionality();
313
- this.menus = contentChildren(NgbMenuTrigger, { descendants: true });
314
- this.hover = input(false);
313
+ this.menus = contentChildren(NgbMenuTrigger, ...(ngDevMode ? [{ debugName: "menus", descendants: true }] : [{ descendants: true }]));
314
+ this.hover = input(false, ...(ngDevMode ? [{ debugName: "hover" }] : []));
315
315
  this.ayId = uniqueId();
316
316
  this.timerId = 0;
317
317
  this.clicked = false;
@@ -388,10 +388,10 @@ class NgbNavigationMenu {
388
388
  this.close?.();
389
389
  }, 200);
390
390
  }
391
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbNavigationMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
392
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbNavigationMenu, isStandalone: true, selector: "[ngbNavigationMenu]", inputs: { hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "menus", predicate: NgbMenuTrigger, descendants: true, isSignal: true }], ngImport: i0 }); }
391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbNavigationMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
392
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbNavigationMenu, isStandalone: true, selector: "[ngbNavigationMenu]", inputs: { hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "menus", predicate: NgbMenuTrigger, descendants: true, isSignal: true }], ngImport: i0 }); }
393
393
  }
394
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbNavigationMenu, decorators: [{
394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbNavigationMenu, decorators: [{
395
395
  type: Directive,
396
396
  args: [{
397
397
  selector: '[ngbNavigationMenu]',
@@ -404,10 +404,10 @@ class NgbMenuTrigger {
404
404
  this.parent = inject(NgbMenu, { optional: true });
405
405
  this.el = inject(ElementRef);
406
406
  this.a11y = inject(AccessibleItem, { optional: true });
407
- this.ngbMenuTrigger = input.required();
408
- this.ngbMenuTriggerData = input();
409
- this.options = input({});
410
- this._menuOpen = signal(false);
407
+ this.ngbMenuTrigger = input.required(...(ngDevMode ? [{ debugName: "ngbMenuTrigger" }] : []));
408
+ this.ngbMenuTriggerData = input(...(ngDevMode ? [undefined, { debugName: "ngbMenuTriggerData" }] : []));
409
+ this.options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
410
+ this._menuOpen = signal(false, ...(ngDevMode ? [{ debugName: "_menuOpen" }] : []));
411
411
  this.menuOpen = this._menuOpen.asReadonly();
412
412
  this.events = new Subject();
413
413
  this.closeParent = true;
@@ -517,10 +517,10 @@ class NgbMenuTrigger {
517
517
  this._menuOpen.set(false);
518
518
  });
519
519
  }
520
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
521
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbMenuTrigger, isStandalone: true, selector: "[ngbMenuTrigger]", inputs: { ngbMenuTrigger: { classPropertyName: "ngbMenuTrigger", publicName: "ngbMenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbMenuTriggerData: { classPropertyName: "ngbMenuTriggerData", publicName: "ngbMenuTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" }, listeners: { "click": "clickOpen($event)" }, properties: { "attr.aria-expanded": "menuOpen()", "attr.aria-haspopup": "true" } }, exportAs: ["ngbMenuTrigger"], ngImport: i0 }); }
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
521
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbMenuTrigger, isStandalone: true, selector: "[ngbMenuTrigger]", inputs: { ngbMenuTrigger: { classPropertyName: "ngbMenuTrigger", publicName: "ngbMenuTrigger", isSignal: true, isRequired: true, transformFunction: null }, ngbMenuTriggerData: { classPropertyName: "ngbMenuTriggerData", publicName: "ngbMenuTriggerData", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tabindex": "0" }, listeners: { "click": "clickOpen($event)" }, properties: { "attr.aria-expanded": "menuOpen()", "attr.aria-haspopup": "true" } }, exportAs: ["ngbMenuTrigger"], ngImport: i0 }); }
522
522
  }
523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbMenuTrigger, decorators: [{
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbMenuTrigger, decorators: [{
524
524
  type: Directive,
525
525
  args: [{
526
526
  selector: '[ngbMenuTrigger]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-menu.mjs","sources":["../../../projects/adk/menu/context-menu.ts","../../../projects/adk/menu/mention.ts","../../../projects/adk/menu/menu.ts","../../../projects/adk/menu/navigation-menu.ts","../../../projects/adk/menu/menu-trigger.ts","../../../projects/adk/menu/public-api.ts","../../../projects/adk/menu/ngbase-adk-menu.ts"],"sourcesContent":["import { Directive, inject, Injectable, input, output } from '@angular/core';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { documentListener } from '@ngbase/adk/utils';\nimport { NgbMenu } from './menu';\n\n@Injectable({ providedIn: 'root' })\nclass MenuService {\n private currentRef: DialogRef<any> | null = null;\n\n close() {\n this.currentRef?.close();\n this.currentRef = null;\n }\n\n setCurrentRef(ref: DialogRef<any>) {\n this.close();\n this.currentRef = ref;\n }\n}\n\n@Directive({\n selector: '[ngbContextMenu]',\n host: {\n '(contextmenu)': 'open($event)',\n },\n})\nexport class NgbContextMenu {\n readonly ngbContextMenu = input.required<NgbMenu>();\n readonly menuService = inject(MenuService);\n\n readonly ctxOpen = output<boolean>();\n readonly ctxClose = output<boolean>();\n\n private listeners = (() => {\n const ev = ['click', 'contextmenu'].map(ev =>\n documentListener(ev, () => this.menuService.close(), { once: true, lazy: true }),\n );\n return { on: () => ev.forEach(e => e.on()), off: () => ev.forEach(e => e.off()) };\n })();\n\n open(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n const menu = this.ngbContextMenu();\n menu.open({\n target: ev.target as HTMLElement,\n client: { x: ev.clientX, y: ev.clientY, w: 1, h: 1 },\n maxHeight: '400px',\n backdrop: false,\n offset: 0,\n });\n this.ctxOpen.emit(true);\n this.menuService.setCurrentRef(menu.diaRef);\n menu.diaRef.afterClosed.subscribe(() => {\n this.ctxClose.emit(true);\n this.listeners.off();\n });\n this.listeners.on();\n }\n}\n","import { Directive, ElementRef, inject, input, output } from '@angular/core';\nimport { NgbMenu } from './menu';\n\n@Directive({\n selector: '[ngbMentionTrigger]',\n host: {\n '(input)': 'open()',\n },\n})\nexport class NgbMentionTrigger {\n private readonly el = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n\n readonly ngbMentionTrigger = input.required<NgbMenu>();\n readonly options = input<{ focus?: 'el'; width?: 'full' }>();\n readonly key = input.required<string>();\n readonly search = output<string>();\n\n private close?: VoidFunction;\n\n open() {\n // open the menu in a position where the cursor is at '@' character\n const { selectionStart } = this.el.nativeElement;\n // check the word before the cursor which should starts with the key character\n const word = this.getCurrentWord();\n if (word.length <= 0 || word[0] !== this.key()) {\n this.close?.();\n this.close = undefined;\n return;\n }\n\n this.search.emit(word.substring(1));\n\n if (this.close) {\n return;\n }\n\n let client = null;\n\n if (!this.options()?.focus) {\n client = this.getPositionAt(selectionStart);\n // console.log('x', x, 'y', y, 'w', w, 'h', h);\n }\n\n // open the menu at the cursor position\n const menu = this.ngbMentionTrigger();\n menu.open({\n maxHeight: '400px',\n target: this.el.nativeElement,\n client,\n width: this.options()?.width === 'full' ? 'target' : undefined,\n });\n this.close = menu.close;\n }\n\n private getCurrentWord() {\n const textarea = this.el.nativeElement;\n // Get the current cursor position in the textarea\n const cursorPosition = textarea.selectionStart;\n\n // Get the text up to the cursor position\n const textUpToCursor = textarea.value.substring(0, cursorPosition);\n\n // Find the start of the current word\n const wordStart = textUpToCursor.lastIndexOf(' ') + 1;\n\n // Get the text after the cursor position up to the end of the textarea\n const textAfterCursor = textarea.value.substring(cursorPosition);\n\n // Find the end of the current word\n const wordEnd = textAfterCursor.indexOf(' ');\n const currentWord = textarea.value.substring(\n wordStart,\n cursorPosition + (wordEnd > -1 ? wordEnd : textAfterCursor.length),\n );\n\n return currentWord;\n }\n\n private getPositionAt(index: number): {\n x: number;\n y: number;\n h: number;\n w: number;\n } {\n const textarea = this.el.nativeElement;\n const text = textarea.value.substring(0, index);\n const mirror = document.createElement('div');\n const cursor = document.createElement('span');\n const style = window.getComputedStyle(textarea);\n const textareaRect = textarea.getBoundingClientRect();\n\n // Setup the mirror div to accurately reflect the textarea's position and styles\n mirror.style.position = 'fixed';\n mirror.style.top = `${textareaRect.top}px`; // Position at the same vertical position\n mirror.style.left = `${textareaRect.left}px`; // Position at the same horizontal position\n mirror.style.visibility = 'hidden';\n mirror.style.whiteSpace = 'pre-wrap';\n mirror.style.wordWrap = 'break-word';\n mirror.style.fontFamily = style.fontFamily;\n mirror.style.fontSize = style.fontSize;\n mirror.style.lineHeight = style.lineHeight;\n mirror.style.padding = style.padding;\n mirror.style.border = style.border;\n mirror.style.width = `${textarea.offsetWidth}px`; // Ensure width matches\n mirror.style.height = `${textarea.offsetHeight}px`; // Mat\n\n // Append mirror to the body to measure\n document.body.appendChild(mirror);\n mirror.textContent = text.substring(0, index - 1);\n cursor.textContent = '|';\n mirror.appendChild(cursor);\n\n const rect = cursor.getBoundingClientRect();\n\n document.body.removeChild(mirror);\n\n // Return the position relative to the viewport\n return {\n x: rect.left,\n y: rect.top,\n h: rect.height,\n w: rect.width,\n };\n }\n}\n","import {\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { AccessibleGroup } from '@ngbase/adk/a11y';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { Keys } from '@ngbase/adk/keys';\nimport { NgbList } from '@ngbase/adk/list';\nimport { ngbPopoverPortal, PopoverOptions } from '@ngbase/adk/popover';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { NgbOption } from '@ngbase/adk/select';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NgbMenuTrigger } from './menu-trigger';\n\n@Directive({\n selector: '[ngbMenuGroup]',\n hostDirectives: [AccessibleGroup],\n host: {\n '(click)': 'menu.noAutoClose() ? null : menu.close()',\n },\n})\nexport class NgpMenuGroup {\n readonly menu = inject(NgbMenu);\n readonly allyGroup = inject(AccessibleGroup);\n\n constructor() {\n // we need to wait for angular to check the changes\n // on component creation this data is not available\n effect(() => {\n this.allyGroup._ayId.set(this.menu.diaRef.options.ayId!);\n this.allyGroup._isPopup.set(true);\n });\n }\n}\n\n@Directive({\n selector: 'ng-template[ngbMenuContent]',\n})\nexport class NgpMenuContent {}\n\n@Directive({\n selector: '[ngbMenu]',\n exportAs: 'ngbMenu',\n})\nexport class NgbMenu implements OnDestroy {\n readonly dir = injectDirectionality();\n readonly popover = ngbPopoverPortal();\n private readonly menuEl = viewChild<NgpMenuGroup, ElementRef<HTMLDivElement>>(NgpMenuGroup, {\n read: ElementRef,\n });\n readonly container = viewChild.required('container', { read: TemplateRef });\n readonly content = contentChildren(NgpMenuContent, { read: TemplateRef, descendants: true });\n readonly options = contentChildren(NgbOption, { descendants: true });\n readonly lists = contentChildren(NgbList, { descendants: true });\n readonly manager = new Keys();\n readonly selected = output<string>();\n readonly ayId = uniqueId();\n\n readonly noAutoClose = input<boolean>(false);\n\n // this will be injected by the MenuTrigger directive\n parentMenuTrigger?: NgbMenuTrigger;\n\n // this will be injected by the MenuTrigger directive\n diaRef!: DialogRef;\n readonly events = new Subject<{ event: MouseEvent; type: 'enter' | 'leave' }>();\n readonly activeOption = new BehaviorSubject<NgbOption<any> | NgbList | null>(null);\n isOpen = false;\n\n constructor() {\n effect(cleanup => {\n const options = this.options().length ? this.options() : this.lists();\n options.forEach(option => {\n const mouseover = () => {\n if (this.activeOption.getValue() !== option) {\n this.activeOption.next(option);\n }\n };\n option.el.nativeElement.addEventListener('mouseover', mouseover);\n cleanup(() => option.el.nativeElement.removeEventListener('mouseover', mouseover));\n });\n });\n effect(cleanup => {\n const el = this.menuEl()?.nativeElement;\n if (!el) {\n return;\n }\n const enter = (ev: MouseEvent) => this.events.next({ event: ev, type: 'enter' });\n const leave = (ev: MouseEvent) => this.events.next({ event: ev, type: 'leave' });\n // we need to fire the mouseenter event\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n cleanup(() => {\n el.removeEventListener('mouseenter', enter);\n el.removeEventListener('mouseleave', leave);\n });\n });\n }\n\n open(options: PopoverOptions, subMenu: boolean = false) {\n const rtl = this.dir.isRtl();\n const content = this.content()[0];\n const template = content || this.container()!;\n\n const { diaRef } = this.popover.open(template, {\n ...this.options(),\n backdrop: !subMenu,\n position: subMenu ? (rtl ? 'ls' : 'rs') : rtl ? 'br' : 'bl',\n offset: 4,\n ayId: this.ayId,\n data: options.data,\n ...options,\n });\n this.diaRef = diaRef;\n this.opened();\n }\n\n opened() {\n this.isOpen = true;\n this.options().forEach(list => {\n list.setAyId(this.diaRef.options.ayId!);\n });\n this.lists().forEach(list => {\n list.setAyId(this.diaRef.options.ayId!);\n });\n }\n\n get rootParent(): NgbMenu | undefined {\n return this.parentMenuTrigger?.rootParent || this;\n }\n\n close = (data?: any) => {\n if (!this.isOpen) return;\n this.diaRef?.close(data);\n this.activeOption.next(null);\n this.isOpen = false;\n };\n\n ngOnDestroy() {\n this.close();\n }\n}\n\nexport const aliasMenu = (menu: typeof NgbMenu) => ({\n provide: NgbMenu,\n useExisting: menu,\n});\n","import { Directive, contentChildren, effect, input } from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { PopoverOpen, ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { documentListener, uniqueId } from '@ngbase/adk/utils';\nimport { NgbMenuTrigger } from './menu-trigger';\n\n@Directive({\n selector: '[ngbNavigationMenu]',\n})\nexport class NgbNavigationMenu {\n private popover = ngbPopoverPortal();\n private readonly dir = injectDirectionality();\n private readonly menus = contentChildren(NgbMenuTrigger, { descendants: true });\n\n readonly hover = input<boolean>(false);\n\n private ayId = uniqueId();\n close?: VoidFunction;\n private timerId: any = 0;\n private popoverOpen?: PopoverOpen<any>;\n private clicked = false;\n private currentEl?: NgbMenuTrigger;\n\n constructor() {\n documentListener('click', () => {\n if (this.close) {\n this.clicked = false;\n this.currentEl = undefined;\n this.close();\n }\n });\n effect(cleanup => {\n const menus = this.menus();\n const hover = this.hover();\n const sub = menus.map(menu =>\n menu.events.subscribe(({ type, menu }) => {\n const isSame = this.currentEl === menu;\n if (\n (type === 'enter' && (hover || this.clicked)) ||\n (type === 'click' && !hover && !isSame)\n ) {\n this.clicked = true;\n this.currentEl = menu;\n this.open(menu);\n } else if (isSame && (hover || type === 'click')) {\n this.scheduleClose();\n }\n }),\n );\n cleanup(() => sub.forEach(x => x.unsubscribe()));\n });\n }\n\n open(menuTrigger: NgbMenuTrigger) {\n clearTimeout(this.timerId);\n const menu = menuTrigger.ngbMenuTrigger();\n const target = menuTrigger.el.nativeElement;\n if (this.close) {\n // console.log('navigation menu open existing', menu);\n this.popoverOpen?.replace?.(menu.container()!);\n this.popoverOpen?.parent.target?.set(target);\n menu.diaRef = this.popoverOpen!.diaRef;\n // We need to change the id so that new menu items gets registered for a11y\n menu.diaRef.options.ayId = uniqueId();\n menu.opened();\n return;\n }\n // console.log('navigation menu open');\n\n this.popoverOpen = this.popover.open(menu.container()!, {\n target,\n position: this.dir.isRtl() ? 'br' : 'bl',\n className: 'transition-all',\n ayId: this.ayId,\n backdrop: false,\n });\n menu.diaRef = this.popoverOpen.diaRef;\n if (this.hover()) {\n this.popoverOpen.events.subscribe(e => {\n if (e.type === 'mouseenter') {\n clearTimeout(this.timerId);\n } else {\n this.scheduleClose();\n }\n });\n }\n menu.opened();\n this.close = () => {\n menu.close();\n this.close = undefined;\n this.popoverOpen = undefined;\n };\n }\n\n private scheduleClose() {\n clearTimeout(this.timerId);\n this.timerId = setTimeout(() => {\n this.clicked = false;\n this.currentEl = undefined;\n this.close?.();\n }, 200);\n }\n}\n","import { Directive, ElementRef, afterNextRender, inject, input, signal } from '@angular/core';\nimport { AccessibleItem } from '@ngbase/adk/a11y';\nimport { PopoverOptions } from '@ngbase/adk/popover';\nimport { Subject } from 'rxjs';\nimport { NgbMenu } from './menu';\nimport { NgbNavigationMenu } from './navigation-menu';\n\n@Directive({\n selector: '[ngbMenuTrigger]',\n exportAs: 'ngbMenuTrigger',\n host: {\n '(click)': 'clickOpen($event)',\n '[attr.aria-expanded]': 'menuOpen()',\n '[attr.aria-haspopup]': 'true',\n tabindex: '0',\n },\n})\nexport class NgbMenuTrigger {\n private readonly nav = inject(NgbNavigationMenu, { optional: true });\n private readonly parent = inject(NgbMenu, { optional: true });\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly a11y = inject(AccessibleItem, { optional: true });\n\n readonly ngbMenuTrigger = input.required<NgbMenu>();\n readonly ngbMenuTriggerData = input();\n readonly options = input<Partial<PopoverOptions>>({});\n\n private readonly _menuOpen = signal<boolean>(false);\n readonly menuOpen = this._menuOpen.asReadonly();\n readonly events = new Subject<{\n event: MouseEvent;\n type: 'enter' | 'leave' | 'click';\n menu: NgbMenuTrigger;\n }>();\n private closeParent = true;\n private delayTimer: any = 0;\n private isMouseOverTrigger = false;\n\n constructor() {\n // if a11y is provided, then we should open on keyleft and keyright\n this.a11y?.events.subscribe(ev => {\n if (!this.menu.isOpen && ev.type === 'keyRight') {\n this.open();\n } else if (this.menu.isOpen && ev.type === 'keyLeft') {\n this.closeParent = false;\n this.closeMenu();\n }\n });\n afterNextRender(() => {\n this.parent?.activeOption.subscribe(option => {\n if (option?.el.nativeElement === this.el.nativeElement) {\n this.open();\n } else if (this.menu.isOpen) {\n this.closeParent = false;\n this.closeMenu();\n }\n });\n // if parent is provided, then this is a sub-menu and we should open on mouseenter and close on mouseleave\n if (this.parent || this.nav) {\n this.el.nativeElement.addEventListener('mouseenter', ev => {\n this.events.next({ event: ev, type: 'enter', menu: this });\n this.isMouseOverTrigger = true;\n if (this.nav) {\n return;\n }\n clearTimeout(this.delayTimer);\n // console.log('mouseenter', this.debugId());\n this.open(ev);\n });\n this.el.nativeElement.addEventListener('mouseleave', ev => {\n this.events.next({ event: ev, type: 'leave', menu: this });\n this.isMouseOverTrigger = false;\n if (this.nav) {\n return;\n }\n });\n }\n });\n }\n\n private get menu() {\n return this.ngbMenuTrigger();\n }\n\n get rootParent() {\n return this.parent?.rootParent || this.parent;\n }\n\n clickOpen(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n if (this.nav) {\n this.events.next({ event: ev, type: 'click', menu: this });\n return;\n } else {\n this.openMenu();\n }\n }\n\n private open(ev?: MouseEvent) {\n ev?.preventDefault();\n ev?.stopPropagation();\n this.openMenu();\n }\n\n closeMenu() {\n this.ngbMenuTrigger().close();\n }\n\n openMenu() {\n const menu = this.ngbMenuTrigger();\n if (menu.isOpen) {\n return;\n }\n // console.log('open menu', this.parent);\n // const { diaRef, events } = this.popover.open(menu.container()!, {\n // ...this.options(),\n // data: this.ngbMenuTriggerData(),\n // backdrop: !this.parent,\n // target: this.el.nativeElement,\n // position: this.parent ? 'right' : 'bl',\n // offset: 4,\n // ayId: this.ayId(),\n // });\n menu.open(\n { ...this.options(), target: this.el.nativeElement, data: this.ngbMenuTriggerData() },\n !!this.parent,\n );\n this._menuOpen.set(true);\n menu.parentMenuTrigger = this;\n // if (this.nav) {\n // events.subscribe(ev => {\n // if (ev.type === 'mouseleave') {\n // this.delayTimer = setTimeout(() => {\n // this.closeMenu();\n // }, 300);\n // } else {\n // clearTimeout(this.delayTimer);\n // }\n // });\n // }\n menu.diaRef?.afterClosed.subscribe(() => {\n if (this.closeParent) this.rootParent?.close();\n this.closeParent = true;\n menu.close();\n this._menuOpen.set(false);\n });\n }\n}\n","/*\n * Public API Surface of menu\n */\n\nexport * from './context-menu';\nexport * from './mention';\nexport * from './menu';\nexport * from './menu-trigger';\nexport * from './navigation-menu';\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-menu.mjs","sources":["../../../projects/adk/menu/context-menu.ts","../../../projects/adk/menu/mention.ts","../../../projects/adk/menu/menu.ts","../../../projects/adk/menu/navigation-menu.ts","../../../projects/adk/menu/menu-trigger.ts","../../../projects/adk/menu/public-api.ts","../../../projects/adk/menu/ngbase-adk-menu.ts"],"sourcesContent":["import { Directive, inject, Injectable, input, output } from '@angular/core';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { documentListener } from '@ngbase/adk/utils';\nimport { NgbMenu } from './menu';\n\n@Injectable({ providedIn: 'root' })\nclass MenuService {\n private currentRef: DialogRef<any> | null = null;\n\n close() {\n this.currentRef?.close();\n this.currentRef = null;\n }\n\n setCurrentRef(ref: DialogRef<any>) {\n this.close();\n this.currentRef = ref;\n }\n}\n\n@Directive({\n selector: '[ngbContextMenu]',\n host: {\n '(contextmenu)': 'open($event)',\n },\n})\nexport class NgbContextMenu {\n readonly ngbContextMenu = input.required<NgbMenu>();\n readonly menuService = inject(MenuService);\n\n readonly ctxOpen = output<boolean>();\n readonly ctxClose = output<boolean>();\n\n private listeners = (() => {\n const ev = ['click', 'contextmenu'].map(ev =>\n documentListener(ev, () => this.menuService.close(), { once: true, lazy: true }),\n );\n return { on: () => ev.forEach(e => e.on()), off: () => ev.forEach(e => e.off()) };\n })();\n\n open(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n const menu = this.ngbContextMenu();\n menu.open({\n target: ev.target as HTMLElement,\n client: { x: ev.clientX, y: ev.clientY, w: 1, h: 1 },\n maxHeight: '400px',\n backdrop: false,\n offset: 0,\n });\n this.ctxOpen.emit(true);\n this.menuService.setCurrentRef(menu.diaRef);\n menu.diaRef.afterClosed.subscribe(() => {\n this.ctxClose.emit(true);\n this.listeners.off();\n });\n this.listeners.on();\n }\n}\n","import { Directive, ElementRef, inject, input, output } from '@angular/core';\nimport { NgbMenu } from './menu';\n\n@Directive({\n selector: '[ngbMentionTrigger]',\n host: {\n '(input)': 'open()',\n },\n})\nexport class NgbMentionTrigger {\n private readonly el = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n\n readonly ngbMentionTrigger = input.required<NgbMenu>();\n readonly options = input<{ focus?: 'el'; width?: 'full' }>();\n readonly key = input.required<string>();\n readonly search = output<string>();\n\n private close?: VoidFunction;\n\n open() {\n // open the menu in a position where the cursor is at '@' character\n const { selectionStart } = this.el.nativeElement;\n // check the word before the cursor which should starts with the key character\n const word = this.getCurrentWord();\n if (word.length <= 0 || word[0] !== this.key()) {\n this.close?.();\n this.close = undefined;\n return;\n }\n\n this.search.emit(word.substring(1));\n\n if (this.close) {\n return;\n }\n\n let client = null;\n\n if (!this.options()?.focus) {\n client = this.getPositionAt(selectionStart);\n // console.log('x', x, 'y', y, 'w', w, 'h', h);\n }\n\n // open the menu at the cursor position\n const menu = this.ngbMentionTrigger();\n menu.open({\n maxHeight: '400px',\n target: this.el.nativeElement,\n client,\n width: this.options()?.width === 'full' ? 'target' : undefined,\n });\n this.close = menu.close;\n }\n\n private getCurrentWord() {\n const textarea = this.el.nativeElement;\n // Get the current cursor position in the textarea\n const cursorPosition = textarea.selectionStart;\n\n // Get the text up to the cursor position\n const textUpToCursor = textarea.value.substring(0, cursorPosition);\n\n // Find the start of the current word\n const wordStart = textUpToCursor.lastIndexOf(' ') + 1;\n\n // Get the text after the cursor position up to the end of the textarea\n const textAfterCursor = textarea.value.substring(cursorPosition);\n\n // Find the end of the current word\n const wordEnd = textAfterCursor.indexOf(' ');\n const currentWord = textarea.value.substring(\n wordStart,\n cursorPosition + (wordEnd > -1 ? wordEnd : textAfterCursor.length),\n );\n\n return currentWord;\n }\n\n private getPositionAt(index: number): {\n x: number;\n y: number;\n h: number;\n w: number;\n } {\n const textarea = this.el.nativeElement;\n const text = textarea.value.substring(0, index);\n const mirror = document.createElement('div');\n const cursor = document.createElement('span');\n const style = window.getComputedStyle(textarea);\n const textareaRect = textarea.getBoundingClientRect();\n\n // Setup the mirror div to accurately reflect the textarea's position and styles\n mirror.style.position = 'fixed';\n mirror.style.top = `${textareaRect.top}px`; // Position at the same vertical position\n mirror.style.left = `${textareaRect.left}px`; // Position at the same horizontal position\n mirror.style.visibility = 'hidden';\n mirror.style.whiteSpace = 'pre-wrap';\n mirror.style.wordWrap = 'break-word';\n mirror.style.fontFamily = style.fontFamily;\n mirror.style.fontSize = style.fontSize;\n mirror.style.lineHeight = style.lineHeight;\n mirror.style.padding = style.padding;\n mirror.style.border = style.border;\n mirror.style.width = `${textarea.offsetWidth}px`; // Ensure width matches\n mirror.style.height = `${textarea.offsetHeight}px`; // Mat\n\n // Append mirror to the body to measure\n document.body.appendChild(mirror);\n mirror.textContent = text.substring(0, index - 1);\n cursor.textContent = '|';\n mirror.appendChild(cursor);\n\n const rect = cursor.getBoundingClientRect();\n\n document.body.removeChild(mirror);\n\n // Return the position relative to the viewport\n return {\n x: rect.left,\n y: rect.top,\n h: rect.height,\n w: rect.width,\n };\n }\n}\n","import {\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { AccessibleGroup } from '@ngbase/adk/a11y';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { Keys } from '@ngbase/adk/keys';\nimport { NgbList } from '@ngbase/adk/list';\nimport { ngbPopoverPortal, PopoverOptions } from '@ngbase/adk/popover';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { NgbOption } from '@ngbase/adk/select';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { NgbMenuTrigger } from './menu-trigger';\n\n@Directive({\n selector: '[ngbMenuGroup]',\n hostDirectives: [AccessibleGroup],\n host: {\n '(click)': 'menu.noAutoClose() ? null : menu.close()',\n },\n})\nexport class NgpMenuGroup {\n readonly menu = inject(NgbMenu);\n readonly allyGroup = inject(AccessibleGroup);\n\n constructor() {\n // we need to wait for angular to check the changes\n // on component creation this data is not available\n effect(() => {\n this.allyGroup._ayId.set(this.menu.diaRef.options.ayId!);\n this.allyGroup._isPopup.set(true);\n });\n }\n}\n\n@Directive({\n selector: 'ng-template[ngbMenuContent]',\n})\nexport class NgpMenuContent {}\n\n@Directive({\n selector: '[ngbMenu]',\n exportAs: 'ngbMenu',\n})\nexport class NgbMenu implements OnDestroy {\n readonly dir = injectDirectionality();\n readonly popover = ngbPopoverPortal();\n private readonly menuEl = viewChild<NgpMenuGroup, ElementRef<HTMLDivElement>>(NgpMenuGroup, {\n read: ElementRef,\n });\n readonly container = viewChild.required('container', { read: TemplateRef });\n readonly content = contentChildren(NgpMenuContent, { read: TemplateRef, descendants: true });\n readonly options = contentChildren(NgbOption, { descendants: true });\n readonly lists = contentChildren(NgbList, { descendants: true });\n readonly manager = new Keys();\n readonly selected = output<string>();\n readonly ayId = uniqueId();\n\n readonly noAutoClose = input<boolean>(false);\n\n // this will be injected by the MenuTrigger directive\n parentMenuTrigger?: NgbMenuTrigger;\n\n // this will be injected by the MenuTrigger directive\n diaRef!: DialogRef;\n readonly events = new Subject<{ event: MouseEvent; type: 'enter' | 'leave' }>();\n readonly activeOption = new BehaviorSubject<NgbOption<any> | NgbList | null>(null);\n isOpen = false;\n\n constructor() {\n effect(cleanup => {\n const options = this.options().length ? this.options() : this.lists();\n options.forEach(option => {\n const mouseover = () => {\n if (this.activeOption.getValue() !== option) {\n this.activeOption.next(option);\n }\n };\n option.el.nativeElement.addEventListener('mouseover', mouseover);\n cleanup(() => option.el.nativeElement.removeEventListener('mouseover', mouseover));\n });\n });\n effect(cleanup => {\n const el = this.menuEl()?.nativeElement;\n if (!el) {\n return;\n }\n const enter = (ev: MouseEvent) => this.events.next({ event: ev, type: 'enter' });\n const leave = (ev: MouseEvent) => this.events.next({ event: ev, type: 'leave' });\n // we need to fire the mouseenter event\n el.addEventListener('mouseenter', enter);\n el.addEventListener('mouseleave', leave);\n cleanup(() => {\n el.removeEventListener('mouseenter', enter);\n el.removeEventListener('mouseleave', leave);\n });\n });\n }\n\n open(options: PopoverOptions, subMenu: boolean = false) {\n const rtl = this.dir.isRtl();\n const content = this.content()[0];\n const template = content || this.container()!;\n\n const { diaRef } = this.popover.open(template, {\n ...this.options(),\n backdrop: !subMenu,\n position: subMenu ? (rtl ? 'ls' : 'rs') : rtl ? 'br' : 'bl',\n offset: 4,\n ayId: this.ayId,\n data: options.data,\n ...options,\n });\n this.diaRef = diaRef;\n this.opened();\n }\n\n opened() {\n this.isOpen = true;\n this.options().forEach(list => {\n list.setAyId(this.diaRef.options.ayId!);\n });\n this.lists().forEach(list => {\n list.setAyId(this.diaRef.options.ayId!);\n });\n }\n\n get rootParent(): NgbMenu | undefined {\n return this.parentMenuTrigger?.rootParent || this;\n }\n\n close = (data?: any) => {\n if (!this.isOpen) return;\n this.diaRef?.close(data);\n this.activeOption.next(null);\n this.isOpen = false;\n };\n\n ngOnDestroy() {\n this.close();\n }\n}\n\nexport const aliasMenu = (menu: typeof NgbMenu) => ({\n provide: NgbMenu,\n useExisting: menu,\n});\n","import { Directive, contentChildren, effect, input } from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { PopoverOpen, ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { documentListener, uniqueId } from '@ngbase/adk/utils';\nimport { NgbMenuTrigger } from './menu-trigger';\n\n@Directive({\n selector: '[ngbNavigationMenu]',\n})\nexport class NgbNavigationMenu {\n private popover = ngbPopoverPortal();\n private readonly dir = injectDirectionality();\n private readonly menus = contentChildren(NgbMenuTrigger, { descendants: true });\n\n readonly hover = input<boolean>(false);\n\n private ayId = uniqueId();\n close?: VoidFunction;\n private timerId: any = 0;\n private popoverOpen?: PopoverOpen<any>;\n private clicked = false;\n private currentEl?: NgbMenuTrigger;\n\n constructor() {\n documentListener('click', () => {\n if (this.close) {\n this.clicked = false;\n this.currentEl = undefined;\n this.close();\n }\n });\n effect(cleanup => {\n const menus = this.menus();\n const hover = this.hover();\n const sub = menus.map(menu =>\n menu.events.subscribe(({ type, menu }) => {\n const isSame = this.currentEl === menu;\n if (\n (type === 'enter' && (hover || this.clicked)) ||\n (type === 'click' && !hover && !isSame)\n ) {\n this.clicked = true;\n this.currentEl = menu;\n this.open(menu);\n } else if (isSame && (hover || type === 'click')) {\n this.scheduleClose();\n }\n }),\n );\n cleanup(() => sub.forEach(x => x.unsubscribe()));\n });\n }\n\n open(menuTrigger: NgbMenuTrigger) {\n clearTimeout(this.timerId);\n const menu = menuTrigger.ngbMenuTrigger();\n const target = menuTrigger.el.nativeElement;\n if (this.close) {\n // console.log('navigation menu open existing', menu);\n this.popoverOpen?.replace?.(menu.container()!);\n this.popoverOpen?.parent.target?.set(target);\n menu.diaRef = this.popoverOpen!.diaRef;\n // We need to change the id so that new menu items gets registered for a11y\n menu.diaRef.options.ayId = uniqueId();\n menu.opened();\n return;\n }\n // console.log('navigation menu open');\n\n this.popoverOpen = this.popover.open(menu.container()!, {\n target,\n position: this.dir.isRtl() ? 'br' : 'bl',\n className: 'transition-all',\n ayId: this.ayId,\n backdrop: false,\n });\n menu.diaRef = this.popoverOpen.diaRef;\n if (this.hover()) {\n this.popoverOpen.events.subscribe(e => {\n if (e.type === 'mouseenter') {\n clearTimeout(this.timerId);\n } else {\n this.scheduleClose();\n }\n });\n }\n menu.opened();\n this.close = () => {\n menu.close();\n this.close = undefined;\n this.popoverOpen = undefined;\n };\n }\n\n private scheduleClose() {\n clearTimeout(this.timerId);\n this.timerId = setTimeout(() => {\n this.clicked = false;\n this.currentEl = undefined;\n this.close?.();\n }, 200);\n }\n}\n","import { Directive, ElementRef, afterNextRender, inject, input, signal } from '@angular/core';\nimport { AccessibleItem } from '@ngbase/adk/a11y';\nimport { PopoverOptions } from '@ngbase/adk/popover';\nimport { Subject } from 'rxjs';\nimport { NgbMenu } from './menu';\nimport { NgbNavigationMenu } from './navigation-menu';\n\n@Directive({\n selector: '[ngbMenuTrigger]',\n exportAs: 'ngbMenuTrigger',\n host: {\n '(click)': 'clickOpen($event)',\n '[attr.aria-expanded]': 'menuOpen()',\n '[attr.aria-haspopup]': 'true',\n tabindex: '0',\n },\n})\nexport class NgbMenuTrigger {\n private readonly nav = inject(NgbNavigationMenu, { optional: true });\n private readonly parent = inject(NgbMenu, { optional: true });\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly a11y = inject(AccessibleItem, { optional: true });\n\n readonly ngbMenuTrigger = input.required<NgbMenu>();\n readonly ngbMenuTriggerData = input();\n readonly options = input<Partial<PopoverOptions>>({});\n\n private readonly _menuOpen = signal<boolean>(false);\n readonly menuOpen = this._menuOpen.asReadonly();\n readonly events = new Subject<{\n event: MouseEvent;\n type: 'enter' | 'leave' | 'click';\n menu: NgbMenuTrigger;\n }>();\n private closeParent = true;\n private delayTimer: any = 0;\n private isMouseOverTrigger = false;\n\n constructor() {\n // if a11y is provided, then we should open on keyleft and keyright\n this.a11y?.events.subscribe(ev => {\n if (!this.menu.isOpen && ev.type === 'keyRight') {\n this.open();\n } else if (this.menu.isOpen && ev.type === 'keyLeft') {\n this.closeParent = false;\n this.closeMenu();\n }\n });\n afterNextRender(() => {\n this.parent?.activeOption.subscribe(option => {\n if (option?.el.nativeElement === this.el.nativeElement) {\n this.open();\n } else if (this.menu.isOpen) {\n this.closeParent = false;\n this.closeMenu();\n }\n });\n // if parent is provided, then this is a sub-menu and we should open on mouseenter and close on mouseleave\n if (this.parent || this.nav) {\n this.el.nativeElement.addEventListener('mouseenter', ev => {\n this.events.next({ event: ev, type: 'enter', menu: this });\n this.isMouseOverTrigger = true;\n if (this.nav) {\n return;\n }\n clearTimeout(this.delayTimer);\n // console.log('mouseenter', this.debugId());\n this.open(ev);\n });\n this.el.nativeElement.addEventListener('mouseleave', ev => {\n this.events.next({ event: ev, type: 'leave', menu: this });\n this.isMouseOverTrigger = false;\n if (this.nav) {\n return;\n }\n });\n }\n });\n }\n\n private get menu() {\n return this.ngbMenuTrigger();\n }\n\n get rootParent() {\n return this.parent?.rootParent || this.parent;\n }\n\n clickOpen(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n if (this.nav) {\n this.events.next({ event: ev, type: 'click', menu: this });\n return;\n } else {\n this.openMenu();\n }\n }\n\n private open(ev?: MouseEvent) {\n ev?.preventDefault();\n ev?.stopPropagation();\n this.openMenu();\n }\n\n closeMenu() {\n this.ngbMenuTrigger().close();\n }\n\n openMenu() {\n const menu = this.ngbMenuTrigger();\n if (menu.isOpen) {\n return;\n }\n // console.log('open menu', this.parent);\n // const { diaRef, events } = this.popover.open(menu.container()!, {\n // ...this.options(),\n // data: this.ngbMenuTriggerData(),\n // backdrop: !this.parent,\n // target: this.el.nativeElement,\n // position: this.parent ? 'right' : 'bl',\n // offset: 4,\n // ayId: this.ayId(),\n // });\n menu.open(\n { ...this.options(), target: this.el.nativeElement, data: this.ngbMenuTriggerData() },\n !!this.parent,\n );\n this._menuOpen.set(true);\n menu.parentMenuTrigger = this;\n // if (this.nav) {\n // events.subscribe(ev => {\n // if (ev.type === 'mouseleave') {\n // this.delayTimer = setTimeout(() => {\n // this.closeMenu();\n // }, 300);\n // } else {\n // clearTimeout(this.delayTimer);\n // }\n // });\n // }\n menu.diaRef?.afterClosed.subscribe(() => {\n if (this.closeParent) this.rootParent?.close();\n this.closeParent = true;\n menu.close();\n this._menuOpen.set(false);\n });\n }\n}\n","/*\n * Public API Surface of menu\n */\n\nexport * from './context-menu';\nexport * from './mention';\nexport * from './menu';\nexport * from './menu-trigger';\nexport * from './navigation-menu';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { isClient, documentListener } from '@ngbase/adk/utils';
6
6
 
7
7
  class Network {
8
8
  constructor() {
9
- this.status = signal(true);
9
+ this.status = signal(true, ...(ngDevMode ? [{ debugName: "status" }] : []));
10
10
  this.isOnline = this.status.asReadonly();
11
11
  this.listeners = [];
12
12
  this.initialized = false;
@@ -54,10 +54,10 @@ class Network {
54
54
  if (this.listeners.length === 0)
55
55
  this.off();
56
56
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: Network, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
58
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: Network, providedIn: 'root' }); }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: Network, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
58
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: Network, providedIn: 'root' }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: Network, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: Network, decorators: [{
61
61
  type: Injectable,
62
62
  args: [{ providedIn: 'root' }]
63
63
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-network.mjs","sources":["../../../projects/adk/network/network.service.ts","../../../projects/adk/network/network.interceptor.ts","../../../projects/adk/network/ngbase-adk-network.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { isClient } from '@ngbase/adk/utils';\nimport { documentListener, ListenerOut } from '@ngbase/adk/utils';\n\n@Injectable({ providedIn: 'root' })\nexport class Network {\n private status = signal(true);\n readonly isOnline = this.status.asReadonly();\n private listeners: ((status: boolean) => void)[] = [];\n private initialized = false;\n private onlineListener!: ListenerOut;\n private offlineListener!: ListenerOut;\n\n constructor() {\n if (isClient()) {\n this.status.set(navigator.onLine);\n this.onlineListener = documentListener('online', () => this.updateOnlineStatus(true), {\n element: window,\n lazy: true,\n });\n this.offlineListener = documentListener('offline', () => this.updateOnlineStatus(false), {\n element: window,\n lazy: true,\n });\n }\n }\n\n private on(): void {\n if (this.initialized) return;\n // window.addEventListener('online', () => this.updateOnlineStatus(true));\n // window.addEventListener('offline', () => this.updateOnlineStatus(false));\n this.onlineListener.on();\n this.offlineListener.on();\n this.initialized = true;\n }\n\n private off(): void {\n // window.removeEventListener('online', () => this.updateOnlineStatus(true));\n // window.removeEventListener('offline', () => this.updateOnlineStatus(false));\n this.onlineListener.off();\n this.offlineListener.off();\n this.initialized = false;\n }\n\n private updateOnlineStatus(status: boolean): void {\n this.status.set(status);\n this.listeners.forEach(listener => listener(this.status()));\n }\n\n public addListener(listener: (status: boolean) => void): void {\n this.listeners.push(listener);\n listener(this.status()); // Immediately call with current status\n this.on();\n }\n\n public removeListener(listener: (status: boolean) => void): void {\n const index = this.listeners.indexOf(listener);\n if (index > -1) this.listeners.splice(index, 1);\n if (this.listeners.length === 0) this.off();\n }\n}\n\nexport const injectNetwork = () => inject(Network);\n","import { HTTP_INTERCEPTORS, HttpInterceptorFn } from '@angular/common/http';\nimport { catchError } from 'rxjs';\nimport { injectNetwork } from './network.service';\nimport { isClient } from '@ngbase/adk/utils';\n\nconst networkInterceptor: HttpInterceptorFn = (req, next) => {\n const networkService = injectNetwork();\n const isBrowser = isClient();\n\n if (isBrowser && !networkService.isOnline()) {\n throw 'No internet connection';\n }\n\n return next(req).pipe(\n catchError(error => {\n if (isBrowser && !networkService.isOnline()) {\n // You can implement custom error handling here\n }\n throw error;\n }),\n );\n};\n\nexport const provideNetworkInterceptor = () => ({\n provide: HTTP_INTERCEPTORS,\n useFactory: networkInterceptor,\n multi: true,\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-network.mjs","sources":["../../../projects/adk/network/network.service.ts","../../../projects/adk/network/network.interceptor.ts","../../../projects/adk/network/ngbase-adk-network.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { isClient } from '@ngbase/adk/utils';\nimport { documentListener, ListenerOut } from '@ngbase/adk/utils';\n\n@Injectable({ providedIn: 'root' })\nexport class Network {\n private status = signal(true);\n readonly isOnline = this.status.asReadonly();\n private listeners: ((status: boolean) => void)[] = [];\n private initialized = false;\n private onlineListener!: ListenerOut;\n private offlineListener!: ListenerOut;\n\n constructor() {\n if (isClient()) {\n this.status.set(navigator.onLine);\n this.onlineListener = documentListener('online', () => this.updateOnlineStatus(true), {\n element: window,\n lazy: true,\n });\n this.offlineListener = documentListener('offline', () => this.updateOnlineStatus(false), {\n element: window,\n lazy: true,\n });\n }\n }\n\n private on(): void {\n if (this.initialized) return;\n // window.addEventListener('online', () => this.updateOnlineStatus(true));\n // window.addEventListener('offline', () => this.updateOnlineStatus(false));\n this.onlineListener.on();\n this.offlineListener.on();\n this.initialized = true;\n }\n\n private off(): void {\n // window.removeEventListener('online', () => this.updateOnlineStatus(true));\n // window.removeEventListener('offline', () => this.updateOnlineStatus(false));\n this.onlineListener.off();\n this.offlineListener.off();\n this.initialized = false;\n }\n\n private updateOnlineStatus(status: boolean): void {\n this.status.set(status);\n this.listeners.forEach(listener => listener(this.status()));\n }\n\n public addListener(listener: (status: boolean) => void): void {\n this.listeners.push(listener);\n listener(this.status()); // Immediately call with current status\n this.on();\n }\n\n public removeListener(listener: (status: boolean) => void): void {\n const index = this.listeners.indexOf(listener);\n if (index > -1) this.listeners.splice(index, 1);\n if (this.listeners.length === 0) this.off();\n }\n}\n\nexport const injectNetwork = () => inject(Network);\n","import { HTTP_INTERCEPTORS, HttpInterceptorFn } from '@angular/common/http';\nimport { catchError } from 'rxjs';\nimport { injectNetwork } from './network.service';\nimport { isClient } from '@ngbase/adk/utils';\n\nconst networkInterceptor: HttpInterceptorFn = (req, next) => {\n const networkService = injectNetwork();\n const isBrowser = isClient();\n\n if (isBrowser && !networkService.isOnline()) {\n throw 'No internet connection';\n }\n\n return next(req).pipe(\n catchError(error => {\n if (isBrowser && !networkService.isOnline()) {\n // You can implement custom error handling here\n }\n throw error;\n }),\n );\n};\n\nexport const provideNetworkInterceptor = () => ({\n provide: HTTP_INTERCEPTORS,\n useFactory: networkInterceptor,\n multi: true,\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -7,10 +7,10 @@ class NgbOtpInput {
7
7
  this.otp = inject(NgbInputOtp);
8
8
  this.el = inject(ElementRef);
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbOtpInput, isStandalone: true, selector: "input[ngbOtpInput]", host: { properties: { "disabled": "otp.disabled() || undefined" }, styleAttribute: "position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;" }, ngImport: i0 }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOtpInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbOtpInput, isStandalone: true, selector: "input[ngbOtpInput]", host: { properties: { "disabled": "otp.disabled() || undefined" }, styleAttribute: "position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;" }, ngImport: i0 }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpInput, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOtpInput, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: 'input[ngbOtpInput]',
@@ -24,20 +24,20 @@ class NgbOtpValue {
24
24
  constructor() {
25
25
  this.otp = inject(NgbInputOtp);
26
26
  this.el = inject(ElementRef);
27
- this.index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el));
28
- this.value = computed(() => this.otp.values()[this.index()] || '');
27
+ this.index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el), ...(ngDevMode ? [{ debugName: "index" }] : []));
28
+ this.value = computed(() => this.otp.values()[this.index()] || '', ...(ngDevMode ? [{ debugName: "value" }] : []));
29
29
  this.focused = computed(() => {
30
30
  return (this.otp.focused() && this.index() === Math.min(this.otp.values().length, this.otp.no() - 1));
31
- });
31
+ }, ...(ngDevMode ? [{ debugName: "focused" }] : []));
32
32
  effect(() => {
33
33
  const value = this.value();
34
34
  this.el.nativeElement.textContent = value && this.otp.masked() ? '•' : value;
35
35
  });
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpValue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbOtpValue, isStandalone: true, selector: "[ngbOtpValue]", host: { attributes: { "aria-hidden": "true", "tabindex": "-1" }, properties: { "attr.data-focus": "focused() || undefined", "attr.data-disabled": "otp.disabled() || undefined" }, styleAttribute: "pointer-events: none" }, ngImport: i0 }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOtpValue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: NgbOtpValue, isStandalone: true, selector: "[ngbOtpValue]", host: { attributes: { "aria-hidden": "true", "tabindex": "-1" }, properties: { "attr.data-focus": "focused() || undefined", "attr.data-disabled": "otp.disabled() || undefined" }, styleAttribute: "pointer-events: none" }, ngImport: i0 }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpValue, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbOtpValue, decorators: [{
41
41
  type: Directive,
42
42
  args: [{
43
43
  selector: '[ngbOtpValue]',
@@ -53,15 +53,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
53
53
  class NgbInputOtp {
54
54
  constructor() {
55
55
  this.inputs = viewChild.required(NgbOtpInput);
56
- this._otpValues = viewChildren(NgbOtpValue);
56
+ this._otpValues = viewChildren(NgbOtpValue, ...(ngDevMode ? [{ debugName: "_otpValues" }] : []));
57
57
  // private readonly
58
- this.size = input([4]);
59
- this.masked = input(false, { transform: booleanAttribute });
60
- this.disabled = input(false);
61
- this.no = computed(() => this.size().reduce((a, b) => a + b, 0));
58
+ this.size = input([4], ...(ngDevMode ? [{ debugName: "size" }] : []));
59
+ this.masked = input(false, ...(ngDevMode ? [{ debugName: "masked", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
60
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
61
+ this.no = computed(() => this.size().reduce((a, b) => a + b, 0), ...(ngDevMode ? [{ debugName: "no" }] : []));
62
62
  this.lastValue = '';
63
- this.values = signal('');
64
- this.focused = signal(false);
63
+ this.values = signal('', ...(ngDevMode ? [{ debugName: "values" }] : []));
64
+ this.focused = signal(false, ...(ngDevMode ? [{ debugName: "focused" }] : []));
65
65
  afterRenderEffect(cleanup => {
66
66
  const inputEl = this.inputs().el.nativeElement;
67
67
  const inputListener = () => {
@@ -139,10 +139,10 @@ class NgbInputOtp {
139
139
  registerOnTouched(fn) {
140
140
  this.onTouched = fn;
141
141
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbInputOtp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
143
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbInputOtp, isStandalone: true, selector: "[ngbInputOtp]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, masked: { classPropertyName: "masked", publicName: "masked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [_provide(NgbInputOtp)], viewQueries: [{ propertyName: "inputs", first: true, predicate: NgbOtpInput, descendants: true, isSignal: true }, { propertyName: "_otpValues", predicate: NgbOtpValue, descendants: true, isSignal: true }], ngImport: i0 }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbInputOtp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
143
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbInputOtp, isStandalone: true, selector: "[ngbInputOtp]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, masked: { classPropertyName: "masked", publicName: "masked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [_provide(NgbInputOtp)], viewQueries: [{ propertyName: "inputs", first: true, predicate: NgbOtpInput, descendants: true, isSignal: true }, { propertyName: "_otpValues", predicate: NgbOtpValue, descendants: true, isSignal: true }], ngImport: i0 }); }
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbInputOtp, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbInputOtp, decorators: [{
146
146
  type: Directive,
147
147
  args: [{
148
148
  selector: '[ngbInputOtp]',
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-otp.mjs","sources":["../../../projects/adk/otp/otp.ts","../../../projects/adk/otp/ngbase-adk-otp.ts"],"sourcesContent":["import {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: 'input[ngbOtpInput]',\n host: {\n '[disabled]': 'otp.disabled() || undefined',\n style:\n 'position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;',\n },\n})\nexport class NgbOtpInput {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n}\n\n@Directive({\n selector: '[ngbOtpValue]',\n host: {\n style: `pointer-events: none`,\n '[attr.data-focus]': 'focused() || undefined',\n '[attr.data-disabled]': 'otp.disabled() || undefined',\n 'aria-hidden': 'true',\n tabindex: '-1',\n },\n})\nexport class NgbOtpValue {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el));\n readonly value = computed(() => this.otp.values()[this.index()] || '');\n\n readonly focused = computed(() => {\n return (\n this.otp.focused() && this.index() === Math.min(this.otp.values().length, this.otp.no() - 1)\n );\n });\n\n constructor() {\n effect(() => {\n const value = this.value();\n this.el.nativeElement.textContent = value && this.otp.masked() ? '•' : value;\n });\n }\n}\n\n@Directive({\n selector: '[ngbInputOtp]',\n providers: [_provide(NgbInputOtp)],\n})\nexport class NgbInputOtp implements ControlValueAccessor {\n private readonly inputs = viewChild.required<NgbOtpInput>(NgbOtpInput);\n readonly _otpValues = viewChildren<NgbOtpValue>(NgbOtpValue);\n // private readonly\n\n readonly size = input<number[]>([4]);\n readonly masked = input(false, { transform: booleanAttribute });\n readonly disabled = input<boolean>(false);\n\n readonly no = computed(() => this.size().reduce((a, b) => a + b, 0));\n private onChange?: (value: string) => void;\n private onTouched?: () => void;\n private lastValue = '';\n readonly values = signal<string>('');\n readonly focused = signal<boolean>(false);\n\n constructor() {\n afterRenderEffect(cleanup => {\n const inputEl = this.inputs().el.nativeElement;\n\n const inputListener = () => {\n const value = inputEl.value;\n this.updateValue(value);\n };\n\n const keydownListener = (e: KeyboardEvent) => {\n const value = inputEl.value.length === this.no();\n // const isPaste = (e.ctrlKey || e.metaKey) && e.key === 'v';\n // if (isPaste || ['Tab', 'Enter'].includes(e.key)) {\n // // prevent default behavior for tab key\n // return;\n // } else\n if (value && !['Tab', 'Enter', 'Backspace'].includes(e.key)) {\n // prevent default behavior for non-numeric characters\n e.preventDefault();\n }\n };\n\n const pasteListener = (e: ClipboardEvent) => {\n e.preventDefault();\n\n const pastedText = e.clipboardData?.getData('text') || '';\n const numbers = pastedText.replace(/\\D/g, '');\n\n // Only process if we have valid numbers\n if (numbers.length === 0) return;\n\n this.updateNewValue(numbers.slice(0, this.no()));\n this.updateValue(inputEl.value);\n };\n\n const blurListener = () => {\n // We have to use untracked because the blur is triggered by the input element when we make it disabled\n // so we are getting cannot update signal inside computed error\n untracked(() => this.focused.set(false));\n };\n\n const focusListener = () => {\n this.focused.set(true);\n // set the cursor to the end of the input\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n };\n\n inputEl.addEventListener('input', inputListener);\n inputEl.addEventListener('focus', focusListener);\n inputEl.addEventListener('blur', blurListener);\n inputEl.addEventListener('keydown', keydownListener);\n inputEl.addEventListener('paste', pasteListener);\n\n cleanup(() => {\n inputEl.removeEventListener('input', inputListener);\n inputEl.removeEventListener('focus', focusListener);\n inputEl.removeEventListener('blur', blurListener);\n inputEl.removeEventListener('keydown', keydownListener);\n inputEl.removeEventListener('paste', pasteListener);\n });\n });\n }\n\n private updateNewValue(value: string) {\n this.values.set(value);\n this.inputs().el.nativeElement.value = value;\n }\n\n writeValue(value: string) {\n const values = value || '';\n this.lastValue = value;\n this.updateNewValue(values);\n }\n\n updateValue(values: string) {\n this.values.set(values);\n // const value = values.length === this.no() ? values : '';\n // if (this.lastValue === value) {\n // return;\n // }\n this.lastValue = values;\n this.onChange?.(values);\n this.onTouched?.();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n\nfunction _provide(otp: typeof NgbInputOtp) {\n return [provideValueAccessor(otp)];\n}\n\nexport function aliasInputOtp(otp: typeof NgbInputOtp) {\n return [_provide(otp), { provide: NgbInputOtp, useExisting: otp }];\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-otp.mjs","sources":["../../../projects/adk/otp/otp.ts","../../../projects/adk/otp/ngbase-adk-otp.ts"],"sourcesContent":["import {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: 'input[ngbOtpInput]',\n host: {\n '[disabled]': 'otp.disabled() || undefined',\n style:\n 'position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;',\n },\n})\nexport class NgbOtpInput {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n}\n\n@Directive({\n selector: '[ngbOtpValue]',\n host: {\n style: `pointer-events: none`,\n '[attr.data-focus]': 'focused() || undefined',\n '[attr.data-disabled]': 'otp.disabled() || undefined',\n 'aria-hidden': 'true',\n tabindex: '-1',\n },\n})\nexport class NgbOtpValue {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el));\n readonly value = computed(() => this.otp.values()[this.index()] || '');\n\n readonly focused = computed(() => {\n return (\n this.otp.focused() && this.index() === Math.min(this.otp.values().length, this.otp.no() - 1)\n );\n });\n\n constructor() {\n effect(() => {\n const value = this.value();\n this.el.nativeElement.textContent = value && this.otp.masked() ? '•' : value;\n });\n }\n}\n\n@Directive({\n selector: '[ngbInputOtp]',\n providers: [_provide(NgbInputOtp)],\n})\nexport class NgbInputOtp implements ControlValueAccessor {\n private readonly inputs = viewChild.required<NgbOtpInput>(NgbOtpInput);\n readonly _otpValues = viewChildren<NgbOtpValue>(NgbOtpValue);\n // private readonly\n\n readonly size = input<number[]>([4]);\n readonly masked = input(false, { transform: booleanAttribute });\n readonly disabled = input<boolean>(false);\n\n readonly no = computed(() => this.size().reduce((a, b) => a + b, 0));\n private onChange?: (value: string) => void;\n private onTouched?: () => void;\n private lastValue = '';\n readonly values = signal<string>('');\n readonly focused = signal<boolean>(false);\n\n constructor() {\n afterRenderEffect(cleanup => {\n const inputEl = this.inputs().el.nativeElement;\n\n const inputListener = () => {\n const value = inputEl.value;\n this.updateValue(value);\n };\n\n const keydownListener = (e: KeyboardEvent) => {\n const value = inputEl.value.length === this.no();\n // const isPaste = (e.ctrlKey || e.metaKey) && e.key === 'v';\n // if (isPaste || ['Tab', 'Enter'].includes(e.key)) {\n // // prevent default behavior for tab key\n // return;\n // } else\n if (value && !['Tab', 'Enter', 'Backspace'].includes(e.key)) {\n // prevent default behavior for non-numeric characters\n e.preventDefault();\n }\n };\n\n const pasteListener = (e: ClipboardEvent) => {\n e.preventDefault();\n\n const pastedText = e.clipboardData?.getData('text') || '';\n const numbers = pastedText.replace(/\\D/g, '');\n\n // Only process if we have valid numbers\n if (numbers.length === 0) return;\n\n this.updateNewValue(numbers.slice(0, this.no()));\n this.updateValue(inputEl.value);\n };\n\n const blurListener = () => {\n // We have to use untracked because the blur is triggered by the input element when we make it disabled\n // so we are getting cannot update signal inside computed error\n untracked(() => this.focused.set(false));\n };\n\n const focusListener = () => {\n this.focused.set(true);\n // set the cursor to the end of the input\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n };\n\n inputEl.addEventListener('input', inputListener);\n inputEl.addEventListener('focus', focusListener);\n inputEl.addEventListener('blur', blurListener);\n inputEl.addEventListener('keydown', keydownListener);\n inputEl.addEventListener('paste', pasteListener);\n\n cleanup(() => {\n inputEl.removeEventListener('input', inputListener);\n inputEl.removeEventListener('focus', focusListener);\n inputEl.removeEventListener('blur', blurListener);\n inputEl.removeEventListener('keydown', keydownListener);\n inputEl.removeEventListener('paste', pasteListener);\n });\n });\n }\n\n private updateNewValue(value: string) {\n this.values.set(value);\n this.inputs().el.nativeElement.value = value;\n }\n\n writeValue(value: string) {\n const values = value || '';\n this.lastValue = value;\n this.updateNewValue(values);\n }\n\n updateValue(values: string) {\n this.values.set(values);\n // const value = values.length === this.no() ? values : '';\n // if (this.lastValue === value) {\n // return;\n // }\n this.lastValue = values;\n this.onChange?.(values);\n this.onTouched?.();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n\nfunction _provide(otp: typeof NgbInputOtp) {\n return [provideValueAccessor(otp)];\n}\n\nexport function aliasInputOtp(otp: typeof NgbInputOtp) {\n return [_provide(otp), { provide: NgbInputOtp, useExisting: otp }];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}