@spartan-ng/brain 0.0.1-alpha.373 → 0.0.1-alpha.379

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 (398) hide show
  1. package/accordion/README.md +3 -0
  2. package/accordion/index.d.ts +13 -0
  3. package/accordion/lib/brn-accordion-content.component.d.ts +15 -0
  4. package/accordion/lib/brn-accordion.directive.d.ts +47 -0
  5. package/alert-dialog/README.md +3 -0
  6. package/alert-dialog/index.d.ts +25 -0
  7. package/alert-dialog/lib/brn-alert-dialog-content.directive.d.ts +6 -0
  8. package/alert-dialog/lib/brn-alert-dialog-description.directive.d.ts +6 -0
  9. package/alert-dialog/lib/brn-alert-dialog-overlay.component.d.ts +6 -0
  10. package/alert-dialog/lib/brn-alert-dialog-title.directive.d.ts +6 -0
  11. package/alert-dialog/lib/brn-alert-dialog-trigger.directive.d.ts +8 -0
  12. package/alert-dialog/lib/brn-alert-dialog.component.d.ts +7 -0
  13. package/avatar/README.md +3 -0
  14. package/avatar/index.d.ts +17 -0
  15. package/avatar/lib/brn-avatar.component.d.ts +7 -0
  16. package/avatar/lib/fallback/brn-avatar-fallback.directive.d.ts +11 -0
  17. package/avatar/lib/fallback/index.d.ts +1 -0
  18. package/avatar/lib/image/brn-avatar-image.directive.d.ts +9 -0
  19. package/avatar/lib/image/index.d.ts +1 -0
  20. package/avatar/lib/util/hex-color-for.d.ts +1 -0
  21. package/avatar/lib/util/index.d.ts +3 -0
  22. package/avatar/lib/util/initials.pipe.d.ts +7 -0
  23. package/avatar/lib/util/is-bright.d.ts +1 -0
  24. package/calendar/README.md +3 -0
  25. package/calendar/index.d.ts +36 -0
  26. package/calendar/lib/brn-calendar-cell-button.directive.d.ts +59 -0
  27. package/calendar/lib/brn-calendar-cell.directive.d.ts +5 -0
  28. package/calendar/lib/brn-calendar-grid.directive.d.ts +7 -0
  29. package/calendar/lib/brn-calendar-header.directive.d.ts +7 -0
  30. package/calendar/lib/brn-calendar-next-button.directive.d.ts +13 -0
  31. package/calendar/lib/brn-calendar-previous-button.directive.d.ts +13 -0
  32. package/calendar/lib/brn-calendar-week.directive.d.ts +25 -0
  33. package/calendar/lib/brn-calendar-weekday.directive.d.ts +25 -0
  34. package/calendar/lib/brn-calendar.directive.d.ts +55 -0
  35. package/calendar/lib/brn-calendar.token.d.ts +8 -0
  36. package/calendar/lib/i18n/calendar-i18n.d.ts +17 -0
  37. package/checkbox/lib/brn-checkbox.component.d.ts +1 -1
  38. package/collapsible/README.md +3 -0
  39. package/collapsible/index.d.ts +16 -0
  40. package/collapsible/lib/brn-collapsible-content.component.d.ts +19 -0
  41. package/collapsible/lib/brn-collapsible-trigger.directive.d.ts +12 -0
  42. package/collapsible/lib/brn-collapsible.component.d.ts +11 -0
  43. package/command/README.md +3 -0
  44. package/command/index.d.ts +33 -0
  45. package/command/lib/brn-command-empty.directive.d.ts +6 -0
  46. package/command/lib/brn-command-group.component.d.ts +6 -0
  47. package/command/lib/brn-command-input.directive.d.ts +6 -0
  48. package/command/lib/brn-command-item.directive.d.ts +6 -0
  49. package/command/lib/brn-command-list.component.d.ts +6 -0
  50. package/command/lib/brn-command-loader.directive.d.ts +6 -0
  51. package/command/lib/brn-command-separator.component.d.ts +6 -0
  52. package/command/lib/brn-command.component.d.ts +6 -0
  53. package/date-time/README.md +3 -0
  54. package/date-time/index.d.ts +2 -0
  55. package/date-time/lib/date-adapter.d.ts +176 -0
  56. package/date-time/lib/native-date-adapter.d.ts +103 -0
  57. package/date-time-luxon/README.md +3 -0
  58. package/date-time-luxon/index.d.ts +1 -0
  59. package/date-time-luxon/lib/date-adapter.d.ts +29 -0
  60. package/dialog/README.md +3 -0
  61. package/dialog/index.d.ts +33 -0
  62. package/dialog/lib/brn-dialog-close.directive.d.ts +10 -0
  63. package/dialog/lib/brn-dialog-content.directive.d.ts +12 -0
  64. package/dialog/lib/brn-dialog-description.directive.d.ts +8 -0
  65. package/dialog/lib/brn-dialog-options.d.ts +26 -0
  66. package/dialog/lib/brn-dialog-overlay.component.d.ts +8 -0
  67. package/dialog/lib/brn-dialog-ref.d.ts +24 -0
  68. package/dialog/lib/brn-dialog-state.d.ts +1 -0
  69. package/dialog/lib/brn-dialog-title.directive.d.ts +8 -0
  70. package/dialog/lib/brn-dialog-trigger.directive.d.ts +16 -0
  71. package/dialog/lib/brn-dialog-utils.d.ts +1 -0
  72. package/dialog/lib/brn-dialog.component.d.ts +56 -0
  73. package/dialog/lib/brn-dialog.service.d.ts +22 -0
  74. package/esm2022/accordion/index.mjs +31 -0
  75. package/esm2022/accordion/lib/brn-accordion-content.component.mjs +50 -0
  76. package/esm2022/accordion/lib/brn-accordion.directive.mjs +180 -0
  77. package/esm2022/accordion/spartan-ng-brain-accordion.mjs +5 -0
  78. package/esm2022/alert-dialog/index.mjs +45 -0
  79. package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +17 -0
  80. package/esm2022/alert-dialog/lib/brn-alert-dialog-description.directive.mjs +18 -0
  81. package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +20 -0
  82. package/esm2022/alert-dialog/lib/brn-alert-dialog-title.directive.mjs +18 -0
  83. package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +27 -0
  84. package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +40 -0
  85. package/esm2022/alert-dialog/spartan-ng-brain-alert-dialog.mjs +5 -0
  86. package/esm2022/avatar/index.mjs +23 -0
  87. package/esm2022/avatar/lib/brn-avatar.component.mjs +31 -0
  88. package/esm2022/avatar/lib/fallback/brn-avatar-fallback.directive.mjs +21 -0
  89. package/esm2022/avatar/lib/fallback/index.mjs +2 -0
  90. package/esm2022/avatar/lib/image/brn-avatar-image.directive.mjs +29 -0
  91. package/esm2022/avatar/lib/image/index.mjs +2 -0
  92. package/esm2022/avatar/lib/util/hex-color-for.mjs +22 -0
  93. package/esm2022/avatar/lib/util/index.mjs +4 -0
  94. package/esm2022/avatar/lib/util/initials.pipe.mjs +27 -0
  95. package/esm2022/avatar/lib/util/is-bright.mjs +12 -0
  96. package/esm2022/avatar/spartan-ng-brain-avatar.mjs +5 -0
  97. package/esm2022/calendar/index.mjs +62 -0
  98. package/esm2022/calendar/lib/brn-calendar-cell-button.directive.mjs +160 -0
  99. package/esm2022/calendar/lib/brn-calendar-cell.directive.mjs +17 -0
  100. package/esm2022/calendar/lib/brn-calendar-grid.directive.mjs +21 -0
  101. package/esm2022/calendar/lib/brn-calendar-header.directive.mjs +22 -0
  102. package/esm2022/calendar/lib/brn-calendar-next-button.directive.mjs +42 -0
  103. package/esm2022/calendar/lib/brn-calendar-previous-button.directive.mjs +42 -0
  104. package/esm2022/calendar/lib/brn-calendar-week.directive.mjs +64 -0
  105. package/esm2022/calendar/lib/brn-calendar-weekday.directive.mjs +48 -0
  106. package/esm2022/calendar/lib/brn-calendar.directive.mjs +154 -0
  107. package/esm2022/calendar/lib/brn-calendar.token.mjs +12 -0
  108. package/esm2022/calendar/lib/i18n/calendar-i18n.mjs +33 -0
  109. package/esm2022/calendar/spartan-ng-brain-calendar.mjs +5 -0
  110. package/esm2022/checkbox/lib/brn-checkbox.component.mjs +1 -1
  111. package/esm2022/collapsible/index.mjs +30 -0
  112. package/esm2022/collapsible/lib/brn-collapsible-content.component.mjs +61 -0
  113. package/esm2022/collapsible/lib/brn-collapsible-trigger.directive.mjs +35 -0
  114. package/esm2022/collapsible/lib/brn-collapsible.component.mjs +33 -0
  115. package/esm2022/collapsible/spartan-ng-brain-collapsible.mjs +5 -0
  116. package/esm2022/command/index.mjs +64 -0
  117. package/esm2022/command/lib/brn-command-empty.directive.mjs +29 -0
  118. package/esm2022/command/lib/brn-command-group.component.mjs +45 -0
  119. package/esm2022/command/lib/brn-command-input.directive.mjs +29 -0
  120. package/esm2022/command/lib/brn-command-item.directive.mjs +36 -0
  121. package/esm2022/command/lib/brn-command-list.component.mjs +35 -0
  122. package/esm2022/command/lib/brn-command-loader.directive.mjs +29 -0
  123. package/esm2022/command/lib/brn-command-separator.component.mjs +30 -0
  124. package/esm2022/command/lib/brn-command.component.mjs +21 -0
  125. package/esm2022/command/spartan-ng-brain-command.mjs +5 -0
  126. package/esm2022/date-time/index.mjs +3 -0
  127. package/esm2022/date-time/lib/date-adapter.mjs +16 -0
  128. package/esm2022/date-time/lib/native-date-adapter.mjs +155 -0
  129. package/esm2022/date-time/spartan-ng-brain-date-time.mjs +5 -0
  130. package/esm2022/date-time-luxon/index.mjs +2 -0
  131. package/esm2022/date-time-luxon/lib/date-adapter.mjs +85 -0
  132. package/esm2022/date-time-luxon/spartan-ng-brain-date-time-luxon.mjs +5 -0
  133. package/esm2022/dialog/index.mjs +55 -0
  134. package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +29 -0
  135. package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +41 -0
  136. package/esm2022/dialog/lib/brn-dialog-description.directive.mjs +25 -0
  137. package/esm2022/dialog/lib/brn-dialog-options.mjs +19 -0
  138. package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +29 -0
  139. package/esm2022/dialog/lib/brn-dialog-ref.mjs +53 -0
  140. package/esm2022/dialog/lib/brn-dialog-state.mjs +2 -0
  141. package/esm2022/dialog/lib/brn-dialog-title.directive.mjs +25 -0
  142. package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +39 -0
  143. package/esm2022/dialog/lib/brn-dialog-utils.mjs +12 -0
  144. package/esm2022/dialog/lib/brn-dialog.component.mjs +208 -0
  145. package/esm2022/dialog/lib/brn-dialog.service.mjs +127 -0
  146. package/esm2022/dialog/spartan-ng-brain-dialog.mjs +5 -0
  147. package/esm2022/form-field/index.mjs +2 -0
  148. package/esm2022/form-field/lib/brn-form-field-control.mjs +14 -0
  149. package/esm2022/form-field/spartan-ng-brain-form-field.mjs +5 -0
  150. package/esm2022/forms/index.mjs +4 -0
  151. package/esm2022/forms/lib/control-value-accessor.mjs +2 -0
  152. package/esm2022/forms/lib/error-options.mjs +26 -0
  153. package/esm2022/forms/lib/error-state-tracker.mjs +29 -0
  154. package/esm2022/forms/spartan-ng-brain-forms.mjs +5 -0
  155. package/esm2022/hover-card/index.mjs +29 -0
  156. package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +205 -0
  157. package/esm2022/hover-card/lib/brn-hover-card.component.mjs +34 -0
  158. package/esm2022/hover-card/lib/createHoverObservable.mjs +19 -0
  159. package/esm2022/hover-card/spartan-ng-brain-hover-card.mjs +5 -0
  160. package/esm2022/label/index.mjs +17 -0
  161. package/esm2022/label/lib/brn-label.directive.mjs +49 -0
  162. package/esm2022/label/spartan-ng-brain-label.mjs +5 -0
  163. package/esm2022/menu/index.mjs +100 -0
  164. package/esm2022/menu/lib/brn-context-menu-trigger.directive.mjs +40 -0
  165. package/esm2022/menu/lib/brn-menu-align.mjs +15 -0
  166. package/esm2022/menu/lib/brn-menu-bar.directive.mjs +17 -0
  167. package/esm2022/menu/lib/brn-menu-group.directive.mjs +17 -0
  168. package/esm2022/menu/lib/brn-menu-item-checkbox.directive.mjs +30 -0
  169. package/esm2022/menu/lib/brn-menu-item-radio.directive.mjs +30 -0
  170. package/esm2022/menu/lib/brn-menu-item.directive.mjs +27 -0
  171. package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +36 -0
  172. package/esm2022/menu/lib/brn-menu.directive.mjs +50 -0
  173. package/esm2022/menu/spartan-ng-brain-menu.mjs +5 -0
  174. package/esm2022/popover/index.mjs +35 -0
  175. package/esm2022/popover/lib/brn-popover-close.directive.mjs +15 -0
  176. package/esm2022/popover/lib/brn-popover-content.directive.mjs +17 -0
  177. package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +37 -0
  178. package/esm2022/popover/lib/brn-popover.component.mjs +81 -0
  179. package/esm2022/popover/spartan-ng-brain-popover.mjs +5 -0
  180. package/esm2022/progress/index.mjs +21 -0
  181. package/esm2022/progress/lib/brn-progress-indicator.component.mjs +22 -0
  182. package/esm2022/progress/lib/brn-progress.component.mjs +61 -0
  183. package/esm2022/progress/lib/brn-progress.token.mjs +9 -0
  184. package/esm2022/progress/spartan-ng-brain-progress.mjs +5 -0
  185. package/esm2022/radio-group/index.mjs +20 -0
  186. package/esm2022/radio-group/lib/brn-radio-group.component.mjs +90 -0
  187. package/esm2022/radio-group/lib/brn-radio-group.token.mjs +9 -0
  188. package/esm2022/radio-group/lib/brn-radio.component.mjs +185 -0
  189. package/esm2022/radio-group/spartan-ng-brain-radio-group.mjs +5 -0
  190. package/esm2022/select/index.mjs +56 -0
  191. package/esm2022/select/lib/brn-select-content.component.mjs +204 -0
  192. package/esm2022/select/lib/brn-select-group.directive.mjs +19 -0
  193. package/esm2022/select/lib/brn-select-label.directive.mjs +23 -0
  194. package/esm2022/select/lib/brn-select-option.directive.mjs +65 -0
  195. package/esm2022/select/lib/brn-select-value.component.mjs +46 -0
  196. package/esm2022/select/lib/brn-select.component.mjs +358 -0
  197. package/esm2022/select/lib/brn-select.service.mjs +197 -0
  198. package/esm2022/select/spartan-ng-brain-select.mjs +5 -0
  199. package/esm2022/separator/index.mjs +17 -0
  200. package/esm2022/separator/lib/brn-separator.component.mjs +24 -0
  201. package/esm2022/separator/spartan-ng-brain-separator.mjs +5 -0
  202. package/esm2022/sheet/index.mjs +50 -0
  203. package/esm2022/sheet/lib/brn-sheet-close.directive.mjs +15 -0
  204. package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +25 -0
  205. package/esm2022/sheet/lib/brn-sheet-description.directive.mjs +18 -0
  206. package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +20 -0
  207. package/esm2022/sheet/lib/brn-sheet-title.directive.mjs +18 -0
  208. package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +26 -0
  209. package/esm2022/sheet/lib/brn-sheet.component.mjs +55 -0
  210. package/esm2022/sheet/spartan-ng-brain-sheet.mjs +5 -0
  211. package/esm2022/slider/index.mjs +13 -0
  212. package/esm2022/slider/lib/brn-slider-thumb.directive.mjs +41 -0
  213. package/esm2022/slider/lib/brn-slider-tick-mark.directive.mjs +37 -0
  214. package/esm2022/slider/lib/brn-slider-track-active-fill.directive.mjs +29 -0
  215. package/esm2022/slider/lib/brn-slider-track.directive.mjs +290 -0
  216. package/esm2022/slider/spartan-ng-brain-slider.mjs +5 -0
  217. package/esm2022/switch/index.mjs +20 -0
  218. package/esm2022/switch/lib/brn-switch-thumb.component.mjs +16 -0
  219. package/esm2022/switch/lib/brn-switch.component.mjs +236 -0
  220. package/esm2022/switch/spartan-ng-brain-switch.mjs +5 -0
  221. package/esm2022/table/index.mjs +47 -0
  222. package/esm2022/table/lib/brn-cell-def.directive.mjs +22 -0
  223. package/esm2022/table/lib/brn-column-def.component.mjs +82 -0
  224. package/esm2022/table/lib/brn-column-manager.mjs +61 -0
  225. package/esm2022/table/lib/brn-footer-def.directive.mjs +22 -0
  226. package/esm2022/table/lib/brn-header-def.directive.mjs +22 -0
  227. package/esm2022/table/lib/brn-paginator.directive.mjs +109 -0
  228. package/esm2022/table/lib/brn-table.component.mjs +169 -0
  229. package/esm2022/table/spartan-ng-brain-table.mjs +5 -0
  230. package/esm2022/tabs/index.mjs +32 -0
  231. package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +65 -0
  232. package/esm2022/tabs/lib/brn-tabs-paginated-list.directive.mjs +525 -0
  233. package/esm2022/tabs/lib/brn-tabs-trigger.directive.mjs +134 -0
  234. package/esm2022/tabs/spartan-ng-brain-tabs.mjs +5 -0
  235. package/esm2022/toggle/index.mjs +31 -0
  236. package/esm2022/toggle/lib/brn-toggle-group.component.mjs +159 -0
  237. package/esm2022/toggle/lib/brn-toggle-group.token.mjs +9 -0
  238. package/esm2022/toggle/lib/brn-toggle.directive.mjs +65 -0
  239. package/esm2022/toggle/spartan-ng-brain-toggle.mjs +5 -0
  240. package/esm2022/tooltip/index.mjs +35 -0
  241. package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +228 -0
  242. package/esm2022/tooltip/lib/brn-tooltip-content.directive.mjs +22 -0
  243. package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +689 -0
  244. package/esm2022/tooltip/lib/brn-tooltip.directive.mjs +15 -0
  245. package/esm2022/tooltip/spartan-ng-brain-tooltip.mjs +5 -0
  246. package/fesm2022/spartan-ng-brain-accordion.mjs +259 -0
  247. package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -0
  248. package/fesm2022/spartan-ng-brain-alert-dialog.mjs +162 -0
  249. package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -0
  250. package/fesm2022/spartan-ng-brain-avatar.mjs +156 -0
  251. package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -0
  252. package/fesm2022/spartan-ng-brain-calendar.mjs +629 -0
  253. package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -0
  254. package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
  255. package/fesm2022/spartan-ng-brain-collapsible.mjs +152 -0
  256. package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -0
  257. package/fesm2022/spartan-ng-brain-command.mjs +284 -0
  258. package/fesm2022/spartan-ng-brain-command.mjs.map +1 -0
  259. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs +92 -0
  260. package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -0
  261. package/fesm2022/spartan-ng-brain-date-time.mjs +177 -0
  262. package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -0
  263. package/fesm2022/spartan-ng-brain-dialog.mjs +617 -0
  264. package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -0
  265. package/fesm2022/spartan-ng-brain-form-field.mjs +21 -0
  266. package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -0
  267. package/fesm2022/spartan-ng-brain-forms.mjs +61 -0
  268. package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -0
  269. package/fesm2022/spartan-ng-brain-hover-card.mjs +274 -0
  270. package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -0
  271. package/fesm2022/spartan-ng-brain-label.mjs +69 -0
  272. package/fesm2022/spartan-ng-brain-label.mjs.map +1 -0
  273. package/fesm2022/spartan-ng-brain-menu.mjs +316 -0
  274. package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -0
  275. package/fesm2022/spartan-ng-brain-popover.mjs +173 -0
  276. package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -0
  277. package/fesm2022/spartan-ng-brain-progress.mjs +108 -0
  278. package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -0
  279. package/fesm2022/spartan-ng-brain-radio-group.mjs +299 -0
  280. package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -0
  281. package/fesm2022/spartan-ng-brain-select.mjs +928 -0
  282. package/fesm2022/spartan-ng-brain-select.mjs.map +1 -0
  283. package/fesm2022/spartan-ng-brain-separator.mjs +44 -0
  284. package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -0
  285. package/fesm2022/spartan-ng-brain-sheet.mjs +197 -0
  286. package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -0
  287. package/fesm2022/spartan-ng-brain-slider.mjs +399 -0
  288. package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -0
  289. package/fesm2022/spartan-ng-brain-switch.mjs +271 -0
  290. package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -0
  291. package/fesm2022/spartan-ng-brain-table.mjs +506 -0
  292. package/fesm2022/spartan-ng-brain-table.mjs.map +1 -0
  293. package/fesm2022/spartan-ng-brain-tabs.mjs +748 -0
  294. package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -0
  295. package/fesm2022/spartan-ng-brain-toggle.mjs +260 -0
  296. package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -0
  297. package/fesm2022/spartan-ng-brain-tooltip.mjs +975 -0
  298. package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -0
  299. package/form-field/README.md +3 -0
  300. package/form-field/index.d.ts +1 -0
  301. package/form-field/lib/brn-form-field-control.d.ts +11 -0
  302. package/forms/README.md +3 -0
  303. package/forms/index.d.ts +3 -0
  304. package/forms/lib/control-value-accessor.d.ts +2 -0
  305. package/forms/lib/error-options.d.ts +14 -0
  306. package/forms/lib/error-state-tracker.d.ts +15 -0
  307. package/hover-card/README.md +3 -0
  308. package/hover-card/index.d.ts +14 -0
  309. package/hover-card/lib/brn-hover-card-content.service.d.ts +65 -0
  310. package/hover-card/lib/brn-hover-card.component.d.ts +9 -0
  311. package/hover-card/lib/createHoverObservable.d.ts +4 -0
  312. package/label/README.md +3 -0
  313. package/label/index.d.ts +8 -0
  314. package/label/lib/brn-label.directive.d.ts +15 -0
  315. package/menu/README.md +3 -0
  316. package/menu/index.d.ts +49 -0
  317. package/menu/lib/brn-context-menu-trigger.directive.d.ts +13 -0
  318. package/menu/lib/brn-menu-align.d.ts +3 -0
  319. package/menu/lib/brn-menu-bar.directive.d.ts +6 -0
  320. package/menu/lib/brn-menu-group.directive.d.ts +6 -0
  321. package/menu/lib/brn-menu-item-checkbox.directive.d.ts +11 -0
  322. package/menu/lib/brn-menu-item-radio.directive.d.ts +11 -0
  323. package/menu/lib/brn-menu-item.directive.d.ts +10 -0
  324. package/menu/lib/brn-menu-trigger.directive.d.ts +10 -0
  325. package/menu/lib/brn-menu.directive.d.ts +11 -0
  326. package/package.json +182 -9
  327. package/popover/README.md +3 -0
  328. package/popover/index.d.ts +19 -0
  329. package/popover/lib/brn-popover-close.directive.d.ts +6 -0
  330. package/popover/lib/brn-popover-content.directive.d.ts +6 -0
  331. package/popover/lib/brn-popover-trigger.directive.d.ts +10 -0
  332. package/popover/lib/brn-popover.component.d.ts +14 -0
  333. package/progress/README.md +3 -0
  334. package/progress/index.d.ts +14 -0
  335. package/progress/lib/brn-progress-indicator.component.d.ts +6 -0
  336. package/progress/lib/brn-progress.component.d.ts +15 -0
  337. package/progress/lib/brn-progress.token.d.ts +4 -0
  338. package/radio-group/README.md +3 -0
  339. package/radio-group/index.d.ts +13 -0
  340. package/radio-group/lib/brn-radio-group.component.d.ts +57 -0
  341. package/radio-group/lib/brn-radio-group.token.d.ts +4 -0
  342. package/radio-group/lib/brn-radio.component.d.ts +58 -0
  343. package/select/README.md +3 -0
  344. package/select/index.d.ts +28 -0
  345. package/select/lib/brn-select-content.component.d.ts +50 -0
  346. package/select/lib/brn-select-group.directive.d.ts +6 -0
  347. package/select/lib/brn-select-label.directive.d.ts +9 -0
  348. package/select/lib/brn-select-option.directive.d.ts +25 -0
  349. package/select/lib/brn-select-value.component.d.ts +11 -0
  350. package/select/lib/brn-select.component.d.ts +82 -0
  351. package/select/lib/brn-select.service.d.ts +67 -0
  352. package/separator/README.md +3 -0
  353. package/separator/index.d.ts +8 -0
  354. package/separator/lib/brn-separator.component.d.ts +11 -0
  355. package/sheet/README.md +3 -0
  356. package/sheet/index.d.ts +28 -0
  357. package/sheet/lib/brn-sheet-close.directive.d.ts +6 -0
  358. package/sheet/lib/brn-sheet-content.directive.d.ts +8 -0
  359. package/sheet/lib/brn-sheet-description.directive.d.ts +6 -0
  360. package/sheet/lib/brn-sheet-overlay.component.d.ts +6 -0
  361. package/sheet/lib/brn-sheet-title.directive.d.ts +6 -0
  362. package/sheet/lib/brn-sheet-trigger.directive.d.ts +9 -0
  363. package/sheet/lib/brn-sheet.component.d.ts +9 -0
  364. package/slider/README.md +3 -0
  365. package/slider/index.d.ts +7 -0
  366. package/slider/lib/brn-slider-thumb.directive.d.ts +17 -0
  367. package/slider/lib/brn-slider-tick-mark.directive.d.ts +15 -0
  368. package/slider/lib/brn-slider-track-active-fill.directive.d.ts +10 -0
  369. package/slider/lib/brn-slider-track.directive.d.ts +139 -0
  370. package/switch/README.md +3 -0
  371. package/switch/index.d.ts +13 -0
  372. package/switch/lib/brn-switch-thumb.component.d.ts +5 -0
  373. package/switch/lib/brn-switch.component.d.ts +58 -0
  374. package/table/README.md +3 -0
  375. package/table/index.d.ts +26 -0
  376. package/table/lib/brn-cell-def.directive.d.ts +9 -0
  377. package/table/lib/brn-column-def.component.d.ts +18 -0
  378. package/table/lib/brn-column-manager.d.ts +26 -0
  379. package/table/lib/brn-footer-def.directive.d.ts +9 -0
  380. package/table/lib/brn-header-def.directive.d.ts +9 -0
  381. package/table/lib/brn-paginator.directive.d.ts +41 -0
  382. package/table/lib/brn-table.component.d.ts +37 -0
  383. package/tabs/README.md +3 -0
  384. package/tabs/index.d.ts +14 -0
  385. package/tabs/lib/brn-tabs-list.directive.d.ts +17 -0
  386. package/tabs/lib/brn-tabs-paginated-list.directive.d.ts +196 -0
  387. package/tabs/lib/brn-tabs-trigger.directive.d.ts +61 -0
  388. package/toggle/README.md +3 -0
  389. package/toggle/index.d.ts +15 -0
  390. package/toggle/lib/brn-toggle-group.component.d.ts +68 -0
  391. package/toggle/lib/brn-toggle-group.token.d.ts +4 -0
  392. package/toggle/lib/brn-toggle.directive.d.ts +25 -0
  393. package/tooltip/README.md +3 -0
  394. package/tooltip/index.d.ts +19 -0
  395. package/tooltip/lib/brn-tooltip-content.component.d.ts +73 -0
  396. package/tooltip/lib/brn-tooltip-content.directive.d.ts +8 -0
  397. package/tooltip/lib/brn-tooltip-trigger.directive.d.ts +177 -0
  398. package/tooltip/lib/brn-tooltip.directive.d.ts +7 -0
