@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.
- package/CHANGELOG.md +7 -0
- package/README.md +145 -0
- package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +806 -0
- package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-cdk-form-field.mjs +86 -0
- package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-cdk-overlay.mjs +1757 -0
- package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +287 -0
- package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-accordion.mjs +217 -0
- package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-alert.mjs +161 -0
- package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-autocomplete.mjs +726 -0
- package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-avatar.mjs +92 -0
- package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-badge.mjs +107 -0
- package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-big-menu.mjs +68 -0
- package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +55 -0
- package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-button-group.mjs +103 -0
- package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-button.mjs +241 -0
- package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-card.mjs +270 -0
- package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-checkbox.mjs +295 -0
- package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-data-table.mjs +631 -0
- package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-date-picker.mjs +1331 -0
- package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-divider.mjs +41 -0
- package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-drawer.mjs +190 -0
- package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-dynamic-form.mjs +266 -0
- package/fesm2022/raintonic-formaui-components-dynamic-form.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-empty-state.mjs +33 -0
- package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-file-upload.mjs +246 -0
- package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-form-field.mjs +482 -0
- package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-icon.mjs +117 -0
- package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-input.mjs +327 -0
- package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-list.mjs +149 -0
- package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-menu.mjs +896 -0
- package/fesm2022/raintonic-formaui-components-menu.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-number-input.mjs +345 -0
- package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-paginator.mjs +139 -0
- package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-password-input.mjs +306 -0
- package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-popover.mjs +451 -0
- package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-progressbar.mjs +148 -0
- package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-radio.mjs +260 -0
- package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-select.mjs +1011 -0
- package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-side-panel.mjs +150 -0
- package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-sidebar.mjs +257 -0
- package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-skeleton.mjs +50 -0
- package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-slider.mjs +347 -0
- package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-spinner.mjs +63 -0
- package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-stepper.mjs +317 -0
- package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tab.mjs +197 -0
- package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tag.mjs +78 -0
- package/fesm2022/raintonic-formaui-components-tag.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-time-picker.mjs +644 -0
- package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-toggle.mjs +171 -0
- package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-toolbar.mjs +140 -0
- package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tooltip.mjs +555 -0
- package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tree-select.mjs +314 -0
- package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tree-table.mjs +103 -0
- package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-components-tree.mjs +430 -0
- package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-core.mjs +62 -0
- package/fesm2022/raintonic-formaui-core.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-services-dialog.mjs +798 -0
- package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-services-notification.mjs +391 -0
- package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-services-theme.mjs +248 -0
- package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -0
- package/fesm2022/raintonic-formaui-test-utils.mjs +66 -0
- package/fesm2022/raintonic-formaui-test-utils.mjs.map +1 -0
- package/fesm2022/raintonic-formaui.mjs +15 -0
- package/fesm2022/raintonic-formaui.mjs.map +1 -0
- package/llms-full.txt +1627 -0
- package/llms.txt +60 -0
- package/package.json +251 -0
- package/styles/_fonts-entry.scss +3 -0
- package/styles/fonts/dm-mono-400-latin.woff2 +0 -0
- package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
- package/styles/fonts/inter-tight-latin.woff2 +0 -0
- package/styles/index.scss +127 -0
- package/styles/partials/_constants.scss +29 -0
- package/styles/partials/_fonts.scss +36 -0
- package/styles/partials/_grid.scss +171 -0
- package/styles/partials/_mixins.scss +145 -0
- package/styles/partials/_motion.scss +252 -0
- package/styles/partials/_theme.scss +275 -0
- package/styles/partials/_typography.scss +112 -0
- package/styles/partials/_utilities.scss +480 -0
- package/styles/partials/themes/_dark.scss +254 -0
- package/styles/partials/themes/_light.scss +254 -0
- package/types/raintonic-formaui-cdk-drag-drop.d.ts +196 -0
- package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -0
- package/types/raintonic-formaui-cdk-form-field.d.ts +62 -0
- package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -0
- package/types/raintonic-formaui-cdk-overlay.d.ts +843 -0
- package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -0
- package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +112 -0
- package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -0
- package/types/raintonic-formaui-components-accordion.d.ts +124 -0
- package/types/raintonic-formaui-components-accordion.d.ts.map +1 -0
- package/types/raintonic-formaui-components-alert.d.ts +143 -0
- package/types/raintonic-formaui-components-alert.d.ts.map +1 -0
- package/types/raintonic-formaui-components-autocomplete.d.ts +193 -0
- package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -0
- package/types/raintonic-formaui-components-avatar.d.ts +52 -0
- package/types/raintonic-formaui-components-avatar.d.ts.map +1 -0
- package/types/raintonic-formaui-components-badge.d.ts +47 -0
- package/types/raintonic-formaui-components-badge.d.ts.map +1 -0
- package/types/raintonic-formaui-components-big-menu.d.ts +62 -0
- package/types/raintonic-formaui-components-big-menu.d.ts.map +1 -0
- package/types/raintonic-formaui-components-breadcrumb.d.ts +26 -0
- package/types/raintonic-formaui-components-breadcrumb.d.ts.map +1 -0
- package/types/raintonic-formaui-components-button-group.d.ts +61 -0
- package/types/raintonic-formaui-components-button-group.d.ts.map +1 -0
- package/types/raintonic-formaui-components-button.d.ts +116 -0
- package/types/raintonic-formaui-components-button.d.ts.map +1 -0
- package/types/raintonic-formaui-components-card.d.ts +191 -0
- package/types/raintonic-formaui-components-card.d.ts.map +1 -0
- package/types/raintonic-formaui-components-checkbox.d.ts +132 -0
- package/types/raintonic-formaui-components-checkbox.d.ts.map +1 -0
- package/types/raintonic-formaui-components-data-table.d.ts +368 -0
- package/types/raintonic-formaui-components-data-table.d.ts.map +1 -0
- package/types/raintonic-formaui-components-date-picker.d.ts +341 -0
- package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -0
- package/types/raintonic-formaui-components-divider.d.ts +21 -0
- package/types/raintonic-formaui-components-divider.d.ts.map +1 -0
- package/types/raintonic-formaui-components-drawer.d.ts +48 -0
- package/types/raintonic-formaui-components-drawer.d.ts.map +1 -0
- package/types/raintonic-formaui-components-dynamic-form.d.ts +412 -0
- package/types/raintonic-formaui-components-dynamic-form.d.ts.map +1 -0
- package/types/raintonic-formaui-components-empty-state.d.ts +14 -0
- package/types/raintonic-formaui-components-empty-state.d.ts.map +1 -0
- package/types/raintonic-formaui-components-file-upload.d.ts +77 -0
- package/types/raintonic-formaui-components-file-upload.d.ts.map +1 -0
- package/types/raintonic-formaui-components-form-field.d.ts +271 -0
- package/types/raintonic-formaui-components-form-field.d.ts.map +1 -0
- package/types/raintonic-formaui-components-icon.d.ts +61 -0
- package/types/raintonic-formaui-components-icon.d.ts.map +1 -0
- package/types/raintonic-formaui-components-input.d.ts +149 -0
- package/types/raintonic-formaui-components-input.d.ts.map +1 -0
- package/types/raintonic-formaui-components-list.d.ts +48 -0
- package/types/raintonic-formaui-components-list.d.ts.map +1 -0
- package/types/raintonic-formaui-components-menu.d.ts +403 -0
- package/types/raintonic-formaui-components-menu.d.ts.map +1 -0
- package/types/raintonic-formaui-components-number-input.d.ts +127 -0
- package/types/raintonic-formaui-components-number-input.d.ts.map +1 -0
- package/types/raintonic-formaui-components-paginator.d.ts +37 -0
- package/types/raintonic-formaui-components-paginator.d.ts.map +1 -0
- package/types/raintonic-formaui-components-password-input.d.ts +111 -0
- package/types/raintonic-formaui-components-password-input.d.ts.map +1 -0
- package/types/raintonic-formaui-components-popover.d.ts +131 -0
- package/types/raintonic-formaui-components-popover.d.ts.map +1 -0
- package/types/raintonic-formaui-components-progressbar.d.ts +111 -0
- package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -0
- package/types/raintonic-formaui-components-radio.d.ts +95 -0
- package/types/raintonic-formaui-components-radio.d.ts.map +1 -0
- package/types/raintonic-formaui-components-select.d.ts +307 -0
- package/types/raintonic-formaui-components-select.d.ts.map +1 -0
- package/types/raintonic-formaui-components-side-panel.d.ts +51 -0
- package/types/raintonic-formaui-components-side-panel.d.ts.map +1 -0
- package/types/raintonic-formaui-components-sidebar.d.ts +174 -0
- package/types/raintonic-formaui-components-sidebar.d.ts.map +1 -0
- package/types/raintonic-formaui-components-skeleton.d.ts +20 -0
- package/types/raintonic-formaui-components-skeleton.d.ts.map +1 -0
- package/types/raintonic-formaui-components-slider.d.ts +108 -0
- package/types/raintonic-formaui-components-slider.d.ts.map +1 -0
- package/types/raintonic-formaui-components-spinner.d.ts +42 -0
- package/types/raintonic-formaui-components-spinner.d.ts.map +1 -0
- package/types/raintonic-formaui-components-stepper.d.ts +126 -0
- package/types/raintonic-formaui-components-stepper.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tab.d.ts +96 -0
- package/types/raintonic-formaui-components-tab.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tag.d.ts +34 -0
- package/types/raintonic-formaui-components-tag.d.ts.map +1 -0
- package/types/raintonic-formaui-components-time-picker.d.ts +172 -0
- package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -0
- package/types/raintonic-formaui-components-toggle.d.ts +70 -0
- package/types/raintonic-formaui-components-toggle.d.ts.map +1 -0
- package/types/raintonic-formaui-components-toolbar.d.ts +128 -0
- package/types/raintonic-formaui-components-toolbar.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tooltip.d.ts +268 -0
- package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tree-select.d.ts +80 -0
- package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tree-table.d.ts +90 -0
- package/types/raintonic-formaui-components-tree-table.d.ts.map +1 -0
- package/types/raintonic-formaui-components-tree.d.ts +104 -0
- package/types/raintonic-formaui-components-tree.d.ts.map +1 -0
- package/types/raintonic-formaui-core.d.ts +115 -0
- package/types/raintonic-formaui-core.d.ts.map +1 -0
- package/types/raintonic-formaui-services-dialog.d.ts +451 -0
- package/types/raintonic-formaui-services-dialog.d.ts.map +1 -0
- package/types/raintonic-formaui-services-notification.d.ts +221 -0
- package/types/raintonic-formaui-services-notification.d.ts.map +1 -0
- package/types/raintonic-formaui-services-theme.d.ts +126 -0
- package/types/raintonic-formaui-services-theme.d.ts.map +1 -0
- package/types/raintonic-formaui-test-utils.d.ts +24 -0
- package/types/raintonic-formaui-test-utils.d.ts.map +1 -0
- package/types/raintonic-formaui.d.ts +4 -0
- package/types/raintonic-formaui.d.ts.map +1 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnDestroy, AfterViewInit, InputSignal, OutputEmitterRef, WritableSignal, InjectionToken, DoCheck, AfterContentInit, Signal, ElementRef } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
5
|
+
import { FuiFormFieldControl, ErrorStateMatcher } from '@raintonic/formaui/core';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* # FuiOption Component
|
|
9
|
+
*
|
|
10
|
+
* Individual option component for use within fui-select.
|
|
11
|
+
* Works like Angular Material's mat-option with full accessibility support.
|
|
12
|
+
*
|
|
13
|
+
* ## Features
|
|
14
|
+
* - Disabled state support
|
|
15
|
+
* - Selection state management
|
|
16
|
+
* - Full accessibility support (ARIA attributes)
|
|
17
|
+
* - Keyboard navigation support
|
|
18
|
+
* - Custom content projection
|
|
19
|
+
* - Smooth hover animations
|
|
20
|
+
*
|
|
21
|
+
* ## Usage
|
|
22
|
+
*
|
|
23
|
+
* ### Basic Option
|
|
24
|
+
* ```html
|
|
25
|
+
* <fui-select placeholder="Select a status">
|
|
26
|
+
* <fui-option value="active">Active</fui-option>
|
|
27
|
+
* <fui-option value="inactive">Inactive</fui-option>
|
|
28
|
+
* <fui-option value="pending" [disabled]="true">Pending (Disabled)</fui-option>
|
|
29
|
+
* </fui-select>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ### Option with Custom Content
|
|
33
|
+
* ```html
|
|
34
|
+
* <fui-select placeholder="Select a country">
|
|
35
|
+
* <fui-option value="us">
|
|
36
|
+
* <fui-icon name="flag-us"></fui-icon>
|
|
37
|
+
* United States
|
|
38
|
+
* </fui-option>
|
|
39
|
+
* <fui-option value="ca">
|
|
40
|
+
* <fui-icon name="flag-ca"></fui-icon>
|
|
41
|
+
* Canada
|
|
42
|
+
* </fui-option>
|
|
43
|
+
* </fui-select>
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare class FuiOptionComponent implements OnDestroy, AfterViewInit {
|
|
47
|
+
static nextId: number;
|
|
48
|
+
/**
|
|
49
|
+
* The value of the option
|
|
50
|
+
*/
|
|
51
|
+
readonly value: InputSignal<unknown>;
|
|
52
|
+
/**
|
|
53
|
+
* Whether the option is disabled
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
readonly disabled: InputSignal<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Event emitted when the option is selected
|
|
59
|
+
*/
|
|
60
|
+
readonly selectionChange: OutputEmitterRef<{
|
|
61
|
+
source: FuiOptionComponent;
|
|
62
|
+
value: unknown;
|
|
63
|
+
}>;
|
|
64
|
+
readonly _selected: WritableSignal<boolean>;
|
|
65
|
+
readonly _active: WritableSignal<boolean>;
|
|
66
|
+
readonly stateChanges: Subject<void>;
|
|
67
|
+
private readonly _element;
|
|
68
|
+
private readonly _parentSelect;
|
|
69
|
+
readonly id: string;
|
|
70
|
+
readonly _showCheckmark: WritableSignal<boolean>;
|
|
71
|
+
ngAfterViewInit(): void;
|
|
72
|
+
ngOnDestroy(): void;
|
|
73
|
+
get viewValue(): string;
|
|
74
|
+
_handleClick(event: Event): void;
|
|
75
|
+
_handleMouseEnter(): void;
|
|
76
|
+
_handleMouseLeave(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Selects the option
|
|
79
|
+
*/
|
|
80
|
+
select(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Deselects the option
|
|
83
|
+
*/
|
|
84
|
+
deselect(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Sets the option as active (keyboard navigation)
|
|
87
|
+
*/
|
|
88
|
+
setActive(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Sets the option as inactive
|
|
91
|
+
*/
|
|
92
|
+
setInactive(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Sets focus onto this option
|
|
95
|
+
*/
|
|
96
|
+
focus(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Gets the label to be used when displaying the option
|
|
99
|
+
*/
|
|
100
|
+
getLabel(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Gets the host element
|
|
103
|
+
*/
|
|
104
|
+
_getHostElement(): HTMLElement;
|
|
105
|
+
/** Update checkmark visibility based on selection and multiple mode */
|
|
106
|
+
private _updateCheckmarkVisibility;
|
|
107
|
+
/** Emits the selection change event */
|
|
108
|
+
private _emitSelectionChangeEvent;
|
|
109
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FuiOptionComponent, never>;
|
|
110
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FuiOptionComponent, "fui-option", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, ["*"], true, never>;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Interface representing the parent select contract that options need.
|
|
115
|
+
* Used to break the circular dependency between select and option components.
|
|
116
|
+
*/
|
|
117
|
+
interface FuiSelectParent {
|
|
118
|
+
multiple(): boolean;
|
|
119
|
+
_onOptionSelected(option: any): void;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Injection token used to provide the parent select to options.
|
|
123
|
+
*/
|
|
124
|
+
declare const FUI_SELECT: InjectionToken<FuiSelectParent>;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Available select sizes
|
|
128
|
+
*/
|
|
129
|
+
type FuiSelectSize = 'sm' | 'md' | 'lg';
|
|
130
|
+
/**
|
|
131
|
+
* Available select variants following Carbon Design System patterns
|
|
132
|
+
*/
|
|
133
|
+
type FuiSelectVariant = 'outlined' | 'filled';
|
|
134
|
+
/**
|
|
135
|
+
* Selection change event object emitted when the select's selection changes
|
|
136
|
+
*/
|
|
137
|
+
interface FuiSelectChange {
|
|
138
|
+
source: FuiSelectComponent;
|
|
139
|
+
value: unknown;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* # fui-select Component
|
|
143
|
+
*
|
|
144
|
+
* A select component designed to work seamlessly with fui-form-field.
|
|
145
|
+
* Similar to Angular Material's mat-select integration with mat-form-field.
|
|
146
|
+
* Provides full Reactive Forms support with validation and error handling.
|
|
147
|
+
*
|
|
148
|
+
* ## Features
|
|
149
|
+
* - Works inside fui-form-field like mat-select
|
|
150
|
+
* - Full Reactive Forms integration (ControlValueAccessor)
|
|
151
|
+
* - Multiple selection support
|
|
152
|
+
* - Options via projected content (fui-option)
|
|
153
|
+
* - Disabled and readonly states
|
|
154
|
+
* - Full accessibility support
|
|
155
|
+
* - Full keyboard navigation (Arrow keys, Enter, Space, Escape, Home, End)
|
|
156
|
+
* - Type-ahead search functionality
|
|
157
|
+
*
|
|
158
|
+
* ## Usage
|
|
159
|
+
*
|
|
160
|
+
* ### Basic Select with Form Field
|
|
161
|
+
* ```html
|
|
162
|
+
* <fui-form-field>
|
|
163
|
+
* <label>Country</label>
|
|
164
|
+
* <fui-select placeholder="Select a country">
|
|
165
|
+
* <fui-option value="us">United States</fui-option>
|
|
166
|
+
* <fui-option value="ca">Canada</fui-option>
|
|
167
|
+
* <fui-option value="mx">Mexico</fui-option>
|
|
168
|
+
* </fui-select>
|
|
169
|
+
* </fui-form-field>
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* ### With Reactive Forms and Validation
|
|
173
|
+
* ```html
|
|
174
|
+
* <form [formGroup]="form">
|
|
175
|
+
* <fui-form-field>
|
|
176
|
+
* <label>Country</label>
|
|
177
|
+
* <fui-select formControlName="country" placeholder="Select a country">
|
|
178
|
+
* <fui-option value="us">United States</fui-option>
|
|
179
|
+
* <fui-option value="ca">Canada</fui-option>
|
|
180
|
+
* </fui-select>
|
|
181
|
+
* <fui-error *ngIf="form.get('country')?.hasError('required')">
|
|
182
|
+
* Country is required
|
|
183
|
+
* </fui-error>
|
|
184
|
+
* </fui-form-field>
|
|
185
|
+
* </form>
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* ### Multiple Selection
|
|
189
|
+
* ```html
|
|
190
|
+
* <fui-form-field>
|
|
191
|
+
* <label>Skills</label>
|
|
192
|
+
* <fui-select formControlName="skills" [multiple]="true">
|
|
193
|
+
* <fui-option value="js">JavaScript</fui-option>
|
|
194
|
+
* <fui-option value="ts">TypeScript</fui-option>
|
|
195
|
+
* <fui-option value="py">Python</fui-option>
|
|
196
|
+
* </fui-select>
|
|
197
|
+
* </fui-form-field>
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
declare class FuiSelectComponent implements ControlValueAccessor, FuiFormFieldControl, DoCheck, OnDestroy, AfterContentInit {
|
|
201
|
+
static nextId: number;
|
|
202
|
+
readonly controlType = "fui-select";
|
|
203
|
+
readonly placeholderInput: InputSignal<string>;
|
|
204
|
+
readonly disabledInput: InputSignal<boolean>;
|
|
205
|
+
readonly readonly: InputSignal<boolean>;
|
|
206
|
+
readonly multiple: InputSignal<boolean>;
|
|
207
|
+
readonly errorStateMatcher: InputSignal<ErrorStateMatcher | null>;
|
|
208
|
+
/**
|
|
209
|
+
* Whether to compare option values using object identity or deep equality
|
|
210
|
+
*/
|
|
211
|
+
readonly compareWith: InputSignal<(o1: unknown, o2: unknown) => boolean>;
|
|
212
|
+
readonly valueChange: OutputEmitterRef<unknown>;
|
|
213
|
+
readonly selectionChange: OutputEmitterRef<FuiSelectChange>;
|
|
214
|
+
readonly openedChange: OutputEmitterRef<boolean>;
|
|
215
|
+
private readonly _value;
|
|
216
|
+
private readonly _focused;
|
|
217
|
+
private readonly _disabled;
|
|
218
|
+
readonly _readOnly: WritableSignal<boolean>;
|
|
219
|
+
readonly stateChanges: Subject<void>;
|
|
220
|
+
private _uid;
|
|
221
|
+
_ariaDescribedby: string | null;
|
|
222
|
+
private readonly _errorState;
|
|
223
|
+
readonly errorState: WritableSignal<boolean>;
|
|
224
|
+
private _parentForm;
|
|
225
|
+
private _parentFormGroup;
|
|
226
|
+
private _defaultErrorStateMatcher;
|
|
227
|
+
private readonly _ngControlRef;
|
|
228
|
+
get ngControl(): NgControl | null;
|
|
229
|
+
readonly placeholder: Signal<string>;
|
|
230
|
+
private readonly _required;
|
|
231
|
+
readonly required: WritableSignal<boolean>;
|
|
232
|
+
readonly value: WritableSignal<unknown>;
|
|
233
|
+
readonly focused: WritableSignal<boolean>;
|
|
234
|
+
private readonly _ngControlDisabled;
|
|
235
|
+
readonly disabled: Signal<boolean>;
|
|
236
|
+
readonly empty: Signal<boolean>;
|
|
237
|
+
readonly id: string;
|
|
238
|
+
trigger?: ElementRef<HTMLDivElement>;
|
|
239
|
+
panel?: ElementRef<HTMLDivElement>;
|
|
240
|
+
readonly options: Signal<readonly FuiOptionComponent[]>;
|
|
241
|
+
readonly panelOpen: WritableSignal<boolean>;
|
|
242
|
+
private readonly _activeOptionIndex;
|
|
243
|
+
readonly activeOptionIndex: Signal<number>;
|
|
244
|
+
readonly _liveAnnouncement: WritableSignal<string>;
|
|
245
|
+
private _overlayRef;
|
|
246
|
+
private _overlaySubscriptions;
|
|
247
|
+
private readonly _overlayService;
|
|
248
|
+
private readonly _elementRef;
|
|
249
|
+
private readonly _document;
|
|
250
|
+
private readonly _ngZone;
|
|
251
|
+
private _outsideClickSub?;
|
|
252
|
+
private _typeaheadBuffer;
|
|
253
|
+
private _typeaheadTimeout;
|
|
254
|
+
private readonly TYPE_AHEAD_DEBOUNCE;
|
|
255
|
+
private _onChange;
|
|
256
|
+
private _onTouched;
|
|
257
|
+
readonly displayValue: Signal<string>;
|
|
258
|
+
constructor();
|
|
259
|
+
ngDoCheck(): void;
|
|
260
|
+
ngOnDestroy(): void;
|
|
261
|
+
ngAfterContentInit(): void;
|
|
262
|
+
writeValue(value: unknown): void;
|
|
263
|
+
registerOnChange(fn: (value: unknown) => void): void;
|
|
264
|
+
registerOnTouched(fn: () => void): void;
|
|
265
|
+
setDisabledState(isDisabled: boolean): void;
|
|
266
|
+
onContainerClick(_event: MouseEvent): void;
|
|
267
|
+
setDescribedByIds(ids: string[]): void;
|
|
268
|
+
setReadOnly(readOnly: boolean): void;
|
|
269
|
+
private _syncOptionsSelection;
|
|
270
|
+
_onFocus(): void;
|
|
271
|
+
_onBlur(event?: FocusEvent): void;
|
|
272
|
+
focus(): void;
|
|
273
|
+
blur(): void;
|
|
274
|
+
toggle(): void;
|
|
275
|
+
open(): void;
|
|
276
|
+
close(restoreFocus?: boolean): void;
|
|
277
|
+
_onOptionSelected(option: FuiOptionComponent): void;
|
|
278
|
+
_getDisplayValue(): string;
|
|
279
|
+
_handleKeydown(event: KeyboardEvent): void;
|
|
280
|
+
private _handleClosedKeydown;
|
|
281
|
+
private _handleOpenKeydown;
|
|
282
|
+
private _setNextActiveOption;
|
|
283
|
+
private _setActiveOptionIndex;
|
|
284
|
+
private _setInitialActiveOption;
|
|
285
|
+
private _scrollToActiveOption;
|
|
286
|
+
private _handleTypeahead;
|
|
287
|
+
private _selectFirstOption;
|
|
288
|
+
private _selectLastOption;
|
|
289
|
+
private _getEnabledOptions;
|
|
290
|
+
private _listenForOutsideClicks;
|
|
291
|
+
private _createOverlay;
|
|
292
|
+
private _disposeOverlay;
|
|
293
|
+
_getActiveDescendant(): string | null;
|
|
294
|
+
/**
|
|
295
|
+
* Announces a message to screen readers via the aria-live region.
|
|
296
|
+
* Clears the message after a brief delay to allow repeated announcements.
|
|
297
|
+
*/
|
|
298
|
+
private _announce;
|
|
299
|
+
get selected(): Signal<unknown>;
|
|
300
|
+
isArray(value: unknown): value is unknown[];
|
|
301
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FuiSelectComponent, never>;
|
|
302
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FuiSelectComponent, "fui-select", never, { "placeholderInput": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; "openedChange": "openedChange"; }, ["options"], ["*"], true, never>;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export { FUI_SELECT, FuiOptionComponent, FuiSelectComponent };
|
|
306
|
+
export type { FuiSelectChange, FuiSelectParent, FuiSelectSize, FuiSelectVariant };
|
|
307
|
+
//# sourceMappingURL=raintonic-formaui-components-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-components-select.d.ts","sources":["../../../lib/components/select/option.component.ts","../../../lib/components/select/select-tokens.ts","../../../lib/components/select/select.component.ts"],"mappings":";;;;;;AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;AACH,cA+Ba,kBAAmB,YAAW,SAAS,EAAE,aAAa;;AAGjE;;AAEG;AACH,oBAAgB,WAAW;AAE3B;;;AAGG;AACH,uBAAmB,WAAW;AAE9B;;AAEG;AACH,8BAA0B,gBAAgB;gBAAW,kBAAkB;;AAAkB;AAGzF,wBAAoB,cAAc;AAClC,sBAAkB,cAAc;2BACX,OAAA;AAGrB;AAGA;;6BAMuB,cAAA;AAEvB;AAKA;;AAUA,wBAAoB,KAAK;AAgBzB;AAOA;AAIA;;AAEG;AACH;AAQA;;AAEG;AACH;AAQA;;AAEG;AACH;AAOA;;AAEG;AACH;AAOA;;AAEG;AACH;AAOA;;AAEG;AACH;AAIA;;AAEG;AACH,uBAAmB,WAAW;;AAK9B;;AAMA;yCAvJW,kBAAkB;2CAAlB,kBAAkB;AA0J9B;;AClPD;;;AAGG;UACc,eAAe;;AAE9B;AACD;AAED;;AAEG;AACH,cAAa,UAAU,EAAA,cAAA,CAAA,eAAA;;AC2BvB;;AAEG;AACG,KAAM,aAAa;AAEzB;;AAEG;KACS,gBAAgB;AAE5B;;AAEG;UACc,eAAe;YACtB,kBAAkB;;AAE3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DG;AACH,cAgCa,kBACX,YAAW,oBAAoB,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB;;;AAO1F,+BAA2B,WAAW;AACtC,4BAAwB,WAAW;AACnC,uBAAmB,WAAW;AAC9B,uBAAmB,WAAW;gCACF,WAAW,CAAC,iBAAiB;AAEzD;;AAEG;AACH,0BAAsB,WAAW;AAKjC,0BAAsB,gBAAgB;AACtC,8BAA0B,gBAAgB,CAAC,eAAe;AAC1D,2BAAuB,gBAAgB;AAGvC;AACA;AACA;AACA,wBAAoB,cAAc;2BAGb,OAAA;;AAErB;AAGA;yBACmB,cAAA;;;;AAMnB;AACA,qBAAiB,SAAS;0BAKN,MAAA;AACpB;uBACiB,cAAA;oBAEH,cAAA;sBAEE,cAAA;AAEhB;uBACiB,MAAA;oBAEH,MAAA;;AAQ2B,cAAU,UAAU,CAAC,cAAc;AACrC,YAAQ,UAAU,CAAC,cAAc;sBAGxD,MAAA,UAAA,kBAAA;wBAGE,cAAA;AAGlB;gCAC0B,MAAA;AAG1B,gCAA4B,cAAc;;;AAO1C;AACA;AACA;AACA;;;;AAMA;;;AAWA,2BAAuB,MAAM;;AAqF7B;AAgBA;AASA;AAMA;;AAUA;AAIA;AAMA,6BAAyB,UAAU;AAMnC;AAIA;AAKA;AA6BA;AAKA,oBAAgB,UAAU;AAkB1B;AAIA;AAKA;AAUA;AAsBA;AAoBA,8BAA0B,kBAAkB;AAkD5C;AAKA,0BAAsB,aAAa;AAanC;AA6BA;AAgDA;AAkBA;AAwBA;AAuBA;AAyBA;AA2BA;AAQA;AAQA;AAKA;AAgCA;AAsDA;;AAkBA;;;AAGG;AACH;AASA,oBAAgB,MAAM;;yCAvwBX,kBAAkB;2CAAlB,kBAAkB;AA+wB9B;;;;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @component FuiSidePanelComponent
|
|
5
|
+
* @selector fui-side-panel
|
|
6
|
+
* @description A slide-in side panel overlay with optional backdrop, focus trapping, and keyboard dismiss.
|
|
7
|
+
* Renders from the right edge of the viewport with configurable width and top offset.
|
|
8
|
+
*
|
|
9
|
+
* @input open - Whether the side panel is visible. Default false.
|
|
10
|
+
* @input title - Title text displayed in the panel header.
|
|
11
|
+
* @input width - CSS width of the panel. Default '500px'.
|
|
12
|
+
* @input hasBackdrop - Whether to show a backdrop behind the panel. Default true.
|
|
13
|
+
* @input topOffset - CSS top offset (e.g. to clear a fixed toolbar). Default '0px'.
|
|
14
|
+
* @input ariaLabel - ARIA label for the panel when no visible title is present.
|
|
15
|
+
* @input ariaLabelledBy - ID of an element that labels the panel.
|
|
16
|
+
* @output closed - Emits when the panel requests closing (close button, Escape, or backdrop click).
|
|
17
|
+
*
|
|
18
|
+
* @cssvar --_side-panel-top-offset - Internal CSS variable set from the topOffset input.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* <fui-side-panel [open]="isPanelOpen" title="Details" (closed)="isPanelOpen = false">
|
|
22
|
+
* <p>Panel content here.</p>
|
|
23
|
+
* </fui-side-panel>
|
|
24
|
+
*/
|
|
25
|
+
declare class FuiSidePanelComponent {
|
|
26
|
+
private readonly _document;
|
|
27
|
+
readonly open: _angular_core.InputSignal<boolean>;
|
|
28
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
29
|
+
readonly width: _angular_core.InputSignal<string>;
|
|
30
|
+
readonly hasBackdrop: _angular_core.InputSignal<boolean>;
|
|
31
|
+
readonly topOffset: _angular_core.InputSignal<string>;
|
|
32
|
+
/** ARIA label for the side panel, used when no visible title is present */
|
|
33
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
34
|
+
/** ID of an element that labels the side panel */
|
|
35
|
+
readonly ariaLabelledBy: _angular_core.InputSignal<string | null>;
|
|
36
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
37
|
+
private _panelElement?;
|
|
38
|
+
private _previouslyFocusedElement;
|
|
39
|
+
constructor();
|
|
40
|
+
onKeydown(event: KeyboardEvent): void;
|
|
41
|
+
close(): void;
|
|
42
|
+
private _saveFocusAndTrap;
|
|
43
|
+
private _restoreFocus;
|
|
44
|
+
private _focusFirstTabbable;
|
|
45
|
+
private _getFocusableElements;
|
|
46
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiSidePanelComponent, never>;
|
|
47
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiSidePanelComponent, "fui-side-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "topOffset": { "alias": "topOffset"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[sidePanelFooter]"], true, never>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { FuiSidePanelComponent };
|
|
51
|
+
//# sourceMappingURL=raintonic-formaui-components-side-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-components-side-panel.d.ts","sources":["../../../lib/components/side-panel/side-panel.component.ts"],"mappings":";;AAeA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH,cAea,qBAAqB;AAChC;mBAEa,aAAA,CAAA,WAAA;oBACC,aAAA,CAAA,WAAA;oBACA,aAAA,CAAA,WAAA;0BACM,aAAA,CAAA,WAAA;wBACF,aAAA,CAAA,WAAA;;wBAGA,aAAA,CAAA,WAAA;;6BAGK,aAAA,CAAA,WAAA;qBAER,aAAA,CAAA,gBAAA;;;;AAoBf,qBAAiB,aAAa;AAmC9B;AAIA;AAQA;AAOA;AASA;oDAlGW,qBAAqB;sDAArB,qBAAqB;AAkHjC;;;;","names":[]}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InputSignal, OutputEmitterRef, WritableSignal, Signal } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sidebar mode type
|
|
6
|
+
*/
|
|
7
|
+
type FuiSidebarMode = 'side' | 'over' | 'push';
|
|
8
|
+
/**
|
|
9
|
+
* Sidebar position type
|
|
10
|
+
*/
|
|
11
|
+
type FuiSidebarPosition = 'start' | 'end';
|
|
12
|
+
/**
|
|
13
|
+
* Sidebar navigation item interface
|
|
14
|
+
*/
|
|
15
|
+
interface FuiSidebarNavItem {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
icon?: string;
|
|
19
|
+
route?: string;
|
|
20
|
+
active?: boolean;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
children?: FuiSidebarNavItem[];
|
|
23
|
+
expanded?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* # FuiSidebar Component
|
|
27
|
+
*
|
|
28
|
+
* A flexible sidebar component following Carbon Design System principles.
|
|
29
|
+
* Provides navigation with Angular Material-like APIs and responsive behavior.
|
|
30
|
+
*
|
|
31
|
+
* ## Features
|
|
32
|
+
* - Multiple modes: side, over, push
|
|
33
|
+
* - Collapsible with toggle functionality
|
|
34
|
+
* - Hierarchical navigation support
|
|
35
|
+
* - Responsive behavior
|
|
36
|
+
* - Theme integration
|
|
37
|
+
* - Accessibility support
|
|
38
|
+
* - Custom content projection
|
|
39
|
+
*
|
|
40
|
+
* ## Usage
|
|
41
|
+
*
|
|
42
|
+
* ### Basic Sidebar
|
|
43
|
+
* ```html
|
|
44
|
+
* <fui-sidebar
|
|
45
|
+
* [opened]="sidebarOpen"
|
|
46
|
+
* [mode]="'side'"
|
|
47
|
+
* [navItems]="navigationItems"
|
|
48
|
+
* (openedChange)="onSidebarToggle($event)"
|
|
49
|
+
* (navItemClick)="onNavItemClick($event)">
|
|
50
|
+
*
|
|
51
|
+
* <div header>
|
|
52
|
+
* <h3>Navigation</h3>
|
|
53
|
+
* </div>
|
|
54
|
+
*
|
|
55
|
+
* <div footer>
|
|
56
|
+
* <p>Version 1.0.0</p>
|
|
57
|
+
* </div>
|
|
58
|
+
* </fui-sidebar>
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* ### Responsive Sidebar
|
|
62
|
+
* ```html
|
|
63
|
+
* <fui-sidebar
|
|
64
|
+
* [opened]="sidebarOpen"
|
|
65
|
+
* [mode]="isDesktop ? 'side' : 'over'"
|
|
66
|
+
* [backdrop]="!isDesktop"
|
|
67
|
+
* [navItems]="navigationItems">
|
|
68
|
+
* </fui-sidebar>
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* import { FuiSidebarComponent, FuiSidebarNavItem } from '@raintonic/formaui/components/sidebar';
|
|
74
|
+
*
|
|
75
|
+
* @Component({
|
|
76
|
+
* standalone: true,
|
|
77
|
+
* imports: [FuiSidebarComponent],
|
|
78
|
+
* template: `
|
|
79
|
+
* <fui-sidebar
|
|
80
|
+
* [opened]="sidebarOpen"
|
|
81
|
+
* [mode]="sidebarMode"
|
|
82
|
+
* [navItems]="navItems"
|
|
83
|
+
* (openedChange)="onSidebarToggle($event)"
|
|
84
|
+
* (navItemClick)="onNavItemClick($event)">
|
|
85
|
+
*
|
|
86
|
+
* <div header class="sidebar-header">
|
|
87
|
+
* <h3>Holiday ERP</h3>
|
|
88
|
+
* </div>
|
|
89
|
+
* </fui-sidebar>
|
|
90
|
+
* `
|
|
91
|
+
* })
|
|
92
|
+
* export class AppLayoutComponent {
|
|
93
|
+
* sidebarOpen = true;
|
|
94
|
+
* sidebarMode: FuiSidebarMode = 'side';
|
|
95
|
+
*
|
|
96
|
+
* navItems: FuiSidebarNavItem[] = [
|
|
97
|
+
* { id: 'dashboard', label: 'Dashboard', icon: 'house', route: '/dashboard' },
|
|
98
|
+
* {
|
|
99
|
+
* id: 'sales',
|
|
100
|
+
* label: 'Sales',
|
|
101
|
+
* icon: 'shopping-cart',
|
|
102
|
+
* children: [
|
|
103
|
+
* { id: 'orders', label: 'Orders', route: '/sales/orders' },
|
|
104
|
+
* { id: 'invoices', label: 'Invoices', route: '/sales/invoices' },
|
|
105
|
+
* ]
|
|
106
|
+
* },
|
|
107
|
+
* { id: 'products', label: 'Products', icon: 'package', route: '/products' },
|
|
108
|
+
* ];
|
|
109
|
+
*
|
|
110
|
+
* onSidebarToggle(opened: boolean): void {
|
|
111
|
+
* this.sidebarOpen = opened;
|
|
112
|
+
* }
|
|
113
|
+
*
|
|
114
|
+
* onNavItemClick(item: FuiSidebarNavItem): void {
|
|
115
|
+
* console.log('Navigation item clicked:', item.id);
|
|
116
|
+
* }
|
|
117
|
+
* }
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
declare class FuiSidebarComponent {
|
|
121
|
+
readonly opened: InputSignal<boolean>;
|
|
122
|
+
readonly mode: InputSignal<FuiSidebarMode>;
|
|
123
|
+
readonly position: InputSignal<FuiSidebarPosition>;
|
|
124
|
+
readonly backdrop: InputSignal<boolean>;
|
|
125
|
+
readonly width: InputSignal<string>;
|
|
126
|
+
readonly navItems: InputSignal<FuiSidebarNavItem[]>;
|
|
127
|
+
readonly collapsible: InputSignal<boolean>;
|
|
128
|
+
readonly openedChange: OutputEmitterRef<boolean>;
|
|
129
|
+
readonly navItemClick: OutputEmitterRef<FuiSidebarNavItem>;
|
|
130
|
+
readonly backdropClick: OutputEmitterRef<void>;
|
|
131
|
+
readonly expandedItems: WritableSignal<Set<string>>;
|
|
132
|
+
readonly sidebarClasses: Signal<string>;
|
|
133
|
+
readonly backdropClasses: Signal<string>;
|
|
134
|
+
readonly sidebarStyles: Signal<Record<string, string>>;
|
|
135
|
+
/**
|
|
136
|
+
* Toggle sidebar open/closed state
|
|
137
|
+
*/
|
|
138
|
+
toggle(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Open the sidebar
|
|
141
|
+
*/
|
|
142
|
+
open(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Close the sidebar
|
|
145
|
+
*/
|
|
146
|
+
close(): void;
|
|
147
|
+
/**
|
|
148
|
+
* Handle navigation item click
|
|
149
|
+
*/
|
|
150
|
+
onNavItemClick(item: FuiSidebarNavItem): void;
|
|
151
|
+
/**
|
|
152
|
+
* Toggle expansion state of a navigation item
|
|
153
|
+
*/
|
|
154
|
+
toggleItemExpansion(itemId: string): void;
|
|
155
|
+
/**
|
|
156
|
+
* Check if item is expanded
|
|
157
|
+
*/
|
|
158
|
+
isItemExpanded(itemId: string): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Handle backdrop click
|
|
161
|
+
*/
|
|
162
|
+
onBackdropClick(): void;
|
|
163
|
+
/**
|
|
164
|
+
* Get navigation item classes
|
|
165
|
+
*/
|
|
166
|
+
getNavItemClasses(item: FuiSidebarNavItem, level?: number): string;
|
|
167
|
+
onEsc(): void;
|
|
168
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FuiSidebarComponent, never>;
|
|
169
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FuiSidebarComponent, "fui-sidebar", never, { "opened": { "alias": "opened"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "backdrop": { "alias": "backdrop"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; }, { "openedChange": "openedChange"; "navItemClick": "navItemClick"; "backdropClick": "backdropClick"; }, never, ["[header]", "*", "[footer]"], true, never>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export { FuiSidebarComponent };
|
|
173
|
+
export type { FuiSidebarMode, FuiSidebarNavItem, FuiSidebarPosition };
|
|
174
|
+
//# sourceMappingURL=raintonic-formaui-components-sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-components-sidebar.d.ts","sources":["../../../lib/components/sidebar/sidebar.component.ts"],"mappings":";;;AAiBA;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;KACS,kBAAkB;AAE9B;;AAEG;UACc,iBAAiB;;;;;;;AAOhC,eAAW,iBAAiB;;AAE7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FG;AACH,cAkBa,mBAAmB;AAE9B,qBAAiB,WAAW;AAC5B,mBAAe,WAAW,CAAC,cAAc;AACzC,uBAAmB,WAAW,CAAC,kBAAkB;AACjD,uBAAmB,WAAW;AAC9B,oBAAgB,WAAW;uBACR,WAAW,CAAC,iBAAiB;AAChD,0BAAsB,WAAW;AAGjC,2BAAuB,gBAAgB;AACvC,2BAAuB,gBAAgB,CAAC,iBAAiB;AACzD,4BAAwB,gBAAgB;4BAGhB,cAAc,CAAC,GAAG;AAG1C,6BAAyB,MAAM;AAa/B,8BAA0B,MAAM;AAUhC,4BAAwB,MAAM,CAAC,MAAM;AAMrC;;AAEG;AACH;AAKA;;AAEG;AACH;AAMA;;AAEG;AACH;AAMA;;AAEG;AACH,yBAAqB,iBAAiB;AAkBtC;;AAEG;AACH;AAaA;;AAEG;AACH;AAIA;;AAEG;AACH;AAKA;;AAEG;4BACqB,iBAAiB;AA2BzC;yCA5JW,mBAAmB;2CAAnB,mBAAmB;AAiK/B;;;;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type FuiSkeletonVariant = 'text' | 'circle' | 'rect';
|
|
4
|
+
|
|
5
|
+
declare class FuiSkeletonComponent {
|
|
6
|
+
readonly variant: _angular_core.InputSignal<FuiSkeletonVariant>;
|
|
7
|
+
readonly width: _angular_core.InputSignal<string | null>;
|
|
8
|
+
readonly height: _angular_core.InputSignal<string | null>;
|
|
9
|
+
readonly lines: _angular_core.InputSignal<number>;
|
|
10
|
+
readonly animated: _angular_core.InputSignal<boolean>;
|
|
11
|
+
readonly borderRadius: _angular_core.InputSignal<string | null>;
|
|
12
|
+
readonly computedStyles: _angular_core.Signal<Record<string, string>>;
|
|
13
|
+
readonly linesArray: _angular_core.Signal<number[]>;
|
|
14
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiSkeletonComponent, never>;
|
|
15
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiSkeletonComponent, "fui-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { FuiSkeletonComponent };
|
|
19
|
+
export type { FuiSkeletonVariant };
|
|
20
|
+
//# sourceMappingURL=raintonic-formaui-components-skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raintonic-formaui-components-skeleton.d.ts","sources":["../../../lib/components/skeleton/skeleton.types.ts","../../../lib/components/skeleton/skeleton.component.ts"],"mappings":";;AAAM,KAAM,kBAAkB;;ACG9B,cAkBa,oBAAoB;sBACf,aAAA,CAAA,WAAA,CAAA,kBAAA;oBACF,aAAA,CAAA,WAAA;qBACC,aAAA,CAAA,WAAA;oBACD,aAAA,CAAA,WAAA;uBACG,aAAA,CAAA,WAAA;2BACI,aAAA,CAAA,WAAA;6BAEE,aAAA,CAAA,MAAA,CAAA,MAAA;yBAmBJ,aAAA,CAAA,MAAA;oDA3BR,oBAAoB;sDAApB,oBAAoB;AA4BhC;;;;","names":[]}
|