@sinequa/galactik 2.4.0 → 2.6.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/package.json
CHANGED
|
@@ -226,6 +226,23 @@ export declare class BellIcon {
|
|
|
226
226
|
*/
|
|
227
227
|
export declare const BellIconComponent: typeof BellIcon;
|
|
228
228
|
export type BellIconComponent = BellIcon;
|
|
229
|
+
export declare class BellSlashIcon {
|
|
230
|
+
class: import("@angular/core").InputSignal<string | undefined>;
|
|
231
|
+
classes: import("@angular/core").Signal<string>;
|
|
232
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BellSlashIcon, never>;
|
|
233
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BellSlashIcon, "bell-slash, bell-slash-icon, BellSlash, BellSlashIcon", never, {
|
|
234
|
+
"class": {
|
|
235
|
+
"alias": "class";
|
|
236
|
+
"required": false;
|
|
237
|
+
"isSignal": true;
|
|
238
|
+
};
|
|
239
|
+
}, {}, never, never, true, never>;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* @deprecated Use BellSlashIcon instead.
|
|
243
|
+
*/
|
|
244
|
+
export declare const BellSlashIconComponent: typeof BellSlashIcon;
|
|
245
|
+
export type BellSlashIconComponent = BellSlashIcon;
|
|
229
246
|
export declare class BookmarkIcon {
|
|
230
247
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
231
248
|
classes: import("@angular/core").Signal<string>;
|
|
@@ -1088,6 +1105,23 @@ export declare class GridIcon {
|
|
|
1088
1105
|
*/
|
|
1089
1106
|
export declare const GridIconComponent: typeof GridIcon;
|
|
1090
1107
|
export type GridIconComponent = GridIcon;
|
|
1108
|
+
export declare class GripVerticalIcon {
|
|
1109
|
+
class: import("@angular/core").InputSignal<string | undefined>;
|
|
1110
|
+
classes: import("@angular/core").Signal<string>;
|
|
1111
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GripVerticalIcon, never>;
|
|
1112
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GripVerticalIcon, "grip-vertical, grip-vertical-icon, GripVertical, GripVerticalIcon", never, {
|
|
1113
|
+
"class": {
|
|
1114
|
+
"alias": "class";
|
|
1115
|
+
"required": false;
|
|
1116
|
+
"isSignal": true;
|
|
1117
|
+
};
|
|
1118
|
+
}, {}, never, never, true, never>;
|
|
1119
|
+
}
|
|
1120
|
+
/**
|
|
1121
|
+
* @deprecated Use GripVerticalIcon instead.
|
|
1122
|
+
*/
|
|
1123
|
+
export declare const GripVerticalIconComponent: typeof GripVerticalIcon;
|
|
1124
|
+
export type GripVerticalIconComponent = GripVerticalIcon;
|
|
1091
1125
|
export declare class HighlighterIcon {
|
|
1092
1126
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
1093
1127
|
classes: import("@angular/core").Signal<string>;
|
|
@@ -2728,6 +2762,48 @@ export declare const tooltipVariants: (props?: ({
|
|
|
2728
2762
|
interactive?: boolean | null | undefined;
|
|
2729
2763
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
2730
2764
|
type TooltipVariants = VariantProps<typeof tooltipVariants>;
|
|
2765
|
+
/**
|
|
2766
|
+
* `[truncated]` — tells whether the text of an element is cut off (a one-line `truncate` or a multi-line
|
|
2767
|
+
* `line-clamp-*`), so that a tooltip is shown only when it adds something:
|
|
2768
|
+
* `[tooltipDisabled]="!cut.isTruncated()"`. A tooltip that repeats a text already fully visible is noise;
|
|
2769
|
+
* one that is missing on a cut-off text hides information.
|
|
2770
|
+
*
|
|
2771
|
+
* The state is measured when the element is rendered, then again whenever its size changes.
|
|
2772
|
+
*
|
|
2773
|
+
* The element that is actually cut is the host by default. When the cut element is inside the host (a
|
|
2774
|
+
* component whose host is never clamped itself, like the label of a `<ListItemText>`), give its CSS selector
|
|
2775
|
+
* as the value: `truncated=".list-item-text"`.
|
|
2776
|
+
*
|
|
2777
|
+
* A tooltip is a pointer help: a host that cannot take the keyboard focus never opens it from the keyboard.
|
|
2778
|
+
* Give a keyboard user the full text another way — for instance by lifting the clamp while an ancestor has
|
|
2779
|
+
* `:focus-visible` (`in-focus-visible:line-clamp-none`).
|
|
2780
|
+
*
|
|
2781
|
+
* @example
|
|
2782
|
+
* ```html
|
|
2783
|
+
* <span class="truncate" truncated #cut="truncated" [tooltip]="label" [tooltipDisabled]="!cut.isTruncated()">{{ label }}</span>
|
|
2784
|
+
*
|
|
2785
|
+
* <ListItemText truncated=".list-item-text" #cut="truncated" [tooltip]="label" [tooltipDisabled]="!cut.isTruncated()">
|
|
2786
|
+
* {{ label }}
|
|
2787
|
+
* </ListItemText>
|
|
2788
|
+
* ```
|
|
2789
|
+
*/
|
|
2790
|
+
export declare class TruncatedDirective {
|
|
2791
|
+
/** CSS selector, relative to the host, of the element that is cut. Empty: the host itself. */
|
|
2792
|
+
readonly truncated: import("@angular/core").InputSignal<string>;
|
|
2793
|
+
private readonly host;
|
|
2794
|
+
private readonly cut;
|
|
2795
|
+
/** Whether the text is currently cut off. */
|
|
2796
|
+
readonly isTruncated: import("@angular/core").Signal<boolean>;
|
|
2797
|
+
constructor();
|
|
2798
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TruncatedDirective, never>;
|
|
2799
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TruncatedDirective, "[truncated]", ["truncated"], {
|
|
2800
|
+
"truncated": {
|
|
2801
|
+
"alias": "truncated";
|
|
2802
|
+
"required": false;
|
|
2803
|
+
"isSignal": true;
|
|
2804
|
+
};
|
|
2805
|
+
}, {}, never, never, true, never>;
|
|
2806
|
+
}
|
|
2731
2807
|
export declare class MenuComponent {
|
|
2732
2808
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
2733
2809
|
classes: import("@angular/core").Signal<string>;
|
|
@@ -3506,7 +3582,7 @@ export declare class AutocompleteComponent<TOption, TSelected = TOption> {
|
|
|
3506
3582
|
* grows with them, and Backspace in an empty field removes the last one. `below`: the row under the field. `none`: not
|
|
3507
3583
|
* shown — the host draws them.
|
|
3508
3584
|
*/
|
|
3509
|
-
readonly chips: import("@angular/core").InputSignal<"
|
|
3585
|
+
readonly chips: import("@angular/core").InputSignal<"inline" | "below" | "none">;
|
|
3510
3586
|
/**
|
|
3511
3587
|
* Where the popup lives. `top-layer` (default): a manual popover, above everything — a dialog's edges cannot clip it.
|
|
3512
3588
|
* `inline`: a `position: fixed` panel in the flow of the page, for a field that is never inside a clipping container.
|
|
@@ -3515,8 +3591,9 @@ export declare class AutocompleteComponent<TOption, TSelected = TOption> {
|
|
|
3515
3591
|
/** Shows the chevron. The spinner still shows while a search runs. */
|
|
3516
3592
|
readonly indicator: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3517
3593
|
/**
|
|
3518
|
-
* Picking closes the list and clears the typed text — the chat mention box. By default
|
|
3519
|
-
*
|
|
3594
|
+
* Picking closes the list and clears the typed text — the chat mention box. By default picking also clears the typed
|
|
3595
|
+
* text, but the list stays open and shows everything the `loader` returns for an empty query (minus what is already
|
|
3596
|
+
* applied), to pick several in a row. A loader must therefore accept `""` as "no filter".
|
|
3520
3597
|
*/
|
|
3521
3598
|
readonly closeOnPick: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3522
3599
|
/** Emitted once per suggestion picked, or once for a free-text creation. The host persists it. */
|
|
@@ -3569,6 +3646,11 @@ export declare class AutocompleteComponent<TOption, TSelected = TOption> {
|
|
|
3569
3646
|
* opened nothing.
|
|
3570
3647
|
*/
|
|
3571
3648
|
private readonly settledQuery;
|
|
3649
|
+
/**
|
|
3650
|
+
* Set by a pick: the field was just emptied and the list keeps showing everything the loader returns for an empty
|
|
3651
|
+
* query ("all"), so the next value can be picked at once. Typing, or emptying the field by hand, ends it.
|
|
3652
|
+
*/
|
|
3653
|
+
private readonly browseAll;
|
|
3572
3654
|
private readonly search;
|
|
3573
3655
|
protected readonly loading: import("@angular/core").Signal<boolean>;
|
|
3574
3656
|
protected readonly failed: import("@angular/core").Signal<boolean>;
|
|
@@ -3779,7 +3861,7 @@ export declare class ButtonComponent {
|
|
|
3779
3861
|
variant: import("@angular/core").InputSignal<"primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined>;
|
|
3780
3862
|
scheme: import("@angular/core").InputSignal<"default" | "neutral" | null | undefined>;
|
|
3781
3863
|
iconOnly: import("@angular/core").InputSignal<boolean | null | undefined>;
|
|
3782
|
-
size: import("@angular/core").InputSignal<"
|
|
3864
|
+
size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | "xsmall" | "small" | "medium" | "lg" | "large" | null | undefined>;
|
|
3783
3865
|
variants: import("@angular/core").Signal<string | undefined>;
|
|
3784
3866
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
3785
3867
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ButtonComponent, "button", never, {
|
|
@@ -3823,7 +3905,7 @@ declare const BUTTON_ICON_SOLO_CLASS = "btn-icon-solo";
|
|
|
3823
3905
|
declare const buttonVariants: (props?: ({
|
|
3824
3906
|
variant?: "primary" | "secondary" | "none" | "light-accent" | "accent" | "tertiary" | null | undefined;
|
|
3825
3907
|
scheme?: "default" | "neutral" | null | undefined;
|
|
3826
|
-
size?: "
|
|
3908
|
+
size?: "xs" | "sm" | "md" | "xsmall" | "small" | "medium" | "lg" | "large" | null | undefined;
|
|
3827
3909
|
iconOnly?: boolean | null | undefined;
|
|
3828
3910
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
3829
3911
|
type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
@@ -3847,7 +3929,7 @@ export declare class ToggleComponent {
|
|
|
3847
3929
|
/** Palette : `unique` (primaire) ou `multi` (secondaire). */
|
|
3848
3930
|
readonly variant: import("@angular/core").InputSignal<"multi" | "unique" | null | undefined>;
|
|
3849
3931
|
/** Taille (`sm`/`md`, alias `small`/`medium`). */
|
|
3850
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
3932
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "small" | "medium" | null | undefined>;
|
|
3851
3933
|
/** Pilule carrée (icône seule). */
|
|
3852
3934
|
readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3853
3935
|
/** Discriminant de rendu d'icône (piloté par le consommateur). */
|
|
@@ -3920,7 +4002,7 @@ export declare class ToggleItemComponent {
|
|
|
3920
4002
|
/** Palette explicite ; à défaut, héritée du `<ToggleGroup>` parent, sinon `unique`. */
|
|
3921
4003
|
readonly variant: import("@angular/core").InputSignal<"multi" | "unique" | null | undefined>;
|
|
3922
4004
|
/** Taille (`sm`/`md`, alias `small`/`medium`). */
|
|
3923
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
4005
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "small" | "medium" | null | undefined>;
|
|
3924
4006
|
/** Pilule carrée (icône seule). */
|
|
3925
4007
|
readonly iconOnly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
3926
4008
|
/** Discriminant de rendu d'icône (piloté par le consommateur). */
|
|
@@ -4057,7 +4139,7 @@ export declare const TOGGLE_ICON_CLASS = "toggle-icon";
|
|
|
4057
4139
|
export declare const TOGGLE_LABEL_CLASS = "toggle-label";
|
|
4058
4140
|
export declare const toggleVariants: (props?: ({
|
|
4059
4141
|
variant?: "multi" | "unique" | null | undefined;
|
|
4060
|
-
size?: "
|
|
4142
|
+
size?: "sm" | "md" | "small" | "medium" | null | undefined;
|
|
4061
4143
|
iconOnly?: boolean | null | undefined;
|
|
4062
4144
|
showIcon?: boolean | null | undefined;
|
|
4063
4145
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -4340,8 +4422,8 @@ export declare class ListItemAvatarDirective {
|
|
|
4340
4422
|
*/
|
|
4341
4423
|
export declare class ListItemActionComponent {
|
|
4342
4424
|
/**
|
|
4343
|
-
* Libellé de l'action
|
|
4344
|
-
* est
|
|
4425
|
+
* Libellé de l'action, rendu dans l'infobulle des voyants (directive `tooltip`) et non en `aria-label` :
|
|
4426
|
+
* l'icône est masquée aux technologies d'assistance, qui atteignent l'action par le raccourci `Suppr`
|
|
4345
4427
|
* porté par `<ListItem>`. Le nom de l'entrée est conservé pour ne pas casser les appelants.
|
|
4346
4428
|
*/
|
|
4347
4429
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -4808,7 +4890,7 @@ export declare class RowFeedComponent<T> extends RowListBase<T> {
|
|
|
4808
4890
|
export declare class SwitchComponent {
|
|
4809
4891
|
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
4810
4892
|
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
4811
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
4893
|
+
readonly size: import("@angular/core").InputSignal<"xs" | "xsmall" | "small" | null | undefined>;
|
|
4812
4894
|
readonly class: import("@angular/core").InputSignal<string | undefined>;
|
|
4813
4895
|
/**
|
|
4814
4896
|
* Accessible name of the inner `<input>`, for a switch whose label is not projected.
|
|
@@ -4914,7 +4996,7 @@ declare const SWITCH_THUMB_ICON_CLASS = "switch-thumb-icon";
|
|
|
4914
4996
|
declare const SWITCH_THUMB_ICON_OFF_CLASS = "switch-thumb-icon-off";
|
|
4915
4997
|
declare const SWITCH_THUMB_ICON_ON_CLASS = "switch-thumb-icon-on";
|
|
4916
4998
|
declare const switchRootVariants: (props?: ({
|
|
4917
|
-
size?: "
|
|
4999
|
+
size?: "xs" | "xsmall" | "small" | null | undefined;
|
|
4918
5000
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
4919
5001
|
declare const switchTrackVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
4920
5002
|
declare const switchThumbVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
@@ -5037,8 +5119,8 @@ type RadioRootVariants = VariantProps<typeof radioRootVariants>;
|
|
|
5037
5119
|
export declare class TagComponent {
|
|
5038
5120
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5039
5121
|
variant: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
|
|
5040
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5041
|
-
size: import("@angular/core").InputSignal<"
|
|
5122
|
+
scheme: import("@angular/core").InputSignal<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>;
|
|
5123
|
+
size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | "xsmall" | "small" | "medium" | null | undefined>;
|
|
5042
5124
|
variants: import("@angular/core").Signal<string>;
|
|
5043
5125
|
static ɵfac: i0.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
5044
5126
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TagComponent, "tag, Tag", never, {
|
|
@@ -5069,8 +5151,8 @@ declare const TAG_ICON_CLASS = "tag-icon";
|
|
|
5069
5151
|
declare const TAG_FLAG_CLASS = "tag-flag";
|
|
5070
5152
|
declare const tagVariants: (props?: ({
|
|
5071
5153
|
variant?: "primary" | "secondary" | null | undefined;
|
|
5072
|
-
scheme?: "
|
|
5073
|
-
size?: "
|
|
5154
|
+
scheme?: "sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined;
|
|
5155
|
+
size?: "xs" | "sm" | "md" | "xsmall" | "small" | "medium" | null | undefined;
|
|
5074
5156
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5075
5157
|
type TagVariants = VariantProps<typeof tagVariants>;
|
|
5076
5158
|
/**
|
|
@@ -5167,7 +5249,7 @@ export declare class TagInputComponent implements FormValueControl<string[]> {
|
|
|
5167
5249
|
/** Adds what is typed when the field loses focus. Turn it off for a field that must only take explicit additions. */
|
|
5168
5250
|
readonly addOnBlur: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5169
5251
|
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
5170
|
-
readonly scheme: import("@angular/core").InputSignal<"
|
|
5252
|
+
readonly scheme: import("@angular/core").InputSignal<"success" | "error" | "default" | null | undefined>;
|
|
5171
5253
|
readonly class: import("@angular/core").InputSignal<string | undefined>;
|
|
5172
5254
|
/** Accessible name of the whole group (what the tags are: "Tags"). Aliased on the attribute, as `SearchInput` does. */
|
|
5173
5255
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5280,7 +5362,7 @@ export declare class BadgeComponent {
|
|
|
5280
5362
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5281
5363
|
variant: import("@angular/core").InputSignal<"number" | "icon" | null | undefined>;
|
|
5282
5364
|
fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
|
|
5283
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5365
|
+
scheme: import("@angular/core").InputSignal<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>;
|
|
5284
5366
|
size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | null | undefined>;
|
|
5285
5367
|
ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
5286
5368
|
variants: import("@angular/core").Signal<string>;
|
|
@@ -5324,7 +5406,7 @@ declare const BADGE_NUMBER_CLASS = "badge-number";
|
|
|
5324
5406
|
declare const badgeVariants: (props?: ({
|
|
5325
5407
|
variant?: "number" | "icon" | null | undefined;
|
|
5326
5408
|
style?: "primary" | "secondary" | null | undefined;
|
|
5327
|
-
scheme?: "
|
|
5409
|
+
scheme?: "sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined;
|
|
5328
5410
|
size?: "xs" | "sm" | "md" | null | undefined;
|
|
5329
5411
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5330
5412
|
type BadgeVariants = VariantProps<typeof badgeVariants>;
|
|
@@ -5345,7 +5427,7 @@ type BadgeVariants = VariantProps<typeof badgeVariants>;
|
|
|
5345
5427
|
*/
|
|
5346
5428
|
export declare class BulletComponent {
|
|
5347
5429
|
readonly class: import("@angular/core").InputSignal<string | undefined>;
|
|
5348
|
-
readonly scheme: import("@angular/core").InputSignal<"
|
|
5430
|
+
readonly scheme: import("@angular/core").InputSignal<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>;
|
|
5349
5431
|
readonly fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
|
|
5350
5432
|
readonly size: import("@angular/core").InputSignal<"xs" | "sm" | "md" | null | undefined>;
|
|
5351
5433
|
/**
|
|
@@ -5390,7 +5472,7 @@ export declare class BulletComponent {
|
|
|
5390
5472
|
}, {}, never, never, true, never>;
|
|
5391
5473
|
}
|
|
5392
5474
|
declare const bulletVariants: (props?: ({
|
|
5393
|
-
scheme?: "
|
|
5475
|
+
scheme?: "sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined;
|
|
5394
5476
|
fill?: "primary" | "secondary" | null | undefined;
|
|
5395
5477
|
size?: "xs" | "sm" | "md" | null | undefined;
|
|
5396
5478
|
pulse?: boolean | null | undefined;
|
|
@@ -5474,16 +5556,16 @@ export declare class AvatarFallbackComponent {
|
|
|
5474
5556
|
canrender: import("@angular/core").WritableSignal<boolean>;
|
|
5475
5557
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5476
5558
|
/** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"large"` (aligné sur le cva). */
|
|
5477
|
-
size: import("@angular/core").InputSignal<"
|
|
5559
|
+
size: import("@angular/core").InputSignal<"xsmall" | "small" | "medium" | "large" | null | undefined>;
|
|
5478
5560
|
/** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"primary"`. */
|
|
5479
5561
|
fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
|
|
5480
5562
|
/** Explicite ; à défaut, hérité de l'`<avatar>` parent, sinon `"sage"`. */
|
|
5481
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5563
|
+
scheme: import("@angular/core").InputSignal<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>;
|
|
5482
5564
|
/** Conteneur parent, pour hériter size/fill/scheme par défaut. */
|
|
5483
5565
|
private readonly avatar;
|
|
5484
|
-
protected readonly resolvedSize: import("@angular/core").Signal<NonNullable<"
|
|
5566
|
+
protected readonly resolvedSize: import("@angular/core").Signal<NonNullable<"xsmall" | "small" | "medium" | "large" | null | undefined>>;
|
|
5485
5567
|
protected readonly resolvedFill: import("@angular/core").Signal<NonNullable<"primary" | "secondary" | null | undefined>>;
|
|
5486
|
-
protected readonly resolvedScheme: import("@angular/core").Signal<NonNullable<"
|
|
5568
|
+
protected readonly resolvedScheme: import("@angular/core").Signal<NonNullable<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>>;
|
|
5487
5569
|
variants: import("@angular/core").Signal<string>;
|
|
5488
5570
|
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarFallbackComponent, never>;
|
|
5489
5571
|
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarFallbackComponent, "avatar-fallback, avatarfallback, AvatarFallback", never, {
|
|
@@ -5563,9 +5645,9 @@ export declare class AvatarComponent {
|
|
|
5563
5645
|
avatarImage: import("@angular/core").Signal<AvatarImageComponent | undefined>;
|
|
5564
5646
|
avatarFallback: import("@angular/core").Signal<AvatarFallbackComponent | undefined>;
|
|
5565
5647
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5566
|
-
size: import("@angular/core").InputSignal<"
|
|
5648
|
+
size: import("@angular/core").InputSignal<"xsmall" | "small" | "medium" | "large" | null | undefined>;
|
|
5567
5649
|
fill: import("@angular/core").InputSignal<"primary" | "secondary" | null | undefined>;
|
|
5568
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5650
|
+
scheme: import("@angular/core").InputSignal<"sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined>;
|
|
5569
5651
|
variants: import("@angular/core").Signal<string>;
|
|
5570
5652
|
constructor();
|
|
5571
5653
|
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
@@ -5623,8 +5705,8 @@ declare const AVATAR_ICON_SIZE: {
|
|
|
5623
5705
|
declare const avatarVariants: (props?: ({
|
|
5624
5706
|
content?: "picture" | "initials" | null | undefined;
|
|
5625
5707
|
style?: "primary" | "secondary" | null | undefined;
|
|
5626
|
-
scheme?: "
|
|
5627
|
-
size?: "
|
|
5708
|
+
scheme?: "sage" | "almond" | "pink" | "grey" | "yellow" | "cherry" | "indigo" | "cyan" | "success" | "warning" | "info" | "error" | null | undefined;
|
|
5709
|
+
size?: "xsmall" | "small" | "medium" | "large" | null | undefined;
|
|
5628
5710
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5629
5711
|
type AvatarVariants = VariantProps<typeof avatarVariants>;
|
|
5630
5712
|
/** Left icon slot — tags its host with the `link-icon-left` class and pins it to the start. */
|
|
@@ -5682,7 +5764,7 @@ export declare class LinkIconRightDirective {
|
|
|
5682
5764
|
*/
|
|
5683
5765
|
export declare class LinkComponent {
|
|
5684
5766
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5685
|
-
size: import("@angular/core").InputSignal<"
|
|
5767
|
+
size: import("@angular/core").InputSignal<"sm" | "md" | "small" | "medium" | null | undefined>;
|
|
5686
5768
|
visited: import("@angular/core").InputSignal<boolean | null | undefined>;
|
|
5687
5769
|
icon: import("@angular/core").InputSignal<boolean | null | undefined>;
|
|
5688
5770
|
openWindow: import("@angular/core").InputSignal<boolean | null | undefined>;
|
|
@@ -5741,13 +5823,13 @@ export declare class LinkComponent {
|
|
|
5741
5823
|
}
|
|
5742
5824
|
export declare const LINK_LABEL_CLASS = "link-label";
|
|
5743
5825
|
declare const linkVariants: (props?: ({
|
|
5744
|
-
size?: "
|
|
5826
|
+
size?: "sm" | "md" | "small" | "medium" | null | undefined;
|
|
5745
5827
|
visited?: boolean | null | undefined;
|
|
5746
5828
|
icon?: boolean | null | undefined;
|
|
5747
5829
|
openWindow?: boolean | null | undefined;
|
|
5748
5830
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5749
5831
|
export declare const linkIconVariants: (props?: ({
|
|
5750
|
-
size?: "
|
|
5832
|
+
size?: "sm" | "md" | "small" | "medium" | null | undefined;
|
|
5751
5833
|
position?: "right" | "left" | null | undefined;
|
|
5752
5834
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5753
5835
|
type LinkVariants = VariantProps<typeof linkVariants>;
|
|
@@ -5769,13 +5851,13 @@ type LinkIconVariants = VariantProps<typeof linkIconVariants>;
|
|
|
5769
5851
|
export declare class InputComponent {
|
|
5770
5852
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5771
5853
|
size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
5772
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5854
|
+
scheme: import("@angular/core").InputSignal<"success" | "error" | "default" | null | undefined>;
|
|
5773
5855
|
filled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5774
5856
|
numbers: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5775
5857
|
/** The group grows with its content (wrapping chips, several lines) instead of keeping a fixed height; the size's height is its minimum. */
|
|
5776
5858
|
autoHeight: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5777
5859
|
/** Text size, independent of `size` (e.g. `md` height with `sm` text). Follows `size` when not set. */
|
|
5778
|
-
textSize: import("@angular/core").InputSignal<"
|
|
5860
|
+
textSize: import("@angular/core").InputSignal<"sm" | "base" | null | undefined>;
|
|
5779
5861
|
variants: import("@angular/core").Signal<string>;
|
|
5780
5862
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
|
|
5781
5863
|
static ɵdir: i0.ɵɵDirectiveDeclaration<InputComponent, "input-group, inputgroup, InputGroup", never, {
|
|
@@ -5867,7 +5949,7 @@ export declare class InputIconRightDirective {
|
|
|
5867
5949
|
export declare class InputCounterComponent {
|
|
5868
5950
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5869
5951
|
size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
5870
|
-
scheme: import("@angular/core").InputSignal<"
|
|
5952
|
+
scheme: import("@angular/core").InputSignal<"success" | "error" | "default" | null | undefined>;
|
|
5871
5953
|
variants: import("@angular/core").Signal<string>;
|
|
5872
5954
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputCounterComponent, never>;
|
|
5873
5955
|
static ɵdir: i0.ɵɵDirectiveDeclaration<InputCounterComponent, "input-counter, inputcounter, InputCounter", never, {
|
|
@@ -5895,14 +5977,14 @@ declare const INPUT_COUNTER_CLASS = "input-counter";
|
|
|
5895
5977
|
declare const INPUT_SEARCH_NATIVE_RESET: string;
|
|
5896
5978
|
declare const inputWrapVariants: (props?: ({
|
|
5897
5979
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
5898
|
-
scheme?: "
|
|
5980
|
+
scheme?: "success" | "error" | "default" | null | undefined;
|
|
5899
5981
|
filled?: boolean | null | undefined;
|
|
5900
5982
|
numbers?: boolean | null | undefined;
|
|
5901
5983
|
autoHeight?: boolean | null | undefined;
|
|
5902
|
-
textSize?: "
|
|
5984
|
+
textSize?: "sm" | "base" | null | undefined;
|
|
5903
5985
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5904
5986
|
declare const inputCounterVariants: (props?: ({
|
|
5905
|
-
scheme?: "
|
|
5987
|
+
scheme?: "success" | "error" | "default" | null | undefined;
|
|
5906
5988
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
5907
5989
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5908
5990
|
type InputWrapVariants = VariantProps<typeof inputWrapVariants>;
|
|
@@ -5923,9 +6005,9 @@ type InputCounterVariants = VariantProps<typeof inputCounterVariants>;
|
|
|
5923
6005
|
export declare class TextareaComponent {
|
|
5924
6006
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
5925
6007
|
size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
5926
|
-
scheme: import("@angular/core").InputSignal<"
|
|
6008
|
+
scheme: import("@angular/core").InputSignal<"success" | "error" | "default" | null | undefined>;
|
|
5927
6009
|
/** How the box gets its height: native handle, locked, or content-driven. */
|
|
5928
|
-
resize: import("@angular/core").InputSignal<"
|
|
6010
|
+
resize: import("@angular/core").InputSignal<"none" | "vertical" | "auto" | null | undefined>;
|
|
5929
6011
|
filled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
5930
6012
|
/**
|
|
5931
6013
|
* Height floor and ceiling, in lines of text.
|
|
@@ -6008,7 +6090,7 @@ export declare class TextareaControlDirective {
|
|
|
6008
6090
|
export declare class TextareaCounterComponent {
|
|
6009
6091
|
class: import("@angular/core").InputSignal<string | undefined>;
|
|
6010
6092
|
size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | null | undefined>;
|
|
6011
|
-
scheme: import("@angular/core").InputSignal<"
|
|
6093
|
+
scheme: import("@angular/core").InputSignal<"success" | "error" | "default" | null | undefined>;
|
|
6012
6094
|
variants: import("@angular/core").Signal<string>;
|
|
6013
6095
|
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaCounterComponent, never>;
|
|
6014
6096
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TextareaCounterComponent, "textarea-counter, textareacounter, TextareaCounter", never, {
|
|
@@ -6039,8 +6121,8 @@ export declare const TEXTAREA_COUNTER_CLASS = "textarea-counter";
|
|
|
6039
6121
|
export declare const TEXTAREA_LINE_HEIGHT = 1.4;
|
|
6040
6122
|
export declare const textareaWrapVariants: (props?: ({
|
|
6041
6123
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6042
|
-
scheme?: "
|
|
6043
|
-
resize?: "
|
|
6124
|
+
scheme?: "success" | "error" | "default" | null | undefined;
|
|
6125
|
+
resize?: "none" | "vertical" | "auto" | null | undefined;
|
|
6044
6126
|
filled?: boolean | null | undefined;
|
|
6045
6127
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6046
6128
|
type TextareaWrapVariants = VariantProps<typeof textareaWrapVariants>;
|
|
@@ -6091,7 +6173,7 @@ declare abstract class SearchInputBase implements FormValueControl<string> {
|
|
|
6091
6173
|
* Text size, independent of `size` (e.g. `md` height with `sm` text). Follows `size` when not set.
|
|
6092
6174
|
* The magnifier and the clear cross follow the text size.
|
|
6093
6175
|
*/
|
|
6094
|
-
textSize: import("@angular/core").InputSignal<"
|
|
6176
|
+
textSize: import("@angular/core").InputSignal<"sm" | "base" | null | undefined>;
|
|
6095
6177
|
/** The text size actually rendered: `textSize`, else the one `size` carries. */
|
|
6096
6178
|
private readonly smallText;
|
|
6097
6179
|
/**
|
|
@@ -8002,6 +8084,147 @@ export declare const resizableHandleVariants: (props?: ({
|
|
|
8002
8084
|
withHandle?: boolean | null | undefined;
|
|
8003
8085
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8004
8086
|
type ResizableHandleVariants = VariantProps<typeof resizableHandleVariants>;
|
|
8087
|
+
/**
|
|
8088
|
+
* `[sortable]` — makes the items of a list reorderable by drag and drop, with the browser's own drag and drop
|
|
8089
|
+
* (no dependency), and from the keyboard with <kbd>Alt</kbd> + <kbd>↑</kbd> / <kbd>↓</kbd>.
|
|
8090
|
+
*
|
|
8091
|
+
* The directive owns the gesture, not the data. It is given the items in their current order and reports the new
|
|
8092
|
+
* order through `(reorder)`; saving it, and updating the list it was given, is up to the consumer. While an item is
|
|
8093
|
+
* dragged the others slide out of the way and a slightly tilted copy of the dragged item follows the pointer, leaning
|
|
8094
|
+
* the other way when it goes up; dropped, it settles in its slot. A drag that is abandoned (dropped outside the list,
|
|
8095
|
+
* <kbd>Esc</kbd>) leaves the order as it was and nothing is emitted.
|
|
8096
|
+
*
|
|
8097
|
+
* Render the list from `items()` — the order **shown**, which is the given order, or the order the drop would give
|
|
8098
|
+
* while an item is being dragged — and mark each element with `[sortableItem]`, giving the item. Track the `@for` by
|
|
8099
|
+
* the item itself: the elements are moved, not recreated, which is what lets them slide and keep the focus.
|
|
8100
|
+
*
|
|
8101
|
+
* The dragged item's element carries `data-dragging` (a placeholder to style: `data-dragging:bg-…`). The copy that follows
|
|
8102
|
+
* the pointer is built from the dragged element, so it looks like it, and is placed in the top layer, above a popover
|
|
8103
|
+
* that may host the list.
|
|
8104
|
+
*
|
|
8105
|
+
* A touch screen that does not start a native drag has no way to reorder: the keyboard shortcut is the only
|
|
8106
|
+
* alternative, and it is not available there either.
|
|
8107
|
+
*
|
|
8108
|
+
* @example
|
|
8109
|
+
* ```html
|
|
8110
|
+
* <ul [sortable]="tags()" #sortable="sortable" (reorder)="tags.set($event)" [sortableAnnounce]="moved">
|
|
8111
|
+
* @for (tag of sortable.items(); track tag) {
|
|
8112
|
+
* <li [sortableItem]="tag" class="data-dragging:opacity-40">{{ tag }}</li>
|
|
8113
|
+
* }
|
|
8114
|
+
* </ul>
|
|
8115
|
+
* ```
|
|
8116
|
+
*/
|
|
8117
|
+
export declare class SortableDirective<T = unknown> {
|
|
8118
|
+
/** The items, in their current order. */
|
|
8119
|
+
readonly sortable: import("@angular/core").InputSignal<readonly T[]>;
|
|
8120
|
+
/** Turns the reordering off: nothing is draggable, the keyboard shortcut does nothing. */
|
|
8121
|
+
readonly sortableDisabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
8122
|
+
/**
|
|
8123
|
+
* Text announced to screen readers after a keyboard move: « "Annual report" moved to position 2 of 3 ». The
|
|
8124
|
+
* library translates nothing, so without it a move is silent.
|
|
8125
|
+
*/
|
|
8126
|
+
readonly sortableAnnounce: import("@angular/core").InputSignal<((item: T, position: number, total: number) => string) | undefined>;
|
|
8127
|
+
/** The new order, when an item is dropped in a new place or moved from the keyboard. */
|
|
8128
|
+
readonly reorder: import("@angular/core").OutputEmitterRef<T[]>;
|
|
8129
|
+
private readonly document;
|
|
8130
|
+
private readonly injector;
|
|
8131
|
+
private readonly entries;
|
|
8132
|
+
/** The order the list would take if the dragged item were dropped now. */
|
|
8133
|
+
private readonly preview;
|
|
8134
|
+
private readonly draggedItem;
|
|
8135
|
+
/** The item being dragged, if any. */
|
|
8136
|
+
readonly dragged: import("@angular/core").Signal<T | undefined>;
|
|
8137
|
+
/** The order to render: the one given, or the preview of the drop while an item is being dragged. */
|
|
8138
|
+
readonly items: import("@angular/core").Signal<readonly T[]>;
|
|
8139
|
+
private ghost;
|
|
8140
|
+
private stopGhost;
|
|
8141
|
+
/** True from the drop (or the end of an abandoned drag) until the copy has settled in its slot. */
|
|
8142
|
+
private landing;
|
|
8143
|
+
private liveRegion;
|
|
8144
|
+
constructor();
|
|
8145
|
+
/** @internal */
|
|
8146
|
+
startDrag(event: DragEvent, item: T, row: HTMLElement): void;
|
|
8147
|
+
/** @internal Over an item: the dragged item takes the place of that item's half under the pointer, and the others shift. */
|
|
8148
|
+
dragOver(event: DragEvent, item: T, row: HTMLElement): void;
|
|
8149
|
+
/** Anywhere in the list — between two items, in its margin — a drop is accepted: it lands where the preview is. */
|
|
8150
|
+
protected onContainerDragOver(event: DragEvent): void;
|
|
8151
|
+
protected onDrop(event: DragEvent): void;
|
|
8152
|
+
/** @internal The end of every drag, dropped or not: `drop` has already started the landing, which is then left alone. */
|
|
8153
|
+
endDrag(): void;
|
|
8154
|
+
/**
|
|
8155
|
+
* What follows the pointer: a copy of the item, tilted and lifted by a shadow, drawn here rather than handed to
|
|
8156
|
+
* `setDragImage` — a browser may flatten or ignore the transform of a drag image, and a drag image cannot move
|
|
8157
|
+
* with the page. The native image is made invisible. The copy is a `popover` so that it sits in the top layer.
|
|
8158
|
+
*/
|
|
8159
|
+
private startGhost;
|
|
8160
|
+
/**
|
|
8161
|
+
* Ends the drag smoothly: the copy glides to the slot it was dropped in (or, for an abandoned drag, back to where
|
|
8162
|
+
* the item came from), straightens, and its shadow fades — then it gives way to the real item.
|
|
8163
|
+
*/
|
|
8164
|
+
private land;
|
|
8165
|
+
/** Runs `change`, which reorders the items, and slides each item from where it was to where it now is. */
|
|
8166
|
+
private slide;
|
|
8167
|
+
/** @internal Alt + ↑ / ↓: moves `item` one place. The focus follows it, and the move is announced. */
|
|
8168
|
+
moveBy(item: T, delta: -1 | 1): void;
|
|
8169
|
+
/** A visually hidden live region, created on the first announcement and shared by the whole list. */
|
|
8170
|
+
private announce;
|
|
8171
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SortableDirective<any>, never>;
|
|
8172
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SortableDirective<any>, "[sortable]", ["sortable"], {
|
|
8173
|
+
"sortable": {
|
|
8174
|
+
"alias": "sortable";
|
|
8175
|
+
"required": true;
|
|
8176
|
+
"isSignal": true;
|
|
8177
|
+
};
|
|
8178
|
+
"sortableDisabled": {
|
|
8179
|
+
"alias": "sortableDisabled";
|
|
8180
|
+
"required": false;
|
|
8181
|
+
"isSignal": true;
|
|
8182
|
+
};
|
|
8183
|
+
"sortableAnnounce": {
|
|
8184
|
+
"alias": "sortableAnnounce";
|
|
8185
|
+
"required": false;
|
|
8186
|
+
"isSignal": true;
|
|
8187
|
+
};
|
|
8188
|
+
}, {
|
|
8189
|
+
"reorder": "reorder";
|
|
8190
|
+
}, ["entries"], never, true, never>;
|
|
8191
|
+
}
|
|
8192
|
+
/**
|
|
8193
|
+
* `[sortableItem]` — one reorderable element of a `[sortable]` list; the value is the item it stands for. The
|
|
8194
|
+
* element becomes draggable, carries `data-dragging` while it is the one being dragged, and answers to
|
|
8195
|
+
* <kbd>Alt</kbd> + <kbd>↑</kbd> / <kbd>↓</kbd> while it has the focus.
|
|
8196
|
+
*
|
|
8197
|
+
* `[sortableItemDisabled]` keeps one item from being moved — by the pointer or by the keyboard — while the others
|
|
8198
|
+
* stay free to move, and may be dropped before or after it: it is not moved by the user, but its position still
|
|
8199
|
+
* shifts to make room. A disabled item carries `data-disabled`.
|
|
8200
|
+
*/
|
|
8201
|
+
export declare class SortableItemDirective<T = unknown> {
|
|
8202
|
+
/** The item this element stands for — the same value as in the list given to `[sortable]`. */
|
|
8203
|
+
readonly sortableItem: import("@angular/core").InputSignal<T>;
|
|
8204
|
+
protected readonly list: SortableDirective<T>;
|
|
8205
|
+
readonly element: HTMLElement;
|
|
8206
|
+
/** Keeps this item from being moved, by the pointer or by the keyboard. The others stay free to move around it. */
|
|
8207
|
+
readonly sortableItemDisabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
8208
|
+
/** Not movable: this item is disabled, or the whole list is. */
|
|
8209
|
+
protected readonly locked: import("@angular/core").Signal<boolean>;
|
|
8210
|
+
protected readonly dragging: import("@angular/core").Signal<boolean>;
|
|
8211
|
+
protected onDragStart(event: DragEvent): void;
|
|
8212
|
+
/** Only when the element itself has the focus (Alt + arrows inside a field or a button of the item are theirs), and it is not disabled. */
|
|
8213
|
+
protected onMoveKey(event: Event, delta: -1 | 1): void;
|
|
8214
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SortableItemDirective<any>, never>;
|
|
8215
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SortableItemDirective<any>, "[sortableItem]", never, {
|
|
8216
|
+
"sortableItem": {
|
|
8217
|
+
"alias": "sortableItem";
|
|
8218
|
+
"required": true;
|
|
8219
|
+
"isSignal": true;
|
|
8220
|
+
};
|
|
8221
|
+
"sortableItemDisabled": {
|
|
8222
|
+
"alias": "sortableItemDisabled";
|
|
8223
|
+
"required": false;
|
|
8224
|
+
"isSignal": true;
|
|
8225
|
+
};
|
|
8226
|
+
}, {}, never, never, true, never>;
|
|
8227
|
+
}
|
|
8005
8228
|
/**
|
|
8006
8229
|
* Observes viewport breakpoints.
|
|
8007
8230
|
*
|