@@ -0,0 +1,975 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ChangeDetectorRef, PLATFORM_ID, Renderer2, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Directive, TemplateRef, InjectionToken, ElementRef, ViewContainerRef, NgZone, effect, isDevMode, booleanAttribute, numberAttribute, Input, NgModule } from '@angular/core';
3
+ import { isPlatformBrowser, NgTemplateOutlet, DOCUMENT } from '@angular/common';
4
+ import { Subject } from 'rxjs';
5
+ import { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';
6
+ import { Directionality } from '@angular/cdk/bidi';
7
+ import { hasModifierKey } from '@angular/cdk/keycodes';
8
+ import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
9
+ import { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';
10
+ import { ComponentPortal } from '@angular/cdk/portal';
11
+ import { brnDevMode } from '@spartan-ng/ui-core';
12
+ import { takeUntil, take } from 'rxjs/operators';
13
+
14
+ /**
15
+ * We are building on shoulders of giants here and adapt the implementation provided by the incredible Angular
16
+ * team: https://github.com/angular/components/blob/main/src/material/tooltip/tooltip.ts
17
+ * Check them out! Give them a try! Leave a star! Their work is incredible!
18
+ */
19
+ /**
20
+ * Internal component that wraps the tooltip's content.
21
+ * @docs-private
22
+ */
23
+ class BrnTooltipContentComponent {
24
+ _cdr = inject(ChangeDetectorRef);
25
+ _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
26
+ _renderer2 = inject(Renderer2);
27
+ _contentHovered = signal(false);
28
+ _tooltipClasses = signal('');
29
+ side = signal('above');
30
+ /** Message to display in the tooltip */
31
+ content = null;
32
+ /** The timeout ID of any current timer set to show the tooltip */
33
+ _showTimeoutId;
34
+ /** The timeout ID of any current timer set to hide the tooltip */
35
+ _hideTimeoutId;
36
+ /** The timeout ID of any current timer set to animate the tooltip */
37
+ _animateTimeoutId;
38
+ /** Element that caused the tooltip to open. */
39
+ _triggerElement;
40
+ /** Amount of milliseconds to delay the closing sequence. */
41
+ _mouseLeaveHideDelay = 0;
42
+ /** Amount of milliseconds of closing animation. */
43
+ _exitAnimationDuration = 0;
44
+ /** Reference to the internal tooltip element. */
45
+ _tooltip;
46
+ /** Whether interactions on the page should close the tooltip */
47
+ _closeOnInteraction = false;
48
+ /** Whether the tooltip is currently visible. */
49
+ _isVisible = false;
50
+ /** Subject for notifying that the tooltip has been hidden from the view */
51
+ _onHide = new Subject();
52
+ afterHidden = this._onHide.asObservable();
53
+ /**
54
+ * Shows the tooltip with originating from the provided origin
55
+ * @param delay Amount of milliseconds to the delay showing the tooltip.
56
+ */
57
+ show(delay) {
58
+ // Cancel the delayed hide if it is scheduled
59
+ if (this._hideTimeoutId !== null) {
60
+ clearTimeout(this._hideTimeoutId);
61
+ }
62
+ if (this._animateTimeoutId !== null) {
63
+ clearTimeout(this._animateTimeoutId);
64
+ }
65
+ this._showTimeoutId = setTimeout(() => {
66
+ this._toggleDataAttributes(true, this.side());
67
+ this._toggleVisibility(true);
68
+ this._showTimeoutId = undefined;
69
+ }, delay);
70
+ }
71
+ /**
72
+ * Begins to hide the tooltip after the provided delay in ms.
73
+ * @param delay Amount of milliseconds to delay hiding the tooltip.
74
+ * @param exitAnimationDuration Time before hiding to finish animation
75
+ * */
76
+ hide(delay, exitAnimationDuration) {
77
+ // Cancel the delayed show if it is scheduled
78
+ if (this._showTimeoutId !== null) {
79
+ clearTimeout(this._showTimeoutId);
80
+ }
81
+ // start out animation at delay minus animation delay or immediately if possible
82
+ this._animateTimeoutId = setTimeout(() => {
83
+ this._animateTimeoutId = undefined;
84
+ if (this._contentHovered())
85
+ return;
86
+ this._toggleDataAttributes(false, this.side());
87
+ }, Math.max(delay, 0));
88
+ this._hideTimeoutId = setTimeout(() => {
89
+ this._hideTimeoutId = undefined;
90
+ if (this._contentHovered())
91
+ return;
92
+ this._toggleVisibility(false);
93
+ }, delay + exitAnimationDuration);
94
+ }
95
+ /** Whether the tooltip is being displayed. */
96
+ isVisible() {
97
+ return this._isVisible;
98
+ }
99
+ ngOnDestroy() {
100
+ this._cancelPendingAnimations();
101
+ this._onHide.complete();
102
+ this._triggerElement = undefined;
103
+ }
104
+ _isTypeOfString(content) {
105
+ return typeof content === 'string';
106
+ }
107
+ /**
108
+ * Interactions on the HTML body should close the tooltip immediately as defined in the
109
+ * material design spec.
110
+ * https://material.io/design/components/tooltips.html#behavior
111
+ */
112
+ _handleBodyInteraction() {
113
+ if (this._closeOnInteraction) {
114
+ this.hide(0, 0);
115
+ }
116
+ }
117
+ /**
118
+ * Marks that the tooltip needs to be checked in the next change detection run.
119
+ * Mainly used for rendering the initial text before positioning a tooltip, which
120
+ * can be problematic in components with OnPush change detection.
121
+ */
122
+ _markForCheck() {
123
+ this._cdr.markForCheck();
124
+ }
125
+ _handleMouseLeave({ relatedTarget }) {
126
+ if (!relatedTarget || !this._triggerElement?.contains(relatedTarget)) {
127
+ if (this.isVisible()) {
128
+ this.hide(this._mouseLeaveHideDelay, this._exitAnimationDuration);
129
+ }
130
+ else {
131
+ this._finalize(false);
132
+ }
133
+ }
134
+ this._contentHovered.set(false);
135
+ }
136
+ /** Cancels any pending animation sequences. */
137
+ _cancelPendingAnimations() {
138
+ if (this._showTimeoutId !== null) {
139
+ clearTimeout(this._showTimeoutId);
140
+ }
141
+ if (this._hideTimeoutId !== null) {
142
+ clearTimeout(this._hideTimeoutId);
143
+ }
144
+ this._showTimeoutId = this._hideTimeoutId = undefined;
145
+ }
146
+ _finalize(toVisible) {
147
+ if (toVisible) {
148
+ this._closeOnInteraction = true;
149
+ }
150
+ else if (!this.isVisible()) {
151
+ this._onHide.next();
152
+ }
153
+ }
154
+ /** Toggles the visibility of the tooltip element. */
155
+ _toggleVisibility(isVisible) {
156
+ // We set the classes directly here ourselves so that toggling the tooltip state
157
+ // isn't bound by change detection. This allows us to hide it even if the
158
+ // view ref has been detached from the CD tree.
159
+ const tooltip = this._tooltip?.nativeElement;
160
+ if (!tooltip || !this._isBrowser)
161
+ return;
162
+ this._renderer2.setStyle(tooltip, 'visibility', isVisible ? 'visible' : 'hidden');
163
+ if (isVisible) {
164
+ this._renderer2.removeStyle(tooltip, 'display');
165
+ }
166
+ else {
167
+ this._renderer2.setStyle(tooltip, 'display', 'none');
168
+ }
169
+ this._isVisible = isVisible;
170
+ }
171
+ _toggleDataAttributes(isVisible, side) {
172
+ // We set the classes directly here ourselves so that toggling the tooltip state
173
+ // isn't bound by change detection. This allows us to hide it even if the
174
+ // view ref has been detached from the CD tree.
175
+ const tooltip = this._tooltip?.nativeElement;
176
+ if (!tooltip || !this._isBrowser)
177
+ return;
178
+ this._renderer2.setAttribute(tooltip, 'data-side', side);
179
+ this._renderer2.setAttribute(tooltip, 'data-state', isVisible ? 'open' : 'closed');
180
+ }
181
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
182
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: BrnTooltipContentComponent, isStandalone: true, selector: "brn-tooltip-content", host: { attributes: { "aria-hidden": "true" }, listeners: { "mouseleave": "_handleMouseLeave($event)" }, properties: { "style.zoom": "isVisible() ? 1 : null" } }, viewQueries: [{ propertyName: "_tooltip", first: true, predicate: ["tooltip"], descendants: true, static: true }], ngImport: i0, template: `
183
+ <div
184
+ (mouseenter)="_contentHovered.set(true)"
185
+ (mouseleave)="_contentHovered.set(false)"
186
+ [class]="_tooltipClasses()"
187
+ [style.visibility]="'hidden'"
188
+ #tooltip
189
+ >
190
+ @if (_isTypeOfString(content)) {
191
+ {{ content }}
192
+ } @else {
193
+ <ng-container [ngTemplateOutlet]="content" />
194
+ }
195
+ </div>
196
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
197
+ }
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipContentComponent, decorators: [{
199
+ type: Component,
200
+ args: [{
201
+ selector: 'brn-tooltip-content',
202
+ standalone: true,
203
+ template: `
204
+ <div
205
+ (mouseenter)="_contentHovered.set(true)"
206
+ (mouseleave)="_contentHovered.set(false)"
207
+ [class]="_tooltipClasses()"
208
+ [style.visibility]="'hidden'"
209
+ #tooltip
210
+ >
211
+ @if (_isTypeOfString(content)) {
212
+ {{ content }}
213
+ } @else {
214
+ <ng-container [ngTemplateOutlet]="content" />
215
+ }
216
+ </div>
217
+ `,
218
+ encapsulation: ViewEncapsulation.None,
219
+ changeDetection: ChangeDetectionStrategy.OnPush,
220
+ host: {
221
+ // Forces the element to have a layout in IE and Edge. This fixes issues where the element
222
+ // won't be rendered if the animations are disabled or there is no web animations polyfill.
223
+ '[style.zoom]': 'isVisible() ? 1 : null',
224
+ '(mouseleave)': '_handleMouseLeave($event)',
225
+ 'aria-hidden': 'true',
226
+ },
227
+ imports: [NgTemplateOutlet],
228
+ }]
229
+ }], propDecorators: { _tooltip: [{
230
+ type: ViewChild,
231
+ args: ['tooltip', {
232
+ // Use a static query here since we interact directly with
233
+ // the DOM which can happen before `ngAfterViewInit`.
234
+ static: true,
235
+ }]
236
+ }] } });
237
+
238
+ class BrnTooltipDirective {
239
+ tooltipTemplate = signal(null);
240
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
241
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnTooltipDirective, isStandalone: true, selector: "[brnTooltip]", ngImport: i0 });
242
+ }
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipDirective, decorators: [{
244
+ type: Directive,
245
+ args: [{
246
+ selector: '[brnTooltip]',
247
+ standalone: true,
248
+ }]
249
+ }] });
250
+
251
+ class BrnTooltipContentDirective {
252
+ _brnTooltipDirective = inject(BrnTooltipDirective, { optional: true });
253
+ _tpl = inject(TemplateRef);
254
+ constructor() {
255
+ if (!this._brnTooltipDirective || !this._tpl)
256
+ return;
257
+ this._brnTooltipDirective.tooltipTemplate.set(this._tpl);
258
+ }
259
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
260
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnTooltipContentDirective, isStandalone: true, selector: "[brnTooltipContent]", ngImport: i0 });
261
+ }
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipContentDirective, decorators: [{
263
+ type: Directive,
264
+ args: [{
265
+ selector: '[brnTooltipContent]',
266
+ standalone: true,
267
+ }]
268
+ }], ctorParameters: () => [] });
269
+
270
+ /**
271
+ * We are building on shoulders of giants here and adapt the implementation provided by the incredible Angular
272
+ * team: https://github.com/angular/components/blob/main/src/material/tooltip/tooltip.ts
273
+ * Check them out! Give them a try! Leave a star! Their work is incredible!
274
+ */
275
+ /**
276
+ * @license
277
+ * Copyright Google LLC All Rights Reserved.
278
+ *
279
+ * Use of this source code is governed by an MIT-style license that can be
280
+ * found in the LICENSE file at https://angular.io/license
281
+ */
282
+ /** Time in ms to throttle repositioning after scroll events. */
283
+ const SCROLL_THROTTLE_MS = 20;
284
+ function getBrnTooltipInvalidPositionError(position) {
285
+ return Error(`Tooltip position "${position}" is invalid.`);
286
+ }
287
+ /** Injection token that determines the scroll handling while a tooltip is visible. */
288
+ const BRN_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('brn-tooltip-scroll-strategy');
289
+ const BRN_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {
290
+ provide: BRN_TOOLTIP_SCROLL_STRATEGY,
291
+ deps: [Overlay],
292
+ useFactory: (overlay) => () => overlay.scrollStrategies.reposition({ scrollThrottle: SCROLL_THROTTLE_MS }),
293
+ };
294
+ function BRN_TOOLTIP_DEFAULT_OPTIONS_FACTORY() {
295
+ return {
296
+ showDelay: 0,
297
+ hideDelay: 0,
298
+ touchendHideDelay: 1500,
299
+ };
300
+ }
301
+ const BRN_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken('mat-tooltip-default-options', {
302
+ providedIn: 'root',
303
+ factory: BRN_TOOLTIP_DEFAULT_OPTIONS_FACTORY,
304
+ });
305
+ const PANEL_CLASS = 'tooltip-panel';
306
+ /** Options used to bind passive event listeners. */
307
+ const passiveListenerOptions = normalizePassiveListenerOptions({ passive: true });
308
+ /**
309
+ * Time between the user putting the pointer on a tooltip
310
+ * trigger and the long press event being fired.
311
+ */
312
+ const LONGPRESS_DELAY = 500;
313
+ // These constants were taken from MDC's `numbers` object.
314
+ const MIN_VIEWPORT_TOOLTIP_THRESHOLD = 8;
315
+ const UNBOUNDED_ANCHOR_GAP = 8;
316
+ class BrnTooltipTriggerDirective {
317
+ _tooltipDirective = inject(BrnTooltipDirective, { optional: true });
318
+ _tooltipComponent = BrnTooltipContentComponent;
319
+ _cssClassPrefix = 'brn';
320
+ _destroyed = new Subject();
321
+ _passiveListeners = [];
322
+ _defaultOptions = inject(BRN_TOOLTIP_DEFAULT_OPTIONS, { optional: true });
323
+ _overlay = inject(Overlay);
324
+ _elementRef = inject((ElementRef));
325
+ _scrollDispatcher = inject(ScrollDispatcher);
326
+ _viewContainerRef = inject(ViewContainerRef);
327
+ _ngZone = inject(NgZone);
328
+ _platform = inject(Platform);
329
+ _ariaDescriber = inject(AriaDescriber);
330
+ _focusMonitor = inject(FocusMonitor);
331
+ _dir = inject(Directionality);
332
+ _scrollStrategy = inject(BRN_TOOLTIP_SCROLL_STRATEGY);
333
+ _document = inject(DOCUMENT);
334
+ _portal;
335
+ _viewInitialized = false;
336
+ _pointerExitEventsInitialized = false;
337
+ _viewportMargin = 8;
338
+ _currentPosition;
339
+ _touchstartTimeout;
340
+ _overlayRef = null;
341
+ _tooltipInstance = null;
342
+ /** Allows the user to define the position of the tooltip relative to the parent element */
343
+ _position = signal('above');
344
+ get position() {
345
+ return this._position();
346
+ }
347
+ set position(value) {
348
+ if (value !== this._position()) {
349
+ this._position.set(value);
350
+ if (this._overlayRef) {
351
+ this._updatePosition(this._overlayRef);
352
+ this._tooltipInstance?.show(0);
353
+ this._overlayRef.updatePosition();
354
+ }
355
+ }
356
+ }
357
+ /**
358
+ * Whether tooltip should be relative to the click or touch origin
359
+ * instead of outside the element bounding box.
360
+ */
361
+ _positionAtOrigin = signal(false);
362
+ get positionAtOrigin() {
363
+ return this._positionAtOrigin();
364
+ }
365
+ set positionAtOrigin(value) {
366
+ this._positionAtOrigin.set(value);
367
+ this._detach();
368
+ this._overlayRef = null;
369
+ }
370
+ /** Disables the display of the tooltip. */
371
+ _disabled = signal(false);
372
+ get disabled() {
373
+ return this._disabled();
374
+ }
375
+ set disabled(value) {
376
+ this._disabled.set(value);
377
+ // If tooltip is disabled, hide immediately.
378
+ if (value) {
379
+ this.hide(0);
380
+ }
381
+ else {
382
+ this._setupPointerEnterEventsIfNeeded();
383
+ }
384
+ }
385
+ /** The default delay in ms before showing the tooltip after show is called */
386
+ _showDelay = signal(0);
387
+ get showDelay() {
388
+ return this._showDelay();
389
+ }
390
+ set showDelay(value) {
391
+ this._showDelay.set(value);
392
+ }
393
+ /** The default delay in ms before hiding the tooltip after hide is called */
394
+ _hideDelay = signal(0);
395
+ get hideDelay() {
396
+ return this._hideDelay();
397
+ }
398
+ set hideDelay(value) {
399
+ this._hideDelay.set(value);
400
+ if (this._tooltipInstance) {
401
+ this._tooltipInstance._mouseLeaveHideDelay = this._hideDelay();
402
+ }
403
+ }
404
+ /** The default duration in ms that exit animation takes before hiding */
405
+ _exitAnimationDuration = signal(0);
406
+ get exitAnimationDuration() {
407
+ return this._exitAnimationDuration();
408
+ }
409
+ set exitAnimationDuration(value) {
410
+ this._exitAnimationDuration.set(value);
411
+ if (this._tooltipInstance) {
412
+ this._tooltipInstance._exitAnimationDuration = this._exitAnimationDuration();
413
+ }
414
+ }
415
+ /** The default delay in ms before hiding the tooltip after hide is called */
416
+ _tooltipContentClasses = signal('');
417
+ get tooltipContentClasses() {
418
+ return this._tooltipContentClasses();
419
+ }
420
+ set tooltipContentClasses(value) {
421
+ this._tooltipContentClasses.set(value ?? '');
422
+ if (this._tooltipInstance) {
423
+ this._tooltipInstance._tooltipClasses.set(value ?? '');
424
+ }
425
+ }
426
+ /**
427
+ * How touch gestures should be handled by the tooltip. On touch devices the tooltip directive
428
+ * uses a long press gesture to show and hide, however it can conflict with the native browser
429
+ * gestures. To work around the conflict, Angular Material disables native gestures on the
430
+ * trigger, but that might not be desirable on particular elements (e.g. inputs and draggable
431
+ * elements). The different values for this option configure the touch event handling as follows:
432
+ * - `auto` - Enables touch gestures for all elements, but tries to avoid conflicts with native
433
+ * browser gestures on particular elements. In particular, it allows text selection on inputs
434
+ * and textareas, and preserves the native browser dragging on elements marked as `draggable`.
435
+ * - `on` - Enables touch gestures for all elements and disables native
436
+ * browser gestures with no exceptions.
437
+ * - `off` - Disables touch gestures. Note that this will prevent the tooltip from
438
+ * showing on touch devices.
439
+ */
440
+ _touchGestures = signal('auto');
441
+ set touchGestures(value) {
442
+ this._touchGestures.set(value);
443
+ }
444
+ get touchGestures() {
445
+ return this._touchGestures();
446
+ }
447
+ /** The message to be used to describe the aria in the tooltip */
448
+ _ariaDescribedBy = '';
449
+ get ariaDescribedBy() {
450
+ return this._ariaDescribedBy;
451
+ }
452
+ set ariaDescribedBy(value) {
453
+ this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._ariaDescribedBy, 'tooltip');
454
+ // If the message is not a string (e.g. number), convert it to a string and trim it.
455
+ // Must convert with `String(value)`, not `${value}`, otherwise Closure Compiler optimises
456
+ // away the string-conversion: https://github.com/angular/components/issues/20684
457
+ this._ariaDescribedBy = value !== null ? String(value).trim() : '';
458
+ if (this._ariaDescribedBy && !this._isTooltipVisible()) {
459
+ this._ngZone.runOutsideAngular(() => {
460
+ // The `AriaDescriber` has some functionality that avoids adding a description if it's the
461
+ // same as the `aria-label` of an element, however we can't know whether the tooltip trigger
462
+ // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the
463
+ // issue by deferring the description by a tick so Angular has time to set the `aria-label`.
464
+ Promise.resolve().then(() => {
465
+ this._ariaDescriber.describe(this._elementRef.nativeElement, this._ariaDescribedBy, 'tooltip');
466
+ });
467
+ });
468
+ }
469
+ }
470
+ /** The content to be displayed in the tooltip */
471
+ _content = null;
472
+ get content() {
473
+ return this._content;
474
+ }
475
+ set content(value) {
476
+ this._content = value;
477
+ if (!this._content && this._isTooltipVisible()) {
478
+ this.hide(0);
479
+ }
480
+ else {
481
+ this._setupPointerEnterEventsIfNeeded();
482
+ this._updateTooltipContent();
483
+ }
484
+ }
485
+ constructor() {
486
+ if (this._defaultOptions) {
487
+ this._showDelay.set(this._defaultOptions.showDelay);
488
+ this._hideDelay.set(this._defaultOptions.hideDelay);
489
+ if (this._defaultOptions.position) {
490
+ this.position = this._defaultOptions.position;
491
+ }
492
+ if (this._defaultOptions.positionAtOrigin) {
493
+ this.positionAtOrigin = this._defaultOptions.positionAtOrigin;
494
+ }
495
+ if (this._defaultOptions.touchGestures) {
496
+ this.touchGestures = this._defaultOptions.touchGestures;
497
+ }
498
+ }
499
+ this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {
500
+ if (this._overlayRef) {
501
+ this._updatePosition(this._overlayRef);
502
+ }
503
+ });
504
+ this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;
505
+ if (this._tooltipDirective) {
506
+ effect(() => {
507
+ if (this._tooltipDirective) {
508
+ this.content = this._tooltipDirective.tooltipTemplate();
509
+ }
510
+ });
511
+ }
512
+ }
513
+ ngAfterViewInit() {
514
+ // This needs to happen after view init so the initial values for all inputs have been set.
515
+ this._viewInitialized = true;
516
+ this._setupPointerEnterEventsIfNeeded();
517
+ this._focusMonitor
518
+ .monitor(this._elementRef)
519
+ .pipe(takeUntil(this._destroyed))
520
+ .subscribe((origin) => {
521
+ // Note that the focus monitor runs outside the Angular zone.
522
+ if (!origin) {
523
+ this._ngZone.run(() => this.hide(0));
524
+ }
525
+ else if (origin === 'keyboard') {
526
+ this._ngZone.run(() => this.show());
527
+ }
528
+ });
529
+ if (brnDevMode && !this._ariaDescribedBy) {
530
+ console.warn('BrnTooltip: "aria-describedby" attribute is required for accessibility');
531
+ }
532
+ }
533
+ /**
534
+ * Dispose the tooltip when destroyed.
535
+ */
536
+ ngOnDestroy() {
537
+ const nativeElement = this._elementRef.nativeElement;
538
+ clearTimeout(this._touchstartTimeout);
539
+ if (this._overlayRef) {
540
+ this._overlayRef.dispose();
541
+ this._tooltipInstance = null;
542
+ }
543
+ // Clean up the event listeners set in the constructor
544
+ this._passiveListeners.forEach(([event, listener]) => nativeElement.removeEventListener(event, listener, passiveListenerOptions));
545
+ this._passiveListeners.length = 0;
546
+ this._destroyed.next();
547
+ this._destroyed.complete();
548
+ this._ariaDescriber.removeDescription(nativeElement, this._ariaDescribedBy, 'tooltip');
549
+ this._focusMonitor.stopMonitoring(nativeElement);
550
+ }
551
+ /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */
552
+ show(delay = this.showDelay, origin) {
553
+ if (this.disabled || this._isTooltipVisible()) {
554
+ this._tooltipInstance?._cancelPendingAnimations();
555
+ return;
556
+ }
557
+ const overlayRef = this._createOverlay(origin);
558
+ this._detach();
559
+ this._portal = this._portal || new ComponentPortal(this._tooltipComponent, this._viewContainerRef);
560
+ const instance = (this._tooltipInstance = overlayRef.attach(this._portal).instance);
561
+ instance._triggerElement = this._elementRef.nativeElement;
562
+ instance._mouseLeaveHideDelay = this._hideDelay();
563
+ instance._tooltipClasses.set(this._tooltipContentClasses());
564
+ instance._exitAnimationDuration = this._exitAnimationDuration();
565
+ instance.side.set(this._currentPosition ?? 'above');
566
+ instance.afterHidden.pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());
567
+ this._updateTooltipContent();
568
+ instance.show(delay);
569
+ }
570
+ /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */
571
+ hide(delay = this.hideDelay, exitAnimationDuration = this.exitAnimationDuration) {
572
+ const instance = this._tooltipInstance;
573
+ if (instance) {
574
+ if (instance.isVisible()) {
575
+ instance.hide(delay, exitAnimationDuration);
576
+ }
577
+ else {
578
+ instance._cancelPendingAnimations();
579
+ this._detach();
580
+ }
581
+ }
582
+ }
583
+ toggle(origin) {
584
+ this._isTooltipVisible() ? this.hide() : this.show(undefined, origin);
585
+ }
586
+ _isTooltipVisible() {
587
+ return !!this._tooltipInstance && this._tooltipInstance.isVisible();
588
+ }
589
+ _createOverlay(origin) {
590
+ if (this._overlayRef) {
591
+ const existingStrategy = this._overlayRef.getConfig().positionStrategy;
592
+ if ((!this.positionAtOrigin || !origin) && existingStrategy._origin instanceof ElementRef) {
593
+ return this._overlayRef;
594
+ }
595
+ this._detach();
596
+ }
597
+ const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(this._elementRef);
598
+ // Create connected position strategy that listens for scroll events to reposition.
599
+ const strategy = this._overlay
600
+ .position()
601
+ .flexibleConnectedTo(this.positionAtOrigin ? origin || this._elementRef : this._elementRef)
602
+ .withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`)
603
+ .withFlexibleDimensions(false)
604
+ .withViewportMargin(this._viewportMargin)
605
+ .withScrollableContainers(scrollableAncestors);
606
+ strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe((change) => {
607
+ this._updateCurrentPositionClass(change.connectionPair);
608
+ if (this._tooltipInstance) {
609
+ if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {
610
+ // After position changes occur and the overlay is clipped by
611
+ // a parent scrollable then close the tooltip.
612
+ this._ngZone.run(() => this.hide(0));
613
+ }
614
+ }
615
+ });
616
+ this._overlayRef = this._overlay.create({
617
+ direction: this._dir,
618
+ positionStrategy: strategy,
619
+ panelClass: `${this._cssClassPrefix}-${PANEL_CLASS}`,
620
+ scrollStrategy: this._scrollStrategy(),
621
+ });
622
+ this._updatePosition(this._overlayRef);
623
+ this._overlayRef
624
+ .detachments()
625
+ .pipe(takeUntil(this._destroyed))
626
+ .subscribe(() => this._detach());
627
+ this._overlayRef
628
+ .outsidePointerEvents()
629
+ .pipe(takeUntil(this._destroyed))
630
+ .subscribe(() => this._tooltipInstance?._handleBodyInteraction());
631
+ this._overlayRef
632
+ .keydownEvents()
633
+ .pipe(takeUntil(this._destroyed))
634
+ .subscribe((event) => {
635
+ if (this._isTooltipVisible() && event.key === 'Escape' && !hasModifierKey(event)) {
636
+ event.preventDefault();
637
+ event.stopPropagation();
638
+ this._ngZone.run(() => this.hide(0));
639
+ }
640
+ });
641
+ if (this._defaultOptions?.disableTooltipInteractivity) {
642
+ this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`);
643
+ }
644
+ return this._overlayRef;
645
+ }
646
+ _detach() {
647
+ if (this._overlayRef?.hasAttached()) {
648
+ this._overlayRef.detach();
649
+ }
650
+ this._tooltipInstance = null;
651
+ }
652
+ _updatePosition(overlayRef) {
653
+ const position = overlayRef.getConfig().positionStrategy;
654
+ const origin = this._getOrigin();
655
+ const overlay = this._getOverlayPosition();
656
+ position.withPositions([
657
+ this._addOffset({ ...origin.main, ...overlay.main }),
658
+ this._addOffset({ ...origin.fallback, ...overlay.fallback }),
659
+ ]);
660
+ }
661
+ /** Adds the configured offset to a position. Used as a hook for child classes. */
662
+ _addOffset(position) {
663
+ const offset = UNBOUNDED_ANCHOR_GAP;
664
+ const isLtr = !this._dir || this._dir.value === 'ltr';
665
+ if (position.originY === 'top') {
666
+ position.offsetY = -offset;
667
+ }
668
+ else if (position.originY === 'bottom') {
669
+ position.offsetY = offset;
670
+ }
671
+ else if (position.originX === 'start') {
672
+ position.offsetX = isLtr ? -offset : offset;
673
+ }
674
+ else if (position.originX === 'end') {
675
+ position.offsetX = isLtr ? offset : -offset;
676
+ }
677
+ return position;
678
+ }
679
+ /**
680
+ * Returns the origin position and a fallback position based on the user's position preference.
681
+ * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).
682
+ */
683
+ _getOrigin() {
684
+ const isLtr = !this._dir || this._dir.value === 'ltr';
685
+ const position = this.position;
686
+ let originPosition;
687
+ if (position === 'above' || position === 'below') {
688
+ originPosition = { originX: 'center', originY: position === 'above' ? 'top' : 'bottom' };
689
+ }
690
+ else if (position === 'before' || (position === 'left' && isLtr) || (position === 'right' && !isLtr)) {
691
+ originPosition = { originX: 'start', originY: 'center' };
692
+ }
693
+ else if (position === 'after' || (position === 'right' && isLtr) || (position === 'left' && !isLtr)) {
694
+ originPosition = { originX: 'end', originY: 'center' };
695
+ }
696
+ else if (typeof isDevMode() === 'undefined' || isDevMode()) {
697
+ throw getBrnTooltipInvalidPositionError(position);
698
+ }
699
+ const { x, y } = this._invertPosition(originPosition.originX, originPosition.originY);
700
+ return {
701
+ main: originPosition,
702
+ fallback: { originX: x, originY: y },
703
+ };
704
+ }
705
+ /** Returns the overlay position and a fallback position based on the user's preference */
706
+ _getOverlayPosition() {
707
+ const isLtr = !this._dir || this._dir.value === 'ltr';
708
+ const position = this.position;
709
+ let overlayPosition;
710
+ if (position === 'above') {
711
+ overlayPosition = { overlayX: 'center', overlayY: 'bottom' };
712
+ }
713
+ else if (position === 'below') {
714
+ overlayPosition = { overlayX: 'center', overlayY: 'top' };
715
+ }
716
+ else if (position === 'before' || (position === 'left' && isLtr) || (position === 'right' && !isLtr)) {
717
+ overlayPosition = { overlayX: 'end', overlayY: 'center' };
718
+ }
719
+ else if (position === 'after' || (position === 'right' && isLtr) || (position === 'left' && !isLtr)) {
720
+ overlayPosition = { overlayX: 'start', overlayY: 'center' };
721
+ }
722
+ else if (typeof isDevMode() === 'undefined' || isDevMode()) {
723
+ throw getBrnTooltipInvalidPositionError(position);
724
+ }
725
+ const { x, y } = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);
726
+ return {
727
+ main: overlayPosition,
728
+ fallback: { overlayX: x, overlayY: y },
729
+ };
730
+ }
731
+ /** Updates the tooltip message and repositions the overlay according to the new message length */
732
+ _updateTooltipContent() {
733
+ // Must wait for the template to be painted to the tooltip so that the overlay can properly
734
+ // calculate the correct positioning based on the size of the tek-pate.
735
+ if (this._tooltipInstance) {
736
+ this._tooltipInstance.content = this.content;
737
+ this._tooltipInstance._markForCheck();
738
+ this._ngZone.onMicrotaskEmpty.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {
739
+ if (this._tooltipInstance) {
740
+ this._overlayRef?.updatePosition();
741
+ }
742
+ });
743
+ }
744
+ }
745
+ /** Inverts an overlay position. */
746
+ _invertPosition(x, y) {
747
+ if (this.position === 'above' || this.position === 'below') {
748
+ if (y === 'top') {
749
+ y = 'bottom';
750
+ }
751
+ else if (y === 'bottom') {
752
+ y = 'top';
753
+ }
754
+ }
755
+ else {
756
+ if (x === 'end') {
757
+ x = 'start';
758
+ }
759
+ else if (x === 'start') {
760
+ x = 'end';
761
+ }
762
+ }
763
+ return { x, y };
764
+ }
765
+ /** Updates the class on the overlay panel based on the current position of the tooltip. */
766
+ _updateCurrentPositionClass(connectionPair) {
767
+ const { overlayY, originX, originY } = connectionPair;
768
+ let newPosition;
769
+ // If the overlay is in the middle along the Y axis,
770
+ // it means that it's either before or after.
771
+ if (overlayY === 'center') {
772
+ // Note that since this information is used for styling, we want to
773
+ // resolve `start` and `end` to their real values, otherwise consumers
774
+ // would have to remember to do it themselves on each consumption.
775
+ if (this._dir && this._dir.value === 'rtl') {
776
+ newPosition = originX === 'end' ? 'left' : 'right';
777
+ }
778
+ else {
779
+ newPosition = originX === 'start' ? 'left' : 'right';
780
+ }
781
+ }
782
+ else {
783
+ newPosition = overlayY === 'bottom' && originY === 'top' ? 'above' : 'below';
784
+ }
785
+ if (newPosition !== this._currentPosition) {
786
+ this._tooltipInstance?.side.set(newPosition);
787
+ this._currentPosition = newPosition;
788
+ }
789
+ }
790
+ /** Binds the pointer events to the tooltip trigger. */
791
+ _setupPointerEnterEventsIfNeeded() {
792
+ // Optimization: Defer hooking up events if there's no content or the tooltip is disabled.
793
+ if (this._disabled() || !this.content || !this._viewInitialized || this._passiveListeners.length) {
794
+ return;
795
+ }
796
+ // The mouse events shouldn't be bound on mobile devices, because they can prevent the
797
+ // first tap from firing its click event or can cause the tooltip to open for clicks.
798
+ if (this._platformSupportsMouseEvents()) {
799
+ this._passiveListeners.push([
800
+ 'mouseenter',
801
+ (event) => {
802
+ this._setupPointerExitEventsIfNeeded();
803
+ let point = undefined;
804
+ if (event.x !== undefined && event.y !== undefined) {
805
+ point = event;
806
+ }
807
+ this.show(undefined, point);
808
+ },
809
+ ]);
810
+ }
811
+ else if (this.touchGestures !== 'off') {
812
+ this._disableNativeGesturesIfNecessary();
813
+ this._passiveListeners.push([
814
+ 'touchstart',
815
+ (event) => {
816
+ const touch = event.targetTouches?.[0];
817
+ const origin = touch ? { x: touch.clientX, y: touch.clientY } : undefined;
818
+ // Note that it's important that we don't `preventDefault` here,
819
+ // because it can prevent click events from firing on the element.
820
+ this._setupPointerExitEventsIfNeeded();
821
+ clearTimeout(this._touchstartTimeout);
822
+ this._touchstartTimeout = setTimeout(() => this.show(undefined, origin), LONGPRESS_DELAY);
823
+ },
824
+ ]);
825
+ }
826
+ this._addListeners(this._passiveListeners);
827
+ }
828
+ _setupPointerExitEventsIfNeeded() {
829
+ if (this._pointerExitEventsInitialized) {
830
+ return;
831
+ }
832
+ this._pointerExitEventsInitialized = true;
833
+ const exitListeners = [];
834
+ if (this._platformSupportsMouseEvents()) {
835
+ exitListeners.push([
836
+ 'mouseleave',
837
+ (event) => {
838
+ const newTarget = event.relatedTarget;
839
+ if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {
840
+ this.hide();
841
+ }
842
+ },
843
+ ], ['wheel', (event) => this._wheelListener(event)]);
844
+ }
845
+ else if (this.touchGestures !== 'off') {
846
+ this._disableNativeGesturesIfNecessary();
847
+ const touchendListener = () => {
848
+ clearTimeout(this._touchstartTimeout);
849
+ this.hide(this._defaultOptions?.touchendHideDelay);
850
+ };
851
+ exitListeners.push(['touchend', touchendListener], ['touchcancel', touchendListener]);
852
+ }
853
+ this._addListeners(exitListeners);
854
+ this._passiveListeners.push(...exitListeners);
855
+ }
856
+ _addListeners(listeners) {
857
+ listeners.forEach(([event, listener]) => {
858
+ this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);
859
+ });
860
+ }
861
+ _platformSupportsMouseEvents() {
862
+ return !this._platform.IOS && !this._platform.ANDROID;
863
+ }
864
+ /** Listener for the `wheel` event on the element. */
865
+ _wheelListener(event) {
866
+ if (this._isTooltipVisible()) {
867
+ const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);
868
+ const element = this._elementRef.nativeElement;
869
+ // On non-touch devices we depend on the `mouseleave` event to close the tooltip, but it
870
+ // won't fire if the user scrolls away using the wheel without moving their cursor. We
871
+ // work around it by finding the element under the user's cursor and closing the tooltip
872
+ // if it's not the trigger.
873
+ if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {
874
+ this.hide();
875
+ }
876
+ }
877
+ }
878
+ /** Disables the native browser gestures, based on how the tooltip has been configured. */
879
+ _disableNativeGesturesIfNecessary() {
880
+ const gestures = this.touchGestures;
881
+ if (gestures !== 'off') {
882
+ const element = this._elementRef.nativeElement;
883
+ const style = element.style;
884
+ // If gestures are set to `auto`, we don't disable text selection on inputs and
885
+ // textareas, because it prevents the user from typing into them on iOS Safari.
886
+ if (gestures === 'on' || (element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA')) {
887
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
888
+ style.userSelect = style.msUserSelect = style.webkitUserSelect = style.MozUserSelect = 'none';
889
+ }
890
+ // If we have `auto` gestures and the element uses native HTML dragging,
891
+ // we don't set `-webkit-user-drag` because it prevents the native behavior.
892
+ if (gestures === 'on' || !element.draggable) {
893
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
894
+ style.webkitUserDrag = 'none';
895
+ }
896
+ style.touchAction = 'none';
897
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
898
+ style.webkitTapHighlightColor = 'transparent';
899
+ }
900
+ }
901
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
902
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.5", type: BrnTooltipTriggerDirective, isStandalone: true, selector: "[brnTooltipTrigger]", inputs: { position: "position", positionAtOrigin: ["positionAtOrigin", "positionAtOrigin", booleanAttribute], disabled: ["brnTooltipDisabled", "disabled", booleanAttribute], showDelay: ["showDelay", "showDelay", numberAttribute], hideDelay: ["hideDelay", "hideDelay", numberAttribute], exitAnimationDuration: ["exitAnimationDuration", "exitAnimationDuration", numberAttribute], tooltipContentClasses: "tooltipContentClasses", touchGestures: "touchGestures", ariaDescribedBy: ["aria-describedby", "ariaDescribedBy"], content: ["brnTooltipTrigger", "content"] }, host: { properties: { "class.brn-tooltip-disabled": "disabled" }, classAttribute: "brn-tooltip-trigger" }, providers: [BRN_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER], exportAs: ["brnTooltipTrigger"], ngImport: i0 });
903
+ }
904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipTriggerDirective, decorators: [{
905
+ type: Directive,
906
+ args: [{
907
+ selector: '[brnTooltipTrigger]',
908
+ standalone: true,
909
+ exportAs: 'brnTooltipTrigger',
910
+ providers: [BRN_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],
911
+ host: {
912
+ class: 'brn-tooltip-trigger',
913
+ '[class.brn-tooltip-disabled]': 'disabled',
914
+ },
915
+ }]
916
+ }], ctorParameters: () => [], propDecorators: { position: [{
917
+ type: Input
918
+ }], positionAtOrigin: [{
919
+ type: Input,
920
+ args: [{ transform: booleanAttribute }]
921
+ }], disabled: [{
922
+ type: Input,
923
+ args: [{ transform: booleanAttribute, alias: 'brnTooltipDisabled' }]
924
+ }], showDelay: [{
925
+ type: Input,
926
+ args: [{ transform: numberAttribute }]
927
+ }], hideDelay: [{
928
+ type: Input,
929
+ args: [{ transform: numberAttribute }]
930
+ }], exitAnimationDuration: [{
931
+ type: Input,
932
+ args: [{ transform: numberAttribute }]
933
+ }], tooltipContentClasses: [{
934
+ type: Input
935
+ }], touchGestures: [{
936
+ type: Input
937
+ }], ariaDescribedBy: [{
938
+ type: Input,
939
+ args: ['aria-describedby']
940
+ }], content: [{
941
+ type: Input,
942
+ args: ['brnTooltipTrigger']
943
+ }] } });
944
+
945
+ const BrnTooltipImports = [
946
+ BrnTooltipDirective,
947
+ BrnTooltipContentDirective,
948
+ BrnTooltipTriggerDirective,
949
+ BrnTooltipContentComponent,
950
+ ];
951
+ class BrnTooltipModule {
952
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
953
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipModule, imports: [BrnTooltipDirective,
954
+ BrnTooltipContentDirective,
955
+ BrnTooltipTriggerDirective,
956
+ BrnTooltipContentComponent], exports: [BrnTooltipDirective,
957
+ BrnTooltipContentDirective,
958
+ BrnTooltipTriggerDirective,
959
+ BrnTooltipContentComponent] });
960
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipModule });
961
+ }
962
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnTooltipModule, decorators: [{
963
+ type: NgModule,
964
+ args: [{
965
+ imports: [...BrnTooltipImports],
966
+ exports: [...BrnTooltipImports],
967
+ }]
968
+ }] });
969
+
970
+ /**
971
+ * Generated bundle index. Do not edit.
972
+ */
973
+
974
+ export { BRN_TOOLTIP_DEFAULT_OPTIONS, BRN_TOOLTIP_DEFAULT_OPTIONS_FACTORY, BRN_TOOLTIP_SCROLL_STRATEGY, BRN_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, BrnTooltipContentComponent, BrnTooltipContentDirective, BrnTooltipDirective, BrnTooltipImports, BrnTooltipModule, BrnTooltipTriggerDirective, SCROLL_THROTTLE_MS, getBrnTooltipInvalidPositionError };
975
+ //# sourceMappingURL=spartan-ng-brain-tooltip.mjs.map