@raintonic/formaui 0.4.0 → 0.9.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.
- package/CHANGELOG.md +80 -35
- package/README.md +22 -26
- package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +39 -41
- package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-cdk-form-field.mjs +207 -3
- package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-cdk-overlay.mjs +19 -1
- package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +5 -12
- package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-accordion.mjs +8 -5
- package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-alert.mjs +16 -2
- package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-autocomplete.mjs +255 -462
- package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-avatar.mjs +34 -59
- package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-badge.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +4 -4
- package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-button-group.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-button.mjs +15 -20
- package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-card.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-checkbox.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-chip.mjs +97 -0
- package/fesm2022/raintonic-formaui-components-chip.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-data-table.mjs +69 -29
- package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-date-picker.mjs +223 -144
- package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-divider.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-drawer.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs +888 -0
- package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs +774 -0
- package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-empty-state.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-file-upload.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-form-field.mjs +81 -50
- package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-icon.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-input.mjs +47 -12
- package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-list.mjs +4 -4
- package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-number-input.mjs +20 -12
- package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-paginator.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-password-input.mjs +35 -110
- package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-popover.mjs +3 -2
- package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-progressbar.mjs +3 -2
- package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-radio.mjs +5 -6
- package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-select.mjs +257 -412
- package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-side-panel.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs +525 -0
- package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-skeleton.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-slider.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-spinner.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-stepper.mjs +50 -45
- package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-strength-meter.mjs +149 -0
- package/fesm2022/raintonic-formaui-components-strength-meter.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tab.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-time-picker.mjs +194 -154
- package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-toggle-group.mjs +302 -0
- package/fesm2022/raintonic-formaui-components-toggle-group.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-toggle.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-toolbar.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-tooltip.mjs +10 -4
- package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-topbar.mjs +60 -0
- package/fesm2022/raintonic-formaui-components-topbar.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tree-select.mjs +59 -69
- package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-tree-table.mjs +2 -2
- package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-components-tree.mjs +31 -5
- package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-core.mjs +279 -1
- package/fesm2022/raintonic-formaui-core.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-services-breakpoint.mjs +93 -0
- package/fesm2022/raintonic-formaui-services-breakpoint.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-services-dialog.mjs +314 -16
- package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-services-notification.mjs +93 -29
- package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -1
- package/fesm2022/raintonic-formaui-services-theme.mjs +46 -196
- package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -1
- package/fesm2022/raintonic-formaui.mjs +1 -1
- package/fesm2022/raintonic-formaui.mjs.map +1 -1
- package/llms-full.txt +2329 -450
- package/llms.txt +36 -33
- package/package.json +42 -19
- package/styles/fonts/Geist-Bold.woff2 +0 -0
- package/styles/fonts/Geist-Italic.woff2 +0 -0
- package/styles/fonts/Geist-Light.woff2 +0 -0
- package/styles/fonts/Geist-Medium.woff2 +0 -0
- package/styles/fonts/Geist-Regular.woff2 +0 -0
- package/styles/fonts/Geist-SemiBold.woff2 +0 -0
- package/styles/fonts/GeistMono-Regular.woff2 +0 -0
- package/styles/generated/_tokens.scss +906 -0
- package/styles/index.scss +11 -10
- package/styles/partials/_brand.scss +46 -0
- package/styles/partials/_constants.scss +22 -20
- package/styles/partials/_fonts.scss +54 -10
- package/styles/partials/_grid.scss +29 -18
- package/styles/partials/_mixins.scss +69 -27
- package/styles/partials/_motion.scss +28 -33
- package/styles/partials/_theme.scss +28 -255
- package/styles/partials/_type.scss +117 -0
- package/styles/partials/_typography.scss +45 -45
- package/styles/partials/_utilities.scss +198 -98
- package/styles/partials/components/_button.scss +144 -75
- package/styles/partials/components/_dialog.scss +181 -180
- package/styles/partials/components/_overlay.scss +87 -87
- package/styles/partials/themes/_dark.scss +3 -268
- package/styles/partials/themes/_light.scss +4 -268
- package/styles/styles.css +7744 -0
- package/styles/styles.entry.scss +3 -0
- package/styles/utilities.css +4802 -0
- package/styles/utilities.entry.scss +3 -0
- package/types/raintonic-formaui-cdk-drag-drop.d.ts +0 -1
- package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -1
- package/types/raintonic-formaui-cdk-form-field.d.ts +118 -2
- package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -1
- package/types/raintonic-formaui-cdk-overlay.d.ts +2 -0
- package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -1
- package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +0 -1
- package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -1
- package/types/raintonic-formaui-components-accordion.d.ts +1 -1
- package/types/raintonic-formaui-components-accordion.d.ts.map +1 -1
- package/types/raintonic-formaui-components-alert.d.ts +6 -1
- package/types/raintonic-formaui-components-alert.d.ts.map +1 -1
- package/types/raintonic-formaui-components-autocomplete.d.ts +73 -116
- package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -1
- package/types/raintonic-formaui-components-avatar.d.ts +13 -31
- package/types/raintonic-formaui-components-avatar.d.ts.map +1 -1
- package/types/raintonic-formaui-components-button.d.ts +4 -10
- package/types/raintonic-formaui-components-button.d.ts.map +1 -1
- package/types/raintonic-formaui-components-chip.d.ts +43 -0
- package/types/raintonic-formaui-components-chip.d.ts.map +1 -0
- package/types/raintonic-formaui-components-data-table.d.ts +48 -11
- package/types/raintonic-formaui-components-data-table.d.ts.map +1 -1
- package/types/raintonic-formaui-components-date-picker.d.ts +59 -23
- package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -1
- package/types/raintonic-formaui-components-dropdown-menu.d.ts +394 -0
- package/types/raintonic-formaui-components-dropdown-menu.d.ts.map +1 -0
- package/types/raintonic-formaui-components-dual-tier-navigation.d.ts +87 -0
- package/types/raintonic-formaui-components-dual-tier-navigation.d.ts.map +1 -0
- package/types/raintonic-formaui-components-form-field.d.ts +51 -21
- package/types/raintonic-formaui-components-form-field.d.ts.map +1 -1
- package/types/raintonic-formaui-components-input.d.ts +20 -11
- package/types/raintonic-formaui-components-input.d.ts.map +1 -1
- package/types/raintonic-formaui-components-number-input.d.ts +5 -3
- package/types/raintonic-formaui-components-number-input.d.ts.map +1 -1
- package/types/raintonic-formaui-components-password-input.d.ts +18 -32
- package/types/raintonic-formaui-components-password-input.d.ts.map +1 -1
- package/types/raintonic-formaui-components-popover.d.ts.map +1 -1
- package/types/raintonic-formaui-components-progressbar.d.ts +1 -1
- package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -1
- package/types/raintonic-formaui-components-radio.d.ts +1 -2
- package/types/raintonic-formaui-components-radio.d.ts.map +1 -1
- package/types/raintonic-formaui-components-select.d.ts +107 -76
- package/types/raintonic-formaui-components-select.d.ts.map +1 -1
- package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts +223 -0
- package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts.map +1 -0
- package/types/raintonic-formaui-components-stepper.d.ts +4 -2
- package/types/raintonic-formaui-components-stepper.d.ts.map +1 -1
- package/types/raintonic-formaui-components-strength-meter.d.ts +78 -0
- package/types/raintonic-formaui-components-strength-meter.d.ts.map +1 -0
- package/types/raintonic-formaui-components-time-picker.d.ts +44 -24
- package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -1
- package/types/raintonic-formaui-components-toggle-group.d.ts +100 -0
- package/types/raintonic-formaui-components-toggle-group.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tooltip.d.ts +2 -1
- package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -1
- package/types/raintonic-formaui-components-topbar.d.ts +48 -0
- package/types/raintonic-formaui-components-topbar.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tree-select.d.ts +25 -9
- package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -1
- package/types/raintonic-formaui-components-tree.d.ts +12 -1
- package/types/raintonic-formaui-components-tree.d.ts.map +1 -1
- package/types/raintonic-formaui-core.d.ts +243 -5
- package/types/raintonic-formaui-core.d.ts.map +1 -1
- package/types/raintonic-formaui-services-breakpoint.d.ts +44 -0
- package/types/raintonic-formaui-services-breakpoint.d.ts.map +1 -0
- package/types/raintonic-formaui-services-dialog.d.ts +141 -2
- package/types/raintonic-formaui-services-dialog.d.ts.map +1 -1
- package/types/raintonic-formaui-services-notification.d.ts +24 -2
- package/types/raintonic-formaui-services-notification.d.ts.map +1 -1
- package/types/raintonic-formaui-services-theme.d.ts +13 -103
- package/types/raintonic-formaui-services-theme.d.ts.map +1 -1
- package/types/raintonic-formaui.d.ts +1 -1
- package/fesm2022/raintonic-formaui-components-big-menu.mjs +0 -86
- package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +0 -1
- package/fesm2022/raintonic-formaui-components-menu.mjs +0 -896
- package/fesm2022/raintonic-formaui-components-menu.mjs.map +0 -1
- package/fesm2022/raintonic-formaui-components-sidebar.mjs +0 -275
- package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +0 -1
- package/fesm2022/raintonic-formaui-components-tag.mjs +0 -95
- package/fesm2022/raintonic-formaui-components-tag.mjs.map +0 -1
- package/styles/_fonts-entry.scss +0 -3
- package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
- package/styles/fonts/inter-tight-latin.woff2 +0 -0
- package/types/raintonic-formaui-components-big-menu.d.ts +0 -73
- package/types/raintonic-formaui-components-big-menu.d.ts.map +0 -1
- package/types/raintonic-formaui-components-menu.d.ts +0 -403
- package/types/raintonic-formaui-components-menu.d.ts.map +0 -1
- package/types/raintonic-formaui-components-sidebar.d.ts +0 -185
- package/types/raintonic-formaui-components-sidebar.d.ts.map +0 -1
- package/types/raintonic-formaui-components-tag.d.ts +0 -43
- package/types/raintonic-formaui-components-tag.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Observable, Subject } from 'rxjs';
|
|
2
2
|
import { NgControl, FormControl, FormGroupDirective, NgForm } from '@angular/forms';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, Signal, OnDestroy } from '@angular/core';
|
|
4
|
+
import { InjectionToken, Signal, OnDestroy, WritableSignal } from '@angular/core';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Interface for form field controls following Angular Material patterns
|
|
@@ -40,6 +40,10 @@ interface FuiFormFieldControl<T = unknown> {
|
|
|
40
40
|
* Whether the control is disabled
|
|
41
41
|
*/
|
|
42
42
|
readonly disabled: Signal<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the control is in read-only mode
|
|
45
|
+
*/
|
|
46
|
+
readonly readonly: Signal<boolean>;
|
|
43
47
|
/**
|
|
44
48
|
* Whether the control is in an error state
|
|
45
49
|
*/
|
|
@@ -61,9 +65,12 @@ interface FuiFormFieldControl<T = unknown> {
|
|
|
61
65
|
*/
|
|
62
66
|
setDescribedByIds(ids: string[]): void;
|
|
63
67
|
/**
|
|
64
|
-
*
|
|
68
|
+
* Whether the form-field should show a copy-to-clipboard button when
|
|
69
|
+
* the control is in read-only mode. Only plain input controls (e.g.
|
|
70
|
+
* `fuiInput`) return `true` — wrapper controls with their own interactive
|
|
71
|
+
* elements should not implement this (defaults to `false`).
|
|
65
72
|
*/
|
|
66
|
-
|
|
73
|
+
readonlyCopyEnabled?(): boolean;
|
|
67
74
|
}
|
|
68
75
|
/**
|
|
69
76
|
* Injection token used to provide the form field control to the form field
|
|
@@ -127,6 +134,237 @@ declare abstract class FuiIntlBase implements OnDestroy {
|
|
|
127
134
|
static ɵprov: i0.ɵɵInjectableDeclaration<FuiIntlBase>;
|
|
128
135
|
}
|
|
129
136
|
|
|
130
|
-
|
|
131
|
-
|
|
137
|
+
/**
|
|
138
|
+
* # MenuItem
|
|
139
|
+
*
|
|
140
|
+
* Canonical interface for menu items across all navigation components.
|
|
141
|
+
* Inspired by PrimeNG's MenuItem model.
|
|
142
|
+
*
|
|
143
|
+
* ## Usage
|
|
144
|
+
*
|
|
145
|
+
* ```typescript
|
|
146
|
+
* const items: MenuItem[] = [
|
|
147
|
+
* { label: 'Dashboard', icon: 'house', routerLink: '/dashboard' },
|
|
148
|
+
* {
|
|
149
|
+
* label: 'Products',
|
|
150
|
+
* icon: 'package',
|
|
151
|
+
* items: [
|
|
152
|
+
* { label: 'List', routerLink: '/products' },
|
|
153
|
+
* { label: 'Categories', routerLink: '/categories' },
|
|
154
|
+
* ],
|
|
155
|
+
* },
|
|
156
|
+
* { separator: true },
|
|
157
|
+
* { label: 'Settings', icon: 'gear', command: () => openSettings() },
|
|
158
|
+
* ];
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
interface MenuItem {
|
|
162
|
+
/** Display text for the menu item */
|
|
163
|
+
label?: string;
|
|
164
|
+
/** Optional icon name for fui-icon */
|
|
165
|
+
icon?: string;
|
|
166
|
+
/** Callback when item is clicked */
|
|
167
|
+
command?: (event?: Event) => void;
|
|
168
|
+
/** Nested child submenu items */
|
|
169
|
+
items?: MenuItem[];
|
|
170
|
+
/** Disable interaction */
|
|
171
|
+
disabled?: boolean;
|
|
172
|
+
/** Conditionally hide item */
|
|
173
|
+
visible?: boolean;
|
|
174
|
+
/** Render a horizontal separator instead of a clickable item */
|
|
175
|
+
separator?: boolean;
|
|
176
|
+
/** Render a section header label (non-clickable group heading) */
|
|
177
|
+
sectionHeader?: boolean;
|
|
178
|
+
/** Angular router link */
|
|
179
|
+
routerLink?: string | any[];
|
|
180
|
+
/** Router query parameters */
|
|
181
|
+
queryParams?: Record<string, any>;
|
|
182
|
+
/** Router fragment */
|
|
183
|
+
fragment?: string;
|
|
184
|
+
/** Initial expanded state for submenu parents */
|
|
185
|
+
expanded?: boolean;
|
|
186
|
+
/** Anchor target attribute (_self, _blank, etc.) */
|
|
187
|
+
target?: string;
|
|
188
|
+
/** HTML title attribute for tooltip */
|
|
189
|
+
title?: string;
|
|
190
|
+
/** Unique identifier — auto-generated if not provided */
|
|
191
|
+
id?: string;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Interface for components that act as a strength meter within a form field.
|
|
196
|
+
* Currently used as a presence-only token — the form-field only queries
|
|
197
|
+
* whether a strength meter component is projected as a content child.
|
|
198
|
+
*/
|
|
199
|
+
interface FuiStrengthMeter {
|
|
200
|
+
/** Placeholder for future shared interface needs. */
|
|
201
|
+
__brand: '';
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Injection token used to look up a strength meter component projected
|
|
205
|
+
* inside a form field without creating a hard secondary-entry-point
|
|
206
|
+
* dependency.
|
|
207
|
+
*/
|
|
208
|
+
declare const FUI_STRENGTH_METER: InjectionToken<FuiStrengthMeter>;
|
|
209
|
+
|
|
210
|
+
declare const noop: (..._args: any[]) => void;
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Contract that a parent component (select or autocomplete) must satisfy
|
|
214
|
+
* for the multi-select helpers. Both FuiSelectComponent and FuiAutocompleteComponent
|
|
215
|
+
* implement this implicitly by exposing the same signal/input shape.
|
|
216
|
+
*/
|
|
217
|
+
interface MultiSelectHost {
|
|
218
|
+
readonly value: Signal<unknown>;
|
|
219
|
+
readonly options: Signal<readonly OptionLike[]>;
|
|
220
|
+
readonly multiple: () => boolean;
|
|
221
|
+
readonly compareWith: () => (a: unknown, b: unknown) => boolean;
|
|
222
|
+
}
|
|
223
|
+
/** Minimal shape of an option that the helpers need. */
|
|
224
|
+
interface OptionLike {
|
|
225
|
+
readonly value: () => unknown;
|
|
226
|
+
readonly disabled: () => boolean;
|
|
227
|
+
getLabel(): string;
|
|
228
|
+
select(): void;
|
|
229
|
+
deselect(): void;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Number of options to skip when handling PageUp/PageDown in both select and autocomplete.
|
|
233
|
+
* Effective page size is `Math.min(KEYBOARD_PAGE_SIZE, optionCount)`.
|
|
234
|
+
*/
|
|
235
|
+
declare const KEYBOARD_PAGE_SIZE = 10;
|
|
236
|
+
/**
|
|
237
|
+
* Interface extending OptionLike with methods needed for keyboard navigation.
|
|
238
|
+
* Components that use keyboard navigation helpers must provide options that
|
|
239
|
+
* implement this contract.
|
|
240
|
+
*/
|
|
241
|
+
interface NavigableOption extends OptionLike {
|
|
242
|
+
readonly _selected?: () => boolean;
|
|
243
|
+
setActive(): void;
|
|
244
|
+
setInactive(): void;
|
|
245
|
+
_getHostElement(): HTMLElement;
|
|
246
|
+
readonly id: string;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Computes the display string shown in the trigger.
|
|
250
|
+
*
|
|
251
|
+
* - Single mode: returns the label of the matching option (or stringified value).
|
|
252
|
+
* - Multiple mode: joins selected option labels with `', '`.
|
|
253
|
+
* - Null/undefined/empty-array: returns `''`.
|
|
254
|
+
* - If no option matches the value, returns `String(value)` (single) or `''` (multiple).
|
|
255
|
+
*/
|
|
256
|
+
declare function computeMultiDisplayValue(host: MultiSelectHost): string;
|
|
257
|
+
/**
|
|
258
|
+
* Iterates all options and calls `select()` / `deselect()` based on whether
|
|
259
|
+
* the option's value matches the current model value (by identity).
|
|
260
|
+
*
|
|
261
|
+
* - Single mode: compares the scalar value directly.
|
|
262
|
+
* - Multiple mode: checks each array element.
|
|
263
|
+
* - Options with `undefined` value are skipped.
|
|
264
|
+
*/
|
|
265
|
+
declare function syncMultiOptions(host: MultiSelectHost): void;
|
|
266
|
+
/**
|
|
267
|
+
* Toggles an option value in/out of an array-based multi-value.
|
|
268
|
+
*
|
|
269
|
+
* - If the value is already present, it is removed (deselect).
|
|
270
|
+
* - If absent, it is appended (select).
|
|
271
|
+
* - If `current` is not an array, starts fresh with `[]`.
|
|
272
|
+
*
|
|
273
|
+
* Returns a **new array** (shallow copy) so callers can set it as the new model value.
|
|
274
|
+
*/
|
|
275
|
+
declare function toggleMultiValue(current: unknown, optionValue: unknown, compareFn: (a: unknown, b: unknown) => boolean): unknown[];
|
|
276
|
+
/**
|
|
277
|
+
* Checks whether a value represents the "empty" state.
|
|
278
|
+
*
|
|
279
|
+
* - `null` or `undefined` → empty
|
|
280
|
+
* - Empty array `[]` → empty (so multiple-mode starts with no selection)
|
|
281
|
+
* - Everything else → not empty
|
|
282
|
+
*/
|
|
283
|
+
declare function isEmpty(value: unknown): boolean;
|
|
284
|
+
/**
|
|
285
|
+
* Finds the index of the first enabled option whose value matches the current
|
|
286
|
+
* model value. Used to set the initial keyboard-navigation active option when
|
|
287
|
+
* opening the panel.
|
|
288
|
+
*
|
|
289
|
+
* - Single mode: finds the option whose value equals the scalar value.
|
|
290
|
+
* - Multiple mode: finds the first option whose value appears in the array.
|
|
291
|
+
* - Returns `0` when no match is found (default to first option).
|
|
292
|
+
* - Returns `-1` when there are no enabled options.
|
|
293
|
+
*/
|
|
294
|
+
declare function findInitialActiveOptionIndex(opts: readonly OptionLike[], value: unknown, multiple: boolean, compareFn: (a: unknown, b: unknown) => boolean): number;
|
|
295
|
+
/**
|
|
296
|
+
* Returns the next index to navigate to with wrap-around.
|
|
297
|
+
*
|
|
298
|
+
* If the option count is 0, returns -1 (no valid target).
|
|
299
|
+
* If the current index is negative, starts from the beginning (delta > 0) or end (delta < 0).
|
|
300
|
+
*/
|
|
301
|
+
declare function computeNextActiveOptionIndex(optCount: number, currentIndex: number, delta: number): number;
|
|
302
|
+
/**
|
|
303
|
+
* Computes a new active index constrained within [0, optCount - 1], applying
|
|
304
|
+
* a page-sized step (clamped to optCount). Used for PageUp/PageDown navigation.
|
|
305
|
+
*/
|
|
306
|
+
declare function computePagedActiveOptionIndex(optCount: number, currentIndex: number, direction: -1 | 1): number;
|
|
307
|
+
/**
|
|
308
|
+
* Scrolls the given container element so the option at `element` is visible.
|
|
309
|
+
*
|
|
310
|
+
* Handles two panel layouts:
|
|
311
|
+
* - **Direct**: the container itself is the scrollable panel (`container` === `scrollContainer`).
|
|
312
|
+
* - **Nested**: options sit inside a scrollable sub-element within the main panel
|
|
313
|
+
* (`container` is the nested element, e.g. `.fui-autocomplete__options`).
|
|
314
|
+
*
|
|
315
|
+
* Pass `select`-style (direct) or `autocomplete`-style (nested) via a selector.
|
|
316
|
+
*/
|
|
317
|
+
declare function scrollOptionIntoView(element: HTMLElement | null | undefined, container: HTMLElement | null | undefined, nestedSelector?: string): void;
|
|
318
|
+
/**
|
|
319
|
+
* Screen reader announcement.
|
|
320
|
+
* Clears the message first so repeated identical messages are re-announced.
|
|
321
|
+
*/
|
|
322
|
+
declare function announceMessage(liveSignal: WritableSignal<string>, message: string): void;
|
|
323
|
+
/**
|
|
324
|
+
* Computes the active descendant id for aria-activedescendant.
|
|
325
|
+
*/
|
|
326
|
+
declare function computeActiveDescendant(opts: readonly {
|
|
327
|
+
id: string;
|
|
328
|
+
disabled(): boolean;
|
|
329
|
+
}[], activeIndex: number): string | null;
|
|
330
|
+
/**
|
|
331
|
+
* Returns all non-disabled options from the given list.
|
|
332
|
+
*/
|
|
333
|
+
declare function getEnabledOptions<T extends {
|
|
334
|
+
disabled(): boolean;
|
|
335
|
+
}>(opts: readonly T[]): T[];
|
|
336
|
+
/**
|
|
337
|
+
* Determines whether a single option should be considered selected based on
|
|
338
|
+
* the current model value.
|
|
339
|
+
*
|
|
340
|
+
* Labels are unique identifiers, so comparison uses value identity (`===`).
|
|
341
|
+
* No custom `compareWith` is needed.
|
|
342
|
+
*/
|
|
343
|
+
declare function isOptionSelected(optValue: unknown, currentValue: unknown, isMultiple: boolean, compareFn: (a: unknown, b: unknown) => boolean): boolean;
|
|
344
|
+
/**
|
|
345
|
+
* Result of `applyOptionSelection`, returned so the calling component can
|
|
346
|
+
* update its signals and emit outputs.
|
|
347
|
+
*/
|
|
348
|
+
interface SelectionResult {
|
|
349
|
+
/** New value for the model (already toggled/selected). */
|
|
350
|
+
newValue: unknown;
|
|
351
|
+
/** Whether the option was already selected before this call (multi-mode only; `false` for single). */
|
|
352
|
+
wasSelected: boolean;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Applied option selection for both single and multiple mode.
|
|
356
|
+
*
|
|
357
|
+
* This is the shared core of `_onOptionSelected` in both `FuiSelectComponent`
|
|
358
|
+
* and `FuiAutocompleteComponent`. It mutates option state (`select()`/`deselect()`)
|
|
359
|
+
* and returns the new value, but does NOT touch component signals or emit outputs
|
|
360
|
+
* — that stays in the calling component.
|
|
361
|
+
*
|
|
362
|
+
* @param host The host component (provides `value`, `options`, `multiple`).
|
|
363
|
+
* @param option The option being selected/deselected.
|
|
364
|
+
* @returns `{ newValue, wasSelected }`.
|
|
365
|
+
*/
|
|
366
|
+
declare function applyOptionSelection(host: MultiSelectHost, option: OptionLike): SelectionResult;
|
|
367
|
+
|
|
368
|
+
export { DefaultErrorStateMatcher, FUI_FORM_FIELD_CONTROL, FUI_STRENGTH_METER, FuiIntlBase, KEYBOARD_PAGE_SIZE, announceMessage, applyOptionSelection, computeActiveDescendant, computeMultiDisplayValue, computeNextActiveOptionIndex, computePagedActiveOptionIndex, findInitialActiveOptionIndex, getEnabledOptions, isEmpty, isOptionSelected, mixinErrorState, noop, scrollOptionIntoView, syncMultiOptions, toggleMultiValue };
|
|
369
|
+
export type { CanUpdateErrorState, Constructor, ErrorStateMatcher, FuiFormFieldControl, FuiStrengthMeter, HasErrorState, MenuItem, MultiSelectHost, NavigableOption, OptionLike, SelectionResult };
|
|
132
370
|
//# sourceMappingURL=raintonic-formaui-core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raintonic-formaui-core.d.ts","sources":["../../../lib/core/form-field-control.ts","../../../lib/core/error-state.ts","../../../lib/core/intl/fui-intl-base.ts"],"mappings":";;;;;AAIA;;;AAGG;AACG,UAAW,mBAAmB;AAClC;;AAEG;AACH,2BAAuB,UAAU;AAEjC;;AAEG;oBACa,MAAM;AAEtB;;AAEG;AACH,0BAAsB,MAAM;AAE5B;;AAEG;AACH,wBAAoB,SAAS;AAE7B;;AAEG;AACH,sBAAkB,MAAM;AAExB;;AAEG;AACH,oBAAgB,MAAM;AAEtB;;AAEG;AACH,uBAAmB,MAAM;AAEzB;;AAEG;AACH,uBAAmB,MAAM;AAEzB;;AAEG;AACH,yBAAqB,MAAM;AAE3B;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH,4BAAwB,UAAU;AAElC;;AAEG;AACH;AAEA;;
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-core.d.ts","sources":["../../../lib/core/form-field-control.ts","../../../lib/core/error-state.ts","../../../lib/core/intl/fui-intl-base.ts","../../../lib/core/menu-item.model.ts","../../../lib/core/strength-meter.ts","../../../lib/core/utils/index.ts","../../../lib/core/multi-select/multi-select.ts"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Signal } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/** I 6 breakpoint nominali (mobile-first min-width). */
|
|
5
|
+
type FuiBreakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
6
|
+
/**
|
|
7
|
+
* Soglie in px (mobile-first min-width).
|
|
8
|
+
*
|
|
9
|
+
* Sync con:
|
|
10
|
+
* - tokens/core/layout.json (bp.{xs..2xl})
|
|
11
|
+
* - lib/styles/partials/_constants.scss ($fui-bp-{xs..2xl})
|
|
12
|
+
*
|
|
13
|
+
* Drift detection: vedi consistency test in breakpoint.service.spec.ts.
|
|
14
|
+
*/
|
|
15
|
+
declare const FUI_BREAKPOINTS: Readonly<Record<FuiBreakpoint, number>>;
|
|
16
|
+
/**
|
|
17
|
+
* FuiBreakpointService — accesso signal-based ai breakpoint del PRD.
|
|
18
|
+
*
|
|
19
|
+
* - `matches(bp)`: Signal<boolean> true se viewport ≥ soglia del bp (semantica
|
|
20
|
+
* `@media (min-width: …)`).
|
|
21
|
+
* - SSR-safe: prima dell'attach al browser tutti i signal sono `false`.
|
|
22
|
+
*/
|
|
23
|
+
declare class FuiBreakpointService {
|
|
24
|
+
private readonly _destroyRef;
|
|
25
|
+
private readonly _document;
|
|
26
|
+
private readonly _platformId;
|
|
27
|
+
private readonly _matches;
|
|
28
|
+
private static readonly BP_ORDER_DESC;
|
|
29
|
+
/**
|
|
30
|
+
* Bp più grande matched mobile-first. `null` se viewport < `xs` (480px) o in SSR.
|
|
31
|
+
*/
|
|
32
|
+
readonly active: Signal<FuiBreakpoint | null>;
|
|
33
|
+
constructor();
|
|
34
|
+
/**
|
|
35
|
+
* Signal true se viewport ≥ soglia del bp. Stesso Signal per chiamate ripetute.
|
|
36
|
+
*/
|
|
37
|
+
matches(bp: FuiBreakpoint): Signal<boolean>;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FuiBreakpointService, never>;
|
|
39
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FuiBreakpointService>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export { FUI_BREAKPOINTS, FuiBreakpointService };
|
|
43
|
+
export type { FuiBreakpoint };
|
|
44
|
+
//# sourceMappingURL=raintonic-formaui-services-breakpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-services-breakpoint.d.ts","sources":["../../../lib/services/breakpoint/breakpoint.service.ts"],"mappings":";;;AAGA;AACM,KAAM,aAAa;AAEzB;;;;;;;;AAQG;AACH,cAAa,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa;AAS3D;;;;;;AAMG;AACH,cACa,oBAAoB;AAC/B;AACA;AACA;AAEA;AAUA;AAEA;;AAEG;qBACc,MAAM,CAAC,aAAa;;AA8BrC;;AAEG;gBACS,aAAa,GAAG,MAAM;yCArDvB,oBAAoB;6CAApB,oBAAoB;AAwDhC;;;;","names":[]}
|
|
@@ -163,6 +163,49 @@ interface FuiDialogOpenResult<T, R> {
|
|
|
163
163
|
/** Reference to the component instance if dialog was created with a component */
|
|
164
164
|
componentRef?: T;
|
|
165
165
|
}
|
|
166
|
+
/** Position of the drawer relative to the viewport edge */
|
|
167
|
+
type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
168
|
+
/** Size preset for the drawer */
|
|
169
|
+
type DrawerSize = 'sm' | 'md' | 'lg' | 'full';
|
|
170
|
+
/** Size presets mapped to CSS values */
|
|
171
|
+
declare const DRAWER_SIZE_VALUES: Record<DrawerSize, string>;
|
|
172
|
+
/**
|
|
173
|
+
* Configuration for opening a drawer via DialogService.openAsDrawer()
|
|
174
|
+
*/
|
|
175
|
+
interface FuiDrawerConfig<D = unknown> {
|
|
176
|
+
/** ID for the drawer. If omitted, a unique one will be generated */
|
|
177
|
+
id?: string;
|
|
178
|
+
/** Position of the drawer (which viewport edge it slides from). Default: 'right'. */
|
|
179
|
+
position?: DrawerPosition;
|
|
180
|
+
/** Size of the drawer. For left/right positions this controls width; for top/bottom it controls height. */
|
|
181
|
+
size?: string;
|
|
182
|
+
/** Title displayed in the drawer header. Omit for no header. */
|
|
183
|
+
title?: string;
|
|
184
|
+
/** Whether to show the close button in the header. Default: true. */
|
|
185
|
+
showCloseButton?: boolean;
|
|
186
|
+
/** CSS class(es) to apply to the overlay pane */
|
|
187
|
+
panelClass?: string | string[];
|
|
188
|
+
/** Whether the drawer has a backdrop. Default: true. */
|
|
189
|
+
hasBackdrop?: boolean;
|
|
190
|
+
/** CSS class(es) to apply to the backdrop */
|
|
191
|
+
backdropClass?: string | string[];
|
|
192
|
+
/** Whether the user can close the drawer by clicking on the backdrop. Default: true. */
|
|
193
|
+
disableClose?: boolean;
|
|
194
|
+
/** Data to pass to the drawer component */
|
|
195
|
+
data?: D | null;
|
|
196
|
+
/** Layout direction for the drawer content */
|
|
197
|
+
direction?: 'ltr' | 'rtl';
|
|
198
|
+
/** ARIA label for the drawer */
|
|
199
|
+
ariaLabel?: string | null;
|
|
200
|
+
/** ID of the element that labels the drawer */
|
|
201
|
+
ariaLabelledBy?: string | null;
|
|
202
|
+
/** Whether to restore focus to the previously focused element on close. Default: true. */
|
|
203
|
+
restoreFocus?: boolean;
|
|
204
|
+
/** Alternate ViewContainerRef to use for creating the drawer */
|
|
205
|
+
viewContainerRef?: ViewContainerRef;
|
|
206
|
+
/** Injector used for the drawer component */
|
|
207
|
+
injector?: Injector;
|
|
208
|
+
}
|
|
166
209
|
type FuiConfirmDialogVariant = 'info' | 'warning' | 'danger';
|
|
167
210
|
interface FuiConfirmDialogConfig {
|
|
168
211
|
title: string;
|
|
@@ -342,14 +385,48 @@ declare class FuiDialogService {
|
|
|
342
385
|
private _attachDialogContainer;
|
|
343
386
|
private _createDialogRef;
|
|
344
387
|
private _attachComponentContent;
|
|
388
|
+
/**
|
|
389
|
+
* Shared helper: creates a component with dialog/drawer data and ref providers,
|
|
390
|
+
* attaches it to ApplicationRef for change detection, runs initial CD, and
|
|
391
|
+
* delegates DOM insertion to the provided callback.
|
|
392
|
+
*/
|
|
393
|
+
private _createAndAttachContentComponent;
|
|
345
394
|
private _attachTemplateContent;
|
|
346
395
|
private _removeOpenDialog;
|
|
347
396
|
private _getAfterAllClosed;
|
|
397
|
+
/**
|
|
398
|
+
* Opens a component or template as a drawer that slides in from the specified
|
|
399
|
+
* viewport edge. Built on the same overlay infrastructure as `open()`, but
|
|
400
|
+
* anchored to the viewport edge with a slide animation instead of a centered modal.
|
|
401
|
+
*
|
|
402
|
+
* @param componentOrTemplateRef Component type or TemplateRef to display
|
|
403
|
+
* @param config Configuration options for the drawer (position, size, etc.)
|
|
404
|
+
* @returns Reference to the opened drawer (same lifecycle API as a dialog)
|
|
405
|
+
*
|
|
406
|
+
* ## Usage
|
|
407
|
+
* ```typescript
|
|
408
|
+
* const drawerRef = this.dialog.openAsDrawer(MyPanelComponent, {
|
|
409
|
+
* position: 'right',
|
|
410
|
+
* size: 'md',
|
|
411
|
+
* title: 'Settings'
|
|
412
|
+
* });
|
|
413
|
+
* drawerRef.afterClosed().subscribe(result => console.log(result));
|
|
414
|
+
* ```
|
|
415
|
+
*/
|
|
416
|
+
openAsDrawer<T, D = unknown, R = unknown>(componentOrTemplateRef: Type<T> | TemplateRef<T>, config?: FuiDrawerConfig<D>): FuiDialogRef<T, R>;
|
|
348
417
|
/**
|
|
349
418
|
* Opens a confirmation dialog and returns an Observable<boolean>.
|
|
350
419
|
* Resolves to `true` when confirmed, `false` when cancelled, ESC, or backdrop click.
|
|
351
420
|
*/
|
|
352
421
|
confirm(config: FuiConfirmDialogConfig): Observable<boolean>;
|
|
422
|
+
private _createDrawerOverlay;
|
|
423
|
+
private _getDrawerOverlayConfig;
|
|
424
|
+
private _attachDrawerContainer;
|
|
425
|
+
private _attachDrawerComponentContent;
|
|
426
|
+
private _resolveDrawerSize;
|
|
427
|
+
private _getDrawerBackdropClass;
|
|
428
|
+
private _getDrawerPanelClass;
|
|
429
|
+
private _applyDrawerConfigDefaults;
|
|
353
430
|
private _applyConfigDefaults;
|
|
354
431
|
static ɵfac: i0.ɵɵFactoryDeclaration<FuiDialogService, never>;
|
|
355
432
|
static ɵprov: i0.ɵɵInjectableDeclaration<FuiDialogService>;
|
|
@@ -430,6 +507,68 @@ declare class FuiDialogContainerComponent implements FuiDialogContainerBase, Aft
|
|
|
430
507
|
static ɵcmp: i0.ɵɵComponentDeclaration<FuiDialogContainerComponent, "fui-dialog-container", never, {}, {}, never, ["*"], true, never>;
|
|
431
508
|
}
|
|
432
509
|
|
|
510
|
+
/**
|
|
511
|
+
* # FuiDialogDrawerContainerComponent
|
|
512
|
+
*
|
|
513
|
+
* Internal container component used by `FuiDialogService.openAsDrawer()`. Renders
|
|
514
|
+
* the drawer chrome (header, content slot, optional footer) with a position-based
|
|
515
|
+
* slide animation.
|
|
516
|
+
*
|
|
517
|
+
* Unlike the standalone `FuiDrawerComponent` (which manages its own backdrop and
|
|
518
|
+
* fixed positioning), this component delegates backdrop and positioning to the CDK
|
|
519
|
+
* overlay. The container's host element carries position classes and toggles the
|
|
520
|
+
* open class to trigger CSS transitions on the child panel — mirroring the original
|
|
521
|
+
* drawer's animation model.
|
|
522
|
+
*/
|
|
523
|
+
declare class FuiDialogDrawerContainerComponent implements AfterViewInit, OnDestroy {
|
|
524
|
+
private readonly _document;
|
|
525
|
+
private readonly _renderer;
|
|
526
|
+
private readonly _elementRef;
|
|
527
|
+
private _drawerPanel;
|
|
528
|
+
/** Which edge the drawer slides from */
|
|
529
|
+
position: DrawerPosition;
|
|
530
|
+
title: string | null;
|
|
531
|
+
/** Whether to show the close button in the header */
|
|
532
|
+
showCloseButton: boolean;
|
|
533
|
+
/** ARIA label */
|
|
534
|
+
ariaLabel: string | null;
|
|
535
|
+
/** ARIA labelled-by element ID */
|
|
536
|
+
ariaLabelledBy: string | null;
|
|
537
|
+
/** Emitted when the close button is clicked */
|
|
538
|
+
readonly closed: i0.OutputEmitterRef<void>;
|
|
539
|
+
/** Element that had focus before the drawer opened (for restoration) */
|
|
540
|
+
private _previouslyFocusedElement;
|
|
541
|
+
ngAfterViewInit(): void;
|
|
542
|
+
ngOnDestroy(): void;
|
|
543
|
+
/**
|
|
544
|
+
* Returns the host element (for internal use by DialogService when projecting content).
|
|
545
|
+
*/
|
|
546
|
+
_getHostElement(): HTMLElement;
|
|
547
|
+
/**
|
|
548
|
+
* Appends a DOM element to the drawer's content area (for internal use).
|
|
549
|
+
*/
|
|
550
|
+
_appendToContent(element: HTMLElement): void;
|
|
551
|
+
/**
|
|
552
|
+
* Handles keydown events for focus trap cycling within the drawer.
|
|
553
|
+
* Tab loops from last to first focusable element, Shift+Tab from first to last.
|
|
554
|
+
*/
|
|
555
|
+
_onKeydown(event: KeyboardEvent): void;
|
|
556
|
+
/**
|
|
557
|
+
* Focuses the first tabbable element in the drawer panel.
|
|
558
|
+
*/
|
|
559
|
+
private _trapFocus;
|
|
560
|
+
/**
|
|
561
|
+
* Restores focus to the element that was focused before the drawer opened.
|
|
562
|
+
*/
|
|
563
|
+
private _restoreFocus;
|
|
564
|
+
/**
|
|
565
|
+
* Returns all focusable elements currently visible inside the drawer.
|
|
566
|
+
*/
|
|
567
|
+
private _getFocusableElements;
|
|
568
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FuiDialogDrawerContainerComponent, never>;
|
|
569
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FuiDialogDrawerContainerComponent, "fui-dialog-drawer-container", never, {}, { "closed": "closed"; }, never, ["*", "[drawerFooter]"], true, never>;
|
|
570
|
+
}
|
|
571
|
+
|
|
433
572
|
declare class FuiConfirmDialogComponent {
|
|
434
573
|
private readonly data;
|
|
435
574
|
private readonly dialogRef;
|
|
@@ -446,6 +585,6 @@ declare class FuiConfirmDialogComponent {
|
|
|
446
585
|
static ɵcmp: i0.ɵɵComponentDeclaration<FuiConfirmDialogComponent, "fui-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
447
586
|
}
|
|
448
587
|
|
|
449
|
-
export { FUI_DIALOG_DATA, FUI_DIALOG_DEFAULT_OPTIONS, FuiConfirmDialogComponent, FuiDialogContainerComponent, FuiDialogRef, FuiDialogService };
|
|
450
|
-
export type { FuiAutoFocusTarget, FuiConfirmDialogConfig, FuiConfirmDialogVariant, FuiDialogConfig, FuiDialogContainerBase, FuiDialogOpenResult, FuiDialogPosition, FuiDialogRole, FuiDialogState, IFuiDialogRef };
|
|
588
|
+
export { DRAWER_SIZE_VALUES, FUI_DIALOG_DATA, FUI_DIALOG_DEFAULT_OPTIONS, FuiConfirmDialogComponent, FuiDialogContainerComponent, FuiDialogDrawerContainerComponent, FuiDialogRef, FuiDialogService };
|
|
589
|
+
export type { DrawerPosition, DrawerSize, FuiAutoFocusTarget, FuiConfirmDialogConfig, FuiConfirmDialogVariant, FuiDialogConfig, FuiDialogContainerBase, FuiDialogOpenResult, FuiDialogPosition, FuiDialogRole, FuiDialogState, FuiDrawerConfig, IFuiDialogRef };
|
|
451
590
|
//# sourceMappingURL=raintonic-formaui-services-dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raintonic-formaui-services-dialog.d.ts","sources":["../../../lib/services/dialog/dialog.types.ts","../../../lib/services/dialog/dialog-ref.ts","../../../lib/services/dialog/dialog.service.ts","../../../lib/services/dialog/dialog-container.component.ts","../../../lib/services/dialog/confirm-dialog.component.ts"],"mappings":";;;;;;AAGA;;AAEG;AACH,cAAa,eAAe,EAAA,cAAA;AAE5B;;AAEG;AACH,cAAa,0BAA0B,EAAA,cAAA,CAAA,eAAA;AAEvC;;AAEG;KACS,aAAa;AAEzB;;AAEG;AACG,UAAW,eAAe;;;;WAKvB,aAAa;;AAGpB;;;;AAMA;;;;;;;;AAYA;;AAGA;;AAGA;;AAGA;;eAGW,iBAAiB;;AAG5B;;AAGA;;AAGA;;AAGA;;AAGA;;AAGA,gBAAY,kBAAkB;;;;;;AAS9B;;AAGA;;uBAGmB,gBAAgB;;eAGxB,QAAQ;;AAGnB,yBAAqB,IAAI,CAAC,sBAAsB;;;AAIjD;AAED;;AAEG;AACG,KAAM,kBAAkB;AAE9B;;AAEG;UACc,iBAAiB;;;;;;;;;AASjC;AAED;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;UACc,sBAAsB;;;AAGtC;AAED;;AAEG;AACG,UAAW,aAAa;;AAE5B;;AAGA;;;;AAMA,0BAAsB,UAAU;;2BAGT,UAAU;;0BAGX,UAAU;;AAGhC,4BAAwB,UAAU,CAAC,UAAU;;AAG7C,4BAAwB,UAAU,CAAC,aAAa;AAEhD;;;AAGG;AACH;AAEA;;;AAGG;AACH,8BAA0B,iBAAiB;AAE3C;;;;AAIG;AACH;AAEA;;;AAGG;;AAGH;;;AAGG;;AAGH;;AAEG;gBACS,cAAc;AAC3B;AAED;;AAEG;AACG,UAAW,mBAAmB;;AAElC,eAAW,aAAa;;;AAGzB;AAGK,KAAM,uBAAuB;UAElB,sBAAsB;;;;;cAK3B,uBAAuB;AAClC;;
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-services-dialog.d.ts","sources":["../../../lib/services/dialog/dialog.types.ts","../../../lib/services/dialog/dialog-ref.ts","../../../lib/services/dialog/dialog.service.ts","../../../lib/services/dialog/dialog-container.component.ts","../../../lib/services/dialog/drawer-container/drawer-container.component.ts","../../../lib/services/dialog/confirm-dialog.component.ts"],"mappings":"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","names":["_angular_core"]}
|
|
@@ -186,10 +186,19 @@ declare class FuiNotificationContainerComponent {
|
|
|
186
186
|
* Progress values for each notification (0-100)
|
|
187
187
|
*/
|
|
188
188
|
readonly progressValues: i0.WritableSignal<Map<any, any>>;
|
|
189
|
+
private static readonly UPDATE_INTERVAL_MS;
|
|
189
190
|
/**
|
|
190
|
-
*
|
|
191
|
+
* Per-notification timer state for auto-dismiss. Holds the active interval+timeout pair
|
|
192
|
+
* plus the metadata needed to compute remaining duration when pause/resume cycles occur.
|
|
191
193
|
*/
|
|
192
|
-
private readonly
|
|
194
|
+
private readonly _timerStates;
|
|
195
|
+
/**
|
|
196
|
+
* Per-notification interaction counter. Increments on mouseenter/focusin, decrements on
|
|
197
|
+
* mouseleave/focusout. Timer is paused when count goes 0→1, resumed when 1→0.
|
|
198
|
+
* Why: hover and focus can overlap (e.g. user hovers, then tabs into the close button).
|
|
199
|
+
* A single boolean flag would resume too early when one source leaves but the other holds.
|
|
200
|
+
*/
|
|
201
|
+
private readonly _interactionCounts;
|
|
193
202
|
constructor();
|
|
194
203
|
/**
|
|
195
204
|
* Add a notification to the container
|
|
@@ -211,8 +220,21 @@ declare class FuiNotificationContainerComponent {
|
|
|
211
220
|
* Check if notification should show progress bar
|
|
212
221
|
*/
|
|
213
222
|
shouldShowProgress(notification: FuiNotificationRef): boolean;
|
|
223
|
+
/**
|
|
224
|
+
* Increment the interaction count for a notification. Called on mouseenter and focusin.
|
|
225
|
+
* Pauses the timer when the count transitions from 0 to 1.
|
|
226
|
+
*/
|
|
227
|
+
onInteractionEnter(notificationId: string): void;
|
|
228
|
+
/**
|
|
229
|
+
* Decrement the interaction count for a notification. Called on mouseleave and focusout.
|
|
230
|
+
* Resumes the timer when the count transitions back to 0.
|
|
231
|
+
*/
|
|
232
|
+
onInteractionLeave(notificationId: string): void;
|
|
214
233
|
private _setupAutoDismiss;
|
|
215
234
|
private _removeNotification;
|
|
235
|
+
private _pauseTimer;
|
|
236
|
+
private _resumeTimer;
|
|
237
|
+
private _startProgressInterval;
|
|
216
238
|
static ɵfac: i0.ɵɵFactoryDeclaration<FuiNotificationContainerComponent, never>;
|
|
217
239
|
static ɵcmp: i0.ɵɵComponentDeclaration<FuiNotificationContainerComponent, "fui-notification-container", never, {}, {}, never, never, true, never>;
|
|
218
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raintonic-formaui-services-notification.d.ts","sources":["../../../lib/services/notification/notification-ref.ts","../../../lib/services/notification/notification.service.ts","../../../lib/services/notification/notification-container.component.ts"],"mappings":";;;;AAGA;;;AAGG;AACH,cAAa,kBAAkB;AAeX;AACA,qBAAQ,qBAAqB;AAf/C;AACA;AAEA;;AAEG;AACH,0BAAsB,UAAU;AAEhC;;AAEG;AACH,6BAAyB,UAAU;AAGjB,oCACQ,qBAAqB;AAG/C;;AAEG;AACH;AAKA;;;AAGG;AACH;AAID;;AC3BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACH,cAGa,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AAEA;;AAEG;AACH;AAEA;;AAEG;;AAGH;;AAEG;;;AAOH;;AAEG;AACH,iCAA6B,uBAAuB;AAIpD;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,kCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,mCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,iBAAa,qBAAqB;mBAAgB,uBAAuB;AAAE,QAAG,kBAAkB;AAchG;;AAEG;AACH,4BAAwB,uBAAuB;AAW/C;;AAEG;AACH;AASA;AAWA;yCAvLW,sBAAsB;6CAAtB,sBAAsB;AA0MlC;;ACtRD;;;;AAIG;AACH,cAea,iCAAiC;AAC5C;;AAEG;4BACmBA,EAAA,CAAA,cAAA,CAAA,kBAAA;AAEtB;;AAEG;6BACoBA,EAAA,CAAA,cAAA,CAAA,GAAA;AAEvB
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-services-notification.d.ts","sources":["../../../lib/services/notification/notification-ref.ts","../../../lib/services/notification/notification.service.ts","../../../lib/services/notification/notification-container.component.ts"],"mappings":";;;;AAGA;;;AAGG;AACH,cAAa,kBAAkB;AAeX;AACA,qBAAQ,qBAAqB;AAf/C;AACA;AAEA;;AAEG;AACH,0BAAsB,UAAU;AAEhC;;AAEG;AACH,6BAAyB,UAAU;AAGjB,oCACQ,qBAAqB;AAG/C;;AAEG;AACH;AAKA;;;AAGG;AACH;AAID;;AC3BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACH,cAGa,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AAEA;;AAEG;AACH;AAEA;;AAEG;;AAGH;;AAEG;;;AAOH;;AAEG;AACH,iCAA6B,uBAAuB;AAIpD;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,kCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,mCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,qCAEY,OAAO,CAAC,IAAI,CAAC,qBAAqB;mBAC/B,uBAAuB;AACnC,QACA,kBAAkB;AAQrB;;AAEG;AACH,iBAAa,qBAAqB;mBAAgB,uBAAuB;AAAE,QAAG,kBAAkB;AAchG;;AAEG;AACH,4BAAwB,uBAAuB;AAW/C;;AAEG;AACH;AASA;AAWA;yCAvLW,sBAAsB;6CAAtB,sBAAsB;AA0MlC;;ACtRD;;;;AAIG;AACH,cAea,iCAAiC;AAC5C;;AAEG;4BACmBA,EAAA,CAAA,cAAA,CAAA,kBAAA;AAEtB;;AAEG;6BACoBA,EAAA,CAAA,cAAA,CAAA,GAAA;AAEvB;AAEA;;;AAGG;AACH;AAWA;;;;;AAKG;AACH;;AAUA;;AAEG;AACH,kCAA8B,kBAAkB;AAehD;;AAEG;AACH;AAOA;;AAEG;AACH,sCAAkC,kBAAkB;AAIpD;;AAEG;AACH;AAIA;;AAEG;AACH,qCAAiC,kBAAkB;AAKnD;;;AAGG;AACH;AAQA;;;AAGG;AACH;AAQA;AAkBA;AAoBA;AASA;AA6BA;yCAlMW,iCAAiC;2CAAjC,iCAAiC;AAmN7C;;;;","names":["_angular_core"]}
|