@eduboxpro/studio 0.1.8 → 0.1.10
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/fesm2022/eduboxpro-studio.mjs +1141 -6
- package/fesm2022/eduboxpro-studio.mjs.map +1 -1
- package/index.d.ts +383 -4
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, ElementRef, Signal } from '@angular/core';
|
|
3
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, TemplateRef, ElementRef, WritableSignal, Signal } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
4
|
import { icons } from 'lucide-angular';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -219,6 +219,43 @@ interface ButtonToggleGroupDefaultsConfig {
|
|
|
219
219
|
radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
220
220
|
shadow?: 'none' | 'sm' | 'md' | 'lg';
|
|
221
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Select component defaults configuration
|
|
224
|
+
*/
|
|
225
|
+
interface SelectDefaultsConfig {
|
|
226
|
+
variant?: 'outline' | 'filled' | 'underline';
|
|
227
|
+
size?: 'sm' | 'md' | 'lg';
|
|
228
|
+
radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';
|
|
229
|
+
searchable?: boolean;
|
|
230
|
+
clearable?: boolean;
|
|
231
|
+
maxHeight?: string;
|
|
232
|
+
position?: 'auto' | 'top' | 'bottom';
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Drawer component defaults configuration
|
|
236
|
+
*/
|
|
237
|
+
interface DrawerDefaultsConfig {
|
|
238
|
+
position?: 'left' | 'right' | 'top' | 'bottom';
|
|
239
|
+
size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
240
|
+
modal?: boolean;
|
|
241
|
+
closeOnEscape?: boolean;
|
|
242
|
+
closeOnBackdropClick?: boolean;
|
|
243
|
+
showHeader?: boolean;
|
|
244
|
+
showCloseButton?: boolean;
|
|
245
|
+
closeButtonPosition?: 'left' | 'right';
|
|
246
|
+
swipeToClose?: boolean;
|
|
247
|
+
swipeThreshold?: number;
|
|
248
|
+
animationDuration?: number;
|
|
249
|
+
animationEasing?: 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
|
|
250
|
+
disableAnimation?: boolean;
|
|
251
|
+
shadow?: boolean;
|
|
252
|
+
shadowSize?: 'sm' | 'md' | 'lg' | 'xl';
|
|
253
|
+
radius?: 'none' | 'sm' | 'md' | 'lg';
|
|
254
|
+
autoFocus?: boolean;
|
|
255
|
+
restoreFocus?: boolean;
|
|
256
|
+
blockScroll?: boolean;
|
|
257
|
+
role?: 'dialog' | 'alertdialog';
|
|
258
|
+
}
|
|
222
259
|
/**
|
|
223
260
|
* Components defaults configuration
|
|
224
261
|
*/
|
|
@@ -231,6 +268,8 @@ interface ComponentsConfig {
|
|
|
231
268
|
textarea?: TextareaDefaultsConfig;
|
|
232
269
|
buttonGroup?: ButtonGroupDefaultsConfig;
|
|
233
270
|
buttonToggleGroup?: ButtonToggleGroupDefaultsConfig;
|
|
271
|
+
select?: SelectDefaultsConfig;
|
|
272
|
+
drawer?: DrawerDefaultsConfig;
|
|
234
273
|
}
|
|
235
274
|
/**
|
|
236
275
|
* Main Studio configuration interface
|
|
@@ -561,6 +600,176 @@ type CheckboxColor = 'primary' | 'secondary' | 'success' | 'error';
|
|
|
561
600
|
type CheckboxVariant = 'default' | 'outlined' | 'filled';
|
|
562
601
|
type CheckboxRadius = 'none' | 'sm' | 'md' | 'lg' | 'full';
|
|
563
602
|
|
|
603
|
+
type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
604
|
+
type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
605
|
+
type DrawerRadius = 'none' | 'sm' | 'md' | 'lg';
|
|
606
|
+
type DrawerShadowSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
607
|
+
type DrawerRole = 'dialog' | 'alertdialog';
|
|
608
|
+
type DrawerAnimationEasing = 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
|
|
609
|
+
type DrawerCloseButtonPosition = 'left' | 'right';
|
|
610
|
+
interface DrawerConfig {
|
|
611
|
+
position?: DrawerPosition;
|
|
612
|
+
size?: DrawerSize;
|
|
613
|
+
modal?: boolean;
|
|
614
|
+
closeOnEscape?: boolean;
|
|
615
|
+
closeOnBackdropClick?: boolean;
|
|
616
|
+
showCloseButton?: boolean;
|
|
617
|
+
closeButtonPosition?: DrawerCloseButtonPosition;
|
|
618
|
+
swipeToClose?: boolean;
|
|
619
|
+
swipeThreshold?: number;
|
|
620
|
+
animationDuration?: number;
|
|
621
|
+
animationEasing?: DrawerAnimationEasing;
|
|
622
|
+
disableAnimation?: boolean;
|
|
623
|
+
shadow?: boolean;
|
|
624
|
+
shadowSize?: DrawerShadowSize;
|
|
625
|
+
radius?: DrawerRadius;
|
|
626
|
+
autoFocus?: boolean;
|
|
627
|
+
restoreFocus?: boolean;
|
|
628
|
+
blockScroll?: boolean;
|
|
629
|
+
role?: DrawerRole;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
declare class DrawerComponent {
|
|
633
|
+
private readonly document;
|
|
634
|
+
private readonly destroyRef;
|
|
635
|
+
private readonly configService;
|
|
636
|
+
private readonly drawerService;
|
|
637
|
+
private readonly drawerDefaults;
|
|
638
|
+
protected readonly headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
639
|
+
protected readonly footerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
|
|
640
|
+
protected readonly panelEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
641
|
+
id: _angular_core.InputSignal<string>;
|
|
642
|
+
visible: _angular_core.ModelSignal<boolean>;
|
|
643
|
+
positionInput: _angular_core.InputSignal<DrawerPosition | undefined>;
|
|
644
|
+
sizeInput: _angular_core.InputSignal<DrawerSize | undefined>;
|
|
645
|
+
customWidth: _angular_core.InputSignal<string | undefined>;
|
|
646
|
+
customHeight: _angular_core.InputSignal<string | undefined>;
|
|
647
|
+
position: _angular_core.Signal<"left" | "right" | "top" | "bottom">;
|
|
648
|
+
size: _angular_core.Signal<"sm" | "md" | "lg" | "xl" | "full">;
|
|
649
|
+
modalInput: _angular_core.InputSignal<boolean | undefined>;
|
|
650
|
+
closeOnEscapeInput: _angular_core.InputSignal<boolean | undefined>;
|
|
651
|
+
closeOnBackdropClickInput: _angular_core.InputSignal<boolean | undefined>;
|
|
652
|
+
blockScrollInput: _angular_core.InputSignal<boolean | undefined>;
|
|
653
|
+
modal: _angular_core.Signal<boolean>;
|
|
654
|
+
closeOnEscape: _angular_core.Signal<boolean>;
|
|
655
|
+
closeOnBackdropClick: _angular_core.Signal<boolean>;
|
|
656
|
+
blockScroll: _angular_core.Signal<boolean>;
|
|
657
|
+
header: _angular_core.InputSignal<string | undefined>;
|
|
658
|
+
showHeaderInput: _angular_core.InputSignal<boolean | undefined>;
|
|
659
|
+
showCloseButtonInput: _angular_core.InputSignal<boolean | undefined>;
|
|
660
|
+
closeButtonPositionInput: _angular_core.InputSignal<DrawerCloseButtonPosition | undefined>;
|
|
661
|
+
showFooter: _angular_core.InputSignal<boolean>;
|
|
662
|
+
showHeader: _angular_core.Signal<boolean>;
|
|
663
|
+
showCloseButton: _angular_core.Signal<boolean>;
|
|
664
|
+
closeButtonPosition: _angular_core.Signal<"left" | "right">;
|
|
665
|
+
swipeToCloseInput: _angular_core.InputSignal<boolean | undefined>;
|
|
666
|
+
swipeThresholdInput: _angular_core.InputSignal<number | undefined>;
|
|
667
|
+
swipeToClose: _angular_core.Signal<boolean>;
|
|
668
|
+
swipeThreshold: _angular_core.Signal<number>;
|
|
669
|
+
animationDurationInput: _angular_core.InputSignal<number | undefined>;
|
|
670
|
+
animationEasingInput: _angular_core.InputSignal<DrawerAnimationEasing | undefined>;
|
|
671
|
+
disableAnimationInput: _angular_core.InputSignal<boolean | undefined>;
|
|
672
|
+
animationDuration: _angular_core.Signal<number>;
|
|
673
|
+
animationEasing: _angular_core.Signal<"ease" | "ease-in" | "ease-out" | "ease-in-out">;
|
|
674
|
+
disableAnimation: _angular_core.Signal<boolean>;
|
|
675
|
+
radiusInput: _angular_core.InputSignal<DrawerRadius | undefined>;
|
|
676
|
+
shadowInput: _angular_core.InputSignal<boolean | undefined>;
|
|
677
|
+
shadowSizeInput: _angular_core.InputSignal<DrawerShadowSize | undefined>;
|
|
678
|
+
radius: _angular_core.Signal<"sm" | "md" | "lg" | "none">;
|
|
679
|
+
shadow: _angular_core.Signal<boolean>;
|
|
680
|
+
shadowSize: _angular_core.Signal<"sm" | "md" | "lg" | "xl">;
|
|
681
|
+
ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
682
|
+
ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
|
|
683
|
+
ariaDescribedBy: _angular_core.InputSignal<string | undefined>;
|
|
684
|
+
autoFocusInput: _angular_core.InputSignal<boolean | undefined>;
|
|
685
|
+
restoreFocusInput: _angular_core.InputSignal<boolean | undefined>;
|
|
686
|
+
roleInput: _angular_core.InputSignal<DrawerRole | undefined>;
|
|
687
|
+
autoFocus: _angular_core.Signal<boolean>;
|
|
688
|
+
restoreFocus: _angular_core.Signal<boolean>;
|
|
689
|
+
role: _angular_core.Signal<"dialog" | "alertdialog">;
|
|
690
|
+
visibleChange: _angular_core.OutputEmitterRef<boolean>;
|
|
691
|
+
opened: _angular_core.OutputEmitterRef<void>;
|
|
692
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
693
|
+
backdropClick: _angular_core.OutputEmitterRef<void>;
|
|
694
|
+
private previousActiveElement?;
|
|
695
|
+
private touchStartX;
|
|
696
|
+
private touchStartY;
|
|
697
|
+
private isDragging;
|
|
698
|
+
private scrollbarWidth;
|
|
699
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
700
|
+
constructor();
|
|
701
|
+
protected handleOpen(): void;
|
|
702
|
+
protected handleClose(): void;
|
|
703
|
+
open(): void;
|
|
704
|
+
close(): void;
|
|
705
|
+
toggle(): void;
|
|
706
|
+
protected handleBackdropClick(): void;
|
|
707
|
+
protected handleEscapeKey(event: KeyboardEvent): void;
|
|
708
|
+
protected onTouchStart(event: TouchEvent): void;
|
|
709
|
+
protected onTouchMove(event: TouchEvent): void;
|
|
710
|
+
protected onTouchEnd(event: TouchEvent): void;
|
|
711
|
+
private applyDragTransform;
|
|
712
|
+
private resetTransform;
|
|
713
|
+
private lockBodyScroll;
|
|
714
|
+
private unlockBodyScroll;
|
|
715
|
+
private setupFocusTrap;
|
|
716
|
+
private restorePreviousFocus;
|
|
717
|
+
private getFirstFocusableElement;
|
|
718
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
719
|
+
private trapFocus;
|
|
720
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerComponent, never>;
|
|
721
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DrawerComponent, "studio-drawer", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "positionInput": { "alias": "position"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "customWidth": { "alias": "customWidth"; "required": false; "isSignal": true; }; "customHeight": { "alias": "customHeight"; "required": false; "isSignal": true; }; "modalInput": { "alias": "modal"; "required": false; "isSignal": true; }; "closeOnEscapeInput": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnBackdropClickInput": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "blockScrollInput": { "alias": "blockScroll"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "showHeaderInput": { "alias": "showHeader"; "required": false; "isSignal": true; }; "showCloseButtonInput": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "closeButtonPositionInput": { "alias": "closeButtonPosition"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "swipeToCloseInput": { "alias": "swipeToClose"; "required": false; "isSignal": true; }; "swipeThresholdInput": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; "animationDurationInput": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "animationEasingInput": { "alias": "animationEasing"; "required": false; "isSignal": true; }; "disableAnimationInput": { "alias": "disableAnimation"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "shadowInput": { "alias": "shadow"; "required": false; "isSignal": true; }; "shadowSizeInput": { "alias": "shadowSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "autoFocusInput": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "restoreFocusInput": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "roleInput": { "alias": "role"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "visibleChange": "visibleChange"; "opened": "opened"; "closed": "closed"; "backdropClick": "backdropClick"; }, ["headerTemplate", "footerTemplate"], ["[drawerHeader]", "*", "[drawerFooter]"], true, never>;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
/**
|
|
725
|
+
* Service for programmatic control of Drawer components
|
|
726
|
+
*
|
|
727
|
+
* @example
|
|
728
|
+
* ```typescript
|
|
729
|
+
* // In component
|
|
730
|
+
* private drawerService = inject(DrawerService);
|
|
731
|
+
*
|
|
732
|
+
* openSettings() {
|
|
733
|
+
* this.drawerService.open('settings-drawer');
|
|
734
|
+
* }
|
|
735
|
+
* ```
|
|
736
|
+
*/
|
|
737
|
+
declare class DrawerService {
|
|
738
|
+
private drawers;
|
|
739
|
+
/**
|
|
740
|
+
* Register a drawer with the service
|
|
741
|
+
* Called automatically by DrawerComponent
|
|
742
|
+
*/
|
|
743
|
+
register(id: string, signal: WritableSignal<boolean>): void;
|
|
744
|
+
/**
|
|
745
|
+
* Unregister a drawer from the service
|
|
746
|
+
* Called automatically on component destroy
|
|
747
|
+
*/
|
|
748
|
+
unregister(id: string): void;
|
|
749
|
+
/**
|
|
750
|
+
* Open a drawer by ID
|
|
751
|
+
*/
|
|
752
|
+
open(id: string): void;
|
|
753
|
+
/**
|
|
754
|
+
* Close a drawer by ID
|
|
755
|
+
*/
|
|
756
|
+
close(id: string): void;
|
|
757
|
+
/**
|
|
758
|
+
* Toggle a drawer by ID
|
|
759
|
+
*/
|
|
760
|
+
toggle(id: string): void;
|
|
761
|
+
/**
|
|
762
|
+
* Close all registered drawers
|
|
763
|
+
*/
|
|
764
|
+
closeAll(): void;
|
|
765
|
+
/**
|
|
766
|
+
* Check if a drawer is open
|
|
767
|
+
*/
|
|
768
|
+
isOpen(id: string): boolean;
|
|
769
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawerService, never>;
|
|
770
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawerService>;
|
|
771
|
+
}
|
|
772
|
+
|
|
564
773
|
/**
|
|
565
774
|
* Icon component with Lucide icons support
|
|
566
775
|
*
|
|
@@ -699,6 +908,104 @@ declare class InputComponent implements ControlValueAccessor {
|
|
|
699
908
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "studio-input", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "inputmode": { "alias": "inputmode"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "showPasswordToggle": { "alias": "showPasswordToggle"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "focused": "focused"; "blurred": "blurred"; "cleared": "cleared"; "entered": "entered"; }, never, never, true, never>;
|
|
700
909
|
}
|
|
701
910
|
|
|
911
|
+
interface SelectOption<T = any> {
|
|
912
|
+
label: string;
|
|
913
|
+
value: T;
|
|
914
|
+
disabled?: boolean;
|
|
915
|
+
icon?: string;
|
|
916
|
+
description?: string;
|
|
917
|
+
group?: string;
|
|
918
|
+
metadata?: Record<string, any>;
|
|
919
|
+
}
|
|
920
|
+
interface SelectOptionGroup<T = any> {
|
|
921
|
+
label: string;
|
|
922
|
+
options: SelectOption<T>[];
|
|
923
|
+
disabled?: boolean;
|
|
924
|
+
}
|
|
925
|
+
type SelectVariant = 'outline' | 'filled' | 'underline';
|
|
926
|
+
type SelectSize = 'sm' | 'md' | 'lg';
|
|
927
|
+
type SelectPosition = 'auto' | 'top' | 'bottom';
|
|
928
|
+
interface SelectDisplayContext<T = any> {
|
|
929
|
+
option: SelectOption<T>;
|
|
930
|
+
selected: boolean;
|
|
931
|
+
highlighted: boolean;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
declare class SelectComponent<T = any> implements ControlValueAccessor {
|
|
935
|
+
private readonly configService;
|
|
936
|
+
private readonly selectDefaults;
|
|
937
|
+
protected readonly triggerEl: _angular_core.Signal<ElementRef<HTMLButtonElement> | undefined>;
|
|
938
|
+
protected readonly dropdownEl: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
939
|
+
variantInput: _angular_core.InputSignal<SelectVariant | undefined>;
|
|
940
|
+
sizeInput: _angular_core.InputSignal<SelectSize | undefined>;
|
|
941
|
+
radiusInput: _angular_core.InputSignal<"sm" | "md" | "lg" | "none" | "full" | undefined>;
|
|
942
|
+
variant: _angular_core.Signal<"outline" | "filled" | "underline">;
|
|
943
|
+
size: _angular_core.Signal<"sm" | "md" | "lg">;
|
|
944
|
+
radius: _angular_core.Signal<"sm" | "md" | "lg" | "none" | "full">;
|
|
945
|
+
options: _angular_core.InputSignal<SelectOption<T>[] | SelectOptionGroup<T>[]>;
|
|
946
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
947
|
+
multiple: _angular_core.InputSignal<boolean>;
|
|
948
|
+
searchable: _angular_core.InputSignal<boolean>;
|
|
949
|
+
clearable: _angular_core.InputSignal<boolean>;
|
|
950
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
951
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
952
|
+
label: _angular_core.InputSignal<string | undefined>;
|
|
953
|
+
floatingLabel: _angular_core.InputSignal<boolean>;
|
|
954
|
+
hint: _angular_core.InputSignal<string | undefined>;
|
|
955
|
+
error: _angular_core.InputSignal<boolean>;
|
|
956
|
+
errorMessage: _angular_core.InputSignal<string | undefined>;
|
|
957
|
+
required: _angular_core.InputSignal<boolean>;
|
|
958
|
+
prefixIcon: _angular_core.InputSignal<string | undefined>;
|
|
959
|
+
suffixIcon: _angular_core.InputSignal<string>;
|
|
960
|
+
fullWidth: _angular_core.InputSignal<boolean>;
|
|
961
|
+
maxHeight: _angular_core.InputSignal<string>;
|
|
962
|
+
position: _angular_core.InputSignal<SelectPosition>;
|
|
963
|
+
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
964
|
+
valueChange: _angular_core.OutputEmitterRef<T | T[] | null>;
|
|
965
|
+
searchChange: _angular_core.OutputEmitterRef<string>;
|
|
966
|
+
opened: _angular_core.OutputEmitterRef<void>;
|
|
967
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
968
|
+
optionSelected: _angular_core.OutputEmitterRef<SelectOption<T>>;
|
|
969
|
+
protected isOpen: _angular_core.WritableSignal<boolean>;
|
|
970
|
+
protected searchQuery: _angular_core.WritableSignal<string>;
|
|
971
|
+
protected selectedValue: _angular_core.WritableSignal<T | T[] | null>;
|
|
972
|
+
protected highlightedIndex: _angular_core.WritableSignal<number>;
|
|
973
|
+
protected isFocused: _angular_core.WritableSignal<boolean>;
|
|
974
|
+
protected isTouched: _angular_core.WritableSignal<boolean>;
|
|
975
|
+
protected generatedId: string;
|
|
976
|
+
private onChange;
|
|
977
|
+
private onTouched;
|
|
978
|
+
constructor();
|
|
979
|
+
protected flattenedOptions: _angular_core.Signal<SelectOption<T>[]>;
|
|
980
|
+
protected filteredOptions: _angular_core.Signal<SelectOption<T>[]>;
|
|
981
|
+
protected selectedOptions: _angular_core.Signal<SelectOption<T> | SelectOption<T>[] | null>;
|
|
982
|
+
protected displayValue: _angular_core.Signal<string>;
|
|
983
|
+
protected hasValue: _angular_core.Signal<boolean>;
|
|
984
|
+
protected hostClasses: _angular_core.Signal<string>;
|
|
985
|
+
protected toggle(): void;
|
|
986
|
+
protected close(): void;
|
|
987
|
+
protected selectOption(option: SelectOption<T>): void;
|
|
988
|
+
protected clear(event: Event): void;
|
|
989
|
+
protected isSelected(option: SelectOption<T>): boolean;
|
|
990
|
+
protected handleSearch(event: Event): void;
|
|
991
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
992
|
+
private highlightNext;
|
|
993
|
+
private highlightPrevious;
|
|
994
|
+
private selectHighlighted;
|
|
995
|
+
private compareValues;
|
|
996
|
+
private isOptionGroup;
|
|
997
|
+
private focusSearchInput;
|
|
998
|
+
private clickOutsideListener?;
|
|
999
|
+
private setupClickOutside;
|
|
1000
|
+
private cleanupClickOutside;
|
|
1001
|
+
writeValue(value: T | T[]): void;
|
|
1002
|
+
registerOnChange(fn: any): void;
|
|
1003
|
+
registerOnTouched(fn: any): void;
|
|
1004
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1005
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent<any>, never>;
|
|
1006
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent<any>, "studio-select", never, { "variantInput": { "alias": "variant"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "size"; "required": false; "isSignal": true; }; "radiusInput": { "alias": "radius"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
702
1009
|
/**
|
|
703
1010
|
* Toggle switch component with customizable size and color
|
|
704
1011
|
*
|
|
@@ -1015,6 +1322,78 @@ declare class ThemeSwitchComponent {
|
|
|
1015
1322
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeSwitchComponent, "studio-theme-switch", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1016
1323
|
}
|
|
1017
1324
|
|
|
1325
|
+
declare class MaskDirective implements Validator {
|
|
1326
|
+
private readonly el;
|
|
1327
|
+
private readonly renderer;
|
|
1328
|
+
private readonly destroyRef;
|
|
1329
|
+
readonly mask: _angular_core.InputSignalWithTransform<string, string>;
|
|
1330
|
+
readonly maskPlaceholder: _angular_core.InputSignal<string>;
|
|
1331
|
+
readonly maskGuide: _angular_core.InputSignal<boolean>;
|
|
1332
|
+
readonly maskShowOnHover: _angular_core.InputSignal<boolean>;
|
|
1333
|
+
readonly maskShowOnFocus: _angular_core.InputSignal<boolean>;
|
|
1334
|
+
readonly maskClearIncomplete: _angular_core.InputSignal<boolean>;
|
|
1335
|
+
readonly maskAutoUnmask: _angular_core.InputSignal<boolean>;
|
|
1336
|
+
private readonly config;
|
|
1337
|
+
private readonly engine;
|
|
1338
|
+
readonly isComplete: _angular_core.WritableSignal<boolean>;
|
|
1339
|
+
readonly isActive: _angular_core.WritableSignal<boolean>;
|
|
1340
|
+
private onChange;
|
|
1341
|
+
private onTouched;
|
|
1342
|
+
constructor();
|
|
1343
|
+
onInput(event: InputEvent): void;
|
|
1344
|
+
onFocus(): void;
|
|
1345
|
+
onBlur(): void;
|
|
1346
|
+
onPaste(event: ClipboardEvent): void;
|
|
1347
|
+
writeValue(value: string): void;
|
|
1348
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
1349
|
+
registerOnTouched(fn: () => void): void;
|
|
1350
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
1351
|
+
private updatePlaceholder;
|
|
1352
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MaskDirective, never>;
|
|
1353
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MaskDirective, "input[studioMask]", never, { "mask": { "alias": "studioMask"; "required": false; "isSignal": true; }; "maskPlaceholder": { "alias": "maskPlaceholder"; "required": false; "isSignal": true; }; "maskGuide": { "alias": "maskGuide"; "required": false; "isSignal": true; }; "maskShowOnHover": { "alias": "maskShowOnHover"; "required": false; "isSignal": true; }; "maskShowOnFocus": { "alias": "maskShowOnFocus"; "required": false; "isSignal": true; }; "maskClearIncomplete": { "alias": "maskClearIncomplete"; "required": false; "isSignal": true; }; "maskAutoUnmask": { "alias": "maskAutoUnmask"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
interface MaskConfig {
|
|
1357
|
+
pattern: string;
|
|
1358
|
+
placeholder?: string;
|
|
1359
|
+
guide?: boolean;
|
|
1360
|
+
showOnHover?: boolean;
|
|
1361
|
+
showOnFocus?: boolean;
|
|
1362
|
+
clearIncomplete?: boolean;
|
|
1363
|
+
autoUnmask?: boolean;
|
|
1364
|
+
}
|
|
1365
|
+
interface MaskToken {
|
|
1366
|
+
type: 'digit' | 'letter' | 'alphanumeric' | 'any' | 'mixed' | 'static';
|
|
1367
|
+
char?: string;
|
|
1368
|
+
pattern?: RegExp;
|
|
1369
|
+
optional?: boolean;
|
|
1370
|
+
}
|
|
1371
|
+
interface MaskResult {
|
|
1372
|
+
value: string;
|
|
1373
|
+
raw: string;
|
|
1374
|
+
cursor: number;
|
|
1375
|
+
isComplete: boolean;
|
|
1376
|
+
}
|
|
1377
|
+
type MaskPreset = 'phone' | 'phone-ru' | 'phone-kz' | 'date' | 'datetime' | 'time' | 'card' | 'inn' | 'snils' | 'passport-ru';
|
|
1378
|
+
|
|
1379
|
+
declare class MaskEngine {
|
|
1380
|
+
private readonly config;
|
|
1381
|
+
private readonly tokens;
|
|
1382
|
+
private readonly patterns;
|
|
1383
|
+
constructor(config: MaskConfig);
|
|
1384
|
+
process(value: string, cursorPos?: number): MaskResult;
|
|
1385
|
+
getPlaceholder(): string;
|
|
1386
|
+
private parsePattern;
|
|
1387
|
+
private getTokenType;
|
|
1388
|
+
private applyMask;
|
|
1389
|
+
private extractRaw;
|
|
1390
|
+
private applyGuide;
|
|
1391
|
+
private calculateCursor;
|
|
1392
|
+
private checkComplete;
|
|
1393
|
+
}
|
|
1394
|
+
|
|
1395
|
+
declare const MASK_PRESETS: Record<MaskPreset, MaskConfig>;
|
|
1396
|
+
|
|
1018
1397
|
/**
|
|
1019
1398
|
* Checks if URL is safe for navigation
|
|
1020
1399
|
*
|
|
@@ -1113,5 +1492,5 @@ declare function loadGoogleFonts(fonts: Array<{
|
|
|
1113
1492
|
display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';
|
|
1114
1493
|
}>): void;
|
|
1115
1494
|
|
|
1116
|
-
export { BadgeComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, IconComponent, InputComponent, STUDIO_CONFIG, StudioConfigService, SwitchComponent, TextareaComponent, ThemeSwitchComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
|
|
1117
|
-
export type { BadgeDefaultsConfig, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ComponentsConfig, InputDefaultsConfig, InputMode, InputType, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode };
|
|
1495
|
+
export { BadgeComponent, ButtonComponent, ButtonGroupComponent, ButtonToggleGroupComponent, CheckboxComponent, DrawerComponent, DrawerService, IconComponent, InputComponent, MASK_PRESETS, MaskDirective, MaskEngine, STUDIO_CONFIG, SelectComponent, StudioConfigService, SwitchComponent, TextareaComponent, ThemeSwitchComponent, classNames, isSafeUrl, loadGoogleFont, loadGoogleFonts, provideStudioConfig, provideStudioIcons, sanitizeUrl, withConfigDefault };
|
|
1496
|
+
export type { BadgeDefaultsConfig, ButtonDefaultsConfig, ButtonGroupDefaultsConfig, ButtonToggleGroupDefaultsConfig, ButtonToggleGroupOption, ButtonToggleGroupValue, CheckboxColor, CheckboxDefaultsConfig, CheckboxRadius, CheckboxSize, CheckboxVariant, ColorConfig, ComponentsConfig, DrawerAnimationEasing, DrawerCloseButtonPosition, DrawerConfig, DrawerDefaultsConfig, DrawerPosition, DrawerRadius, DrawerRole, DrawerShadowSize, DrawerSize, InputDefaultsConfig, InputMode, InputType, MaskConfig, MaskPreset, MaskResult, MaskToken, SelectDefaultsConfig, SelectDisplayContext, SelectOption, SelectOptionGroup, SelectPosition, SelectSize, SelectVariant, StudioConfig, StudioThemeConfig, SwitchDefaultsConfig, TextareaColor, TextareaDefaultsConfig, TextareaRadius, TextareaSize, TextareaVariant, ThemeMode };
|