@ngbase/adk 0.1.1 → 0.1.3

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 (275) hide show
  1. package/a11y/accessibility-group.d.ts +2 -5
  2. package/accordion/accordion-item.d.ts +7 -1
  3. package/accordion/public-api.d.ts +1 -1
  4. package/autocomplete/autocomplete-input.d.ts +2 -4
  5. package/autocomplete/autocomplete.d.ts +13 -4
  6. package/avatar/avatar.d.ts +1 -1
  7. package/breadcrumb/breadcrumb.d.ts +2 -3
  8. package/breadcrumb/public-api.d.ts +1 -1
  9. package/carousel/carousel.d.ts +3 -3
  10. package/checkbox/checkbox.d.ts +11 -3
  11. package/checkbox/public-api.d.ts +1 -1
  12. package/chip/chip.d.ts +2 -2
  13. package/datepicker/calendar.d.ts +3 -3
  14. package/datepicker/datepicker-trigger.d.ts +22 -5
  15. package/datepicker/datepicker.d.ts +4 -3
  16. package/datepicker/time.d.ts +2 -2
  17. package/dialog/dialog.d.ts +1 -1
  18. package/drag/drag.d.ts +1 -2
  19. package/fesm2022/ngbase-adk-a11y.mjs +29 -26
  20. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-accordion.mjs +16 -3
  22. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-autocomplete.mjs +23 -52
  24. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  25. package/fesm2022/ngbase-adk-avatar.mjs +2 -2
  26. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  27. package/fesm2022/ngbase-adk-breadcrumb.mjs +2 -2
  28. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  29. package/fesm2022/ngbase-adk-carousel.mjs +7 -7
  30. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  31. package/fesm2022/ngbase-adk-checkbox.mjs +8 -6
  32. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-chip.mjs +4 -2
  34. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  35. package/fesm2022/ngbase-adk-datepicker.mjs +187 -350
  36. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-dialog.mjs +14 -15
  38. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  39. package/fesm2022/ngbase-adk-drag.mjs +1 -2
  40. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  41. package/fesm2022/ngbase-adk-form-field.mjs +2 -156
  42. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  43. package/fesm2022/ngbase-adk-list.mjs +2 -2
  44. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  45. package/fesm2022/ngbase-adk-mask.mjs +5 -3
  46. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-menu.mjs +34 -34
  48. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  49. package/fesm2022/ngbase-adk-otp.mjs +164 -0
  50. package/fesm2022/ngbase-adk-otp.mjs.map +1 -0
  51. package/fesm2022/ngbase-adk-pagination.mjs +10 -67
  52. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  53. package/fesm2022/ngbase-adk-popover.mjs +434 -556
  54. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  55. package/fesm2022/ngbase-adk-portal.mjs +5 -10
  56. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-radio.mjs +8 -19
  58. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  59. package/fesm2022/ngbase-adk-resizable.mjs +10 -43
  60. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-select.mjs +87 -185
  62. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-sheet.mjs +95 -0
  64. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -0
  65. package/fesm2022/ngbase-adk-sidenav.mjs +2 -2
  66. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-slider.mjs +12 -23
  68. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  69. package/fesm2022/ngbase-adk-sonner.mjs +13 -63
  70. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  71. package/fesm2022/ngbase-adk-stepper.mjs +16 -114
  72. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  73. package/fesm2022/ngbase-adk-switch.mjs +2 -2
  74. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  75. package/fesm2022/ngbase-adk-table.mjs +17 -35
  76. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  77. package/fesm2022/ngbase-adk-tabs.mjs +14 -94
  78. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  79. package/fesm2022/ngbase-adk-test.mjs +11 -1
  80. package/fesm2022/ngbase-adk-test.mjs.map +1 -1
  81. package/fesm2022/ngbase-adk-tooltip.mjs +49 -39
  82. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  83. package/fesm2022/ngbase-adk-tour.mjs +3 -3
  84. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  85. package/fesm2022/ngbase-adk-tree.mjs +11 -43
  86. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  87. package/fesm2022/ngbase-adk-utils.mjs +12 -9
  88. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  89. package/form-field/public-api.d.ts +0 -1
  90. package/mask/mask.d.ts +1 -2
  91. package/menu/menu-trigger.d.ts +3 -3
  92. package/menu/menu.d.ts +13 -7
  93. package/otp/index.d.ts +5 -0
  94. package/{form-field → otp}/otp.d.ts +1 -1
  95. package/otp/public-api.d.ts +1 -0
  96. package/package.json +27 -19
  97. package/pagination/pagination.d.ts +7 -3
  98. package/popover/base-popover.service.d.ts +1 -1
  99. package/popover/popover-arrow.ng.d.ts +34 -0
  100. package/popover/popover.d.ts +17 -7
  101. package/popover/popover.service.d.ts +5 -4
  102. package/popover/public-api.d.ts +1 -0
  103. package/popover/utils.d.ts +32 -48
  104. package/portal/dialog-ref.d.ts +0 -1
  105. package/portal/portal-base.service.d.ts +3 -3
  106. package/portal/portal-close.directive.d.ts +3 -2
  107. package/radio/radio.d.ts +5 -1
  108. package/resizable/resizable-group.d.ts +2 -2
  109. package/resizable/resizable.d.ts +2 -2
  110. package/select/option-group.d.ts +3 -3
  111. package/select/option.d.ts +1 -1
  112. package/select/select-base.d.ts +8 -6
  113. package/select/select.d.ts +6 -3
  114. package/sheet/index.d.ts +5 -0
  115. package/sheet/public-api.d.ts +2 -0
  116. package/sheet/sheet.d.ts +26 -0
  117. package/sheet/sheet.service.d.ts +13 -0
  118. package/sidenav/public-api.d.ts +1 -1
  119. package/sidenav/sidenav.d.ts +1 -1
  120. package/slider/public-api.d.ts +1 -1
  121. package/slider/slider.d.ts +6 -5
  122. package/sonner/sonner.d.ts +2 -1
  123. package/stepper/animation.d.ts +1 -1
  124. package/stepper/step.d.ts +1 -1
  125. package/stepper/stepper.d.ts +2 -2
  126. package/switch/switch.d.ts +1 -1
  127. package/table/body-row.d.ts +3 -3
  128. package/table/head-row.d.ts +3 -3
  129. package/table/table.d.ts +3 -3
  130. package/tabs/tab-group.d.ts +4 -4
  131. package/tabs/tab.d.ts +2 -2
  132. package/test/utils.d.ts +19 -3
  133. package/tooltip/public-api.d.ts +1 -1
  134. package/tooltip/tooltip.d.ts +5 -1
  135. package/tooltip/tooltip.directive.d.ts +1 -1
  136. package/tooltip/tooltip.service.d.ts +4 -2
  137. package/tour/tour.service.d.ts +3 -4
  138. package/tree/public-api.d.ts +2 -2
  139. package/tree/tree-node.d.ts +2 -2
  140. package/tree/tree.d.ts +2 -2
  141. package/utils/utils.d.ts +5 -4
  142. package/schematics/collection.json +0 -15
  143. package/schematics/components/files/accordion/accordion.ts.template +0 -55
  144. package/schematics/components/files/accordion/index.ts.template +0 -5
  145. package/schematics/components/files/alert/alert.ts.template +0 -62
  146. package/schematics/components/files/alert/index.ts.template +0 -1
  147. package/schematics/components/files/autocomplete/autocomplete.ts.template +0 -48
  148. package/schematics/components/files/autocomplete/index.ts.template +0 -5
  149. package/schematics/components/files/avatar/avatar.ts.template +0 -31
  150. package/schematics/components/files/avatar/index.ts.template +0 -1
  151. package/schematics/components/files/badge/badge.ts.template +0 -11
  152. package/schematics/components/files/badge/index.ts.template +0 -1
  153. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +0 -49
  154. package/schematics/components/files/breadcrumb/index.ts.template +0 -1
  155. package/schematics/components/files/button/button.ts.template +0 -29
  156. package/schematics/components/files/button/index.ts.template +0 -5
  157. package/schematics/components/files/card/card.ts.template +0 -11
  158. package/schematics/components/files/card/index.ts.template +0 -5
  159. package/schematics/components/files/carousel/carousel.ts.template +0 -44
  160. package/schematics/components/files/carousel/index.ts.template +0 -1
  161. package/schematics/components/files/checkbox/checkbox.ts.template +0 -46
  162. package/schematics/components/files/checkbox/focus-style.directive.ts.template +0 -12
  163. package/schematics/components/files/checkbox/index.ts.template +0 -6
  164. package/schematics/components/files/chip/chip.ts.template +0 -36
  165. package/schematics/components/files/chip/index.ts.template +0 -1
  166. package/schematics/components/files/color-picker/color-picker.ts.template +0 -104
  167. package/schematics/components/files/color-picker/index.ts.template +0 -5
  168. package/schematics/components/files/command/command.ts.template +0 -82
  169. package/schematics/components/files/command/index.ts.template +0 -1
  170. package/schematics/components/files/datepicker/calendar.ts.template +0 -117
  171. package/schematics/components/files/datepicker/datepicker-trigger.ts.template +0 -27
  172. package/schematics/components/files/datepicker/datepicker.ts.template +0 -28
  173. package/schematics/components/files/datepicker/index.ts.template +0 -3
  174. package/schematics/components/files/datepicker/time.ts.template +0 -46
  175. package/schematics/components/files/dialog/dialog.ts.template +0 -89
  176. package/schematics/components/files/dialog/index.ts.template +0 -5
  177. package/schematics/components/files/drawer/drawer.ts.template +0 -104
  178. package/schematics/components/files/drawer/index.ts.template +0 -5
  179. package/schematics/components/files/form-field/index.ts.template +0 -7
  180. package/schematics/components/files/form-field/input-style.directive.ts.template +0 -11
  181. package/schematics/components/files/form-field/input.ts.template +0 -100
  182. package/schematics/components/files/form-field/otp.ts.template +0 -37
  183. package/schematics/components/files/hover-card/hover-card.ts.template +0 -13
  184. package/schematics/components/files/hover-card/index.ts.template +0 -5
  185. package/schematics/components/files/icon/icon.ts.template +0 -16
  186. package/schematics/components/files/icon/index.ts.template +0 -1
  187. package/schematics/components/files/inline-edit/index.ts.template +0 -1
  188. package/schematics/components/files/inline-edit/inline-edit.ts.template +0 -24
  189. package/schematics/components/files/keys/index.ts.template +0 -5
  190. package/schematics/components/files/keys/key.ts.template +0 -35
  191. package/schematics/components/files/list/index.ts.template +0 -5
  192. package/schematics/components/files/list/list.ts.template +0 -28
  193. package/schematics/components/files/mask/index.ts.template +0 -1
  194. package/schematics/components/files/mask/mask.ts.template +0 -8
  195. package/schematics/components/files/menu/context-menu.ts.template +0 -14
  196. package/schematics/components/files/menu/index.ts.template +0 -8
  197. package/schematics/components/files/menu/mention.ts.template +0 -14
  198. package/schematics/components/files/menu/menu.ts.template +0 -37
  199. package/schematics/components/files/menu/navigation-menu.ts.template +0 -8
  200. package/schematics/components/files/pagination/index.ts.template +0 -1
  201. package/schematics/components/files/pagination/pagination.ts.template +0 -71
  202. package/schematics/components/files/picasa/index.ts.template +0 -1
  203. package/schematics/components/files/picasa/picasa-base.component.ts.template +0 -80
  204. package/schematics/components/files/picasa/picasa.component.ts.template +0 -57
  205. package/schematics/components/files/picasa/picasa.directive.ts.template +0 -41
  206. package/schematics/components/files/picasa/picase.service.ts.template +0 -24
  207. package/schematics/components/files/popover/index.ts.template +0 -1
  208. package/schematics/components/files/popover/popover.ts.template +0 -87
  209. package/schematics/components/files/progress/index.ts.template +0 -5
  210. package/schematics/components/files/progress/progress.ts.template +0 -14
  211. package/schematics/components/files/radio/index.ts.template +0 -5
  212. package/schematics/components/files/radio/radio.ts.template +0 -40
  213. package/schematics/components/files/resizable/index.ts.template +0 -5
  214. package/schematics/components/files/resizable/resizable.ts.template +0 -56
  215. package/schematics/components/files/scroll-area/index.ts.template +0 -1
  216. package/schematics/components/files/scroll-area/scroll-area.ts.template +0 -40
  217. package/schematics/components/files/select/index.ts.template +0 -8
  218. package/schematics/components/files/select/list-selection.ts.template +0 -15
  219. package/schematics/components/files/select/option.ts.template +0 -34
  220. package/schematics/components/files/select/select-input.ts.template +0 -21
  221. package/schematics/components/files/select/select.ts.template +0 -96
  222. package/schematics/components/files/selectable/index.ts.template +0 -1
  223. package/schematics/components/files/selectable/selectable.ts.template +0 -34
  224. package/schematics/components/files/separator/index.ts.template +0 -5
  225. package/schematics/components/files/separator/separator.ts.template +0 -19
  226. package/schematics/components/files/sheet/index.ts.template +0 -5
  227. package/schematics/components/files/sheet/sheet.ts.template +0 -134
  228. package/schematics/components/files/sidenav/index.ts.template +0 -1
  229. package/schematics/components/files/sidenav/sidenav.ts.template +0 -48
  230. package/schematics/components/files/skeleton/index.ts.template +0 -1
  231. package/schematics/components/files/skeleton/skeleton.ts.template +0 -15
  232. package/schematics/components/files/slider/index.ts.template +0 -5
  233. package/schematics/components/files/slider/slider.ts.template +0 -42
  234. package/schematics/components/files/sonner/index.ts.template +0 -5
  235. package/schematics/components/files/sonner/sonner.ts.template +0 -58
  236. package/schematics/components/files/spinner/index.ts.template +0 -1
  237. package/schematics/components/files/spinner/spinner.ts.template +0 -79
  238. package/schematics/components/files/stepper/index.ts.template +0 -1
  239. package/schematics/components/files/stepper/stepper.ts.template +0 -88
  240. package/schematics/components/files/switch/index.ts.template +0 -5
  241. package/schematics/components/files/switch/switch.ts.template +0 -29
  242. package/schematics/components/files/table/body-cell.ts.template +0 -19
  243. package/schematics/components/files/table/body-row.ts.template +0 -21
  244. package/schematics/components/files/table/column.ts.template +0 -8
  245. package/schematics/components/files/table/head-cell.ts.template +0 -19
  246. package/schematics/components/files/table/head-row.ts.template +0 -27
  247. package/schematics/components/files/table/index.ts.template +0 -26
  248. package/schematics/components/files/table/table.ts.template +0 -20
  249. package/schematics/components/files/tabs/index.ts.template +0 -5
  250. package/schematics/components/files/tabs/tab.ts.template +0 -89
  251. package/schematics/components/files/theme/index.ts.template +0 -2
  252. package/schematics/components/files/theme/theme-button.component.ts.template +0 -26
  253. package/schematics/components/files/theme/theme.component.ts.template +0 -165
  254. package/schematics/components/files/theme/theme.service.ts.template +0 -44
  255. package/schematics/components/files/toggle/index.ts.template +0 -5
  256. package/schematics/components/files/toggle/toggle.ts.template +0 -13
  257. package/schematics/components/files/toggle-group/index.ts.template +0 -5
  258. package/schematics/components/files/toggle-group/toggle-group.ts.template +0 -25
  259. package/schematics/components/files/tooltip/index.ts.template +0 -5
  260. package/schematics/components/files/tooltip/tooltip.ts.template +0 -40
  261. package/schematics/components/files/tour/index.ts.template +0 -3
  262. package/schematics/components/files/tour/tour-step.ts.template +0 -8
  263. package/schematics/components/files/tour/tour.service.ts.template +0 -7
  264. package/schematics/components/files/tour/tour.ts.template +0 -8
  265. package/schematics/components/files/tree/index.ts.template +0 -1
  266. package/schematics/components/files/tree/tree.ts.template +0 -66
  267. package/schematics/components/index.d.ts +0 -3
  268. package/schematics/components/index.js +0 -17
  269. package/schematics/components/index.js.map +0 -1
  270. package/schematics/components/index.ts +0 -29
  271. package/schematics/components/schema.d.ts +0 -6
  272. package/schematics/components/schema.js +0 -3
  273. package/schematics/components/schema.js.map +0 -1
  274. package/schematics/components/schema.json +0 -137
  275. package/schematics/components/schema.ts +0 -6
