@tacdaed/fragments 1.0.0-beta.4 → 1.0.0-beta.6

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 (263) hide show
  1. package/README.md +16 -11
  2. package/assets/styles/scss/_all.scss +0 -1
  3. package/fesm2022/tacdaed-fragments.mjs +8928 -0
  4. package/index.d.ts +3929 -0
  5. package/package.json +34 -22
  6. package/assets/resources/fonts/OpenSans/OpenSans-Italic-VariableFont_wdth_wght.ttf +0 -0
  7. package/assets/resources/fonts/OpenSans/OpenSans-VariableFont_wdth_wght.ttf +0 -0
  8. package/assets/resources/fonts/Roboto/Roboto-Black.ttf +0 -0
  9. package/assets/resources/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  10. package/assets/resources/fonts/Roboto/Roboto-Bold.ttf +0 -0
  11. package/assets/resources/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  12. package/assets/resources/fonts/Roboto/Roboto-Italic.ttf +0 -0
  13. package/assets/resources/fonts/Roboto/Roboto-Light.ttf +0 -0
  14. package/assets/resources/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  15. package/assets/resources/fonts/Roboto/Roboto-Medium.ttf +0 -0
  16. package/assets/resources/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  17. package/assets/resources/fonts/Roboto/Roboto-Regular.ttf +0 -0
  18. package/assets/resources/fonts/Roboto/Roboto-Thin.ttf +0 -0
  19. package/assets/resources/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  20. package/assets/styles/scss/_fonts.scss +0 -122
  21. package/ng-package.json +0 -20
  22. package/src/lib/components/accordion/accordion.component.html +0 -103
  23. package/src/lib/components/accordion/accordion.component.scss +0 -382
  24. package/src/lib/components/accordion/accordion.component.spec.ts +0 -147
  25. package/src/lib/components/accordion/accordion.component.ts +0 -211
  26. package/src/lib/components/accordion/accordion.type.ts +0 -82
  27. package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -43
  28. package/src/lib/components/breadcrumb/breadcrumb.component.scss +0 -112
  29. package/src/lib/components/breadcrumb/breadcrumb.component.spec.ts +0 -33
  30. package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -103
  31. package/src/lib/components/breadcrumb/breadcrumb.interface.ts +0 -7
  32. package/src/lib/components/button/button.component.html +0 -57
  33. package/src/lib/components/button/button.component.scss +0 -445
  34. package/src/lib/components/button/button.component.spec.ts +0 -99
  35. package/src/lib/components/button/button.component.ts +0 -143
  36. package/src/lib/components/button/button.type.ts +0 -7
  37. package/src/lib/components/card/card.component.html +0 -44
  38. package/src/lib/components/card/card.component.scss +0 -114
  39. package/src/lib/components/card/card.component.spec.ts +0 -65
  40. package/src/lib/components/card/card.component.ts +0 -21
  41. package/src/lib/components/card/card.type.ts +0 -3
  42. package/src/lib/components/code-block/code-block.component.html +0 -55
  43. package/src/lib/components/code-block/code-block.component.scss +0 -122
  44. package/src/lib/components/code-block/code-block.component.spec.ts +0 -81
  45. package/src/lib/components/code-block/code-block.component.ts +0 -302
  46. package/src/lib/components/code-block/code-block.interface.ts +0 -28
  47. package/src/lib/components/code-block/code-block.type.ts +0 -73
  48. package/src/lib/components/decorative/sparkle-field/sparkle-field.component.html +0 -14
  49. package/src/lib/components/decorative/sparkle-field/sparkle-field.component.scss +0 -20
  50. package/src/lib/components/decorative/sparkle-field/sparkle-field.component.spec.ts +0 -38
  51. package/src/lib/components/decorative/sparkle-field/sparkle-field.component.ts +0 -181
  52. package/src/lib/components/input/input-base.ts +0 -187
  53. package/src/lib/components/input/input-calendar/input-calendar.component.html +0 -76
  54. package/src/lib/components/input/input-calendar/input-calendar.component.scss +0 -179
  55. package/src/lib/components/input/input-calendar/input-calendar.component.spec.ts +0 -44
  56. package/src/lib/components/input/input-calendar/input-calendar.component.ts +0 -299
  57. package/src/lib/components/input/input-checkbox/input-checkbox.component.html +0 -37
  58. package/src/lib/components/input/input-checkbox/input-checkbox.component.scss +0 -128
  59. package/src/lib/components/input/input-checkbox/input-checkbox.component.spec.ts +0 -43
  60. package/src/lib/components/input/input-checkbox/input-checkbox.component.ts +0 -112
  61. package/src/lib/components/input/input-checkbox-group/input-checkbox-group.component.html +0 -43
  62. package/src/lib/components/input/input-checkbox-group/input-checkbox-group.component.scss +0 -140
  63. package/src/lib/components/input/input-checkbox-group/input-checkbox-group.component.spec.ts +0 -62
  64. package/src/lib/components/input/input-checkbox-group/input-checkbox-group.component.ts +0 -136
  65. package/src/lib/components/input/input-clock-picker/input-clock-picker.component.html +0 -81
  66. package/src/lib/components/input/input-clock-picker/input-clock-picker.component.scss +0 -228
  67. package/src/lib/components/input/input-clock-picker/input-clock-picker.component.spec.ts +0 -62
  68. package/src/lib/components/input/input-clock-picker/input-clock-picker.component.ts +0 -178
  69. package/src/lib/components/input/input-consts.ts +0 -132
  70. package/src/lib/components/input/input-date/input-date-validators.ts +0 -41
  71. package/src/lib/components/input/input-date/input-date.component.html +0 -41
  72. package/src/lib/components/input/input-date/input-date.component.scss +0 -95
  73. package/src/lib/components/input/input-date/input-date.component.spec.ts +0 -43
  74. package/src/lib/components/input/input-date/input-date.component.ts +0 -359
  75. package/src/lib/components/input/input-date-time/input-date-time.component.html +0 -70
  76. package/src/lib/components/input/input-date-time/input-date-time.component.scss +0 -133
  77. package/src/lib/components/input/input-date-time/input-date-time.component.spec.ts +0 -36
  78. package/src/lib/components/input/input-date-time/input-date-time.component.ts +0 -387
  79. package/src/lib/components/input/input-file-upload/input-file-upload.component.html +0 -89
  80. package/src/lib/components/input/input-file-upload/input-file-upload.component.scss +0 -171
  81. package/src/lib/components/input/input-file-upload/input-file-upload.component.spec.ts +0 -43
  82. package/src/lib/components/input/input-file-upload/input-file-upload.component.ts +0 -351
  83. package/src/lib/components/input/input-interface.ts +0 -8
  84. package/src/lib/components/input/input-number/input-number-validators.ts +0 -0
  85. package/src/lib/components/input/input-number/input-number.component.html +0 -51
  86. package/src/lib/components/input/input-number/input-number.component.scss +0 -140
  87. package/src/lib/components/input/input-number/input-number.component.spec.ts +0 -44
  88. package/src/lib/components/input/input-number/input-number.component.ts +0 -343
  89. package/src/lib/components/input/input-radio-group/input-radio-group.component.html +0 -44
  90. package/src/lib/components/input/input-radio-group/input-radio-group.component.scss +0 -139
  91. package/src/lib/components/input/input-radio-group/input-radio-group.component.spec.ts +0 -58
  92. package/src/lib/components/input/input-radio-group/input-radio-group.component.ts +0 -132
  93. package/src/lib/components/input/input-slider/input-slider.component.html +0 -111
  94. package/src/lib/components/input/input-slider/input-slider.component.scss +0 -203
  95. package/src/lib/components/input/input-slider/input-slider.component.spec.ts +0 -46
  96. package/src/lib/components/input/input-slider/input-slider.component.ts +0 -410
  97. package/src/lib/components/input/input-text/input-text-validators.ts +0 -67
  98. package/src/lib/components/input/input-text/input-text.component.html +0 -71
  99. package/src/lib/components/input/input-text/input-text.component.scss +0 -118
  100. package/src/lib/components/input/input-text/input-text.component.spec.ts +0 -55
  101. package/src/lib/components/input/input-text/input-text.component.ts +0 -215
  102. package/src/lib/components/input/input-time/input-time-validators.ts +0 -42
  103. package/src/lib/components/input/input-time/input-time.component.html +0 -92
  104. package/src/lib/components/input/input-time/input-time.component.scss +0 -191
  105. package/src/lib/components/input/input-time/input-time.component.spec.ts +0 -39
  106. package/src/lib/components/input/input-time/input-time.component.ts +0 -691
  107. package/src/lib/components/input/input-toggle-switch/input-toggle-switch.component.html +0 -36
  108. package/src/lib/components/input/input-toggle-switch/input-toggle-switch.component.scss +0 -121
  109. package/src/lib/components/input/input-toggle-switch/input-toggle-switch.component.spec.ts +0 -54
  110. package/src/lib/components/input/input-toggle-switch/input-toggle-switch.component.ts +0 -117
  111. package/src/lib/components/input/input-type.ts +0 -18
  112. package/src/lib/components/input/input-validation/input-validation.component.html +0 -19
  113. package/src/lib/components/input/input-validation/input-validation.component.scss +0 -39
  114. package/src/lib/components/input/input-validation/input-validation.component.spec.ts +0 -45
  115. package/src/lib/components/input/input-validation/input-validation.component.ts +0 -13
  116. package/src/lib/components/input/input.pipe.ts +0 -14
  117. package/src/lib/components/layout/container/container.component.html +0 -1
  118. package/src/lib/components/layout/container/container.component.scss +0 -33
  119. package/src/lib/components/layout/container/container.component.ts +0 -32
  120. package/src/lib/components/layout/container/container.type.ts +0 -1
  121. package/src/lib/components/layout/divider/divider.component.html +0 -1
  122. package/src/lib/components/layout/divider/divider.component.scss +0 -60
  123. package/src/lib/components/layout/divider/divider.component.ts +0 -38
  124. package/src/lib/components/layout/divider/divider.type.ts +0 -2
  125. package/src/lib/components/layout/section/section.component.html +0 -21
  126. package/src/lib/components/layout/section/section.component.scss +0 -43
  127. package/src/lib/components/layout/section/section.component.ts +0 -33
  128. package/src/lib/components/layout/section/section.type.ts +0 -2
  129. package/src/lib/components/layout/separator/separator.component.html +0 -9
  130. package/src/lib/components/layout/separator/separator.component.scss +0 -52
  131. package/src/lib/components/layout/separator/separator.component.ts +0 -25
  132. package/src/lib/components/layout/separator/separator.type.ts +0 -1
  133. package/src/lib/components/loader/content-blur/content-blur.component.html +0 -13
  134. package/src/lib/components/loader/content-blur/content-blur.component.scss +0 -43
  135. package/src/lib/components/loader/content-blur/content-blur.component.spec.ts +0 -42
  136. package/src/lib/components/loader/content-blur/content-blur.component.ts +0 -34
  137. package/src/lib/components/loader/loader.type.ts +0 -2
  138. package/src/lib/components/loader/progress-bar/progress-bar.component.html +0 -26
  139. package/src/lib/components/loader/progress-bar/progress-bar.component.scss +0 -151
  140. package/src/lib/components/loader/progress-bar/progress-bar.component.spec.ts +0 -47
  141. package/src/lib/components/loader/progress-bar/progress-bar.component.ts +0 -28
  142. package/src/lib/components/loader/progress-bar/progress-bar.type.ts +0 -8
  143. package/src/lib/components/loader/pulse-loader/pulse-loader.component.html +0 -12
  144. package/src/lib/components/loader/pulse-loader/pulse-loader.component.scss +0 -202
  145. package/src/lib/components/loader/pulse-loader/pulse-loader.component.spec.ts +0 -55
  146. package/src/lib/components/loader/pulse-loader/pulse-loader.component.ts +0 -73
  147. package/src/lib/components/loader/pulse-loader/pulse-loader.type.ts +0 -6
  148. package/src/lib/components/loader/skeleton-loader/skeleton-loader.component.html +0 -13
  149. package/src/lib/components/loader/skeleton-loader/skeleton-loader.component.scss +0 -113
  150. package/src/lib/components/loader/skeleton-loader/skeleton-loader.component.spec.ts +0 -37
  151. package/src/lib/components/loader/skeleton-loader/skeleton-loader.component.ts +0 -51
  152. package/src/lib/components/loader/skeleton-loader/skeleton-loader.type.ts +0 -6
  153. package/src/lib/components/loader/spinner/spinner.component.html +0 -20
  154. package/src/lib/components/loader/spinner/spinner.component.scss +0 -137
  155. package/src/lib/components/loader/spinner/spinner.component.spec.ts +0 -43
  156. package/src/lib/components/loader/spinner/spinner.component.ts +0 -32
  157. package/src/lib/components/loader/spinner/spinner.type.ts +0 -6
  158. package/src/lib/components/modal/modal.component.html +0 -47
  159. package/src/lib/components/modal/modal.component.scss +0 -139
  160. package/src/lib/components/modal/modal.component.spec.ts +0 -60
  161. package/src/lib/components/modal/modal.component.ts +0 -83
  162. package/src/lib/components/modal/modal.type.ts +0 -9
  163. package/src/lib/components/morph/blob-moph/blob-moprh.component.spec.ts +0 -79
  164. package/src/lib/components/morph/blob-moph/blob-moprh.component.ts +0 -96
  165. package/src/lib/components/morph/blob-moph/blob-morph.component.html +0 -34
  166. package/src/lib/components/morph/blob-moph/blob-morph.component.scss +0 -7
  167. package/src/lib/components/morph/morph.abstract.ts +0 -13
  168. package/src/lib/components/pagination/pagination.interface.ts +0 -4
  169. package/src/lib/components/pagination/small-pagination/small-pagination.component.html +0 -61
  170. package/src/lib/components/pagination/small-pagination/small-pagination.component.scss +0 -187
  171. package/src/lib/components/pagination/small-pagination/small-pagination.component.spec.ts +0 -88
  172. package/src/lib/components/pagination/small-pagination/small-pagination.component.ts +0 -177
  173. package/src/lib/components/selection-lists/multi-select/multi-select.component.html +0 -170
  174. package/src/lib/components/selection-lists/multi-select/multi-select.component.scss +0 -312
  175. package/src/lib/components/selection-lists/multi-select/multi-select.component.spec.ts +0 -61
  176. package/src/lib/components/selection-lists/multi-select/multi-select.component.ts +0 -372
  177. package/src/lib/components/selection-lists/selection-list/selection-list.component.html +0 -125
  178. package/src/lib/components/selection-lists/selection-list/selection-list.component.scss +0 -267
  179. package/src/lib/components/selection-lists/selection-list/selection-list.component.spec.ts +0 -66
  180. package/src/lib/components/selection-lists/selection-list/selection-list.component.ts +0 -315
  181. package/src/lib/components/selection-lists/selection-lists-base.ts +0 -35
  182. package/src/lib/components/selection-lists/selection-lists-const.ts +0 -17
  183. package/src/lib/components/selection-lists/selection-lists-interface.ts +0 -7
  184. package/src/lib/components/selection-lists/selection-lists.type.ts +0 -1
  185. package/src/lib/components/side-nav/side-nav.component.html +0 -101
  186. package/src/lib/components/side-nav/side-nav.component.scss +0 -295
  187. package/src/lib/components/side-nav/side-nav.component.spec.ts +0 -0
  188. package/src/lib/components/side-nav/side-nav.component.ts +0 -18
  189. package/src/lib/components/side-nav/side-nav.type.ts +0 -28
  190. package/src/lib/components/snackbar/snackbar.component.html +0 -33
  191. package/src/lib/components/snackbar/snackbar.component.scss +0 -195
  192. package/src/lib/components/snackbar/snackbar.component.ts +0 -112
  193. package/src/lib/components/snackbar/snackbar.type.ts +0 -27
  194. package/src/lib/components/status/chip/chip.component.html +0 -51
  195. package/src/lib/components/status/chip/chip.component.scss +0 -149
  196. package/src/lib/components/status/chip/chip.component.spec.ts +0 -62
  197. package/src/lib/components/status/chip/chip.component.ts +0 -83
  198. package/src/lib/components/status/chip/chip.type.ts +0 -42
  199. package/src/lib/components/status/directives/badge/badge.directive.spec.ts +0 -60
  200. package/src/lib/components/status/directives/badge/badge.directive.ts +0 -190
  201. package/src/lib/components/status/directives/badge/badge.interface.ts +0 -19
  202. package/src/lib/components/status/pill/pill.component.html +0 -40
  203. package/src/lib/components/status/pill/pill.component.scss +0 -113
  204. package/src/lib/components/status/pill/pill.component.spec.ts +0 -47
  205. package/src/lib/components/status/pill/pill.component.ts +0 -83
  206. package/src/lib/components/status/pill/pill.type.ts +0 -42
  207. package/src/lib/components/status/status.interface.ts +0 -57
  208. package/src/lib/components/status/status.type.ts +0 -62
  209. package/src/lib/components/status/tag/tag.component.html +0 -39
  210. package/src/lib/components/status/tag/tag.component.scss +0 -140
  211. package/src/lib/components/status/tag/tag.component.spec.ts +0 -47
  212. package/src/lib/components/status/tag/tag.component.ts +0 -83
  213. package/src/lib/components/status/tag/tag.type.ts +0 -42
  214. package/src/lib/components/stepper/stepper.component.html +0 -83
  215. package/src/lib/components/stepper/stepper.component.scss +0 -196
  216. package/src/lib/components/stepper/stepper.component.ts +0 -482
  217. package/src/lib/components/stepper/stepper.type.ts +0 -60
  218. package/src/lib/components/table/table.component.html +0 -438
  219. package/src/lib/components/table/table.component.scss +0 -259
  220. package/src/lib/components/table/table.component.spec.ts +0 -117
  221. package/src/lib/components/table/table.component.ts +0 -215
  222. package/src/lib/components/table/table.enum.ts +0 -4
  223. package/src/lib/components/table/table.function.ts +0 -47
  224. package/src/lib/components/table/table.interface.ts +0 -143
  225. package/src/lib/components/table/table.pipe.ts +0 -62
  226. package/src/lib/components/table/table.type.ts +0 -15
  227. package/src/lib/components/tabs/tabs.component.html +0 -88
  228. package/src/lib/components/tabs/tabs.component.scss +0 -305
  229. package/src/lib/components/tabs/tabs.component.spec.ts +0 -94
  230. package/src/lib/components/tabs/tabs.component.ts +0 -282
  231. package/src/lib/components/tabs/tabs.type.ts +0 -81
  232. package/src/lib/components/title-bar/title-bar.component.html +0 -21
  233. package/src/lib/components/title-bar/title-bar.component.scss +0 -139
  234. package/src/lib/components/title-bar/title-bar.component.spec.ts +0 -44
  235. package/src/lib/components/title-bar/title-bar.component.ts +0 -13
  236. package/src/lib/components/toast/toast.component.html +0 -36
  237. package/src/lib/components/toast/toast.component.scss +0 -241
  238. package/src/lib/components/toast/toast.component.ts +0 -165
  239. package/src/lib/components/toast/toast.type.ts +0 -37
  240. package/src/lib/components/toast-stack/toast-stack.component.html +0 -30
  241. package/src/lib/components/toast-stack/toast-stack.component.scss +0 -35
  242. package/src/lib/components/toast-stack/toast-stack.component.ts +0 -51
  243. package/src/lib/consts/country-prefix.ts +0 -244
  244. package/src/lib/directives/tooltip/popover.directive.ts +0 -274
  245. package/src/lib/directives/tooltip/tooltip.directive.spec.ts +0 -86
  246. package/src/lib/directives/tooltip/tooltip.directive.ts +0 -234
  247. package/src/lib/directives/tooltip/tooltip.interface.ts +0 -29
  248. package/src/lib/directives/tooltip/tooltip.type.ts +0 -9
  249. package/src/lib/interfaces/common.interfaces.ts +0 -4
  250. package/src/lib/pipes/chunk.pipe.ts +0 -16
  251. package/src/lib/pipes/safe-html.pipe.ts +0 -14
  252. package/src/lib/pipes/sanitize-html.pipe.ts +0 -23
  253. package/src/lib/types/base.types.ts +0 -23
  254. package/src/lib/types/common.types.ts +0 -98
  255. package/src/lib/types/form.types.ts +0 -5
  256. package/src/lib/utils/common.utils.ts +0 -53
  257. package/src/lib/utils/date.utils.ts +0 -474
  258. package/src/lib/utils/number.utils.ts +0 -16
  259. package/src/lib/utils/uuid.utils.ts +0 -39
  260. package/src/public-api.ts +0 -114
  261. package/tsconfig.lib.json +0 -17
  262. package/tsconfig.lib.prod.json +0 -10
  263. package/tsconfig.spec.json +0 -9
