@tacdaed/fragments 1.0.0-beta.2 → 1.0.0-beta.20

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