@@ -77,25 +77,28 @@ function documentListener(ev, fn, data = {}) {
77
77
  controller.on();
78
78
  return controller;
79
79
  }
80
- function filterFunction(data, options) {
80
+ function filterFunction(data, ops) {
81
81
  const search = signal('');
82
82
  const list = linkedSignal(isSignal(data) ? data : signal(data || []));
83
83
  const filteredList = computed(() => {
84
- const text = search().toLowerCase();
85
- const lists = list();
86
- const query = options.query ?? ((v, t) => options.filter(v).toLowerCase().includes(t));
84
+ const options = ops();
85
+ const text = search()?.trim().toLowerCase() || '';
86
+ const lists = list() || [];
87
+ const filter = options.filter ?? ((v) => v);
88
+ const query = options.query ?? ((t, v) => filter(v).toLowerCase().includes(t));
87
89
  const vvv = lists.reduce((acc, item) => {
88
- if (options.childrenFilter) {
89
- const children = options.childrenFilter(item);
90
- const filteredChildren = children.filter(child => query(child, text));
91
- if (filteredChildren.length) {
90
+ // Get children from key or childrenFilter
91
+ const children = options.key ? item[options.key] : options.childrenFilter?.(item);
92
+ if (children) {
93
+ const filteredChildren = children?.filter(child => query(text, child));
94
+ if (filteredChildren?.length) {
92
95
  acc.push({
93
96
  ...item,
94
97
  [options.key || 'children']: filteredChildren,
95
98
  });
96
99
  }
97
100
  }
98
- else if (query(item, text)) {
101
+ else if (query(text, item)) {
99
102
  acc.push(item);
100
103
  }
101
104
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-utils.mjs","sources":["../../../projects/adk/utils/range.pipe.ts","../../../projects/adk/utils/disposals.ts","../../../projects/adk/utils/utils.ts","../../../projects/adk/utils/ssr.ts","../../../projects/adk/utils/animation.ts","../../../projects/adk/utils/number-only.ts","../../../projects/adk/utils/ngbase-adk-utils.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'range',\n})\nexport class RangePipe implements PipeTransform {\n transform(value: number) {\n return Array.from({ length: value }, (v, k) => k + 1);\n }\n}\n","import { afterNextRender, DestroyRef, inject, Injector } from '@angular/core';\n\ntype Cleanup = () => void;\ntype CleanupRegisterFn = (fn: Cleanup) => void;\n\nexport function disposals() {\n const injector = inject(Injector);\n const destroyRef = inject(DestroyRef);\n return {\n afterNextRender: (fn: (cleanup: CleanupRegisterFn) => void) => {\n const cleanup: Cleanup[] = [];\n const register = (fn: Cleanup) => cleanup.push(fn);\n const runCleanup = () => cleanup.forEach(c => c());\n afterNextRender(\n () => {\n runCleanup();\n fn(register);\n },\n { injector },\n );\n return destroyRef.onDestroy(() => runCleanup());\n },\n };\n}\n\nexport function cleanup(fn: () => void) {\n inject(DestroyRef).onDestroy(fn);\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n computed,\n forwardRef,\n inject,\n Injector,\n isSignal,\n linkedSignal,\n runInInjectionContext,\n Signal,\n signal,\n Type,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cleanup } from './disposals';\n\nexport function uniqueId(length: number = 7) {\n return Array.from({ length }, () =>\n String.fromCharCode(97 + Math.floor(Math.random() * 26)),\n ).join('');\n}\n\nexport function provideValueAccessor<T>(valueAccessor: Type<T>) {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => valueAccessor),\n multi: true,\n };\n}\n\nexport interface ListenerOut {\n on: () => void;\n off: () => void;\n}\n\nexport function documentListener<T extends Event>(\n ev: string,\n fn: (e: T) => void,\n data: Partial<\n AddEventListenerOptions & {\n injector?: Injector;\n lazy?: boolean;\n skip?: number;\n element?: HTMLElement | Document | Window;\n }\n > = {},\n): ListenerOut {\n const { injector = inject(Injector), lazy = false, element, skip = 0, ...listenerOptions } = data;\n let active = false;\n const controller: ListenerOut = { on: () => {}, off: () => {} };\n\n controller.on = () => {\n if (active) return;\n active = true;\n runInInjectionContext(injector, () => {\n const el = element || inject(DOCUMENT);\n let eventCount = 0;\n el.addEventListener(\n ev,\n e => {\n eventCount++;\n if (eventCount <= skip) return;\n fn(e as T);\n },\n listenerOptions,\n );\n\n controller.off = () => {\n active = false;\n eventCount = 0;\n el.removeEventListener(ev, fn as any);\n };\n cleanup(controller.off);\n });\n };\n\n if (!lazy) controller.on();\n return controller;\n}\n\nexport function filterFunction<T, V = T>(\n data: Signal<T[]> | T[],\n options: {\n filter?: (v: V) => string;\n key?: keyof T;\n childrenFilter?: (v: T) => V[];\n query?: (v: V, search: string) => boolean;\n },\n) {\n const search = signal('');\n const list = linkedSignal(isSignal(data) ? data : signal(data || []));\n\n const filteredList = computed(() => {\n const text = search().toLowerCase();\n const lists = list();\n\n const query =\n options.query ?? ((v: V, t: string) => options.filter!(v).toLowerCase().includes(t));\n const vvv = lists.reduce((acc, item) => {\n if (options.childrenFilter) {\n const children = options.childrenFilter(item);\n const filteredChildren = children.filter(child => query(child as unknown as V, text));\n if (filteredChildren.length) {\n acc.push({\n ...item,\n [(options.key as unknown as string) || 'children']: filteredChildren,\n });\n }\n } else if (query(item as unknown as V, text)) {\n acc.push(item);\n }\n return acc;\n }, [] as T[]);\n return vvv;\n });\n return { search, list, filteredList };\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { inject, PLATFORM_ID } from '@angular/core';\n\nexport function isServer() {\n return isPlatformServer(inject(PLATFORM_ID));\n}\n\nexport function isClient() {\n return isPlatformBrowser(inject(PLATFORM_ID));\n}\n","import {\n animate,\n animateChild,\n AnimationTriggerMetadata,\n group,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const createHostAnimation = function dialogHostAnimation(animationNames: string[]) {\n return trigger('parentAnimation', [\n transition(':enter', [query(animationNames.join(', '), [animateChild()], { optional: true })]),\n transition(':leave', [\n group(animationNames.map(x => query(x, [animateChild()], { optional: true }))),\n ]),\n ]);\n};\n\n// fade in and out animation\nexport function fadeAnimation(time: string): AnimationTriggerMetadata {\n return trigger('fadeAnimation', [\n state('1', style({ opacity: 1 })),\n state('void', style({ opacity: 0 })),\n state('0', style({ opacity: 0 })),\n transition('* => *', animate(`${time} ease`)),\n ]);\n}\n","import { Directive, effect, ElementRef, inject, input, linkedSignal, model } from '@angular/core';\n\n@Directive({\n selector: '[ngbNumberOnly]',\n host: {\n '(input)': 'value.set($event.target.value)',\n '[value]': 'value()',\n },\n})\nexport class NumberOnly {\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n readonly min = input<number | undefined>();\n readonly max = input<number | undefined>();\n readonly len = input<number | undefined>();\n\n readonly value = model<string>('');\n\n // Hacky way to set the min value\n readonly _min = linkedSignal(this.min);\n readonly _max = linkedSignal(this.max);\n readonly _len = linkedSignal(this.len);\n\n constructor() {\n effect(cleanup => {\n const el = this.el.nativeElement;\n el.addEventListener('keydown', this.onKeyDown);\n cleanup(() => el.removeEventListener('keydown', this.onKeyDown));\n });\n }\n\n private readonly allowedKeys = new Set([\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n ]);\n\n onKeyDown = (e: KeyboardEvent) => {\n if (this.allowedKeys.has(e.key) || this.isCtrlKey(e)) return;\n if (e.key === 'v' && (e.ctrlKey || e.metaKey)) return e.preventDefault();\n\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return this.handleArrowUpDown(e);\n }\n\n if (!/^\\d$/.test(e.key) || !this.validateValue(this.getNewValue(e))) {\n e.preventDefault();\n }\n };\n\n private isCtrlKey(e: KeyboardEvent): boolean {\n return ['a', 'c', 'x'].includes(e.key) && (e.ctrlKey || e.metaKey);\n }\n\n private handleArrowUpDown(e: KeyboardEvent) {\n e.preventDefault();\n const currentValue = this.el.nativeElement.value;\n const newValue = +currentValue + (e.key === 'ArrowUp' ? 1 : -1);\n if (this.validateValue(newValue.toString())) {\n this.value.set(newValue.toString().padStart(2, '0'));\n }\n }\n\n private getNewValue(e: KeyboardEvent): string {\n const { value, selectionStart, selectionEnd } = this.el.nativeElement;\n const start = selectionStart ?? value.length;\n const end = selectionEnd ?? value.length;\n return value.slice(0, start) + e.key + value.slice(end);\n }\n\n private validateValue(rawValue: string): boolean {\n const len = this._len();\n const value = +rawValue;\n const min = this._min();\n const max = this._max();\n\n if (len !== undefined && rawValue.length > len) return false;\n if (max !== undefined && value > max) return false;\n\n if (min !== undefined && value < min) {\n const potentialMax = Number(rawValue + '9'.repeat(len ? len - rawValue.length : 1));\n if (potentialMax < min) return false;\n }\n\n return true;\n }\n}\n\nexport function padString(num: number | string): string {\n return num.toString().padStart(2, '0');\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-utils.mjs","sources":["../../../projects/adk/utils/range.pipe.ts","../../../projects/adk/utils/disposals.ts","../../../projects/adk/utils/utils.ts","../../../projects/adk/utils/ssr.ts","../../../projects/adk/utils/animation.ts","../../../projects/adk/utils/number-only.ts","../../../projects/adk/utils/ngbase-adk-utils.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'range',\n})\nexport class RangePipe implements PipeTransform {\n transform(value: number) {\n return Array.from({ length: value }, (v, k) => k + 1);\n }\n}\n","import { afterNextRender, DestroyRef, inject, Injector } from '@angular/core';\n\ntype Cleanup = () => void;\ntype CleanupRegisterFn = (fn: Cleanup) => void;\n\nexport function disposals() {\n const injector = inject(Injector);\n const destroyRef = inject(DestroyRef);\n return {\n afterNextRender: (fn: (cleanup: CleanupRegisterFn) => void) => {\n const cleanup: Cleanup[] = [];\n const register = (fn: Cleanup) => cleanup.push(fn);\n const runCleanup = () => cleanup.forEach(c => c());\n afterNextRender(\n () => {\n runCleanup();\n fn(register);\n },\n { injector },\n );\n return destroyRef.onDestroy(() => runCleanup());\n },\n };\n}\n\nexport function cleanup(fn: () => void) {\n inject(DestroyRef).onDestroy(fn);\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n computed,\n forwardRef,\n inject,\n Injector,\n isSignal,\n linkedSignal,\n runInInjectionContext,\n Signal,\n signal,\n Type,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { cleanup } from './disposals';\n\nexport function uniqueId(length: number = 7) {\n return Array.from({ length }, () =>\n String.fromCharCode(97 + Math.floor(Math.random() * 26)),\n ).join('');\n}\n\nexport function provideValueAccessor<T>(valueAccessor: Type<T>) {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => valueAccessor),\n multi: true,\n };\n}\n\nexport interface ListenerOut {\n on: () => void;\n off: () => void;\n}\n\nexport function documentListener<T extends Event>(\n ev: string,\n fn: (e: T) => void,\n data: Partial<\n AddEventListenerOptions & {\n injector?: Injector;\n lazy?: boolean;\n skip?: number;\n element?: HTMLElement | Document | Window;\n }\n > = {},\n): ListenerOut {\n const { injector = inject(Injector), lazy = false, element, skip = 0, ...listenerOptions } = data;\n let active = false;\n const controller: ListenerOut = { on: () => {}, off: () => {} };\n\n controller.on = () => {\n if (active) return;\n active = true;\n runInInjectionContext(injector, () => {\n const el = element || inject(DOCUMENT);\n let eventCount = 0;\n el.addEventListener(\n ev,\n e => {\n eventCount++;\n if (eventCount <= skip) return;\n fn(e as T);\n },\n listenerOptions,\n );\n\n controller.off = () => {\n active = false;\n eventCount = 0;\n el.removeEventListener(ev, fn as any);\n };\n cleanup(controller.off);\n });\n };\n\n if (!lazy) controller.on();\n return controller;\n}\n\nexport type FilterOptions<T, V = any> = {\n filter: (v: V) => string;\n query?: (query: string, option: V) => boolean;\n key?: keyof T;\n childrenFilter?: (v: T) => V[];\n};\n\nexport function filterFunction<T, V = T>(data: Signal<T[]> | T[], ops: () => FilterOptions<T, V>) {\n const search = signal('');\n const list = linkedSignal(isSignal(data) ? data : signal(data || []));\n\n const filteredList = computed(() => {\n const options = ops();\n const text = search()?.trim().toLowerCase() || '';\n const lists = list() || [];\n const filter = options.filter ?? ((v: V) => v as string);\n\n const query = options.query ?? ((t: string, v: V) => filter(v).toLowerCase().includes(t));\n const vvv = lists.reduce((acc, item) => {\n // Get children from key or childrenFilter\n const children = options.key ? (item[options.key] as V[]) : options.childrenFilter?.(item);\n if (children) {\n const filteredChildren = children?.filter(child => query(text, child as V));\n if (filteredChildren?.length) {\n acc.push({\n ...item,\n [(options.key as unknown as string) || 'children']: filteredChildren,\n });\n }\n } else if (query(text, item as unknown as V)) {\n acc.push(item);\n }\n return acc;\n }, [] as T[]);\n return vvv;\n });\n return { search, list, filteredList };\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { inject, PLATFORM_ID } from '@angular/core';\n\nexport function isServer() {\n return isPlatformServer(inject(PLATFORM_ID));\n}\n\nexport function isClient() {\n return isPlatformBrowser(inject(PLATFORM_ID));\n}\n","import {\n animate,\n animateChild,\n AnimationTriggerMetadata,\n group,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const createHostAnimation = function dialogHostAnimation(animationNames: string[]) {\n return trigger('parentAnimation', [\n transition(':enter', [query(animationNames.join(', '), [animateChild()], { optional: true })]),\n transition(':leave', [\n group(animationNames.map(x => query(x, [animateChild()], { optional: true }))),\n ]),\n ]);\n};\n\n// fade in and out animation\nexport function fadeAnimation(time: string): AnimationTriggerMetadata {\n return trigger('fadeAnimation', [\n state('1', style({ opacity: 1 })),\n state('void', style({ opacity: 0 })),\n state('0', style({ opacity: 0 })),\n transition('* => *', animate(`${time} ease`)),\n ]);\n}\n","import { Directive, effect, ElementRef, inject, input, linkedSignal, model } from '@angular/core';\n\n@Directive({\n selector: '[ngbNumberOnly]',\n host: {\n '(input)': 'value.set($event.target.value)',\n '[value]': 'value()',\n },\n})\nexport class NumberOnly {\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n readonly min = input<number | undefined>();\n readonly max = input<number | undefined>();\n readonly len = input<number | undefined>();\n\n readonly value = model<string>('');\n\n // Hacky way to set the min value\n readonly _min = linkedSignal(this.min);\n readonly _max = linkedSignal(this.max);\n readonly _len = linkedSignal(this.len);\n\n constructor() {\n effect(cleanup => {\n const el = this.el.nativeElement;\n el.addEventListener('keydown', this.onKeyDown);\n cleanup(() => el.removeEventListener('keydown', this.onKeyDown));\n });\n }\n\n private readonly allowedKeys = new Set([\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n ]);\n\n onKeyDown = (e: KeyboardEvent) => {\n if (this.allowedKeys.has(e.key) || this.isCtrlKey(e)) return;\n if (e.key === 'v' && (e.ctrlKey || e.metaKey)) return e.preventDefault();\n\n if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return this.handleArrowUpDown(e);\n }\n\n if (!/^\\d$/.test(e.key) || !this.validateValue(this.getNewValue(e))) {\n e.preventDefault();\n }\n };\n\n private isCtrlKey(e: KeyboardEvent): boolean {\n return ['a', 'c', 'x'].includes(e.key) && (e.ctrlKey || e.metaKey);\n }\n\n private handleArrowUpDown(e: KeyboardEvent) {\n e.preventDefault();\n const currentValue = this.el.nativeElement.value;\n const newValue = +currentValue + (e.key === 'ArrowUp' ? 1 : -1);\n if (this.validateValue(newValue.toString())) {\n this.value.set(newValue.toString().padStart(2, '0'));\n }\n }\n\n private getNewValue(e: KeyboardEvent): string {\n const { value, selectionStart, selectionEnd } = this.el.nativeElement;\n const start = selectionStart ?? value.length;\n const end = selectionEnd ?? value.length;\n return value.slice(0, start) + e.key + value.slice(end);\n }\n\n private validateValue(rawValue: string): boolean {\n const len = this._len();\n const value = +rawValue;\n const min = this._min();\n const max = this._max();\n\n if (len !== undefined && rawValue.length > len) return false;\n if (max !== undefined && value > max) return false;\n\n if (min !== undefined && value < min) {\n const potentialMax = Number(rawValue + '9'.repeat(len ? len - rawValue.length : 1));\n if (potentialMax < min) return false;\n }\n\n return true;\n }\n}\n\nexport function padString(num: number | string): string {\n return num.toString().padStart(2, '0');\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -3,4 +3,3 @@ export * from './form-field';
3
3
  export { InputBase } from './input';
4
4
  export * from './auto-height';
5
5
  export * from './label';
6
- export * from './otp';
package/mask/mask.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { NgControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@ngbase/adk/form-field";
4
3
  export declare class Mask {
5
4
  private readonly el;
6
5
  readonly control: NgControl | null;
@@ -20,6 +19,6 @@ export declare class Mask {
20
19
  private updateView;
21
20
  private unmask;
22
21
  static ɵfac: i0.ɵɵFactoryDeclaration<Mask, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<Mask, "[ngbMask]", never, { "ngbMask": { "alias": "ngbMask"; "required": false; "isSignal": true; }; "showMaskType": { "alias": "showMaskType"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.InputBase; inputs: {}; outputs: {}; }]>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<Mask, "[ngbMask]", never, { "ngbMask": { "alias": "ngbMask"; "required": false; "isSignal": true; }; "showMaskType": { "alias": "showMaskType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
24
23
  }
25
24
  export declare function maskTransform(value: string, mask: string, showMaskType?: boolean): string;
@@ -1,6 +1,6 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import { AccessibleItem } from '@ngbase/adk/a11y';
3
- import { DialogOptions } from '@ngbase/adk/portal';
3
+ import { PopoverOptions } from '@ngbase/adk/popover';
4
4
  import { Subject } from 'rxjs';
5
5
  import { NgbMenu } from './menu';
6
6
  import * as i0 from "@angular/core";
@@ -11,7 +11,7 @@ export declare class NgbMenuTrigger {
11
11
  readonly a11y: AccessibleItem<any> | null;
12
12
  readonly ngbMenuTrigger: import("@angular/core").InputSignal<NgbMenu>;
13
13
  readonly ngbMenuTriggerData: import("@angular/core").InputSignal<unknown>;
14
- readonly options: import("@angular/core").InputSignal<DialogOptions<any>>;
14
+ readonly options: import("@angular/core").InputSignal<Partial<PopoverOptions>>;
15
15
  private readonly _menuOpen;
16
16
  readonly menuOpen: import("@angular/core").Signal<boolean>;
17
17
  readonly events: Subject<{
@@ -27,7 +27,7 @@ export declare class NgbMenuTrigger {
27
27
  get rootParent(): NgbMenu | null;
28
28
  clickOpen(ev: MouseEvent): void;
29
29
  private open;
30
- private closeMenu;
30
+ closeMenu(): void;
31
31
  openMenu(): void;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbMenuTrigger, never>;
33
33
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbMenuTrigger, "[ngbMenuTrigger]", ["ngbMenuTrigger"], { "ngbMenuTrigger": { "alias": "ngbMenuTrigger"; "required": true; "isSignal": true; }; "ngbMenuTriggerData": { "alias": "ngbMenuTriggerData"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
package/menu/menu.d.ts CHANGED
@@ -2,19 +2,23 @@ import { OnDestroy, TemplateRef } from '@angular/core';
2
2
  import { AccessibleGroup } from '@ngbase/adk/a11y';
3
3
  import { Keys } from '@ngbase/adk/keys';
4
4
  import { NgbList } from '@ngbase/adk/list';
5
+ import { PopoverOptions } from '@ngbase/adk/popover';
5
6
  import { DialogRef } from '@ngbase/adk/portal';
6
7
  import { NgbOption } from '@ngbase/adk/select';
7
8
  import { BehaviorSubject, Subject } from 'rxjs';
8
9
  import { NgbMenuTrigger } from './menu-trigger';
9
- import { PopoverOptions } from '@ngbase/adk/popover';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngbase/adk/a11y";
12
- export declare class MenuGroup {
12
+ export declare class NgpMenuGroup {
13
13
  readonly menu: NgbMenu;
14
14
  readonly allyGroup: AccessibleGroup;
15
15
  constructor();
16
- static ɵfac: i0.ɵɵFactoryDeclaration<MenuGroup, never>;
17
- static ɵdir: i0.ɵɵDirectiveDeclaration<MenuGroup, "[ngbMenuGroup]", never, {}, {}, never, never, true, [{ directive: typeof i1.AccessibleGroup; inputs: {}; outputs: {}; }]>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgpMenuGroup, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgpMenuGroup, "[ngbMenuGroup]", never, {}, {}, never, never, true, [{ directive: typeof i1.AccessibleGroup; inputs: {}; outputs: {}; }]>;
18
+ }
19
+ export declare class NgpMenuContent {
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgpMenuContent, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgpMenuContent, "ng-template[ngbMenuContent]", never, {}, {}, never, never, true, never>;
18
22
  }
19
23
  export declare class NgbMenu implements OnDestroy {
20
24
  readonly dir: import("@ngbase/adk/bidi").Directionality;
@@ -24,11 +28,13 @@ export declare class NgbMenu implements OnDestroy {
24
28
  };
25
29
  private readonly menuEl;
26
30
  readonly container: import("@angular/core").Signal<TemplateRef<any>>;
31
+ readonly content: import("@angular/core").Signal<readonly TemplateRef<any>[]>;
27
32
  readonly options: import("@angular/core").Signal<readonly NgbOption<any>[]>;
28
33
  readonly lists: import("@angular/core").Signal<readonly NgbList[]>;
29
34
  readonly manager: Keys;
30
35
  readonly selected: import("@angular/core").OutputEmitterRef<string>;
31
36
  readonly ayId: string;
37
+ readonly noAutoClose: import("@angular/core").InputSignal<boolean>;
32
38
  parentMenuTrigger?: NgbMenuTrigger;
33
39
  diaRef: DialogRef;
34
40
  readonly events: Subject<{
@@ -41,12 +47,12 @@ export declare class NgbMenu implements OnDestroy {
41
47
  open(options: PopoverOptions, subMenu?: boolean): void;
42
48
  opened(): void;
43
49
  get rootParent(): NgbMenu | undefined;
44
- close: () => void;
50
+ close: (data?: any) => void;
45
51
  ngOnDestroy(): void;
46
52
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbMenu, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<NgbMenu, "[ngbMenu]", ["ngbMenu"], {}, { "selected": "selected"; }, ["options", "lists"], ["*"], true, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbMenu, "[ngbMenu]", ["ngbMenu"], { "noAutoClose": { "alias": "noAutoClose"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, ["content", "options", "lists"], never, true, never>;
48
54
  }
49
- export declare const provideMenu: (menu: typeof NgbMenu) => {
55
+ export declare const aliasMenu: (menu: typeof NgbMenu) => {
50
56
  provide: typeof NgbMenu;
51
57
  useExisting: typeof NgbMenu;
52
58
  };
package/otp/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ngbase/adk/otp" />
5
+ export * from './public-api';
@@ -38,7 +38,7 @@ export declare class NgbInputOtp implements ControlValueAccessor {
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbInputOtp, never>;
39
39
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbInputOtp, "[ngbInputOtp]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "masked": { "alias": "masked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
40
40
  }
41
- export declare function provideInputOtp(otp: typeof NgbInputOtp): ({
41
+ export declare function aliasInputOtp(otp: typeof NgbInputOtp): ({
42
42
  provide: import("@angular/core").InjectionToken<readonly import("@angular/forms").ControlValueAccessor[]>;
43
43
  useExisting: import("@angular/core").Type<any>;
44
44
  multi: boolean;
@@ -0,0 +1 @@
1
+ export * from './otp';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngbase/adk",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ng-base/ngbase.git"
@@ -52,17 +52,17 @@
52
52
  "types": "./bidi/index.d.ts",
53
53
  "default": "./fesm2022/ngbase-adk-bidi.mjs"
54
54
  },
55
- "./breadcrumb": {
56
- "types": "./breadcrumb/index.d.ts",
57
- "default": "./fesm2022/ngbase-adk-breadcrumb.mjs"
55
+ "./cache": {
56
+ "types": "./cache/index.d.ts",
57
+ "default": "./fesm2022/ngbase-adk-cache.mjs"
58
58
  },
59
59
  "./carousel": {
60
60
  "types": "./carousel/index.d.ts",
61
61
  "default": "./fesm2022/ngbase-adk-carousel.mjs"
62
62
  },
63
- "./cache": {
64
- "types": "./cache/index.d.ts",
65
- "default": "./fesm2022/ngbase-adk-cache.mjs"
63
+ "./breadcrumb": {
64
+ "types": "./breadcrumb/index.d.ts",
65
+ "default": "./fesm2022/ngbase-adk-breadcrumb.mjs"
66
66
  },
67
67
  "./checkbox": {
68
68
  "types": "./checkbox/index.d.ts",
@@ -100,14 +100,14 @@
100
100
  "types": "./drag/index.d.ts",
101
101
  "default": "./fesm2022/ngbase-adk-drag.mjs"
102
102
  },
103
- "./hover-card": {
104
- "types": "./hover-card/index.d.ts",
105
- "default": "./fesm2022/ngbase-adk-hover-card.mjs"
106
- },
107
103
  "./form-field": {
108
104
  "types": "./form-field/index.d.ts",
109
105
  "default": "./fesm2022/ngbase-adk-form-field.mjs"
110
106
  },
107
+ "./hover-card": {
108
+ "types": "./hover-card/index.d.ts",
109
+ "default": "./fesm2022/ngbase-adk-hover-card.mjs"
110
+ },
111
111
  "./icon": {
112
112
  "types": "./icon/index.d.ts",
113
113
  "default": "./fesm2022/ngbase-adk-icon.mjs"
@@ -144,6 +144,10 @@
144
144
  "types": "./network/index.d.ts",
145
145
  "default": "./fesm2022/ngbase-adk-network.mjs"
146
146
  },
147
+ "./otp": {
148
+ "types": "./otp/index.d.ts",
149
+ "default": "./fesm2022/ngbase-adk-otp.mjs"
150
+ },
147
151
  "./pagination": {
148
152
  "types": "./pagination/index.d.ts",
149
153
  "default": "./fesm2022/ngbase-adk-pagination.mjs"
@@ -180,6 +184,10 @@
180
184
  "types": "./selectable/index.d.ts",
181
185
  "default": "./fesm2022/ngbase-adk-selectable.mjs"
182
186
  },
187
+ "./sheet": {
188
+ "types": "./sheet/index.d.ts",
189
+ "default": "./fesm2022/ngbase-adk-sheet.mjs"
190
+ },
183
191
  "./sidenav": {
184
192
  "types": "./sidenav/index.d.ts",
185
193
  "default": "./fesm2022/ngbase-adk-sidenav.mjs"
@@ -204,14 +212,14 @@
204
212
  "types": "./table/index.d.ts",
205
213
  "default": "./fesm2022/ngbase-adk-table.mjs"
206
214
  },
207
- "./test": {
208
- "types": "./test/index.d.ts",
209
- "default": "./fesm2022/ngbase-adk-test.mjs"
210
- },
211
215
  "./tabs": {
212
216
  "types": "./tabs/index.d.ts",
213
217
  "default": "./fesm2022/ngbase-adk-tabs.mjs"
214
218
  },
219
+ "./test": {
220
+ "types": "./test/index.d.ts",
221
+ "default": "./fesm2022/ngbase-adk-test.mjs"
222
+ },
215
223
  "./toggle": {
216
224
  "types": "./toggle/index.d.ts",
217
225
  "default": "./fesm2022/ngbase-adk-toggle.mjs"
@@ -228,14 +236,14 @@
228
236
  "types": "./tour/index.d.ts",
229
237
  "default": "./fesm2022/ngbase-adk-tour.mjs"
230
238
  },
231
- "./tree": {
232
- "types": "./tree/index.d.ts",
233
- "default": "./fesm2022/ngbase-adk-tree.mjs"
234
- },
235
239
  "./translate": {
236
240
  "types": "./translate/index.d.ts",
237
241
  "default": "./fesm2022/ngbase-adk-translate.mjs"
238
242
  },
243
+ "./tree": {
244
+ "types": "./tree/index.d.ts",
245
+ "default": "./fesm2022/ngbase-adk-tree.mjs"
246
+ },
239
247
  "./utils": {
240
248
  "types": "./utils/index.d.ts",
241
249
  "default": "./fesm2022/ngbase-adk-utils.mjs"
@@ -11,10 +11,10 @@ export declare class NgbPaginationBtn {
11
11
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbPaginationBtn, "[ngbPaginationBtn]", never, { "ngbPaginationBtn": { "alias": "ngbPaginationBtn"; "required": true; "isSignal": true; }; "jump": { "alias": "jump"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
12
  }
13
13
  export declare class NgbPagination {
14
- readonly total: import("@angular/core").InputSignal<number>;
15
14
  readonly size: import("@angular/core").ModelSignal<number>;
16
- readonly sizeOptions: import("@angular/core").InputSignal<number[]>;
17
15
  readonly active: import("@angular/core").ModelSignal<number>;
16
+ readonly total: import("@angular/core").InputSignal<number>;
17
+ readonly sizeOptions: import("@angular/core").InputSignal<number[]>;
18
18
  readonly valueChanged: import("@angular/core").OutputEmitterRef<number>;
19
19
  readonly totalSnaps: import("@angular/core").Signal<number>;
20
20
  readonly snaps: import("@angular/core").Signal<number[]>;
@@ -24,5 +24,9 @@ export declare class NgbPagination {
24
24
  jump(by: number): void;
25
25
  sizeChanged(size: number): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbPagination, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<NgbPagination, "[ngbPagination]", never, { "total": { "alias": "total"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "sizeOptions": { "alias": "sizeOptions"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": true; "isSignal": true; }; }, { "size": "sizeChange"; "active": "activeChange"; "valueChanged": "valueChanged"; }, never, never, true, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbPagination, "[ngbPagination]", never, { "size": { "alias": "size"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": true; "isSignal": true; }; "total": { "alias": "total"; "required": true; "isSignal": true; }; "sizeOptions": { "alias": "sizeOptions"; "required": false; "isSignal": true; }; }, { "size": "sizeChange"; "active": "activeChange"; "valueChanged": "valueChanged"; }, never, never, true, never>;
28
28
  }
29
+ export declare function aliasPagination(pagination: typeof NgbPagination): {
30
+ provide: typeof NgbPagination;
31
+ useExisting: typeof NgbPagination;
32
+ };
@@ -10,7 +10,7 @@ export declare function basePopoverPortal<T>(component: Type<T>): {
10
10
  }>;
11
11
  parent: T;
12
12
  replace: ((component: DialogInput<T_1>) => void) | undefined;
13
- childSignal: import("@angular/core").WritableSignal<any>;
13
+ childSignal: import("@angular/core").WritableSignal<import("@angular/core").ComponentRef<any> | import("@angular/core").EmbeddedViewRef<any> | undefined>;
14
14
  };
15
15
  closeAll: () => void;
16
16
  };
@@ -0,0 +1,34 @@
1
+ import { ElementRef, WritableSignal } from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { PopoverPosition } from './popover.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class PopoverArrowTracker {
6
+ top?: number | undefined;
7
+ left?: number | undefined;
8
+ right?: number | undefined;
9
+ bottom?: number | undefined;
10
+ target?: HTMLElement;
11
+ position?: PopoverPosition;
12
+ }
13
+ export declare const POPOVER_ARROW_TRACKER: InjectionToken<{
14
+ values: WritableSignal<PopoverArrowTracker>;
15
+ }>;
16
+ export declare function providePopoverArrowTracker(): {
17
+ provide: InjectionToken<{
18
+ values: WritableSignal<PopoverArrowTracker>;
19
+ }>;
20
+ useFactory: () => {
21
+ values: WritableSignal<PopoverArrowTracker>;
22
+ };
23
+ };
24
+ export declare class NgbPopoverArrow {
25
+ readonly arrowTracker: {
26
+ values: WritableSignal<PopoverArrowTracker>;
27
+ };
28
+ readonly anchor: import("@angular/core").InputSignal<boolean>;
29
+ readonly el: ElementRef<any>;
30
+ readonly styles: import("@angular/core").Signal<{}>;
31
+ private updateAnchorPosition;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgbPopoverArrow, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgbPopoverArrow, "[ngbPopoverArrow]", never, { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
34
+ }
@@ -1,11 +1,10 @@
1
1
  import { ElementRef, ViewContainerRef } from '@angular/core';
2
2
  import { FocusTrap } from '@ngbase/adk/a11y';
3
- import { BaseDialog } from '@ngbase/adk/portal';
3
+ import { BaseDialog, NgbPortalClose } from '@ngbase/adk/portal';
4
4
  import { Observable } from 'rxjs';
5
5
  import { PopoverOptions } from './popover.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngbase/adk/a11y";
8
- import * as i2 from "@ngbase/adk/portal";
9
8
  export declare class NgbPopoverBackdrop {
10
9
  readonly popover: NgbPopover;
11
10
  readonly focusTrap: FocusTrap;
@@ -19,6 +18,9 @@ export declare class NgbPopoverMain {
19
18
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbPopoverMain, "[ngbPopoverMain]", never, {}, {}, never, never, true, never>;
20
19
  }
21
20
  export declare class NgbPopover extends BaseDialog {
21
+ readonly arrowTracker: {
22
+ values: import("@angular/core").WritableSignal<import("@ngbase/adk/popover").PopoverArrowTracker>;
23
+ };
22
24
  private readonly disposals;
23
25
  readonly myDialog: import("@angular/core").Signal<ViewContainerRef>;
24
26
  readonly container: import("@angular/core").Signal<ElementRef<HTMLElement>>;
@@ -35,16 +37,24 @@ export declare class NgbPopover extends BaseDialog {
35
37
  private scheduleUpdateDimension;
36
38
  private schedulePopoverUpdate;
37
39
  private updateDimension;
38
- private updateAnchorPosition;
39
40
  setOptions(options: PopoverOptions): void;
40
41
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbPopover, never>;
41
42
  static ɵcmp: i0.ɵɵComponentDeclaration<NgbPopover, "ngb-popover", never, {}, {}, never, never, true, never>;
42
43
  }
43
- export declare class NgbPopoverClose {
44
+ export declare class NgbPopoverClose extends NgbPortalClose {
45
+ readonly ngbPopoverClose: import("@angular/core").InputSignal<unknown>;
46
+ close(): void;
44
47
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbPopoverClose, never>;
45
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgbPopoverClose, "[ngbPopoverClose]", never, {}, {}, never, never, true, [{ directive: typeof i2.NgbPortalClose; inputs: { "ngbPortalClose": "ngbPopoverClose"; }; outputs: {}; }]>;
48
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbPopoverClose, "[ngbPopoverClose]", never, { "ngbPopoverClose": { "alias": "ngbPopoverClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
49
  }
47
- export declare function providePopover(popover: typeof NgbPopover): {
50
+ export declare function aliasPopover(popover: typeof NgbPopover): ({
51
+ provide: import("@angular/core").InjectionToken<{
52
+ values: import("@angular/core").WritableSignal<import("@ngbase/adk/popover").PopoverArrowTracker>;
53
+ }>;
54
+ useFactory: () => {
55
+ values: import("@angular/core").WritableSignal<import("@ngbase/adk/popover").PopoverArrowTracker>;
56
+ };
57
+ } | {
48
58
  provide: typeof NgbPopover;
49
59
  useExisting: typeof NgbPopover;
50
- };
60
+ })[];
@@ -2,8 +2,9 @@ import { InjectionToken, Signal, Type, WritableSignal } from '@angular/core';
2
2
  import { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';
3
3
  import { Observable } from 'rxjs';
4
4
  import { NgbPopover } from './popover';
5
- export type PopoverPosition = 'top' | 'bottom' | 'left' | 'right' | 'tl' | 'tr' | 'bl' | 'br';
6
- export declare class PopoverOptions extends DialogOptions {
5
+ import { OverlayPosition, PopoverUtilConfig } from './utils';
6
+ export type PopoverPosition = OverlayPosition;
7
+ export declare class PopoverOptions extends DialogOptions implements PopoverUtilConfig {
7
8
  target: HTMLElement;
8
9
  el?: HTMLElement;
9
10
  position?: PopoverPosition;
@@ -36,7 +37,7 @@ export declare function ngbPopoverPortal(): {
36
37
  open: <T>(component: DialogInput<T>, options: PopoverOptions) => PopoverOpen<T>;
37
38
  closeAll: () => void;
38
39
  };
39
- export declare const registerNgbPopover: (popover: Type<NgbPopover>) => {
40
+ export declare const registerNgbPopover: (popover: typeof NgbPopover) => {
40
41
  provide: InjectionToken<Type<NgbPopover>>;
41
- useValue: Type<NgbPopover>;
42
+ useValue: typeof NgbPopover;
42
43
  };
@@ -2,4 +2,5 @@ export * from './popover.service';
2
2
  export * from './popover';
3
3
  export * from './popover-trigger';
4
4
  export * from './base-popover.service';
5
+ export * from './popover-arrow.ng';
5
6
  export { tooltipPosition } from './utils';
@@ -1,10 +1,24 @@
1
- import { PopoverOptions, PopoverPosition } from './popover.service';
1
+ export interface PopoverUtilConfig {
2
+ offset?: number;
3
+ sideOffset?: number;
4
+ smoothScroll?: boolean;
5
+ position?: Position | OverlayPosition;
6
+ client?: {
7
+ x: number;
8
+ y: number;
9
+ w: number;
10
+ h: number;
11
+ } | null;
12
+ target: HTMLElement;
13
+ el?: HTMLElement;
14
+ }
2
15
  export interface Rect {
3
16
  top: number;
4
17
  left: number;
5
18
  width: number;
6
19
  height: number;
7
20
  }
21
+ export type OverlayPosition = 'top' | 'bottom' | 'left' | 'right' | 'rs' | 're' | 'ls' | 'le' | 'tl' | 'tr' | 'bl' | 'br';
8
22
  export declare enum Position {
9
23
  Top = "top",
10
24
  Bottom = "bottom",
@@ -13,44 +27,15 @@ export declare enum Position {
13
27
  TopLeft = "tl",
14
28
  TopRight = "tr",
15
29
  BottomLeft = "bl",
16
- BottomRight = "br"
17
- }
18
- export interface ConfigObj {
19
- top: number;
20
- left: number;
21
- width: number;
22
- height: number;
23
- elWidth: number;
24
- elHeight: number;
25
- offset: number;
26
- priority: PopoverPosition;
27
- position: PopoverPosition;
28
- windowWidth: number;
29
- windowHeight: number;
30
- scrollWidth: number;
31
- }
32
- export interface OverflowData {
33
- top: boolean;
34
- bottom: boolean;
35
- left: boolean;
36
- right: boolean;
37
- leftSide: boolean;
38
- rightSide: boolean;
39
- any: boolean;
40
- preferredHorizontal: 'left' | 'right' | undefined;
41
- preferredVertical: 'top' | 'bottom' | undefined;
42
- overflowAmount: {
43
- top: number;
44
- bottom: number;
45
- left: number;
46
- right: number;
47
- leftSide: number;
48
- rightSide: number;
49
- };
30
+ BottomRight = "br",
31
+ RightStart = "rs",
32
+ RightEnd = "re",
33
+ LeftStart = "ls",
34
+ LeftEnd = "le"
50
35
  }
51
36
  export interface PositionResult {
52
- top: number;
53
- left: number;
37
+ top?: number;
38
+ left?: number;
54
39
  bottom?: number;
55
40
  right?: number;
56
41
  position: Position;
@@ -61,25 +46,24 @@ export declare class PopoverPositioner {
61
46
  private config;
62
47
  private windowDimensions;
63
48
  private scrollWidth;
64
- private overflow;
65
- private elRect;
66
49
  private offset;
67
- constructor(config: PopoverOptions, windowDimensions: {
50
+ private sideOffset;
51
+ private elementRect;
52
+ constructor(config: PopoverUtilConfig, windowDimensions: {
68
53
  width: number;
69
54
  height: number;
70
- }, scrollWidth: number);
55
+ }, scrollWidth?: number);
71
56
  calculatePosition(): PositionResult;
72
57
  private getTargetRect;
73
58
  private getElementRect;
74
- private getInitialPosition;
75
- private getCoordinatesForPosition;
76
- private adjustForOverflow;
77
- private checkOverflow;
78
- getAlternativePosition(position: Position, overflow: OverflowData): Position;
59
+ private findBestPosition;
60
+ private getAvailableSpace;
61
+ private positionOverflows;
62
+ private getOverflowAmount;
63
+ private getPositionWithLeastOverflow;
79
64
  private finalizePosition;
80
- private getOverallOffset;
81
65
  }
82
- export declare function tooltipPosition(config: PopoverOptions, windowDimensions?: {
66
+ export declare function tooltipPosition(config: PopoverUtilConfig, windowDimensions?: {
83
67
  width: number;
84
68
  height: number;
85
69
  }, scrollWidth?: number): PositionResult;