@raintonic/formaui 0.2.0

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 (240) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +145 -0
  3. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +806 -0
  4. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -0
  5. package/fesm2022/raintonic-formaui-cdk-form-field.mjs +86 -0
  6. package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -0
  7. package/fesm2022/raintonic-formaui-cdk-overlay.mjs +1757 -0
  8. package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -0
  9. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +287 -0
  10. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -0
  11. package/fesm2022/raintonic-formaui-components-accordion.mjs +217 -0
  12. package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -0
  13. package/fesm2022/raintonic-formaui-components-alert.mjs +161 -0
  14. package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -0
  15. package/fesm2022/raintonic-formaui-components-autocomplete.mjs +726 -0
  16. package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -0
  17. package/fesm2022/raintonic-formaui-components-avatar.mjs +92 -0
  18. package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -0
  19. package/fesm2022/raintonic-formaui-components-badge.mjs +107 -0
  20. package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -0
  21. package/fesm2022/raintonic-formaui-components-big-menu.mjs +68 -0
  22. package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +1 -0
  23. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +55 -0
  24. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -0
  25. package/fesm2022/raintonic-formaui-components-button-group.mjs +103 -0
  26. package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -0
  27. package/fesm2022/raintonic-formaui-components-button.mjs +241 -0
  28. package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -0
  29. package/fesm2022/raintonic-formaui-components-card.mjs +270 -0
  30. package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -0
  31. package/fesm2022/raintonic-formaui-components-checkbox.mjs +295 -0
  32. package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -0
  33. package/fesm2022/raintonic-formaui-components-data-table.mjs +631 -0
  34. package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -0
  35. package/fesm2022/raintonic-formaui-components-date-picker.mjs +1331 -0
  36. package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -0
  37. package/fesm2022/raintonic-formaui-components-divider.mjs +41 -0
  38. package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -0
  39. package/fesm2022/raintonic-formaui-components-drawer.mjs +190 -0
  40. package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -0
  41. package/fesm2022/raintonic-formaui-components-dynamic-form.mjs +266 -0
  42. package/fesm2022/raintonic-formaui-components-dynamic-form.mjs.map +1 -0
  43. package/fesm2022/raintonic-formaui-components-empty-state.mjs +33 -0
  44. package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -0
  45. package/fesm2022/raintonic-formaui-components-file-upload.mjs +246 -0
  46. package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -0
  47. package/fesm2022/raintonic-formaui-components-form-field.mjs +482 -0
  48. package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -0
  49. package/fesm2022/raintonic-formaui-components-icon.mjs +117 -0
  50. package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -0
  51. package/fesm2022/raintonic-formaui-components-input.mjs +327 -0
  52. package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -0
  53. package/fesm2022/raintonic-formaui-components-list.mjs +149 -0
  54. package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -0
  55. package/fesm2022/raintonic-formaui-components-menu.mjs +896 -0
  56. package/fesm2022/raintonic-formaui-components-menu.mjs.map +1 -0
  57. package/fesm2022/raintonic-formaui-components-number-input.mjs +345 -0
  58. package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -0
  59. package/fesm2022/raintonic-formaui-components-paginator.mjs +139 -0
  60. package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -0
  61. package/fesm2022/raintonic-formaui-components-password-input.mjs +306 -0
  62. package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -0
  63. package/fesm2022/raintonic-formaui-components-popover.mjs +451 -0
  64. package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -0
  65. package/fesm2022/raintonic-formaui-components-progressbar.mjs +148 -0
  66. package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -0
  67. package/fesm2022/raintonic-formaui-components-radio.mjs +260 -0
  68. package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -0
  69. package/fesm2022/raintonic-formaui-components-select.mjs +1011 -0
  70. package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -0
  71. package/fesm2022/raintonic-formaui-components-side-panel.mjs +150 -0
  72. package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -0
  73. package/fesm2022/raintonic-formaui-components-sidebar.mjs +257 -0
  74. package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +1 -0
  75. package/fesm2022/raintonic-formaui-components-skeleton.mjs +50 -0
  76. package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -0
  77. package/fesm2022/raintonic-formaui-components-slider.mjs +347 -0
  78. package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -0
  79. package/fesm2022/raintonic-formaui-components-spinner.mjs +63 -0
  80. package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -0
  81. package/fesm2022/raintonic-formaui-components-stepper.mjs +317 -0
  82. package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -0
  83. package/fesm2022/raintonic-formaui-components-tab.mjs +197 -0
  84. package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -0
  85. package/fesm2022/raintonic-formaui-components-tag.mjs +78 -0
  86. package/fesm2022/raintonic-formaui-components-tag.mjs.map +1 -0
  87. package/fesm2022/raintonic-formaui-components-time-picker.mjs +644 -0
  88. package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -0
  89. package/fesm2022/raintonic-formaui-components-toggle.mjs +171 -0
  90. package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -0
  91. package/fesm2022/raintonic-formaui-components-toolbar.mjs +140 -0
  92. package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -0
  93. package/fesm2022/raintonic-formaui-components-tooltip.mjs +555 -0
  94. package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -0
  95. package/fesm2022/raintonic-formaui-components-tree-select.mjs +314 -0
  96. package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -0
  97. package/fesm2022/raintonic-formaui-components-tree-table.mjs +103 -0
  98. package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -0
  99. package/fesm2022/raintonic-formaui-components-tree.mjs +430 -0
  100. package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -0
  101. package/fesm2022/raintonic-formaui-core.mjs +62 -0
  102. package/fesm2022/raintonic-formaui-core.mjs.map +1 -0
  103. package/fesm2022/raintonic-formaui-services-dialog.mjs +798 -0
  104. package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -0
  105. package/fesm2022/raintonic-formaui-services-notification.mjs +391 -0
  106. package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -0
  107. package/fesm2022/raintonic-formaui-services-theme.mjs +248 -0
  108. package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -0
  109. package/fesm2022/raintonic-formaui-test-utils.mjs +66 -0
  110. package/fesm2022/raintonic-formaui-test-utils.mjs.map +1 -0
  111. package/fesm2022/raintonic-formaui.mjs +15 -0
  112. package/fesm2022/raintonic-formaui.mjs.map +1 -0
  113. package/llms-full.txt +1627 -0
  114. package/llms.txt +60 -0
  115. package/package.json +251 -0
  116. package/styles/_fonts-entry.scss +3 -0
  117. package/styles/fonts/dm-mono-400-latin.woff2 +0 -0
  118. package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
  119. package/styles/fonts/inter-tight-latin.woff2 +0 -0
  120. package/styles/index.scss +127 -0
  121. package/styles/partials/_constants.scss +29 -0
  122. package/styles/partials/_fonts.scss +36 -0
  123. package/styles/partials/_grid.scss +171 -0
  124. package/styles/partials/_mixins.scss +145 -0
  125. package/styles/partials/_motion.scss +252 -0
  126. package/styles/partials/_theme.scss +275 -0
  127. package/styles/partials/_typography.scss +112 -0
  128. package/styles/partials/_utilities.scss +480 -0
  129. package/styles/partials/themes/_dark.scss +254 -0
  130. package/styles/partials/themes/_light.scss +254 -0
  131. package/types/raintonic-formaui-cdk-drag-drop.d.ts +196 -0
  132. package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -0
  133. package/types/raintonic-formaui-cdk-form-field.d.ts +62 -0
  134. package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -0
  135. package/types/raintonic-formaui-cdk-overlay.d.ts +843 -0
  136. package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -0
  137. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +112 -0
  138. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -0
  139. package/types/raintonic-formaui-components-accordion.d.ts +124 -0
  140. package/types/raintonic-formaui-components-accordion.d.ts.map +1 -0
  141. package/types/raintonic-formaui-components-alert.d.ts +143 -0
  142. package/types/raintonic-formaui-components-alert.d.ts.map +1 -0
  143. package/types/raintonic-formaui-components-autocomplete.d.ts +193 -0
  144. package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -0
  145. package/types/raintonic-formaui-components-avatar.d.ts +52 -0
  146. package/types/raintonic-formaui-components-avatar.d.ts.map +1 -0
  147. package/types/raintonic-formaui-components-badge.d.ts +47 -0
  148. package/types/raintonic-formaui-components-badge.d.ts.map +1 -0
  149. package/types/raintonic-formaui-components-big-menu.d.ts +62 -0
  150. package/types/raintonic-formaui-components-big-menu.d.ts.map +1 -0
  151. package/types/raintonic-formaui-components-breadcrumb.d.ts +26 -0
  152. package/types/raintonic-formaui-components-breadcrumb.d.ts.map +1 -0
  153. package/types/raintonic-formaui-components-button-group.d.ts +61 -0
  154. package/types/raintonic-formaui-components-button-group.d.ts.map +1 -0
  155. package/types/raintonic-formaui-components-button.d.ts +116 -0
  156. package/types/raintonic-formaui-components-button.d.ts.map +1 -0
  157. package/types/raintonic-formaui-components-card.d.ts +191 -0
  158. package/types/raintonic-formaui-components-card.d.ts.map +1 -0
  159. package/types/raintonic-formaui-components-checkbox.d.ts +132 -0
  160. package/types/raintonic-formaui-components-checkbox.d.ts.map +1 -0
  161. package/types/raintonic-formaui-components-data-table.d.ts +368 -0
  162. package/types/raintonic-formaui-components-data-table.d.ts.map +1 -0
  163. package/types/raintonic-formaui-components-date-picker.d.ts +341 -0
  164. package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -0
  165. package/types/raintonic-formaui-components-divider.d.ts +21 -0
  166. package/types/raintonic-formaui-components-divider.d.ts.map +1 -0
  167. package/types/raintonic-formaui-components-drawer.d.ts +48 -0
  168. package/types/raintonic-formaui-components-drawer.d.ts.map +1 -0
  169. package/types/raintonic-formaui-components-dynamic-form.d.ts +412 -0
  170. package/types/raintonic-formaui-components-dynamic-form.d.ts.map +1 -0
  171. package/types/raintonic-formaui-components-empty-state.d.ts +14 -0
  172. package/types/raintonic-formaui-components-empty-state.d.ts.map +1 -0
  173. package/types/raintonic-formaui-components-file-upload.d.ts +77 -0
  174. package/types/raintonic-formaui-components-file-upload.d.ts.map +1 -0
  175. package/types/raintonic-formaui-components-form-field.d.ts +271 -0
  176. package/types/raintonic-formaui-components-form-field.d.ts.map +1 -0
  177. package/types/raintonic-formaui-components-icon.d.ts +61 -0
  178. package/types/raintonic-formaui-components-icon.d.ts.map +1 -0
  179. package/types/raintonic-formaui-components-input.d.ts +149 -0
  180. package/types/raintonic-formaui-components-input.d.ts.map +1 -0
  181. package/types/raintonic-formaui-components-list.d.ts +48 -0
  182. package/types/raintonic-formaui-components-list.d.ts.map +1 -0
  183. package/types/raintonic-formaui-components-menu.d.ts +403 -0
  184. package/types/raintonic-formaui-components-menu.d.ts.map +1 -0
  185. package/types/raintonic-formaui-components-number-input.d.ts +127 -0
  186. package/types/raintonic-formaui-components-number-input.d.ts.map +1 -0
  187. package/types/raintonic-formaui-components-paginator.d.ts +37 -0
  188. package/types/raintonic-formaui-components-paginator.d.ts.map +1 -0
  189. package/types/raintonic-formaui-components-password-input.d.ts +111 -0
  190. package/types/raintonic-formaui-components-password-input.d.ts.map +1 -0
  191. package/types/raintonic-formaui-components-popover.d.ts +131 -0
  192. package/types/raintonic-formaui-components-popover.d.ts.map +1 -0
  193. package/types/raintonic-formaui-components-progressbar.d.ts +111 -0
  194. package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -0
  195. package/types/raintonic-formaui-components-radio.d.ts +95 -0
  196. package/types/raintonic-formaui-components-radio.d.ts.map +1 -0
  197. package/types/raintonic-formaui-components-select.d.ts +307 -0
  198. package/types/raintonic-formaui-components-select.d.ts.map +1 -0
  199. package/types/raintonic-formaui-components-side-panel.d.ts +51 -0
  200. package/types/raintonic-formaui-components-side-panel.d.ts.map +1 -0
  201. package/types/raintonic-formaui-components-sidebar.d.ts +174 -0
  202. package/types/raintonic-formaui-components-sidebar.d.ts.map +1 -0
  203. package/types/raintonic-formaui-components-skeleton.d.ts +20 -0
  204. package/types/raintonic-formaui-components-skeleton.d.ts.map +1 -0
  205. package/types/raintonic-formaui-components-slider.d.ts +108 -0
  206. package/types/raintonic-formaui-components-slider.d.ts.map +1 -0
  207. package/types/raintonic-formaui-components-spinner.d.ts +42 -0
  208. package/types/raintonic-formaui-components-spinner.d.ts.map +1 -0
  209. package/types/raintonic-formaui-components-stepper.d.ts +126 -0
  210. package/types/raintonic-formaui-components-stepper.d.ts.map +1 -0
  211. package/types/raintonic-formaui-components-tab.d.ts +96 -0
  212. package/types/raintonic-formaui-components-tab.d.ts.map +1 -0
  213. package/types/raintonic-formaui-components-tag.d.ts +34 -0
  214. package/types/raintonic-formaui-components-tag.d.ts.map +1 -0
  215. package/types/raintonic-formaui-components-time-picker.d.ts +172 -0
  216. package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -0
  217. package/types/raintonic-formaui-components-toggle.d.ts +70 -0
  218. package/types/raintonic-formaui-components-toggle.d.ts.map +1 -0
  219. package/types/raintonic-formaui-components-toolbar.d.ts +128 -0
  220. package/types/raintonic-formaui-components-toolbar.d.ts.map +1 -0
  221. package/types/raintonic-formaui-components-tooltip.d.ts +268 -0
  222. package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -0
  223. package/types/raintonic-formaui-components-tree-select.d.ts +80 -0
  224. package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -0
  225. package/types/raintonic-formaui-components-tree-table.d.ts +90 -0
  226. package/types/raintonic-formaui-components-tree-table.d.ts.map +1 -0
  227. package/types/raintonic-formaui-components-tree.d.ts +104 -0
  228. package/types/raintonic-formaui-components-tree.d.ts.map +1 -0
  229. package/types/raintonic-formaui-core.d.ts +115 -0
  230. package/types/raintonic-formaui-core.d.ts.map +1 -0
  231. package/types/raintonic-formaui-services-dialog.d.ts +451 -0
  232. package/types/raintonic-formaui-services-dialog.d.ts.map +1 -0
  233. package/types/raintonic-formaui-services-notification.d.ts +221 -0
  234. package/types/raintonic-formaui-services-notification.d.ts.map +1 -0
  235. package/types/raintonic-formaui-services-theme.d.ts +126 -0
  236. package/types/raintonic-formaui-services-theme.d.ts.map +1 -0
  237. package/types/raintonic-formaui-test-utils.d.ts +24 -0
  238. package/types/raintonic-formaui-test-utils.d.ts.map +1 -0
  239. package/types/raintonic-formaui.d.ts +4 -0
  240. package/types/raintonic-formaui.d.ts.map +1 -0
