ngx-opalbytes-components 1.25.0 → 1.26.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.
@@ -0,0 +1,233 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import {
3
+ ChangeDetectionStrategy,
4
+ ChangeDetectorRef,
5
+ Component,
6
+ EventEmitter,
7
+ forwardRef,
8
+ HostBinding,
9
+ inject,
10
+ Input,
11
+ Output,
12
+ } from "@angular/core";
13
+ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from "@angular/forms";
14
+
15
+ import { LucideDynamicIcon } from "@lucide/angular";
16
+
17
+ export interface ICaoSlideToggleChangeEvent {
18
+ checked: boolean;
19
+ source: CaoSlideToggleComponent;
20
+ }
21
+
22
+ @Component({
23
+ selector: "cao-slide-toggle",
24
+ standalone: true,
25
+ imports: [CommonModule, LucideDynamicIcon],
26
+ templateUrl: "./slide-toggle.component.html",
27
+ styleUrl: "./slide-toggle.component.css",
28
+ changeDetection: ChangeDetectionStrategy.OnPush,
29
+ providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: forwardRef(() => CaoSlideToggleComponent),
33
+ multi: true,
34
+ },
35
+ ],
36
+ })
37
+ export class CaoSlideToggleComponent implements ControlValueAccessor {
38
+ @Input() checked = false;
39
+ @Input() isDisabled = false;
40
+ @Input() label = "";
41
+ @Input() labelPosition: "before" | "after" = "after";
42
+ @Input() name = "";
43
+ @Input() id = "";
44
+ @Input() ariaLabel = "";
45
+ @Input() dataCy = "";
46
+ @Input() required = false;
47
+
48
+ @Input() trackColor?: string;
49
+ @Input() trackCheckedColor?: string;
50
+ @Input() thumbColor?: string;
51
+ @Input() thumbCheckedColor?: string;
52
+ @Input() disabledTrackColor?: string;
53
+ @Input() disabledThumbColor?: string;
54
+ @Input() labelColor?: string;
55
+ @Input() disabledLabelColor?: string;
56
+ @Input() focusRingColor?: string;
57
+ @Input() trackWidth?: string;
58
+ @Input() trackHeight?: string;
59
+ @Input() thumbSize?: string;
60
+ @Input() animationDuration?: string;
61
+
62
+ @Input() thumbIcon = "";
63
+ @Input() thumbCheckedIcon = "";
64
+ @Input() isLucideThumbIcon = false;
65
+ @Input() thumbIconColor = "";
66
+ @Input() thumbCheckedIconColor = "";
67
+ @Input() thumbIconSize: string | number = 12;
68
+ @Input() thumbIconStrokeWidth: string | number = 2;
69
+
70
+ @Input() set disabled(value: boolean) {
71
+ this.isDisabled = value;
72
+ this.cdr.markForCheck();
73
+ }
74
+
75
+ get disabled(): boolean {
76
+ return this.isDisabled;
77
+ }
78
+
79
+ @Output() readonly checkedChange = new EventEmitter<boolean>();
80
+ @Output() readonly toggleChange = new EventEmitter<ICaoSlideToggleChangeEvent>();
81
+
82
+ private readonly cdr = inject(ChangeDetectorRef);
83
+ private onChange: (value: boolean) => void = () => {};
84
+ private onTouched: () => void = () => {};
85
+
86
+ get resolvedThumbIcon(): string {
87
+ return this.checked && this.thumbCheckedIcon
88
+ ? this.thumbCheckedIcon
89
+ : this.thumbIcon;
90
+ }
91
+
92
+ get resolvedThumbIconColor(): string {
93
+ return this.checked
94
+ ? this.thumbCheckedIconColor || this.thumbIconColor
95
+ : this.thumbIconColor;
96
+ }
97
+
98
+ @HostBinding("style")
99
+ get hostStyles(): Record<string, string> {
100
+ const styles: Record<string, string> = {};
101
+
102
+ if (this.trackColor) {
103
+ styles["--cao-slide-toggle-track"] = this.trackColor;
104
+ }
105
+ if (this.trackCheckedColor) {
106
+ styles["--cao-slide-toggle-track-checked"] = this.trackCheckedColor;
107
+ }
108
+ if (this.thumbColor) {
109
+ styles["--cao-slide-toggle-thumb"] = this.thumbColor;
110
+ }
111
+ if (this.thumbCheckedColor) {
112
+ styles["--cao-slide-toggle-thumb-checked"] = this.thumbCheckedColor;
113
+ }
114
+ if (this.disabledTrackColor) {
115
+ styles["--cao-slide-toggle-track-disabled"] = this.disabledTrackColor;
116
+ }
117
+ if (this.disabledThumbColor) {
118
+ styles["--cao-slide-toggle-thumb-disabled"] = this.disabledThumbColor;
119
+ }
120
+ if (this.labelColor) {
121
+ styles["--cao-slide-toggle-label"] = this.labelColor;
122
+ }
123
+ if (this.disabledLabelColor) {
124
+ styles["--cao-slide-toggle-label-disabled"] = this.disabledLabelColor;
125
+ }
126
+ if (this.focusRingColor) {
127
+ styles["--cao-slide-toggle-focus-ring"] = this.focusRingColor;
128
+ }
129
+ if (this.trackWidth) {
130
+ styles["--cao-slide-toggle-track-width"] = this.trackWidth;
131
+ }
132
+ if (this.trackHeight) {
133
+ styles["--cao-slide-toggle-track-height"] = this.trackHeight;
134
+ }
135
+ if (this.thumbSize) {
136
+ styles["--cao-slide-toggle-thumb-size"] = this.thumbSize;
137
+ }
138
+ if (this.animationDuration) {
139
+ styles["--cao-slide-toggle-duration"] = this.animationDuration;
140
+ }
141
+ if (this.resolvedThumbIconColor) {
142
+ styles["--cao-slide-toggle-thumb-icon-color"] = this.resolvedThumbIconColor;
143
+ }
144
+
145
+ styles["--cao-slide-toggle-thumb-icon-size"] = this.toCssLength(
146
+ this.thumbIconSize,
147
+ );
148
+
149
+ return styles;
150
+ }
151
+
152
+ toggle(): void {
153
+ if (this.isDisabled) {
154
+ return;
155
+ }
156
+
157
+ this.updateChecked(!this.checked, true);
158
+ }
159
+
160
+ setChecked(value: boolean): void {
161
+ if (this.isDisabled) {
162
+ return;
163
+ }
164
+
165
+ this.updateChecked(value, true);
166
+ }
167
+
168
+ enable(): void {
169
+ this.isDisabled = false;
170
+ this.cdr.markForCheck();
171
+ }
172
+
173
+ disable(): void {
174
+ this.isDisabled = true;
175
+ this.cdr.markForCheck();
176
+ }
177
+
178
+ onInputChange(event: Event): void {
179
+ const target = event.target as HTMLInputElement;
180
+ this.updateChecked(target.checked, true);
181
+ }
182
+
183
+ onEnter(event: Event): void {
184
+ if (this.isDisabled) {
185
+ return;
186
+ }
187
+
188
+ event.preventDefault();
189
+ this.toggle();
190
+ }
191
+
192
+ onBlur(): void {
193
+ this.onTouched();
194
+ }
195
+
196
+ writeValue(value: boolean | null): void {
197
+ this.checked = !!value;
198
+ this.cdr.markForCheck();
199
+ }
200
+
201
+ registerOnChange(fn: (value: boolean) => void): void {
202
+ this.onChange = fn;
203
+ }
204
+
205
+ registerOnTouched(fn: () => void): void {
206
+ this.onTouched = fn;
207
+ }
208
+
209
+ setDisabledState(isDisabled: boolean): void {
210
+ this.isDisabled = isDisabled;
211
+ this.cdr.markForCheck();
212
+ }
213
+
214
+ private toCssLength(value: string | number): string {
215
+ return typeof value === "number" ? `${value}px` : value;
216
+ }
217
+
218
+ private updateChecked(value: boolean, emit: boolean): void {
219
+ if (this.isDisabled) {
220
+ return;
221
+ }
222
+
223
+ this.checked = value;
224
+ this.onChange(value);
225
+
226
+ if (emit) {
227
+ this.checkedChange.emit(value);
228
+ this.toggleChange.emit({ checked: value, source: this });
229
+ }
230
+
231
+ this.cdr.markForCheck();
232
+ }
233
+ }
@@ -0,0 +1,165 @@
1
+ import { LucideCheck, LucideX, provideLucideIcons } from '@lucide/angular';
2
+ import { applicationConfig, type Meta, type StoryObj } from '@storybook/angular-vite';
3
+ import { fn } from 'storybook/test';
4
+
5
+ import { CaoSlideToggleComponent } from './slide-toggle.component';
6
+
7
+ const imageIcon =
8
+ 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Ccircle cx="12" cy="12" r="10" fill="%234f46e5"/%3E%3C/svg%3E';
9
+
10
+ const meta: Meta<CaoSlideToggleComponent> = {
11
+ title: 'Componentes/Slide Toggle',
12
+ component: CaoSlideToggleComponent,
13
+ tags: ['autodocs'],
14
+ decorators: [
15
+ applicationConfig({
16
+ providers: [provideLucideIcons(LucideCheck, LucideX)],
17
+ }),
18
+ ],
19
+ argTypes: {
20
+ checked: { control: 'boolean' },
21
+ isDisabled: { control: 'boolean' },
22
+ disabled: { control: 'boolean' },
23
+ required: { control: 'boolean' },
24
+ label: { control: 'text' },
25
+ labelPosition: { control: 'select', options: ['before', 'after'] },
26
+ trackColor: { control: 'color' },
27
+ trackCheckedColor: { control: 'color' },
28
+ thumbColor: { control: 'color' },
29
+ thumbCheckedColor: { control: 'color' },
30
+ disabledTrackColor: { control: 'color' },
31
+ disabledThumbColor: { control: 'color' },
32
+ labelColor: { control: 'color' },
33
+ disabledLabelColor: { control: 'color' },
34
+ focusRingColor: { control: 'color' },
35
+ trackWidth: { control: 'text' },
36
+ trackHeight: { control: 'text' },
37
+ thumbSize: { control: 'text' },
38
+ animationDuration: { control: 'text' },
39
+ thumbIcon: { control: 'text' },
40
+ thumbCheckedIcon: { control: 'text' },
41
+ isLucideThumbIcon: { control: 'boolean' },
42
+ thumbIconColor: { control: 'color' },
43
+ thumbCheckedIconColor: { control: 'color' },
44
+ thumbIconSize: { control: 'text' },
45
+ thumbIconStrokeWidth: { control: 'text' },
46
+ },
47
+ args: {
48
+ checked: false,
49
+ isDisabled: false,
50
+ label: 'Ativar notificações',
51
+ labelPosition: 'after',
52
+ thumbIcon: '',
53
+ thumbCheckedIcon: '',
54
+ isLucideThumbIcon: false,
55
+ thumbIconColor: '',
56
+ thumbCheckedIconColor: '',
57
+ thumbIconSize: 12,
58
+ thumbIconStrokeWidth: 2,
59
+ checkedChange: fn(),
60
+ toggleChange: fn(),
61
+ },
62
+ };
63
+
64
+ export default meta;
65
+ type Story = StoryObj<CaoSlideToggleComponent>;
66
+
67
+ export const Padrao: Story = {
68
+ args: {
69
+ checked: false,
70
+ },
71
+ };
72
+
73
+ export const Ativado: Story = {
74
+ args: {
75
+ checked: true,
76
+ label: 'Notificações ativadas',
77
+ },
78
+ };
79
+
80
+ export const Desabilitado: Story = {
81
+ args: {
82
+ checked: false,
83
+ isDisabled: true,
84
+ label: 'Desabilitado',
85
+ },
86
+ };
87
+
88
+ export const DesabilitadoAtivado: Story = {
89
+ args: {
90
+ checked: true,
91
+ isDisabled: true,
92
+ label: 'Desabilitado e ativado',
93
+ },
94
+ };
95
+
96
+ export const LabelAntes: Story = {
97
+ args: {
98
+ checked: true,
99
+ label: 'Label antes',
100
+ labelPosition: 'before',
101
+ },
102
+ };
103
+
104
+ export const CoresCustomizadas: Story = {
105
+ args: {
106
+ checked: true,
107
+ label: 'Cores customizadas',
108
+ trackCheckedColor: '#16a34a',
109
+ thumbCheckedColor: '#ffffff',
110
+ trackColor: '#fca5a5',
111
+ thumbColor: '#ffffff',
112
+ labelColor: '#166534',
113
+ },
114
+ };
115
+
116
+ export const TamanhoCustomizado: Story = {
117
+ args: {
118
+ checked: true,
119
+ label: 'Tamanho customizado',
120
+ trackWidth: '52px',
121
+ trackHeight: '28px',
122
+ thumbSize: '22px',
123
+ animationDuration: '300ms',
124
+ },
125
+ };
126
+
127
+ export const IconesLucide: Story = {
128
+ args: {
129
+ checked: true,
130
+ label: 'Notificações ativadas',
131
+ thumbIcon: 'x',
132
+ thumbCheckedIcon: 'check',
133
+ isLucideThumbIcon: true,
134
+ thumbIconColor: '#6b7280',
135
+ thumbCheckedIconColor: '#16a34a',
136
+ thumbIconSize: 12,
137
+ thumbIconStrokeWidth: 2.5,
138
+ },
139
+ };
140
+
141
+ export const IconeImagem: Story = {
142
+ args: {
143
+ checked: true,
144
+ label: 'Ícone via URL',
145
+ thumbIcon: imageIcon,
146
+ thumbCheckedIcon: imageIcon,
147
+ isLucideThumbIcon: false,
148
+ thumbIconSize: 10,
149
+ },
150
+ };
151
+
152
+ export const IconeTamanhoCustomizado: Story = {
153
+ args: {
154
+ checked: true,
155
+ label: 'Ícone maior',
156
+ thumbIcon: 'x',
157
+ thumbCheckedIcon: 'check',
158
+ isLucideThumbIcon: true,
159
+ thumbIconSize: 16,
160
+ thumbIconStrokeWidth: 3,
161
+ trackWidth: '52px',
162
+ trackHeight: '28px',
163
+ thumbSize: '24px',
164
+ },
165
+ };
@@ -637,6 +637,162 @@ declare class CaoBaseToggleComponent {
637
637
  static ɵcmp: i0.ɵɵComponentDeclaration<CaoBaseToggleComponent, "cao-base-toggle", never, { "type": { "alias": "type"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputClass": { "alias": "inputClass"; "required": false; }; "value": { "alias": "value"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "searchMode": { "alias": "searchMode"; "required": false; }; "showBorder": { "alias": "showBorder"; "required": false; }; "isLucideIcon": { "alias": "isLucideIcon"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "control": { "alias": "control"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "dataCy": { "alias": "dataCy"; "required": false; }; "textareaRows": { "alias": "textareaRows"; "required": false; }; "decimalMarker": { "alias": "decimalMarker"; "required": false; }; "thousandSeparator": { "alias": "thousandSeparator"; "required": false; }; "allowNegativeNumbers": { "alias": "allowNegativeNumbers"; "required": false; }; "separatorLimit": { "alias": "separatorLimit"; "required": false; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; }; "controlName": { "alias": "controlName"; "required": false; }; "isChecked": { "alias": "isChecked"; "required": false; }; "checkedTextPlaceholder": { "alias": "checkedTextPlaceholder"; "required": false; }; "uncheckedTextPlaceholder": { "alias": "uncheckedTextPlaceholder"; "required": false; }; }, { "valueChange": "valueChange"; "searchClick": "searchClick"; "inputChange": "inputChange"; "statusChanged": "statusChanged"; }, never, never, true, never>;
638
638
  }
639
639
 
640
+ interface ICaoSlideToggleChangeEvent {
641
+ checked: boolean;
642
+ source: CaoSlideToggleComponent;
643
+ }
644
+ declare class CaoSlideToggleComponent implements ControlValueAccessor {
645
+ checked: boolean;
646
+ isDisabled: boolean;
647
+ label: string;
648
+ labelPosition: "before" | "after";
649
+ name: string;
650
+ id: string;
651
+ ariaLabel: string;
652
+ dataCy: string;
653
+ required: boolean;
654
+ trackColor?: string;
655
+ trackCheckedColor?: string;
656
+ thumbColor?: string;
657
+ thumbCheckedColor?: string;
658
+ disabledTrackColor?: string;
659
+ disabledThumbColor?: string;
660
+ labelColor?: string;
661
+ disabledLabelColor?: string;
662
+ focusRingColor?: string;
663
+ trackWidth?: string;
664
+ trackHeight?: string;
665
+ thumbSize?: string;
666
+ animationDuration?: string;
667
+ thumbIcon: string;
668
+ thumbCheckedIcon: string;
669
+ isLucideThumbIcon: boolean;
670
+ thumbIconColor: string;
671
+ thumbCheckedIconColor: string;
672
+ thumbIconSize: string | number;
673
+ thumbIconStrokeWidth: string | number;
674
+ set disabled(value: boolean);
675
+ get disabled(): boolean;
676
+ readonly checkedChange: EventEmitter<boolean>;
677
+ readonly toggleChange: EventEmitter<ICaoSlideToggleChangeEvent>;
678
+ private readonly cdr;
679
+ private onChange;
680
+ private onTouched;
681
+ get resolvedThumbIcon(): string;
682
+ get resolvedThumbIconColor(): string;
683
+ get hostStyles(): Record<string, string>;
684
+ toggle(): void;
685
+ setChecked(value: boolean): void;
686
+ enable(): void;
687
+ disable(): void;
688
+ onInputChange(event: Event): void;
689
+ onEnter(event: Event): void;
690
+ onBlur(): void;
691
+ writeValue(value: boolean | null): void;
692
+ registerOnChange(fn: (value: boolean) => void): void;
693
+ registerOnTouched(fn: () => void): void;
694
+ setDisabledState(isDisabled: boolean): void;
695
+ private toCssLength;
696
+ private updateChecked;
697
+ static ɵfac: i0.ɵɵFactoryDeclaration<CaoSlideToggleComponent, never>;
698
+ static ɵcmp: i0.ɵɵComponentDeclaration<CaoSlideToggleComponent, "cao-slide-toggle", never, { "checked": { "alias": "checked"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "dataCy": { "alias": "dataCy"; "required": false; }; "required": { "alias": "required"; "required": false; }; "trackColor": { "alias": "trackColor"; "required": false; }; "trackCheckedColor": { "alias": "trackCheckedColor"; "required": false; }; "thumbColor": { "alias": "thumbColor"; "required": false; }; "thumbCheckedColor": { "alias": "thumbCheckedColor"; "required": false; }; "disabledTrackColor": { "alias": "disabledTrackColor"; "required": false; }; "disabledThumbColor": { "alias": "disabledThumbColor"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "disabledLabelColor": { "alias": "disabledLabelColor"; "required": false; }; "focusRingColor": { "alias": "focusRingColor"; "required": false; }; "trackWidth": { "alias": "trackWidth"; "required": false; }; "trackHeight": { "alias": "trackHeight"; "required": false; }; "thumbSize": { "alias": "thumbSize"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "thumbIcon": { "alias": "thumbIcon"; "required": false; }; "thumbCheckedIcon": { "alias": "thumbCheckedIcon"; "required": false; }; "isLucideThumbIcon": { "alias": "isLucideThumbIcon"; "required": false; }; "thumbIconColor": { "alias": "thumbIconColor"; "required": false; }; "thumbCheckedIconColor": { "alias": "thumbCheckedIconColor"; "required": false; }; "thumbIconSize": { "alias": "thumbIconSize"; "required": false; }; "thumbIconStrokeWidth": { "alias": "thumbIconStrokeWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; "toggleChange": "toggleChange"; }, never, ["*"], true, never>;
699
+ }
700
+
701
+ declare class CaoRadioButtonComponent {
702
+ readonly group: CaoRadioGroupComponent | null;
703
+ value: unknown;
704
+ label: string;
705
+ isDisabled: boolean;
706
+ labelPosition?: "before" | "after";
707
+ id: string;
708
+ name: string;
709
+ ariaLabel: string;
710
+ ariaLabelledBy: string;
711
+ dataCy: string;
712
+ color?: string;
713
+ unselectedColor?: string;
714
+ disabledColor?: string;
715
+ labelColor?: string;
716
+ disabledLabelColor?: string;
717
+ focusRingColor?: string;
718
+ size?: string;
719
+ animationDuration?: string;
720
+ set disabled(value: boolean);
721
+ get disabled(): boolean;
722
+ private readonly uid;
723
+ constructor(group: CaoRadioGroupComponent | null);
724
+ get effectiveDisabled(): boolean;
725
+ get effectiveLabelPosition(): "before" | "after";
726
+ get effectiveName(): string;
727
+ get inputId(): string;
728
+ get isSelected(): boolean;
729
+ get isRequired(): boolean;
730
+ get hostStyles(): Record<string, string>;
731
+ select(): void;
732
+ onBlur(): void;
733
+ enable(): void;
734
+ disable(): void;
735
+ static ɵfac: i0.ɵɵFactoryDeclaration<CaoRadioButtonComponent, [{ optional: true; }]>;
736
+ static ɵcmp: i0.ɵɵComponentDeclaration<CaoRadioButtonComponent, "cao-radio-button", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "dataCy": { "alias": "dataCy"; "required": false; }; "color": { "alias": "color"; "required": false; }; "unselectedColor": { "alias": "unselectedColor"; "required": false; }; "disabledColor": { "alias": "disabledColor"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "disabledLabelColor": { "alias": "disabledLabelColor"; "required": false; }; "focusRingColor": { "alias": "focusRingColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
737
+ }
738
+
739
+ interface ICaoRadioChangeEvent {
740
+ value: unknown;
741
+ source: CaoRadioButtonComponent;
742
+ }
743
+ declare class CaoRadioGroupComponent implements ControlValueAccessor {
744
+ value: unknown;
745
+ name: string;
746
+ isDisabled: boolean;
747
+ required: boolean;
748
+ orientation: "vertical" | "horizontal";
749
+ labelPosition: "before" | "after";
750
+ compareWith: (option: unknown, value: unknown) => boolean;
751
+ color?: string;
752
+ unselectedColor?: string;
753
+ disabledColor?: string;
754
+ labelColor?: string;
755
+ disabledLabelColor?: string;
756
+ focusRingColor?: string;
757
+ size?: string;
758
+ animationDuration?: string;
759
+ gap?: string;
760
+ ariaLabel: string;
761
+ ariaLabelledBy: string;
762
+ dataCy: string;
763
+ set disabled(value: boolean);
764
+ get disabled(): boolean;
765
+ readonly valueChange: EventEmitter<unknown>;
766
+ readonly selectionChange: EventEmitter<ICaoRadioChangeEvent>;
767
+ readonly resolvedName: string;
768
+ private readonly cdr;
769
+ private formDisabled;
770
+ private onChange;
771
+ private onTouched;
772
+ get isEffectivelyDisabled(): boolean;
773
+ readonly role = "radiogroup";
774
+ get isHorizontal(): boolean;
775
+ get isDisabledClass(): boolean;
776
+ get ariaLabelAttr(): string | null;
777
+ get ariaLabelledByAttr(): string | null;
778
+ get ariaDisabledAttr(): boolean | null;
779
+ get ariaRequiredAttr(): boolean | null;
780
+ get dataCyAttr(): string | null;
781
+ get hostStyles(): Record<string, string>;
782
+ get groupName(): string;
783
+ isValueSelected(value: unknown): boolean;
784
+ select(button: CaoRadioButtonComponent): void;
785
+ markAsTouched(): void;
786
+ enable(): void;
787
+ disable(): void;
788
+ writeValue(value: unknown): void;
789
+ registerOnChange(fn: (value: unknown) => void): void;
790
+ registerOnTouched(fn: () => void): void;
791
+ setDisabledState(isDisabled: boolean): void;
792
+ static ɵfac: i0.ɵɵFactoryDeclaration<CaoRadioGroupComponent, never>;
793
+ static ɵcmp: i0.ɵɵComponentDeclaration<CaoRadioGroupComponent, "cao-radio-group", never, { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "color": { "alias": "color"; "required": false; }; "unselectedColor": { "alias": "unselectedColor"; "required": false; }; "disabledColor": { "alias": "disabledColor"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "disabledLabelColor": { "alias": "disabledLabelColor"; "required": false; }; "focusRingColor": { "alias": "focusRingColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "dataCy": { "alias": "dataCy"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; }, never, ["*"], true, never>;
794
+ }
795
+
640
796
  type ModalType = "validation" | "finger" | "facial" | "clinic" | "graph" | "restriction" | "default";
641
797
  interface IModal {
642
798
  status: boolean;
@@ -1046,6 +1202,7 @@ declare class CaoWidgetService {
1046
1202
  static ɵprov: i0.ɵɵInjectableDeclaration<CaoWidgetService>;
1047
1203
  }
1048
1204
 
1205
+ type CaoWidgetDirection = "left" | "right" | "top" | "bottom";
1049
1206
  declare class CaoBaseWidgetComponent<TData = unknown> {
1050
1207
  private static readonly CLOSE_ANIMATION_MS;
1051
1208
  title: i0.InputSignal<string>;
@@ -1057,6 +1214,7 @@ declare class CaoBaseWidgetComponent<TData = unknown> {
1057
1214
  displaySaveButton: i0.InputSignal<boolean>;
1058
1215
  displayCancelButton: i0.InputSignal<boolean>;
1059
1216
  shouldCloseWhenCancel: i0.InputSignal<boolean>;
1217
+ widgetDirection: i0.InputSignal<CaoWidgetDirection>;
1060
1218
  typeCancel: i0.InputSignal<"cancel" | "back">;
1061
1219
  saveDisabled: i0.InputSignal<boolean>;
1062
1220
  saveIcon: i0.InputSignal<string>;
@@ -1087,8 +1245,8 @@ declare class CaoBaseWidgetComponent<TData = unknown> {
1087
1245
  private startClose;
1088
1246
  private emitCloseRequest;
1089
1247
  static ɵfac: i0.ɵɵFactoryDeclaration<CaoBaseWidgetComponent<any>, never>;
1090
- static ɵcmp: i0.ɵɵComponentDeclaration<CaoBaseWidgetComponent<any>, "cao-base-widget", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "widgetIcon": { "alias": "widgetIcon"; "required": false; "isSignal": true; }; "cancelTextButton": { "alias": "cancelTextButton"; "required": false; "isSignal": true; }; "saveTextButton": { "alias": "saveTextButton"; "required": false; "isSignal": true; }; "displayActionButton": { "alias": "displayActionButton"; "required": false; "isSignal": true; }; "displaySaveButton": { "alias": "displaySaveButton"; "required": false; "isSignal": true; }; "displayCancelButton": { "alias": "displayCancelButton"; "required": false; "isSignal": true; }; "shouldCloseWhenCancel": { "alias": "shouldCloseWhenCancel"; "required": false; "isSignal": true; }; "typeCancel": { "alias": "typeCancel"; "required": false; "isSignal": true; }; "saveDisabled": { "alias": "saveDisabled"; "required": false; "isSignal": true; }; "saveIcon": { "alias": "saveIcon"; "required": false; "isSignal": true; }; "saveIconPosition": { "alias": "saveIconPosition"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "confirmOnClose": { "alias": "confirmOnClose"; "required": false; "isSignal": true; }; "widgetData": { "alias": "widgetData"; "required": false; "isSignal": true; }; }, { "save": "save"; "deleted": "deleted"; "cancelEvent": "cancelEvent"; "closeRequest": "closeRequest"; }, never, ["widget-title", "*"], true, never>;
1248
+ static ɵcmp: i0.ɵɵComponentDeclaration<CaoBaseWidgetComponent<any>, "cao-base-widget", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "widgetIcon": { "alias": "widgetIcon"; "required": false; "isSignal": true; }; "cancelTextButton": { "alias": "cancelTextButton"; "required": false; "isSignal": true; }; "saveTextButton": { "alias": "saveTextButton"; "required": false; "isSignal": true; }; "displayActionButton": { "alias": "displayActionButton"; "required": false; "isSignal": true; }; "displaySaveButton": { "alias": "displaySaveButton"; "required": false; "isSignal": true; }; "displayCancelButton": { "alias": "displayCancelButton"; "required": false; "isSignal": true; }; "shouldCloseWhenCancel": { "alias": "shouldCloseWhenCancel"; "required": false; "isSignal": true; }; "widgetDirection": { "alias": "widgetDirection"; "required": false; "isSignal": true; }; "typeCancel": { "alias": "typeCancel"; "required": false; "isSignal": true; }; "saveDisabled": { "alias": "saveDisabled"; "required": false; "isSignal": true; }; "saveIcon": { "alias": "saveIcon"; "required": false; "isSignal": true; }; "saveIconPosition": { "alias": "saveIconPosition"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "confirmOnClose": { "alias": "confirmOnClose"; "required": false; "isSignal": true; }; "widgetData": { "alias": "widgetData"; "required": false; "isSignal": true; }; }, { "save": "save"; "deleted": "deleted"; "cancelEvent": "cancelEvent"; "closeRequest": "closeRequest"; }, never, ["widget-title", "*"], true, never>;
1091
1249
  }
1092
1250
 
1093
- export { BaseAlert, BaseAlertService, BaseDialog, BaseDialogService, BaseFilterTablePaginatedService, BaseFilterTableService, BaseModal, BaseModalService, BasePaginationService, BaseTable, BaseTablePaginated, BaseTableService, BaseTimeRange, CaoAutocompleteComponent, CaoBaseButtonComponent, CaoBaseIcon, CaoBaseInput, CaoBaseToggleComponent, CaoBaseWidgetComponent, CaoCardComponent, CaoDropDownComponent, CaoError, CaoFormField, CaoHint, CaoKpi, CaoSkeletonComponent, CaoTabGroup, CaoTabPanel, CaoWidgetService, DEFAULT_ERROR_STATE_MATCHER, ErrorStateMatcher, Footer, LinksButton, Paginator, ShowOnDirtyErrorStateMatcher, StepComponent, StepperComponent, TablePaginatedService, TimePicker, getPtBrPaginatorIntlBasePaginated, getPtBrPaginatorIntlBaseTable };
1094
- export type { AlertType, CaoCardVariant, CaoSkeletonVariant, CaoTypeInputs, DialogType, IAlertConfig, ICaoAutoCompleteOption, ICaoCardAvatar, ICaoCardBadge, ICaoCardMeta, ICaoDropDownOption, ICaoImage, ICaoKPI, ICaoTabChangeEvent, ICaoWidgetOptions, IColumnButton, IColumnConfig, IColumnPaginatedButton, IColumnPaginatedConfig, IDialogConfig, IErrorStateMatcher, IFormFieldControl, IModal, INavContent, INavLink, ITableConfig, ITablePaginatedConfig, ModalType, ModalTypeClass, ModalTypeSize };
1251
+ export { BaseAlert, BaseAlertService, BaseDialog, BaseDialogService, BaseFilterTablePaginatedService, BaseFilterTableService, BaseModal, BaseModalService, BasePaginationService, BaseTable, BaseTablePaginated, BaseTableService, BaseTimeRange, CaoAutocompleteComponent, CaoBaseButtonComponent, CaoBaseIcon, CaoBaseInput, CaoBaseToggleComponent, CaoBaseWidgetComponent, CaoCardComponent, CaoDropDownComponent, CaoError, CaoFormField, CaoHint, CaoKpi, CaoRadioButtonComponent, CaoRadioGroupComponent, CaoSkeletonComponent, CaoSlideToggleComponent, CaoTabGroup, CaoTabPanel, CaoWidgetService, DEFAULT_ERROR_STATE_MATCHER, ErrorStateMatcher, Footer, LinksButton, Paginator, ShowOnDirtyErrorStateMatcher, StepComponent, StepperComponent, TablePaginatedService, TimePicker, getPtBrPaginatorIntlBasePaginated, getPtBrPaginatorIntlBaseTable };
1252
+ export type { AlertType, CaoCardVariant, CaoSkeletonVariant, CaoTypeInputs, CaoWidgetDirection, DialogType, IAlertConfig, ICaoAutoCompleteOption, ICaoCardAvatar, ICaoCardBadge, ICaoCardMeta, ICaoDropDownOption, ICaoImage, ICaoKPI, ICaoRadioChangeEvent, ICaoSlideToggleChangeEvent, ICaoTabChangeEvent, ICaoWidgetOptions, IColumnButton, IColumnConfig, IColumnPaginatedButton, IColumnPaginatedConfig, IDialogConfig, IErrorStateMatcher, IFormFieldControl, IModal, INavContent, INavLink, ITableConfig, ITablePaginatedConfig, ModalType, ModalTypeClass, ModalTypeSize };