package/index.d.ts ADDED
@@ -0,0 +1,3929 @@
1
+ import * as i0 from '@angular/core';
2
+ import { TemplateRef, OnChanges, EventEmitter, QueryList, ElementRef, SimpleChanges, OnDestroy, Type, AfterViewInit, OnInit, PipeTransform } from '@angular/core';
3
+ import { FormControl, AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
+ import { ActivatedRoute } from '@angular/router';
7
+
8
+ type TBaseStyle = 'default' | 'primary' | 'secondary' | 'tertiary' | 'dark' | 'light' | 'info' | 'success' | 'warning' | 'danger' | 'outline-primary' | 'outline-secondary' | 'outline-tertiary' | 'outline-dark' | 'outline-light' | 'outline-info' | 'outline-success' | 'outline-warning' | 'outline-danger';
9
+ type TBaseSize = 'small' | 'medium' | 'large';
10
+ type TBasePosition = 'top' | 'left' | 'right' | 'bottom';
11
+
12
+ type TAccordionStyle = TBaseStyle;
13
+ type TAccordionSize = TBaseSize;
14
+ interface AccordionItemContext<T = unknown> {
15
+ $implicit: AccordionItem<T>;
16
+ item: AccordionItem<T>;
17
+ index: number;
18
+ expanded: boolean;
19
+ toggle: () => void;
20
+ }
21
+ interface AccordionItem<T = unknown> {
22
+ /**
23
+ * Unique identifier for the accordion item.
24
+ * If not provided, it will be generated automatically.
25
+ */
26
+ id?: string;
27
+ /**
28
+ * Visible title inside the header.
29
+ */
30
+ title: string;
31
+ /**
32
+ * Optional subtitle rendered below the title in the default header.
33
+ */
34
+ subtitle?: string;
35
+ /**
36
+ * Prevents interaction when true.
37
+ */
38
+ disabled?: boolean;
39
+ /**
40
+ * Allows setting initial expansion per item.
41
+ */
42
+ expanded?: boolean;
43
+ /**
44
+ * Optional style override using the shared palette.
45
+ */
46
+ style?: TAccordionStyle;
47
+ /**
48
+ * Optional size override for the item header.
49
+ */
50
+ size?: TAccordionSize;
51
+ /**
52
+ * Optional icon rendered on the left of the header when no custom template is provided.
53
+ * Typically a CSS class (e.g., for an icon font) or plain text.
54
+ */
55
+ icon?: string;
56
+ /**
57
+ * Custom icon template for this item only.
58
+ */
59
+ iconTemplate?: TemplateRef<AccordionItemContext<T>>;
60
+ /**
61
+ * Custom toggle icon template for this item only (replaces the default chevron).
62
+ */
63
+ toggleIconTemplate?: TemplateRef<AccordionItemContext<T>>;
64
+ /**
65
+ * Arbitrary data that can be passed to templates for custom rendering.
66
+ */
67
+ data?: T;
68
+ /**
69
+ * Optional plain content for quick rendering when no template is provided.
70
+ */
71
+ content?: string;
72
+ /**
73
+ * Custom header template for this item only.
74
+ */
75
+ headerTemplate?: TemplateRef<AccordionItemContext<T>>;
76
+ /**
77
+ * Custom body template for this item only.
78
+ */
79
+ contentTemplate?: TemplateRef<AccordionItemContext<T>>;
80
+ }
81
+ interface AccordionToggleEvent<T = unknown> {
82
+ id: string;
83
+ index: number;
84
+ expanded: boolean;
85
+ item: AccordionItem<T>;
86
+ expandedIds: string[];
87
+ }
88
+
89
+ declare class AccordionComponent implements OnChanges {
90
+ items: AccordionItem[];
91
+ expandedIds: string[];
92
+ multi: boolean;
93
+ styleType: TAccordionStyle;
94
+ size: TAccordionSize;
95
+ toggleOnHeaderClick: boolean;
96
+ animated: boolean;
97
+ focusPanelOnOpen: boolean;
98
+ expandedIdsChange: EventEmitter<string[]>;
99
+ toggled: EventEmitter<AccordionToggleEvent<unknown>>;
100
+ opened: EventEmitter<AccordionToggleEvent<unknown>>;
101
+ closed: EventEmitter<AccordionToggleEvent<unknown>>;
102
+ headerTemplate?: TemplateRef<AccordionItemContext>;
103
+ contentTemplate?: TemplateRef<AccordionItemContext>;
104
+ iconTemplate?: TemplateRef<AccordionItemContext>;
105
+ toggleIconTemplate?: TemplateRef<AccordionItemContext>;
106
+ headerButtons: QueryList<ElementRef<HTMLButtonElement>>;
107
+ panelBodies: QueryList<ElementRef<HTMLElement>>;
108
+ viewItems: AccordionItem[];
109
+ private uidCounter;
110
+ ngOnChanges(changes: SimpleChanges): void;
111
+ isExpanded(id?: string): boolean;
112
+ headerId(id: string): string;
113
+ panelId(id: string): string;
114
+ onHeaderClick(index: number, event: Event): void;
115
+ onHeaderKeydown(event: KeyboardEvent, index: number): void;
116
+ toggleAt(index: number): void;
117
+ buildContext<T = unknown>(item: AccordionItem<T>, index: number): AccordionItemContext<T>;
118
+ private normalizeItems;
119
+ private generateId;
120
+ private expandSingle;
121
+ private collapseSingle;
122
+ private expandMulti;
123
+ private collapseMulti;
124
+ private setExpandedIds;
125
+ private focusPanel;
126
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccordionComponent, never>;
127
+ static ɵcmp: i0.ɵɵComponentDeclaration<AccordionComponent, "frg-accordion", never, { "items": { "alias": "items"; "required": false; }; "expandedIds": { "alias": "expandedIds"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "size": { "alias": "size"; "required": false; }; "toggleOnHeaderClick": { "alias": "toggleOnHeaderClick"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "focusPanelOnOpen": { "alias": "focusPanelOnOpen"; "required": false; }; }, { "expandedIdsChange": "expandedIdsChange"; "toggled": "toggled"; "opened": "opened"; "closed": "closed"; }, ["headerTemplate", "contentTemplate", "iconTemplate", "toggleIconTemplate"], never, true, never>;
128
+ }
129
+
130
+ type TButtonType = 'button' | 'reset' | 'submit';
131
+ type TButtonStyle = TBaseStyle | 'ghost' | 'icon' | 'neutral';
132
+ type TButtonSize = TBaseSize;
133
+ type TButtonIconPosition = TBasePosition;
134
+ type TButtonShape = 'default' | 'pill';
135
+
136
+ /**
137
+ * Button component for displaying a button with various styles and behaviors
138
+ */
139
+ declare class ButtonComponent {
140
+ /**
141
+ * Unique identifier for the button
142
+ */
143
+ id: string;
144
+ /**
145
+ * CSS classes applied to the button element
146
+ */
147
+ class: string;
148
+ /**
149
+ * CSS classes for the text span
150
+ */
151
+ textClass: string;
152
+ /**
153
+ * CSS classes for the icon element
154
+ */
155
+ iconClass: string;
156
+ /**
157
+ * Optional style token for icon color
158
+ */
159
+ iconStyleType: TBaseStyle | undefined;
160
+ /**
161
+ * Position of the icon relative to the text
162
+ * @see TButtonIconPosition
163
+ */
164
+ iconPosition: TButtonIconPosition;
165
+ /**
166
+ * Type of the button
167
+ * @see TButtonType
168
+ */
169
+ type: TButtonType;
170
+ /**
171
+ * Size of the button
172
+ * @see TButtonSize
173
+ */
174
+ size: TButtonSize;
175
+ /**
176
+ * Router link for navigation
177
+ */
178
+ buttonRouterLink: string | (string | number)[] | null | undefined;
179
+ /**
180
+ * CSS classes applied when the button is active
181
+ */
182
+ buttonRouterLinkActive: string | string[];
183
+ /**
184
+ * Determines whether the button is disabled
185
+ */
186
+ disabled: boolean | null;
187
+ /**
188
+ * Style type of the button
189
+ * @see TButtonStyle
190
+ */
191
+ styleType: TButtonStyle;
192
+ /**
193
+ * Shape of the button.
194
+ * @see TButtonShape
195
+ */
196
+ shape: TButtonShape;
197
+ /**
198
+ * Text content of the button
199
+ */
200
+ text: string;
201
+ /**
202
+ * Accessible label for icon-only buttons
203
+ */
204
+ ariaLabel: string;
205
+ /**
206
+ * Emits when the button is clicked
207
+ */
208
+ clickEvent: EventEmitter<void>;
209
+ /**
210
+ * CSS classes applied to the container element based on its position
211
+ * @see TButtonStyle
212
+ */
213
+ get containerNgClass(): {
214
+ 'flex-column-reverse': boolean;
215
+ 'flex-row-reverse': boolean;
216
+ 'flex-row': boolean;
217
+ 'flex-column': boolean;
218
+ };
219
+ /**
220
+ * CSS classes applied to the icon element based on its position
221
+ * @see TButtonIconPosition
222
+ */
223
+ get iconNgClass(): {
224
+ 'mb-2': boolean;
225
+ 'me-2': boolean;
226
+ 'ms-2': boolean;
227
+ 'mt-2': boolean;
228
+ };
229
+ /**
230
+ * Combined classes for icon color + spacing
231
+ */
232
+ get iconClassMap(): {
233
+ 'mb-2'?: boolean | undefined;
234
+ 'me-2'?: boolean | undefined;
235
+ 'ms-2'?: boolean | undefined;
236
+ 'mt-2'?: boolean | undefined;
237
+ 'frg-btn__icon-primary': boolean;
238
+ 'frg-btn__icon-secondary': boolean;
239
+ 'frg-btn__icon-tertiary': boolean;
240
+ 'frg-btn__icon-info': boolean;
241
+ 'frg-btn__icon-success': boolean;
242
+ 'frg-btn__icon-warning': boolean;
243
+ 'frg-btn__icon-danger': boolean;
244
+ 'frg-btn__icon-dark': boolean;
245
+ 'frg-btn__icon-light': boolean;
246
+ 'frg-btn__icon-pill': boolean;
247
+ };
248
+ /**
249
+ * Emits when the button is clicked
250
+ */
251
+ onClick(): void;
252
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
253
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "frg-button", never, { "id": { "alias": "id"; "required": false; }; "class": { "alias": "class"; "required": false; }; "textClass": { "alias": "textClass"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "iconStyleType": { "alias": "iconStyleType"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "type": { "alias": "type"; "required": false; }; "size": { "alias": "size"; "required": false; }; "buttonRouterLink": { "alias": "buttonRouterLink"; "required": false; }; "buttonRouterLinkActive": { "alias": "buttonRouterLinkActive"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "text": { "alias": "text"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clickEvent": "clickEvent"; }, never, never, true, never>;
254
+ }
255
+
256
+ type TCardStyle = TBaseStyle;
257
+
258
+ declare class CardComponent {
259
+ styleType: TCardStyle;
260
+ hasCloseCard: boolean;
261
+ closeCard: EventEmitter<void>;
262
+ isClosed: boolean;
263
+ onCloseCard(): void;
264
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
265
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "frg-card", never, { "styleType": { "alias": "styleType"; "required": false; }; "hasCloseCard": { "alias": "hasCloseCard"; "required": false; }; }, { "closeCard": "closeCard"; }, never, ["[frg-card-head]", "[frg-card-body]", "[frg-card-footer]"], true, never>;
266
+ }
267
+
268
+ type TModalSize = TBaseSize;
269
+ type TModalCloseReason = 'backdrop' | 'close-button' | 'escape';
270
+ interface ModalCloseEvent {
271
+ reason: TModalCloseReason;
272
+ }
273
+
274
+ declare class ModalComponent implements OnChanges, OnDestroy {
275
+ open: boolean;
276
+ size: TModalSize;
277
+ closeOnBackdrop: boolean;
278
+ closeOnEscape: boolean;
279
+ hasCloseButton: boolean;
280
+ hasHeader: boolean;
281
+ hasFooter: boolean;
282
+ lockBodyScroll: boolean;
283
+ ariaLabel: string;
284
+ ariaLabelledBy: string | null;
285
+ ariaDescribedBy: string | null;
286
+ closed: EventEmitter<ModalCloseEvent>;
287
+ get modalClassMap(): {
288
+ 'frg-modal__size-small': boolean;
289
+ 'frg-modal__size-medium': boolean;
290
+ 'frg-modal__size-large': boolean;
291
+ };
292
+ get showHeader(): boolean;
293
+ ngOnChanges(changes: SimpleChanges): void;
294
+ ngOnDestroy(): void;
295
+ protected onBackdropClick(): void;
296
+ protected onCloseClick(): void;
297
+ onKeydown(event: KeyboardEvent): void;
298
+ private requestClose;
299
+ private toggleBodyScroll;
300
+ static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
301
+ static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "frg-modal", never, { "open": { "alias": "open"; "required": false; }; "size": { "alias": "size"; "required": false; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "hasHeader": { "alias": "hasHeader"; "required": false; }; "hasFooter": { "alias": "hasFooter"; "required": false; }; "lockBodyScroll": { "alias": "lockBodyScroll"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; }, { "closed": "closed"; }, never, ["[frg-modal-head]", "[frg-modal-body]", "[frg-modal-footer]"], true, never>;
302
+ }
303
+
304
+ type TToastStyle = Exclude<TBaseStyle, 'outline-primary' | 'outline-secondary' | 'outline-tertiary' | 'outline-dark' | 'outline-light' | 'outline-info' | 'outline-success' | 'outline-warning' | 'outline-danger'>;
305
+ type TToastPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
306
+ type TToastCloseReason = 'close-button' | 'timeout' | 'programmatic';
307
+ type TToastSize = TBaseSize;
308
+ interface ToastCloseEvent {
309
+ reason: TToastCloseReason;
310
+ }
311
+ interface ToastStackItem {
312
+ id: string;
313
+ title?: string;
314
+ message?: string;
315
+ styleType?: TToastStyle;
316
+ size?: TToastSize;
317
+ autoClose?: boolean;
318
+ duration?: number;
319
+ hasCloseButton?: boolean;
320
+ ariaLabel?: string;
321
+ }
322
+ interface ToastStackCloseEvent extends ToastCloseEvent {
323
+ id: string;
324
+ }
325
+
326
+ declare class ToastComponent implements OnChanges, OnDestroy {
327
+ open: boolean;
328
+ title: string;
329
+ message: string;
330
+ styleType: TToastStyle;
331
+ position: TToastPosition;
332
+ size: TToastSize;
333
+ autoClose: boolean;
334
+ duration: number;
335
+ hasCloseButton: boolean;
336
+ stacked: boolean;
337
+ closing: boolean;
338
+ motionDuration: number;
339
+ ariaLabel: string;
340
+ closed: EventEmitter<ToastCloseEvent>;
341
+ private closeTimerId;
342
+ private enterTimerId;
343
+ private leaveTimerId;
344
+ protected isRendered: boolean;
345
+ protected isEntering: boolean;
346
+ protected isClosing: boolean;
347
+ get statusIconClass(): string | null;
348
+ get toastClassMap(): {
349
+ 'frg-toast--stacked': boolean;
350
+ 'frg-toast--top-left': boolean;
351
+ 'frg-toast--top-right': boolean;
352
+ 'frg-toast--bottom-left': boolean;
353
+ 'frg-toast--bottom-right': boolean;
354
+ 'frg-toast--size-small': boolean;
355
+ 'frg-toast--size-medium': boolean;
356
+ 'frg-toast--size-large': boolean;
357
+ 'frg-toast--enter': boolean;
358
+ 'frg-toast--leave': boolean;
359
+ 'frg-toast--primary': boolean;
360
+ 'frg-toast--secondary': boolean;
361
+ 'frg-toast--tertiary': boolean;
362
+ 'frg-toast--dark': boolean;
363
+ 'frg-toast--light': boolean;
364
+ 'frg-toast--info': boolean;
365
+ 'frg-toast--success': boolean;
366
+ 'frg-toast--warning': boolean;
367
+ 'frg-toast--danger': boolean;
368
+ 'frg-toast--default': boolean;
369
+ };
370
+ ngOnChanges(changes: SimpleChanges): void;
371
+ ngOnDestroy(): void;
372
+ onCloseClick(): void;
373
+ private syncAutoClose;
374
+ private requestClose;
375
+ private clearCloseTimer;
376
+ private openToast;
377
+ private closeToast;
378
+ private startEnterAnimation;
379
+ private clearEnterTimer;
380
+ private clearLeaveTimer;
381
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
382
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "frg-toast", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "position": { "alias": "position"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "closing": { "alias": "closing"; "required": false; }; "motionDuration": { "alias": "motionDuration"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "closed": "closed"; }, never, ["[frg-toast-title]", "[frg-toast-body]", "*"], true, never>;
383
+ }
384
+
385
+ declare class ToastStackComponent implements OnChanges {
386
+ toasts: ToastStackItem[];
387
+ position: TToastPosition;
388
+ maxVisible: number;
389
+ motionDuration: number;
390
+ closed: EventEmitter<ToastStackCloseEvent>;
391
+ private closingIds;
392
+ get visibleToasts(): ToastStackItem[];
393
+ ngOnChanges(changes: SimpleChanges): void;
394
+ onToastClosed(id: string, event: ToastCloseEvent): void;
395
+ isClosing(id: string): boolean;
396
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastStackComponent, never>;
397
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastStackComponent, "frg-toast-stack", never, { "toasts": { "alias": "toasts"; "required": false; }; "position": { "alias": "position"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; "motionDuration": { "alias": "motionDuration"; "required": false; }; }, { "closed": "closed"; }, never, never, true, never>;
398
+ }
399
+
400
+ type TSnackbarStyle = Exclude<TBaseStyle, 'outline-primary' | 'outline-secondary' | 'outline-tertiary' | 'outline-dark' | 'outline-light' | 'outline-info' | 'outline-success' | 'outline-warning' | 'outline-danger'>;
401
+ type TSnackbarSize = TBaseSize;
402
+ type TSnackbarPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
403
+ type TSnackbarCloseReason = 'close-button' | 'timeout' | 'programmatic' | 'action';
404
+ interface SnackbarCloseEvent {
405
+ reason: TSnackbarCloseReason;
406
+ }
407
+
408
+ declare class SnackbarComponent implements OnChanges, OnDestroy {
409
+ open: boolean;
410
+ message: string;
411
+ actionLabel: string;
412
+ styleType: TSnackbarStyle;
413
+ position: TSnackbarPosition;
414
+ size: TSnackbarSize;
415
+ autoClose: boolean;
416
+ duration: number;
417
+ hasCloseButton: boolean;
418
+ ariaLabel: string;
419
+ closed: EventEmitter<SnackbarCloseEvent>;
420
+ action: EventEmitter<void>;
421
+ private closeTimerId;
422
+ get statusIconClass(): string | null;
423
+ get snackbarClassMap(): {
424
+ 'frg-snackbar--top-left': boolean;
425
+ 'frg-snackbar--top-center': boolean;
426
+ 'frg-snackbar--top-right': boolean;
427
+ 'frg-snackbar--bottom-left': boolean;
428
+ 'frg-snackbar--bottom-center': boolean;
429
+ 'frg-snackbar--bottom-right': boolean;
430
+ 'frg-snackbar--size-small': boolean;
431
+ 'frg-snackbar--size-medium': boolean;
432
+ 'frg-snackbar--size-large': boolean;
433
+ 'frg-snackbar--primary': boolean;
434
+ 'frg-snackbar--secondary': boolean;
435
+ 'frg-snackbar--tertiary': boolean;
436
+ 'frg-snackbar--dark': boolean;
437
+ 'frg-snackbar--light': boolean;
438
+ 'frg-snackbar--info': boolean;
439
+ 'frg-snackbar--success': boolean;
440
+ 'frg-snackbar--warning': boolean;
441
+ 'frg-snackbar--danger': boolean;
442
+ 'frg-snackbar--default': boolean;
443
+ };
444
+ ngOnChanges(changes: SimpleChanges): void;
445
+ ngOnDestroy(): void;
446
+ onCloseClick(): void;
447
+ onActionClick(): void;
448
+ private syncAutoClose;
449
+ private requestClose;
450
+ private clearCloseTimer;
451
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarComponent, never>;
452
+ static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarComponent, "frg-snackbar", never, { "open": { "alias": "open"; "required": false; }; "message": { "alias": "message"; "required": false; }; "actionLabel": { "alias": "actionLabel"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "position": { "alias": "position"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "closed": "closed"; "action": "action"; }, never, ["*"], true, never>;
453
+ }
454
+
455
+ /**
456
+ * Represents a value that can be used in Angular's `ngClass` directive
457
+ * to determine whether a class should be applied.
458
+ * - `boolean`: apply class if true, remove if false
459
+ * - `number`: treated as truthy if non-zero, falsy if zero
460
+ * - `string`: directly represents a class name
461
+ * - `null` or `undefined`: no class applied
462
+ */
463
+ type NgClassValue = boolean | number | string | null | undefined;
464
+ /**
465
+ * Describes the different formats supported by a custom implementation
466
+ * of Angular's `ngClass`. It allows:
467
+ * - A single class name as a string
468
+ * - An array of class names
469
+ * - A Set of class names
470
+ * - An object map where keys are class names and values determine whether they should be applied
471
+ * - `null` or `undefined` to apply no classes
472
+ */
473
+ type TCustomNgClass = string | string[] | Set<string> | {
474
+ [klass: string]: NgClassValue;
475
+ } | null | undefined;
476
+ /**
477
+ * Creates a type that removes the properties of `U` from `T`
478
+ * by marking them as optional and setting their type to `never`.
479
+ * Useful for constructing mutually exclusive types.
480
+ */
481
+ type Without<T, U> = {
482
+ [P in Exclude<keyof T, keyof U>]?: never;
483
+ };
484
+ /**
485
+ * Constructs an exclusive OR (XOR) type between `T` and `U`.
486
+ * Ensures that either `T` or `U` is allowed, but not both at the same time.
487
+ * - If both are objects, it enforces mutual exclusivity at the property level.
488
+ * - If not objects, it falls back to a simple union (`T | U`).
489
+ */
490
+ type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
491
+ /**
492
+ * Represents a generic function type that takes a single argument of any type
493
+ * and returns a value of type `T`.
494
+ *
495
+ * @template T The return type of the function.
496
+ */
497
+ type GenericFunction<T> = (arg0: unknown) => T;
498
+ /**
499
+ * Represents a mutually exclusive type between `T` and `K`.
500
+ * Only one of the two types can be used at a time.
501
+ *
502
+ * @template T The first type option.
503
+ * @template K The second type option.
504
+ */
505
+ type TBehaviourAction<T, K> = XOR<T, K>;
506
+ /**
507
+ * Represents an array that contains at least one element of type `T`.
508
+ * Ensures that the array is never empty by requiring an element at index 0.
509
+ *
510
+ * @template T The type of the elements in the array.
511
+ */
512
+ type ArrayOneOrMore<T> = {
513
+ 0: T;
514
+ } & Array<T>;
515
+ type DateFormat = "dd/MM/yyyy" | "MM/dd/yyyy" | "yyyy-MM-dd" | "dd-MM-yyyy" | "dd.MM.yyyy" | "yyyy/MM/dd" | "MMM dd, yyyy" | "MMMM dd, yyyy" | "dd MMM yyyy" | "dd MMMM yyyy" | "yyyyMMdd";
516
+ type TimeFormat = "HH:mm:ss" | "HH:mm" | "hh:mm:ss a" | "hh:mm a";
517
+ type DateTimeFormat = "dd/MM/yyyy HH:mm" | "dd/MM/yyyy HH:mm:ss" | "MM/dd/yyyy HH:mm" | "MM/dd/yyyy hh:mm a" | "yyyy-MM-dd'T'HH:mm" | "yyyy-MM-dd'T'HH:mm:ss" | "dd MMM yyyy HH:mm" | "dd MMM yyyy hh:mm a" | "MMMM dd, yyyy HH:mm" | "MMMM dd, yyyy hh:mm a" | "yyyyMMdd HH:mm" | "yyyyMMdd HH:mm:ss";
518
+
519
+ type THLJSLanguage = 'html' | 'xml' | 'xhtml' | 'svg' | 'css' | 'scss' | 'less' | 'javascript' | 'typescript' | 'json' | 'markdown' | 'yaml' | 'yml' | 'php' | 'java' | 'python' | 'ruby' | 'c' | 'cpp' | 'csharp' | 'go' | 'rust' | 'kotlin' | 'perl' | 'swift' | 'dart' | 'scala' | 'haskell' | 'erlang' | 'bash' | 'shell' | 'powershell' | 'docker' | 'makefile' | 'git' | 'ini' | 'toml' | 'sql' | 'graphql' | 'json5' | 'text' | 'diff' | 'http' | 'nginx' | 'apache' | 'log' | 'env';
520
+ type TextContent = {
521
+ type: 'text';
522
+ content: string;
523
+ language?: THLJSLanguage;
524
+ highlightLines?: string;
525
+ hasNumberLine?: boolean;
526
+ };
527
+ type ComponentContent<T = unknown, I extends Record<string, unknown> = Record<string, unknown>> = {
528
+ type: 'component';
529
+ component: Type<T>;
530
+ inputs?: I;
531
+ };
532
+ type CodeBlockBody<T = unknown, I extends Record<string, unknown> = Record<string, unknown>> = XOR<TextContent, ComponentContent<T, I>>;
533
+
534
+ /**
535
+ * Configuration options for the code block component.
536
+ */
537
+ interface CodeBlockConfig {
538
+ id?: string;
539
+ header?: CodeBlockHeader;
540
+ body?: CodeBlockBody;
541
+ footer?: CodeBlockFooter;
542
+ }
543
+ /**
544
+ * Configuration options for the code block header.
545
+ */
546
+ interface CodeBlockHeader {
547
+ title?: string;
548
+ showCopy?: boolean;
549
+ copyLabel?: string;
550
+ copiedLabel?: string;
551
+ }
552
+ /**
553
+ * Configuration options for the code block footer.
554
+ */
555
+ interface CodeBlockFooter {
556
+ text?: string;
557
+ }
558
+
559
+ declare class CodeBlockComponent implements AfterViewInit, OnChanges, OnDestroy {
560
+ private readonly cdr;
561
+ /**
562
+ * Configuration options for the code block.
563
+ */
564
+ config: CodeBlockConfig | undefined;
565
+ /**
566
+ * Emitted when the code block is closed.
567
+ */
568
+ closed: EventEmitter<void>;
569
+ protected copied: boolean;
570
+ private copyResetId;
571
+ /**
572
+ * Reference to the code element in the template.
573
+ */
574
+ codeElement?: ElementRef<HTMLElement>;
575
+ /**
576
+ * Reference to the container element in the template.
577
+ */
578
+ containerElement?: ElementRef<HTMLElement>;
579
+ /**
580
+ * Indicates if the code block has a footer.
581
+ */
582
+ protected get hasConfig(): boolean;
583
+ /**
584
+ * Returns the header configuration of the code block.
585
+ * This includes properties like title, minimize, fullscreen, and close options.
586
+ * @return {CodeBlockHeader | undefined} The header configuration or undefined if not set.
587
+ * @memberof CodeBlockComponent
588
+ */
589
+ protected get header(): CodeBlockHeader | undefined;
590
+ /**
591
+ * Returns the body of the code block, which can be either text or a component.
592
+ * @return {CodeBlockBody | undefined} The body configuration or undefined if not set.
593
+ * @memberof CodeBlockComponent
594
+ */
595
+ protected get title(): string | undefined;
596
+ /**
597
+ * Returns the body configuration of the code block.
598
+ * This includes properties like content and language.
599
+ * @return {CodeBlockBody | undefined} The body configuration or undefined if not set.
600
+ * @memberof CodeBlockComponent
601
+ */
602
+ protected get body(): CodeBlockBody | undefined;
603
+ /**
604
+ * Returns the type of content in the body of the code block.
605
+ * This can be either 'text' for plain text content or 'component' for a component.
606
+ * @return {'text' | 'component' | undefined} The type of content or undefined if not set.
607
+ * @memberof CodeBlockComponent
608
+ */
609
+ protected get type(): 'text' | 'component' | undefined;
610
+ /**
611
+ * Returns the component type in the body of the code block.
612
+ * @return {Type<T> | undefined} The component type or undefined if not set.
613
+ * @memberof CodeBlockComponent
614
+ */
615
+ protected get component(): Type<unknown> | undefined;
616
+ /**
617
+ * Returns the inputs for the component in the body of the code block.
618
+ * @return {Record<string, unknown> | undefined} The inputs or undefined if not set.
619
+ * @memberof CodeBlockComponent
620
+ */
621
+ protected get inputs(): Record<string, unknown> | undefined;
622
+ /**
623
+ * Returns the content for the code block.
624
+ * @return {string | undefined} The content or undefined if not set.
625
+ * @memberof CodeBlockComponent
626
+ */
627
+ protected get content(): string | undefined;
628
+ /**
629
+ * Returns the programming language for the code block.
630
+ * @return {THLJSLanguage | undefined} The language or undefined if not set.
631
+ * @memberof CodeBlockComponent
632
+ */
633
+ protected get language(): THLJSLanguage | undefined;
634
+ /**
635
+ * Returns the lines to highlight in the code block.
636
+ * @return {string | undefined} The highlight lines or undefined if not set.
637
+ * @memberof CodeBlockComponent
638
+ */
639
+ protected get highlightLines(): string | undefined;
640
+ protected get showCopyButton(): boolean;
641
+ protected get copyLabel(): string;
642
+ protected get copiedLabel(): string;
643
+ ngAfterViewInit(): void;
644
+ ngOnChanges(changes: SimpleChanges): void;
645
+ ngOnDestroy(): void;
646
+ protected copyToClipboard(): void;
647
+ /**
648
+ * Highlights the code in the code block.
649
+ * This method uses the highlight.js library to apply syntax highlighting.
650
+ */
651
+ private highlightCode;
652
+ private getCopyContent;
653
+ private fallbackCopy;
654
+ /**
655
+ * Dedents a given string by removing common leading whitespace.
656
+ * @param str The input string to dedent.
657
+ * @returns The dedented string.
658
+ */
659
+ private dedent;
660
+ private readonly addNumberLines;
661
+ static ɵfac: i0.ɵɵFactoryDeclaration<CodeBlockComponent, never>;
662
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodeBlockComponent, "frg-code-block", never, { "config": { "alias": "config"; "required": false; }; }, { "closed": "closed"; }, never, never, true, never>;
663
+ }
664
+
665
+ interface BreadcrumbItem {
666
+ label: string;
667
+ url?: string | (string | number)[];
668
+ iconClass?: string;
669
+ ariaLabel?: string;
670
+ isActive?: boolean;
671
+ }
672
+
673
+ declare class BreadcrumbComponent implements OnInit, OnDestroy {
674
+ private readonly router;
675
+ private readonly activatedRoute;
676
+ /**
677
+ * Breadcrumb items to render.
678
+ */
679
+ items: BreadcrumbItem[];
680
+ /**
681
+ * Build breadcrumbs automatically from the current route tree.
682
+ */
683
+ auto: boolean;
684
+ /**
685
+ * Separator displayed between breadcrumb items.
686
+ */
687
+ separator: string;
688
+ /**
689
+ * Color theme for breadcrumb text.
690
+ */
691
+ styleType: TBaseStyle;
692
+ protected autoItems: BreadcrumbItem[];
693
+ private readonly destroy$;
694
+ ngOnInit(): void;
695
+ ngOnDestroy(): void;
696
+ get breadcrumbItems(): BreadcrumbItem[];
697
+ private buildAutoItems;
698
+ private resolveLabel;
699
+ static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
700
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "frg-breadcrumb", never, { "items": { "alias": "items"; "required": false; }; "auto": { "alias": "auto"; "required": false; }; "separator": { "alias": "separator"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, {}, never, never, true, never>;
701
+ }
702
+
703
+ type TContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
704
+
705
+ declare class ContainerComponent {
706
+ size: TContainerSize;
707
+ padded: boolean;
708
+ baseClass: boolean;
709
+ get isSmall(): boolean;
710
+ get isMedium(): boolean;
711
+ get isLarge(): boolean;
712
+ get isXLarge(): boolean;
713
+ get isFull(): boolean;
714
+ get isPadded(): boolean;
715
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContainerComponent, never>;
716
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContainerComponent, "frg-container", never, { "size": { "alias": "size"; "required": false; }; "padded": { "alias": "padded"; "required": false; }; }, {}, never, ["*"], true, never>;
717
+ }
718
+
719
+ type TDividerOrientation = 'horizontal' | 'vertical';
720
+ type TDividerSpacing = 'sm' | 'md' | 'lg';
721
+
722
+ declare class DividerComponent {
723
+ orientation: TDividerOrientation;
724
+ spacing: TDividerSpacing;
725
+ dashed: boolean;
726
+ baseClass: boolean;
727
+ get isHorizontal(): boolean;
728
+ get isVertical(): boolean;
729
+ get isSmall(): boolean;
730
+ get isMedium(): boolean;
731
+ get isLarge(): boolean;
732
+ get isDashed(): boolean;
733
+ role: string;
734
+ get ariaOrientation(): TDividerOrientation;
735
+ static ɵfac: i0.ɵɵFactoryDeclaration<DividerComponent, never>;
736
+ static ɵcmp: i0.ɵɵComponentDeclaration<DividerComponent, "frg-divider", never, { "orientation": { "alias": "orientation"; "required": false; }; "spacing": { "alias": "spacing"; "required": false; }; "dashed": { "alias": "dashed"; "required": false; }; }, {}, never, never, true, never>;
737
+ }
738
+
739
+ type TSeparatorSize = 'sm' | 'md' | 'lg';
740
+
741
+ declare class SeparatorComponent {
742
+ label?: string;
743
+ size: TSeparatorSize;
744
+ baseClass: boolean;
745
+ get isSmall(): boolean;
746
+ get isMedium(): boolean;
747
+ get isLarge(): boolean;
748
+ role: string;
749
+ static ɵfac: i0.ɵɵFactoryDeclaration<SeparatorComponent, never>;
750
+ static ɵcmp: i0.ɵɵComponentDeclaration<SeparatorComponent, "frg-separator", never, { "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
751
+ }
752
+
753
+ type TSectionSpacing = 'sm' | 'md' | 'lg';
754
+ type TSectionHeading = 1 | 2 | 3 | 4 | 5 | 6;
755
+
756
+ declare class SectionComponent {
757
+ title?: string;
758
+ description?: string;
759
+ spacing: TSectionSpacing;
760
+ divider: boolean;
761
+ headingLevel: TSectionHeading;
762
+ baseClass: boolean;
763
+ get isSmall(): boolean;
764
+ get isMedium(): boolean;
765
+ get isLarge(): boolean;
766
+ get hasDivider(): boolean;
767
+ get hasHeader(): boolean;
768
+ static ɵfac: i0.ɵɵFactoryDeclaration<SectionComponent, never>;
769
+ static ɵcmp: i0.ɵɵComponentDeclaration<SectionComponent, "frg-section", never, { "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "spacing": { "alias": "spacing"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; }, {}, never, ["*"], true, never>;
770
+ }
771
+
772
+ declare abstract class MorphBase {
773
+ protected imageUrl: string | null;
774
+ protected fillColor: string | null;
775
+ protected pathStart: string;
776
+ protected pathEnd: string;
777
+ protected duration: number;
778
+ protected abstract generateRandomPath(points: number, radius: number, variability: number): string;
779
+ }
780
+
781
+ declare class BlobMorphComponent extends MorphBase implements AfterViewInit {
782
+ imageUrl: string | null;
783
+ fillColor: string | null;
784
+ pathStart: string;
785
+ pathEnd: string;
786
+ duration: number;
787
+ loadEvent: EventEmitter<void>;
788
+ morphPathRef: ElementRef<SVGPathElement>;
789
+ clipId: string;
790
+ protected isLoaded: boolean;
791
+ ngAfterViewInit(): void;
792
+ protected generateRandomPath(points?: number, radius?: number, variability?: number): string;
793
+ onLoadEvent(): void;
794
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlobMorphComponent, never>;
795
+ static ɵcmp: i0.ɵɵComponentDeclaration<BlobMorphComponent, "app-blob-morph", never, { "imageUrl": { "alias": "imageUrl"; "required": false; }; "fillColor": { "alias": "fillColor"; "required": false; }; "pathStart": { "alias": "pathStart"; "required": false; }; "pathEnd": { "alias": "pathEnd"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; }, { "loadEvent": "loadEvent"; }, never, never, true, never>;
796
+ }
797
+
798
+ interface Sparkle {
799
+ x: number;
800
+ y: number;
801
+ size: number;
802
+ delay: number;
803
+ duration: number;
804
+ driftX: number;
805
+ driftY: number;
806
+ }
807
+ declare class SparkleFieldComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
808
+ width: number | string;
809
+ height: number | string;
810
+ count: number;
811
+ minSize: number;
812
+ maxSize: number;
813
+ drift: number;
814
+ minDuration: number;
815
+ maxDuration: number;
816
+ loop: boolean;
817
+ color: string | null;
818
+ sparkles: Sparkle[];
819
+ sparkleRefs: QueryList<ElementRef<HTMLSpanElement>>;
820
+ private sparkleAnimations;
821
+ private sparkleChangesSub;
822
+ private readonly fallbackWidth;
823
+ private readonly fallbackHeight;
824
+ get hostWidth(): string;
825
+ get hostHeight(): string;
826
+ get hostMinWidth(): string | null;
827
+ get hostMinHeight(): string | null;
828
+ ngOnInit(): void;
829
+ ngOnChanges(changes: SimpleChanges): void;
830
+ ngAfterViewInit(): void;
831
+ ngOnDestroy(): void;
832
+ private buildSparkles;
833
+ private restartAnimation;
834
+ private randomInRange;
835
+ get widthStyle(): string;
836
+ get heightStyle(): string;
837
+ private formatSize;
838
+ private needsMinSize;
839
+ static ɵfac: i0.ɵɵFactoryDeclaration<SparkleFieldComponent, never>;
840
+ static ɵcmp: i0.ɵɵComponentDeclaration<SparkleFieldComponent, "frg-sparkle-field", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "count": { "alias": "count"; "required": false; }; "minSize": { "alias": "minSize"; "required": false; }; "maxSize": { "alias": "maxSize"; "required": false; }; "drift": { "alias": "drift"; "required": false; }; "minDuration": { "alias": "minDuration"; "required": false; }; "maxDuration": { "alias": "maxDuration"; "required": false; }; "loop": { "alias": "loop"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, never, true, never>;
841
+ }
842
+
843
+ interface IPaginationOutput<T> {
844
+ page: number;
845
+ pagedData: T[];
846
+ }
847
+
848
+ declare class SmallPaginationComponent<T> implements OnInit, OnChanges {
849
+ totalItems: number;
850
+ fullData: T[];
851
+ page: number;
852
+ pageSize: number;
853
+ hasElipsisPages: boolean;
854
+ styleType: TBaseStyle;
855
+ pageChange: EventEmitter<IPaginationOutput<T>>;
856
+ pagesArray: number[];
857
+ pagedData: T[];
858
+ totalPages: number;
859
+ showStartEllipsis: boolean;
860
+ showEndEllipsis: boolean;
861
+ maxVisiblePages: number;
862
+ ngOnInit(): void;
863
+ ngOnChanges(): void;
864
+ private calculateTotalPages;
865
+ private generatePagesArray;
866
+ private buildSimplePages;
867
+ private buildEllipsisPages;
868
+ private getVisibleMiddleCount;
869
+ private getMiddleRange;
870
+ private uniquePages;
871
+ private resetEllipsis;
872
+ private clampPage;
873
+ changePage(newPage: number): void;
874
+ setCurrentPage(): void;
875
+ private isSimplePagination;
876
+ private range;
877
+ static ɵfac: i0.ɵɵFactoryDeclaration<SmallPaginationComponent<any>, never>;
878
+ static ɵcmp: i0.ɵɵComponentDeclaration<SmallPaginationComponent<any>, "frg-small-pagination", never, { "totalItems": { "alias": "totalItems"; "required": false; }; "fullData": { "alias": "fullData"; "required": false; }; "page": { "alias": "page"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "hasElipsisPages": { "alias": "hasElipsisPages"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
879
+ }
880
+
881
+ declare enum EnumDirectionSortTable {
882
+ asc = 0,
883
+ desc = 1
884
+ }
885
+
886
+ type TooltipPosition = 'top' | 'top-left' | 'top-right' | 'left' | 'right' | 'bottom' | 'bottom-left' | 'bottom-right';
887
+
888
+ type TIconPosition = 'left' | 'right';
889
+ type TInputType = 'text' | 'button' | 'checkbox' | 'color' | 'date' | 'datetime' | 'datetime-local' | 'email' | 'file' | 'number' | 'image' | 'url' | 'week';
890
+
891
+ interface IConfigTable<T> {
892
+ tTitleBar?: ITTitleBar;
893
+ tCaption: ITCaption;
894
+ tSort?: ITSort;
895
+ tHead: ITHead;
896
+ tBody: ITBody<T>;
897
+ tPagination: ITPagination<T>;
898
+ }
899
+ interface ITTitleBar {
900
+ title: string;
901
+ }
902
+ interface ITTitleBarFilter {
903
+ id: string;
904
+ label: string;
905
+ placeholder: string;
906
+ type?: TInputType;
907
+ control: FormControl;
908
+ }
909
+ interface ITTitleBarSearch {
910
+ id: string;
911
+ label: string;
912
+ placeholder: string;
913
+ type?: TInputType;
914
+ control: FormControl<string | null>;
915
+ }
916
+ interface ITCaption {
917
+ srOnly: string;
918
+ }
919
+ interface ITSort {
920
+ defaultDirection: EnumDirectionSortTable;
921
+ defaultFieldOrder: string | string[];
922
+ }
923
+ interface ITPagination<T> {
924
+ page?: number;
925
+ pageSize?: number;
926
+ order?: string | string[];
927
+ direction?: EnumDirectionSortTable;
928
+ totalItems?: number;
929
+ fullData?: T[];
930
+ hasScrollTop?: boolean;
931
+ showPagination?: boolean;
932
+ hasElipsisPages?: boolean;
933
+ }
934
+ interface ITHead {
935
+ columns: ITHeadColumn[];
936
+ action?: ITHeadAction;
937
+ }
938
+ interface ITHeadColumn {
939
+ columnId: string;
940
+ fieldOrder?: string;
941
+ fieldLabel: string;
942
+ customClasses?: string | string[];
943
+ }
944
+ interface ITHeadAction {
945
+ label: string;
946
+ customClass?: string;
947
+ }
948
+ interface ITBody<T> {
949
+ uniqueField: string;
950
+ rowClick?: IActionElement;
951
+ action?: ITBodyAction;
952
+ columns: ITBodyColumn[];
953
+ data?: T[];
954
+ }
955
+ interface IActionElement extends IBaseAction {
956
+ iconClass?: GenericFunction<string>;
957
+ }
958
+ interface ILinkAction {
959
+ link: string;
960
+ customParamsLink?: any;
961
+ }
962
+ interface IEventAction {
963
+ clickEvent: GenericFunction<any>;
964
+ }
965
+ interface ITBodyAction {
966
+ customClasses?: string;
967
+ buttons: IActionElement[];
968
+ }
969
+ interface ITBodyColumn {
970
+ cells: ITBodyCell[] | ITBodyCell;
971
+ customClass?: string;
972
+ }
973
+ interface ITBodyCell {
974
+ fieldArrayPosition?: ArrayOneOrMore<string | Array<string>>;
975
+ icon?: ITBodyCellIcon;
976
+ fieldPipe?: IFieldPipe;
977
+ customClass?: GenericFunction<string>;
978
+ }
979
+ interface ITBodyCellIcon {
980
+ iconClass: string;
981
+ position?: TIconPosition;
982
+ action: IBaseAction;
983
+ }
984
+ interface IBaseAction {
985
+ id: string;
986
+ title?: string;
987
+ tooltip?: ITooltipElement;
988
+ ariaLabel?: string;
989
+ behaviourAction: TBehaviourAction<ILinkAction, IEventAction>;
990
+ disabled?: GenericFunction<boolean>;
991
+ visible?: GenericFunction<boolean>;
992
+ }
993
+ interface IFieldPipe {
994
+ type: any;
995
+ args?: any[];
996
+ }
997
+ interface ITooltipElement {
998
+ apply: boolean;
999
+ text?: GenericFunction<string>;
1000
+ textContent?: GenericFunction<string>;
1001
+ position?: TooltipPosition;
1002
+ gap?: number;
1003
+ }
1004
+
1005
+ declare class TableComponent<T> implements OnInit {
1006
+ private readonly cdr;
1007
+ /**
1008
+ * Configuration of the table
1009
+ *
1010
+ * @see IConfigTable
1011
+ */
1012
+ configTable: IConfigTable<T>;
1013
+ /**
1014
+ * Style type of the table
1015
+ */
1016
+ styleType: TBaseStyle;
1017
+ /**
1018
+ * Size of table rows
1019
+ */
1020
+ rowSize: TBaseSize;
1021
+ /**
1022
+ * Event emitted to reload the table data
1023
+ *
1024
+ * @see ITPagination
1025
+ */
1026
+ reloadTableEvent: EventEmitter<{
1027
+ pagination: ITPagination<T>;
1028
+ reload?: boolean;
1029
+ }>;
1030
+ /**
1031
+ * Reference to the table header element
1032
+ */
1033
+ tableHead: ElementRef<HTMLElement>;
1034
+ /**
1035
+ * Enum for sorting direction
1036
+ * @see EnumDirectionSortTable
1037
+ */
1038
+ EnumDirectionSortTable: typeof EnumDirectionSortTable;
1039
+ /**
1040
+ * ID of the first table row
1041
+ */
1042
+ idFirstTr: string;
1043
+ /**
1044
+ * Count of sorting actions performed
1045
+ */
1046
+ countSorting: number;
1047
+ /**
1048
+ * Cached full data of the table
1049
+ */
1050
+ fullDataCached: T[];
1051
+ ngOnInit(): void;
1052
+ /**
1053
+ * Update the current page of the table
1054
+ * @param event Pagination output event
1055
+ * @see IPaginationOutput
1056
+ */
1057
+ updateCurrentPage(event: IPaginationOutput<T>): void;
1058
+ /**
1059
+ * Order the table by the specified field
1060
+ * @param fieldOrder Field or fields to order by
1061
+ */
1062
+ orderBy(fieldOrder: string | string[]): void;
1063
+ /**
1064
+ * Handle the click event on a table row
1065
+ * @param _event Click event
1066
+ * @param item Data item associated with the clicked row
1067
+ */
1068
+ handleRowClick(_event: Event, item: T): void;
1069
+ /**
1070
+ * Handle the click event on a cell icon
1071
+ * @param event Mouse event
1072
+ * @param cell Table body cell configuration
1073
+ * @param item Data item associated with the cell
1074
+ * @see ITBodyCell
1075
+ */
1076
+ handleIconClick(cell: ITBodyCell, item: T): void;
1077
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
1078
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "frg-table", never, { "configTable": { "alias": "configTable"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "rowSize": { "alias": "rowSize"; "required": false; }; }, { "reloadTableEvent": "reloadTableEvent"; }, never, never, true, never>;
1079
+ }
1080
+
1081
+ /**
1082
+ * Style variants supported by tabs.
1083
+ */
1084
+ type TTabStyle = TBaseStyle;
1085
+ /**
1086
+ * Size variants supported by tabs.
1087
+ */
1088
+ type TTabSize = TBaseSize;
1089
+ /**
1090
+ * Context passed into projected templates for tabs.
1091
+ */
1092
+ interface TabItemContext<T = unknown> {
1093
+ /**
1094
+ * Implicit reference to the current tab item.
1095
+ */
1096
+ $implicit: TabItem<T>;
1097
+ /**
1098
+ * Named reference to the current tab item.
1099
+ */
1100
+ item: TabItem<T>;
1101
+ /**
1102
+ * Zero-based index of the tab.
1103
+ */
1104
+ index: number;
1105
+ /**
1106
+ * Whether this tab is currently active.
1107
+ */
1108
+ active: boolean;
1109
+ /**
1110
+ * Function to activate this tab.
1111
+ */
1112
+ select: () => void;
1113
+ }
1114
+ /**
1115
+ * Definition for a single tab.
1116
+ */
1117
+ interface TabItem<T = unknown> {
1118
+ /** Unique identifier for the tab. Auto-generated when omitted. */
1119
+ id?: string;
1120
+ /** Visible label shown on the tab button. */
1121
+ label: string;
1122
+ /** Optional secondary label or helper text. */
1123
+ description?: string;
1124
+ /** Optional icon to render when no template is provided. */
1125
+ icon?: string;
1126
+ /** Disable interaction for this tab. */
1127
+ disabled?: boolean;
1128
+ /** Apply a style variant to this tab. */
1129
+ style?: TTabStyle;
1130
+ /** Adjust spacing and typography for this tab. */
1131
+ size?: TTabSize;
1132
+ /** Mark this tab as initially active when no activeId input is provided. */
1133
+ active?: boolean;
1134
+ /** Arbitrary data available to projected templates. */
1135
+ data?: T;
1136
+ /** Simple content rendering when no template is provided. */
1137
+ content?: string;
1138
+ /** Custom icon template for this tab only. */
1139
+ iconTemplate?: TemplateRef<TabItemContext<T>>;
1140
+ /** Custom label template for this tab only. */
1141
+ labelTemplate?: TemplateRef<TabItemContext<T>>;
1142
+ /** Custom body template for this tab only. */
1143
+ contentTemplate?: TemplateRef<TabItemContext<T>>;
1144
+ }
1145
+ /**
1146
+ * Payload emitted when the active tab changes.
1147
+ */
1148
+ interface TabChangeEvent<T = unknown> {
1149
+ /** Identifier of the active tab, or null when none available. */
1150
+ id: string | null;
1151
+ /** Index of the active tab in the view items. */
1152
+ index: number;
1153
+ /** The full tab item associated with the change. */
1154
+ item?: TabItem<T>;
1155
+ }
1156
+
1157
+ /**
1158
+ * TabsComponent
1159
+ *
1160
+ * Accessible tabset that supports keyboard navigation, style variants,
1161
+ * projected templates, and two-way active state management.
1162
+ */
1163
+ declare class TabsComponent implements OnChanges {
1164
+ /**
1165
+ * Tab definitions rendered by the component.
1166
+ */
1167
+ items: TabItem[];
1168
+ /**
1169
+ * Identifier of the currently active tab. Auto-resolved when null.
1170
+ */
1171
+ activeId: string | null;
1172
+ /**
1173
+ * Visual style applied to tabs when no per-item style is provided.
1174
+ */
1175
+ styleType: TTabStyle;
1176
+ /**
1177
+ * Size variant applied to tabs when no per-item size is provided.
1178
+ */
1179
+ size: TTabSize;
1180
+ /**
1181
+ * Horizontal alignment of the tab list.
1182
+ */
1183
+ align: 'start' | 'center' | 'end' | 'stretch';
1184
+ /**
1185
+ * Enables panel fade/slide animations.
1186
+ */
1187
+ animated: boolean;
1188
+ /**
1189
+ * When true, moves focus to the active panel after selection.
1190
+ */
1191
+ focusPanelOnSelect: boolean;
1192
+ /**
1193
+ * Emits whenever the active tab changes (for two-way binding).
1194
+ */
1195
+ activeIdChange: EventEmitter<string | null>;
1196
+ /**
1197
+ * Detailed change event emitted on active tab updates.
1198
+ */
1199
+ changed: EventEmitter<TabChangeEvent<unknown>>;
1200
+ /**
1201
+ * Optional projected template for tab labels.
1202
+ */
1203
+ labelTemplate?: TemplateRef<TabItemContext>;
1204
+ /**
1205
+ * Optional projected template for tab panels.
1206
+ */
1207
+ contentTemplate?: TemplateRef<TabItemContext>;
1208
+ /**
1209
+ * Optional projected template for tab icons.
1210
+ */
1211
+ iconTemplate?: TemplateRef<TabItemContext>;
1212
+ /**
1213
+ * References to rendered tab buttons for keyboard focus.
1214
+ */
1215
+ tabButtons: QueryList<ElementRef<HTMLButtonElement>>;
1216
+ /**
1217
+ * References to rendered panel elements for focus management.
1218
+ */
1219
+ panelBodies: QueryList<ElementRef<HTMLElement>>;
1220
+ /**
1221
+ * Normalized copy of `items` with generated ids and active flags.
1222
+ */
1223
+ viewItems: TabItem[];
1224
+ /**
1225
+ * Internal counter used for deterministic id generation.
1226
+ */
1227
+ private uidCounter;
1228
+ /**
1229
+ * Syncs inputs into internal view state and resolves active tab.
1230
+ */
1231
+ ngOnChanges(changes: SimpleChanges): void;
1232
+ /**
1233
+ * Determines whether a given tab id matches the current active id.
1234
+ */
1235
+ isActive(id?: string | null): boolean;
1236
+ /**
1237
+ * Builds the DOM id for a tab element.
1238
+ */
1239
+ tabId(id: string): string;
1240
+ /**
1241
+ * Builds the DOM id for a panel element.
1242
+ */
1243
+ panelId(id: string): string;
1244
+ /**
1245
+ * Handles click selection for a tab at the given index.
1246
+ */
1247
+ onTabClick(index: number, event: Event): void;
1248
+ /**
1249
+ * Keyboard interaction handler to navigate and activate tabs.
1250
+ */
1251
+ onTabKeydown(event: KeyboardEvent, index: number): void;
1252
+ /**
1253
+ * Builds a template context for projected templates.
1254
+ */
1255
+ buildContext<T = unknown>(item: TabItem<T>, index: number): TabItemContext<T>;
1256
+ /**
1257
+ * Selects the tab at the given index if enabled and different.
1258
+ */
1259
+ private selectAt;
1260
+ /**
1261
+ * Ensures every tab has an id and returns a new items array.
1262
+ */
1263
+ private normalizeItems;
1264
+ /**
1265
+ * Generates a deterministic id for tabs lacking one.
1266
+ */
1267
+ private generateId;
1268
+ /**
1269
+ * Resolves the next active id based on provided preference and availability.
1270
+ */
1271
+ private resolveActiveId;
1272
+ /**
1273
+ * Applies the active id, updates view state, emits events, and manages focus.
1274
+ */
1275
+ private setActiveId;
1276
+ /**
1277
+ * Moves focus to the tab at the given index.
1278
+ */
1279
+ private focusTab;
1280
+ /**
1281
+ * Moves focus to the panel at the given index.
1282
+ */
1283
+ private focusPanel;
1284
+ static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
1285
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "frg-tabs", never, { "items": { "alias": "items"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "size": { "alias": "size"; "required": false; }; "align": { "alias": "align"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "focusPanelOnSelect": { "alias": "focusPanelOnSelect"; "required": false; }; }, { "activeIdChange": "activeIdChange"; "changed": "changed"; }, ["labelTemplate", "contentTemplate", "iconTemplate"], never, true, never>;
1286
+ }
1287
+
1288
+ declare class TitleBarComponent {
1289
+ title: string;
1290
+ styleType: TBaseStyle;
1291
+ static ɵfac: i0.ɵɵFactoryDeclaration<TitleBarComponent, never>;
1292
+ static ɵcmp: i0.ɵɵComponentDeclaration<TitleBarComponent, "frg-title-bar", never, { "title": { "alias": "title"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, {}, never, never, true, never>;
1293
+ }
1294
+
1295
+ type TBaseSideNavStyle = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger' | 'dark' | 'light';
1296
+ type TBaseSideNavSize = 'small' | 'medium' | 'large';
1297
+ type TSideNavLink = {
1298
+ kind: "route";
1299
+ value: string;
1300
+ exact?: boolean;
1301
+ } | {
1302
+ kind: "href";
1303
+ value: string;
1304
+ target?: "_blank" | "_self" | "_parent" | "_top";
1305
+ };
1306
+ interface ISideNavConfig {
1307
+ title?: string;
1308
+ sections?: Array<ISideNavSection>;
1309
+ }
1310
+ interface ISideNavSection {
1311
+ id?: string;
1312
+ title?: string;
1313
+ icon?: string;
1314
+ items?: Array<ISideNavItem>;
1315
+ styleType?: TBaseSideNavStyle;
1316
+ size?: TBaseSideNavSize;
1317
+ }
1318
+ interface ISideNavItem {
1319
+ id?: string;
1320
+ label: string;
1321
+ link?: TSideNavLink;
1322
+ icon?: string;
1323
+ children?: Array<ISideNavItem>;
1324
+ expanded?: boolean;
1325
+ }
1326
+
1327
+ declare class SideNavComponent {
1328
+ config: ISideNavConfig;
1329
+ toggleItem(item: ISideNavItem): void;
1330
+ static ɵfac: i0.ɵɵFactoryDeclaration<SideNavComponent, never>;
1331
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideNavComponent, "frg-side-nav", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
1332
+ }
1333
+
1334
+ type TStepperOrientation = 'horizontal' | 'vertical';
1335
+ type TStepperMotion = 'next' | 'previous' | 'none';
1336
+ type TStepNavigationSource = 'click' | 'next' | 'previous' | 'programmatic';
1337
+ interface StepItemContext<T = unknown> {
1338
+ $implicit: StepItem<T>;
1339
+ item: StepItem<T>;
1340
+ index: number;
1341
+ active: boolean;
1342
+ completed: boolean;
1343
+ error: boolean;
1344
+ select: () => void;
1345
+ next: () => void;
1346
+ previous: () => void;
1347
+ }
1348
+ interface StepValidationContext<T = unknown> {
1349
+ step: StepItem<T>;
1350
+ index: number;
1351
+ formGroup?: AbstractControl | null;
1352
+ source: TStepNavigationSource;
1353
+ }
1354
+ type StepValidator<T = unknown> = (context: StepValidationContext<T>) => boolean | Promise<boolean>;
1355
+ interface StepItem<T = unknown> {
1356
+ id?: string;
1357
+ label: string;
1358
+ description?: string;
1359
+ disabled?: boolean;
1360
+ optional?: boolean;
1361
+ completed?: boolean;
1362
+ error?: boolean;
1363
+ icon?: string;
1364
+ data?: T;
1365
+ content?: string;
1366
+ control?: AbstractControl | null;
1367
+ validator?: StepValidator<T>;
1368
+ labelTemplate?: TemplateRef<StepItemContext<T>>;
1369
+ contentTemplate?: TemplateRef<StepItemContext<T>>;
1370
+ indicatorTemplate?: TemplateRef<StepItemContext<T>>;
1371
+ }
1372
+ interface StepChangeEvent<T = unknown> {
1373
+ id: string | null;
1374
+ index: number;
1375
+ direction: TStepperMotion;
1376
+ item?: StepItem<T>;
1377
+ }
1378
+ interface StepValidationEvent<T = unknown> {
1379
+ id: string | null;
1380
+ index: number;
1381
+ valid: boolean;
1382
+ source: TStepNavigationSource;
1383
+ item?: StepItem<T>;
1384
+ }
1385
+
1386
+ interface StepViewItem<T = unknown> extends StepItem<T> {
1387
+ id: string;
1388
+ active?: boolean;
1389
+ }
1390
+ declare class StepperComponent implements OnChanges {
1391
+ steps: StepItem[];
1392
+ activeId: string | null;
1393
+ linear: boolean;
1394
+ animated: boolean;
1395
+ orientation: TStepperOrientation;
1396
+ focusPanelOnChange: boolean;
1397
+ validateOnChange: boolean;
1398
+ allowStepClick: boolean;
1399
+ formGroup?: AbstractControl | null;
1400
+ activeIdChange: EventEmitter<string | null>;
1401
+ changed: EventEmitter<StepChangeEvent<unknown>>;
1402
+ validationChange: EventEmitter<StepValidationEvent<unknown>>;
1403
+ labelTemplate?: TemplateRef<StepItemContext>;
1404
+ contentTemplate?: TemplateRef<StepItemContext>;
1405
+ indicatorTemplate?: TemplateRef<StepItemContext>;
1406
+ stepButtons: QueryList<ElementRef<HTMLButtonElement>>;
1407
+ panelBodies: QueryList<ElementRef<HTMLElement>>;
1408
+ viewSteps: StepViewItem[];
1409
+ motion: TStepperMotion;
1410
+ private uidCounter;
1411
+ private readonly validationState;
1412
+ ngOnChanges(changes: SimpleChanges): void;
1413
+ get activeIndex(): number;
1414
+ isActive(id?: string | null): boolean;
1415
+ stepId(id: string): string;
1416
+ panelId(id: string): string;
1417
+ onStepClick(index: number, event: Event): void;
1418
+ onStepKeydown(event: KeyboardEvent, index: number): void;
1419
+ next(): void;
1420
+ previous(): void;
1421
+ buildContext<T = unknown>(step: StepItem<T>, index: number): StepItemContext<T>;
1422
+ stepStatus(step: StepItem, index: number): 'completed' | 'active' | 'error' | 'default';
1423
+ indicatorText(step: StepItem, index: number): string;
1424
+ indicatorLabel(step: StepItem, index: number): string;
1425
+ isStepDisabled(step: StepItem, index: number): boolean;
1426
+ tabIndexFor(index: number): number;
1427
+ private requestStepChange;
1428
+ private normalizeSteps;
1429
+ private generateId;
1430
+ private resolveActiveId;
1431
+ private setActiveId;
1432
+ private getDirection;
1433
+ isStepComplete<T>(step: StepItem<T>): boolean;
1434
+ isStepError<T>(step: StepItem<T>): boolean;
1435
+ private getValidationResult;
1436
+ private isStepBlocked;
1437
+ private validateStep;
1438
+ private focusStep;
1439
+ private focusPanel;
1440
+ private getResolvedActiveIndex;
1441
+ private findNextEnabledIndex;
1442
+ static ɵfac: i0.ɵɵFactoryDeclaration<StepperComponent, never>;
1443
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepperComponent, "frg-stepper", never, { "steps": { "alias": "steps"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "linear": { "alias": "linear"; "required": false; }; "animated": { "alias": "animated"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "focusPanelOnChange": { "alias": "focusPanelOnChange"; "required": false; }; "validateOnChange": { "alias": "validateOnChange"; "required": false; }; "allowStepClick": { "alias": "allowStepClick"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; }, { "activeIdChange": "activeIdChange"; "changed": "changed"; "validationChange": "validationChange"; }, ["labelTemplate", "contentTemplate", "indicatorTemplate"], never, true, never>;
1444
+ }
1445
+
1446
+ /**
1447
+ * Base class for input components, providing common functionality for form controls.
1448
+ * This class implements ControlValueAccessor to integrate with Angular forms.
1449
+ * Subclasses must implement the abstract methods to update the view and disabled state.
1450
+ * It also provides properties for label, placeholder, required state, and error handling.
1451
+ * The errorMessages property can be customized to provide specific validation messages.
1452
+ * The hasError getter can be used in templates to conditionally display error messages.
1453
+ * Subclasses should call super.ngOnInit() if they override ngOnInit().
1454
+ *
1455
+ * @see ControlValueAccessor
1456
+ */
1457
+ declare abstract class InputBase<T> implements ControlValueAccessor, OnInit {
1458
+ /**
1459
+ * Unique identifier for the input element.
1460
+ */
1461
+ id: string;
1462
+ /**
1463
+ * The current value of the input element.
1464
+ */
1465
+ value: T | null;
1466
+ /**
1467
+ * Indicates whether the input element is disabled.
1468
+ */
1469
+ disabled: boolean;
1470
+ /**
1471
+ * The label for the input element.
1472
+ */
1473
+ label: string;
1474
+ /**
1475
+ * The placeholder text for the input element.
1476
+ */
1477
+ placeholder: string;
1478
+ /**
1479
+ * Indicates whether the input element is required.
1480
+ * If true, a visual indicator is shown next to the label.
1481
+ */
1482
+ required: boolean;
1483
+ /**
1484
+ * The FormControl associated with this input element.
1485
+ */
1486
+ control: FormControl | null;
1487
+ /**
1488
+ * Indicates whether to show validation messages.
1489
+ * If false, validation messages will be hidden.
1490
+ * Default is true.
1491
+ */
1492
+ showValidation: boolean;
1493
+ /**
1494
+ * The NgControl associated with this input element, if any.
1495
+ * This is injected to link the component with Angular forms.
1496
+ */
1497
+ protected ngControl: NgControl | null;
1498
+ /**
1499
+ * Holds the registered callback function to notify when the value changes.
1500
+ */
1501
+ protected onChange: (value: T | null) => void;
1502
+ /**
1503
+ * Holds the registered callback function to notify when the input is touched.
1504
+ */
1505
+ protected onTouched: () => void;
1506
+ constructor();
1507
+ /**
1508
+ * @inheritdoc
1509
+ */
1510
+ ngOnInit(): void;
1511
+ /**
1512
+ * @inheritdoc
1513
+ */
1514
+ writeValue(value: T): void;
1515
+ /**
1516
+ * @inheritdoc
1517
+ */
1518
+ registerOnChange(fn: (value: T | null) => void): void;
1519
+ /**
1520
+ * @inheritdoc
1521
+ */
1522
+ registerOnTouched(fn: () => void): void;
1523
+ /**
1524
+ * @inheritdoc
1525
+ */
1526
+ setDisabledState(isDisabled: boolean): void;
1527
+ /**
1528
+ * Indicates whether the input has validation errors and has been touched.
1529
+ * This is used to conditionally display error messages in the template.
1530
+ * @return True if the input has errors and has been touched, false otherwise.
1531
+ */
1532
+ get hasError(): boolean;
1533
+ /**
1534
+ * Updates the view to reflect the current value.
1535
+ * This method should be implemented by subclasses to update the specific input element.
1536
+ * @param value The new value to set in the view.
1537
+ */
1538
+ protected abstract updateView(value: T | null): void;
1539
+ /**
1540
+ * Updates the disabled state of the input element in the view.
1541
+ * This method should be implemented by subclasses to update the specific input element.
1542
+ * @param isDisabled True if the input should be disabled, false otherwise.
1543
+ */
1544
+ protected abstract updateDisabledState(isDisabled: boolean): void;
1545
+ /**
1546
+ * Handles blur event.
1547
+ * Subclasses can override to provide custom behavior.
1548
+ * Default implementation does nothing.
1549
+ */
1550
+ protected onBlur(_: FocusEvent): void;
1551
+ /**
1552
+ * Handles focus event.
1553
+ * Subclasses can override to provide custom behavior.
1554
+ * Default implementation does nothing.
1555
+ */
1556
+ protected onFocus(_: FocusEvent): void;
1557
+ /**
1558
+ * Handles input event.
1559
+ * Subclasses can override to provide custom behavior.
1560
+ * Default implementation does nothing.
1561
+ */
1562
+ protected onInput(_: Event): void;
1563
+ /**
1564
+ * A mapping of validation error keys to user-friendly error messages.
1565
+ * This can be customized to provide specific messages for different validation errors.
1566
+ * By default, it uses the DEFAULT_ERROR_MESSAGES constant.
1567
+ * If a specific error key is not found in this mapping, a generic message is used.
1568
+ */
1569
+ protected errorMessages: Record<string, string>;
1570
+ /**
1571
+ * A mapping of validation warnning keys to user-friendly warnning messages.
1572
+ * This can be customized to provide specific messages for different validation warnnings.
1573
+ * By default, it uses the DEFAULT_WARNING_MESSAGES constant.
1574
+ * If a specific warnning key is not found in this mapping, a generic message is used.
1575
+ */
1576
+ protected warningMessages: Record<string, string>;
1577
+ /**
1578
+ * Returns the list of error messages for the input.
1579
+ *
1580
+ * This property should be implemented by subclasses to provide
1581
+ * the current validation errors as an array of strings.
1582
+ */
1583
+ protected abstract get errorList(): string[];
1584
+ /**
1585
+ * Returns the list of error messages for the input.
1586
+ *
1587
+ * This property should be implemented by subclasses to provide
1588
+ * the current validation errors as an array of strings.
1589
+ */
1590
+ protected abstract get warningList(): string[] | undefined;
1591
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputBase<any>, never>;
1592
+ static ɵdir: i0.ɵɵDirectiveDeclaration<InputBase<any>, never, never, {}, {}, never, never, true, never>;
1593
+ }
1594
+
1595
+ type InputTextType = 'text' | 'email' | 'password' | 'tel' | 'url';
1596
+ type InputNumberType = 'number' | 'decimal';
1597
+ type InputDateType = 'date' | 'datetime-local';
1598
+ type InputTimeType = 'time';
1599
+ type InputTimePartial = 'hour' | 'minute' | 'second' | 'meridiem';
1600
+ type InputTimeMeridiem = 'AM' | 'PM';
1601
+ type InputToggleSwitchType = 'square' | 'circle';
1602
+ type InputSliderSize = 'small' | 'medium' | 'big';
1603
+ type InputChoiceStyleType = 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'danger' | 'light' | 'dark';
1604
+
1605
+ declare class InputTextComponent extends InputBase<string> implements OnInit {
1606
+ /**
1607
+ * @inheritdoc
1608
+ */
1609
+ label: string;
1610
+ /**
1611
+ * @inheritdoc
1612
+ */
1613
+ placeholder: string;
1614
+ /**
1615
+ * @inheritdoc
1616
+ */
1617
+ required: boolean;
1618
+ /**
1619
+ * @inheritdoc
1620
+ */
1621
+ showValidation: boolean;
1622
+ /**
1623
+ * @inheritdoc
1624
+ */
1625
+ errorMessages: Record<string, string>;
1626
+ /**
1627
+ * The type of the input element.
1628
+ * Can be 'text', 'password', 'email', 'tel', etc.
1629
+ * Defaults to 'text'.
1630
+ *
1631
+ * @see InputTextType
1632
+ */
1633
+ type: InputTextType;
1634
+ /**
1635
+ * Enables strict mode for email validation.
1636
+ * When set to true, the email validator will use a more stringent pattern.
1637
+ * Defaults to false.
1638
+ */
1639
+ validatorStrictMode: boolean;
1640
+ protected get errorList(): string[];
1641
+ /**
1642
+ * Handles the blur event on the input element.
1643
+ * Marks the control as touched.
1644
+ */
1645
+ onBlur(): void;
1646
+ /**
1647
+ * Handles the input event on the input element.
1648
+ * Updates the value and notifies the form control.
1649
+ */
1650
+ onInput(event: Event): void;
1651
+ /**
1652
+ * @inheritdoc
1653
+ */
1654
+ ngOnInit(): void;
1655
+ /**
1656
+ * @inheritdoc
1657
+ */
1658
+ protected updateView(_value: string | null): void;
1659
+ /**
1660
+ * @inheritdoc
1661
+ */
1662
+ protected updateDisabledState(_isDisabled: boolean): void;
1663
+ /**
1664
+ * Indicates whether the password is visible or hidden.
1665
+ *
1666
+ * Used only when the input type is 'password'.
1667
+ */
1668
+ protected showPassword: boolean;
1669
+ /**
1670
+ * Determines the actual input type to be used in the template.
1671
+ * If the type is 'password', it toggles between 'text' and 'password'
1672
+ * based on the showPassword property.
1673
+ *
1674
+ * @returns The input type as a string.
1675
+ */
1676
+ get inputType(): string;
1677
+ /**
1678
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
1679
+ * Falls back to DEFAULT_INPUT_TEXT_WARNINGS_MESSAGES or a generic message.
1680
+ */
1681
+ protected get warningList(): string[];
1682
+ /**
1683
+ * Returns whether any warnings are active.
1684
+ */
1685
+ protected get hasWarning(): boolean;
1686
+ /**
1687
+ * Toggles the visibility of the password input field.
1688
+ * This method switches the input type between 'text' and 'password'.
1689
+ *
1690
+ * Used only when the input type is 'password'.
1691
+ */
1692
+ protected toggleShowPassword(): void;
1693
+ /**
1694
+ * Adds email validator to the control if the type is 'email'.
1695
+ * This ensures that the input value is a valid email address.
1696
+ */
1697
+ private validateEmail;
1698
+ private validatePhoneNumber;
1699
+ private validateUrl;
1700
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputTextComponent, never>;
1701
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputTextComponent, "frg-input-text", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "type": { "alias": "type"; "required": false; }; "validatorStrictMode": { "alias": "validatorStrictMode"; "required": false; }; }, {}, never, never, true, never>;
1702
+ }
1703
+
1704
+ declare class InputNumberComponent extends InputBase<number | null> implements OnInit {
1705
+ /**
1706
+ * @inheritdoc
1707
+ */
1708
+ label: string;
1709
+ /**
1710
+ * @inheritdoc
1711
+ */
1712
+ placeholder: string;
1713
+ /**
1714
+ * @inheritdoc
1715
+ */
1716
+ required: boolean;
1717
+ /**
1718
+ * @inheritdoc
1719
+ */
1720
+ showValidation: boolean;
1721
+ /**
1722
+ * @inheritdoc
1723
+ */
1724
+ errorMessages: Record<string, string>;
1725
+ /**
1726
+ * The type of the input element.
1727
+ * Can be 'number' or 'decimal'.
1728
+ * Defaults to 'number'.
1729
+ */
1730
+ type: InputNumberType;
1731
+ /**
1732
+ * Minimum allowed value for the input.
1733
+ */
1734
+ min: number | null;
1735
+ /**
1736
+ * Maximum allowed value for the input.
1737
+ */
1738
+ max: number | null;
1739
+ /**
1740
+ * Increment/decrement step for the input value.
1741
+ */
1742
+ step: number | null;
1743
+ /**
1744
+ * Maximum number of decimal places allowed.
1745
+ */
1746
+ precision: number | null;
1747
+ /**
1748
+ * Enables strict mode for validation.
1749
+ * Defaults to false.
1750
+ */
1751
+ validatorStrictMode: boolean;
1752
+ /** Internal store for warnings */
1753
+ private warnings;
1754
+ /**
1755
+ * @inheritdoc
1756
+ */
1757
+ ngOnInit(): void;
1758
+ /**
1759
+ * Returns the step value for the input based on type and precision.
1760
+ */
1761
+ get inputStep(): number;
1762
+ /**
1763
+ * Handles blur event:
1764
+ * - Aligns value to step
1765
+ * - Clamps to min/max/precision
1766
+ * - Runs validation
1767
+ */
1768
+ protected onBlur(event: FocusEvent): void;
1769
+ /**
1770
+ * Handles input event:
1771
+ * - Normalizes value
1772
+ * - Runs validation
1773
+ */
1774
+ protected onInput(event: Event): void;
1775
+ /**
1776
+ * @inheritdoc
1777
+ */
1778
+ protected updateView(_value: number | null): void;
1779
+ /**
1780
+ * @inheritdoc
1781
+ */
1782
+ protected updateDisabledState(_isDisabled: boolean): void;
1783
+ /**
1784
+ * Returns error messages, excluding warnings.
1785
+ */
1786
+ protected get errorList(): string[];
1787
+ /**
1788
+ * Returns dynamic warning messages, replacing {{limit}} with actual values.
1789
+ */
1790
+ protected get warningList(): string[];
1791
+ /**
1792
+ * Returns whether any warnings are active.
1793
+ */
1794
+ protected get hasWarning(): boolean;
1795
+ /**
1796
+ * Increase value by step, respecting precision, step alignment and max.
1797
+ */
1798
+ protected increase(): void;
1799
+ /**
1800
+ * Decrease value by step, respecting precision, step alignment and min.
1801
+ */
1802
+ protected decrease(): void;
1803
+ /**
1804
+ * Clamps a value to respect precision, min, and max
1805
+ * @param value Value to clamp
1806
+ */
1807
+ private applyClamping;
1808
+ /**
1809
+ * Validates a value against precision, min, max, and step
1810
+ * @param value Value to validate
1811
+ */
1812
+ private validate;
1813
+ /** Initializes placeholder based on type */
1814
+ private initPlaceholder;
1815
+ /**
1816
+ * Adds a warning flag
1817
+ * @param key Warning type
1818
+ */
1819
+ private addWarning;
1820
+ /**
1821
+ * Removes a warning flag
1822
+ * @param key Warning type
1823
+ */
1824
+ private removeWarning;
1825
+ /**
1826
+ * Aligns a value to the nearest multiple of step
1827
+ * @param value Value to align
1828
+ * @param step Step size
1829
+ */
1830
+ private alignToStep;
1831
+ /**
1832
+ * Counts the number of decimals in a number
1833
+ * @param num Number to check
1834
+ */
1835
+ private countDecimals;
1836
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputNumberComponent, never>;
1837
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputNumberComponent, "frg-input-number", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "type": { "alias": "type"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "precision": { "alias": "precision"; "required": false; }; "validatorStrictMode": { "alias": "validatorStrictMode"; "required": false; }; }, {}, never, never, true, never>;
1838
+ }
1839
+
1840
+ declare class InputDateComponent extends InputBase<Date | null> {
1841
+ onDocumentClick(event: MouseEvent): void;
1842
+ /**
1843
+ * @inheritdoc
1844
+ */
1845
+ label: string;
1846
+ /**
1847
+ * @inheritdoc
1848
+ */
1849
+ placeholder: string;
1850
+ /**
1851
+ * @inheritdoc
1852
+ */
1853
+ required: boolean;
1854
+ /**
1855
+ * @inheritdoc
1856
+ */
1857
+ showValidation: boolean;
1858
+ /**
1859
+ * @inheritdoc
1860
+ */
1861
+ errorMessages: Record<string, string>;
1862
+ /**
1863
+ * The type of the input element.
1864
+ * Can be 'text', 'password', 'email', 'tel', etc.
1865
+ * Defaults to 'text'.
1866
+ *
1867
+ * @see InputTextType
1868
+ */
1869
+ type: InputDateType;
1870
+ /**
1871
+ * Minimum year selectable in the calendar
1872
+ */
1873
+ minDate: Date;
1874
+ /**
1875
+ * Maximum year selectable in the calendar
1876
+ */
1877
+ maxDate: Date;
1878
+ /**
1879
+ * The format of date
1880
+ */
1881
+ format: DateFormat;
1882
+ /**
1883
+ * Enables strict mode for email validation.
1884
+ * When set to true, the email validator will use a more stringent pattern.
1885
+ * Defaults to false.
1886
+ */
1887
+ validatorStrictMode: boolean;
1888
+ /**
1889
+ * Used for show calendar
1890
+ */
1891
+ showCalendar$: BehaviorSubject<boolean>;
1892
+ /**
1893
+ * Determines the actual input type to be used in the template.
1894
+ * If the type is 'password', it toggles between 'text' and 'password'
1895
+ * based on the showPassword property.
1896
+ *
1897
+ * @returns The input type as a string.
1898
+ */
1899
+ get inputType(): string;
1900
+ /** Internal store for warnings */
1901
+ private warnings;
1902
+ /**
1903
+ * @inheritdoc
1904
+ */
1905
+ ngOnInit(): void;
1906
+ /**
1907
+ * Handles the blur event on the input element.
1908
+ * Validates and formats the input value.
1909
+ * Marks the control as touched and updates the model value.
1910
+ * @param event Focus event
1911
+ */
1912
+ onBlur(event: FocusEvent): void;
1913
+ /**
1914
+ * Handles the input event on the input element.
1915
+ * Validates the input value.
1916
+ * @param event Input event
1917
+ */
1918
+ onInput(event: Event): void;
1919
+ /**
1920
+ * Handles the blur event on the input element.
1921
+ * Marks the control as touched.
1922
+ */
1923
+ onFocus(_event: FocusEvent): void;
1924
+ /**
1925
+ * Format value for input display
1926
+ * @param value Date value
1927
+ * @returns Formatted date string
1928
+ */
1929
+ protected formatDate(value: Date | null): string;
1930
+ protected selectDate(date: Date): void;
1931
+ protected toggleCalendar(): void;
1932
+ /**
1933
+ * @inheritdoc
1934
+ */
1935
+ protected updateView(_value: Date | null): void;
1936
+ /**
1937
+ * @inheritdoc
1938
+ */
1939
+ protected updateDisabledState(_isDisabled: boolean): void;
1940
+ /**
1941
+ * @inheritdoc
1942
+ */
1943
+ protected get errorList(): string[];
1944
+ /**
1945
+ * Returns dynamic warning messages, replacing {{limit}} with actual values.
1946
+ */
1947
+ protected get warningList(): string[];
1948
+ /**
1949
+ * Returns whether any warnings are active.
1950
+ */
1951
+ protected get hasWarning(): boolean;
1952
+ /**
1953
+ * Adds a warning flag
1954
+ * @param key Warning key
1955
+ */
1956
+ private addWarning;
1957
+ /**
1958
+ * Clamp a date within min/max boundaries
1959
+ * @param date Date to clamp
1960
+ * @returns Clamped date and sets warnings if needed
1961
+ */
1962
+ private clampDate;
1963
+ /**
1964
+ * Initialize the placeholder based on the date format
1965
+ */
1966
+ private initPlaceholder;
1967
+ /**
1968
+ * Initialize validators based on inputs
1969
+ */
1970
+ private initValidators;
1971
+ /**
1972
+ * Validate the input value against the specified format
1973
+ * @param value Input value
1974
+ */
1975
+ private validate;
1976
+ /**
1977
+ * Remove a warning flag
1978
+ * @param key Warning key
1979
+ */
1980
+ private removeWarning;
1981
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputDateComponent, never>;
1982
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputDateComponent, "frg-input-date", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "type": { "alias": "type"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "validatorStrictMode": { "alias": "validatorStrictMode"; "required": false; }; }, {}, never, never, true, never>;
1983
+ }
1984
+
1985
+ declare class InputCalendarComponent implements OnInit {
1986
+ private readonly locale;
1987
+ /**
1988
+ * Current day
1989
+ */
1990
+ currentDay: number;
1991
+ /**
1992
+ * Month is 0 indexed in JavaScript Date, so we add 1 to make it 1 indexed
1993
+ */
1994
+ currentMonth: number;
1995
+ /**
1996
+ * Current year
1997
+ */
1998
+ currentYear: number;
1999
+ /**
2000
+ * Minimum date selectable in the calendar
2001
+ * @default 0
2002
+ */
2003
+ minDate: Date;
2004
+ /**
2005
+ * Maximum date selectable in the calendar
2006
+ * @default 9999-12-31
2007
+ */
2008
+ maxDate: Date;
2009
+ /**
2010
+ * The currently selected date
2011
+ * @default null
2012
+ */
2013
+ selectedValue: Date | null;
2014
+ /**
2015
+ * Event emitted when a date is selected
2016
+ * @type {EventEmitter<Date>}
2017
+ */
2018
+ selectDate: EventEmitter<Date>;
2019
+ /**
2020
+ * Event emitted when value is hi than max date
2021
+ * @type {EventEmitter<Date>}
2022
+ */
2023
+ handleMaxDate: EventEmitter<Date>;
2024
+ /**
2025
+ * Event emitted when value is less than min date
2026
+ * @type {EventEmitter<Date>}
2027
+ */
2028
+ handleMinDate: EventEmitter<Date>;
2029
+ /**
2030
+ * Used for show month selection
2031
+ */
2032
+ hasMonthSelectionOpen$: BehaviorSubject<boolean>;
2033
+ /**
2034
+ * Used for show year selection
2035
+ */
2036
+ hasYearSelectionOpen$: BehaviorSubject<boolean>;
2037
+ /**
2038
+ * Array of dates to display in the calendar
2039
+ */
2040
+ get calendarDays(): Date[];
2041
+ /**
2042
+ * Get the short names of the weekdays based on the current locale
2043
+ */
2044
+ get weekDays(): string[];
2045
+ get years(): number[];
2046
+ get months(): string[];
2047
+ /**
2048
+ * Get the current month in long format (e.g., January, February)
2049
+ */
2050
+ get month(): string;
2051
+ /**
2052
+ * Get the current year as a string
2053
+ */
2054
+ get year(): string;
2055
+ ngOnInit(): void;
2056
+ /**
2057
+ * Check if a given day is today
2058
+ * @param day - The date to check
2059
+ * @returns True if the given day is today, false otherwise
2060
+ */
2061
+ protected isToday(day: Date): boolean;
2062
+ /**
2063
+ * Change the current month, adjusting the year if necessary
2064
+ * @param month - The new month to set (1-12)
2065
+ */
2066
+ protected changeMonth(month: number): void;
2067
+ /**
2068
+ * Open or close the month selection dropdown
2069
+ */
2070
+ protected openYearSelection(): void;
2071
+ /**
2072
+ * Open or close the month selection dropdown
2073
+ */
2074
+ protected openMonthSelection(): void;
2075
+ /**
2076
+ * Handle the selection of a date and emit the selected date
2077
+ * @param date - The date that was selected
2078
+ */
2079
+ protected onSelectDate(event: PointerEvent, date: Date): void;
2080
+ /**
2081
+ * Check if a date is disabled based on minDate and maxDate
2082
+ * @param a - The date to check
2083
+ * @returns True if the date is disabled, false otherwise
2084
+ */
2085
+ protected isDisabled(a: Date): boolean;
2086
+ /**
2087
+ * Check if a date is the currently selected date
2088
+ * @param a - The date to check
2089
+ * @param b - The currently selected date
2090
+ * @returns True if the dates are the same, false otherwise
2091
+ */
2092
+ protected isSelected(a: Date, b: Date | null): boolean;
2093
+ /**
2094
+ * Check if a date is the currently selected date
2095
+ * @param a - The date to check
2096
+ * @param b - The currently selected date
2097
+ * @returns True if the dates are the same, false otherwise
2098
+ */
2099
+ protected isSelectedYearOrMonth(a: number, b: number | null): boolean;
2100
+ protected selectMonth(event: MouseEvent, month: number): void;
2101
+ protected selectYear(event: MouseEvent, year: number): void;
2102
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputCalendarComponent, never>;
2103
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputCalendarComponent, "frg-input-calendar", never, { "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; }, { "selectDate": "selectDate"; "handleMaxDate": "handleMaxDate"; "handleMinDate": "handleMinDate"; }, never, never, true, never>;
2104
+ }
2105
+
2106
+ declare class InputTimeComponent extends InputBase<string> {
2107
+ /**
2108
+ * @inheritdoc
2109
+ */
2110
+ label: string;
2111
+ /**
2112
+ * @inheritdoc
2113
+ */
2114
+ placeholder: string;
2115
+ /**
2116
+ * @inheritdoc
2117
+ */
2118
+ required: boolean;
2119
+ /**
2120
+ * @inheritdoc
2121
+ */
2122
+ showValidation: boolean;
2123
+ /**
2124
+ * @inheritdoc
2125
+ */
2126
+ errorMessages: Record<string, string>;
2127
+ /**
2128
+ * The type of the input element.
2129
+ * Can be 'text', 'password', 'email', 'tel', etc.
2130
+ * Defaults to 'text'.
2131
+ *
2132
+ * @see InputTextType
2133
+ */
2134
+ type: InputTimeType;
2135
+ /**
2136
+ * Minimum year selectable in the calendar
2137
+ */
2138
+ minTime: string;
2139
+ /**
2140
+ * Maximum year selectable in the calendar
2141
+ */
2142
+ maxTime: string;
2143
+ /**
2144
+ * The format of time
2145
+ */
2146
+ format: TimeFormat;
2147
+ /**
2148
+ * Enables strict mode for email validation.
2149
+ * When set to true, the email validator will use a more stringent pattern.
2150
+ * Defaults to false.
2151
+ */
2152
+ validatorStrictMode: boolean;
2153
+ /**
2154
+ * Determines the actual input type to be used in the template.
2155
+ * If the type is 'password', it toggles between 'text' and 'password'
2156
+ * based on the showPassword property.
2157
+ *
2158
+ * @returns The input type as a string.
2159
+ */
2160
+ get inputType(): string;
2161
+ /**
2162
+ * Minimum hour based on minTime
2163
+ */
2164
+ get minHour(): number;
2165
+ /**
2166
+ * Maximum hour based on maxTime and format
2167
+ */
2168
+ get maxHour(): number;
2169
+ /**
2170
+ * Minimum minute allowed based on `minTime`
2171
+ */
2172
+ get minMinute(): number;
2173
+ /**
2174
+ * Maximum minute allowed based on `maxTime`
2175
+ */
2176
+ get maxMinute(): number;
2177
+ /**
2178
+ * Minimum second allowed based on `minTime`
2179
+ */
2180
+ get minSecond(): number;
2181
+ /**
2182
+ * Maximum second allowed based on `maxTime`
2183
+ */
2184
+ get maxSecond(): number;
2185
+ /** Internal store for warnings */
2186
+ private warnings;
2187
+ /**
2188
+ * @inheritdoc
2189
+ */
2190
+ ngOnInit(): void;
2191
+ onKeydown(event: Event): void;
2192
+ /**
2193
+ * @inheritdoc
2194
+ */
2195
+ onBlur(event: FocusEvent): void;
2196
+ /**
2197
+ * @inheritdoc
2198
+ */
2199
+ onInput(event: Event): void;
2200
+ /**
2201
+ * Decrements a specific part of the time (hour, minute, or second)
2202
+ * and updates the input value accordingly.
2203
+ *
2204
+ * @param partialTime - The time part to decrement: 'hour', 'minute', or 'second'.
2205
+ */
2206
+ protected decrease(partialTime: InputTimePartial): void;
2207
+ /**
2208
+ * Format value for input display
2209
+ * @param value Date value
2210
+ * @returns Formatted time string
2211
+ */
2212
+ protected formatTime(value: string | null, partialTime?: InputTimePartial): string;
2213
+ /**
2214
+ * Increments a specific part of the time (hour, minute, or second)
2215
+ * and updates the input value accordingly.
2216
+ *
2217
+ * @param partialTime - The time part to increment: 'hour', 'minute', or 'second'.
2218
+ */
2219
+ protected increase(partialTime: InputTimePartial): void;
2220
+ /**
2221
+ * @inheritdoc
2222
+ */
2223
+ protected updateView(_value: string | null): void;
2224
+ /**
2225
+ * @inheritdoc
2226
+ */
2227
+ protected updateDisabledState(_isDisabled: boolean): void;
2228
+ /**
2229
+ * @inheritdoc
2230
+ */
2231
+ protected get errorList(): string[];
2232
+ /**
2233
+ * Returns dynamic warning messages, replacing {{limit}} with actual values.
2234
+ */
2235
+ protected get warningList(): string[];
2236
+ /**
2237
+ * Returns whether any warnings are active.
2238
+ */
2239
+ protected get hasWarning(): boolean;
2240
+ /**
2241
+ * Adds a warning flag
2242
+ * @param key Warning key
2243
+ */
2244
+ private addWarning;
2245
+ /**
2246
+ * Builds a formatted time string from the given time parts.
2247
+ * - Undefined numeric parts are represented as "undefined".
2248
+ * - Meridiem is always included if the format includes 'a'.
2249
+ *
2250
+ * @param parts Object containing hour, minute, second, and optional meridiem
2251
+ * @returns Formatted time string according to the current format
2252
+ */
2253
+ private formatPartsToTimeString;
2254
+ /**
2255
+ * Clamps a numeric value between a minimum and maximum.
2256
+ * @param value The number to clamp.
2257
+ * @param min Minimum allowed value.
2258
+ * @param max Maximum allowed value.
2259
+ * @returns The clamped number, or undefined if input was undefined.
2260
+ */
2261
+ private clamp;
2262
+ /**
2263
+ * Decrement hour based on format (12h or 24h)
2264
+ * @param hour Current hour
2265
+ * @returns Decremented hour
2266
+ */
2267
+ private decrementHour;
2268
+ /**
2269
+ * Decrement minute with wrapping
2270
+ * @param minute Current minute
2271
+ * @returns Decremented minute
2272
+ */
2273
+ private decrementMinute;
2274
+ /**
2275
+ * Decrement second with wrapping
2276
+ * @param second Current second
2277
+ * @returns Decremented second
2278
+ */
2279
+ private decrementSecond;
2280
+ /**
2281
+ * Returns the current time parts extracted from the component's value.
2282
+ * Numeric parts are converted to numbers; meridiem defaults to 'AM' if format includes 'a'.
2283
+ * @returns An object containing hour, minute, second, and meridiem (if applicable).
2284
+ */
2285
+ private getCurrentParts;
2286
+ /**
2287
+ * Initialize the placeholder based on the time format
2288
+ */
2289
+ private initPlaceholder;
2290
+ /**
2291
+ * Increment hour based on format (12h or 24h)
2292
+ * @param hour Current hour
2293
+ * @returns Incremented hour
2294
+ */
2295
+ private incrementHour;
2296
+ /**
2297
+ * Increment minute with wrapping
2298
+ * @param minute Current minute
2299
+ * @returns Incremented minute
2300
+ */
2301
+ private incrementMinute;
2302
+ /**
2303
+ * Increment second with wrapping
2304
+ * @param second Current second
2305
+ * @returns Incremented second
2306
+ */
2307
+ private incrementSecond;
2308
+ /**
2309
+ * Initialize validators based on inputs
2310
+ */
2311
+ private initValidators;
2312
+ /**
2313
+ * Merges a partial time input into the current value and returns the resulting full time string.
2314
+ * @param partial The time part being updated ('hour', 'minute', 'second', 'meridiem').
2315
+ * @param partialValue The new value for the specified part.
2316
+ * @returns The merged full time string.
2317
+ */
2318
+ private mergePartialInput;
2319
+ /**
2320
+ * Converts a string to a number or returns undefined if the value is invalid.
2321
+ * @param value The string to parse.
2322
+ * @returns The number value, or undefined if input is null, 'undefined', or NaN.
2323
+ */
2324
+ private parseNumberOrUndefined;
2325
+ /**
2326
+ * Parse the current value to its components
2327
+ * @returns An object containing hour, minute, second, and meridiem (if applicable)
2328
+ */
2329
+ private parseValueToParts;
2330
+ /**
2331
+ * Updates a specific part of a time parts object with a new partial value and clamps numeric values.
2332
+ * @param parts The time parts object to update.
2333
+ * @param partial The part to update ('hour', 'minute', 'second', 'meridiem').
2334
+ * @param partialValue The new value for the part.
2335
+ */
2336
+ private setPartialValue;
2337
+ /**
2338
+ * Toggle the meridiem (AM/PM) in the current value
2339
+ * This is used when incrementing hours in 12-hour format.
2340
+ */
2341
+ private toggleMeridiem;
2342
+ /**
2343
+ * Update individual input fields based on the current full time value
2344
+ * This ensures that each part (hour, minute, second, meridiem) reflects the current value
2345
+ * and is properly formatted.
2346
+ */
2347
+ private updateInputsFromValue;
2348
+ /**
2349
+ * Validate the input value against the specified format
2350
+ * @param value Input value
2351
+ */
2352
+ private validate;
2353
+ /**
2354
+ * Remove a warning flag
2355
+ * @param key Warning key
2356
+ */
2357
+ private removeWarning;
2358
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputTimeComponent, never>;
2359
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputTimeComponent, "frg-input-time", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "type": { "alias": "type"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "format": { "alias": "format"; "required": false; }; "validatorStrictMode": { "alias": "validatorStrictMode"; "required": false; }; }, {}, never, never, true, never>;
2360
+ }
2361
+
2362
+ declare class InputDateTimeComponent extends InputBase<Date | null> {
2363
+ onDocumentClick(event: MouseEvent): void;
2364
+ /**
2365
+ * @inheritdoc
2366
+ */
2367
+ label: string;
2368
+ /**
2369
+ * @inheritdoc
2370
+ */
2371
+ placeholder: string;
2372
+ /**
2373
+ * @inheritdoc
2374
+ */
2375
+ required: boolean;
2376
+ /**
2377
+ * @inheritdoc
2378
+ */
2379
+ showValidation: boolean;
2380
+ /**
2381
+ * @inheritdoc
2382
+ */
2383
+ errorMessages: Record<string, string>;
2384
+ /**
2385
+ * Minimum year selectable in the calendar
2386
+ */
2387
+ minDateTime: Date;
2388
+ /**
2389
+ * Maximum year selectable in the calendar
2390
+ */
2391
+ maxDateTime: Date;
2392
+ /**
2393
+ * The format of date time
2394
+ */
2395
+ format: DateTimeFormat;
2396
+ showDateTimePicker$: BehaviorSubject<boolean>;
2397
+ get currentMeridiem(): InputTimeMeridiem;
2398
+ /**
2399
+ * Returns whether any warnings are active.
2400
+ */
2401
+ protected get hasWarning(): boolean;
2402
+ /**
2403
+ * Returns dynamic warning messages, replacing {{limit}} with actual values.
2404
+ */
2405
+ protected get warningList(): string[];
2406
+ /** Internal store for warnings */
2407
+ private readonly warnings;
2408
+ /** Current meridiem passed to clock picker */
2409
+ private meridiem;
2410
+ /**
2411
+ * Handles the blur event on the input element.
2412
+ * Marks the control as touched.
2413
+ */
2414
+ onFocus(_event: FocusEvent): void;
2415
+ /**
2416
+ * Handles the blur event on the input element.
2417
+ * Marks the control as touched.
2418
+ */
2419
+ onBlur(event: FocusEvent): void;
2420
+ /**
2421
+ * Format value for input display
2422
+ * @param value Date value
2423
+ * @returns Formatted date string
2424
+ */
2425
+ protected formatDate(value: Date | null): string;
2426
+ protected updateView(_value: Date | null): void;
2427
+ protected updateDisabledState(_isDisabled: boolean): void;
2428
+ /**
2429
+ * @inheritdoc
2430
+ */
2431
+ protected get errorList(): string[];
2432
+ /**
2433
+ * @inheritdoc
2434
+ */
2435
+ ngOnInit(): void;
2436
+ clearValue(): void;
2437
+ protected selectDate(date: Date): void;
2438
+ /**
2439
+ * Initialize the placeholder based on the date format
2440
+ */
2441
+ private initPlaceholder;
2442
+ protected selectHour(hour: string): void;
2443
+ protected selectMinute(minute: string): void;
2444
+ protected selectMeridiem(meridiem: InputTimeMeridiem): void;
2445
+ protected get timeFormat(): TimeFormat | null;
2446
+ protected toggleDateTimePicker(): void;
2447
+ /**
2448
+ * Adds a warning flag
2449
+ * @param key Warning key
2450
+ */
2451
+ private addWarning;
2452
+ /**
2453
+ * Clamp a date within min/max boundaries
2454
+ * @param date Date to clamp
2455
+ * @returns Clamped date and sets warnings if needed
2456
+ */
2457
+ private clampDate;
2458
+ /**
2459
+ * Remove a warning flag
2460
+ * @param key Warning key
2461
+ */
2462
+ private removeWarning;
2463
+ /**
2464
+ * Validate the input value against the specified format
2465
+ * @param value Input value
2466
+ */
2467
+ private validate;
2468
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputDateTimeComponent, never>;
2469
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputDateTimeComponent, "frg-input-date-time", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "minDateTime": { "alias": "minDateTime"; "required": false; }; "maxDateTime": { "alias": "maxDateTime"; "required": false; }; "format": { "alias": "format"; "required": false; }; }, {}, never, never, true, never>;
2470
+ }
2471
+
2472
+ declare class InputClockPickerComponent implements OnInit {
2473
+ /**Selected hour in string format ("00".."23") */
2474
+ selectedHour: string | null;
2475
+ /** Selected minute in string format ("00".."55" step 5) */
2476
+ selectedMinute: string | null;
2477
+ /** Selected meridiem for 12-hour format */
2478
+ selectedMeridiem: InputTimeMeridiem;
2479
+ /** Time format configuration */
2480
+ timeFormat: TimeFormat | null;
2481
+ /** Emits the hour when user selects an hour */
2482
+ selectHour: EventEmitter<string>;
2483
+ /** Emits the minute when user selects a minute */
2484
+ selectMinute: EventEmitter<string>;
2485
+ /** Emits the meridiem when user toggles AM/PM */
2486
+ selectMeridiem: EventEmitter<InputTimeMeridiem>;
2487
+ /** Emits when the picker should be closed */
2488
+ closePicker: EventEmitter<void>;
2489
+ /** Reference to the minute hand element */
2490
+ handMinutes: ElementRef<HTMLDivElement>;
2491
+ /** Reference to the hour hand element */
2492
+ handHours: ElementRef<HTMLDivElement>;
2493
+ /** Whether the minutes picker is visible */
2494
+ showMinutesPicker$: BehaviorSubject<boolean>;
2495
+ /** Whether the hours picker is visible */
2496
+ showHoursPicker$: BehaviorSubject<boolean>;
2497
+ private currentHourDegree;
2498
+ private currentMinuteDegree;
2499
+ clockHours: Array<string>;
2500
+ fullClockHours: Array<string>;
2501
+ clockMinutes: Array<string>;
2502
+ /** Returns the current time in HH:MM format */
2503
+ get timeValue(): string;
2504
+ /** Returns true if the time format is 12-hour */
2505
+ protected get isMeridiemFormat(): boolean;
2506
+ /**
2507
+ * Initializes the hour and minute hands based on provided input values.
2508
+ */
2509
+ ngOnInit(): void;
2510
+ /**
2511
+ * Updates the hour hand to follow hover position.
2512
+ * @param hour - The hour string being hovered ("00".."23").
2513
+ */
2514
+ protected onHourHover(hour: string): void;
2515
+ /**
2516
+ * Resets the hour hand to the currently selected hour when hover leaves.
2517
+ */
2518
+ protected onHourLeave(): void;
2519
+ /**
2520
+ * Handles user selection of an hour.
2521
+ * @param event - The pointer event triggered by click.
2522
+ * @param hour - The selected hour string ("00".."23").
2523
+ */
2524
+ protected onHourClick(event: PointerEvent, hour: string): void;
2525
+ /**
2526
+ * Handles AM/PM toggle for 12-hour format.
2527
+ * @param event - The change event from the checkbox input.
2528
+ */
2529
+ protected onMeridiemChange(event: Event): void;
2530
+ /**
2531
+ * Updates the minute hand to follow hover position.
2532
+ * @param minute - The minute string being hovered ("00".."55", step 5).
2533
+ */
2534
+ protected onMinuteHover(minute: string): void;
2535
+ /**
2536
+ * Resets the minute hand to the currently selected minute when hover leaves.
2537
+ */
2538
+ protected onMinuteLeave(): void;
2539
+ /**
2540
+ * Handles user selection of a minute.
2541
+ * @param event - The pointer event triggered by click.
2542
+ * @param minute - The selected minute string ("00".."55", step 5).
2543
+ */
2544
+ protected onMinuteClick(event: PointerEvent, minute: string): void;
2545
+ protected showHours(): void;
2546
+ protected showMinutes(): void;
2547
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputClockPickerComponent, never>;
2548
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputClockPickerComponent, "frg-input-clock-picker", never, { "selectedHour": { "alias": "selectedHour"; "required": false; }; "selectedMinute": { "alias": "selectedMinute"; "required": false; }; "selectedMeridiem": { "alias": "selectedMeridiem"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; }, { "selectHour": "selectHour"; "selectMinute": "selectMinute"; "selectMeridiem": "selectMeridiem"; "closePicker": "closePicker"; }, never, never, true, never>;
2549
+ }
2550
+
2551
+ declare class InputValidationComponent {
2552
+ errorList: string[];
2553
+ warningList: string[];
2554
+ isFormInvalid: boolean;
2555
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputValidationComponent, never>;
2556
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputValidationComponent, "frg-input-validation", never, { "errorList": { "alias": "errorList"; "required": false; }; "warningList": { "alias": "warningList"; "required": false; }; "isFormInvalid": { "alias": "isFormInvalid"; "required": false; }; }, {}, never, never, true, never>;
2557
+ }
2558
+
2559
+ declare class InputToggleSwitchComponent extends InputBase<boolean> {
2560
+ /**
2561
+ * @inheritdoc
2562
+ */
2563
+ label: string;
2564
+ /**
2565
+ * @inheritdoc
2566
+ */
2567
+ required: boolean;
2568
+ /**
2569
+ * @inheritdoc
2570
+ */
2571
+ disabled: boolean;
2572
+ /**
2573
+ * @inheritdoc
2574
+ */
2575
+ errorMessages: Record<string, string>;
2576
+ /**
2577
+ * @inheritdoc
2578
+ */
2579
+ warningMessages: Record<string, string>;
2580
+ /**
2581
+ * @inheritdoc
2582
+ */
2583
+ showValidation: boolean;
2584
+ /**
2585
+ * The toggle switch type
2586
+ * @default 'square'
2587
+ */
2588
+ type: InputToggleSwitchType;
2589
+ /**
2590
+ * Toggles the switch value
2591
+ */
2592
+ toggle(): void;
2593
+ onKeydown(event: KeyboardEvent): void;
2594
+ /**
2595
+ * @inheritdoc
2596
+ */
2597
+ protected updateView(_value: boolean | null): void;
2598
+ /**
2599
+ * @inheritdoc
2600
+ */
2601
+ protected updateDisabledState(_isDisabled: boolean): void;
2602
+ /**
2603
+ * @inheritdoc
2604
+ */
2605
+ protected get errorList(): string[];
2606
+ /**
2607
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
2608
+ * Falls back to DEFAULT_INPUT_TOGGLE_SWITCH_WARNINGS_MESSAGES or a generic message.
2609
+ */
2610
+ protected get warningList(): string[];
2611
+ /**
2612
+ * Returns whether any warnings are active.
2613
+ */
2614
+ protected get hasWarning(): boolean;
2615
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputToggleSwitchComponent, never>;
2616
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputToggleSwitchComponent, "frg-input-toggle-switch", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "warningMessages": { "alias": "warningMessages"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
2617
+ }
2618
+
2619
+ declare class InputCheckboxComponent extends InputBase<boolean> {
2620
+ /**
2621
+ * @inheritdoc
2622
+ */
2623
+ label: string;
2624
+ /**
2625
+ * @inheritdoc
2626
+ */
2627
+ required: boolean;
2628
+ /**
2629
+ * @inheritdoc
2630
+ */
2631
+ disabled: boolean;
2632
+ /**
2633
+ * @inheritdoc
2634
+ */
2635
+ errorMessages: Record<string, string>;
2636
+ /**
2637
+ * @inheritdoc
2638
+ */
2639
+ warningMessages: Record<string, string>;
2640
+ /**
2641
+ * @inheritdoc
2642
+ */
2643
+ showValidation: boolean;
2644
+ /**
2645
+ * Sets the visual style of the checkbox.
2646
+ */
2647
+ styleType: InputChoiceStyleType;
2648
+ /**
2649
+ * Toggles the checkbox value.
2650
+ */
2651
+ onToggle(event: Event): void;
2652
+ /**
2653
+ * @inheritdoc
2654
+ */
2655
+ onBlur(): void;
2656
+ /**
2657
+ * @inheritdoc
2658
+ */
2659
+ protected updateView(_value: boolean | null): void;
2660
+ /**
2661
+ * @inheritdoc
2662
+ */
2663
+ protected updateDisabledState(_isDisabled: boolean): void;
2664
+ /**
2665
+ * @inheritdoc
2666
+ */
2667
+ protected get errorList(): string[];
2668
+ /**
2669
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
2670
+ * Falls back to DEFAULT_INPUT_CHECKBOX_WARNINGS_MESSAGES or a generic message.
2671
+ */
2672
+ protected get warningList(): string[];
2673
+ /**
2674
+ * Returns whether any warnings are active.
2675
+ */
2676
+ protected get hasWarning(): boolean;
2677
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputCheckboxComponent, never>;
2678
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputCheckboxComponent, "frg-input-checkbox", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "warningMessages": { "alias": "warningMessages"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, {}, never, never, true, never>;
2679
+ }
2680
+
2681
+ interface InputCheckboxGroupItem<T> {
2682
+ id: string;
2683
+ label: string;
2684
+ value: T;
2685
+ disabled?: boolean;
2686
+ }
2687
+ declare class InputCheckboxGroupComponent<T> extends InputBase<Array<T>> {
2688
+ /**
2689
+ * @inheritdoc
2690
+ */
2691
+ label: string;
2692
+ /**
2693
+ * @inheritdoc
2694
+ */
2695
+ required: boolean;
2696
+ /**
2697
+ * @inheritdoc
2698
+ */
2699
+ disabled: boolean;
2700
+ /**
2701
+ * @inheritdoc
2702
+ */
2703
+ errorMessages: Record<string, string>;
2704
+ /**
2705
+ * @inheritdoc
2706
+ */
2707
+ warningMessages: Record<string, string>;
2708
+ /**
2709
+ * @inheritdoc
2710
+ */
2711
+ showValidation: boolean;
2712
+ /**
2713
+ * Sets the visual style of the checkbox group.
2714
+ */
2715
+ styleType: InputChoiceStyleType;
2716
+ items: Array<InputCheckboxGroupItem<T>>;
2717
+ compareWith: (a: T, b: T) => boolean;
2718
+ /**
2719
+ * Toggles a checkbox item value.
2720
+ */
2721
+ toggleItem(item: InputCheckboxGroupItem<T>, event: Event): void;
2722
+ /**
2723
+ * Checks if the item is selected.
2724
+ */
2725
+ isSelected(item: InputCheckboxGroupItem<T>): boolean;
2726
+ /**
2727
+ * @inheritdoc
2728
+ */
2729
+ onBlur(): void;
2730
+ /**
2731
+ * @inheritdoc
2732
+ */
2733
+ protected updateView(_value: Array<T> | null): void;
2734
+ /**
2735
+ * @inheritdoc
2736
+ */
2737
+ protected updateDisabledState(_isDisabled: boolean): void;
2738
+ /**
2739
+ * @inheritdoc
2740
+ */
2741
+ protected get errorList(): string[];
2742
+ /**
2743
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
2744
+ * Falls back to DEFAULT_INPUT_CHECKBOX_GROUP_WARNINGS_MESSAGES or a generic message.
2745
+ */
2746
+ protected get warningList(): string[];
2747
+ /**
2748
+ * Returns whether any warnings are active.
2749
+ */
2750
+ protected get hasWarning(): boolean;
2751
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputCheckboxGroupComponent<any>, never>;
2752
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputCheckboxGroupComponent<any>, "frg-input-checkbox-group", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "warningMessages": { "alias": "warningMessages"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "items": { "alias": "items"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; }, {}, never, never, true, never>;
2753
+ }
2754
+
2755
+ interface InputRadioGroupItem<T> {
2756
+ id: string;
2757
+ label: string;
2758
+ value: T;
2759
+ disabled?: boolean;
2760
+ }
2761
+ declare class InputRadioGroupComponent<T> extends InputBase<T> {
2762
+ /**
2763
+ * @inheritdoc
2764
+ */
2765
+ label: string;
2766
+ /**
2767
+ * @inheritdoc
2768
+ */
2769
+ required: boolean;
2770
+ /**
2771
+ * @inheritdoc
2772
+ */
2773
+ disabled: boolean;
2774
+ /**
2775
+ * @inheritdoc
2776
+ */
2777
+ errorMessages: Record<string, string>;
2778
+ /**
2779
+ * @inheritdoc
2780
+ */
2781
+ warningMessages: Record<string, string>;
2782
+ /**
2783
+ * @inheritdoc
2784
+ */
2785
+ showValidation: boolean;
2786
+ /**
2787
+ * Sets the visual style of the radio group.
2788
+ */
2789
+ styleType: InputChoiceStyleType;
2790
+ items: Array<InputRadioGroupItem<T>>;
2791
+ compareWith: (a: T, b: T) => boolean;
2792
+ /**
2793
+ * Selects a radio item value.
2794
+ */
2795
+ selectItem(item: InputRadioGroupItem<T>, event: Event): void;
2796
+ /**
2797
+ * Checks if the item is selected.
2798
+ */
2799
+ isSelected(item: InputRadioGroupItem<T>): boolean;
2800
+ /**
2801
+ * @inheritdoc
2802
+ */
2803
+ onBlur(): void;
2804
+ /**
2805
+ * @inheritdoc
2806
+ */
2807
+ protected updateView(_value: T | null): void;
2808
+ /**
2809
+ * @inheritdoc
2810
+ */
2811
+ protected updateDisabledState(_isDisabled: boolean): void;
2812
+ /**
2813
+ * @inheritdoc
2814
+ */
2815
+ protected get errorList(): string[];
2816
+ /**
2817
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
2818
+ * Falls back to DEFAULT_INPUT_RADIO_GROUP_WARNINGS_MESSAGES or a generic message.
2819
+ */
2820
+ protected get warningList(): string[];
2821
+ /**
2822
+ * Returns whether any warnings are active.
2823
+ */
2824
+ protected get hasWarning(): boolean;
2825
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputRadioGroupComponent<any>, never>;
2826
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputRadioGroupComponent<any>, "frg-input-radio-group", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "warningMessages": { "alias": "warningMessages"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "items": { "alias": "items"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; }, {}, never, never, true, never>;
2827
+ }
2828
+
2829
+ type InputSliderValue = number | [number, number];
2830
+ type SliderHandle = 'single' | 'min' | 'max';
2831
+ declare class InputSliderComponent extends InputBase<InputSliderValue> implements OnInit {
2832
+ /**
2833
+ * @inheritdoc
2834
+ */
2835
+ label: string;
2836
+ /**
2837
+ * @inheritdoc
2838
+ */
2839
+ required: boolean;
2840
+ /**
2841
+ * @inheritdoc
2842
+ */
2843
+ showValidation: boolean;
2844
+ /**
2845
+ * @inheritdoc
2846
+ */
2847
+ errorMessages: Record<string, string>;
2848
+ /**
2849
+ * @inheritdoc
2850
+ */
2851
+ warningMessages: Record<string, string>;
2852
+ /**
2853
+ * Minimum slider value.
2854
+ */
2855
+ min: number;
2856
+ /**
2857
+ * Maximum slider value.
2858
+ */
2859
+ max: number;
2860
+ /**
2861
+ * Step interval for the slider.
2862
+ */
2863
+ step: number;
2864
+ /**
2865
+ * Enable dual-handle range mode.
2866
+ */
2867
+ range: boolean;
2868
+ /**
2869
+ * Show tick marks along the track.
2870
+ */
2871
+ showTicks: boolean;
2872
+ /**
2873
+ * Optional tick interval (defaults to step).
2874
+ */
2875
+ tickStep: number | null;
2876
+ /**
2877
+ * Maximum number of ticks to render.
2878
+ */
2879
+ maxTicks: number;
2880
+ /**
2881
+ * Show tooltip on hover/drag.
2882
+ */
2883
+ showTooltip: boolean;
2884
+ /**
2885
+ * Show numeric value(s) above the slider.
2886
+ */
2887
+ showValue: boolean;
2888
+ /**
2889
+ * Slider size.
2890
+ */
2891
+ size: InputSliderSize;
2892
+ /**
2893
+ * Slider color style.
2894
+ */
2895
+ styleType: InputChoiceStyleType;
2896
+ private track;
2897
+ private currentValue;
2898
+ private currentRange;
2899
+ private dragging;
2900
+ private activeHandle;
2901
+ private activePointerId;
2902
+ /** Internal store for warnings */
2903
+ private warnings;
2904
+ ngOnInit(): void;
2905
+ protected updateView(_value: InputSliderValue | null): void;
2906
+ protected updateDisabledState(_isDisabled: boolean): void;
2907
+ protected get errorList(): string[];
2908
+ protected get warningList(): string[];
2909
+ protected get hasWarning(): boolean;
2910
+ protected get displayValue(): string;
2911
+ protected get displayRangeMin(): string;
2912
+ protected get displayRangeMax(): string;
2913
+ protected get rangeMinValue(): number;
2914
+ protected get rangeMaxValue(): number;
2915
+ protected get singleValue(): number;
2916
+ protected get minPercent(): number;
2917
+ protected get maxPercent(): number;
2918
+ protected get singlePercent(): number;
2919
+ protected get rangeWidth(): number;
2920
+ protected get showRange(): boolean;
2921
+ protected get ticks(): number[];
2922
+ protected get sliderClasses(): Record<string, boolean>;
2923
+ protected isHandleActive(handle: SliderHandle): boolean;
2924
+ protected onTrackPointerDown(event: PointerEvent): void;
2925
+ protected onHandlePointerDown(event: PointerEvent, handle: SliderHandle): void;
2926
+ protected onHandleKeydown(event: KeyboardEvent, handle: SliderHandle): void;
2927
+ protected onDocumentPointerMove(event: PointerEvent): void;
2928
+ protected onDocumentPointerUp(event: PointerEvent): void;
2929
+ private syncFromValue;
2930
+ private normalizeSingleValue;
2931
+ private normalizeRangeValue;
2932
+ private setSingleValue;
2933
+ private setRangeValue;
2934
+ private startDragging;
2935
+ private valueFromPointer;
2936
+ protected valueToPercent(value: number): number;
2937
+ private snapValue;
2938
+ private roundToPrecision;
2939
+ private formatValue;
2940
+ private get safeStep();
2941
+ private get stepPrecision();
2942
+ private getHandleValue;
2943
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputSliderComponent, never>;
2944
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSliderComponent, "frg-input-slider", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "warningMessages": { "alias": "warningMessages"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "range": { "alias": "range"; "required": false; }; "showTicks": { "alias": "showTicks"; "required": false; }; "tickStep": { "alias": "tickStep"; "required": false; }; "maxTicks": { "alias": "maxTicks"; "required": false; }; "showTooltip": { "alias": "showTooltip"; "required": false; }; "showValue": { "alias": "showValue"; "required": false; }; "size": { "alias": "size"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, {}, never, never, true, never>;
2945
+ }
2946
+
2947
+ type InputFileUploadValue = File | File[] | null;
2948
+ declare class InputFileUploadComponent extends InputBase<InputFileUploadValue> implements OnInit {
2949
+ /**
2950
+ * @inheritdoc
2951
+ */
2952
+ label: string;
2953
+ /**
2954
+ * @inheritdoc
2955
+ */
2956
+ required: boolean;
2957
+ /**
2958
+ * @inheritdoc
2959
+ */
2960
+ showValidation: boolean;
2961
+ /**
2962
+ * @inheritdoc
2963
+ */
2964
+ errorMessages: Record<string, string>;
2965
+ /**
2966
+ * Accepted file types (e.g. ".pdf,.png" or "image/*").
2967
+ */
2968
+ accept: string;
2969
+ /**
2970
+ * Allow multiple file selection.
2971
+ */
2972
+ multiple: boolean;
2973
+ /**
2974
+ * Maximum number of files allowed.
2975
+ */
2976
+ maxFiles: number | null;
2977
+ /**
2978
+ * Maximum size per file in bytes.
2979
+ */
2980
+ maxFileSize: number | null;
2981
+ /**
2982
+ * Maximum total size in bytes.
2983
+ */
2984
+ maxTotalSize: number | null;
2985
+ /**
2986
+ * Button label for opening the file dialog.
2987
+ */
2988
+ buttonLabel: string;
2989
+ /**
2990
+ * Placeholder text when no file is selected.
2991
+ */
2992
+ noFileText: string;
2993
+ /**
2994
+ * Show a clear button when files are selected.
2995
+ */
2996
+ showClearButton: boolean;
2997
+ /**
2998
+ * Show individual file list.
2999
+ */
3000
+ showFileList: boolean;
3001
+ /**
3002
+ * Show file size in the list.
3003
+ */
3004
+ showFileSize: boolean;
3005
+ private readonly fileInput;
3006
+ files: File[];
3007
+ isDragOver: boolean;
3008
+ private readonly ownedErrors;
3009
+ ngOnInit(): void;
3010
+ protected updateView(value: InputFileUploadValue | null): void;
3011
+ protected updateDisabledState(_isDisabled: boolean): void;
3012
+ protected get errorList(): string[];
3013
+ protected get warningList(): string[];
3014
+ get fileSummary(): string;
3015
+ get hasFiles(): boolean;
3016
+ triggerFileDialog(): void;
3017
+ onFileChange(event: Event): void;
3018
+ onDragOver(event: DragEvent): void;
3019
+ onDragLeave(event: DragEvent): void;
3020
+ onDrop(event: DragEvent): void;
3021
+ onBlur(_event: FocusEvent): void;
3022
+ clearFiles(): void;
3023
+ removeFile(index: number): void;
3024
+ trackFile(_index: number, file: File): string;
3025
+ formatBytes(bytes: number): string;
3026
+ private syncFromValue;
3027
+ private resetNativeInput;
3028
+ private handleSelectedFiles;
3029
+ private updateErrors;
3030
+ private validateFiles;
3031
+ private mergeErrors;
3032
+ private totalSize;
3033
+ private isAccepted;
3034
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputFileUploadComponent, never>;
3035
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputFileUploadComponent, "frg-input-file-upload", never, { "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showValidation": { "alias": "showValidation"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "maxFiles": { "alias": "maxFiles"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "maxTotalSize": { "alias": "maxTotalSize"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "noFileText": { "alias": "noFileText"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "showFileList": { "alias": "showFileList"; "required": false; }; "showFileSize": { "alias": "showFileSize"; "required": false; }; }, {}, never, never, true, never>;
3036
+ }
3037
+
3038
+ type TBaseLoaderStyle = 'primary' | 'secondary' | 'tertiary' | 'dark' | 'light';
3039
+
3040
+ type TSpinnerSize = TBaseSize | 'extra-small' | 'extra-large';
3041
+ type TSpinnerType = TBaseLoaderStyle;
3042
+
3043
+ declare class SpinnerComponent implements OnChanges, OnDestroy {
3044
+ size: TSpinnerSize;
3045
+ isCentered: boolean;
3046
+ isOverlay: boolean;
3047
+ isOverlayItem: boolean;
3048
+ label: string;
3049
+ styleType: TSpinnerType;
3050
+ ngOnChanges(changes: SimpleChanges): void;
3051
+ ngOnDestroy(): void;
3052
+ private toggleBodyScroll;
3053
+ static ɵfac: i0.ɵɵFactoryDeclaration<SpinnerComponent, never>;
3054
+ static ɵcmp: i0.ɵɵComponentDeclaration<SpinnerComponent, "frg-spinner", never, { "size": { "alias": "size"; "required": false; }; "isCentered": { "alias": "isCentered"; "required": false; }; "isOverlay": { "alias": "isOverlay"; "required": false; }; "isOverlayItem": { "alias": "isOverlayItem"; "required": false; }; "label": { "alias": "label"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; }, {}, never, never, true, never>;
3055
+ }
3056
+
3057
+ type TProgressBarSize = TBaseSize;
3058
+ type TProgressBarType = TBaseLoaderStyle;
3059
+ type TProgressBarAnimation = 'fill' | 'slide' | 'pulse' | 'rotate';
3060
+
3061
+ declare class ProgressBarComponent implements OnChanges {
3062
+ progress: number;
3063
+ styleType: TProgressBarType;
3064
+ size: TProgressBarSize;
3065
+ showPercentage: boolean;
3066
+ segments: number;
3067
+ animation: TProgressBarAnimation;
3068
+ protected safeProgress: number;
3069
+ segmentsList: Array<number>;
3070
+ filledSegments: number;
3071
+ ngOnChanges(): void;
3072
+ static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
3073
+ static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "frg-progress-bar", never, { "progress": { "alias": "progress"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showPercentage": { "alias": "showPercentage"; "required": false; }; "segments": { "alias": "segments"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; }, {}, never, never, true, never>;
3074
+ }
3075
+
3076
+ type TPulseLoaderSize = TBaseSize;
3077
+ type TPulseLoaderType = TBaseLoaderStyle;
3078
+
3079
+ /**
3080
+ * Component representing a pulse loader with customizable size, style, and progress display.
3081
+ * Usage example:
3082
+ * ```html
3083
+ * <frg-pulse-loader [progress]="progressValue" [styleType]="'primary'" [size]="'medium'" [showPercentage]="true"></frg-pulse-loader>
3084
+ * ```
3085
+ */
3086
+ declare class PulseLoaderComponent implements OnChanges, OnDestroy {
3087
+ /**
3088
+ * ARIA label for accessibility purposes.
3089
+ * Default is 'Loading...'.
3090
+ */
3091
+ ariaLabel: string;
3092
+ isOverlay: boolean;
3093
+ isOverlayItem: boolean;
3094
+ /**
3095
+ * The current progress value (0-100) to be displayed by the loader.
3096
+ */
3097
+ progress: number;
3098
+ /**
3099
+ * The style type of the loader, affecting its color scheme.
3100
+ * Options: 'primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'info', 'light', 'dark'
3101
+ */
3102
+ styleType: TPulseLoaderType;
3103
+ /**
3104
+ * The size of the loader.
3105
+ * Options: 'small', 'medium', 'large'
3106
+ */
3107
+ size: TPulseLoaderSize;
3108
+ /**
3109
+ * Whether to display the percentage text inside the loader.
3110
+ * Default is false.
3111
+ */
3112
+ showPercentage: boolean;
3113
+ /**
3114
+ * Gets the CSS classes for the loader based on its size and style type.
3115
+ */
3116
+ get classes(): {
3117
+ [x: string]: boolean;
3118
+ 'frg-pulse-loader': boolean;
3119
+ 'frg-pulse-loader--overlay': boolean;
3120
+ 'frg-pulse-loader--overlay-item': boolean;
3121
+ };
3122
+ ngOnChanges(changes: SimpleChanges): void;
3123
+ ngOnDestroy(): void;
3124
+ private toggleBodyScroll;
3125
+ static ɵfac: i0.ɵɵFactoryDeclaration<PulseLoaderComponent, never>;
3126
+ static ɵcmp: i0.ɵɵComponentDeclaration<PulseLoaderComponent, "frg-pulse-loader", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "isOverlay": { "alias": "isOverlay"; "required": false; }; "isOverlayItem": { "alias": "isOverlayItem"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "size": { "alias": "size"; "required": false; }; "showPercentage": { "alias": "showPercentage"; "required": false; }; }, {}, never, never, true, never>;
3127
+ }
3128
+
3129
+ type TSkeletonLoaderSize = TBaseSize | 'full';
3130
+ type TSkeletonLoaderType = TBaseLoaderStyle | 'default';
3131
+
3132
+ declare class SkeletonLoaderComponent {
3133
+ /** Enables shimmer animation */
3134
+ animated: boolean;
3135
+ /** Rectangle height for a single row */
3136
+ height?: string;
3137
+ /** Number of skeleton rows (for multi-line placeholders) */
3138
+ rows: number;
3139
+ /** Shape of the skeleton: rectangle or circle */
3140
+ shape: 'rect' | 'circle';
3141
+ /** Circle size (sets both width & height) */
3142
+ size?: string;
3143
+ /** Style type (color scheme) */
3144
+ styleType: TSkeletonLoaderType;
3145
+ /** Rectangle width (ignored for circle unless explicitly given) */
3146
+ width?: string;
3147
+ get hostClasses(): string;
3148
+ get rowArray(): unknown[];
3149
+ get isMultiRow(): boolean;
3150
+ get isCircle(): boolean;
3151
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkeletonLoaderComponent, never>;
3152
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkeletonLoaderComponent, "frg-skeleton-loader", never, { "animated": { "alias": "animated"; "required": false; }; "height": { "alias": "height"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "size": { "alias": "size"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, true, never>;
3153
+ }
3154
+
3155
+ declare class ContentBlurComponent implements OnChanges {
3156
+ progress: number;
3157
+ safeProgress: number;
3158
+ ngOnChanges(): void;
3159
+ get blurPx(): number;
3160
+ get blurOpacity(): number;
3161
+ get showProgress(): boolean;
3162
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContentBlurComponent, never>;
3163
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContentBlurComponent, "frg-content-blur", never, { "progress": { "alias": "progress"; "required": false; }; }, {}, never, ["*"], true, never>;
3164
+ }
3165
+
3166
+ type SelectionListPosition = 'top' | 'down';
3167
+
3168
+ /**
3169
+ * Base class for input components, providing common functionality for form controls.
3170
+ * This class implements ControlValueAccessor to integrate with Angular forms.
3171
+ * Subclasses must implement the abstract methods to update the view and disabled state.
3172
+ * It also provides properties for label, placeholder, required state, and error handling.
3173
+ * The errorMessages property can be customized to provide specific validation messages.
3174
+ * The hasError getter can be used in templates to conditionally display error messages.
3175
+ * Subclasses should call super.ngOnInit() if they override ngOnInit().
3176
+ *
3177
+ * @see ControlValueAccessor
3178
+ */
3179
+ declare abstract class SelectionListBase<T> extends InputBase<T> implements ControlValueAccessor, OnInit {
3180
+ /**
3181
+ * Direction of selection list when it opens.
3182
+ */
3183
+ protected openDirection: SelectionListPosition;
3184
+ /**
3185
+ * Clear the value of input
3186
+ */
3187
+ protected abstract clearValue(event: Event): void;
3188
+ /**
3189
+ * Handles selection change event.
3190
+ * Subclasses can override to provide custom behavior.
3191
+ * Default implementation does nothing.
3192
+ */
3193
+ protected onSelectionChange(_: Event): void;
3194
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectionListBase<any>, never>;
3195
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectionListBase<any>, never, never, {}, {}, never, never, true, never>;
3196
+ }
3197
+
3198
+ interface SelectionListItem<T> {
3199
+ id: string;
3200
+ label: string;
3201
+ value: T | null;
3202
+ selected: boolean;
3203
+ disabled?: boolean;
3204
+ }
3205
+
3206
+ declare class SelectionListComponent<T> extends SelectionListBase<T> {
3207
+ private readonly elementRef;
3208
+ items: Array<SelectionListItem<T>>;
3209
+ optionTemplate?: TemplateRef<unknown>;
3210
+ hasSearch: boolean;
3211
+ optionButtons: QueryList<ElementRef<HTMLButtonElement>>;
3212
+ searchInput?: ElementRef<HTMLInputElement>;
3213
+ protected isOpen: boolean;
3214
+ protected searchTerm: string;
3215
+ protected selectedId: string;
3216
+ private focusedIndex;
3217
+ closeDropdown(event: MouseEvent): void;
3218
+ get filteredItems(): Array<SelectionListItem<T>>;
3219
+ get selectedItem(): SelectionListItem<T> | null;
3220
+ protected get errorList(): string[];
3221
+ /**
3222
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
3223
+ * Falls back to DEFAULT_INPUT_SELECTION_LIST_WARNINGS_MESSAGES or a generic message.
3224
+ */
3225
+ protected get warningList(): string[];
3226
+ /**
3227
+ * Returns whether any warnings are active.
3228
+ */
3229
+ protected get hasWarning(): boolean;
3230
+ toggleDropdown(event: Event): void;
3231
+ selectItem(item: SelectionListItem<T>, event: Event): void;
3232
+ protected clearValue(event: MouseEvent): void;
3233
+ protected onKeyDown(event: KeyboardEvent): void;
3234
+ protected onOptionKeyDown(event: KeyboardEvent, item: SelectionListItem<T>, index: number): void;
3235
+ protected onBlur(event: FocusEvent): void;
3236
+ protected onFocus(): void;
3237
+ protected onSearch(event: Event): void;
3238
+ protected onSearchKeyDown(event: KeyboardEvent): void;
3239
+ protected updateDisabledState(_isDisabled: boolean): void;
3240
+ protected updateView(_value: T | null): void;
3241
+ private focusFirstItem;
3242
+ private focusNextItem;
3243
+ private focusPreviousItem;
3244
+ private getEnabledButtons;
3245
+ private setDropdownDirection;
3246
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectionListComponent<any>, never>;
3247
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectionListComponent<any>, "frg-selection-list", never, { "items": { "alias": "items"; "required": false; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; }; "hasSearch": { "alias": "hasSearch"; "required": false; }; }, {}, never, never, true, never>;
3248
+ }
3249
+
3250
+ /**
3251
+ * TBaseStatusStyle
3252
+ *
3253
+ * Represents the allowed visual styles for status-based UI components.
3254
+ * Typically maps to the design system color palette for components like
3255
+ * tags, badges, or chips.
3256
+ *
3257
+ * Available options:
3258
+ * - 'primary'
3259
+ * - 'secondary'
3260
+ * - 'tertiary'
3261
+ * - 'info'
3262
+ * - 'success'
3263
+ * - 'warning'
3264
+ * - 'danger'
3265
+ * - 'dark'
3266
+ * - 'light'
3267
+ */
3268
+ type TBaseStatusStyle = 'primary' | 'secondary' | 'tertiary' | 'info' | 'warning' | 'danger' | 'success' | 'dark' | 'light';
3269
+ /**
3270
+ * TBaseStatusSize
3271
+ *
3272
+ * Represents the allowed sizes for status-based UI components.
3273
+ * Used to adjust the dimensions and spacing of elements like tags, badges,
3274
+ * or chips.
3275
+ *
3276
+ * Available options:
3277
+ * - 'sm' (small)
3278
+ * - 'md' (medium, default)
3279
+ * - 'lg' (large)
3280
+ */
3281
+ type TBaseStatusSize = 'sm' | 'md' | 'lg';
3282
+ /**
3283
+ * TBaseStatusIconPosition
3284
+ *
3285
+ * Represents the allowed positions for an icon inside a status-based UI component
3286
+ * such as a tag, badge, or chip.
3287
+ *
3288
+ * Determines whether the icon appears before (start) or after (end) the label.
3289
+ *
3290
+ * Available options:
3291
+ * - 'start' (default) — icon appears before the label
3292
+ * - 'end' — icon appears after the label
3293
+ */
3294
+ type TBaseStatusIconPosition = 'start' | 'end';
3295
+
3296
+ /**
3297
+ * StatusIndicator
3298
+ *
3299
+ * Base interface for all UI components that represent a status or state.
3300
+ * Provides standardized properties for label, visual style, size, icon, and
3301
+ * interaction state. This interface is intended to be extended by components
3302
+ * such as Tag, Badge, Chip, etc.
3303
+ */
3304
+ interface StatusIndicator {
3305
+ /**
3306
+ * Unique identifier for the status element.
3307
+ * Used for tracking, removal, or other programmatic operations.
3308
+ */
3309
+ id: string;
3310
+ /**
3311
+ * Text label displayed within the UI element.
3312
+ */
3313
+ label?: string;
3314
+ /**
3315
+ * Visual style of the element.
3316
+ * Corresponds to the design system status colors.
3317
+ * Example: 'primary', 'secondary', 'success', 'warning', etc.
3318
+ *
3319
+ * @see TBaseStatusStyle
3320
+ */
3321
+ style: TBaseStatusStyle;
3322
+ /**
3323
+ * Optional size of the element.
3324
+ * Should conform to design-system sizing tokens.
3325
+ * Example: 'sm', 'md', 'lg'.
3326
+ *
3327
+ * @see TBaseStatusSize
3328
+ */
3329
+ size?: TBaseStatusSize;
3330
+ /**
3331
+ * Optional icon class displayed before the label.
3332
+ * Example: 'frg-icon-info', 'frg-icon-alert'.
3333
+ */
3334
+ icon?: string;
3335
+ /**
3336
+ * Determines the position of the icon relative to the label in a status-based component
3337
+ * such as a tag, badge, or chip.
3338
+ *
3339
+ * Available options:
3340
+ * - 'start' — icon appears before the label (default)
3341
+ * - 'end' — icon appears after the label
3342
+ *
3343
+ * @see TBaseStatusIconPosition
3344
+ */
3345
+ iconPosition?: TBaseStatusIconPosition;
3346
+ /**
3347
+ * If true, the element is disabled and user interactions are blocked.
3348
+ */
3349
+ disabled?: boolean;
3350
+ }
3351
+
3352
+ /**
3353
+ * ChipType
3354
+ *
3355
+ * Alias for `TBaseStatusStyle`.
3356
+ * Represents the visual style of a chip according to the design system.
3357
+ * Example: 'primary', 'secondary', 'success', etc.
3358
+ */
3359
+ type TChipType = TBaseStatusStyle;
3360
+ /**
3361
+ * ChipSize
3362
+ *
3363
+ * Alias for `TBaseStatusSize`.
3364
+ * Defines the size of the chip. Options: 'sm', 'md', 'lg'.
3365
+ */
3366
+ type TChipSize = TBaseStatusSize;
3367
+ /**
3368
+ * ChipIconPosition
3369
+ *
3370
+ * Alias for `TBaseStatusIconPosition`.
3371
+ * Defines the icon position of the icon in the chip. Options: 'start' or 'end'.
3372
+ */
3373
+ type TChipIconPosition = TBaseStatusIconPosition;
3374
+ /**
3375
+ * chip
3376
+ *
3377
+ * A UI element that extends the shared `StatusIndicator` interface.
3378
+ * Represents a labeled status, optionally removable.
3379
+ *
3380
+ * @extends StatusIndicator
3381
+ */
3382
+ interface Chip extends StatusIndicator {
3383
+ /**
3384
+ * If true, the tag can be removed by the user.
3385
+ * Triggers the `removed` event in the component.
3386
+ */
3387
+ removable?: boolean;
3388
+ }
3389
+
3390
+ declare class MultiSelectComponent<T> extends SelectionListBase<Array<T>> {
3391
+ private readonly elementRef;
3392
+ items: Array<SelectionListItem<T>>;
3393
+ hasSearch: boolean;
3394
+ optionTemplate?: TemplateRef<unknown>;
3395
+ valuesTemplate?: TemplateRef<unknown>;
3396
+ showChips: boolean;
3397
+ chipsStyle: TChipType;
3398
+ optionButtons: QueryList<ElementRef<HTMLButtonElement>>;
3399
+ searchInput?: ElementRef<HTMLInputElement>;
3400
+ protected isOpen: boolean;
3401
+ protected searchTerm: string;
3402
+ protected selectedIds: Array<string>;
3403
+ private focusedIndex;
3404
+ closeDropdown(event: MouseEvent): void;
3405
+ get filteredItems(): Array<SelectionListItem<T>>;
3406
+ get selectedLabels(): string;
3407
+ get selectedItems(): Array<SelectionListItem<T>>;
3408
+ protected get errorList(): string[];
3409
+ toggleDropdown(event: Event): void;
3410
+ selectItem(item: SelectionListItem<T>, event: Event): void;
3411
+ protected removeItem(item: SelectionListItem<T>, event: MouseEvent): void;
3412
+ protected removeItemById(id: string): void;
3413
+ protected clearValue(event: MouseEvent): void;
3414
+ protected onKeyDown(event: KeyboardEvent): void;
3415
+ protected onOptionKeyDown(event: KeyboardEvent, item: SelectionListItem<T>, index: number): void;
3416
+ protected onBlur(event: FocusEvent): void;
3417
+ protected onFocus(): void;
3418
+ protected onSearch(event: Event): void;
3419
+ protected onSearchKeyDown(event: KeyboardEvent): void;
3420
+ protected updateDisabledState(_isDisabled: boolean): void;
3421
+ protected updateSelection(item: SelectionListItem<T>, isAlreadySelected: boolean): void;
3422
+ protected updateView(_value: Array<T> | null): void;
3423
+ private focusFirstItem;
3424
+ private focusNextItem;
3425
+ private focusPreviousItem;
3426
+ private getEnabledButtons;
3427
+ private setDropdownDirection;
3428
+ /**
3429
+ * Returns warning messages. Consumers may pass arbitrary warnings via `warningMessages`.
3430
+ * Falls back to DEFAULT_INPUT_MULTI_SELECT_WARNINGS_MESSAGES or a generic message.
3431
+ */
3432
+ protected get warningList(): string[];
3433
+ /**
3434
+ * Returns whether any warnings are active.
3435
+ */
3436
+ protected get hasWarning(): boolean;
3437
+ static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent<any>, never>;
3438
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent<any>, "frg-multi-select", never, { "items": { "alias": "items"; "required": false; }; "hasSearch": { "alias": "hasSearch"; "required": false; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; }; "valuesTemplate": { "alias": "valuesTemplate"; "required": false; }; "showChips": { "alias": "showChips"; "required": false; }; "chipsStyle": { "alias": "chipsStyle"; "required": false; }; }, {}, never, never, true, never>;
3439
+ }
3440
+
3441
+ /**
3442
+ * TagType
3443
+ *
3444
+ * Alias for `TBaseStatusStyle`.
3445
+ * Represents the visual style of a tag according to the design system.
3446
+ * Example: 'primary', 'secondary', 'success', etc.
3447
+ */
3448
+ type TTagType = TBaseStatusStyle;
3449
+ /**
3450
+ * TagSize
3451
+ *
3452
+ * Alias for `TBaseStatusSize`.
3453
+ * Defines the size of the tag. Options: 'sm', 'md', 'lg'.
3454
+ */
3455
+ type TTagSize = TBaseStatusSize;
3456
+ /**
3457
+ * TagIconPosition
3458
+ *
3459
+ * Alias for `TBaseStatusIconPosition`.
3460
+ * Defines the icon position of the icon in the tag. Options: 'start' or 'end'.
3461
+ */
3462
+ type TTagIconPosition = TBaseStatusIconPosition;
3463
+ /**
3464
+ * Tag
3465
+ *
3466
+ * A UI element that extends the shared `StatusIndicator` interface.
3467
+ * Represents a labeled status, optionally removable.
3468
+ *
3469
+ * @extends StatusIndicator
3470
+ */
3471
+ interface Tag extends StatusIndicator {
3472
+ /**
3473
+ * If true, the tag can be removed by the user.
3474
+ * Triggers the `removed` event in the component.
3475
+ */
3476
+ removable?: boolean;
3477
+ }
3478
+
3479
+ /**
3480
+ * TagComponent
3481
+ *
3482
+ * A small UI element used to display labeled statuses, metadata, or categories.
3483
+ * Supports icons, removable behavior, disabled state, and standardized design-
3484
+ * system styles and sizes. Implements the shared `Tag` interface to ensure
3485
+ * consistency across all status-driven UI components (Tag, Badge, Chip, etc.).
3486
+ */
3487
+ declare class TagComponent implements Tag {
3488
+ /**
3489
+ * Unique identifier for the tag.
3490
+ * Automatically generated if not provided by the parent.
3491
+ * Used primarily for tracking and removal events.
3492
+ */
3493
+ id: string;
3494
+ /**
3495
+ * Text content displayed inside the tag.
3496
+ */
3497
+ label?: string;
3498
+ /**
3499
+ * Visual style of the tag.
3500
+ * Corresponds to design-system status color tokens.
3501
+ * Example: 'primary', 'secondary', 'success', 'warning', etc.
3502
+ */
3503
+ style: TTagType;
3504
+ /**
3505
+ * Size variant of the tag.
3506
+ * Options follow the standardized sizing tokens: 'sm', 'md', or 'lg'.
3507
+ */
3508
+ size: TTagSize;
3509
+ /**
3510
+ * Optional icon class displayed before the label.
3511
+ * Example: 'frg-icon-info', 'frg-icon-alert'.
3512
+ */
3513
+ icon: string | undefined;
3514
+ /**
3515
+ * Position of the icon
3516
+ */
3517
+ iconPosition: TTagIconPosition;
3518
+ /**
3519
+ * Whether the tag is disabled.
3520
+ * Disables interactions and applies the disabled visual style.
3521
+ */
3522
+ disabled: boolean;
3523
+ /**
3524
+ * If true, displays a remove button allowing the tag to be dismissed.
3525
+ */
3526
+ removable: boolean;
3527
+ /**
3528
+ * Emits the ID of the tag when it is removed.
3529
+ */
3530
+ removed: EventEmitter<string>;
3531
+ /**
3532
+ * Emits the `removed` event when the remove button is clicked,
3533
+ * provided the tag is not disabled and removal is allowed.
3534
+ */
3535
+ onRemove(): void;
3536
+ static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
3537
+ static ɵcmp: i0.ɵɵComponentDeclaration<TagComponent, "frg-tag", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "style": { "alias": "style"; "required": false; }; "size": { "alias": "size"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; }, { "removed": "removed"; }, never, never, true, never>;
3538
+ }
3539
+
3540
+ /**
3541
+ * TagComponent
3542
+ *
3543
+ * A small UI element used to display labeled statuses, metadata, or categories.
3544
+ * Supports icons, removable behavior, disabled state, and standardized design-
3545
+ * system styles and sizes. Implements the shared `Tag` interface to ensure
3546
+ * consistency across all status-driven UI components (Tag, Badge, Chip, etc.).
3547
+ */
3548
+ declare class ChipComponent implements Chip {
3549
+ /**
3550
+ * Unique identifier for the chip.
3551
+ * Automatically generated if not provided by the parent.
3552
+ * Used primarily for tracking and removal events.
3553
+ */
3554
+ id: string;
3555
+ /**
3556
+ * Text content displayed inside the chip.
3557
+ */
3558
+ label?: string;
3559
+ /**
3560
+ * Visual style of the chip.
3561
+ * Corresponds to design-system status color tokens.
3562
+ * Example: 'primary', 'secondary', 'success', 'warning', etc.
3563
+ */
3564
+ style: TChipType;
3565
+ /**
3566
+ * Size variant of the chip.
3567
+ * Options follow the standardized sizing tokens: 'sm', 'md', or 'lg'.
3568
+ */
3569
+ size: TChipSize;
3570
+ /**
3571
+ * Optional icon class displayed before the label.
3572
+ * Example: 'frg-icon-info', 'frg-icon-alert'.
3573
+ */
3574
+ icon: string | undefined;
3575
+ /**
3576
+ * Position of the icon
3577
+ */
3578
+ iconPosition: TChipIconPosition;
3579
+ /**
3580
+ * Whether the chip is disabled.
3581
+ * Disables interactions and applies the disabled visual style.
3582
+ */
3583
+ disabled: boolean;
3584
+ /**
3585
+ * If true, displays a remove button allowing the chip to be dismissed.
3586
+ */
3587
+ removable: boolean;
3588
+ /**
3589
+ * Emits the ID of the chip when it is removed.
3590
+ */
3591
+ removed: EventEmitter<string>;
3592
+ /**
3593
+ * Emits the `removed` event when the remove button is clicked,
3594
+ * provided the chip is not disabled and removal is allowed.
3595
+ */
3596
+ onRemove(): void;
3597
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChipComponent, never>;
3598
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChipComponent, "frg-chip", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "style": { "alias": "style"; "required": false; }; "size": { "alias": "size"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; }, { "removed": "removed"; }, never, never, true, never>;
3599
+ }
3600
+
3601
+ /**
3602
+ * TagType
3603
+ *
3604
+ * Alias for `TBaseStatusStyle`.
3605
+ * Represents the visual style of a tag according to the design system.
3606
+ * Example: 'primary', 'secondary', 'success', etc.
3607
+ */
3608
+ type TPillType = TBaseStatusStyle;
3609
+ /**
3610
+ * PillSize
3611
+ *
3612
+ * Alias for `TBaseStatusSize`.
3613
+ * Defines the size of the pill. Options: 'sm', 'md', 'lg'.
3614
+ */
3615
+ type TPillSize = TBaseStatusSize;
3616
+ /**
3617
+ * PillIconPosition
3618
+ *
3619
+ * Alias for `TBaseStatusIconPosition`.
3620
+ * Defines the icon position of the icon in the pill. Options: 'start' or 'end'.
3621
+ */
3622
+ type TPillIconPosition = TBaseStatusIconPosition;
3623
+ /**
3624
+ * Pill
3625
+ *
3626
+ * A UI element that extends the shared `StatusIndicator` interface.
3627
+ * Represents a labeled status, optionally removable.
3628
+ *
3629
+ * @extends StatusIndicator
3630
+ */
3631
+ interface Pill extends StatusIndicator {
3632
+ /**
3633
+ * If true, the pill can be removed by the user.
3634
+ * Triggers the `removed` event in the component.
3635
+ */
3636
+ removable?: boolean;
3637
+ }
3638
+
3639
+ /**
3640
+ * TagComponent
3641
+ *
3642
+ * A small UI element used to display labeled statuses, metadata, or categories.
3643
+ * Supports icons, removable behavior, disabled state, and standardized design-
3644
+ * system styles and sizes. Implements the shared `Tag` interface to ensure
3645
+ * consistency across all status-driven UI components (Tag, Badge, Chip, etc.).
3646
+ */
3647
+ declare class PillComponent implements Pill {
3648
+ /**
3649
+ * Unique identifier for the tag.
3650
+ * Automatically generated if not provided by the parent.
3651
+ * Used primarily for tracking and removal events.
3652
+ */
3653
+ id: string;
3654
+ /**
3655
+ * Text content displayed inside the tag.
3656
+ */
3657
+ label?: string;
3658
+ /**
3659
+ * Visual style of the pill.
3660
+ * Corresponds to design-system status color tokens.
3661
+ * Example: 'primary', 'secondary', 'success', 'warning', etc.
3662
+ */
3663
+ style: TPillType;
3664
+ /**
3665
+ * Size variant of the pill.
3666
+ * Options follow the standardized sizing tokens: 'sm', 'md', or 'lg'.
3667
+ */
3668
+ size: TPillSize;
3669
+ /**
3670
+ * Optional icon class displayed before the label.
3671
+ * Example: 'frg-icon-info', 'frg-icon-alert'.
3672
+ */
3673
+ icon: string | undefined;
3674
+ /**
3675
+ * Position of the icon
3676
+ */
3677
+ iconPosition: TPillIconPosition;
3678
+ /**
3679
+ * Whether the pill is disabled.
3680
+ * Disables interactions and applies the disabled visual style.
3681
+ */
3682
+ disabled: boolean;
3683
+ /**
3684
+ * If true, displays a remove button allowing the pill to be dismissed.
3685
+ */
3686
+ removable: boolean;
3687
+ /**
3688
+ * Emits the ID of the pill when it is removed.
3689
+ */
3690
+ removed: EventEmitter<string>;
3691
+ /**
3692
+ * Emits the `removed` event when the remove button is clicked,
3693
+ * provided the tag is not disabled and removal is allowed.
3694
+ */
3695
+ onRemove(): void;
3696
+ static ɵfac: i0.ɵɵFactoryDeclaration<PillComponent, never>;
3697
+ static ɵcmp: i0.ɵɵComponentDeclaration<PillComponent, "frg-pill", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "style": { "alias": "style"; "required": false; }; "size": { "alias": "size"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; }, { "removed": "removed"; }, never, never, true, never>;
3698
+ }
3699
+
3700
+ interface ITooltipLinkAction {
3701
+ link: string;
3702
+ target: '_self' | '_blank' | '_parent' | '_top';
3703
+ }
3704
+ interface ITooltipEventAction<T = any> {
3705
+ clickEvent: GenericFunction<T>;
3706
+ }
3707
+ interface IConfigTooltip {
3708
+ text: string;
3709
+ textContent?: string;
3710
+ apply?: boolean;
3711
+ hideIndicator?: boolean;
3712
+ position?: TooltipPosition;
3713
+ gap?: number;
3714
+ }
3715
+ interface IConfigTooltipPopover extends IConfigTooltip {
3716
+ buttonConfig: IConfigTooltipButtton;
3717
+ }
3718
+ interface IConfigTooltipButtton {
3719
+ text: string;
3720
+ action: TBehaviourAction<ITooltipLinkAction, ITooltipEventAction>;
3721
+ }
3722
+
3723
+ declare class FragmentsTooltipDirective implements OnDestroy {
3724
+ private readonly elemRef;
3725
+ private readonly renderer;
3726
+ tooltipConfig: IConfigTooltip;
3727
+ tooltip: HTMLElement | undefined;
3728
+ onMouseEnter(): void;
3729
+ onMouseLeave(): void;
3730
+ ngOnDestroy(): void;
3731
+ private show;
3732
+ private hide;
3733
+ private initTooltip;
3734
+ private setPosition;
3735
+ static ɵfac: i0.ɵɵFactoryDeclaration<FragmentsTooltipDirective, never>;
3736
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FragmentsTooltipDirective, "[frgTooltip]", never, { "tooltipConfig": { "alias": "tooltipConfig"; "required": false; }; }, {}, never, never, true, never>;
3737
+ }
3738
+
3739
+ declare class FragmentsPopoverDirective implements OnDestroy {
3740
+ private readonly elemRef;
3741
+ private readonly renderer;
3742
+ popoverConfig: IConfigTooltipPopover;
3743
+ popover: HTMLElement | undefined;
3744
+ onClick(event: MouseEvent): void;
3745
+ onDocumentClick(): void;
3746
+ onEscape(): void;
3747
+ ngOnDestroy(): void;
3748
+ private close;
3749
+ private show;
3750
+ private hide;
3751
+ private initPopover;
3752
+ private handleAction;
3753
+ private setPosition;
3754
+ static ɵfac: i0.ɵɵFactoryDeclaration<FragmentsPopoverDirective, never>;
3755
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FragmentsPopoverDirective, "[frgPopover]", never, { "popoverConfig": { "alias": "popoverConfig"; "required": false; }; }, {}, never, never, true, never>;
3756
+ }
3757
+
3758
+ interface Badge extends Partial<StatusIndicator> {
3759
+ /**
3760
+ * Badge numeric or string value.
3761
+ * If null or undefined and `dot` is false → badge is hidden.
3762
+ */
3763
+ value?: string | number | null;
3764
+ /**
3765
+ * Dot mode: shows only a small circular indicator.
3766
+ */
3767
+ dot?: boolean;
3768
+ /**
3769
+ * Determines whether the badge is hidden.
3770
+ */
3771
+ hidden?: boolean;
3772
+ }
3773
+
3774
+ declare class FrgBadgeDirective implements OnChanges, OnDestroy {
3775
+ private readonly host;
3776
+ private readonly renderer;
3777
+ /**
3778
+ * Badge configuration object.
3779
+ */
3780
+ badge: Badge;
3781
+ /**
3782
+ * Reference to the badge HTML element.
3783
+ */
3784
+ private badgeEl?;
3785
+ ngOnChanges(changes: SimpleChanges): void;
3786
+ /**
3787
+ * Cleans up the badge element when the directive is destroyed.
3788
+ */
3789
+ ngOnDestroy(): void;
3790
+ /**
3791
+ * Updates the badge element based on the current badge configuration.
3792
+ * Creates, updates, or removes the badge as necessary.
3793
+ */
3794
+ private updateBadge;
3795
+ /**
3796
+ * Creates the badge HTML element and appends it to the host element.
3797
+ * Initializes the badge with the base class.
3798
+ */
3799
+ private createBadge;
3800
+ /**
3801
+ * Updates the content of the badge element based on the badge configuration.
3802
+ * Handles dot mode, icon placement, and value display.
3803
+ */
3804
+ private updateBadgeContent;
3805
+ /**
3806
+ * Creates the icon element with all classes
3807
+ */
3808
+ private createIconElement;
3809
+ /**
3810
+ * Append value first, then icon
3811
+ */
3812
+ private appendValueThenIcon;
3813
+ /**
3814
+ * Append icon first, then value
3815
+ */
3816
+ private appendIconThenValue;
3817
+ /**
3818
+ * Updates the CSS classes of the badge element based on the badge configuration.
3819
+ * Applies size, style, and dot mode classes.
3820
+ */
3821
+ private updateBadgeClasses;
3822
+ /**
3823
+ * Removes the badge element from the host element and clears the reference.
3824
+ * Used when the badge should be hidden.
3825
+ */
3826
+ private removeBadge;
3827
+ /**
3828
+ * Determines whether the badge should be hidden based on its configuration.
3829
+ * Returns true if the badge is marked as hidden or has no value in non-dot mode.
3830
+ */
3831
+ private shouldHide;
3832
+ static ɵfac: i0.ɵɵFactoryDeclaration<FrgBadgeDirective, never>;
3833
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FrgBadgeDirective, "[frgBadge]", never, { "badge": { "alias": "badge"; "required": false; }; }, {}, never, never, true, never>;
3834
+ }
3835
+
3836
+ declare function sortTable<T>(fullData: T[], direction: EnumDirectionSortTable, fieldOrder: string | string[]): T[];
3837
+
3838
+ declare class FieldArrayPositionPipe implements PipeTransform {
3839
+ transform(value: any, args: any[] | any): any;
3840
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldArrayPositionPipe, never>;
3841
+ static ɵpipe: i0.ɵɵPipeDeclaration<FieldArrayPositionPipe, "fieldArrayPosition", true>;
3842
+ }
3843
+ declare class TypeOfArrayPipe implements PipeTransform {
3844
+ transform(value: any): any;
3845
+ static ɵfac: i0.ɵɵFactoryDeclaration<TypeOfArrayPipe, never>;
3846
+ static ɵpipe: i0.ɵɵPipeDeclaration<TypeOfArrayPipe, "typeOfArray", true>;
3847
+ }
3848
+ declare class DynamicPipe implements PipeTransform {
3849
+ private readonly injector;
3850
+ transform(value: any, pipeToken: any, pipeArgs?: any[]): any;
3851
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicPipe, never>;
3852
+ static ɵpipe: i0.ɵɵPipeDeclaration<DynamicPipe, "dynamicPipe", true>;
3853
+ }
3854
+
3855
+ declare class SanitizeHtmlPipe implements PipeTransform {
3856
+ _sanitizer: DomSanitizer;
3857
+ transform(v: string | number | null | undefined): SafeHtml;
3858
+ static ɵfac: i0.ɵɵFactoryDeclaration<SanitizeHtmlPipe, never>;
3859
+ static ɵpipe: i0.ɵɵPipeDeclaration<SanitizeHtmlPipe, "sanitizeHtml", true>;
3860
+ }
3861
+
3862
+ declare class SafeHtmlPipe implements PipeTransform {
3863
+ private readonly sanitizer;
3864
+ transform(value: string): SafeHtml;
3865
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
3866
+ static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", true>;
3867
+ }
3868
+
3869
+ declare class ChunkPipe implements PipeTransform {
3870
+ transform<T>(array: T[], size: number): T[][];
3871
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChunkPipe, never>;
3872
+ static ɵpipe: i0.ɵɵPipeDeclaration<ChunkPipe, "chunk", true>;
3873
+ }
3874
+
3875
+ type TypeForm<T> = {
3876
+ [K in keyof T]: FormControl<T[K]>;
3877
+ };
3878
+
3879
+ type direction = 'asc' | 'desc';
3880
+ declare function generateId(value?: string): string;
3881
+ declare function generateNumberId(): number;
3882
+ declare function isObjectEmpty(obj: any): boolean;
3883
+ declare function paginationList<T>(lista: Array<T>, pageSize: number, page: number): T[];
3884
+ declare function orderList<T>(lista: Array<T>, orderFields: any, direction: direction): T[];
3885
+ declare function getActivatedRouteChild(activatedRoute: ActivatedRoute): ActivatedRoute;
3886
+
3887
+ /**
3888
+ * Normalizes the value of an <input type="number">.
3889
+ *
3890
+ * - Returns a valid number if the input contains a numeric value
3891
+ * - Returns null if the input is empty or not a valid number
3892
+ *
3893
+ * This helper ensures consistency between the raw input value
3894
+ * and the form control value, preventing unintended NaN values.
3895
+ *
3896
+ * @param input The HTML input element of type "number"
3897
+ * @returns number | null
3898
+ */
3899
+ declare function normalizeNumber(input: HTMLInputElement): number | null;
3900
+
3901
+ /**
3902
+ * Generates a RFC4122 version 4 UUID string.
3903
+ * Uses the 'uuid' library for guaranteed uniqueness.
3904
+ * @returns {string} A UUID v4 string.
3905
+ */
3906
+ declare function generateUUID(): string;
3907
+ /**
3908
+ * Returns the current timestamp in ISO 8601 format.
3909
+ * Useful for logging or time-stamping events in a standardized way.
3910
+ * @returns {string} Current date-time as ISO string.
3911
+ */
3912
+ declare function getTimestampISO(): string;
3913
+ /**
3914
+ * Returns the current timestamp in milliseconds since Unix epoch.
3915
+ * Useful for performance measurements or relative time calculations.
3916
+ * @returns {number} Current timestamp in milliseconds.
3917
+ */
3918
+ declare function getTimestampMillis(): number;
3919
+ /**
3920
+ * Generates a simple unique ID string with an optional prefix.
3921
+ * Uses random alphanumeric characters and current time for uniqueness.
3922
+ * Good for quick IDs that don't require strict UUID format.
3923
+ * @param {string} prefix Optional string prefix (default: 'id').
3924
+ * @returns {string} Unique ID string with prefix.
3925
+ */
3926
+ declare function generateUniqueId(prefix?: string): string;
3927
+
3928
+ export { AccordionComponent, BlobMorphComponent, BreadcrumbComponent, ButtonComponent, CardComponent, ChipComponent, ChunkPipe, CodeBlockComponent, ContainerComponent, ContentBlurComponent, DividerComponent, DynamicPipe, EnumDirectionSortTable, FieldArrayPositionPipe, FragmentsPopoverDirective, FragmentsTooltipDirective, FrgBadgeDirective, InputCalendarComponent, InputCheckboxComponent, InputCheckboxGroupComponent, InputClockPickerComponent, InputDateComponent, InputDateTimeComponent, InputFileUploadComponent, InputNumberComponent, InputRadioGroupComponent, InputSliderComponent, InputTextComponent, InputTimeComponent, InputToggleSwitchComponent, InputValidationComponent, ModalComponent, MultiSelectComponent, PillComponent, ProgressBarComponent, PulseLoaderComponent, SafeHtmlPipe, SanitizeHtmlPipe, SectionComponent, SelectionListComponent, SeparatorComponent, SideNavComponent, SkeletonLoaderComponent, SmallPaginationComponent, SnackbarComponent, SparkleFieldComponent, SpinnerComponent, StepperComponent, TableComponent, TabsComponent, TagComponent, TitleBarComponent, ToastComponent, ToastStackComponent, TypeOfArrayPipe, generateId, generateNumberId, generateUUID, generateUniqueId, getActivatedRouteChild, getTimestampISO, getTimestampMillis, isObjectEmpty, normalizeNumber, orderList, paginationList, sortTable };
3929
+ export type { AccordionItem, AccordionItemContext, AccordionToggleEvent, ArrayOneOrMore, Badge, BreadcrumbItem, Chip, CodeBlockBody, CodeBlockConfig, CodeBlockFooter, CodeBlockHeader, DateFormat, DateTimeFormat, GenericFunction, IActionElement, IBaseAction, IConfigTable, IEventAction, IFieldPipe, ILinkAction, IPaginationOutput, ISideNavConfig, ISideNavItem, ISideNavSection, ITBody, ITBodyAction, ITBodyCell, ITBodyCellIcon, ITBodyColumn, ITCaption, ITHead, ITHeadAction, ITHeadColumn, ITPagination, ITSort, ITTitleBar, ITTitleBarFilter, ITTitleBarSearch, ITooltipElement, InputCheckboxGroupItem, InputRadioGroupItem, ModalCloseEvent, NgClassValue, Pill, SelectionListItem, SnackbarCloseEvent, StatusIndicator, StepChangeEvent, StepItem, StepItemContext, StepValidationContext, StepValidationEvent, StepValidator, TAccordionSize, TAccordionStyle, TBasePosition, TBaseSideNavSize, TBaseSideNavStyle, TBaseSize, TBaseStatusIconPosition, TBaseStatusSize, TBaseStatusStyle, TBaseStyle, TBehaviourAction, TButtonIconPosition, TButtonShape, TButtonSize, TButtonStyle, TButtonType, TCardStyle, TChipIconPosition, TChipSize, TChipType, TContainerSize, TCustomNgClass, TDividerOrientation, TDividerSpacing, THLJSLanguage, TIconPosition, TInputType, TModalCloseReason, TModalSize, TPillIconPosition, TPillSize, TPillType, TProgressBarAnimation, TProgressBarSize, TProgressBarType, TPulseLoaderSize, TPulseLoaderType, TSectionHeading, TSectionSpacing, TSeparatorSize, TSideNavLink, TSkeletonLoaderSize, TSkeletonLoaderType, TSnackbarCloseReason, TSnackbarPosition, TSnackbarSize, TSnackbarStyle, TSpinnerSize, TSpinnerType, TStepNavigationSource, TStepperMotion, TStepperOrientation, TTabSize, TTabStyle, TTagIconPosition, TTagSize, TTagType, TToastCloseReason, TToastPosition, TToastSize, TToastStyle, TabChangeEvent, TabItem, TabItemContext, Tag, TimeFormat, ToastCloseEvent, ToastStackCloseEvent, ToastStackItem, TooltipPosition, TypeForm, Without, XOR };