@@ -0,0 +1,70 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { DoCheck, OnDestroy, OutputEmitterRef, Signal, ElementRef } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
4
+ import { Subject } from 'rxjs';
5
+ import { ErrorStateMatcher } from '@raintonic/formaui/core';
6
+
7
+ type FuiToggleLabelPosition = 'before' | 'after';
8
+ type FuiToggleSize = 'sm' | 'md';
9
+ interface FuiToggleChange {
10
+ source: unknown;
11
+ checked: boolean;
12
+ }
13
+
14
+ declare class FuiToggleComponent implements ControlValueAccessor, DoCheck, OnDestroy {
15
+ static nextId: number;
16
+ readonly controlType = "fui-toggle";
17
+ readonly checkedInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
18
+ readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
19
+ readonly requiredInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
20
+ readonly labelPosition: _angular_core.InputSignal<FuiToggleLabelPosition>;
21
+ readonly size: _angular_core.InputSignal<FuiToggleSize>;
22
+ readonly name: _angular_core.InputSignal<string | null>;
23
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
24
+ readonly ariaLabelledby: _angular_core.InputSignal<string | null>;
25
+ readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
26
+ readonly errorStateMatcher: _angular_core.InputSignal<ErrorStateMatcher | null>;
27
+ readonly change: OutputEmitterRef<FuiToggleChange>;
28
+ private readonly _checked;
29
+ private readonly _focused;
30
+ private readonly _disabled;
31
+ private readonly _required;
32
+ private readonly _ngControlDisabled;
33
+ private readonly _errorState;
34
+ readonly checked: Signal<boolean>;
35
+ readonly focused: Signal<boolean>;
36
+ readonly errorState: Signal<boolean>;
37
+ readonly required: Signal<boolean>;
38
+ readonly disabled: Signal<boolean>;
39
+ readonly stateChanges: Subject<void>;
40
+ private _uid;
41
+ readonly id: string;
42
+ readonly inputId: string;
43
+ private _parentForm;
44
+ private _parentFormGroup;
45
+ private _defaultErrorStateMatcher;
46
+ private readonly _ngControlRef;
47
+ get ngControl(): NgControl | null;
48
+ readonly inputElement: Signal<ElementRef<HTMLInputElement> | undefined>;
49
+ private _onChange;
50
+ private _onTouched;
51
+ private _formControlInitialized;
52
+ constructor();
53
+ ngDoCheck(): void;
54
+ ngOnDestroy(): void;
55
+ writeValue(value: boolean): void;
56
+ registerOnChange(fn: (value: boolean) => void): void;
57
+ registerOnTouched(fn: () => void): void;
58
+ setDisabledState(isDisabled: boolean): void;
59
+ onInputChange(event: Event): void;
60
+ onFocus(): void;
61
+ onBlur(): void;
62
+ toggle(): void;
63
+ focus(): void;
64
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiToggleComponent, never>;
65
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiToggleComponent, "fui-toggle", never, { "checkedInput": { "alias": "checked"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "requiredInput": { "alias": "required"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, ["*", "*"], true, never>;
66
+ }
67
+
68
+ export { FuiToggleComponent };
69
+ export type { FuiToggleChange, FuiToggleLabelPosition, FuiToggleSize };
70
+ //# sourceMappingURL=raintonic-formaui-components-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-toggle.d.ts","sources":["../../../lib/components/toggle/toggle.types.ts","../../../lib/components/toggle/toggle.component.ts"],"mappings":";;;;;;KAAY,sBAAsB;KACtB,aAAa;UAER,eAAe;;;AAG/B;;ACmBD,cAsBa,kBAAmB,YAAW,oBAAoB,EAAE,OAAO,EAAE,SAAS;;;2BAK5D,aAAA,CAAA,wBAAA;4BACC,aAAA,CAAA,wBAAA;4BACA,aAAA,CAAA,wBAAA;4BACA,aAAA,CAAA,WAAA,CAAA,sBAAA;mBACT,aAAA,CAAA,WAAA,CAAA,aAAA;mBACA,aAAA,CAAA,WAAA;wBACK,aAAA,CAAA,WAAA;6BACK,aAAA,CAAA,WAAA;8BACC,aAAA,CAAA,WAAA;gCACE,aAAA,CAAA,WAAA,CAAA,iBAAA;AAG1B,qBAAiB,gBAAgB,CAAC,eAAe;AAGjD;AACA;AACA;AACA;AACA;AACA;AAGA,sBAAkB,MAAM;AACxB,sBAAkB,MAAM;yBACL,MAAA;AACnB,uBAAmB,MAAM;AACzB,uBAAmB,MAAM;2BAIJ,OAAA;;;;;;;AASrB;AACA,qBAAiB,SAAS;AAI1B,2BAAuB,MAAM,CAAC,UAAU,CAAC,gBAAgB;;;;;AA0CzD;AAgBA;AAKA;;AAQA;AAGA;AAMA,yBAAqB,KAAK;AAU1B;AAOA;AAQA;AAUA;oDArKW,kBAAkB;sDAAlB,kBAAkB;AAwK9B;;;;","names":[]}
@@ -0,0 +1,128 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal, OutputEmitterRef, Signal } from '@angular/core';
3
+
4
+ /**
5
+ * Toolbar menu item interface
6
+ */
7
+ interface FuiToolbarMenuItem {
8
+ id: string | number;
9
+ icon: string;
10
+ label: string;
11
+ disabled?: boolean;
12
+ routerLink?: string | string[];
13
+ queryParams?: Record<string, string>;
14
+ fragment?: string;
15
+ }
16
+ /**
17
+ * User profile data interface
18
+ */
19
+ interface FuiToolbarUserProfile {
20
+ name: string;
21
+ email: string;
22
+ avatar?: string;
23
+ initials?: string;
24
+ }
25
+ /**
26
+ * # FuiToolbar Component
27
+ *
28
+ * A top navigation toolbar following Carbon Design System principles.
29
+ * Provides space for logo, navigation menu items, and user profile area.
30
+ *
31
+ * ## Features
32
+ * - Logo area with customizable content
33
+ * - Icon-based navigation menu
34
+ * - User profile area with avatar/initials
35
+ * - Responsive design
36
+ * - Theme integration
37
+ * - Accessibility support
38
+ *
39
+ * ## Usage
40
+ *
41
+ * ### Basic Toolbar
42
+ * ```html
43
+ * <fui-toolbar
44
+ * [menuItems]="menuItems"
45
+ * [userProfile]="userProfile"
46
+ * (menuItemClick)="onMenuItemClick($event)"
47
+ * (userProfileClick)="onUserProfileClick()">
48
+ * <div logo>
49
+ * <img src="logo.svg" alt="Company Logo">
50
+ * </div>
51
+ * </fui-toolbar>
52
+ * ```
53
+ *
54
+ * ### With Custom Logo
55
+ * ```html
56
+ * <fui-toolbar [menuItems]="menuItems" [userProfile]="userProfile">
57
+ * <div logo class="custom-logo">
58
+ * <h1>Holiday ERP</h1>
59
+ * </div>
60
+ * </fui-toolbar>
61
+ * ```
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * import { FuiToolbarComponent, FuiToolbarMenuItem, FuiToolbarUserProfile } from '@raintonic/formaui/components/toolbar';
66
+ *
67
+ * @Component({
68
+ * standalone: true,
69
+ * imports: [FuiToolbarComponent],
70
+ * template: `
71
+ * <fui-toolbar
72
+ * [menuItems]="menuItems"
73
+ * [userProfile]="userProfile"
74
+ * (menuItemClick)="onMenuItemClick($event)"
75
+ * (userProfileClick)="onUserProfileClick()">
76
+ * <div logo>
77
+ * <img src="assets/logo.svg" alt="Holiday ERP">
78
+ * </div>
79
+ * </fui-toolbar>
80
+ * `
81
+ * })
82
+ * export class AppLayoutComponent {
83
+ * menuItems: FuiToolbarMenuItem[] = [
84
+ * { id: 'dashboard', icon: 'house', label: 'Dashboard' },
85
+ * { id: 'orders', icon: 'shopping-cart', label: 'Orders' },
86
+ * { id: 'products', icon: 'package', label: 'Products' },
87
+ * { id: 'customers', icon: 'users', label: 'Customers' },
88
+ * ];
89
+ *
90
+ * userProfile: FuiToolbarUserProfile = {
91
+ * name: 'John Doe',
92
+ * email: 'john.doe@company.com',
93
+ * initials: 'JD'
94
+ * };
95
+ *
96
+ * onMenuItemClick(itemId: string | number): void {
97
+ * console.log('Menu item clicked:', itemId);
98
+ * }
99
+ *
100
+ * onUserProfileClick(): void {
101
+ * console.log('User profile clicked');
102
+ * }
103
+ * }
104
+ * ```
105
+ */
106
+ declare class FuiToolbarComponent {
107
+ readonly menuItems: InputSignal<FuiToolbarMenuItem[]>;
108
+ readonly userProfile: InputSignal<FuiToolbarUserProfile | null>;
109
+ readonly fixed: InputSignal<boolean>;
110
+ readonly activeMenuItemId: InputSignal<string | number>;
111
+ readonly ariaLabel: InputSignal<string>;
112
+ readonly userAriaLabel: InputSignal<string>;
113
+ readonly showSidebarToggle: InputSignal<boolean>;
114
+ readonly menuItemClick: OutputEmitterRef<string | number>;
115
+ readonly userProfileClick: OutputEmitterRef<void>;
116
+ readonly sidebarToggle: OutputEmitterRef<void>;
117
+ readonly firstName: Signal<string>;
118
+ readonly lastName: Signal<string>;
119
+ onMenuItemClick(item: FuiToolbarMenuItem): void;
120
+ onUserProfileClick(): void;
121
+ onSidebarToggleClick(): void;
122
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiToolbarComponent, never>;
123
+ static ɵcmp: i0.ɵɵComponentDeclaration<FuiToolbarComponent, "fui-toolbar", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "userProfile": { "alias": "userProfile"; "required": false; "isSignal": true; }; "fixed": { "alias": "fixed"; "required": false; "isSignal": true; }; "activeMenuItemId": { "alias": "activeMenuItemId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "userAriaLabel": { "alias": "userAriaLabel"; "required": false; "isSignal": true; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; "isSignal": true; }; }, { "menuItemClick": "menuItemClick"; "userProfileClick": "userProfileClick"; "sidebarToggle": "sidebarToggle"; }, never, ["[logo]", "[more-buttons]"], true, never>;
124
+ }
125
+
126
+ export { FuiToolbarComponent };
127
+ export type { FuiToolbarMenuItem, FuiToolbarUserProfile };
128
+ //# sourceMappingURL=raintonic-formaui-components-toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-toolbar.d.ts","sources":["../../../lib/components/toolbar/toolbar.component.ts"],"mappings":";;;AAgBA;;AAEG;UACc,kBAAkB;AACjC;;;;AAIA;kBACc,MAAM;;AAErB;AAED;;AAEG;UACc,qBAAqB;;;;;AAKrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFG;AACH,cAca,mBAAmB;wBAEV,WAAW,CAAC,kBAAkB;0BAC5B,WAAW,CAAC,qBAAqB;AACvD,oBAAgB,WAAW;+BACA,WAAW;wBACpB,WAAA;4BACI,WAAA;AAEtB,gCAA4B,WAAW;4BAGf,gBAAgB;AACxC,+BAA2B,gBAAgB;AAE3C,4BAAwB,gBAAgB;AAGxC,wBAAoB,MAAM;AAC1B,uBAAmB,MAAM;AAKzB,0BAAsB,kBAAkB;AAMxC;AAMA;yCApCW,mBAAmB;2CAAnB,mBAAmB;AAuC/B;;;;","names":[]}
@@ -0,0 +1,268 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, Signal } from '@angular/core';
3
+
4
+ /**
5
+ * Available tooltip positions relative to the trigger element
6
+ */
7
+ type TooltipPosition = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
8
+ /**
9
+ * Available tooltip sizes
10
+ */
11
+ type TooltipSize = 'sm' | 'md' | 'lg';
12
+ /**
13
+ * Tooltip trigger events
14
+ */
15
+ type TooltipTrigger = 'hover' | 'focus' | 'click' | 'manual';
16
+ /**
17
+ * Constants for validation
18
+ */
19
+ declare const TOOLTIP_POSITIONS: readonly ["top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end", "left", "left-start", "left-end", "right", "right-start", "right-end"];
20
+ declare const TOOLTIP_SIZES: readonly ["sm", "md", "lg"];
21
+ declare const TOOLTIP_TRIGGERS: readonly ["hover", "focus", "click", "manual"];
22
+ /**
23
+ * Tooltip configuration interface
24
+ */
25
+ interface TooltipConfig {
26
+ position?: TooltipPosition;
27
+ size?: TooltipSize;
28
+ trigger?: TooltipTrigger;
29
+ showDelay?: number;
30
+ hideDelay?: number;
31
+ disabled?: boolean;
32
+ maxWidth?: string;
33
+ offset?: number;
34
+ arrow?: boolean;
35
+ }
36
+
37
+ /**
38
+ * # Tooltip Directive
39
+ *
40
+ * A professional tooltip directive that provides contextual information on hover, focus, or click.
41
+ * Follows Material Design patterns with full accessibility support and advanced positioning.
42
+ *
43
+ * ## Features
44
+ * - Multiple positioning options (12 positions)
45
+ * - Configurable trigger events (hover, focus, click, manual)
46
+ * - Multiple variants for different semantic meanings
47
+ * - Flexible sizing options
48
+ * - Smart positioning with collision detection
49
+ * - Customizable delays and animations
50
+ * - Full accessibility support (ARIA attributes, keyboard navigation)
51
+ * - Arrow indicator support
52
+ * - Responsive design with max-width control
53
+ * - Theme support (light/dark)
54
+ *
55
+ * ## Usage
56
+ *
57
+ * ### Basic Tooltip
58
+ * ```html
59
+ * <button fuiTooltip="Save your changes">Save</button>
60
+ * ```
61
+ *
62
+ * ### Advanced Configuration
63
+ * ```html
64
+ * <button fuiTooltip="Delete this item permanently"
65
+ * fuiTooltipPosition="top"
66
+ * fuiTooltipVariant="error"
67
+ * fuiTooltipSize="lg"
68
+ * [fuiTooltipShowDelay]="500">
69
+ * Delete
70
+ * </button>
71
+ * ```
72
+ *
73
+ * ### Click Trigger
74
+ * ```html
75
+ * <span fuiTooltip="Click to copy"
76
+ * fuiTooltipTrigger="click"
77
+ * fuiTooltipPosition="bottom">
78
+ * 📋 Copy to clipboard
79
+ * </span>
80
+ * ```
81
+ *
82
+ * ### Manual Control
83
+ * ```html
84
+ * <div fuiTooltip="Manual tooltip"
85
+ * fuiTooltipTrigger="manual"
86
+ * [fuiTooltipShow]="showTooltip">
87
+ * Hover me
88
+ * </div>
89
+ * ```
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * import { FuiTooltipDirective } from '@raintonic/formaui/components/tooltip';
94
+ *
95
+ * @Component({
96
+ * standalone: true,
97
+ * imports: [FuiTooltipDirective],
98
+ * template: `
99
+ * <button fuiTooltip="This will save your work"
100
+ * fuiTooltipPosition="top"
101
+ * fuiTooltipVariant="info">
102
+ * Save Document
103
+ * </button>
104
+ * `
105
+ * })
106
+ * export class MyComponent { }
107
+ * ```
108
+ */
109
+ declare class FuiTooltipDirective implements OnDestroy {
110
+ private static _nextId;
111
+ /**
112
+ * Tooltip content text
113
+ */
114
+ readonly fuiTooltip: _angular_core.InputSignal<string>;
115
+ /**
116
+ * Tooltip position relative to the trigger element
117
+ * @default 'top'
118
+ */
119
+ readonly fuiTooltipPosition: _angular_core.InputSignalWithTransform<TooltipPosition, string>;
120
+ /**
121
+ * Tooltip size
122
+ * @default 'md'
123
+ */
124
+ readonly fuiTooltipSize: _angular_core.InputSignalWithTransform<TooltipSize, string>;
125
+ /**
126
+ * Tooltip trigger event
127
+ * @default 'hover'
128
+ */
129
+ readonly fuiTooltipTrigger: _angular_core.InputSignalWithTransform<TooltipTrigger, string>;
130
+ /**
131
+ * Delay before showing tooltip (in milliseconds)
132
+ * @default 500
133
+ */
134
+ readonly fuiTooltipShowDelay: _angular_core.InputSignalWithTransform<number, unknown>;
135
+ /**
136
+ * Delay before hiding tooltip (in milliseconds)
137
+ * @default 0
138
+ */
139
+ readonly fuiTooltipHideDelay: _angular_core.InputSignalWithTransform<number, unknown>;
140
+ /**
141
+ * Whether the tooltip is disabled
142
+ * @default false
143
+ */
144
+ readonly fuiTooltipDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
145
+ /**
146
+ * Maximum width of the tooltip
147
+ * @default '200px'
148
+ */
149
+ readonly fuiTooltipMaxWidth: _angular_core.InputSignal<string>;
150
+ /**
151
+ * Offset distance from the trigger element (in pixels)
152
+ * @default 8
153
+ */
154
+ readonly fuiTooltipOffset: _angular_core.InputSignalWithTransform<number, unknown>;
155
+ /**
156
+ * Whether to show an arrow pointing to the trigger element
157
+ * @default true
158
+ */
159
+ readonly fuiTooltipArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
160
+ /**
161
+ * Manual control for showing/hiding tooltip (only works with trigger="manual")
162
+ * @default false
163
+ */
164
+ readonly fuiTooltipShow: _angular_core.InputSignalWithTransform<boolean, unknown>;
165
+ private readonly _isVisible;
166
+ private readonly _tooltipId;
167
+ private _overlayRef;
168
+ private _tooltipComponent;
169
+ private _showTimeout;
170
+ private _hideTimeout;
171
+ private _isHoveringTooltip;
172
+ readonly isVisible: Signal<boolean>;
173
+ readonly tooltipId: Signal<string>;
174
+ private readonly _elementRef;
175
+ private readonly _overlayService;
176
+ private readonly _environmentInjector;
177
+ constructor();
178
+ ngOnDestroy(): void;
179
+ onMouseEnter(): void;
180
+ onMouseLeave(): void;
181
+ onFocus(): void;
182
+ onBlur(): void;
183
+ onClick(): void;
184
+ onKeydown(event: KeyboardEvent): void;
185
+ /**
186
+ * Programmatically show the tooltip
187
+ */
188
+ show(): void;
189
+ /**
190
+ * Programmatically hide the tooltip
191
+ */
192
+ hide(): void;
193
+ /**
194
+ * Toggle tooltip visibility
195
+ */
196
+ toggle(): void;
197
+ private _scheduleShow;
198
+ private _scheduleHide;
199
+ private _showTooltip;
200
+ private _hideTooltip;
201
+ private _createTooltip;
202
+ private _getPositionsForTooltipPosition;
203
+ private _destroyTooltip;
204
+ private _clearTimeouts;
205
+ private readonly _onDocumentClick;
206
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTooltipDirective, never>;
207
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FuiTooltipDirective, "[fuiTooltip]", never, { "fuiTooltip": { "alias": "fuiTooltip"; "required": true; "isSignal": true; }; "fuiTooltipPosition": { "alias": "fuiTooltipPosition"; "required": false; "isSignal": true; }; "fuiTooltipSize": { "alias": "fuiTooltipSize"; "required": false; "isSignal": true; }; "fuiTooltipTrigger": { "alias": "fuiTooltipTrigger"; "required": false; "isSignal": true; }; "fuiTooltipShowDelay": { "alias": "fuiTooltipShowDelay"; "required": false; "isSignal": true; }; "fuiTooltipHideDelay": { "alias": "fuiTooltipHideDelay"; "required": false; "isSignal": true; }; "fuiTooltipDisabled": { "alias": "fuiTooltipDisabled"; "required": false; "isSignal": true; }; "fuiTooltipMaxWidth": { "alias": "fuiTooltipMaxWidth"; "required": false; "isSignal": true; }; "fuiTooltipOffset": { "alias": "fuiTooltipOffset"; "required": false; "isSignal": true; }; "fuiTooltipArrow": { "alias": "fuiTooltipArrow"; "required": false; "isSignal": true; }; "fuiTooltipShow": { "alias": "fuiTooltipShow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
208
+ }
209
+
210
+ /**
211
+ * @component FuiTooltipComponent
212
+ * @selector fui-tooltip
213
+ * @description Internal tooltip component rendered by FuiTooltipDirective via the overlay system.
214
+ * Not intended for direct use; created programmatically by the directive.
215
+ *
216
+ * @input content - (required) Tooltip text content.
217
+ * @input position - (required) Tooltip position relative to the trigger element.
218
+ * @input size - (required) Tooltip size variant.
219
+ * @input maxWidth - (required) Maximum CSS width of the tooltip.
220
+ * @input arrow - (required) Whether to render an arrow indicator.
221
+ * @input tooltipId - (required) Unique ID for ARIA accessibility linking.
222
+ *
223
+ * @example
224
+ * <!-- Used internally by FuiTooltipDirective -->
225
+ * <button fuiTooltip="Save your changes">Save</button>
226
+ *
227
+ * @internal
228
+ */
229
+ declare class FuiTooltipComponent {
230
+ /**
231
+ * Tooltip content text
232
+ */
233
+ readonly content: _angular_core.InputSignal<string>;
234
+ /**
235
+ * Tooltip position
236
+ */
237
+ readonly position: _angular_core.InputSignal<TooltipPosition>;
238
+ /**
239
+ * Tooltip size
240
+ */
241
+ readonly size: _angular_core.InputSignal<TooltipSize>;
242
+ /**
243
+ * Maximum width of the tooltip
244
+ */
245
+ readonly maxWidth: _angular_core.InputSignal<string>;
246
+ /**
247
+ * Whether to show arrow
248
+ */
249
+ readonly arrow: _angular_core.InputSignal<boolean>;
250
+ /**
251
+ * Tooltip ID for accessibility
252
+ */
253
+ readonly tooltipId: _angular_core.InputSignal<string>;
254
+ /**
255
+ * Computed CSS classes for the tooltip
256
+ */
257
+ readonly computedClasses: Signal<string>;
258
+ /**
259
+ * Computed arrow classes based on position
260
+ */
261
+ readonly arrowClasses: Signal<string>;
262
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTooltipComponent, never>;
263
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiTooltipComponent, "fui-tooltip", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": true; "isSignal": true; }; "arrow": { "alias": "arrow"; "required": true; "isSignal": true; }; "tooltipId": { "alias": "tooltipId"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
264
+ }
265
+
266
+ export { FuiTooltipComponent, FuiTooltipDirective, TOOLTIP_POSITIONS, TOOLTIP_SIZES, TOOLTIP_TRIGGERS };
267
+ export type { TooltipConfig, TooltipPosition, TooltipSize, TooltipTrigger };
268
+ //# sourceMappingURL=raintonic-formaui-components-tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-tooltip.d.ts","sources":["../../../lib/components/tooltip/tooltip.types.ts","../../../lib/components/tooltip/tooltip.directive.ts","../../../lib/components/tooltip/tooltip.component.ts"],"mappings":";;;AAAA;;AAEG;AACG,KAAM,eAAe;AAc3B;;AAEG;AACG,KAAM,WAAW;AAEvB;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;AACH,cAAa,iBAAiB;AAe9B,cAAa,aAAa;AAC1B,cAAa,gBAAgB;AAE7B;;AAEG;UACc,aAAa;eACjB,eAAe;WACnB,WAAW;cACR,cAAc;;;;;;;AAOzB;;AChCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEG;AACH,cAOa,mBAAoB,YAAW,SAAS;AACnD;AACA;;AAEG;yBACgB,aAAA,CAAA,WAAA;AAEnB;;;AAGG;iCACwB,aAAA,CAAA,wBAAA,CAAA,eAAA;AAI3B;;;AAGG;6BACoB,aAAA,CAAA,wBAAA,CAAA,WAAA;AAIvB;;;AAGG;gCACuB,aAAA,CAAA,wBAAA,CAAA,cAAA;AAI1B;;;AAGG;kCACyB,aAAA,CAAA,wBAAA;AAE5B;;;AAGG;kCACyB,aAAA,CAAA,wBAAA;AAE5B;;;AAGG;iCACwB,aAAA,CAAA,wBAAA;AAE3B;;;AAGG;iCACwB,aAAA,CAAA,WAAA;AAE3B;;;AAGG;+BACsB,aAAA,CAAA,wBAAA;AAEzB;;;AAGG;8BACqB,aAAA,CAAA,wBAAA;AAExB;;;AAGG;6BACoB,aAAA,CAAA,wBAAA;AAGvB;AACA;;;;;;AAQA,wBAAoB,MAAM;AAC1B,wBAAoB,MAAM;AAG1B;AACA;AACA;;AAyBA;AAMA;AAOA;AAOA;AAOA;AAOA;AAWA,qBAAiB,aAAa;AAO9B;;AAEG;AACH;AAMA;;AAEG;AACH;AAIA;;AAEG;AACH;AAQA;AAYA;AAgBA;AAgBA;AAUA;AAuDA;AAwDA;AAYA;AAWA;oDA7XW,mBAAmB;sDAAnB,mBAAmB;AAsY/B;;AC9eD;;;;;;;;;;;;;;;;;;AAkBG;AACH,cAgBa,mBAAmB;AAC9B;;AAEG;sBACa,aAAA,CAAA,WAAA;AAEhB;;AAEG;uBACc,aAAA,CAAA,WAAA,CAAA,eAAA;AAEjB;;AAEG;mBACU,aAAA,CAAA,WAAA,CAAA,WAAA;AAEb;;AAEG;uBACc,aAAA,CAAA,WAAA;AAEjB;;AAEG;oBACW,aAAA,CAAA,WAAA;AAEd;;AAEG;wBACe,aAAA,CAAA,WAAA;AAElB;;AAEG;AACH,8BAA0B,MAAM;AAUhC;;AAEG;AACH,2BAAuB,MAAM;oDA/ClB,mBAAmB;sDAAnB,mBAAmB;AA+D/B;;;;","names":[]}
@@ -0,0 +1,80 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, DoCheck, TemplateRef, Signal, ElementRef } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
4
+ import { Observable, Subject } from 'rxjs';
5
+ import { FuiFormFieldControl } from '@raintonic/formaui/core';
6
+ import { FuiTreeNode, FuiTreeNodeEvent, FuiTreeSelectionMode } from '@raintonic/formaui/components/tree';
7
+
8
+ interface FuiTreeSelectChange<T = any> {
9
+ value: FuiTreeNode<T> | FuiTreeNode<T>[] | null;
10
+ source: any;
11
+ }
12
+
13
+ declare class FuiTreeSelectComponent<T = any> implements ControlValueAccessor, FuiFormFieldControl<T | T[]>, OnDestroy, DoCheck {
14
+ readonly nodes: _angular_core.InputSignal<FuiTreeNode<T>[]>;
15
+ readonly selectionMode: _angular_core.InputSignal<"multi" | "single" | "checkbox">;
16
+ readonly placeholderInput: _angular_core.InputSignal<string>;
17
+ readonly showSearch: _angular_core.InputSignal<boolean>;
18
+ readonly loadChildren: _angular_core.InputSignal<((node: FuiTreeNode<T>) => Observable<FuiTreeNode<T>[]>) | null>;
19
+ readonly nodeTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
20
+ readonly displayField: _angular_core.InputSignal<string | ((node: FuiTreeNode<T>) => string) | null>;
21
+ readonly disabledInput: _angular_core.InputSignal<boolean>;
22
+ readonly selectionChange: _angular_core.OutputEmitterRef<FuiTreeSelectChange<T>>;
23
+ readonly stateChanges: Subject<void>;
24
+ private readonly _value;
25
+ readonly value: Signal<T | T[] | null>;
26
+ readonly placeholder: Signal<string>;
27
+ readonly focused: _angular_core.WritableSignal<boolean>;
28
+ readonly empty: Signal<boolean>;
29
+ readonly required: _angular_core.WritableSignal<boolean>;
30
+ private readonly _disabled;
31
+ readonly disabled: Signal<boolean>;
32
+ readonly errorState: _angular_core.WritableSignal<boolean>;
33
+ readonly controlType = "fui-tree-select";
34
+ readonly id: string;
35
+ readonly _panelOpen: _angular_core.WritableSignal<boolean>;
36
+ readonly _treeId: string;
37
+ readonly _searchFilter: _angular_core.WritableSignal<string>;
38
+ private _overlayRef;
39
+ private readonly _ngControlRef;
40
+ get ngControl(): NgControl | null;
41
+ private readonly _overlayService;
42
+ private readonly _elementRef;
43
+ readonly _selectedNodes: _angular_core.WritableSignal<FuiTreeNode<T>[]>;
44
+ trigger?: ElementRef<HTMLDivElement>;
45
+ panel?: ElementRef<HTMLDivElement>;
46
+ private _onChange;
47
+ private _onTouched;
48
+ constructor();
49
+ toggle(): void;
50
+ open(): void;
51
+ close(): void;
52
+ onContainerClick(_event: MouseEvent): void;
53
+ setDescribedByIds(_ids: string[]): void;
54
+ _onTreeSelect(event: FuiTreeNodeEvent<T>): void;
55
+ _onTreeUnselect(event: FuiTreeNodeEvent<T>): void;
56
+ _getDisplayValue(): string;
57
+ _getSelectedDisplayValues(): string[];
58
+ _onSearchInput(event: Event): void;
59
+ _onKeydown(event: KeyboardEvent): void;
60
+ readonly _treeSelectionMode: Signal<FuiTreeSelectionMode>;
61
+ writeValue(value: any): void;
62
+ registerOnChange(fn: any): void;
63
+ registerOnTouched(fn: any): void;
64
+ setDisabledState(disabled: boolean): void;
65
+ ngOnDestroy(): void;
66
+ ngDoCheck(): void;
67
+ private _getNodeLabel;
68
+ private _deselectAll;
69
+ private _updateMultiSelection;
70
+ private _collectSelected;
71
+ private _syncSelectedFromValue;
72
+ private _createOverlay;
73
+ private _disposeOverlay;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTreeSelectComponent<any>, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiTreeSelectComponent<any>, "fui-tree-select", never, { "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "placeholderInput": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
76
+ }
77
+
78
+ export { FuiTreeSelectComponent };
79
+ export type { FuiTreeSelectChange };
80
+ //# sourceMappingURL=raintonic-formaui-components-tree-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-tree-select.d.ts","sources":["../../../lib/components/tree-select/tree-select.types.ts","../../../lib/components/tree-select/fui-tree-select.component.ts"],"mappings":";;;;;;;AAEM,UAAW,mBAAmB;AAClC,WAAO,WAAW,MAAM,WAAW;;AAEpC;;ACwBD,cAyBa,sBAAsB,qBACtB,oBAAoB,EAAE,mBAAmB,WAAW,SAAS,EAAE,OAAO;oBAGnE,aAAA,CAAA,WAAA,CAAA,WAAA;4BACQ,aAAA,CAAA,WAAA;+BACG,aAAA,CAAA,WAAA;yBACN,aAAA,CAAA,WAAA;AACnB,2BAAqB,aAAA,CAAA,WAAA,SAAiB,WAAW,QAAQ,UAAU,CAAC,WAAW;2BAC1D,aAAA,CAAA,WAAA,CAAA,WAAA;2BACA,aAAA,CAAA,WAAA,kBAA0B,WAAW;4BACpC,aAAA,CAAA,WAAA;8BAEE,aAAA,CAAA,gBAAA,CAAA,mBAAA;2BAGH,OAAA;AACrB;AACA,oBAAgB,MAAM;0BACF,MAAA;sBACJ,aAAA,CAAA,cAAA;oBACF,MAAA;uBAIG,aAAA,CAAA,cAAA;AACjB;uBACiB,MAAA;yBACE,aAAA,CAAA,cAAA;;;yBAKA,aAAA,CAAA,cAAA;;4BAEG,aAAA,CAAA,cAAA;;AAEtB;AACA,qBAAiB,SAAS;AAI1B;AACA;6BAGuB,aAAA,CAAA,cAAA,CAAA,WAAA;AAEkB,cAAU,UAAU,CAAC,cAAc;AACrC,YAAQ,UAAU,CAAC,cAAc;;;;AAmBxE;AAQA;AAYA;AAUA,6BAAyB,UAAU;AAInC;yBAKqB,gBAAgB;2BAkBd,gBAAgB;AAYvC;;AAUA,0BAAsB,KAAK;AAK3B,sBAAkB,aAAa;iCAcJ,MAAA,CAAA,oBAAA;AAK3B;AAMA;AAIA;AAIA;AAKA;AAKA;AAWA;AASA;AAOA;AAUA;AASA;AASA;AA+BA;oDAzRW,sBAAsB;sDAAtB,sBAAsB;AA+RlC;;;;","names":[]}
@@ -0,0 +1,90 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+
4
+ /** Tree table node */
5
+ interface FuiTreeTableNode<T = any> {
6
+ data: T;
7
+ children?: FuiTreeTableNode<T>[] | Observable<FuiTreeTableNode<T>[]>;
8
+ expanded?: boolean;
9
+ selected?: boolean;
10
+ disabled?: boolean;
11
+ leaf?: boolean;
12
+ }
13
+ /** Flat representation of a tree table row */
14
+ interface FuiFlatTreeTableRow<T = any> {
15
+ data: T;
16
+ origin: FuiTreeTableNode<T>;
17
+ level: number;
18
+ expandable: boolean;
19
+ expanded: boolean;
20
+ selected: boolean;
21
+ disabled: boolean;
22
+ loading: boolean;
23
+ _flatIndex: number;
24
+ }
25
+ /** Tree table header - same structure as AdvancedDataTableHeader */
26
+ interface FuiTreeTableHeader {
27
+ label: string;
28
+ type: string;
29
+ field: string;
30
+ hasSort?: boolean;
31
+ hasFilter?: boolean;
32
+ stickyColumnStart?: boolean;
33
+ stickyColumnEnd?: boolean;
34
+ }
35
+ /** Tree table configuration */
36
+ interface FuiTreeTableConfig {
37
+ headerSticky?: boolean;
38
+ headers: FuiTreeTableHeader[];
39
+ areRowsSelectable?: boolean;
40
+ /** Which column shows the tree structure. Defaults to first column. */
41
+ treeColumn?: string;
42
+ /** Indentation per level in pixels */
43
+ indentPx?: number;
44
+ }
45
+ /** Column filter */
46
+ interface FuiTreeTableColumnFilter {
47
+ field: string;
48
+ operator: string;
49
+ value: string | number | boolean | Date | (string | number | Date)[];
50
+ }
51
+ /** Row expand/collapse event */
52
+ interface FuiTreeTableRowEvent<T = any> {
53
+ row: FuiTreeTableNode<T>;
54
+ flatRow: FuiFlatTreeTableRow<T>;
55
+ }
56
+
57
+ declare class FuiTreeTableComponent<T = any> {
58
+ readonly config: _angular_core.InputSignal<FuiTreeTableConfig>;
59
+ readonly sort: _angular_core.InputSignal<{
60
+ field: string;
61
+ direction: "ASC" | "DESC";
62
+ } | null>;
63
+ readonly filters: _angular_core.InputSignal<FuiTreeTableColumnFilter[]>;
64
+ readonly enableRowHighlight: _angular_core.InputSignal<boolean>;
65
+ readonly emptyMessage: _angular_core.InputSignal<string>;
66
+ readonly nodes: _angular_core.InputSignal<FuiTreeTableNode<T>[]>;
67
+ readonly loadChildren: _angular_core.InputSignal<((node: FuiTreeTableNode<T>) => Observable<FuiTreeTableNode<T>[]>) | null>;
68
+ readonly sortChange: _angular_core.OutputEmitterRef<{
69
+ field: string;
70
+ direction: "ASC" | "DESC";
71
+ } | null>;
72
+ readonly filtersChange: _angular_core.OutputEmitterRef<FuiTreeTableColumnFilter[]>;
73
+ readonly rowDblClick: _angular_core.OutputEmitterRef<T>;
74
+ readonly rowExpand: _angular_core.OutputEmitterRef<FuiTreeTableRowEvent<T>>;
75
+ readonly rowCollapse: _angular_core.OutputEmitterRef<FuiTreeTableRowEvent<T>>;
76
+ private readonly _refreshCounter;
77
+ readonly flatRows: _angular_core.Signal<FuiFlatTreeTableRow<T>[]>;
78
+ readonly treeColumnField: _angular_core.Signal<string>;
79
+ readonly indentPx: _angular_core.Signal<number>;
80
+ private _flattenNodes;
81
+ onToggleRow(flatRow: FuiFlatTreeTableRow<T>): void;
82
+ onSortColumn(field: string): void;
83
+ getCellValue(row: T, field: string): any;
84
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTreeTableComponent<any>, never>;
85
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiTreeTableComponent<any>, "fui-tree-table", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "enableRowHighlight": { "alias": "enableRowHighlight"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "filtersChange": "filtersChange"; "rowDblClick": "rowDblClick"; "rowExpand": "rowExpand"; "rowCollapse": "rowCollapse"; }, never, never, true, never>;
86
+ }
87
+
88
+ export { FuiTreeTableComponent };
89
+ export type { FuiFlatTreeTableRow, FuiTreeTableColumnFilter, FuiTreeTableConfig, FuiTreeTableHeader, FuiTreeTableNode, FuiTreeTableRowEvent };
90
+ //# sourceMappingURL=raintonic-formaui-components-tree-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-tree-table.d.ts","sources":["../../../lib/components/tree-table/tree-table.types.ts","../../../lib/components/tree-table/fui-tree-table.component.ts"],"mappings":";;;AAEA;AACM,UAAW,gBAAgB;;AAE/B,eAAW,gBAAgB,QAAQ,UAAU,CAAC,gBAAgB;;;;;AAK/D;AAED;AACM,UAAW,mBAAmB;;AAElC,YAAQ,gBAAgB;;;;;;;;AAQzB;AAED;UACiB,kBAAkB;;;;;;;;AAQlC;AAED;UACiB,kBAAkB;;aAExB,kBAAkB;;;;;;AAM5B;AAED;UACiB,wBAAwB;;;AAGvC,uCAAmC,IAAI,sBAAsB,IAAI;AAClE;AAED;AACM,UAAW,oBAAoB;AACnC,SAAK,gBAAgB;AACrB,aAAS,mBAAmB;AAC7B;;AC/CD,cAYa,qBAAqB;qBAEjB,aAAA,CAAA,WAAA,CAAA,kBAAA;AACf,mBAAa,aAAA,CAAA,WAAA;;AAAqC;AAA+B;sBACjE,aAAA,CAAA,WAAA,CAAA,wBAAA;iCACW,aAAA,CAAA,WAAA;2BACN,aAAA,CAAA,WAAA;oBAGP,aAAA,CAAA,WAAA,CAAA,gBAAA;AACd,2BAAqB,aAAA,CAAA,WAAA,SAAiB,gBAAgB,QAAQ,UAAU,CAAC,gBAAgB;AAGzF,yBAAmB,aAAA,CAAA,gBAAA;;AAAsC;AAA2B;4BAC9D,aAAA,CAAA,gBAAA,CAAA,wBAAA;0BACF,aAAA,CAAA,gBAAA;wBACF,aAAA,CAAA,gBAAA,CAAA,oBAAA;0BACE,aAAA,CAAA,gBAAA,CAAA,oBAAA;AAGpB;uBAEiB,aAAA,CAAA,MAAA,CAAA,mBAAA;8BAKO,aAAA,CAAA,MAAA;uBAKP,aAAA,CAAA,MAAA;AAGjB;yBA2BqB,mBAAmB;AAYxC;;oDA1EW,qBAAqB;sDAArB,qBAAqB;AA2FjC;;;;","names":[]}