forty-cdk 0.0.2 → 0.0.3
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/forty-cdk.mjs +5845 -1552
- package/fesm2022/forty-cdk.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forty-cdk.d.ts +2666 -506
package/types/forty-cdk.d.ts
CHANGED
|
@@ -277,7 +277,7 @@ declare class ForAccordion implements ForAccordionContext {
|
|
|
277
277
|
* ArrowUp/Down to prev/next; `'horizontal'` maps ArrowLeft/Right (with RTL
|
|
278
278
|
* swap when `dir='rtl'`).
|
|
279
279
|
*/
|
|
280
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
280
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
281
281
|
/**
|
|
282
282
|
* Writing direction. Only relevant when `orientation='horizontal'`. When
|
|
283
283
|
* unset (default `null`), the inherited ambient direction is resolved from
|
|
@@ -1477,7 +1477,7 @@ declare class ForRadioGroup extends FormUiControlBase implements FormValueContro
|
|
|
1477
1477
|
/** Two-way bindable. Selected radio's value. Empty string = none selected. */
|
|
1478
1478
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1479
1479
|
/** Layout direction for keyboard navigation. */
|
|
1480
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
1480
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
1481
1481
|
/**
|
|
1482
1482
|
* Reading direction for horizontal orientation. When unset (default
|
|
1483
1483
|
* `null`), the inherited ambient direction is resolved from the nearest
|
|
@@ -1769,7 +1769,7 @@ declare class ForTabs implements ForTabsContext {
|
|
|
1769
1769
|
*/
|
|
1770
1770
|
readonly value: _angular_core.ModelSignal<string | null>;
|
|
1771
1771
|
readonly activationMode: _angular_core.InputSignal<TabsActivationMode>;
|
|
1772
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
1772
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
1773
1773
|
/**
|
|
1774
1774
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
1775
1775
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -2084,7 +2084,7 @@ declare class ForListbox<T = string> extends FormUiControlBase implements FormVa
|
|
|
2084
2084
|
* `null` (default) or empty value emits no attribute.
|
|
2085
2085
|
*/
|
|
2086
2086
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
2087
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
2087
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
2088
2088
|
/**
|
|
2089
2089
|
* When true (default), arrow navigation wraps at the ends — moving past the
|
|
2090
2090
|
* last option focuses the first and vice versa. Set `false` to stop at the
|
|
@@ -2322,6 +2322,7 @@ interface ForTooltipContext {
|
|
|
2322
2322
|
readonly arrowPadding: Signal<number>;
|
|
2323
2323
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
2324
2324
|
readonly hideWhenDetached: Signal<boolean>;
|
|
2325
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
2325
2326
|
/** Trigger element id — a consumer-set host `id` is adopted, else a generated one. */
|
|
2326
2327
|
readonly triggerId: Signal<string>;
|
|
2327
2328
|
/** Content element id — a consumer-set host `id` is adopted, else a generated one. Referenced by the trigger's `aria-describedby` while open. */
|
|
@@ -2433,6 +2434,14 @@ declare class ForTooltip implements ForTooltipContext {
|
|
|
2433
2434
|
* off all clipping ancestors.
|
|
2434
2435
|
*/
|
|
2435
2436
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2437
|
+
/**
|
|
2438
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
2439
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
2440
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
2441
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
2442
|
+
* computes).
|
|
2443
|
+
*/
|
|
2444
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2436
2445
|
/**
|
|
2437
2446
|
* Per-tooltip override for the open delay (ms). When `undefined`
|
|
2438
2447
|
* (default), falls back to `ForTooltipDefaults.openDelay` from the
|
|
@@ -2474,7 +2483,7 @@ declare class ForTooltip implements ForTooltipContext {
|
|
|
2474
2483
|
scheduleClose(reason: TooltipScheduleReason): void;
|
|
2475
2484
|
cancelPending(): void;
|
|
2476
2485
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTooltip, never>;
|
|
2477
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTooltip, "[forTooltip]", ["forTooltip"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
2486
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTooltip, "[forTooltip]", ["forTooltip"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, never, true, never>;
|
|
2478
2487
|
}
|
|
2479
2488
|
|
|
2480
2489
|
/**
|
|
@@ -2635,6 +2644,12 @@ interface ForDialogContext {
|
|
|
2635
2644
|
readonly alert: Signal<boolean>;
|
|
2636
2645
|
readonly labelledBy: Signal<string | null>;
|
|
2637
2646
|
readonly describedBy: Signal<string | null>;
|
|
2647
|
+
/**
|
|
2648
|
+
* Portal target shared with the backdrop so both resolve the same
|
|
2649
|
+
* container. `null` ⇒ `document.body`. Set via the dialog's `container`
|
|
2650
|
+
* input; read once per mount.
|
|
2651
|
+
*/
|
|
2652
|
+
readonly container: Signal<HTMLElement | null>;
|
|
2638
2653
|
registerLabel(id: string): void;
|
|
2639
2654
|
unregisterLabel(id: string): void;
|
|
2640
2655
|
registerDescription(id: string): void;
|
|
@@ -2670,7 +2685,7 @@ declare const FOR_DIALOG_CONTEXT: InjectionToken<ForDialogContext>;
|
|
|
2670
2685
|
*
|
|
2671
2686
|
* ```html
|
|
2672
2687
|
* @if (dialogOpen()) {
|
|
2673
|
-
* <div forDialog (
|
|
2688
|
+
* <div forDialog (dismiss)="dialogOpen.set(false)" animate.leave="fade-out">
|
|
2674
2689
|
* <h2 forDialogTitle>Confirm</h2>
|
|
2675
2690
|
* <button forDialogClose>Cancel</button>
|
|
2676
2691
|
* </div>
|
|
@@ -2693,7 +2708,7 @@ declare class ForDialog implements ForDialogContext {
|
|
|
2693
2708
|
#private;
|
|
2694
2709
|
/**
|
|
2695
2710
|
* When true (default), Escape, backdrop click, pointer-down outside, and
|
|
2696
|
-
* focus outside emit `(
|
|
2711
|
+
* focus outside emit `(dismiss)`. Disable for critical confirm flows that
|
|
2697
2712
|
* must be answered explicitly via `[forDialogClose]`.
|
|
2698
2713
|
*/
|
|
2699
2714
|
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -2714,39 +2729,46 @@ declare class ForDialog implements ForDialogContext {
|
|
|
2714
2729
|
readonly initialFocus: _angular_core.InputSignal<"first" | "container">;
|
|
2715
2730
|
/** Manual `aria-label`. Use this when no visible title element exists. */
|
|
2716
2731
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
2732
|
+
/**
|
|
2733
|
+
* Portal target for the dialog surface. Defaults to `document.body`. Pair
|
|
2734
|
+
* with `[modal]="false"` for a dialog scoped to a positioned region
|
|
2735
|
+
* instead of the viewport. Read once at mount. The backdrop portals to the
|
|
2736
|
+
* same container.
|
|
2737
|
+
*/
|
|
2738
|
+
readonly container: _angular_core.InputSignal<HTMLElement | null>;
|
|
2717
2739
|
/**
|
|
2718
2740
|
* Emitted when the dialog wants to close. Consumers wire this to flip
|
|
2719
2741
|
* the signal that gates the surrounding `@if`. Reasons: `'escape'`,
|
|
2720
2742
|
* `'backdrop'`, `'pointerDownOutside'`, `'focusOutside'`,
|
|
2721
2743
|
* `'closeButton'`, `'programmatic'`.
|
|
2722
2744
|
*/
|
|
2723
|
-
readonly
|
|
2745
|
+
readonly dismiss: _angular_core.OutputEmitterRef<ForDialogCloseReason>;
|
|
2724
2746
|
/**
|
|
2725
2747
|
* Fires when the user presses Escape while this dialog is the topmost
|
|
2726
2748
|
* dismissable layer. Call `preventDefault()` on the emitted veto to
|
|
2727
|
-
* suppress the subsequent `(
|
|
2749
|
+
* suppress the subsequent `(dismiss)` emission (e.g. to ask for
|
|
2728
2750
|
* confirmation first). The original `KeyboardEvent` is available on
|
|
2729
2751
|
* `.event` for inspection.
|
|
2730
2752
|
*/
|
|
2731
2753
|
readonly escapeKeyDown: _angular_core.OutputEmitterRef<VetoableNativeEvent<KeyboardEvent>>;
|
|
2732
2754
|
/**
|
|
2733
2755
|
* Fires when a pointer goes down outside the dialog. Call
|
|
2734
|
-
* `preventDefault()` on the emitted veto to suppress the auto `(
|
|
2756
|
+
* `preventDefault()` on the emitted veto to suppress the auto `(dismiss)`.
|
|
2735
2757
|
* The native `PointerEvent` is available on `.event`.
|
|
2736
2758
|
*/
|
|
2737
2759
|
readonly pointerDownOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent>>;
|
|
2738
2760
|
/**
|
|
2739
2761
|
* Fires when focus moves outside the dialog (e.g. user tabs out of a
|
|
2740
2762
|
* non-modal dialog). `preventDefault()` on the veto suppresses the auto
|
|
2741
|
-
* `(
|
|
2763
|
+
* `(dismiss)`. The native `FocusEvent` is available on `.event`.
|
|
2742
2764
|
*/
|
|
2743
2765
|
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
2744
2766
|
/**
|
|
2745
2767
|
* Composite event: fires alongside `pointerDownOutside` and
|
|
2746
2768
|
* `focusOutside` and shares their veto state — `preventDefault()` on
|
|
2747
|
-
* either one suppresses the auto `(
|
|
2769
|
+
* either one suppresses the auto `(dismiss)`.
|
|
2748
2770
|
*/
|
|
2749
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
2771
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
2750
2772
|
/**
|
|
2751
2773
|
* Callback invoked just before the dialog moves focus into itself on
|
|
2752
2774
|
* mount. Receives a `VetoableEvent`; call `event.preventDefault()` to
|
|
@@ -2770,7 +2792,7 @@ declare class ForDialog implements ForDialogContext {
|
|
|
2770
2792
|
*
|
|
2771
2793
|
* Bound as a function reference (`[autoFocusOnClose]="onClose"`), not
|
|
2772
2794
|
* as an event binding. Fires reliably on both close paths: the
|
|
2773
|
-
* `(
|
|
2795
|
+
* `(dismiss)` output flow AND a direct `open.set(false)` from the
|
|
2774
2796
|
* consumer. Symmetric with `ForDialogManager`'s
|
|
2775
2797
|
* `config.autoFocusOnClose`.
|
|
2776
2798
|
*/
|
|
@@ -2784,7 +2806,7 @@ declare class ForDialog implements ForDialogContext {
|
|
|
2784
2806
|
unregisterDescription(id: string): void;
|
|
2785
2807
|
requestClose(reason: ForDialogCloseReason, value?: unknown): void;
|
|
2786
2808
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDialog, never>;
|
|
2787
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDialog, "[forDialog]", ["forDialog"], { "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "alert": { "alias": "alert"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "autoFocusOnOpen": { "alias": "autoFocusOnOpen"; "required": false; "isSignal": true; }; "autoFocusOnClose": { "alias": "autoFocusOnClose"; "required": false; "isSignal": true; }; }, { "
|
|
2809
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDialog, "[forDialog]", ["forDialog"], { "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "alert": { "alias": "alert"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "container": { "alias": "container"; "required": false; "isSignal": true; }; "autoFocusOnOpen": { "alias": "autoFocusOnOpen"; "required": false; "isSignal": true; }; "autoFocusOnClose": { "alias": "autoFocusOnClose"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; }, never, never, true, never>;
|
|
2788
2810
|
}
|
|
2789
2811
|
|
|
2790
2812
|
/**
|
|
@@ -2801,7 +2823,7 @@ declare class ForDialog implements ForDialogContext {
|
|
|
2801
2823
|
* ```html
|
|
2802
2824
|
* <button forDialogTrigger [(open)]="dialogOpen" controls="my-dialog">Open</button>
|
|
2803
2825
|
* @if (dialogOpen()) {
|
|
2804
|
-
* <div forDialog id="my-dialog" (
|
|
2826
|
+
* <div forDialog id="my-dialog" (dismiss)="dialogOpen.set(false)">…</div>
|
|
2805
2827
|
* }
|
|
2806
2828
|
* ```
|
|
2807
2829
|
*/
|
|
@@ -2879,16 +2901,24 @@ declare class ForDialogClose {
|
|
|
2879
2901
|
}
|
|
2880
2902
|
|
|
2881
2903
|
/**
|
|
2882
|
-
* Optional backdrop overlay. Portaled to `
|
|
2883
|
-
*
|
|
2884
|
-
*
|
|
2885
|
-
*
|
|
2904
|
+
* Optional backdrop overlay. Portaled to the dialog's `container` (the same
|
|
2905
|
+
* target the surface uses) — `document.body` by default. While mounted the
|
|
2906
|
+
* backdrop is visible; mount/unmount it alongside the dialog with the same
|
|
2907
|
+
* `@if` so `animate.enter` / `animate.leave` works on both.
|
|
2886
2908
|
*
|
|
2887
2909
|
* The directive applies no visual styles — set `position: fixed; inset: 0;
|
|
2888
|
-
* background: rgba(0,0,0,0.5)` (or whatever) yourself.
|
|
2910
|
+
* background: rgba(0,0,0,0.5)` (or whatever) yourself. For a backdrop inside a
|
|
2911
|
+
* scoped `container`, use `position: absolute` so it is bounded to that box.
|
|
2889
2912
|
*/
|
|
2890
2913
|
declare class ForDialogBackdrop {
|
|
2891
2914
|
protected readonly ctx: forty_cdk.ForDialogContext;
|
|
2915
|
+
/**
|
|
2916
|
+
* Per-instance dialog id when opened through `ForDialogManager` (reflected
|
|
2917
|
+
* as `data-for-dialog-id` so the manager can pair this portaled backdrop
|
|
2918
|
+
* with its dialog and drive its exit animation). `null` in the declarative
|
|
2919
|
+
* path, where the host binding emits no attribute.
|
|
2920
|
+
*/
|
|
2921
|
+
protected readonly instanceId: string | null;
|
|
2892
2922
|
constructor();
|
|
2893
2923
|
protected onClick(event: MouseEvent): void;
|
|
2894
2924
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDialogBackdrop, never>;
|
|
@@ -2951,6 +2981,12 @@ interface ForDialogOpenConfig<D = unknown> {
|
|
|
2951
2981
|
initialFocus?: 'first' | 'container';
|
|
2952
2982
|
/** Manual `aria-label`. Use when no visible title element is rendered. */
|
|
2953
2983
|
ariaLabel?: string;
|
|
2984
|
+
/**
|
|
2985
|
+
* Portal target for the surface + backdrop. Defaults to `document.body`.
|
|
2986
|
+
* Pair with `modal: false` for a dialog scoped to a positioned region
|
|
2987
|
+
* instead of the viewport.
|
|
2988
|
+
*/
|
|
2989
|
+
container?: HTMLElement | null;
|
|
2954
2990
|
/**
|
|
2955
2991
|
* CSS class applied (via `animate.enter`) to the overlay root the moment it
|
|
2956
2992
|
* mounts, so a programmatic dialog plays an enter animation just like a
|
|
@@ -2969,6 +3005,22 @@ interface ForDialogOpenConfig<D = unknown> {
|
|
|
2969
3005
|
* back to `provideForDialogDefaults({ animateLeave })`.
|
|
2970
3006
|
*/
|
|
2971
3007
|
animateLeave?: string;
|
|
3008
|
+
/**
|
|
3009
|
+
* Exit-animation class for the portaled `[forDialogBackdrop]`: the manager
|
|
3010
|
+
* adds it when `close()` is called and keeps the backdrop mounted until the
|
|
3011
|
+
* animation finishes, so the backdrop fades out in lockstep with the host.
|
|
3012
|
+
*
|
|
3013
|
+
* The split with the enter animation is intentional, not an oversight.
|
|
3014
|
+
* Declare the backdrop's **enter** with `animate.enter="…"` on the element
|
|
3015
|
+
* itself — it fires on mount, which Angular runs normally even inside the
|
|
3016
|
+
* manager's `ngComponentOutlet` — and declare only its **leave** here. A
|
|
3017
|
+
* template `animate.leave` on the backdrop never fires under the manager:
|
|
3018
|
+
* Angular does not run leave animations across the `ngComponentOutlet` the
|
|
3019
|
+
* opened component is mounted through. (The host box is symmetric — both
|
|
3020
|
+
* `animateEnter` and `animateLeave` are config, since the manager owns that
|
|
3021
|
+
* element.) Falls back to `provideForDialogDefaults({ backdropAnimateLeave })`.
|
|
3022
|
+
*/
|
|
3023
|
+
backdropAnimateLeave?: string;
|
|
2972
3024
|
/**
|
|
2973
3025
|
* Consumer CSS class(es) applied to the overlay root (the `[forDialog]`
|
|
2974
3026
|
* host). Pass a single class (`'my-dialog'`) or a space-separated string
|
|
@@ -3080,6 +3132,15 @@ interface ForDialogDefaults {
|
|
|
3080
3132
|
* an exit transition plays before teardown. No default (close is immediate).
|
|
3081
3133
|
*/
|
|
3082
3134
|
animateLeave?: string;
|
|
3135
|
+
/**
|
|
3136
|
+
* CSS class applied to the portaled `[forDialogBackdrop]` when `close()` is
|
|
3137
|
+
* called, so the backdrop plays an exit animation in lockstep with the
|
|
3138
|
+
* host. Needed because a backdrop declared inside the opened component plays
|
|
3139
|
+
* its `animate.enter` on mount but cannot run its template `animate.leave` —
|
|
3140
|
+
* Angular does not process leave animations across the `ngComponentOutlet`
|
|
3141
|
+
* boundary the manager mounts the component through. No default.
|
|
3142
|
+
*/
|
|
3143
|
+
backdropAnimateLeave?: string;
|
|
3083
3144
|
}
|
|
3084
3145
|
/** Token holding the resolved dialog defaults for the current scope. */
|
|
3085
3146
|
declare const FOR_DIALOG_DEFAULTS: _angular_core.InjectionToken<ForDialogDefaults>;
|
|
@@ -3114,7 +3175,7 @@ type ForDrawerSide = 'top' | 'right' | 'bottom' | 'left';
|
|
|
3114
3175
|
*/
|
|
3115
3176
|
type ForDrawerSnapPoint = number | `${number}%` | `${number}px`;
|
|
3116
3177
|
/**
|
|
3117
|
-
* Reasons emitted via the `(
|
|
3178
|
+
* Reasons emitted via the `(dismiss)` output. A single drawer instance can
|
|
3118
3179
|
* cycle through any of these — the consumer typically just flips its
|
|
3119
3180
|
* `@if`-gating signal off, but may choose to skip the unmount on specific
|
|
3120
3181
|
* reasons (e.g. ignore `'pointerDownOutside'` for a sticky drawer).
|
|
@@ -3160,6 +3221,12 @@ interface ForDrawerContext {
|
|
|
3160
3221
|
readonly dragProgress: Signal<number>;
|
|
3161
3222
|
readonly labelledBy: Signal<string | null>;
|
|
3162
3223
|
readonly describedBy: Signal<string | null>;
|
|
3224
|
+
/**
|
|
3225
|
+
* Portal target shared with the backdrop so both resolve the same
|
|
3226
|
+
* container. `null` ⇒ `document.body`. Set via the drawer's `container`
|
|
3227
|
+
* input; read once per mount.
|
|
3228
|
+
*/
|
|
3229
|
+
readonly container: Signal<HTMLElement | null>;
|
|
3163
3230
|
/**
|
|
3164
3231
|
* Host element of the drawer surface. Exposed so a nested child can
|
|
3165
3232
|
* register its parent topology with `ForDrawerStack` without piercing
|
|
@@ -3202,7 +3269,7 @@ interface ForDrawerContext {
|
|
|
3202
3269
|
}
|
|
3203
3270
|
declare const FOR_DRAWER_CONTEXT: InjectionToken<ForDrawerContext>;
|
|
3204
3271
|
/**
|
|
3205
|
-
* Drag/release event payloads. Surfaced through `(
|
|
3272
|
+
* Drag/release event payloads. Surfaced through `(dragMove)` / `(release)`
|
|
3206
3273
|
* so consumers can drive bespoke visualizations (e.g. a separate "scaled
|
|
3207
3274
|
* background" effect, a debug HUD); the directive itself owns transform
|
|
3208
3275
|
* application and snap resolution.
|
|
@@ -3248,7 +3315,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3248
3315
|
readonly side: _angular_core.InputSignal<ForDrawerSide>;
|
|
3249
3316
|
/**
|
|
3250
3317
|
* When true (default), Escape, backdrop click, pointer-down outside,
|
|
3251
|
-
* focus outside, and a swipe past the close threshold all emit `(
|
|
3318
|
+
* focus outside, and a swipe past the close threshold all emit `(dismiss)`.
|
|
3252
3319
|
* Disable for confirm flows that must be answered explicitly.
|
|
3253
3320
|
*/
|
|
3254
3321
|
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -3270,6 +3337,14 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3270
3337
|
readonly initialFocus: _angular_core.InputSignal<"first" | "container">;
|
|
3271
3338
|
/** Manual `aria-label`. Use this when no visible title element exists. */
|
|
3272
3339
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
3340
|
+
/**
|
|
3341
|
+
* Portal target for the surface. Defaults to `document.body`. Pass a
|
|
3342
|
+
* positioned (`position: relative`) container — paired with
|
|
3343
|
+
* `[modal]="false"` — for a drawer scoped to a region instead of the
|
|
3344
|
+
* viewport. Read once at mount (the portal moves the host once); changing
|
|
3345
|
+
* it after open has no effect. The backdrop portals to the same container.
|
|
3346
|
+
*/
|
|
3347
|
+
readonly container: _angular_core.InputSignal<HTMLElement | null>;
|
|
3273
3348
|
/**
|
|
3274
3349
|
* Callback invoked just before focus moves into the drawer on mount.
|
|
3275
3350
|
* `event.preventDefault()` skips the imperative move (Tab cycling and
|
|
@@ -3286,9 +3361,12 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3286
3361
|
/** When true (default), swipe toward the anchored edge dismisses past `closeThreshold`. */
|
|
3287
3362
|
readonly swipeToDismiss: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3288
3363
|
/**
|
|
3289
|
-
* Fraction
|
|
3290
|
-
*
|
|
3291
|
-
*
|
|
3364
|
+
* Fraction past which a release dismisses instead of snapping back.
|
|
3365
|
+
* Vaul-aligned default `0.25`. Without `snapPoints` it is a fraction of the
|
|
3366
|
+
* full drawer dimension along the dismissal axis (dragged > 25% of the
|
|
3367
|
+
* surface size toward the edge dismisses); with `snapPoints` it is a
|
|
3368
|
+
* fraction of the **lowest snap's** extent, so a small "peek" snap stays
|
|
3369
|
+
* dismissable without dragging it entirely off-screen.
|
|
3292
3370
|
*/
|
|
3293
3371
|
readonly closeThreshold: _angular_core.InputSignal<number>;
|
|
3294
3372
|
/**
|
|
@@ -3316,8 +3394,8 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3316
3394
|
* Snap points (Vaul semantics): each entry is a `number ∈ [0, 1]`,
|
|
3317
3395
|
* a `'NN%'` string, or a `'NNpx'` string. Strictly increasing
|
|
3318
3396
|
* (closest-to-edge first). The surface settles at the nearest snap on
|
|
3319
|
-
* release; dragging past the lowest snap by `closeThreshold
|
|
3320
|
-
* dismisses.
|
|
3397
|
+
* release; dragging past the lowest snap by `closeThreshold` of that
|
|
3398
|
+
* snap's own extent dismisses.
|
|
3321
3399
|
*/
|
|
3322
3400
|
readonly snapPoints: _angular_core.InputSignal<readonly ForDrawerSnapPoint[] | undefined>;
|
|
3323
3401
|
/**
|
|
@@ -3339,21 +3417,21 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3339
3417
|
* Emitted when the drawer wants to close. Consumer wires this to flip
|
|
3340
3418
|
* the signal that gates the surrounding `@if`.
|
|
3341
3419
|
*/
|
|
3342
|
-
readonly
|
|
3343
|
-
/** Vetoable Escape. `preventDefault()` suppresses the auto `(
|
|
3420
|
+
readonly dismiss: _angular_core.OutputEmitterRef<ForDrawerCloseReason>;
|
|
3421
|
+
/** Vetoable Escape. `preventDefault()` suppresses the auto `(dismiss)`. */
|
|
3344
3422
|
readonly escapeKeyDown: _angular_core.OutputEmitterRef<VetoableNativeEvent<KeyboardEvent>>;
|
|
3345
|
-
/** Vetoable pointer-down outside. `preventDefault()` suppresses the auto `(
|
|
3423
|
+
/** Vetoable pointer-down outside. `preventDefault()` suppresses the auto `(dismiss)`. */
|
|
3346
3424
|
readonly pointerDownOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent>>;
|
|
3347
|
-
/** Vetoable focus-outside. `preventDefault()` suppresses the auto `(
|
|
3425
|
+
/** Vetoable focus-outside. `preventDefault()` suppresses the auto `(dismiss)`. */
|
|
3348
3426
|
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
3349
3427
|
/**
|
|
3350
3428
|
* Composite event: fires alongside `pointerDownOutside` and `focusOutside`
|
|
3351
3429
|
* and shares their veto state — `preventDefault()` on either suppresses
|
|
3352
|
-
* the auto `(
|
|
3430
|
+
* the auto `(dismiss)`.
|
|
3353
3431
|
*/
|
|
3354
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
3432
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
3355
3433
|
/** Drag stream. `percentageDragged` ∈ `[0, 1]`. */
|
|
3356
|
-
readonly
|
|
3434
|
+
readonly dragMove: _angular_core.OutputEmitterRef<ForDrawerDragEvent>;
|
|
3357
3435
|
/** Release event. The directive has already updated `activeSnapPoint` / requested close. */
|
|
3358
3436
|
readonly release: _angular_core.OutputEmitterRef<ForDrawerReleaseEvent>;
|
|
3359
3437
|
readonly labelledBy: _angular_core.Signal<string | null>;
|
|
@@ -3415,7 +3493,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3415
3493
|
registerBackdrop(el: HTMLElement | null): void;
|
|
3416
3494
|
requestClose(reason: ForDrawerCloseReason, value?: unknown): void;
|
|
3417
3495
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDrawer, never>;
|
|
3418
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDrawer, "[forDrawer]", ["forDrawer"], { "side": { "alias": "side"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "alert": { "alias": "alert"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "autoFocusOnOpen": { "alias": "autoFocusOnOpen"; "required": false; "isSignal": true; }; "autoFocusOnClose": { "alias": "autoFocusOnClose"; "required": false; "isSignal": true; }; "swipeToDismiss": { "alias": "swipeToDismiss"; "required": false; "isSignal": true; }; "closeThreshold": { "alias": "closeThreshold"; "required": false; "isSignal": true; }; "handleOnly": { "alias": "handleOnly"; "required": false; "isSignal": true; }; "scaleBackground": { "alias": "scaleBackground"; "required": false; "isSignal": true; }; "setBackgroundColorOnScale": { "alias": "setBackgroundColorOnScale"; "required": false; "isSignal": true; }; "snapPoints": { "alias": "snapPoints"; "required": false; "isSignal": true; }; "activeSnapPoint": { "alias": "activeSnapPoint"; "required": false; "isSignal": true; }; "fadeFromIndex": { "alias": "fadeFromIndex"; "required": false; "isSignal": true; }; }, { "activeSnapPoint": "activeSnapPointChange"; "
|
|
3496
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDrawer, "[forDrawer]", ["forDrawer"], { "side": { "alias": "side"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "alert": { "alias": "alert"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "container": { "alias": "container"; "required": false; "isSignal": true; }; "autoFocusOnOpen": { "alias": "autoFocusOnOpen"; "required": false; "isSignal": true; }; "autoFocusOnClose": { "alias": "autoFocusOnClose"; "required": false; "isSignal": true; }; "swipeToDismiss": { "alias": "swipeToDismiss"; "required": false; "isSignal": true; }; "closeThreshold": { "alias": "closeThreshold"; "required": false; "isSignal": true; }; "handleOnly": { "alias": "handleOnly"; "required": false; "isSignal": true; }; "scaleBackground": { "alias": "scaleBackground"; "required": false; "isSignal": true; }; "setBackgroundColorOnScale": { "alias": "setBackgroundColorOnScale"; "required": false; "isSignal": true; }; "snapPoints": { "alias": "snapPoints"; "required": false; "isSignal": true; }; "activeSnapPoint": { "alias": "activeSnapPoint"; "required": false; "isSignal": true; }; "fadeFromIndex": { "alias": "fadeFromIndex"; "required": false; "isSignal": true; }; }, { "activeSnapPoint": "activeSnapPointChange"; "dismiss": "dismiss"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "dragMove": "dragMove"; "release": "release"; }, never, never, true, never>;
|
|
3419
3497
|
}
|
|
3420
3498
|
|
|
3421
3499
|
/**
|
|
@@ -3431,7 +3509,7 @@ declare class ForDrawer implements ForDrawerContext {
|
|
|
3431
3509
|
* ```html
|
|
3432
3510
|
* <button forDrawerTrigger [(open)]="drawerOpen" controls="my-drawer">Open</button>
|
|
3433
3511
|
* @if (drawerOpen()) {
|
|
3434
|
-
* <div forDrawer id="my-drawer" (
|
|
3512
|
+
* <div forDrawer id="my-drawer" (dismiss)="drawerOpen.set(false)">…</div>
|
|
3435
3513
|
* }
|
|
3436
3514
|
* ```
|
|
3437
3515
|
*/
|
|
@@ -3494,6 +3572,13 @@ declare class ForDrawerTrigger {
|
|
|
3494
3572
|
declare class ForDrawerBackdrop {
|
|
3495
3573
|
#private;
|
|
3496
3574
|
protected readonly ctx: forty_cdk.ForDrawerContext;
|
|
3575
|
+
/**
|
|
3576
|
+
* Per-instance drawer id when opened through `ForDrawerManager` (reflected
|
|
3577
|
+
* as `data-for-drawer-id` so the manager can pair this portaled backdrop
|
|
3578
|
+
* with its drawer and drive its exit animation). `null` in the declarative
|
|
3579
|
+
* path, where the host binding emits no attribute.
|
|
3580
|
+
*/
|
|
3581
|
+
protected readonly instanceId: string | null;
|
|
3497
3582
|
constructor();
|
|
3498
3583
|
protected onClick(event: MouseEvent): void;
|
|
3499
3584
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDrawerBackdrop, never>;
|
|
@@ -3638,6 +3723,12 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3638
3723
|
initialFocus?: 'first' | 'container';
|
|
3639
3724
|
/** Manual `aria-label`. Use when no visible title element is rendered. */
|
|
3640
3725
|
ariaLabel?: string;
|
|
3726
|
+
/**
|
|
3727
|
+
* Portal target for the surface + backdrop. Defaults to `document.body`.
|
|
3728
|
+
* Pair with `modal: false` for a drawer scoped to a positioned region
|
|
3729
|
+
* instead of the viewport.
|
|
3730
|
+
*/
|
|
3731
|
+
container?: HTMLElement | null;
|
|
3641
3732
|
/**
|
|
3642
3733
|
* CSS class applied (via `animate.enter`) to the overlay root the moment it
|
|
3643
3734
|
* mounts, so a programmatic drawer plays an enter animation just like a
|
|
@@ -3656,6 +3747,22 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3656
3747
|
* back to `provideForDrawerDefaults({ animateLeave })`.
|
|
3657
3748
|
*/
|
|
3658
3749
|
animateLeave?: string;
|
|
3750
|
+
/**
|
|
3751
|
+
* Exit-animation class for the portaled `[forDrawerBackdrop]`: the manager
|
|
3752
|
+
* adds it when `close()` is called and keeps the backdrop mounted until the
|
|
3753
|
+
* animation finishes, so the backdrop fades out in lockstep with the host.
|
|
3754
|
+
*
|
|
3755
|
+
* The split with the enter animation is intentional, not an oversight.
|
|
3756
|
+
* Declare the backdrop's **enter** with `animate.enter="…"` on the element
|
|
3757
|
+
* itself — it fires on mount, which Angular runs normally even inside the
|
|
3758
|
+
* manager's `ngComponentOutlet` — and declare only its **leave** here. A
|
|
3759
|
+
* template `animate.leave` on the backdrop never fires under the manager:
|
|
3760
|
+
* Angular does not run leave animations across the `ngComponentOutlet` the
|
|
3761
|
+
* opened component is mounted through. (The host sheet is symmetric — both
|
|
3762
|
+
* `animateEnter` and `animateLeave` are config, since the manager owns that
|
|
3763
|
+
* element.) Falls back to `provideForDrawerDefaults({ backdropAnimateLeave })`.
|
|
3764
|
+
*/
|
|
3765
|
+
backdropAnimateLeave?: string;
|
|
3659
3766
|
/** When true (default), pointer drag past `closeThreshold` dismisses. */
|
|
3660
3767
|
swipeToDismiss?: boolean;
|
|
3661
3768
|
/** Vaul-style fraction of dimension past which a release dismisses. Default `0.25`. */
|
|
@@ -3743,7 +3850,7 @@ interface ForDrawerOpenConfig<D = unknown> {
|
|
|
3743
3850
|
*/
|
|
3744
3851
|
interactOutside?: (event: VetoableNativeEvent<PointerEvent | FocusEvent>) => void;
|
|
3745
3852
|
/**
|
|
3746
|
-
* Mirrors the declarative `(
|
|
3853
|
+
* Mirrors the declarative `(dragMove)` output: invoked on every pointer-move
|
|
3747
3854
|
* frame of a swipe gesture with `percentageDragged` ∈ `[0, 1]`. Lets a
|
|
3748
3855
|
* programmatic consumer drive bespoke drag visualizations the way the
|
|
3749
3856
|
* directive consumer can.
|
|
@@ -3804,9 +3911,10 @@ interface ForDrawerDefaults {
|
|
|
3804
3911
|
/** Default `true`. Pointer drag gesture toward the anchored edge dismisses. */
|
|
3805
3912
|
swipeToDismiss?: boolean;
|
|
3806
3913
|
/**
|
|
3807
|
-
* Default `0.25`. Fraction
|
|
3808
|
-
*
|
|
3809
|
-
* semantics (see
|
|
3914
|
+
* Default `0.25`. Fraction past which a release dismisses instead of
|
|
3915
|
+
* snapping back: of the full dimension without snap points, of the lowest
|
|
3916
|
+
* snap's extent with them. Vaul semantics (see
|
|
3917
|
+
* `_internal/swipe-dismiss/resolveSnapTarget`).
|
|
3810
3918
|
*/
|
|
3811
3919
|
closeThreshold?: number;
|
|
3812
3920
|
/** Default `'first'`. Where to send focus on mount. */
|
|
@@ -3871,6 +3979,15 @@ interface ForDrawerDefaults {
|
|
|
3871
3979
|
* an exit transition plays before teardown. No default (close is immediate).
|
|
3872
3980
|
*/
|
|
3873
3981
|
animateLeave?: string;
|
|
3982
|
+
/**
|
|
3983
|
+
* CSS class applied to the portaled `[forDrawerBackdrop]` when `close()` is
|
|
3984
|
+
* called, so the backdrop plays an exit animation in lockstep with the
|
|
3985
|
+
* host. Needed because a backdrop declared inside the opened component plays
|
|
3986
|
+
* its `animate.enter` on mount but cannot run its template `animate.leave` —
|
|
3987
|
+
* Angular does not process leave animations across the `ngComponentOutlet`
|
|
3988
|
+
* boundary the manager mounts the component through. No default.
|
|
3989
|
+
*/
|
|
3990
|
+
backdropAnimateLeave?: string;
|
|
3874
3991
|
}
|
|
3875
3992
|
/** Token holding the resolved drawer defaults for the current scope. */
|
|
3876
3993
|
declare const FOR_DRAWER_DEFAULTS: _angular_core.InjectionToken<ForDrawerDefaults>;
|
|
@@ -3906,6 +4023,7 @@ interface ForPopoverContext {
|
|
|
3906
4023
|
readonly arrowPadding: Signal<number>;
|
|
3907
4024
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
3908
4025
|
readonly hideWhenDetached: Signal<boolean>;
|
|
4026
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
3909
4027
|
readonly triggerId: Signal<string>;
|
|
3910
4028
|
readonly contentId: Signal<string>;
|
|
3911
4029
|
readonly ariaLabel: Signal<string | null>;
|
|
@@ -4075,6 +4193,14 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4075
4193
|
* tied to scrolled-away triggers.
|
|
4076
4194
|
*/
|
|
4077
4195
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4196
|
+
/**
|
|
4197
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
4198
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
4199
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
4200
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
4201
|
+
* computes).
|
|
4202
|
+
*/
|
|
4203
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4078
4204
|
/**
|
|
4079
4205
|
* When true, trigger interaction is ignored and any open popover stays
|
|
4080
4206
|
* open until the consumer flips `open` themselves. Disable on the trigger
|
|
@@ -4120,7 +4246,7 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4120
4246
|
* `focusOutside` and shares their veto state — `preventDefault()` on
|
|
4121
4247
|
* either one suppresses the automatic close.
|
|
4122
4248
|
*/
|
|
4123
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
4249
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
4124
4250
|
/**
|
|
4125
4251
|
* Fires just before the popover sends focus into itself on mount.
|
|
4126
4252
|
* Call `preventDefault()` on the veto to skip the imperative focus
|
|
@@ -4181,7 +4307,7 @@ declare class ForPopover implements ForPopoverContext {
|
|
|
4181
4307
|
emitAutoFocusOnOpen(): boolean;
|
|
4182
4308
|
emitAutoFocusOnClose(): boolean;
|
|
4183
4309
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPopover, never>;
|
|
4184
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPopover, "[forPopover]", ["forPopover"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
4310
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPopover, "[forPopover]", ["forPopover"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
4185
4311
|
}
|
|
4186
4312
|
|
|
4187
4313
|
/**
|
|
@@ -4513,7 +4639,7 @@ declare class ForToggleGroup extends FormUiControlBase implements FormValueContr
|
|
|
4513
4639
|
*/
|
|
4514
4640
|
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4515
4641
|
/** Layout direction for keyboard navigation. */
|
|
4516
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
4642
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
4517
4643
|
/**
|
|
4518
4644
|
* Reading direction. RTL swaps ArrowLeft/ArrowRight. When unset (default
|
|
4519
4645
|
* `null`), the inherited ambient direction is resolved from the nearest
|
|
@@ -4728,7 +4854,7 @@ declare class ForMenuContent {
|
|
|
4728
4854
|
* A single action inside `[forMenuContent]`. Apply on a `<button>` so
|
|
4729
4855
|
* Space / Enter activation come from native button semantics.
|
|
4730
4856
|
*
|
|
4731
|
-
* Activation emits `(
|
|
4857
|
+
* Activation emits `(activate)` and then closes the menu. To keep the menu
|
|
4732
4858
|
* open after activation (e.g. the action toggled something the user
|
|
4733
4859
|
* wants to refine), call `event.preventDefault()` on the emitted event.
|
|
4734
4860
|
*
|
|
@@ -4763,7 +4889,7 @@ declare class ForMenuItem {
|
|
|
4763
4889
|
* Fires on click / Enter / Space activation. Call `preventDefault()`
|
|
4764
4890
|
* on the emitted veto to keep the menu open after activation.
|
|
4765
4891
|
*/
|
|
4766
|
-
readonly
|
|
4892
|
+
readonly activate: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
4767
4893
|
constructor();
|
|
4768
4894
|
protected onClick(): void;
|
|
4769
4895
|
protected onFocus(): void;
|
|
@@ -4771,7 +4897,7 @@ declare class ForMenuItem {
|
|
|
4771
4897
|
protected onPointerMove(event: PointerEvent): void;
|
|
4772
4898
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
4773
4899
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenuItem, never>;
|
|
4774
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuItem, "[forMenuItem]", ["forMenuItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "
|
|
4900
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuItem, "[forMenuItem]", ["forMenuItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "activate": "activate"; }, never, never, true, never>;
|
|
4775
4901
|
}
|
|
4776
4902
|
|
|
4777
4903
|
/**
|
|
@@ -4785,9 +4911,9 @@ declare class ForMenuItem {
|
|
|
4785
4911
|
declare const FOR_MENU_CHECKBOX_ITEM: InjectionToken<ForMenuCheckboxItem>;
|
|
4786
4912
|
/**
|
|
4787
4913
|
* Tri-state-free checkbox item. Click and Enter toggle `checked`, emit
|
|
4788
|
-
* `(
|
|
4914
|
+
* `(activate)`, and close the menu — `event.preventDefault()` on the emitted
|
|
4789
4915
|
* event keeps the menu open. Per APG, **Space** toggles `checked` and
|
|
4790
|
-
* emits `(
|
|
4916
|
+
* emits `(activate)` without closing the menu, so users can flip several
|
|
4791
4917
|
* options in one open without consumer glue.
|
|
4792
4918
|
*/
|
|
4793
4919
|
declare class ForMenuCheckboxItem {
|
|
@@ -4816,7 +4942,7 @@ declare class ForMenuCheckboxItem {
|
|
|
4816
4942
|
* Fires on click / Enter / Space activation. Call `preventDefault()`
|
|
4817
4943
|
* on the emitted veto to keep the menu open after activation.
|
|
4818
4944
|
*/
|
|
4819
|
-
readonly
|
|
4945
|
+
readonly activate: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
4820
4946
|
constructor();
|
|
4821
4947
|
protected onClick(): void;
|
|
4822
4948
|
protected onFocus(): void;
|
|
@@ -4824,7 +4950,7 @@ declare class ForMenuCheckboxItem {
|
|
|
4824
4950
|
protected onPointerMove(event: PointerEvent): void;
|
|
4825
4951
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
4826
4952
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenuCheckboxItem, never>;
|
|
4827
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuCheckboxItem, "[forMenuCheckboxItem]", ["forMenuCheckboxItem"], { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "
|
|
4953
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuCheckboxItem, "[forMenuCheckboxItem]", ["forMenuCheckboxItem"], { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "activate": "activate"; }, never, never, true, never>;
|
|
4828
4954
|
}
|
|
4829
4955
|
|
|
4830
4956
|
/**
|
|
@@ -4867,9 +4993,9 @@ declare class ForMenuRadioGroup implements ForMenuRadioGroupContext {
|
|
|
4867
4993
|
declare const FOR_MENU_RADIO_ITEM: InjectionToken<ForMenuRadioItem>;
|
|
4868
4994
|
/**
|
|
4869
4995
|
* One radio option inside `[forMenuRadioGroup]`. Click and Enter set the
|
|
4870
|
-
* group's `value` to this item's `value`, emit `(
|
|
4996
|
+
* group's `value` to this item's `value`, emit `(activate)`, and close the
|
|
4871
4997
|
* menu — call `event.preventDefault()` on the emitted event to keep the
|
|
4872
|
-
* menu open. Per APG, **Space** sets the value and emits `(
|
|
4998
|
+
* menu open. Per APG, **Space** sets the value and emits `(activate)`
|
|
4873
4999
|
* without closing the menu.
|
|
4874
5000
|
*/
|
|
4875
5001
|
declare class ForMenuRadioItem {
|
|
@@ -4900,7 +5026,7 @@ declare class ForMenuRadioItem {
|
|
|
4900
5026
|
* Fires on click / Enter / Space activation. Call `preventDefault()`
|
|
4901
5027
|
* on the emitted veto to keep the menu open after activation.
|
|
4902
5028
|
*/
|
|
4903
|
-
readonly
|
|
5029
|
+
readonly activate: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
4904
5030
|
constructor();
|
|
4905
5031
|
protected onClick(): void;
|
|
4906
5032
|
protected onFocus(): void;
|
|
@@ -4908,7 +5034,7 @@ declare class ForMenuRadioItem {
|
|
|
4908
5034
|
protected onPointerMove(event: PointerEvent): void;
|
|
4909
5035
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
4910
5036
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenuRadioItem, never>;
|
|
4911
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuRadioItem, "[forMenuRadioItem]", ["forMenuRadioItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "
|
|
5037
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuRadioItem, "[forMenuRadioItem]", ["forMenuRadioItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; }, { "activate": "activate"; }, never, never, true, never>;
|
|
4912
5038
|
}
|
|
4913
5039
|
|
|
4914
5040
|
/**
|
|
@@ -4960,7 +5086,7 @@ declare class ForMenuSeparator {
|
|
|
4960
5086
|
* `horizontal` (default) splits items stacked vertically — the common case
|
|
4961
5087
|
* in a vertical menu; `vertical` splits items laid out horizontally.
|
|
4962
5088
|
*/
|
|
4963
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
5089
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
4964
5090
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenuSeparator, never>;
|
|
4965
5091
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuSeparator, "[forMenuSeparator]", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4966
5092
|
}
|
|
@@ -5366,6 +5492,7 @@ interface ForMenuContext {
|
|
|
5366
5492
|
readonly arrowPadding: Signal<number>;
|
|
5367
5493
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
5368
5494
|
readonly hideWhenDetached: Signal<boolean>;
|
|
5495
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
5369
5496
|
readonly loop: Signal<boolean>;
|
|
5370
5497
|
/** Where focus should land after the menu mounts. Set by triggers before flipping `open`. */
|
|
5371
5498
|
readonly initialFocus: Signal<'first' | 'last'>;
|
|
@@ -5589,6 +5716,12 @@ declare class ForMenuSub extends MenuOverlayHost implements ForMenuContext {
|
|
|
5589
5716
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
5590
5717
|
/** When `true`, sets `data-detached=""` while the parent item is scrolled off-screen. */
|
|
5591
5718
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5719
|
+
/**
|
|
5720
|
+
* When `true` (default), the menu is clipped until floating-ui resolves
|
|
5721
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
5722
|
+
* `false` so a dramatic `animate.enter` plays from its first frame.
|
|
5723
|
+
*/
|
|
5724
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5592
5725
|
/**
|
|
5593
5726
|
* When `true` (default), arrow-key navigation wraps from the last enabled
|
|
5594
5727
|
* item back to the first (and vice versa). When `false`, navigation stops
|
|
@@ -5630,7 +5763,7 @@ declare class ForMenuSub extends MenuOverlayHost implements ForMenuContext {
|
|
|
5630
5763
|
* Call `preventDefault()` on the veto to keep the submenu open regardless of
|
|
5631
5764
|
* which interaction triggered it.
|
|
5632
5765
|
*/
|
|
5633
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
5766
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
5634
5767
|
/**
|
|
5635
5768
|
* Fires just before the submenu sends focus to its first / last
|
|
5636
5769
|
* enabled item on mount. Call `preventDefault()` on the emitted veto
|
|
@@ -5674,7 +5807,7 @@ declare class ForMenuSub extends MenuOverlayHost implements ForMenuContext {
|
|
|
5674
5807
|
emitAutoFocusOnOpen(): boolean;
|
|
5675
5808
|
emitAutoFocusOnClose(): boolean;
|
|
5676
5809
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenuSub, never>;
|
|
5677
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuSub, "[forMenuSub]", ["forMenuSub"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
5810
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenuSub, "[forMenuSub]", ["forMenuSub"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
5678
5811
|
}
|
|
5679
5812
|
|
|
5680
5813
|
/**
|
|
@@ -5801,13 +5934,13 @@ declare function provideForMenuDefaults(defaults?: Partial<ForMenuDefaults>): Pr
|
|
|
5801
5934
|
* <div forDropdownMenu [(open)]="open">
|
|
5802
5935
|
* <button forDropdownMenuTrigger>Options</button>
|
|
5803
5936
|
* @if (open()) {
|
|
5804
|
-
* <div forMenuContent
|
|
5937
|
+
* <div forMenuContent>…</div>
|
|
5805
5938
|
* }
|
|
5806
5939
|
* </div>
|
|
5807
5940
|
* ```
|
|
5808
5941
|
*
|
|
5809
5942
|
* Selecting a `[forMenuItem]` closes the menu (call `event.preventDefault()`
|
|
5810
|
-
* on the item's `(
|
|
5943
|
+
* on the item's `(activate)` event to keep it open). Escape, pointer-down
|
|
5811
5944
|
* outside, and focus-outside also close — each emits a vetoable event.
|
|
5812
5945
|
*
|
|
5813
5946
|
* Most of the directive's body (id generation, item collection, typeahead,
|
|
@@ -5861,6 +5994,12 @@ declare class ForDropdownMenu extends MenuOverlayHost implements ForMenuContext
|
|
|
5861
5994
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
5862
5995
|
/** When `true`, sets `data-detached=""` while the trigger is scrolled off-screen. */
|
|
5863
5996
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5997
|
+
/**
|
|
5998
|
+
* When `true` (default), the menu is clipped until floating-ui resolves
|
|
5999
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
6000
|
+
* `false` so a dramatic `animate.enter` plays from its first frame.
|
|
6001
|
+
*/
|
|
6002
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
5864
6003
|
/**
|
|
5865
6004
|
* When `true` (default), arrow-key navigation wraps from the last enabled
|
|
5866
6005
|
* item back to the first (and vice versa). When `false`, navigation stops
|
|
@@ -5913,7 +6052,7 @@ declare class ForDropdownMenu extends MenuOverlayHost implements ForMenuContext
|
|
|
5913
6052
|
* Call `preventDefault()` on the veto to keep the menu open regardless of
|
|
5914
6053
|
* which interaction triggered it.
|
|
5915
6054
|
*/
|
|
5916
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
6055
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
5917
6056
|
/**
|
|
5918
6057
|
* Fires just before the menu sends focus to its first / last enabled
|
|
5919
6058
|
* item on mount. Call `preventDefault()` on the emitted veto to skip
|
|
@@ -5932,7 +6071,7 @@ declare class ForDropdownMenu extends MenuOverlayHost implements ForMenuContext
|
|
|
5932
6071
|
/** Top-level: no parent menu. */
|
|
5933
6072
|
readonly parentMenu: null;
|
|
5934
6073
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDropdownMenu, never>;
|
|
5935
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDropdownMenu, "[forDropdownMenu]", ["forDropdownMenu"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
6074
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDropdownMenu, "[forDropdownMenu]", ["forDropdownMenu"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
5936
6075
|
}
|
|
5937
6076
|
|
|
5938
6077
|
/**
|
|
@@ -6083,7 +6222,7 @@ declare const FOR_CONTEXT_MENU_CONTEXT: InjectionToken<ForContextMenuContext>;
|
|
|
6083
6222
|
* <div forContextMenu [(open)]="open">
|
|
6084
6223
|
* <div forContextMenuTrigger class="region">Right-click here</div>
|
|
6085
6224
|
* @if (open()) {
|
|
6086
|
-
* <div forMenuContent
|
|
6225
|
+
* <div forMenuContent>…</div>
|
|
6087
6226
|
* }
|
|
6088
6227
|
* </div>
|
|
6089
6228
|
* ```
|
|
@@ -6133,6 +6272,12 @@ declare class ForContextMenu extends MenuOverlayHost implements ForMenuContext,
|
|
|
6133
6272
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
6134
6273
|
/** When `true`, sets `data-detached=""` while the virtual anchor is off-screen. */
|
|
6135
6274
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6275
|
+
/**
|
|
6276
|
+
* When `true` (default), the menu is clipped until floating-ui resolves
|
|
6277
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
6278
|
+
* `false` so a dramatic `animate.enter` plays from its first frame.
|
|
6279
|
+
*/
|
|
6280
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6136
6281
|
/**
|
|
6137
6282
|
* When `true` (default), arrow-key navigation wraps from the last enabled
|
|
6138
6283
|
* item back to the first (and vice versa). When `false`, navigation stops
|
|
@@ -6184,7 +6329,7 @@ declare class ForContextMenu extends MenuOverlayHost implements ForMenuContext,
|
|
|
6184
6329
|
* Call `preventDefault()` on the veto to keep the menu open regardless of
|
|
6185
6330
|
* which interaction triggered it.
|
|
6186
6331
|
*/
|
|
6187
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
6332
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
6188
6333
|
/**
|
|
6189
6334
|
* Fires just before the menu sends focus to its first / last enabled
|
|
6190
6335
|
* item on mount. Call `preventDefault()` on the emitted veto to skip
|
|
@@ -6215,7 +6360,7 @@ declare class ForContextMenu extends MenuOverlayHost implements ForMenuContext,
|
|
|
6215
6360
|
*/
|
|
6216
6361
|
setVirtualAnchorFromRect(rect: DOMRect): void;
|
|
6217
6362
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForContextMenu, never>;
|
|
6218
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForContextMenu, "[forContextMenu]", ["forContextMenu"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
6363
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForContextMenu, "[forContextMenu]", ["forContextMenu"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
6219
6364
|
}
|
|
6220
6365
|
|
|
6221
6366
|
/**
|
|
@@ -6335,6 +6480,7 @@ interface ForMenubarTriggerHandle extends CollectionHandle {
|
|
|
6335
6480
|
readonly arrowPadding: Signal<number>;
|
|
6336
6481
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
6337
6482
|
readonly hideWhenDetached: Signal<boolean>;
|
|
6483
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
6338
6484
|
readonly ariaLabel: Signal<string | null>;
|
|
6339
6485
|
}
|
|
6340
6486
|
/**
|
|
@@ -6464,6 +6610,7 @@ declare class MenubarMenuContext implements ForMenuContext {
|
|
|
6464
6610
|
readonly arrowPadding: Signal<number>;
|
|
6465
6611
|
readonly sticky: Signal<false | "partial" | "always">;
|
|
6466
6612
|
readonly hideWhenDetached: Signal<boolean>;
|
|
6613
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
6467
6614
|
readonly loop: Signal<boolean>;
|
|
6468
6615
|
readonly initialFocus: Signal<"first" | "last">;
|
|
6469
6616
|
readonly lastCloseReason: Signal<ForMenuCloseReason | null>;
|
|
@@ -6533,7 +6680,7 @@ declare class MenubarMenuContext implements ForMenuContext {
|
|
|
6533
6680
|
* <button forMenubarTrigger value="file">File</button>
|
|
6534
6681
|
* @if (open() === 'file') {
|
|
6535
6682
|
* <div forMenuContent>
|
|
6536
|
-
* <button forMenuItem (
|
|
6683
|
+
* <button forMenuItem (activate)="newDoc()">New</button>
|
|
6537
6684
|
* </div>
|
|
6538
6685
|
* }
|
|
6539
6686
|
*
|
|
@@ -6559,7 +6706,7 @@ declare class ForMenubar implements ForMenubarContext {
|
|
|
6559
6706
|
* dismissal, cross-menu nav), never on consumer writes via `[(value)]`.
|
|
6560
6707
|
*/
|
|
6561
6708
|
readonly value: _angular_core.ModelSignal<string>;
|
|
6562
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
6709
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
6563
6710
|
/**
|
|
6564
6711
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
6565
6712
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -6697,6 +6844,14 @@ declare class ForMenubarTrigger {
|
|
|
6697
6844
|
readonly arrowPadding: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
6698
6845
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
6699
6846
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6847
|
+
/**
|
|
6848
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
6849
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
6850
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
6851
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
6852
|
+
* computes).
|
|
6853
|
+
*/
|
|
6854
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6700
6855
|
/** Manual `aria-label` on `[forMenuContent]` when the trigger isn't a meaningful name. */
|
|
6701
6856
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
6702
6857
|
readonly triggerId: _angular_core.Signal<string>;
|
|
@@ -6711,7 +6866,7 @@ declare class ForMenubarTrigger {
|
|
|
6711
6866
|
protected onFocus(): void;
|
|
6712
6867
|
protected onPointerEnter(): void;
|
|
6713
6868
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForMenubarTrigger, never>;
|
|
6714
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenubarTrigger, "[forMenubarTrigger]", ["forMenubarTrigger"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6869
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForMenubarTrigger, "[forMenubarTrigger]", ["forMenubarTrigger"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6715
6870
|
}
|
|
6716
6871
|
|
|
6717
6872
|
/**
|
|
@@ -6804,7 +6959,7 @@ interface ForSelectContext<T = unknown> {
|
|
|
6804
6959
|
* anchored placement; `'item-aligned'` overlays the listbox so the
|
|
6805
6960
|
* selected option's center aligns with the trigger's center (macOS-style
|
|
6806
6961
|
* native `<select>`). All `side`/`align`/`*Offset`/`sticky`/
|
|
6807
|
-
* `hideWhenDetached`/`avoidCollisions` inputs are no-ops in
|
|
6962
|
+
* `hideWhenDetached`/`clipUntilPositioned`/`avoidCollisions` inputs are no-ops in
|
|
6808
6963
|
* `'item-aligned'` mode (only `collisionPadding` is honored).
|
|
6809
6964
|
*/
|
|
6810
6965
|
readonly position: Signal<'popper' | 'item-aligned'>;
|
|
@@ -6817,6 +6972,7 @@ interface ForSelectContext<T = unknown> {
|
|
|
6817
6972
|
readonly arrowPadding: Signal<number>;
|
|
6818
6973
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
6819
6974
|
readonly hideWhenDetached: Signal<boolean>;
|
|
6975
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
6820
6976
|
readonly loop: Signal<boolean>;
|
|
6821
6977
|
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
6822
6978
|
readonly dir: Signal<WritingDirection>;
|
|
@@ -7018,7 +7174,7 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7018
7174
|
* different; switching at runtime would need a remount, and the surface
|
|
7019
7175
|
* mounts lazily via `@if (open())` well after `modal` settles). Every
|
|
7020
7176
|
* anchored-positioning input — `position`, `side`, `align`, `sideOffset`,
|
|
7021
|
-
* `alignOffset`, `sticky`, `hideWhenDetached`, `avoidCollisions`,
|
|
7177
|
+
* `alignOffset`, `sticky`, `hideWhenDetached`, `clipUntilPositioned`, `avoidCollisions`,
|
|
7022
7178
|
* `collisionPadding`, `arrowPadding` — is a no-op in this mode. Default
|
|
7023
7179
|
* `false` (non-breaking). The swipe / snap-point sheet is deliberately not
|
|
7024
7180
|
* this mode — compose a `ForListbox` inside a `ForDrawer` for that.
|
|
@@ -7035,7 +7191,7 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7035
7191
|
* — visually the menu "snaps over" the trigger when opened, mirroring
|
|
7036
7192
|
* macOS native `<select>`. Falls back to the first enabled option when
|
|
7037
7193
|
* nothing is selected. `side`, `align`, `sideOffset`, `alignOffset`,
|
|
7038
|
-
* `sticky`, `hideWhenDetached`, and `avoidCollisions` are ignored in
|
|
7194
|
+
* `sticky`, `hideWhenDetached`, `clipUntilPositioned`, and `avoidCollisions` are ignored in
|
|
7039
7195
|
* this mode; only `collisionPadding` is honored.
|
|
7040
7196
|
*/
|
|
7041
7197
|
readonly position: _angular_core.InputSignal<"item-aligned" | "popper">;
|
|
@@ -7069,8 +7225,16 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7069
7225
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
7070
7226
|
/** When `true`, sets `data-detached=""` while the trigger is scrolled off-screen. */
|
|
7071
7227
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7228
|
+
/**
|
|
7229
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
7230
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
7231
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
7232
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
7233
|
+
* computes).
|
|
7234
|
+
*/
|
|
7235
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7072
7236
|
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7073
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
7237
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
7074
7238
|
/**
|
|
7075
7239
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
7076
7240
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -7096,7 +7260,7 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7096
7260
|
readonly escapeKeyDown: _angular_core.OutputEmitterRef<VetoableNativeEvent<KeyboardEvent>>;
|
|
7097
7261
|
readonly pointerDownOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent>>;
|
|
7098
7262
|
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
7099
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
7263
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
7100
7264
|
/**
|
|
7101
7265
|
* Fires just before the listbox sends focus to the selected option
|
|
7102
7266
|
* (or first / last enabled) on mount. Call `preventDefault()` on the
|
|
@@ -7184,7 +7348,7 @@ declare class ForSelect<T = string> extends FormUiControlBase implements FormVal
|
|
|
7184
7348
|
emitAutoFocusOnClose(): boolean;
|
|
7185
7349
|
markTouched(): void;
|
|
7186
7350
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForSelect<any>, never>;
|
|
7187
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForSelect<any>, "[forSelect]", ["forSelect"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToFormValue": { "alias": "itemToFormValue"; "required": false; "isSignal": true; }; "itemToLabel": { "alias": "itemToLabel"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "selectionFollowsFocus": { "alias": "selectionFollowsFocus"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
7351
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForSelect<any>, "[forSelect]", ["forSelect"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToFormValue": { "alias": "itemToFormValue"; "required": false; "isSignal": true; }; "itemToLabel": { "alias": "itemToLabel"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "selectionFollowsFocus": { "alias": "selectionFollowsFocus"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
7188
7352
|
}
|
|
7189
7353
|
|
|
7190
7354
|
/**
|
|
@@ -7527,7 +7691,7 @@ declare function provideForSelectDefaults(defaults?: Partial<ForSelectDefaults>)
|
|
|
7527
7691
|
* export class MySelect {}
|
|
7528
7692
|
* ```
|
|
7529
7693
|
*/
|
|
7530
|
-
declare const FOR_SELECT_HOST_DIRECTIVE_INPUTS: readonly ["value", "open", "align", "alignOffset", "ariaLabel", "arrowPadding", "avoidCollisions", "collisionPadding", "dir", "dirty", "disabled", "dismissible", "errors", "hideWhenDetached", "invalid", "isItemEqualToValue", "itemToFormValue", "itemToLabel", "loop", "modal", "multiple", "name", "orientation", "pending", "placeholder", "position", "readonly", "required", "returnFocus", "selectionFollowsFocus", "side", "sideOffset", "sticky", "touched"];
|
|
7694
|
+
declare const FOR_SELECT_HOST_DIRECTIVE_INPUTS: readonly ["value", "open", "align", "alignOffset", "ariaLabel", "arrowPadding", "avoidCollisions", "clipUntilPositioned", "collisionPadding", "dir", "dirty", "disabled", "dismissible", "errors", "hideWhenDetached", "invalid", "isItemEqualToValue", "itemToFormValue", "itemToLabel", "loop", "modal", "multiple", "name", "orientation", "pending", "placeholder", "position", "readonly", "required", "returnFocus", "selectionFollowsFocus", "side", "sideOffset", "sticky", "touched"];
|
|
7531
7695
|
/**
|
|
7532
7696
|
* Exact public names of every `ForSelect` output, the Signal Forms `touch` output
|
|
7533
7697
|
* included. Spread it into the `outputs` array of the same `hostDirectives` entry as
|
|
@@ -7632,6 +7796,7 @@ interface ForComboboxContext<T = unknown> {
|
|
|
7632
7796
|
readonly arrowPadding: Signal<number>;
|
|
7633
7797
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
7634
7798
|
readonly hideWhenDetached: Signal<boolean>;
|
|
7799
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
7635
7800
|
readonly loop: Signal<boolean>;
|
|
7636
7801
|
readonly inputId: Signal<string>;
|
|
7637
7802
|
readonly contentId: Signal<string>;
|
|
@@ -7967,6 +8132,14 @@ declare class ForCombobox<T = string> extends FormUiControlBase implements FormV
|
|
|
7967
8132
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
7968
8133
|
/** When `true`, sets `data-detached=""` while the input is scrolled off-screen. */
|
|
7969
8134
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8135
|
+
/**
|
|
8136
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
8137
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
8138
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
8139
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
8140
|
+
* computes).
|
|
8141
|
+
*/
|
|
8142
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7970
8143
|
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7971
8144
|
/** When true (default), Escape, pointer-down outside, and focus outside close the listbox. */
|
|
7972
8145
|
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -8007,7 +8180,7 @@ declare class ForCombobox<T = string> extends FormUiControlBase implements FormV
|
|
|
8007
8180
|
readonly escapeKeyDown: _angular_core.OutputEmitterRef<VetoableNativeEvent<KeyboardEvent>>;
|
|
8008
8181
|
readonly pointerDownOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent>>;
|
|
8009
8182
|
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
8010
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
8183
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
8011
8184
|
/**
|
|
8012
8185
|
* _(picker anatomy only)_ Fires just before focus moves into the input on
|
|
8013
8186
|
* open. Call `preventDefault()` on the emitted veto to skip the imperative
|
|
@@ -8123,7 +8296,7 @@ declare class ForCombobox<T = string> extends FormUiControlBase implements FormV
|
|
|
8123
8296
|
markTouched(): void;
|
|
8124
8297
|
protected onFocusOut(event: FocusEvent): void;
|
|
8125
8298
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCombobox<any>, never>;
|
|
8126
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCombobox<any>, "[forCombobox]", ["forCombobox"], { "query": { "alias": "query"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; "itemToFormValue": { "alias": "itemToFormValue"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "autocompleteMode": { "alias": "autocompleteMode"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "openOnQuery": { "alias": "openOnQuery"; "required": false; "isSignal": true; }; "commitOnSelect": { "alias": "commitOnSelect"; "required": false; "isSignal": true; }; "clearOnQueryChange": { "alias": "clearOnQueryChange"; "required": false; "isSignal": true; }; "autoHighlight": { "alias": "autoHighlight"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "visibleRange": { "alias": "visibleRange"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; "value": "valueChange"; "open": "openChange"; "scrollToIndex": "scrollToIndex"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
8299
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCombobox<any>, "[forCombobox]", ["forCombobox"], { "query": { "alias": "query"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; "itemToFormValue": { "alias": "itemToFormValue"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "autocompleteMode": { "alias": "autocompleteMode"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "openOnQuery": { "alias": "openOnQuery"; "required": false; "isSignal": true; }; "commitOnSelect": { "alias": "commitOnSelect"; "required": false; "isSignal": true; }; "clearOnQueryChange": { "alias": "clearOnQueryChange"; "required": false; "isSignal": true; }; "autoHighlight": { "alias": "autoHighlight"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "visibleRange": { "alias": "visibleRange"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; "value": "valueChange"; "open": "openChange"; "scrollToIndex": "scrollToIndex"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
8127
8300
|
}
|
|
8128
8301
|
|
|
8129
8302
|
/**
|
|
@@ -8745,7 +8918,7 @@ declare function provideForComboboxDefaults(defaults?: Partial<ForComboboxDefaul
|
|
|
8745
8918
|
* export class MyCombobox {}
|
|
8746
8919
|
* ```
|
|
8747
8920
|
*/
|
|
8748
|
-
declare const FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS: readonly ["query", "value", "open", "align", "alignOffset", "ariaLabel", "arrowPadding", "autoHighlight", "autocompleteMode", "avoidCollisions", "clearOnQueryChange", "collisionPadding", "commitOnSelect", "dir", "dirty", "disabled", "dismissible", "errors", "hideWhenDetached", "invalid", "isItemEqualToValue", "itemToFormValue", "itemToStringLabel", "loop", "multiple", "name", "openOnFocus", "openOnQuery", "pending", "readonly", "required", "returnFocus", "side", "sideOffset", "sticky", "totalCount", "visibleRange", "touched"];
|
|
8921
|
+
declare const FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS: readonly ["query", "value", "open", "align", "alignOffset", "ariaLabel", "arrowPadding", "autoHighlight", "autocompleteMode", "avoidCollisions", "clearOnQueryChange", "clipUntilPositioned", "collisionPadding", "commitOnSelect", "dir", "dirty", "disabled", "dismissible", "errors", "hideWhenDetached", "invalid", "isItemEqualToValue", "itemToFormValue", "itemToStringLabel", "loop", "multiple", "name", "openOnFocus", "openOnQuery", "pending", "readonly", "required", "returnFocus", "side", "sideOffset", "sticky", "totalCount", "visibleRange", "touched"];
|
|
8749
8922
|
/**
|
|
8750
8923
|
* Exact public names of every `ForCombobox` output, the Signal Forms `touch` output
|
|
8751
8924
|
* included. Spread it into the `outputs` array of the same `hostDirectives` entry as
|
|
@@ -8954,7 +9127,7 @@ declare class ForSlider extends FormUiControlBase implements Omit<FormValueContr
|
|
|
8954
9127
|
readonly minValue: _angular_core.Signal<number>;
|
|
8955
9128
|
/** Effective maximum (defaults `100`). Exposed to children via context. */
|
|
8956
9129
|
readonly maxValue: _angular_core.Signal<number>;
|
|
8957
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
9130
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
8958
9131
|
/**
|
|
8959
9132
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
8960
9133
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -9392,7 +9565,7 @@ interface ForToastContext {
|
|
|
9392
9565
|
*/
|
|
9393
9566
|
registerAction(handle: ForToastActionHandle): void;
|
|
9394
9567
|
unregisterAction(handle: ForToastActionHandle): void;
|
|
9395
|
-
/** Request close. Always honored — the directive emits `(
|
|
9568
|
+
/** Request close. Always honored — the directive emits `(dismiss)` and the consumer unmounts. */
|
|
9396
9569
|
requestClose(reason: ForToastCloseReason): void;
|
|
9397
9570
|
}
|
|
9398
9571
|
declare const FOR_TOAST_CONTEXT: InjectionToken<ForToastContext>;
|
|
@@ -9407,7 +9580,7 @@ type SwipeState = 'start' | 'move' | 'cancel' | 'end';
|
|
|
9407
9580
|
* The directive does **not** control its own visibility. The consumer
|
|
9408
9581
|
* mounts it (typically through `<for-toast-viewport>` for programmatic
|
|
9409
9582
|
* toasts, or directly with `@if` for declarative ones) and unmounts it
|
|
9410
|
-
* when `(
|
|
9583
|
+
* when `(dismiss)` fires. Pair the unmount with `animate.leave="…"` for
|
|
9411
9584
|
* exit animations.
|
|
9412
9585
|
*
|
|
9413
9586
|
* Behavior:
|
|
@@ -9436,7 +9609,7 @@ declare class ForToast implements ForToastContext {
|
|
|
9436
9609
|
* Set `false` for a sticky / forced-action toast: every ambient gesture is
|
|
9437
9610
|
* suppressed, no auto-dismiss timer is scheduled, and a `[forToastClose]`
|
|
9438
9611
|
* button (if present) becomes inert. The **action button stays live and is
|
|
9439
|
-
* the sanctioned dismissal path** — `[forToastAction]` still emits `(
|
|
9612
|
+
* the sanctioned dismissal path** — `[forToastAction]` still emits `(dismiss)`
|
|
9440
9613
|
* with reason `'action'` so a forced-action toast (e.g. "Update available —
|
|
9441
9614
|
* Reload") can be dismissed by the only control the user is meant to use.
|
|
9442
9615
|
* Programmatic close via `ForToastRef.dismiss()` is also always honored.
|
|
@@ -9461,12 +9634,12 @@ declare class ForToast implements ForToastContext {
|
|
|
9461
9634
|
*/
|
|
9462
9635
|
readonly swipeThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9463
9636
|
/** Emitted when the toast wants to be unmounted. The consumer reacts by removing it from the rendered list. */
|
|
9464
|
-
readonly
|
|
9637
|
+
readonly dismiss: _angular_core.OutputEmitterRef<ForToastCloseReason>;
|
|
9465
9638
|
/** Fired once on the move that arms the swipe. */
|
|
9466
9639
|
readonly swipeStart: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
9467
9640
|
/** Fired on every pointer move while the swipe is active. */
|
|
9468
9641
|
readonly swipeMove: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
9469
|
-
/** Fired on pointer-up after the threshold is crossed (immediately followed by `(
|
|
9642
|
+
/** Fired on pointer-up after the threshold is crossed (immediately followed by `(dismiss)`). */
|
|
9470
9643
|
readonly swipeEnd: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
9471
9644
|
/** Fired on pointer-up before the threshold, or on `pointercancel`. */
|
|
9472
9645
|
readonly swipeCancel: _angular_core.OutputEmitterRef<SwipeEventDetail>;
|
|
@@ -9478,7 +9651,7 @@ declare class ForToast implements ForToastContext {
|
|
|
9478
9651
|
readonly labelledBy: _angular_core.Signal<string | null>;
|
|
9479
9652
|
readonly describedBy: _angular_core.Signal<string | null>;
|
|
9480
9653
|
protected readonly computedRole: _angular_core.Signal<"alert" | "status">;
|
|
9481
|
-
protected readonly ariaLive: _angular_core.Signal<"off" | "
|
|
9654
|
+
protected readonly ariaLive: _angular_core.Signal<"off" | "assertive" | "polite">;
|
|
9482
9655
|
constructor();
|
|
9483
9656
|
registerLabel(handle: ForToastTextHandle): void;
|
|
9484
9657
|
unregisterLabel(handle: ForToastTextHandle): void;
|
|
@@ -9502,7 +9675,7 @@ declare class ForToast implements ForToastContext {
|
|
|
9502
9675
|
protected onMaybeResumeFocus(event: FocusEvent): void;
|
|
9503
9676
|
protected onKeyDown(event: KeyboardEvent): void;
|
|
9504
9677
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForToast, never>;
|
|
9505
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForToast, "[forToast]", ["forToast"], { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; }, { "
|
|
9678
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForToast, "[forToast]", ["forToast"], { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "swipeDirection": { "alias": "swipeDirection"; "required": false; "isSignal": true; }; "swipeThreshold": { "alias": "swipeThreshold"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; "swipeStart": "swipeStart"; "swipeMove": "swipeMove"; "swipeEnd": "swipeEnd"; "swipeCancel": "swipeCancel"; }, never, never, true, never>;
|
|
9506
9679
|
}
|
|
9507
9680
|
|
|
9508
9681
|
/**
|
|
@@ -9631,7 +9804,7 @@ declare class ForToastDescription {
|
|
|
9631
9804
|
* Action button inside a toast (e.g. "Undo"). Apply on a
|
|
9632
9805
|
* `<button type="button">` so Space / Enter dispatch a native click.
|
|
9633
9806
|
*
|
|
9634
|
-
* Clicking emits `(
|
|
9807
|
+
* Clicking emits `(dismiss)` from the parent `[forToast]` with reason
|
|
9635
9808
|
* `'action'`. Wire your action handler with `(click)` on this element
|
|
9636
9809
|
* itself — the close fires after your handler runs (via event order).
|
|
9637
9810
|
*
|
|
@@ -9664,7 +9837,7 @@ declare class ForToastAction {
|
|
|
9664
9837
|
|
|
9665
9838
|
/**
|
|
9666
9839
|
* Close button inside a toast. Apply on a `<button type="button">` so
|
|
9667
|
-
* Space / Enter dispatch a native click. Clicking emits `(
|
|
9840
|
+
* Space / Enter dispatch a native click. Clicking emits `(dismiss)` from
|
|
9668
9841
|
* the parent `[forToast]` with reason `'manual'`.
|
|
9669
9842
|
*
|
|
9670
9843
|
* The host carries `aria-label="Close"` by default; override with your
|
|
@@ -9797,7 +9970,7 @@ declare class ForSeparator {
|
|
|
9797
9970
|
* vertically; `vertical` splits content arranged horizontally. Defaults to
|
|
9798
9971
|
* `horizontal`, matching the `<hr>` element.
|
|
9799
9972
|
*/
|
|
9800
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
9973
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
9801
9974
|
/**
|
|
9802
9975
|
* When true, the separator is purely visual: it gets `role="none"` and no
|
|
9803
9976
|
* ARIA, so assistive tech treats surrounding content as a single flow. Use
|
|
@@ -9833,7 +10006,7 @@ declare function provideForSeparatorDefaults(defaults?: Partial<ForSeparatorDefa
|
|
|
9833
10006
|
* the focusable divider between two resizable panes. Carries `role="separator"`
|
|
9834
10007
|
* with live `aria-valuenow` / `aria-valuemin` / `aria-valuemax`, is tabbable,
|
|
9835
10008
|
* handles arrow keys / Page Up-Down / Home / End / (optional) Enter, and
|
|
9836
|
-
* supports pointer drag with `setPointerCapture`. Emits `(
|
|
10009
|
+
* supports pointer drag with `setPointerCapture`. Emits `(resizing)` on every
|
|
9837
10010
|
* mutation and `(resizeCommit)` once per key release / drag end.
|
|
9838
10011
|
*
|
|
9839
10012
|
* It is essentially a 1-D slider wearing a separator role; the static
|
|
@@ -9842,7 +10015,7 @@ declare function provideForSeparatorDefaults(defaults?: Partial<ForSeparatorDefa
|
|
|
9842
10015
|
*
|
|
9843
10016
|
* Pointer drag arms only after the pointer travels past a small dead-zone (a
|
|
9844
10017
|
* few px), so a plain click that fires a stray sub-threshold `pointermove`
|
|
9845
|
-
* never mutates the value — `(
|
|
10018
|
+
* never mutates the value — `(resizing)` won't fire on a jittery click.
|
|
9846
10019
|
*
|
|
9847
10020
|
* @example
|
|
9848
10021
|
* ```html
|
|
@@ -9870,7 +10043,7 @@ declare class ForPaneResizer {
|
|
|
9870
10043
|
* perpendicular to it. APG: a horizontal pane stack uses a vertical
|
|
9871
10044
|
* separator, and arrow keys move along the resize axis.
|
|
9872
10045
|
*/
|
|
9873
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
10046
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
9874
10047
|
/**
|
|
9875
10048
|
* Disables the resizer: it drops out of tab order, no keyboard or pointer
|
|
9876
10049
|
* mutation fires, and `aria-disabled` / `data-disabled` are reflected.
|
|
@@ -9886,7 +10059,7 @@ declare class ForPaneResizer {
|
|
|
9886
10059
|
* The `model()` change emitter (`(valueChange)`) follows the project-wide
|
|
9887
10060
|
* contract: it fires only on internal updates (keyboard, drag), never on
|
|
9888
10061
|
* consumer writes via `[(value)]` — observe transitions without binding
|
|
9889
|
-
* back. `(
|
|
10062
|
+
* back. `(resizing)` carries the same value with a verb-named alias for
|
|
9890
10063
|
* one-way wiring.
|
|
9891
10064
|
*/
|
|
9892
10065
|
readonly value: _angular_core.ModelSignal<number>;
|
|
@@ -9933,11 +10106,11 @@ declare class ForPaneResizer {
|
|
|
9933
10106
|
* `(valueChange)`; pick one or the other based on whether you want
|
|
9934
10107
|
* two-way binding (`[(value)]`) or one-shot observation.
|
|
9935
10108
|
*/
|
|
9936
|
-
readonly
|
|
10109
|
+
readonly resizing: _angular_core.OutputEmitterRef<number>;
|
|
9937
10110
|
/**
|
|
9938
10111
|
* Fires once at the end of a resize burst — when the user releases the
|
|
9939
10112
|
* pointer (or it is cancelled) or releases an arrow / page key. Useful for
|
|
9940
|
-
* persisting the final size after a drag, where `(
|
|
10113
|
+
* persisting the final size after a drag, where `(resizing)` may fire 60+
|
|
9941
10114
|
* times per second.
|
|
9942
10115
|
*/
|
|
9943
10116
|
readonly resizeCommit: _angular_core.OutputEmitterRef<number>;
|
|
@@ -9946,7 +10119,7 @@ declare class ForPaneResizer {
|
|
|
9946
10119
|
protected onKeyUp(_event: KeyboardEvent): void;
|
|
9947
10120
|
protected onPointerDown(event: PointerEvent): void;
|
|
9948
10121
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForPaneResizer, never>;
|
|
9949
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPaneResizer, "[forPaneResizer]", ["forPaneResizer"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "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; }; "largeStep": { "alias": "largeStep"; "required": false; "isSignal": true; }; "valueText": { "alias": "valueText"; "required": false; "isSignal": true; }; "controls": { "alias": "controls"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "
|
|
10122
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForPaneResizer, "[forPaneResizer]", ["forPaneResizer"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "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; }; "largeStep": { "alias": "largeStep"; "required": false; "isSignal": true; }; "valueText": { "alias": "valueText"; "required": false; "isSignal": true; }; "controls": { "alias": "controls"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "resizing": "resizing"; "resizeCommit": "resizeCommit"; }, never, never, true, never>;
|
|
9950
10123
|
}
|
|
9951
10124
|
|
|
9952
10125
|
/**
|
|
@@ -10537,7 +10710,7 @@ declare class ForToolbar implements ForToolbarContext {
|
|
|
10537
10710
|
* input on `ForListbox` / `ForMenubar`.
|
|
10538
10711
|
*/
|
|
10539
10712
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
10540
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
10713
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
10541
10714
|
/**
|
|
10542
10715
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
10543
10716
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -10642,7 +10815,7 @@ declare class ForToolbarSeparator {
|
|
|
10642
10815
|
* cross-axis of the parent toolbar (horizontal toolbar → vertical
|
|
10643
10816
|
* separator, and vice versa).
|
|
10644
10817
|
*/
|
|
10645
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
10818
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal" | undefined>;
|
|
10646
10819
|
/**
|
|
10647
10820
|
* When true, the separator is purely visual: it gets `role="none"` and no
|
|
10648
10821
|
* `aria-orientation`, so assistive tech treats surrounding content as a
|
|
@@ -10653,8 +10826,8 @@ declare class ForToolbarSeparator {
|
|
|
10653
10826
|
* Cross-axis of the parent toolbar — the orientation an unconfigured
|
|
10654
10827
|
* separator inherits.
|
|
10655
10828
|
*/
|
|
10656
|
-
readonly defaultOrientation: _angular_core.Signal<"
|
|
10657
|
-
protected readonly effectiveOrientation: _angular_core.Signal<"
|
|
10829
|
+
readonly defaultOrientation: _angular_core.Signal<"vertical" | "horizontal">;
|
|
10830
|
+
protected readonly effectiveOrientation: _angular_core.Signal<"vertical" | "horizontal">;
|
|
10658
10831
|
protected ariaOrientation(): 'vertical' | null;
|
|
10659
10832
|
constructor();
|
|
10660
10833
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForToolbarSeparator, never>;
|
|
@@ -10697,6 +10870,7 @@ interface ForHoverCardContext {
|
|
|
10697
10870
|
readonly arrowPadding: Signal<number>;
|
|
10698
10871
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
10699
10872
|
readonly hideWhenDetached: Signal<boolean>;
|
|
10873
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
10700
10874
|
readonly trigger: Signal<HTMLElement | null>;
|
|
10701
10875
|
readonly arrow: Signal<HTMLElement | null>;
|
|
10702
10876
|
registerTrigger(el: HTMLElement): void;
|
|
@@ -10814,6 +10988,14 @@ declare class ForHoverCard implements ForHoverCardContext {
|
|
|
10814
10988
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
10815
10989
|
/** When `true`, sets `data-detached=""` while the trigger is scrolled off-screen. */
|
|
10816
10990
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10991
|
+
/**
|
|
10992
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
10993
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
10994
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
10995
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
10996
|
+
* computes).
|
|
10997
|
+
*/
|
|
10998
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
10817
10999
|
/** Per-card override for open delay (ms). Falls back to coordinator (700ms). */
|
|
10818
11000
|
readonly openDelay: _angular_core.InputSignal<number | undefined>;
|
|
10819
11001
|
/** Per-card override for close delay (ms). Falls back to coordinator (300ms). */
|
|
@@ -10847,7 +11029,7 @@ declare class ForHoverCard implements ForHoverCardContext {
|
|
|
10847
11029
|
*/
|
|
10848
11030
|
emitEscapeKeyDown(event: KeyboardEvent): void;
|
|
10849
11031
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForHoverCard, never>;
|
|
10850
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForHoverCard, "[forHoverCard]", ["forHoverCard"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; }, never, never, true, never>;
|
|
11032
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForHoverCard, "[forHoverCard]", ["forHoverCard"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "_sideInput": { "alias": "side"; "required": false; "isSignal": true; }; "_alignInput": { "alias": "align"; "required": false; "isSignal": true; }; "_sideOffsetInput": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "_collisionPaddingInput": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "openDelay": { "alias": "openDelay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; }, never, never, true, never>;
|
|
10851
11033
|
}
|
|
10852
11034
|
|
|
10853
11035
|
/**
|
|
@@ -11133,7 +11315,7 @@ declare class ForNavigationMenu implements ForNavigationMenuContext {
|
|
|
11133
11315
|
* on consumer writes via `[(value)]`.
|
|
11134
11316
|
*/
|
|
11135
11317
|
readonly value: _angular_core.ModelSignal<string>;
|
|
11136
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
11318
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
11137
11319
|
/**
|
|
11138
11320
|
* Writing direction. When unset (default `null`), the inherited ambient
|
|
11139
11321
|
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
@@ -11797,9 +11979,18 @@ interface ForTreeContext {
|
|
|
11797
11979
|
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
11798
11980
|
readonly dir: Signal<WritingDirection>;
|
|
11799
11981
|
readonly selectionFollowsFocus: Signal<boolean>;
|
|
11982
|
+
/** Selection presentation: `'highlight'` (aria-selected) or `'checkbox'` (aria-checked). */
|
|
11983
|
+
readonly selectionMode: Signal<'highlight' | 'checkbox'>;
|
|
11984
|
+
/** Whether cascade selection is enabled (checkbox mode only). */
|
|
11985
|
+
readonly cascade: Signal<boolean>;
|
|
11800
11986
|
readonly roving: RovingTabindex;
|
|
11801
11987
|
isExpanded(value: string): boolean;
|
|
11802
11988
|
isSelected(value: string): boolean;
|
|
11989
|
+
/**
|
|
11990
|
+
* Tri-state check status of a node in checkbox mode: `'true'` / `'false'`, or
|
|
11991
|
+
* `'mixed'` for a cascade parent with some-but-not-all descendants checked.
|
|
11992
|
+
*/
|
|
11993
|
+
checkState(value: string): 'true' | 'false' | 'mixed';
|
|
11803
11994
|
/** Open or close a node, mutating the `expanded` array immutably. */
|
|
11804
11995
|
setExpanded(value: string, open: boolean): void;
|
|
11805
11996
|
/** Single mode replaces the selection; multi mode toggles the value. */
|
|
@@ -11872,6 +12063,10 @@ interface ForTreeItemContext {
|
|
|
11872
12063
|
readonly level: Signal<number>;
|
|
11873
12064
|
readonly expanded: Signal<boolean>;
|
|
11874
12065
|
readonly expandable: Signal<boolean>;
|
|
12066
|
+
/** Whether this node is in the root's selection set (its `aria-checked` / `aria-selected` state). */
|
|
12067
|
+
readonly selected: Signal<boolean>;
|
|
12068
|
+
/** Tri-state checkbox status of this node (`'true'` / `'false'` / `'mixed'`). */
|
|
12069
|
+
readonly checkState: Signal<'true' | 'false' | 'mixed'>;
|
|
11875
12070
|
/** Register a toggle. Presence makes the item expandable (D4). Returns an unregister fn. */
|
|
11876
12071
|
registerToggle(): () => void;
|
|
11877
12072
|
/** Set (or clear, on collapse) the nested `[forTreeGroup]` container. */
|
|
@@ -11932,7 +12127,27 @@ declare class ForTree implements ForTreeContext, ForTreeContainerContext {
|
|
|
11932
12127
|
/** Disables the whole tree: nodes are not selectable and report `aria-disabled`. */
|
|
11933
12128
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
11934
12129
|
/** Navigation axis. `'vertical'` (default) uses ArrowUp/Down for movement. */
|
|
11935
|
-
readonly orientation: _angular_core.InputSignal<"
|
|
12130
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
12131
|
+
/**
|
|
12132
|
+
* Selection presentation. `'highlight'` (default) keeps the `aria-selected`
|
|
12133
|
+
* contract; `'checkbox'` switches each `treeitem` to `aria-checked` and is
|
|
12134
|
+
* inherently multi-select (each node toggles independently).
|
|
12135
|
+
*/
|
|
12136
|
+
readonly selectionMode: _angular_core.InputSignal<"checkbox" | "highlight">;
|
|
12137
|
+
/**
|
|
12138
|
+
* Enables cascade selection in `selectionMode="checkbox"`: checking or
|
|
12139
|
+
* unchecking a node propagates to all its descendants, and a parent derives
|
|
12140
|
+
* `aria-checked="mixed"` when only some descendants are checked. Ignored in
|
|
12141
|
+
* `'highlight'` mode. Requires {@link ForTree.descendantsOf}. Default `false`.
|
|
12142
|
+
*/
|
|
12143
|
+
readonly cascade: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12144
|
+
/**
|
|
12145
|
+
* Returns the selectable descendant values of a node (excluding the node
|
|
12146
|
+
* itself), used to cascade selection and derive `'mixed'` across collapsed —
|
|
12147
|
+
* possibly unmounted — subtrees. **Required** when {@link ForTree.cascade} is
|
|
12148
|
+
* `true`; the tree throws a `[forty-cdk/tree]` error otherwise.
|
|
12149
|
+
*/
|
|
12150
|
+
readonly descendantsOf: _angular_core.InputSignal<((value: string) => readonly string[]) | undefined>;
|
|
11936
12151
|
/**
|
|
11937
12152
|
* Manual `aria-label` for the tree. Use this when no visible label element
|
|
11938
12153
|
* exists; otherwise prefer pointing `aria-labelledby` at one. A `null`
|
|
@@ -11967,6 +12182,13 @@ declare class ForTree implements ForTreeContext, ForTreeContainerContext {
|
|
|
11967
12182
|
constructor();
|
|
11968
12183
|
isExpanded(value: string): boolean;
|
|
11969
12184
|
isSelected(value: string): boolean;
|
|
12185
|
+
/**
|
|
12186
|
+
* Tri-state check status of a node in `selectionMode="checkbox"`. Without
|
|
12187
|
+
* cascade (or in `'highlight'` mode) returns `'true'` / `'false'` by direct
|
|
12188
|
+
* membership. With cascade a parent returns `'true'` when all its descendants
|
|
12189
|
+
* are checked, `'false'` when none are, and `'mixed'` otherwise.
|
|
12190
|
+
*/
|
|
12191
|
+
checkState(value: string): 'true' | 'false' | 'mixed';
|
|
11970
12192
|
setExpanded(value: string, open: boolean): void;
|
|
11971
12193
|
select(value: string): void;
|
|
11972
12194
|
navigate(currentItem: HTMLElement, action: ListNavigationAction): void;
|
|
@@ -11982,7 +12204,7 @@ declare class ForTree implements ForTreeContext, ForTreeContainerContext {
|
|
|
11982
12204
|
unregisterItem(handle: ForTreeItemHandle): void;
|
|
11983
12205
|
indexOfHost(el: HTMLElement): number;
|
|
11984
12206
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTree, never>;
|
|
11985
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTree, "[forTree]", ["forTree"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "selectionFollowsFocus": { "alias": "selectionFollowsFocus"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "expanded": "expandedChange"; }, never, never, true, never>;
|
|
12207
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTree, "[forTree]", ["forTree"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "cascade": { "alias": "cascade"; "required": false; "isSignal": true; }; "descendantsOf": { "alias": "descendantsOf"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "selectionFollowsFocus": { "alias": "selectionFollowsFocus"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "expanded": "expandedChange"; }, never, never, true, never>;
|
|
11986
12208
|
}
|
|
11987
12209
|
|
|
11988
12210
|
/**
|
|
@@ -12010,6 +12232,14 @@ declare class ForTreeItem implements ForTreeItemContext {
|
|
|
12010
12232
|
readonly expandable: _angular_core.Signal<boolean>;
|
|
12011
12233
|
readonly expanded: _angular_core.Signal<boolean>;
|
|
12012
12234
|
readonly selected: _angular_core.Signal<boolean>;
|
|
12235
|
+
/** True when the root tree is in `'checkbox'` selection mode. */
|
|
12236
|
+
readonly checkboxMode: _angular_core.Signal<boolean>;
|
|
12237
|
+
/**
|
|
12238
|
+
* Tri-state checkbox status of this node — `'true'` / `'false'`, or `'mixed'`
|
|
12239
|
+
* when cascade is on and only some descendants are checked. Drives the
|
|
12240
|
+
* checkbox anatomy; meaningful only in `selectionMode="checkbox"`.
|
|
12241
|
+
*/
|
|
12242
|
+
readonly checkState: _angular_core.Signal<"true" | "false" | "mixed">;
|
|
12013
12243
|
/** True when this node is the roving-tabindex active candidate. */
|
|
12014
12244
|
readonly highlighted: _angular_core.Signal<boolean>;
|
|
12015
12245
|
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
@@ -12113,6 +12343,64 @@ declare const FOR_TREE_DEFAULTS: _angular_core.InjectionToken<ForTreeDefaults>;
|
|
|
12113
12343
|
*/
|
|
12114
12344
|
declare function provideForTreeDefaults(defaults?: Partial<ForTreeDefaults>): Provider[];
|
|
12115
12345
|
|
|
12346
|
+
/**
|
|
12347
|
+
* Visible checkbox surface inside a `ForTreeItem`, used in the tree's
|
|
12348
|
+
* `selectionMode="checkbox"` anatomy. Decorative for assistive tech — the
|
|
12349
|
+
* enclosing `treeitem` owns `aria-checked`, so this element is `aria-hidden`
|
|
12350
|
+
* and not separately focusable. Reflects `data-state="checked" | "unchecked" |
|
|
12351
|
+
* "indeterminate"` for styling. Clicking it toggles the node's selection and
|
|
12352
|
+
* moves roving focus to the node; place a `[forTreeItemCheckboxIndicator]`
|
|
12353
|
+
* inside for the glyph.
|
|
12354
|
+
*/
|
|
12355
|
+
declare class ForTreeItemCheckbox {
|
|
12356
|
+
protected readonly item: forty_cdk.ForTreeItemContext;
|
|
12357
|
+
protected readonly dataState: _angular_core.Signal<"checked" | "unchecked" | "indeterminate">;
|
|
12358
|
+
protected onClick(event: MouseEvent): void;
|
|
12359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTreeItemCheckbox, never>;
|
|
12360
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTreeItemCheckbox, "[forTreeItemCheckbox]", ["forTreeItemCheckbox"], {}, {}, never, never, true, never>;
|
|
12361
|
+
}
|
|
12362
|
+
|
|
12363
|
+
/**
|
|
12364
|
+
* Optional glyph slot inside a `[forTreeItemCheckbox]`. Shows while the node
|
|
12365
|
+
* is checked or indeterminate (`data-state="checked"` or `"indeterminate"`);
|
|
12366
|
+
* self-hides only when fully unchecked. Hidden state is enforced with an inline
|
|
12367
|
+
* `display: none` (which beats any author `display` rule applied via a class)
|
|
12368
|
+
* in addition to the `hidden` attribute that removes it from the a11y tree.
|
|
12369
|
+
* Mirrors `data-state="checked" | "unchecked" | "indeterminate"` from the item.
|
|
12370
|
+
*/
|
|
12371
|
+
declare class ForTreeItemCheckboxIndicator {
|
|
12372
|
+
protected readonly item: forty_cdk.ForTreeItemContext;
|
|
12373
|
+
protected readonly shown: _angular_core.Signal<boolean>;
|
|
12374
|
+
protected readonly dataState: _angular_core.Signal<"checked" | "unchecked" | "indeterminate">;
|
|
12375
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTreeItemCheckboxIndicator, never>;
|
|
12376
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTreeItemCheckboxIndicator, "[forTreeItemCheckboxIndicator]", ["forTreeItemCheckboxIndicator"], {}, {}, never, never, true, never>;
|
|
12377
|
+
}
|
|
12378
|
+
|
|
12379
|
+
/**
|
|
12380
|
+
* Returns the de-duplicated ancestor values that must be added to a tree's
|
|
12381
|
+
* `expanded` set so every matched node becomes visible.
|
|
12382
|
+
*
|
|
12383
|
+
* Pure and headless: filtering stays consumer-owned — the consumer matches its
|
|
12384
|
+
* own data, re-renders the tree, and feeds its hierarchy through `ancestorsOf`.
|
|
12385
|
+
* Merge the result into `[(expanded)]`:
|
|
12386
|
+
*
|
|
12387
|
+
* ```ts
|
|
12388
|
+
* this.expanded.update((open) => [
|
|
12389
|
+
* ...new Set([...open, ...expandToReveal(matches, this.ancestorsOf)]),
|
|
12390
|
+
* ]);
|
|
12391
|
+
* ```
|
|
12392
|
+
*
|
|
12393
|
+
* The matched nodes themselves are not returned — a node is made visible by
|
|
12394
|
+
* expanding its ancestors, so a root-level match contributes nothing.
|
|
12395
|
+
*
|
|
12396
|
+
* @param matches The values of the nodes that matched the current filter.
|
|
12397
|
+
* @param ancestorsOf Returns a node's ancestor values (the node itself excluded);
|
|
12398
|
+
* order is irrelevant and a root node returns an empty list.
|
|
12399
|
+
* @returns The unique ancestor values to expand. Empty when `matches` is empty
|
|
12400
|
+
* or every match is a root.
|
|
12401
|
+
*/
|
|
12402
|
+
declare function expandToReveal(matches: Iterable<string>, ancestorsOf: (value: string) => readonly string[]): readonly string[];
|
|
12403
|
+
|
|
12116
12404
|
/**
|
|
12117
12405
|
* The coordination surface a `[forNumberInput]` exposes to its siblings. The
|
|
12118
12406
|
* auxiliary `[forNumberInputIncrement]` / `[forNumberInputDecrement]` buttons
|
|
@@ -12884,6 +13172,8 @@ declare function injectDateAdapter<D>(piece: string): DateAdapter<D>;
|
|
|
12884
13172
|
*/
|
|
12885
13173
|
declare function assertTimeCapable<D>(adapter: DateAdapter<D>, piece: string): TimeCapableDateAdapter<D>;
|
|
12886
13174
|
|
|
13175
|
+
/** The active display mode of a `ForCalendar`. */
|
|
13176
|
+
type CalendarView = 'day' | 'month' | 'year';
|
|
12887
13177
|
/**
|
|
12888
13178
|
* An inclusive date range where `start <= end` (day-granular). Used by
|
|
12889
13179
|
* `ForCalendar` and `ForDatePicker` in `selectionMode="range"`.
|
|
@@ -12896,6 +13186,56 @@ interface CalendarDateRange<D> {
|
|
|
12896
13186
|
/** Inclusive end of the range (`>= start`). */
|
|
12897
13187
|
readonly end: D;
|
|
12898
13188
|
}
|
|
13189
|
+
/** A selectable year in the year picker grid. */
|
|
13190
|
+
interface CalendarYearOption {
|
|
13191
|
+
/** The full year (e.g. `2026`). */
|
|
13192
|
+
readonly value: number;
|
|
13193
|
+
/** Whether the entire year falls outside `[min, max]`. */
|
|
13194
|
+
readonly disabled: boolean;
|
|
13195
|
+
}
|
|
13196
|
+
/** A row of three months in the month picker grid. */
|
|
13197
|
+
interface CalendarMonthRow {
|
|
13198
|
+
/** Stable key for `@for` tracking. */
|
|
13199
|
+
readonly key: string;
|
|
13200
|
+
/** The (up to three) month options in this row. */
|
|
13201
|
+
readonly months: readonly CalendarMonthOption[];
|
|
13202
|
+
}
|
|
13203
|
+
/** A row of three years in the year picker grid. */
|
|
13204
|
+
interface CalendarYearRow {
|
|
13205
|
+
/** Stable key for `@for` tracking. */
|
|
13206
|
+
readonly key: string;
|
|
13207
|
+
/** The (up to three) year options in this row. */
|
|
13208
|
+
readonly years: readonly CalendarYearOption[];
|
|
13209
|
+
}
|
|
13210
|
+
/**
|
|
13211
|
+
* Handle a `ForCalendarMonthCell` registers with the root so the root can move
|
|
13212
|
+
* DOM focus to the correct cell during keyboard navigation and view switches.
|
|
13213
|
+
*/
|
|
13214
|
+
interface ForCalendarMonthCellHandle {
|
|
13215
|
+
/** The `role="gridcell"` host element. */
|
|
13216
|
+
readonly host: HTMLElement;
|
|
13217
|
+
/** The month this cell represents, **1-12**. */
|
|
13218
|
+
readonly month: Signal<number>;
|
|
13219
|
+
}
|
|
13220
|
+
/**
|
|
13221
|
+
* Handle a `ForCalendarYearCell` registers with the root so the root can move
|
|
13222
|
+
* DOM focus to the correct cell during keyboard navigation and view switches.
|
|
13223
|
+
*/
|
|
13224
|
+
interface ForCalendarYearCellHandle {
|
|
13225
|
+
/** The `role="gridcell"` host element. */
|
|
13226
|
+
readonly host: HTMLElement;
|
|
13227
|
+
/** The year this cell represents. */
|
|
13228
|
+
readonly year: Signal<number>;
|
|
13229
|
+
}
|
|
13230
|
+
/** A selectable month in the visible year, for building a month dropdown. */
|
|
13231
|
+
interface CalendarMonthOption {
|
|
13232
|
+
/** Month number, **1-12**. */
|
|
13233
|
+
readonly value: number;
|
|
13234
|
+
/** Localized month name via the adapter (e.g. `"June"`). */
|
|
13235
|
+
readonly label: string;
|
|
13236
|
+
/** Whether the whole month falls outside `[min, max]`. */
|
|
13237
|
+
readonly disabled: boolean;
|
|
13238
|
+
}
|
|
12899
13239
|
/** A weekday column header in the calendar grid. */
|
|
12900
13240
|
interface CalendarWeekday {
|
|
12901
13241
|
/** Stable key for `@for` tracking (the **0-6** weekday index as a string). */
|
|
@@ -12988,6 +13328,66 @@ interface ForCalendarContext<D> {
|
|
|
12988
13328
|
readonly isPreviousMonthDisabled: Signal<boolean>;
|
|
12989
13329
|
/** Whether the next-month button should be disabled (bounded by `max`). */
|
|
12990
13330
|
readonly isNextMonthDisabled: Signal<boolean>;
|
|
13331
|
+
/** The visible month's full year (e.g. `2026`). */
|
|
13332
|
+
readonly visibleYear: Signal<number>;
|
|
13333
|
+
/** The visible month, **1-12**. */
|
|
13334
|
+
readonly visibleMonthNumber: Signal<number>;
|
|
13335
|
+
/** Twelve localized, bounds-aware month options for the visible year. */
|
|
13336
|
+
readonly monthOptions: Signal<readonly CalendarMonthOption[]>;
|
|
13337
|
+
/** Set the visible month to (`year`, `month`) without selecting. `month` is **1-12**. */
|
|
13338
|
+
goTo(year: number, month: number): void;
|
|
13339
|
+
/** Set the visible month within the current visible year. `month` is **1-12**. */
|
|
13340
|
+
goToMonth(month: number): void;
|
|
13341
|
+
/** Set the visible year, keeping the current visible month. */
|
|
13342
|
+
goToYear(year: number): void;
|
|
13343
|
+
/** Whether every day of `month` (**1-12**) in the visible year is out of `[min, max]`. */
|
|
13344
|
+
isMonthDisabled(month: number): boolean;
|
|
13345
|
+
/** Whether every day of `year` is out of `[min, max]`. */
|
|
13346
|
+
isYearDisabled(year: number): boolean;
|
|
13347
|
+
/** Active calendar view; `'day'` (default), `'month'`, or `'year'`. */
|
|
13348
|
+
readonly view: Signal<CalendarView>;
|
|
13349
|
+
/** Number of years the year picker shows as an aligned block. Default `12`. */
|
|
13350
|
+
readonly yearBlockSize: Signal<number>;
|
|
13351
|
+
/** Rows of the month picker grid (3 columns) for the visible year. */
|
|
13352
|
+
readonly monthRows: Signal<readonly CalendarMonthRow[]>;
|
|
13353
|
+
/** Rows of the year picker grid (3 columns) for the aligned block containing the visible year. */
|
|
13354
|
+
readonly yearRows: Signal<readonly CalendarYearRow[]>;
|
|
13355
|
+
/** Label for the active view shown on the view-trigger button. */
|
|
13356
|
+
readonly viewTriggerLabel: Signal<string>;
|
|
13357
|
+
/** Whether the prev button should be disabled for the active view. */
|
|
13358
|
+
readonly isPreviousDisabled: Signal<boolean>;
|
|
13359
|
+
/** Whether the next button should be disabled for the active view. */
|
|
13360
|
+
readonly isNextDisabled: Signal<boolean>;
|
|
13361
|
+
/** Cycle the view one step coarser: `day → month → year`, clamped at `'year'`. */
|
|
13362
|
+
cycleView(): void;
|
|
13363
|
+
/** Drill into a month (1-12): navigate to it and switch to day view. No-op when disabled/read-only/out of bounds. */
|
|
13364
|
+
selectMonth(month: number): void;
|
|
13365
|
+
/** Drill into a year: navigate to it and switch to month view. No-op when disabled/read-only/out of bounds. */
|
|
13366
|
+
selectYear(year: number): void;
|
|
13367
|
+
/** Page backward by one month / year / block depending on the active view. */
|
|
13368
|
+
pagePrevious(): void;
|
|
13369
|
+
/** Page forward by one month / year / block depending on the active view. */
|
|
13370
|
+
pageNext(): void;
|
|
13371
|
+
/** Whether `month` (1-12) in the visible year is the selected date's month. */
|
|
13372
|
+
isMonthSelected(month: number): boolean;
|
|
13373
|
+
/** Whether `month` (1-12) is today's month in the visible year. */
|
|
13374
|
+
isMonthToday(month: number): boolean;
|
|
13375
|
+
/** Whether `month` (1-12) is the roving-tabindex focused month. */
|
|
13376
|
+
isMonthFocused(month: number): boolean;
|
|
13377
|
+
/** Whether `year` is the selected date's year. */
|
|
13378
|
+
isYearSelected(year: number): boolean;
|
|
13379
|
+
/** Whether `year` is today's year. */
|
|
13380
|
+
isYearToday(year: number): boolean;
|
|
13381
|
+
/** Whether `year` is the roving-tabindex focused year. */
|
|
13382
|
+
isYearFocused(year: number): boolean;
|
|
13383
|
+
/** Handle a keydown originating on a month cell. */
|
|
13384
|
+
handleMonthCellKeydown(event: KeyboardEvent, month: number): void;
|
|
13385
|
+
/** Handle a keydown originating on a year cell. */
|
|
13386
|
+
handleYearCellKeydown(event: KeyboardEvent, year: number): void;
|
|
13387
|
+
registerMonthCell(handle: ForCalendarMonthCellHandle): void;
|
|
13388
|
+
unregisterMonthCell(handle: ForCalendarMonthCellHandle): void;
|
|
13389
|
+
registerYearCell(handle: ForCalendarYearCellHandle): void;
|
|
13390
|
+
unregisterYearCell(handle: ForCalendarYearCellHandle): void;
|
|
12991
13391
|
/** Whether `date` is the currently selected value. */
|
|
12992
13392
|
isSelected(date: D): boolean;
|
|
12993
13393
|
/** Whether `date` is today. */
|
|
@@ -13143,6 +13543,18 @@ declare class ForCalendar<D> implements ForCalendarContext<D> {
|
|
|
13143
13543
|
* flow and exposes the result through `[(range)]`.
|
|
13144
13544
|
*/
|
|
13145
13545
|
readonly selectionMode: _angular_core.InputSignal<"single" | "range">;
|
|
13546
|
+
/**
|
|
13547
|
+
* Active calendar view. `'day'` (default) shows the date grid; `'month'` and
|
|
13548
|
+
* `'year'` show the month / year picker grids. Two-way bindable; the `model()`
|
|
13549
|
+
* change emitter (`(viewChange)`) fires only when the calendar itself cycles
|
|
13550
|
+
* or drills the view, never on consumer writes via `[(view)]`.
|
|
13551
|
+
*/
|
|
13552
|
+
readonly view: _angular_core.ModelSignal<CalendarView>;
|
|
13553
|
+
/**
|
|
13554
|
+
* Number of years the year view shows, as an aligned block containing the
|
|
13555
|
+
* visible year. Default `12`.
|
|
13556
|
+
*/
|
|
13557
|
+
readonly yearBlockSize: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
13146
13558
|
/**
|
|
13147
13559
|
* Two-way bindable committed date range, or `null`. Only used when
|
|
13148
13560
|
* `selectionMode="range"`. The `model()` change emitter (`(rangeChange)`)
|
|
@@ -13189,10 +13601,44 @@ declare class ForCalendar<D> implements ForCalendarContext<D> {
|
|
|
13189
13601
|
*/
|
|
13190
13602
|
adoptHeadingId(el: HTMLElement): void;
|
|
13191
13603
|
readonly visibleMonthLabel: _angular_core.Signal<string>;
|
|
13604
|
+
/** The visible month's full year (e.g. `2026`). */
|
|
13605
|
+
readonly visibleYear: _angular_core.Signal<number>;
|
|
13606
|
+
/** The visible month, **1-12**. */
|
|
13607
|
+
readonly visibleMonthNumber: _angular_core.Signal<number>;
|
|
13608
|
+
/**
|
|
13609
|
+
* Twelve entries for the visible year — each a localized month name plus
|
|
13610
|
+
* whether the whole month falls outside `[min, max]`. Tracks {@link visibleYear}.
|
|
13611
|
+
* Build native `<select>` month dropdowns from it.
|
|
13612
|
+
*/
|
|
13613
|
+
readonly monthOptions: _angular_core.Signal<readonly CalendarMonthOption[]>;
|
|
13614
|
+
/** Rows of the month picker grid (3 columns) for the visible year. */
|
|
13615
|
+
readonly monthRows: _angular_core.Signal<readonly CalendarMonthRow[]>;
|
|
13616
|
+
/** Rows of the year picker grid (3 columns) for the aligned block containing the visible year. */
|
|
13617
|
+
readonly yearRows: _angular_core.Signal<readonly CalendarYearRow[]>;
|
|
13618
|
+
/** Label for the view trigger / heading, reflecting the active view. */
|
|
13619
|
+
readonly viewTriggerLabel: _angular_core.Signal<string>;
|
|
13620
|
+
readonly isPreviousDisabled: _angular_core.Signal<boolean>;
|
|
13621
|
+
readonly isNextDisabled: _angular_core.Signal<boolean>;
|
|
13192
13622
|
readonly weekDays: _angular_core.Signal<readonly CalendarWeekday[]>;
|
|
13193
13623
|
readonly weeks: _angular_core.Signal<readonly CalendarWeek<D>[]>;
|
|
13194
13624
|
readonly isPreviousMonthDisabled: _angular_core.Signal<boolean>;
|
|
13195
13625
|
readonly isNextMonthDisabled: _angular_core.Signal<boolean>;
|
|
13626
|
+
/**
|
|
13627
|
+
* Whether every day of `month` (**1-12**) in the visible year falls outside
|
|
13628
|
+
* `[min, max]`. Use it to disable a month in a custom dropdown.
|
|
13629
|
+
*/
|
|
13630
|
+
isMonthDisabled(month: number): boolean;
|
|
13631
|
+
/**
|
|
13632
|
+
* Whether every day of `year` falls outside `[min, max]`. Use it to disable a
|
|
13633
|
+
* year in a custom dropdown.
|
|
13634
|
+
*/
|
|
13635
|
+
isYearDisabled(year: number): boolean;
|
|
13636
|
+
isMonthSelected(month: number): boolean;
|
|
13637
|
+
isMonthToday(month: number): boolean;
|
|
13638
|
+
isMonthFocused(month: number): boolean;
|
|
13639
|
+
isYearSelected(year: number): boolean;
|
|
13640
|
+
isYearToday(year: number): boolean;
|
|
13641
|
+
isYearFocused(year: number): boolean;
|
|
13196
13642
|
isSelected(date: D): boolean;
|
|
13197
13643
|
isRangeStart(date: D): boolean;
|
|
13198
13644
|
isRangeEnd(date: D): boolean;
|
|
@@ -13206,20 +13652,58 @@ declare class ForCalendar<D> implements ForCalendarContext<D> {
|
|
|
13206
13652
|
getDateLabel(date: D): string;
|
|
13207
13653
|
selectDate(date: D): void;
|
|
13208
13654
|
pageMonths(delta: number): void;
|
|
13655
|
+
/**
|
|
13656
|
+
* Set the visible month to (`year`, `month`) without selecting a date.
|
|
13657
|
+
* `month` is **1-12**. Re-applies the user's intended day-of-month (clamped to
|
|
13658
|
+
* the target month's length), clamps the result into `[min, max]`, and
|
|
13659
|
+
* announces the new period politely when the visible month changes. Keeps DOM
|
|
13660
|
+
* focus on the caller — it does not move focus into the grid. A no-op while the
|
|
13661
|
+
* calendar is disabled.
|
|
13662
|
+
*/
|
|
13663
|
+
goTo(year: number, month: number): void;
|
|
13664
|
+
/** Set the visible month within the current visible year. `month` is **1-12**. */
|
|
13665
|
+
goToMonth(month: number): void;
|
|
13666
|
+
/** Set the visible year, keeping the current visible month. */
|
|
13667
|
+
goToYear(year: number): void;
|
|
13209
13668
|
handleCellKeydown(event: KeyboardEvent, fromDate: D): void;
|
|
13669
|
+
/**
|
|
13670
|
+
* Cycle the view one step coarser: `day → month → year`, clamped at `'year'`.
|
|
13671
|
+
* No-op when the whole calendar is disabled.
|
|
13672
|
+
*/
|
|
13673
|
+
cycleView(): void;
|
|
13674
|
+
/**
|
|
13675
|
+
* Select a whole month (1-12): navigate to it within the current visible year
|
|
13676
|
+
* and switch the view to `'day'`. No-op when the calendar is disabled /
|
|
13677
|
+
* read-only or the month is out of `[min, max]`.
|
|
13678
|
+
*/
|
|
13679
|
+
selectMonth(month: number): void;
|
|
13680
|
+
/**
|
|
13681
|
+
* Select a whole year: navigate to it and switch the view to `'month'`. No-op
|
|
13682
|
+
* when the calendar is disabled / read-only or the year is out of `[min, max]`.
|
|
13683
|
+
*/
|
|
13684
|
+
selectYear(year: number): void;
|
|
13685
|
+
/** Page backward by one month / year / block depending on the active view. */
|
|
13686
|
+
pagePrevious(): void;
|
|
13687
|
+
/** Page forward by one month / year / block depending on the active view. */
|
|
13688
|
+
pageNext(): void;
|
|
13210
13689
|
/**
|
|
13211
13690
|
* Move DOM focus to the roving cell — the gridcell carrying the tab stop,
|
|
13212
|
-
* i.e. the one matching {@link focusedDate}
|
|
13213
|
-
*
|
|
13214
|
-
* an overlay host wrapping the calendar can
|
|
13215
|
-
*
|
|
13216
|
-
* waiting for a render.
|
|
13691
|
+
* i.e. the one matching {@link focusedDate} (day view) or the highlighted
|
|
13692
|
+
* month / year cell (month / year view). Returns `false` when no matching
|
|
13693
|
+
* cell is currently rendered, so an overlay host wrapping the calendar can
|
|
13694
|
+
* fall back to its own focus logic.
|
|
13217
13695
|
*/
|
|
13218
13696
|
focusActiveCell(): boolean;
|
|
13219
13697
|
registerCell(handle: ForCalendarCellHandle<D>): void;
|
|
13220
13698
|
unregisterCell(handle: ForCalendarCellHandle<D>): void;
|
|
13699
|
+
handleMonthCellKeydown(event: KeyboardEvent, fromMonth: number): void;
|
|
13700
|
+
handleYearCellKeydown(event: KeyboardEvent, fromYear: number): void;
|
|
13701
|
+
registerMonthCell(handle: ForCalendarMonthCellHandle): void;
|
|
13702
|
+
unregisterMonthCell(handle: ForCalendarMonthCellHandle): void;
|
|
13703
|
+
registerYearCell(handle: ForCalendarYearCellHandle): void;
|
|
13704
|
+
unregisterYearCell(handle: ForCalendarYearCellHandle): void;
|
|
13221
13705
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendar<any>, never>;
|
|
13222
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendar<any>, "[forCalendar]", ["forCalendar"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "dateLabel": { "alias": "dateLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "minRangeLength": { "alias": "minRangeLength"; "required": false; "isSignal": true; }; "maxRangeLength": { "alias": "maxRangeLength"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "range": "rangeChange"; }, never, never, true, never>;
|
|
13706
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendar<any>, "[forCalendar]", ["forCalendar"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "dateLabel": { "alias": "dateLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "yearBlockSize": { "alias": "yearBlockSize"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "minRangeLength": { "alias": "minRangeLength"; "required": false; "isSignal": true; }; "maxRangeLength": { "alias": "maxRangeLength"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "view": "viewChange"; "range": "rangeChange"; }, never, never, true, never>;
|
|
13223
13707
|
}
|
|
13224
13708
|
|
|
13225
13709
|
/**
|
|
@@ -13320,13 +13804,14 @@ declare class ForCalendarHeading {
|
|
|
13320
13804
|
}
|
|
13321
13805
|
|
|
13322
13806
|
/**
|
|
13323
|
-
*
|
|
13324
|
-
*
|
|
13325
|
-
*
|
|
13326
|
-
* the whole calendar is
|
|
13807
|
+
* Pages the calendar backward. In `day` view pages by one month; in `month` view
|
|
13808
|
+
* pages by one year; in `year` view pages by one block. Apply on a `<button>`.
|
|
13809
|
+
* Keeps DOM focus on itself while paging; the `aria-live` heading announces the
|
|
13810
|
+
* new period. Auto-disabled at the view's bound, or when the whole calendar is
|
|
13811
|
+
* disabled.
|
|
13327
13812
|
*
|
|
13328
13813
|
* Provide an accessible name via the `[ariaLabel]` input (e.g.
|
|
13329
|
-
* `[ariaLabel]="'Previous
|
|
13814
|
+
* `[ariaLabel]="'Previous'"`).
|
|
13330
13815
|
*/
|
|
13331
13816
|
declare class ForCalendarPrevButton {
|
|
13332
13817
|
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
@@ -13339,13 +13824,14 @@ declare class ForCalendarPrevButton {
|
|
|
13339
13824
|
}
|
|
13340
13825
|
|
|
13341
13826
|
/**
|
|
13342
|
-
*
|
|
13343
|
-
*
|
|
13344
|
-
*
|
|
13345
|
-
* when the whole calendar is
|
|
13827
|
+
* Pages the calendar forward. In `day` view pages by one month; in `month` view
|
|
13828
|
+
* pages by one year; in `year` view pages by one block. Apply on a `<button>`.
|
|
13829
|
+
* Keeps DOM focus on itself while paging; the `aria-live` heading announces the
|
|
13830
|
+
* new period. Auto-disabled at the view's bound, or when the whole calendar is
|
|
13831
|
+
* disabled.
|
|
13346
13832
|
*
|
|
13347
13833
|
* Provide an accessible name via the `[ariaLabel]` input (e.g.
|
|
13348
|
-
* `[ariaLabel]="'Next
|
|
13834
|
+
* `[ariaLabel]="'Next'"`).
|
|
13349
13835
|
*/
|
|
13350
13836
|
declare class ForCalendarNextButton {
|
|
13351
13837
|
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
@@ -13357,6 +13843,172 @@ declare class ForCalendarNextButton {
|
|
|
13357
13843
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarNextButton, "[forCalendarNextButton]", ["forCalendarNextButton"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13358
13844
|
}
|
|
13359
13845
|
|
|
13846
|
+
/**
|
|
13847
|
+
* The month picker grid (`role="grid"`). Apply on a `<table>`. Labelled by the
|
|
13848
|
+
* `[forCalendarHeading]` via `aria-labelledby`. Exposes `rows()` — iterate
|
|
13849
|
+
* rows then cells, binding each cell's `month` to `[forCalendarMonthCell]`.
|
|
13850
|
+
*
|
|
13851
|
+
* Shows the 12 months of the visible year in 3-column rows. Used when
|
|
13852
|
+
* `view === 'month'`.
|
|
13853
|
+
*/
|
|
13854
|
+
declare class ForCalendarMonthGrid {
|
|
13855
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13856
|
+
/** Rows of the month picker grid (3 columns) for the visible year. */
|
|
13857
|
+
readonly rows: _angular_core.Signal<readonly forty_cdk.CalendarMonthRow[]>;
|
|
13858
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarMonthGrid, never>;
|
|
13859
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarMonthGrid, "[forCalendarMonthGrid]", ["forCalendarMonthGrid"], {}, {}, never, never, true, never>;
|
|
13860
|
+
}
|
|
13861
|
+
|
|
13862
|
+
/**
|
|
13863
|
+
* A single month cell (`role="gridcell"`) in the month picker grid. Apply on
|
|
13864
|
+
* the `<td>` for each month and bind `[month]` to the month number (1-12) from
|
|
13865
|
+
* `rows()`.
|
|
13866
|
+
*
|
|
13867
|
+
* Carries the roving tab stop (`tabindex="0"` on the focused month), reflects
|
|
13868
|
+
* `aria-selected` (always emitted), `data-today`, `data-selected`,
|
|
13869
|
+
* `data-highlighted`, `data-disabled`. Click and `Enter` / `Space` drill down
|
|
13870
|
+
* to the day view for that month; arrow / paging keys move the roving cell.
|
|
13871
|
+
*/
|
|
13872
|
+
declare class ForCalendarMonthCell {
|
|
13873
|
+
#private;
|
|
13874
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13875
|
+
/** The month this cell represents, **1-12**. */
|
|
13876
|
+
readonly month: _angular_core.InputSignal<number>;
|
|
13877
|
+
protected readonly selected: _angular_core.Signal<boolean>;
|
|
13878
|
+
protected readonly today: _angular_core.Signal<boolean>;
|
|
13879
|
+
protected readonly focused: _angular_core.Signal<boolean>;
|
|
13880
|
+
protected readonly disabled: _angular_core.Signal<boolean>;
|
|
13881
|
+
constructor();
|
|
13882
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarMonthCell, never>;
|
|
13883
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarMonthCell, "[forCalendarMonthCell]", ["forCalendarMonthCell"], { "month": { "alias": "month"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13884
|
+
}
|
|
13885
|
+
|
|
13886
|
+
/**
|
|
13887
|
+
* The year picker grid (`role="grid"`). Apply on a `<table>`. Labelled by the
|
|
13888
|
+
* `[forCalendarHeading]` via `aria-labelledby`. Exposes `rows()` — iterate
|
|
13889
|
+
* rows then cells, binding each cell's `year` to `[forCalendarYearCell]`.
|
|
13890
|
+
*
|
|
13891
|
+
* Shows an aligned block of `yearBlockSize` years in 3-column rows. Used when
|
|
13892
|
+
* `view === 'year'`.
|
|
13893
|
+
*/
|
|
13894
|
+
declare class ForCalendarYearGrid {
|
|
13895
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13896
|
+
/** Rows of the year picker grid (3 columns) for the aligned block containing the visible year. */
|
|
13897
|
+
readonly rows: _angular_core.Signal<readonly forty_cdk.CalendarYearRow[]>;
|
|
13898
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarYearGrid, never>;
|
|
13899
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarYearGrid, "[forCalendarYearGrid]", ["forCalendarYearGrid"], {}, {}, never, never, true, never>;
|
|
13900
|
+
}
|
|
13901
|
+
|
|
13902
|
+
/**
|
|
13903
|
+
* A single year cell (`role="gridcell"`) in the year picker grid. Apply on the
|
|
13904
|
+
* `<td>` for each year and bind `[year]` to the year number from `rows()`.
|
|
13905
|
+
*
|
|
13906
|
+
* Carries the roving tab stop (`tabindex="0"` on the focused year), reflects
|
|
13907
|
+
* `aria-selected` (always emitted), `data-today`, `data-selected`,
|
|
13908
|
+
* `data-highlighted`, `data-disabled`. Click and `Enter` / `Space` drill down
|
|
13909
|
+
* to the month view for that year; arrow / paging keys move the roving cell.
|
|
13910
|
+
*/
|
|
13911
|
+
declare class ForCalendarYearCell {
|
|
13912
|
+
#private;
|
|
13913
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13914
|
+
/** The year this cell represents. */
|
|
13915
|
+
readonly year: _angular_core.InputSignal<number>;
|
|
13916
|
+
protected readonly selected: _angular_core.Signal<boolean>;
|
|
13917
|
+
protected readonly today: _angular_core.Signal<boolean>;
|
|
13918
|
+
protected readonly focused: _angular_core.Signal<boolean>;
|
|
13919
|
+
protected readonly disabled: _angular_core.Signal<boolean>;
|
|
13920
|
+
constructor();
|
|
13921
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarYearCell, never>;
|
|
13922
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarYearCell, "[forCalendarYearCell]", ["forCalendarYearCell"], { "year": { "alias": "year"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13923
|
+
}
|
|
13924
|
+
|
|
13925
|
+
/**
|
|
13926
|
+
* The view-cycle button in the calendar header. Apply on a `<button>`. Each
|
|
13927
|
+
* click advances the view one step coarser (`day → month → year`), clamped at
|
|
13928
|
+
* `'year'`. Reflects `data-view` so consumers can style it per view. Disabled
|
|
13929
|
+
* when the whole calendar is disabled.
|
|
13930
|
+
*
|
|
13931
|
+
* Bind the `label` signal to the button text to show the active view label
|
|
13932
|
+
* (e.g. `"June 2026"` in day view, `"2026"` in month view, `"2024 – 2035"` in
|
|
13933
|
+
* year view).
|
|
13934
|
+
*/
|
|
13935
|
+
declare class ForCalendarViewTrigger {
|
|
13936
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13937
|
+
/** Label for the active view, e.g. `"June 2026"` / `"2026"` / `"2016 – 2027"`. */
|
|
13938
|
+
readonly label: _angular_core.Signal<string>;
|
|
13939
|
+
constructor();
|
|
13940
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarViewTrigger, never>;
|
|
13941
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarViewTrigger, "[forCalendarViewTrigger]", ["forCalendarViewTrigger"], {}, {}, never, never, true, never>;
|
|
13942
|
+
}
|
|
13943
|
+
|
|
13944
|
+
/**
|
|
13945
|
+
* Wires a native `<select>` to a `ForCalendar`'s month navigation. Apply on a
|
|
13946
|
+
* `<select>` element inside `[forCalendar]`: the directive keeps the select
|
|
13947
|
+
* showing the visible month and navigates the calendar when the user picks a
|
|
13948
|
+
* different one, without mutating the selected date.
|
|
13949
|
+
*
|
|
13950
|
+
* Render the `<option>` elements yourself from {@link options} so you keep full
|
|
13951
|
+
* control over their markup, labels, and any placeholder:
|
|
13952
|
+
*
|
|
13953
|
+
* ```html
|
|
13954
|
+
* <select forCalendarMonthSelect #m="forCalendarMonthSelect">
|
|
13955
|
+
* @for (opt of m.options(); track opt.value) {
|
|
13956
|
+
* <option [value]="opt.value" [disabled]="opt.disabled">{{ opt.label }}</option>
|
|
13957
|
+
* }
|
|
13958
|
+
* </select>
|
|
13959
|
+
* ```
|
|
13960
|
+
*/
|
|
13961
|
+
declare class ForCalendarMonthSelect {
|
|
13962
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13963
|
+
/** The twelve localized, bounds-aware month options for the visible year. */
|
|
13964
|
+
readonly options: _angular_core.Signal<readonly forty_cdk.CalendarMonthOption[]>;
|
|
13965
|
+
protected onChange(event: Event): void;
|
|
13966
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarMonthSelect, never>;
|
|
13967
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarMonthSelect, "select[forCalendarMonthSelect]", ["forCalendarMonthSelect"], {}, {}, never, never, true, never>;
|
|
13968
|
+
}
|
|
13969
|
+
|
|
13970
|
+
/**
|
|
13971
|
+
* Wires a native `<select>` to a `ForCalendar`'s year navigation. Apply on a
|
|
13972
|
+
* `<select>` element inside `[forCalendar]`: the directive keeps the select
|
|
13973
|
+
* showing the visible year and navigates the calendar when the user picks a
|
|
13974
|
+
* different one, without mutating the selected date.
|
|
13975
|
+
*
|
|
13976
|
+
* Render the `<option>` elements yourself from {@link years} so you keep full
|
|
13977
|
+
* control over their markup:
|
|
13978
|
+
*
|
|
13979
|
+
* ```html
|
|
13980
|
+
* <select forCalendarYearSelect #y="forCalendarYearSelect" [minYear]="1900" [maxYear]="2100">
|
|
13981
|
+
* @for (opt of y.years(); track opt.value) {
|
|
13982
|
+
* <option [value]="opt.value" [disabled]="opt.disabled">{{ opt.value }}</option>
|
|
13983
|
+
* }
|
|
13984
|
+
* </select>
|
|
13985
|
+
* ```
|
|
13986
|
+
*/
|
|
13987
|
+
declare class ForCalendarYearSelect {
|
|
13988
|
+
protected readonly ctx: forty_cdk.ForCalendarContext<unknown>;
|
|
13989
|
+
/**
|
|
13990
|
+
* Lowest year listed in {@link years}. Defaults to 100 years before the
|
|
13991
|
+
* current year when `null`.
|
|
13992
|
+
*/
|
|
13993
|
+
readonly minYear: _angular_core.InputSignal<number | null>;
|
|
13994
|
+
/**
|
|
13995
|
+
* Highest year listed in {@link years}. Defaults to 10 years after the
|
|
13996
|
+
* current year when `null`.
|
|
13997
|
+
*/
|
|
13998
|
+
readonly maxYear: _angular_core.InputSignal<number | null>;
|
|
13999
|
+
/**
|
|
14000
|
+
* The selectable years, from {@link minYear} to {@link maxYear} inclusive.
|
|
14001
|
+
* Each entry is `disabled` when the whole year falls outside the calendar's
|
|
14002
|
+
* `[min, max]`. The default window is anchored to the current year (not the
|
|
14003
|
+
* visible year), so navigating far away never drops the current year off the
|
|
14004
|
+
* list.
|
|
14005
|
+
*/
|
|
14006
|
+
readonly years: _angular_core.Signal<readonly CalendarYearOption[]>;
|
|
14007
|
+
protected onChange(event: Event): void;
|
|
14008
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCalendarYearSelect, never>;
|
|
14009
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCalendarYearSelect, "select[forCalendarYearSelect]", ["forCalendarYearSelect"], { "minYear": { "alias": "minYear"; "required": false; "isSignal": true; }; "maxYear": { "alias": "maxYear"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14010
|
+
}
|
|
14011
|
+
|
|
13360
14012
|
/**
|
|
13361
14013
|
* Defaults inherited by descendant calendars in the surrounding injector
|
|
13362
14014
|
* scope. Configure with `provideForCalendarDefaults` at the application root
|
|
@@ -13920,6 +14572,7 @@ interface ForDatePickerContext {
|
|
|
13920
14572
|
readonly collisionPadding: Signal<number>;
|
|
13921
14573
|
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
13922
14574
|
readonly hideWhenDetached: Signal<boolean>;
|
|
14575
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
13923
14576
|
readonly triggerId: Signal<string>;
|
|
13924
14577
|
readonly contentId: Signal<string>;
|
|
13925
14578
|
/** Accessible name for the dialog surface. Emits no `aria-label` while `null`. */
|
|
@@ -14164,6 +14817,14 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
14164
14817
|
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
14165
14818
|
/** When `true`, sets `data-detached=""` while the trigger is scrolled off-screen. */
|
|
14166
14819
|
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14820
|
+
/**
|
|
14821
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
14822
|
+
* its first position, preventing a flash at the viewport corner. Set to
|
|
14823
|
+
* `false` so a dramatic `animate.enter` plays from its first frame (the
|
|
14824
|
+
* surface may flash briefly at the unresolved position while positioning
|
|
14825
|
+
* computes).
|
|
14826
|
+
*/
|
|
14827
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14167
14828
|
/** Accessible name for the dialog surface. Emits no `aria-label` while `null`. */
|
|
14168
14829
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
14169
14830
|
/**
|
|
@@ -14185,7 +14846,7 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
14185
14846
|
/** Fires when focus moves outside the surface (and trigger). Vetoable. */
|
|
14186
14847
|
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
14187
14848
|
/** Composite event: shares veto state with `pointerDownOutside` / `focusOutside`. */
|
|
14188
|
-
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<
|
|
14849
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
14189
14850
|
/** Fires just before the surface sends focus into itself on open. Vetoable. */
|
|
14190
14851
|
readonly autoFocusOnOpen: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
14191
14852
|
/** Fires just before focus returns to the trigger on close. Vetoable. */
|
|
@@ -14221,7 +14882,7 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
14221
14882
|
* `D | null` because `contentChild` erases the generic; a dev-mode assertion
|
|
14222
14883
|
* guards the same-adapter contract.
|
|
14223
14884
|
*/
|
|
14224
|
-
private readonly
|
|
14885
|
+
private readonly timeSource;
|
|
14225
14886
|
constructor();
|
|
14226
14887
|
registerTrigger(el: HTMLElement): void;
|
|
14227
14888
|
unregisterTrigger(el: HTMLElement): void;
|
|
@@ -14254,7 +14915,7 @@ declare class ForDatePicker<D> extends FormUiControlBase implements FormValueCon
|
|
|
14254
14915
|
emitAutoFocusOnOpen(): boolean;
|
|
14255
14916
|
emitAutoFocusOnClose(): boolean;
|
|
14256
14917
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDatePicker<any>, never>;
|
|
14257
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDatePicker<any>, "[forDatePicker]", ["forDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "formatOptions": { "alias": "formatOptions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "range": "rangeChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, ["calendar", "
|
|
14918
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDatePicker<any>, "[forDatePicker]", ["forDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "formatOptions": { "alias": "formatOptions"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "required": false; "isSignal": true; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "range": "rangeChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, ["calendar", "timeSource"], never, true, never>;
|
|
14258
14919
|
}
|
|
14259
14920
|
|
|
14260
14921
|
/**
|
|
@@ -14410,7 +15071,7 @@ declare function provideForDatePickerDefaults(defaults?: Partial<ForDatePickerDe
|
|
|
14410
15071
|
* export class MyDatePicker {}
|
|
14411
15072
|
* ```
|
|
14412
15073
|
*/
|
|
14413
|
-
declare const FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS: readonly ["value", "open", "range", "align", "alignOffset", "ariaLabel", "avoidCollisions", "closeOnSelect", "collisionPadding", "dir", "dirty", "disabled", "dismissible", "errors", "formatOptions", "granularity", "hideWhenDetached", "hourCycle", "invalid", "isDateUnavailable", "maxDate", "minDate", "modal", "name", "pending", "placeholder", "rangeSeparator", "readonly", "required", "returnFocus", "selectionMode", "side", "sideOffset", "sticky", "touched"];
|
|
15074
|
+
declare const FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS: readonly ["value", "open", "range", "align", "alignOffset", "ariaLabel", "avoidCollisions", "clipUntilPositioned", "closeOnSelect", "collisionPadding", "dir", "dirty", "disabled", "dismissible", "errors", "formatOptions", "granularity", "hideWhenDetached", "hourCycle", "invalid", "isDateUnavailable", "maxDate", "minDate", "modal", "name", "pending", "placeholder", "rangeSeparator", "readonly", "required", "returnFocus", "selectionMode", "side", "sideOffset", "sticky", "touched"];
|
|
14414
15075
|
/**
|
|
14415
15076
|
* Exact public names of every `ForDatePicker` output, the Signal Forms `touch` output
|
|
14416
15077
|
* included. Spread it into the `outputs` array of the same `hostDirectives` entry as
|
|
@@ -14716,493 +15377,1992 @@ declare const FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS: readonly ["value", "ariaLabe
|
|
|
14716
15377
|
*/
|
|
14717
15378
|
declare const FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "touchedChange", "touch"];
|
|
14718
15379
|
|
|
14719
|
-
/**
|
|
14720
|
-
type
|
|
14721
|
-
/**
|
|
14722
|
-
|
|
14723
|
-
|
|
14724
|
-
|
|
14725
|
-
|
|
14726
|
-
interface
|
|
14727
|
-
|
|
14728
|
-
readonly
|
|
15380
|
+
/** The time granularity at which the picker operates. */
|
|
15381
|
+
type TimePickerGranularity = 'hour' | 'minute' | 'second';
|
|
15382
|
+
/**
|
|
15383
|
+
* A single generated time slot in the listbox.
|
|
15384
|
+
*
|
|
15385
|
+
* @typeParam D The adapter's date-time type.
|
|
15386
|
+
*/
|
|
15387
|
+
interface ForTimeSlot<D> {
|
|
15388
|
+
/** Stable identifier for use as the `track` expression in `@for`. Value is `'slot-' + totalSeconds`. */
|
|
15389
|
+
readonly id: string;
|
|
15390
|
+
/** The date-time value this slot represents, anchored to the consumer's selected date (or a sentinel). */
|
|
15391
|
+
readonly value: D;
|
|
15392
|
+
/** Display label formatted via the active adapter and the resolved format options. */
|
|
15393
|
+
readonly label: string;
|
|
15394
|
+
/** Whether this slot is currently selected, compared at the configured granularity. */
|
|
15395
|
+
readonly selected: boolean;
|
|
15396
|
+
/** Whether this slot is disabled because its time-of-day falls outside `[minTime, maxTime]`. */
|
|
15397
|
+
readonly disabled: boolean;
|
|
14729
15398
|
}
|
|
14730
15399
|
/**
|
|
14731
|
-
*
|
|
14732
|
-
*
|
|
14733
|
-
*
|
|
15400
|
+
* Configuration bag for {@link buildTimeSlots}.
|
|
15401
|
+
*
|
|
15402
|
+
* @typeParam D The adapter's date-time type.
|
|
14734
15403
|
*/
|
|
14735
|
-
interface
|
|
14736
|
-
readonly
|
|
14737
|
-
|
|
14738
|
-
readonly
|
|
14739
|
-
|
|
14740
|
-
readonly
|
|
14741
|
-
|
|
14742
|
-
readonly
|
|
14743
|
-
|
|
14744
|
-
|
|
14745
|
-
|
|
14746
|
-
|
|
14747
|
-
readonly
|
|
14748
|
-
|
|
14749
|
-
|
|
14750
|
-
scrollPrev(): void;
|
|
14751
|
-
scrollNext(): void;
|
|
14752
|
-
scrollTo(index: number): void;
|
|
14753
|
-
navigate(currentIndicator: HTMLElement, action: ListNavigationAction): void;
|
|
14754
|
-
/** Toggle auto-rotation on/off (the explicit, sticky user choice). Called by the rotation control. */
|
|
14755
|
-
toggleAutoplay(): void;
|
|
14756
|
-
registerSlide(handle: ForCarouselSlideHandle): void;
|
|
14757
|
-
unregisterSlide(handle: ForCarouselSlideHandle): void;
|
|
14758
|
-
registerIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
14759
|
-
unregisterIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
14760
|
-
setViewport(el: HTMLElement, id: string): void;
|
|
14761
|
-
viewportId(): string | null;
|
|
14762
|
-
indexOfSlide(host: HTMLElement): number;
|
|
14763
|
-
indexOfIndicator(host: HTMLElement): number;
|
|
14764
|
-
isCurrent(index: number): boolean;
|
|
14765
|
-
isInView(index: number): boolean;
|
|
14766
|
-
isFirstEnabledIndicator(el: HTMLElement): boolean;
|
|
14767
|
-
hasCurrentIndicator(): boolean;
|
|
15404
|
+
interface BuildTimeSlotsConfig<D> {
|
|
15405
|
+
readonly adapter: TimeCapableDateAdapter<D>;
|
|
15406
|
+
/** The date-time used as the date anchor for every slot value. Typically `value ?? sentinel`. */
|
|
15407
|
+
readonly anchor: D;
|
|
15408
|
+
/** The currently committed value, or `null` when nothing is selected. */
|
|
15409
|
+
readonly selected: D | null;
|
|
15410
|
+
/** Lower bound (inclusive). Only the time-of-day component is considered. `null` = start-of-day. */
|
|
15411
|
+
readonly minTime: D | null;
|
|
15412
|
+
/** Upper bound (inclusive). Only the time-of-day component is considered. `null` = end-of-day. */
|
|
15413
|
+
readonly maxTime: D | null;
|
|
15414
|
+
/** Slot interval in whole minutes. Clamped to ≥ 1. */
|
|
15415
|
+
readonly step: number;
|
|
15416
|
+
readonly granularity: TimePickerGranularity;
|
|
15417
|
+
/** `Intl.DateTimeFormat` options for the slot label. */
|
|
15418
|
+
readonly formatOptions: Intl.DateTimeFormatOptions;
|
|
14768
15419
|
}
|
|
14769
|
-
/** DI token providing the carousel context to descendant pieces. */
|
|
14770
|
-
declare const FOR_CAROUSEL_CONTEXT: InjectionToken<ForCarouselContext>;
|
|
14771
|
-
|
|
14772
15420
|
/**
|
|
14773
|
-
*
|
|
14774
|
-
* indicator collection, roving tabindex tracker, and computed geometry CSS
|
|
14775
|
-
* variables. Provides the shared context to descendant pieces.
|
|
15421
|
+
* Generates the full-day slot list for a {@link ForTimePicker}.
|
|
14776
15422
|
*
|
|
14777
|
-
*
|
|
15423
|
+
* Slots span the full 24-hour day (00:00:00 up to but not past 24:00). Each slot's
|
|
15424
|
+
* `disabled` flag is `true` when its time-of-day falls outside `[minTime, maxTime]`
|
|
15425
|
+
* — slots are never omitted, following the WAI-ARIA option convention for disabled
|
|
15426
|
+
* items.
|
|
14778
15427
|
*
|
|
14779
|
-
*
|
|
14780
|
-
* by prev/next buttons only. Adding an indicator group enables APG picker
|
|
14781
|
-
* semantics: roving tabindex, arrow/Home/End navigation with automatic
|
|
14782
|
-
* activation.
|
|
15428
|
+
* Pure function: no signals, no DOM, no side effects.
|
|
14783
15429
|
*/
|
|
14784
|
-
declare
|
|
14785
|
-
|
|
14786
|
-
|
|
14787
|
-
|
|
14788
|
-
|
|
14789
|
-
|
|
14790
|
-
|
|
14791
|
-
|
|
14792
|
-
|
|
14793
|
-
|
|
14794
|
-
|
|
15430
|
+
declare function buildTimeSlots<D>(config: BuildTimeSlotsConfig<D>): readonly ForTimeSlot<D>[];
|
|
15431
|
+
|
|
15432
|
+
/**
|
|
15433
|
+
* Why a time picker requested close.
|
|
15434
|
+
*/
|
|
15435
|
+
type ForTimePickerCloseReason = 'escape' | 'pointerDownOutside' | 'focusOutside' | 'select' | 'tab' | 'programmatic';
|
|
15436
|
+
/**
|
|
15437
|
+
* Where focus lands when the listbox opens.
|
|
15438
|
+
* `'selected'` snaps to the selected slot (or first enabled if none selected).
|
|
15439
|
+
*/
|
|
15440
|
+
type ForTimePickerInitialFocus = 'first' | 'last' | 'selected';
|
|
15441
|
+
/**
|
|
15442
|
+
* Handle every `[forTimePickerOption]` registers with the root.
|
|
15443
|
+
*/
|
|
15444
|
+
interface ForTimePickerOptionHandle extends CollectionHandle {
|
|
15445
|
+
readonly value: Signal<unknown>;
|
|
15446
|
+
readonly disabled: Signal<boolean>;
|
|
15447
|
+
}
|
|
15448
|
+
/**
|
|
15449
|
+
* Coordination contract owned by `[forTimePicker]`.
|
|
15450
|
+
*
|
|
15451
|
+
* @typeParam D The adapter's date-time type.
|
|
15452
|
+
*/
|
|
15453
|
+
interface ForTimePickerContext<D = unknown> {
|
|
15454
|
+
readonly value: ModelSignal<D | null>;
|
|
15455
|
+
readonly open: ModelSignal<boolean>;
|
|
15456
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
15457
|
+
readonly readonly: Signal<boolean>;
|
|
15458
|
+
readonly required: Signal<boolean>;
|
|
15459
|
+
readonly invalid: Signal<boolean>;
|
|
15460
|
+
readonly pending: Signal<boolean>;
|
|
15461
|
+
readonly modal: Signal<boolean>;
|
|
15462
|
+
readonly dismissible: Signal<boolean>;
|
|
15463
|
+
readonly returnFocus: Signal<boolean>;
|
|
15464
|
+
readonly side: Signal<FloatingSide | undefined>;
|
|
15465
|
+
readonly align: Signal<FloatingAlign | undefined>;
|
|
15466
|
+
readonly sideOffset: Signal<number>;
|
|
15467
|
+
readonly alignOffset: Signal<number>;
|
|
15468
|
+
readonly avoidCollisions: Signal<boolean>;
|
|
15469
|
+
readonly collisionPadding: Signal<number>;
|
|
15470
|
+
readonly arrowPadding: Signal<number>;
|
|
15471
|
+
readonly sticky: Signal<'partial' | 'always' | false>;
|
|
15472
|
+
readonly hideWhenDetached: Signal<boolean>;
|
|
15473
|
+
readonly clipUntilPositioned: Signal<boolean>;
|
|
15474
|
+
readonly loop: Signal<boolean>;
|
|
15475
|
+
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
15476
|
+
readonly dir: Signal<WritingDirection>;
|
|
15477
|
+
readonly placeholder: Signal<string>;
|
|
15478
|
+
readonly granularity: Signal<TimePickerGranularity>;
|
|
15479
|
+
readonly formattedValue: Signal<string | null>;
|
|
15480
|
+
readonly triggerId: Signal<string>;
|
|
15481
|
+
readonly contentId: Signal<string>;
|
|
15482
|
+
readonly ariaLabel: Signal<string | null>;
|
|
15483
|
+
readonly initialFocus: Signal<ForTimePickerInitialFocus>;
|
|
15484
|
+
setInitialFocus(target: ForTimePickerInitialFocus): void;
|
|
15485
|
+
readonly lastCloseReason: Signal<ForTimePickerCloseReason | null>;
|
|
15486
|
+
readonly anchor: Signal<ReferenceElement | null>;
|
|
15487
|
+
readonly trigger: Signal<HTMLElement | null>;
|
|
15488
|
+
registerTrigger(el: HTMLElement): void;
|
|
15489
|
+
unregisterTrigger(el: HTMLElement): void;
|
|
15490
|
+
readonly content: Signal<HTMLElement | null>;
|
|
15491
|
+
registerContent(el: HTMLElement): void;
|
|
15492
|
+
unregisterContent(el: HTMLElement): void;
|
|
15493
|
+
registerOption(handle: ForTimePickerOptionHandle): void;
|
|
15494
|
+
unregisterOption(handle: ForTimePickerOptionHandle): void;
|
|
15495
|
+
readonly options: Signal<readonly ForTimePickerOptionHandle[]>;
|
|
15496
|
+
readonly slots: Signal<readonly ForTimeSlot<D>[]>;
|
|
15497
|
+
isSelected(value: D): boolean;
|
|
15498
|
+
activate(value: D): void;
|
|
15499
|
+
navigate(currentOption: HTMLElement, action: ListNavigationAction): void;
|
|
15500
|
+
focusFirstEnabledOption(): boolean;
|
|
15501
|
+
focusLastEnabledOption(): boolean;
|
|
15502
|
+
focusSelectedOption(): boolean;
|
|
15503
|
+
toggle(initialFocus?: ForTimePickerInitialFocus): void;
|
|
15504
|
+
openMenu(initialFocus?: ForTimePickerInitialFocus): void;
|
|
15505
|
+
closeMenu(reason: ForTimePickerCloseReason): void;
|
|
15506
|
+
commitOnTab(value: D): void;
|
|
15507
|
+
emitEscapeKeyDown(event: KeyboardEvent): void;
|
|
15508
|
+
emitPointerDownOutside(veto: VetoableNativeEvent<PointerEvent>): void;
|
|
15509
|
+
emitFocusOutside(veto: VetoableNativeEvent<FocusEvent>): void;
|
|
15510
|
+
emitInteractOutside(veto: VetoableNativeEvent<PointerEvent | FocusEvent>): void;
|
|
15511
|
+
requestClose(reason: 'pointerDownOutside' | 'focusOutside'): void;
|
|
15512
|
+
forwardEscapeKeyDown(veto: VetoableNativeEvent<KeyboardEvent>): void;
|
|
15513
|
+
emitAutoFocusOnOpen(): boolean;
|
|
15514
|
+
emitAutoFocusOnClose(): boolean;
|
|
15515
|
+
markTouched(): void;
|
|
15516
|
+
}
|
|
15517
|
+
declare const FOR_TIME_PICKER_CONTEXT: InjectionToken<ForTimePickerContext<unknown>>;
|
|
15518
|
+
|
|
15519
|
+
/**
|
|
15520
|
+
* Root of the headless time picker, implementing the
|
|
15521
|
+
* [WAI-ARIA Listbox pattern](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/)
|
|
15522
|
+
* for a slot-based time selection. Generates a full-day list of time slots at
|
|
15523
|
+
* a configurable `step` (in minutes), displayed in a floating listbox.
|
|
15524
|
+
*
|
|
15525
|
+
* Implements `FormValueControl<D | null>` from `@angular/forms/signals` for
|
|
15526
|
+
* `[formField]` auto-wiring. Requires a time-capable adapter
|
|
15527
|
+
* (`provideNativeDateAdapter()` or `provideInternationalizedDateTimeAdapter()`).
|
|
15528
|
+
*
|
|
15529
|
+
* @typeParam D The adapter's immutable date-time type.
|
|
15530
|
+
*/
|
|
15531
|
+
declare class ForTimePicker<D> extends FormUiControlBase implements FormValueControl<D | null>, ForTimePickerContext<D> {
|
|
15532
|
+
#private;
|
|
15533
|
+
/**
|
|
15534
|
+
* The active, time-capable date adapter. Throws when the provided adapter is
|
|
15535
|
+
* day-only.
|
|
15536
|
+
*/
|
|
15537
|
+
readonly adapter: TimeCapableDateAdapter<D>;
|
|
15538
|
+
/**
|
|
15539
|
+
* Two-way bindable selected time, or `null`. Required by
|
|
15540
|
+
* `FormValueControl<D | null>`. The `model()` change emitter
|
|
15541
|
+
* (`(valueChange)`) fires only on internal selection changes, never on
|
|
15542
|
+
* consumer writes via `[(value)]`.
|
|
15543
|
+
*/
|
|
15544
|
+
readonly value: _angular_core.ModelSignal<D | null>;
|
|
15545
|
+
/**
|
|
15546
|
+
* Two-way bindable. Whether the listbox is currently shown. The `model()`
|
|
15547
|
+
* change emitter (`(openChange)`) fires only on internal transitions, never
|
|
15548
|
+
* on consumer writes via `[(open)]`.
|
|
15549
|
+
*/
|
|
15550
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
15551
|
+
/**
|
|
15552
|
+
* Earliest selectable time-of-day (inclusive). Slots earlier in the day are
|
|
15553
|
+
* disabled. Named `minTime` (not `min`) because `FormUiControl.min` is
|
|
15554
|
+
* reserved for a numeric validator.
|
|
15555
|
+
*/
|
|
15556
|
+
readonly minTime: _angular_core.InputSignal<D | null>;
|
|
15557
|
+
/**
|
|
15558
|
+
* Latest selectable time-of-day (inclusive). Slots later in the day are
|
|
15559
|
+
* disabled. Named `maxTime` for the same reason as {@link minTime}.
|
|
15560
|
+
*/
|
|
15561
|
+
readonly maxTime: _angular_core.InputSignal<D | null>;
|
|
15562
|
+
/**
|
|
15563
|
+
* Slot interval in whole minutes. Default `30`. Clamped to ≥ 1 internally.
|
|
15564
|
+
* Use `60` for hourly slots, `15` for quarter-hour slots.
|
|
15565
|
+
*/
|
|
15566
|
+
readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15567
|
+
/**
|
|
15568
|
+
* Finest time unit compared when determining if a slot is selected.
|
|
15569
|
+
* Default `'minute'`. Use `'second'` when the value carries seconds.
|
|
15570
|
+
*/
|
|
15571
|
+
readonly granularity: _angular_core.InputSignal<TimePickerGranularity>;
|
|
15572
|
+
/**
|
|
15573
|
+
* 12- or 24-hour cycle for slot label formatting. When `null` (default) it
|
|
15574
|
+
* is derived from the runtime locale.
|
|
15575
|
+
*/
|
|
15576
|
+
readonly hourCycle: _angular_core.InputSignal<12 | 24 | null>;
|
|
15577
|
+
/**
|
|
15578
|
+
* BCP 47 locale driving slot label formatting. Defaults to the runtime locale.
|
|
15579
|
+
*/
|
|
15580
|
+
readonly locale: _angular_core.InputSignal<string | null>;
|
|
15581
|
+
/**
|
|
15582
|
+
* Close the listbox after a slot is selected. Default `true`.
|
|
15583
|
+
*/
|
|
15584
|
+
readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15585
|
+
/**
|
|
15586
|
+
* When `true`, the listbox mounts as a trapped / inert / scroll-locked modal
|
|
15587
|
+
* surface instead of the default anchored popover. Read once when the content
|
|
15588
|
+
* mounts.
|
|
15589
|
+
*/
|
|
15590
|
+
readonly modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15591
|
+
/** When `true` (default), Escape, pointer-down outside, and focus outside close the listbox. */
|
|
15592
|
+
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15593
|
+
/** When `true` (default), focus returns to the trigger on close. */
|
|
15594
|
+
readonly returnFocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15595
|
+
/** Placeholder shown by `[forTimePickerValue]` when no time is selected. */
|
|
15596
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
15597
|
+
/**
|
|
15598
|
+
* `Intl.DateTimeFormat` options driving slot label formatting. When none of
|
|
15599
|
+
* `hour` / `minute` / `second` are specified, sensible defaults are filled in
|
|
15600
|
+
* automatically based on `granularity` and `hourCycle`.
|
|
15601
|
+
*/
|
|
15602
|
+
readonly formatOptions: _angular_core.InputSignal<Intl.DateTimeFormatOptions>;
|
|
15603
|
+
/** Manual `aria-label` on `[forTimePickerContent]` when the trigger isn't a meaningful name. */
|
|
15604
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
15605
|
+
/** When `true` (default), keyboard navigation wraps at the ends of the option list. */
|
|
15606
|
+
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15607
|
+
/** Orientation of the listbox for keyboard navigation. Default `'vertical'`. */
|
|
15608
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
15609
|
+
/**
|
|
15610
|
+
* Side the listbox is anchored to. Defaults to `'bottom'`. Ignored in
|
|
15611
|
+
* `modal` mode.
|
|
15612
|
+
*/
|
|
15613
|
+
readonly side: _angular_core.InputSignal<FloatingSide | undefined>;
|
|
15614
|
+
/** Alignment along the chosen `side`. Defaults to `'start'`. */
|
|
15615
|
+
readonly align: _angular_core.InputSignal<FloatingAlign | undefined>;
|
|
15616
|
+
/**
|
|
15617
|
+
* Gap (px) between trigger and listbox along the main axis. Default `4`.
|
|
15618
|
+
* The default is read from `provideForTimePickerDefaults` for the surrounding
|
|
15619
|
+
* scope.
|
|
15620
|
+
*/
|
|
15621
|
+
readonly sideOffset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15622
|
+
/** Gap (px) along the cross axis. Default `0`. */
|
|
15623
|
+
readonly alignOffset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15624
|
+
/** When `true` (default), `flip` and `shift` keep the listbox inside the viewport. */
|
|
15625
|
+
readonly avoidCollisions: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15626
|
+
/**
|
|
15627
|
+
* Padding (px) applied uniformly to flip / shift / size. Default `8`.
|
|
15628
|
+
* The default is read from `provideForTimePickerDefaults` for the surrounding
|
|
15629
|
+
* scope.
|
|
15630
|
+
*/
|
|
15631
|
+
readonly collisionPadding: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15632
|
+
/** Padding (px) for the `arrow` middleware. Default `0`. */
|
|
15633
|
+
readonly arrowPadding: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15634
|
+
/** Stickiness behaviour for `shift`. Default `'partial'`. */
|
|
15635
|
+
readonly sticky: _angular_core.InputSignal<false | "partial" | "always">;
|
|
15636
|
+
/** When `true`, sets `data-detached=""` while the trigger is scrolled off-screen. */
|
|
15637
|
+
readonly hideWhenDetached: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15638
|
+
/**
|
|
15639
|
+
* When `true` (default), the content is clipped until floating-ui resolves
|
|
15640
|
+
* its first position, preventing a flash at the viewport corner.
|
|
15641
|
+
*/
|
|
15642
|
+
readonly clipUntilPositioned: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15643
|
+
/**
|
|
15644
|
+
* Writing direction. When unset (default `null`), the inherited ambient
|
|
15645
|
+
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
15646
|
+
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
15647
|
+
*/
|
|
15648
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
15649
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
15650
|
+
/**
|
|
15651
|
+
* Fires when the user presses Escape while this listbox is the topmost
|
|
15652
|
+
* dismissable layer. Call `preventDefault()` on the veto to suppress the
|
|
15653
|
+
* automatic close.
|
|
15654
|
+
*/
|
|
15655
|
+
readonly escapeKeyDown: _angular_core.OutputEmitterRef<VetoableNativeEvent<KeyboardEvent>>;
|
|
15656
|
+
/** Fires when a pointer goes down outside the listbox. Vetoable. */
|
|
15657
|
+
readonly pointerDownOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent>>;
|
|
15658
|
+
/** Fires when focus moves outside the listbox. Vetoable. */
|
|
15659
|
+
readonly focusOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<FocusEvent>>;
|
|
15660
|
+
/** Composite event: shares veto state with `pointerDownOutside` / `focusOutside`. */
|
|
15661
|
+
readonly interactOutside: _angular_core.OutputEmitterRef<VetoableNativeEvent<PointerEvent | FocusEvent>>;
|
|
15662
|
+
/**
|
|
15663
|
+
* Fires just before the listbox sends focus to the selected slot (or first
|
|
15664
|
+
* enabled) on open. Call `preventDefault()` on the veto to skip the focus
|
|
15665
|
+
* move.
|
|
15666
|
+
*/
|
|
15667
|
+
readonly autoFocusOnOpen: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
15668
|
+
/**
|
|
15669
|
+
* Fires just before focus returns to the trigger on close. Call
|
|
15670
|
+
* `preventDefault()` on the veto to suppress the return-focus.
|
|
15671
|
+
*/
|
|
15672
|
+
readonly autoFocusOnClose: _angular_core.OutputEmitterRef<VetoableEvent>;
|
|
15673
|
+
readonly triggerId: _angular_core.WritableSignal<string>;
|
|
15674
|
+
readonly contentId: _angular_core.WritableSignal<string>;
|
|
15675
|
+
readonly initialFocus: _angular_core.Signal<ForTimePickerInitialFocus>;
|
|
15676
|
+
readonly lastCloseReason: _angular_core.Signal<ForTimePickerCloseReason | null>;
|
|
15677
|
+
readonly trigger: _angular_core.Signal<HTMLElement | null>;
|
|
15678
|
+
readonly anchor: _angular_core.Signal<ReferenceElement | null>;
|
|
15679
|
+
readonly content: _angular_core.Signal<HTMLElement | null>;
|
|
15680
|
+
readonly options: _angular_core.Signal<readonly ForTimePickerOptionHandle[]>;
|
|
15681
|
+
/**
|
|
15682
|
+
* The generated list of time slots for the full day. Each slot's `value` is
|
|
15683
|
+
* anchored to the current `value()` date (or a sentinel), so selecting a
|
|
15684
|
+
* slot preserves the calendar date when used inside a date-time picker.
|
|
15685
|
+
*
|
|
15686
|
+
* Pure derivation — never written from inside an `effect()`.
|
|
15687
|
+
*/
|
|
15688
|
+
readonly slots: _angular_core.Signal<readonly ForTimeSlot<D>[]>;
|
|
15689
|
+
/** Formatted display of the current value, or `null` when empty. */
|
|
15690
|
+
readonly formattedValue: _angular_core.Signal<string | null>;
|
|
15691
|
+
protected fieldLabelledElement(): HTMLElement | null;
|
|
15692
|
+
protected fieldLabelledElementId(): string;
|
|
15693
|
+
constructor();
|
|
15694
|
+
setInitialFocus(target: ForTimePickerInitialFocus): void;
|
|
15695
|
+
registerTrigger(el: HTMLElement): void;
|
|
15696
|
+
unregisterTrigger(el: HTMLElement): void;
|
|
15697
|
+
registerContent(el: HTMLElement): void;
|
|
15698
|
+
unregisterContent(el: HTMLElement): void;
|
|
15699
|
+
registerOption(handle: ForTimePickerOptionHandle): void;
|
|
15700
|
+
unregisterOption(handle: ForTimePickerOptionHandle): void;
|
|
15701
|
+
isSelected(v: D): boolean;
|
|
15702
|
+
activate(v: D): void;
|
|
15703
|
+
navigate(currentOption: HTMLElement, action: ListNavigationAction): void;
|
|
15704
|
+
focusFirstEnabledOption(): boolean;
|
|
15705
|
+
focusLastEnabledOption(): boolean;
|
|
15706
|
+
focusSelectedOption(): boolean;
|
|
15707
|
+
toggle(initialFocus?: ForTimePickerInitialFocus): void;
|
|
15708
|
+
openMenu(initialFocus?: ForTimePickerInitialFocus): void;
|
|
15709
|
+
closeMenu(reason: ForTimePickerCloseReason): void;
|
|
15710
|
+
commitOnTab(value: D): void;
|
|
15711
|
+
emitEscapeKeyDown(event: KeyboardEvent): void;
|
|
15712
|
+
emitPointerDownOutside(veto: VetoableNativeEvent<PointerEvent>): void;
|
|
15713
|
+
emitFocusOutside(veto: VetoableNativeEvent<FocusEvent>): void;
|
|
15714
|
+
emitInteractOutside(veto: VetoableNativeEvent<PointerEvent | FocusEvent>): void;
|
|
15715
|
+
forwardEscapeKeyDown(veto: VetoableNativeEvent<KeyboardEvent>): void;
|
|
15716
|
+
requestClose(reason: 'pointerDownOutside' | 'focusOutside'): void;
|
|
15717
|
+
emitAutoFocusOnOpen(): boolean;
|
|
15718
|
+
emitAutoFocusOnClose(): boolean;
|
|
15719
|
+
markTouched(): void;
|
|
15720
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePicker<any>, never>;
|
|
15721
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePicker<any>, "[forTimePicker]", ["forTimePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "returnFocus": { "alias": "returnFocus"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "formatOptions": { "alias": "formatOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "clipUntilPositioned": { "alias": "clipUntilPositioned"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; "focusOutside": "focusOutside"; "interactOutside": "interactOutside"; "autoFocusOnOpen": "autoFocusOnOpen"; "autoFocusOnClose": "autoFocusOnClose"; }, never, never, true, never>;
|
|
15722
|
+
}
|
|
15723
|
+
|
|
15724
|
+
/**
|
|
15725
|
+
* Combobox button that opens the time picker listbox. Apply on a `<button>` so
|
|
15726
|
+
* Space / Enter dispatch native click events that toggle via `(click)`.
|
|
15727
|
+
*
|
|
15728
|
+
* Wires APG select-only combobox attributes: `role="combobox"`,
|
|
15729
|
+
* `aria-haspopup="listbox"`, `aria-expanded`, and `aria-controls` pointing to
|
|
15730
|
+
* the listbox. The button is exempt from the listbox's dismissable layer so
|
|
15731
|
+
* clicks on it toggle without dismissal racing.
|
|
15732
|
+
*
|
|
15733
|
+
* Keyboard:
|
|
15734
|
+
* - **Click / Enter / Space** — toggle (open focuses the selected slot, or first).
|
|
15735
|
+
* - **ArrowDown** — open + focus selected slot (or first).
|
|
15736
|
+
* - **ArrowUp** — open + focus selected slot (or last when none selected).
|
|
15737
|
+
*/
|
|
15738
|
+
declare class ForTimePickerTrigger<D = unknown> {
|
|
15739
|
+
#private;
|
|
15740
|
+
/**
|
|
15741
|
+
* Optional explicit reference to the `[forTimePicker]` root, named after the
|
|
15742
|
+
* selector `routerLink`-style. The bare valueless attribute keeps resolving
|
|
15743
|
+
* the enclosing root via DI; pass the root explicitly
|
|
15744
|
+
* (`[forTimePickerTrigger]="root"`, with `#root="forTimePicker"`) when the
|
|
15745
|
+
* trigger is declared in an `ng-template` stamped inside the root.
|
|
15746
|
+
*/
|
|
15747
|
+
readonly forTimePickerTrigger: _angular_core.InputSignal<"" | ForTimePickerContext<D>>;
|
|
15748
|
+
protected readonly ctx: _angular_core.Signal<ForTimePickerContext<D>>;
|
|
15749
|
+
constructor();
|
|
15750
|
+
protected onClick(): void;
|
|
15751
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
15752
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
15753
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePickerTrigger<any>, never>;
|
|
15754
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePickerTrigger<any>, "[forTimePickerTrigger]", ["forTimePickerTrigger"], { "forTimePickerTrigger": { "alias": "forTimePickerTrigger"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15755
|
+
}
|
|
15756
|
+
|
|
15757
|
+
/**
|
|
15758
|
+
* Renders the currently selected time slot's label — or the configured
|
|
15759
|
+
* placeholder when nothing is selected — into its host element via
|
|
15760
|
+
* `textContent`. Apply on a `<span>` (or any inline element) inside
|
|
15761
|
+
* `[forTimePickerTrigger]`:
|
|
15762
|
+
*
|
|
15763
|
+
* ```html
|
|
15764
|
+
* <button forTimePickerTrigger>
|
|
15765
|
+
* <span forTimePickerValue placeholder="Select a time…"></span>
|
|
15766
|
+
* </button>
|
|
15767
|
+
* ```
|
|
15768
|
+
*/
|
|
15769
|
+
declare class ForTimePickerValue {
|
|
15770
|
+
#private;
|
|
15771
|
+
/** Text shown when nothing is selected. Falls back to `[forTimePicker][placeholder]`. */
|
|
15772
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
15773
|
+
protected readonly isPlaceholder: _angular_core.Signal<boolean>;
|
|
15774
|
+
protected readonly displayText: _angular_core.Signal<string>;
|
|
15775
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePickerValue, never>;
|
|
15776
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePickerValue, "[forTimePickerValue]", ["forTimePickerValue"], { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15777
|
+
}
|
|
15778
|
+
|
|
15779
|
+
/**
|
|
15780
|
+
* The listbox surface of the time picker. Carries `role="listbox"`, is
|
|
15781
|
+
* portaled to `document.body`, and is positioned by `@floating-ui/dom`
|
|
15782
|
+
* against the trigger.
|
|
15783
|
+
*
|
|
15784
|
+
* Mount/unmount of the visible content is the consumer's responsibility —
|
|
15785
|
+
* wrap with `@if (open())` so `animate.enter` / `animate.leave` fire on the
|
|
15786
|
+
* natural mount cycle. While mounted, a `DismissableLayer` activates (Escape,
|
|
15787
|
+
* pointer-down outside, focus outside); the trigger element is exempt from
|
|
15788
|
+
* outside-pointer checks so trigger clicks toggle without dismissal racing.
|
|
15789
|
+
*
|
|
15790
|
+
* Initial focus is sent to the selected slot (`'selected'`), the first
|
|
15791
|
+
* enabled slot (`'first'`), or the last enabled slot (`'last'`) according to
|
|
15792
|
+
* the trigger's hint. On destroy, focus returns to the trigger when
|
|
15793
|
+
* `returnFocus` is true.
|
|
15794
|
+
*/
|
|
15795
|
+
declare class ForTimePickerContent {
|
|
15796
|
+
#private;
|
|
15797
|
+
protected readonly ctx: forty_cdk.ForTimePickerContext<unknown>;
|
|
15798
|
+
constructor();
|
|
15799
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePickerContent, never>;
|
|
15800
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePickerContent, "[forTimePickerContent]", ["forTimePickerContent"], {}, {}, never, never, true, never>;
|
|
15801
|
+
}
|
|
15802
|
+
|
|
15803
|
+
/**
|
|
15804
|
+
* One option inside a `[forTimePickerContent]`. Apply on a `<div>` (or any
|
|
15805
|
+
* non-button element) — the option handles Enter/Space activation itself in its
|
|
15806
|
+
* keydown handler because a `<div>` has no native keyboard click.
|
|
15807
|
+
*
|
|
15808
|
+
* @typeParam D The adapter's date-time type (inferred from `[value]`).
|
|
15809
|
+
*
|
|
15810
|
+
* Keyboard while focused:
|
|
15811
|
+
* - **Enter / Space** — activate (select the slot).
|
|
15812
|
+
* - **ArrowDown / ArrowUp / Home / End** — move focus inside the listbox.
|
|
15813
|
+
* - **Tab / Shift+Tab** — commit the focused slot and let the browser advance
|
|
15814
|
+
* focus to the next / previous focusable.
|
|
15815
|
+
* - **Escape** — routed through the content's keydown to close the listbox.
|
|
15816
|
+
*/
|
|
15817
|
+
declare class ForTimePickerOption<D = unknown> {
|
|
15818
|
+
#private;
|
|
15819
|
+
/**
|
|
15820
|
+
* The date-time value this option represents. Provided by the parent
|
|
15821
|
+
* `[forTimePicker]`'s `slots()` computed.
|
|
15822
|
+
*/
|
|
15823
|
+
readonly value: _angular_core.InputSignal<D>;
|
|
15824
|
+
/** When `true`, this option cannot be selected. */
|
|
15825
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15826
|
+
readonly id: _angular_core.Signal<string>;
|
|
15827
|
+
readonly selected: _angular_core.Signal<boolean>;
|
|
15828
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
15829
|
+
/** True while this option has DOM focus. Reflected as `data-highlighted`. */
|
|
15830
|
+
readonly highlighted: _angular_core.Signal<boolean>;
|
|
15831
|
+
constructor();
|
|
15832
|
+
protected onClick(): void;
|
|
15833
|
+
protected onFocus(): void;
|
|
15834
|
+
protected onBlur(): void;
|
|
15835
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
15836
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForTimePickerOption<any>, never>;
|
|
15837
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForTimePickerOption<any>, "[forTimePickerOption]", ["forTimePickerOption"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15838
|
+
}
|
|
15839
|
+
|
|
15840
|
+
/**
|
|
15841
|
+
* Defaults inherited by descendant time pickers in the surrounding injector
|
|
15842
|
+
* scope. Configure with `provideForTimePickerDefaults` either at the
|
|
15843
|
+
* application root or in any component's `providers` array; partial overrides
|
|
15844
|
+
* merge with the parent scope.
|
|
15845
|
+
*/
|
|
15846
|
+
interface ForTimePickerDefaults {
|
|
15847
|
+
/**
|
|
15848
|
+
* Distance (px) between the time picker trigger and the floating content
|
|
15849
|
+
* along the resolved `side` axis. Mirrors Radix's `sideOffset`.
|
|
15850
|
+
*/
|
|
15851
|
+
sideOffset: number;
|
|
15852
|
+
/**
|
|
15853
|
+
* Padding (px) added to the viewport edges for collision-aware positioning.
|
|
15854
|
+
* Higher values keep the floating content further from the edge when
|
|
15855
|
+
* `flip` / `shift` runs.
|
|
15856
|
+
*/
|
|
15857
|
+
collisionPadding: number;
|
|
15858
|
+
}
|
|
15859
|
+
/** Token holding the resolved time picker defaults for the current scope. */
|
|
15860
|
+
declare const FOR_TIME_PICKER_DEFAULTS: _angular_core.InjectionToken<ForTimePickerDefaults>;
|
|
15861
|
+
/**
|
|
15862
|
+
* Configures forty-cdk time picker defaults for this injector scope. Partial
|
|
15863
|
+
* overrides inherit unspecified keys from the parent scope (or library defaults
|
|
15864
|
+
* at the root).
|
|
15865
|
+
*/
|
|
15866
|
+
declare function provideForTimePickerDefaults(defaults?: Partial<ForTimePickerDefaults>): Provider[];
|
|
15867
|
+
|
|
15868
|
+
/**
|
|
15869
|
+
* Exact public names of every `ForTimePicker` input, its models included.
|
|
15870
|
+
* Spread it into the `inputs` array of a `hostDirectives` entry so a wrapper
|
|
15871
|
+
* component re-exposes the primitive's full surface — the Signal Forms members
|
|
15872
|
+
* `[formField]` binds among them — without hand-maintaining the list. Always
|
|
15873
|
+
* spread into an inline object literal so the entry is statically analyzable.
|
|
15874
|
+
* An anti-drift spec fails when this list no longer matches the directive's
|
|
15875
|
+
* actual API.
|
|
15876
|
+
*
|
|
15877
|
+
* @example
|
|
15878
|
+
* ```ts
|
|
15879
|
+
* @Component({
|
|
15880
|
+
* selector: 'div[myTimePicker]',
|
|
15881
|
+
* template: '',
|
|
15882
|
+
* hostDirectives: [
|
|
15883
|
+
* {
|
|
15884
|
+
* directive: ForTimePicker,
|
|
15885
|
+
* inputs: [...FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS],
|
|
15886
|
+
* outputs: [...FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS],
|
|
15887
|
+
* },
|
|
15888
|
+
* ],
|
|
15889
|
+
* })
|
|
15890
|
+
* export class MyTimePicker {}
|
|
15891
|
+
* ```
|
|
15892
|
+
*/
|
|
15893
|
+
declare const FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS: readonly ["value", "open", "align", "alignOffset", "ariaLabel", "arrowPadding", "avoidCollisions", "clipUntilPositioned", "closeOnSelect", "collisionPadding", "dir", "dirty", "disabled", "dismissible", "errors", "formatOptions", "granularity", "hideWhenDetached", "hourCycle", "invalid", "locale", "loop", "maxTime", "minTime", "modal", "name", "orientation", "pending", "placeholder", "readonly", "required", "returnFocus", "side", "sideOffset", "step", "sticky", "touched"];
|
|
15894
|
+
/**
|
|
15895
|
+
* Exact public names of every `ForTimePicker` output, the Signal Forms `touch`
|
|
15896
|
+
* output included. Spread it into the `outputs` array of the same
|
|
15897
|
+
* `hostDirectives` entry as {@link FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS}.
|
|
15898
|
+
*/
|
|
15899
|
+
declare const FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS: readonly ["valueChange", "openChange", "escapeKeyDown", "pointerDownOutside", "focusOutside", "interactOutside", "autoFocusOnOpen", "autoFocusOnClose", "touchedChange", "touch"];
|
|
15900
|
+
|
|
15901
|
+
/** Alignment of the active slide within the viewport. */
|
|
15902
|
+
type CarouselAlign = 'start' | 'center' | 'end';
|
|
15903
|
+
/** Internal handle for a registered slide. */
|
|
15904
|
+
interface ForCarouselSlideHandle {
|
|
15905
|
+
readonly host: HTMLElement;
|
|
15906
|
+
}
|
|
15907
|
+
/** Internal handle for a registered indicator (dot). */
|
|
15908
|
+
interface ForCarouselIndicatorHandle {
|
|
15909
|
+
readonly host: HTMLElement;
|
|
15910
|
+
readonly disabled: Signal<boolean>;
|
|
15911
|
+
}
|
|
15912
|
+
/**
|
|
15913
|
+
* Coordination contract owned by `ForCarousel`. Slides and indicators
|
|
15914
|
+
* register with the root so index lookups, geometry computations, and
|
|
15915
|
+
* keyboard navigation are all driven from a single source of truth.
|
|
15916
|
+
*/
|
|
15917
|
+
interface ForCarouselContext {
|
|
15918
|
+
readonly activeIndex: Signal<number>;
|
|
15919
|
+
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
15920
|
+
readonly dir: Signal<WritingDirection>;
|
|
15921
|
+
readonly loop: Signal<boolean>;
|
|
15922
|
+
readonly align: Signal<CarouselAlign>;
|
|
15923
|
+
readonly slidesPerView: Signal<number>;
|
|
15924
|
+
readonly slideCount: Signal<number>;
|
|
15925
|
+
readonly roving: RovingTabindex;
|
|
15926
|
+
/** Whether auto-rotation is currently "on" (user intent). Drives the rotation control's label. */
|
|
15927
|
+
readonly playing: Signal<boolean>;
|
|
15928
|
+
/** Whether the carousel is actively auto-rotating right now (`playing && !paused`). Drives the viewport's `aria-live`. */
|
|
15929
|
+
readonly rotating: Signal<boolean>;
|
|
15930
|
+
canScrollPrev(): boolean;
|
|
15931
|
+
canScrollNext(): boolean;
|
|
15932
|
+
scrollPrev(): void;
|
|
15933
|
+
scrollNext(): void;
|
|
15934
|
+
scrollTo(index: number): void;
|
|
15935
|
+
navigate(currentIndicator: HTMLElement, action: ListNavigationAction): void;
|
|
15936
|
+
/** Toggle auto-rotation on/off (the explicit, sticky user choice). Called by the rotation control. */
|
|
15937
|
+
toggleAutoplay(): void;
|
|
15938
|
+
registerSlide(handle: ForCarouselSlideHandle): void;
|
|
15939
|
+
unregisterSlide(handle: ForCarouselSlideHandle): void;
|
|
15940
|
+
registerIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
15941
|
+
unregisterIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
15942
|
+
setViewport(el: HTMLElement, id: string): void;
|
|
15943
|
+
viewportId(): string | null;
|
|
15944
|
+
indexOfSlide(host: HTMLElement): number;
|
|
15945
|
+
indexOfIndicator(host: HTMLElement): number;
|
|
15946
|
+
isCurrent(index: number): boolean;
|
|
15947
|
+
isInView(index: number): boolean;
|
|
15948
|
+
isFirstEnabledIndicator(el: HTMLElement): boolean;
|
|
15949
|
+
hasCurrentIndicator(): boolean;
|
|
15950
|
+
}
|
|
15951
|
+
/** DI token providing the carousel context to descendant pieces. */
|
|
15952
|
+
declare const FOR_CAROUSEL_CONTEXT: InjectionToken<ForCarouselContext>;
|
|
15953
|
+
|
|
15954
|
+
/**
|
|
15955
|
+
* Root of the Carousel primitive. Owns the active index, slide collection,
|
|
15956
|
+
* indicator collection, roving tabindex tracker, and computed geometry CSS
|
|
15957
|
+
* variables. Provides the shared context to descendant pieces.
|
|
15958
|
+
*
|
|
15959
|
+
* Implements the [WAI-ARIA APG Carousel pattern](https://www.w3.org/WAI/ARIA/apg/patterns/carousel/).
|
|
15960
|
+
*
|
|
15961
|
+
* With no `[forCarouselIndicators]` rendered this is a basic carousel driven
|
|
15962
|
+
* by prev/next buttons only. Adding an indicator group enables APG picker
|
|
15963
|
+
* semantics: roving tabindex, arrow/Home/End navigation with automatic
|
|
15964
|
+
* activation.
|
|
15965
|
+
*/
|
|
15966
|
+
declare class ForCarousel implements ForCarouselContext {
|
|
15967
|
+
#private;
|
|
15968
|
+
/**
|
|
15969
|
+
* Two-way bindable. The zero-based index of the current (leading) slide.
|
|
15970
|
+
* The `model()` change emitter (`(activeIndexChange)`) fires only on internal
|
|
15971
|
+
* navigation (prev/next button clicks, indicator arrow-key or click), never
|
|
15972
|
+
* on consumer writes via `[(activeIndex)]`.
|
|
15973
|
+
*/
|
|
15974
|
+
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
15975
|
+
/** Scroll axis. `'horizontal'` (default) or `'vertical'`. */
|
|
15976
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
15977
|
+
/**
|
|
15978
|
+
* Whether index wrap-around is enabled. When `true`, `next` past the last
|
|
15979
|
+
* slide wraps to index 0; `prev` before index 0 wraps to the last. Default
|
|
15980
|
+
* comes from `provideForCarouselDefaults` or the library fallback (`false`).
|
|
15981
|
+
*/
|
|
15982
|
+
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15983
|
+
/**
|
|
15984
|
+
* Alignment of the active slide within the viewport. Affects the
|
|
15985
|
+
* `--for-carousel-offset` computation. Default from `provideForCarouselDefaults`
|
|
15986
|
+
* or `'start'`.
|
|
15987
|
+
*/
|
|
15988
|
+
readonly align: _angular_core.InputSignal<CarouselAlign>;
|
|
15989
|
+
/**
|
|
15990
|
+
* Number of slides simultaneously visible in the viewport. Slide width
|
|
15991
|
+
* should be set to `calc(100% / var(--for-carousel-slides-per-view))` in
|
|
15992
|
+
* the consumer's CSS. Default from `provideForCarouselDefaults` or `1`.
|
|
15993
|
+
*/
|
|
15994
|
+
readonly slidesPerView: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
15995
|
+
/**
|
|
15996
|
+
* When `true` and the carousel is not looping, clamps `--for-carousel-offset` so the
|
|
15997
|
+
* trailing slides align flush to the viewport's trailing edge instead of overscrolling
|
|
15998
|
+
* into empty space (relevant when `slidesPerView > 1`). The one-indicator-per-slide
|
|
15999
|
+
* mapping is preserved — `activeIndex` still reaches the last slide; only the visual
|
|
16000
|
+
* offset is contained. No effect when `loop` is enabled or `slidesPerView` is 1.
|
|
16001
|
+
* Default from `provideForCarouselDefaults` or `false`.
|
|
16002
|
+
*/
|
|
16003
|
+
readonly containScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16004
|
+
/**
|
|
16005
|
+
* Accessible label for the carousel root (`role="group"`). Should describe
|
|
16006
|
+
* the carousel's purpose without using the word "carousel" (APG guidance).
|
|
16007
|
+
* When null (default), no `aria-label` is emitted; use `aria-labelledby`
|
|
16008
|
+
* instead when a visible heading labels the carousel.
|
|
16009
|
+
*/
|
|
16010
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16011
|
+
/**
|
|
16012
|
+
* Whether the carousel auto-rotates. When `true` and the user has not
|
|
16013
|
+
* explicitly stopped it, rotation starts on mount — *unless*
|
|
16014
|
+
* `prefers-reduced-motion: reduce` is set, which suppresses auto-start
|
|
16015
|
+
* (the user can still start it via the rotation control). Default from
|
|
16016
|
+
* `provideForCarouselDefaults` or `false`.
|
|
16017
|
+
*
|
|
16018
|
+
* APG requires a `[forCarouselRotationControl]` to be present whenever
|
|
16019
|
+
* autoplay is enabled. The directive does not enforce this — see the README.
|
|
16020
|
+
*/
|
|
16021
|
+
readonly autoplay: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16022
|
+
/**
|
|
16023
|
+
* Milliseconds between automatic slide advances while rotating. Values
|
|
16024
|
+
* `<= 0` disable the timer. Default from `provideForCarouselDefaults` or `5000`.
|
|
16025
|
+
*/
|
|
16026
|
+
readonly autoplayInterval: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
16027
|
+
/**
|
|
16028
|
+
* Writing direction. When unset (default `null`), the inherited ambient
|
|
16029
|
+
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
16030
|
+
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
16031
|
+
* The resolved value is reflected to the host `dir` attribute and swaps
|
|
16032
|
+
* ArrowLeft / ArrowRight semantics on the indicator group in RTL.
|
|
16033
|
+
*/
|
|
16034
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
16035
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
16036
|
+
/** Roving tabindex tracker for the indicator group. */
|
|
16037
|
+
readonly roving: RovingTabindex;
|
|
16038
|
+
/** Whether auto-rotation is "on" (user intent). Sticky once the user decides. */
|
|
16039
|
+
readonly playing: _angular_core.Signal<boolean>;
|
|
16040
|
+
/** Whether the carousel is actively auto-rotating right now. */
|
|
16041
|
+
readonly rotating: _angular_core.Signal<boolean>;
|
|
16042
|
+
/** Total number of registered slides. Reactive. */
|
|
16043
|
+
readonly slideCount: _angular_core.Signal<number>;
|
|
16044
|
+
/**
|
|
16045
|
+
* The `--for-carousel-offset` value to apply via `transform` on the track.
|
|
16046
|
+
* Pure arithmetic — no layout measurement — so it is safe in Vitest.
|
|
16047
|
+
*/
|
|
16048
|
+
readonly offset: _angular_core.Signal<string>;
|
|
16049
|
+
/** The measured viewport width, or `null` before first measurement / on the server. */
|
|
16050
|
+
readonly viewportWidth: _angular_core.Signal<string | null>;
|
|
16051
|
+
/** The measured viewport height, or `null` before first measurement / on the server. */
|
|
16052
|
+
readonly viewportHeight: _angular_core.Signal<string | null>;
|
|
16053
|
+
constructor();
|
|
16054
|
+
/** Returns `true` when scrolling backward is possible given the current loop/index state. */
|
|
16055
|
+
canScrollPrev(): boolean;
|
|
16056
|
+
/** Returns `true` when scrolling forward is possible given the current loop/index state. */
|
|
16057
|
+
canScrollNext(): boolean;
|
|
16058
|
+
/** Navigate to the previous slide. No-op at index 0 when not looping. */
|
|
16059
|
+
scrollPrev(): void;
|
|
16060
|
+
/** Navigate to the next slide. No-op at the last index when not looping. */
|
|
16061
|
+
scrollNext(): void;
|
|
16062
|
+
/**
|
|
16063
|
+
* Navigate to the slide at `index`. Clamps to `[0, slideCount-1]` when not
|
|
16064
|
+
* looping; wraps modulo `slideCount` when looping.
|
|
16065
|
+
*/
|
|
16066
|
+
scrollTo(index: number): void;
|
|
16067
|
+
/**
|
|
16068
|
+
* Move focus from `currentIndicator` according to `action` and activate the
|
|
16069
|
+
* target slide (automatic activation). Used by `ForCarouselIndicator`'s
|
|
16070
|
+
* keydown handler.
|
|
16071
|
+
*/
|
|
16072
|
+
navigate(currentIndicator: HTMLElement, action: ListNavigationAction): void;
|
|
16073
|
+
registerSlide(handle: ForCarouselSlideHandle): void;
|
|
16074
|
+
unregisterSlide(handle: ForCarouselSlideHandle): void;
|
|
16075
|
+
registerIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
16076
|
+
unregisterIndicator(handle: ForCarouselIndicatorHandle): void;
|
|
16077
|
+
/** Called by `ForCarouselViewport` at construction to wire the geometry observer. */
|
|
16078
|
+
setViewport(el: HTMLElement, id: string): void;
|
|
16079
|
+
/** The id of the registered viewport element, or `null` if none is mounted. */
|
|
16080
|
+
viewportId(): string | null;
|
|
16081
|
+
/** DOM-order index of the registered slide whose host equals `host`, or -1. */
|
|
16082
|
+
indexOfSlide(host: HTMLElement): number;
|
|
16083
|
+
/** DOM-order index of the registered indicator whose host equals `host`, or -1. */
|
|
16084
|
+
indexOfIndicator(host: HTMLElement): number;
|
|
16085
|
+
/** Returns `true` when `index` is the current active slide index. */
|
|
16086
|
+
isCurrent(index: number): boolean;
|
|
16087
|
+
/**
|
|
16088
|
+
* Returns `true` when `index` falls within the visible window
|
|
16089
|
+
* `[activeIndex, activeIndex + slidesPerView - 1]`.
|
|
16090
|
+
*/
|
|
16091
|
+
isInView(index: number): boolean;
|
|
16092
|
+
/**
|
|
16093
|
+
* Returns `true` when `el` is the host of the first non-disabled indicator
|
|
16094
|
+
* in DOM order. Used by the tabindex fallback when no indicator is current.
|
|
16095
|
+
*/
|
|
16096
|
+
isFirstEnabledIndicator(el: HTMLElement): boolean;
|
|
16097
|
+
/**
|
|
16098
|
+
* Returns `true` when at least one registered, non-disabled indicator
|
|
16099
|
+
* matches the current `activeIndex`. Used by the tabindex ladder to decide
|
|
16100
|
+
* whether the first-enabled fallback must reclaim the tab stop.
|
|
16101
|
+
*/
|
|
16102
|
+
hasCurrentIndicator(): boolean;
|
|
16103
|
+
/** Start auto-rotation (explicit, sticky). Overrides the reduced-motion auto-start gate. */
|
|
16104
|
+
play(): void;
|
|
16105
|
+
/** Stop auto-rotation (explicit, sticky). Hover/focus/visibility changes will not restart it. */
|
|
16106
|
+
pause(): void;
|
|
16107
|
+
/** Toggle auto-rotation. Called by `[forCarouselRotationControl]`. */
|
|
16108
|
+
toggleAutoplay(): void;
|
|
16109
|
+
protected onAutoplayPause(reason: 'hover' | 'focus'): void;
|
|
16110
|
+
protected onAutoplayResume(reason: 'hover' | 'focus'): void;
|
|
16111
|
+
protected onAutoplayFocusOut(event: FocusEvent): void;
|
|
16112
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarousel, never>;
|
|
16113
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarousel, "[forCarousel]", ["forCarousel"], { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "slidesPerView": { "alias": "slidesPerView"; "required": false; "isSignal": true; }; "containScroll": { "alias": "containScroll"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "autoplay": { "alias": "autoplay"; "required": false; "isSignal": true; }; "autoplayInterval": { "alias": "autoplayInterval"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, never, never, true, never>;
|
|
16114
|
+
}
|
|
16115
|
+
|
|
16116
|
+
/**
|
|
16117
|
+
* Clips the visible window of the carousel track. Acts as the APG-mandated
|
|
16118
|
+
* live region for screen-reader announcements. `aria-live` flips between
|
|
16119
|
+
* `"off"` while the carousel is actively auto-rotating (so advancing slides
|
|
16120
|
+
* do not bombard the screen reader) and `"polite"` at all other times so
|
|
16121
|
+
* manual navigation is announced. Also serves as the `aria-controls` target
|
|
16122
|
+
* for the prev/next buttons.
|
|
16123
|
+
*
|
|
16124
|
+
* Registers itself with the carousel root on construction so the root's
|
|
16125
|
+
* `injectElementSize` observer starts and prev/next's `aria-controls` resolves.
|
|
16126
|
+
* There must be exactly one viewport per carousel.
|
|
16127
|
+
*/
|
|
16128
|
+
declare class ForCarouselViewport {
|
|
16129
|
+
#private;
|
|
16130
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16131
|
+
/** The resolved id of this element — generated or adopted from a consumer-set static `id`. */
|
|
16132
|
+
readonly id: _angular_core.Signal<string>;
|
|
16133
|
+
constructor();
|
|
16134
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselViewport, never>;
|
|
16135
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselViewport, "[forCarouselViewport]", ["forCarouselViewport"], {}, {}, never, never, true, never>;
|
|
16136
|
+
}
|
|
16137
|
+
|
|
16138
|
+
/**
|
|
16139
|
+
* The flex container of slides. The consumer's CSS reads
|
|
16140
|
+
* `--for-carousel-offset` (inherited from the root) and applies it as a
|
|
16141
|
+
* `transform: translateX(...)` / `translateY(...)` on this element.
|
|
16142
|
+
* The directive adds no animation or transform itself.
|
|
16143
|
+
*
|
|
16144
|
+
* Reflects `data-orientation` so the consumer can select the correct CSS
|
|
16145
|
+
* axis via `[data-orientation="vertical"] [forCarouselTrack] { ... }`.
|
|
16146
|
+
*/
|
|
16147
|
+
declare class ForCarouselTrack {
|
|
16148
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16149
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselTrack, never>;
|
|
16150
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselTrack, "[forCarouselTrack]", ["forCarouselTrack"], {}, {}, never, never, true, never>;
|
|
16151
|
+
}
|
|
16152
|
+
|
|
16153
|
+
/**
|
|
16154
|
+
* One slide in the carousel track. Carries `role="group"` and
|
|
16155
|
+
* `aria-roledescription="slide"` per the WAI-ARIA APG Carousel pattern.
|
|
16156
|
+
*
|
|
16157
|
+
* The default `aria-label` is the positional `"N of M"` string (APG mandates
|
|
16158
|
+
* a positional label on each slide). Set `ariaLabel` to override with a
|
|
16159
|
+
* semantically richer label for the specific slide content.
|
|
16160
|
+
*
|
|
16161
|
+
* Off-view slides (outside `[activeIndex, activeIndex + slidesPerView - 1]`)
|
|
16162
|
+
* are hidden from the accessibility tree and focus order via
|
|
16163
|
+
* `aria-hidden="true"` + `inert`.
|
|
16164
|
+
*/
|
|
16165
|
+
declare class ForCarouselSlide {
|
|
16166
|
+
#private;
|
|
16167
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16168
|
+
/**
|
|
16169
|
+
* Override the default positional `aria-label` (`"N of M"`). Use this to
|
|
16170
|
+
* provide a semantically richer label when the slide's content has a
|
|
16171
|
+
* meaningful title (e.g. the product name). When `null` (default), the
|
|
16172
|
+
* positional label is used automatically.
|
|
16173
|
+
*/
|
|
16174
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16175
|
+
/** Whether this is the current (active) slide. */
|
|
16176
|
+
protected readonly current: _angular_core.Signal<boolean>;
|
|
16177
|
+
/** Whether this slide is within the visible window. */
|
|
16178
|
+
protected readonly inView: _angular_core.Signal<boolean>;
|
|
16179
|
+
/** The positional `"N of M"` label used when no explicit `ariaLabel` is set. */
|
|
16180
|
+
protected readonly positionLabel: _angular_core.Signal<string | null>;
|
|
16181
|
+
constructor();
|
|
16182
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselSlide, never>;
|
|
16183
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselSlide, "[forCarouselSlide]", ["forCarouselSlide"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16184
|
+
}
|
|
16185
|
+
|
|
16186
|
+
/**
|
|
16187
|
+
* Previous-slide button. Apply on a `<button>` so Enter/Space activation is
|
|
16188
|
+
* native. Disabled (via the native `disabled` attribute) at index 0 when the
|
|
16189
|
+
* carousel is not looping. When `loop` is `true` it is never disabled.
|
|
16190
|
+
*
|
|
16191
|
+
* Points `aria-controls` at the viewport's id so screen readers announce the
|
|
16192
|
+
* relationship. Clicking does not move focus (APG).
|
|
16193
|
+
*/
|
|
16194
|
+
declare class ForCarouselPrevious {
|
|
16195
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16196
|
+
/**
|
|
16197
|
+
* Accessible label for this button (e.g. "Previous slide"). When `null`
|
|
16198
|
+
* (default), no `aria-label` is emitted — the consumer should supply a
|
|
16199
|
+
* visible label or set this input.
|
|
16200
|
+
*/
|
|
16201
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16202
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
16203
|
+
constructor();
|
|
16204
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselPrevious, never>;
|
|
16205
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselPrevious, "[forCarouselPrevious]", ["forCarouselPrevious"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16206
|
+
}
|
|
16207
|
+
|
|
16208
|
+
/**
|
|
16209
|
+
* Next-slide button. Apply on a `<button>` so Enter/Space activation is
|
|
16210
|
+
* native. Disabled (via the native `disabled` attribute) at the last index
|
|
16211
|
+
* when the carousel is not looping. When `loop` is `true` it is never disabled.
|
|
16212
|
+
*
|
|
16213
|
+
* Points `aria-controls` at the viewport's id so screen readers announce the
|
|
16214
|
+
* relationship. Clicking does not move focus (APG).
|
|
16215
|
+
*/
|
|
16216
|
+
declare class ForCarouselNext {
|
|
16217
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16218
|
+
/**
|
|
16219
|
+
* Accessible label for this button (e.g. "Next slide"). When `null`
|
|
16220
|
+
* (default), no `aria-label` is emitted — the consumer should supply a
|
|
16221
|
+
* visible label or set this input.
|
|
16222
|
+
*/
|
|
16223
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16224
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
16225
|
+
constructor();
|
|
16226
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselNext, never>;
|
|
16227
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselNext, "[forCarouselNext]", ["forCarouselNext"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16228
|
+
}
|
|
16229
|
+
|
|
16230
|
+
/**
|
|
16231
|
+
* The slide-picker group (dot navigation). Renders as `role="group"` and
|
|
16232
|
+
* should receive an `ariaLabel` describing its purpose (e.g. "Choose slide
|
|
16233
|
+
* to display") per the WAI-ARIA APG Carousel pattern.
|
|
16234
|
+
*
|
|
16235
|
+
* Keyboard navigation (ArrowLeft/Right, Home/End) and automatic activation
|
|
16236
|
+
* live on each `[forCarouselIndicator]` child, not on this container.
|
|
16237
|
+
*/
|
|
16238
|
+
declare class ForCarouselIndicators {
|
|
16239
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16240
|
+
/**
|
|
16241
|
+
* Accessible label for the picker group (e.g. "Choose slide to display").
|
|
16242
|
+
* APG recommends labelling the group so screen readers can distinguish it
|
|
16243
|
+
* from other landmarks.
|
|
16244
|
+
*/
|
|
16245
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16246
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselIndicators, never>;
|
|
16247
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselIndicators, "[forCarouselIndicators]", ["forCarouselIndicators"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16248
|
+
}
|
|
16249
|
+
|
|
16250
|
+
/**
|
|
16251
|
+
* One indicator (dot) in the slide picker. Apply on a `<button>` so
|
|
16252
|
+
* Enter/Space activation is native. Uses roving tabindex — only the current
|
|
16253
|
+
* dot owns `tabindex=0`; all others have `tabindex=-1`. Arrow/Home/End
|
|
16254
|
+
* navigation activates the target slide automatically (APG "grouped/tabbed
|
|
16255
|
+
* picker" variant).
|
|
16256
|
+
*
|
|
16257
|
+
* The current indicator is marked with `aria-current="true"` (truthy-only).
|
|
16258
|
+
* Disabled indicators receive `aria-disabled="true"` and `data-disabled` but
|
|
16259
|
+
* stay focusable (custom-role rule) so assistive tech can announce them.
|
|
16260
|
+
*/
|
|
16261
|
+
declare class ForCarouselIndicator {
|
|
16262
|
+
#private;
|
|
16263
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16264
|
+
/**
|
|
16265
|
+
* Override the default positional `aria-label` (e.g. `"Go to slide 1"`).
|
|
16266
|
+
* Use this to provide a more descriptive label when the slide has a title.
|
|
16267
|
+
*/
|
|
16268
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
16269
|
+
/**
|
|
16270
|
+
* Disables this indicator. Disabled indicators remain focusable (for
|
|
16271
|
+
* assistive tech) but ignore click and keyboard activation.
|
|
16272
|
+
*/
|
|
16273
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16274
|
+
/** Whether this indicator corresponds to the current active slide. */
|
|
16275
|
+
protected readonly current: _angular_core.Signal<boolean>;
|
|
16276
|
+
/** Default positional label used when no explicit `ariaLabel` is set. */
|
|
16277
|
+
protected readonly positionLabel: _angular_core.Signal<string | null>;
|
|
16278
|
+
/**
|
|
16279
|
+
* APG roving tabindex: user-driven roving owns it once any indicator has
|
|
16280
|
+
* been focused. Before that, fall back to "current slide's indicator, else
|
|
16281
|
+
* first enabled".
|
|
16282
|
+
*/
|
|
16283
|
+
protected readonly tabindex: _angular_core.Signal<0 | -1>;
|
|
16284
|
+
constructor();
|
|
16285
|
+
protected onClick(): void;
|
|
16286
|
+
protected onFocus(): void;
|
|
16287
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
16288
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselIndicator, never>;
|
|
16289
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselIndicator, "[forCarouselIndicator]", ["forCarouselIndicator"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16290
|
+
}
|
|
16291
|
+
|
|
16292
|
+
/**
|
|
16293
|
+
* Play/pause control for carousel auto-rotation. Apply on a `<button>` so
|
|
16294
|
+
* Enter/Space activation is native. Its accessible name swaps with the
|
|
16295
|
+
* rotation state — `stopLabel` while rotating, `startLabel` while stopped —
|
|
16296
|
+
* per the WAI-ARIA APG Carousel pattern, which forbids `aria-pressed` here.
|
|
16297
|
+
*
|
|
16298
|
+
* Place this control **first** in the carousel's DOM/tab order so assistive
|
|
16299
|
+
* technology users meet it before the rotating content (APG requirement).
|
|
16300
|
+
*
|
|
16301
|
+
* Reflects a boolean `data-playing` attribute (present while rotation is on)
|
|
16302
|
+
* as the styling hook for swapping a play/pause icon.
|
|
16303
|
+
*/
|
|
16304
|
+
declare class ForCarouselRotationControl {
|
|
16305
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16306
|
+
/** Accessible name shown while rotation is **stopped** (the button will start it). */
|
|
16307
|
+
readonly startLabel: _angular_core.InputSignal<string>;
|
|
16308
|
+
/** Accessible name shown while rotation is **playing** (the button will stop it). */
|
|
16309
|
+
readonly stopLabel: _angular_core.InputSignal<string>;
|
|
16310
|
+
/** The current accessible name — `stopLabel` while playing, else `startLabel`. */
|
|
16311
|
+
protected readonly label: _angular_core.Signal<string>;
|
|
16312
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselRotationControl, never>;
|
|
16313
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselRotationControl, "[forCarouselRotationControl]", ["forCarouselRotationControl"], { "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "stopLabel": { "alias": "stopLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16314
|
+
}
|
|
16315
|
+
|
|
16316
|
+
/**
|
|
16317
|
+
* Opt-in pointer drag / swipe directive for the Carousel viewport. Apply on the
|
|
16318
|
+
* `[forCarouselViewport]` element to enable horizontal or vertical drag-to-navigate.
|
|
16319
|
+
*
|
|
16320
|
+
* Publishes `--for-carousel-drag` (px) during the gesture so the consumer can
|
|
16321
|
+
* compose it with `--for-carousel-offset` for live track motion. Reflects
|
|
16322
|
+
* `data-dragging` while the gesture is armed. Sets `touch-action` automatically
|
|
16323
|
+
* to free the cross axis for page scrolling.
|
|
16324
|
+
*
|
|
16325
|
+
* Under `prefers-reduced-motion: reduce` the live offset is suppressed, but the
|
|
16326
|
+
* gesture still snaps `activeIndex` on release (D3).
|
|
16327
|
+
*/
|
|
16328
|
+
declare class ForCarouselDrag {
|
|
16329
|
+
#private;
|
|
16330
|
+
protected readonly ctx: forty_cdk.ForCarouselContext;
|
|
16331
|
+
/** Disable pointer drag without removing the directive. Default `false`. */
|
|
16332
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16333
|
+
/** Whether a drag gesture is currently armed (reflected as `data-dragging`). */
|
|
16334
|
+
readonly dragging: _angular_core.Signal<boolean>;
|
|
16335
|
+
/** `touch-action` for the viewport: capture the primary axis, free the cross axis. */
|
|
16336
|
+
readonly touchAction: _angular_core.Signal<string | null>;
|
|
16337
|
+
/** Live offset CSS var; suppressed at rest and under reduced motion (D3). */
|
|
16338
|
+
readonly dragVar: _angular_core.Signal<string | null>;
|
|
16339
|
+
constructor();
|
|
16340
|
+
protected onDragStart(event: Event): void;
|
|
16341
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselDrag, never>;
|
|
16342
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselDrag, "[forCarouselDrag]", ["forCarouselDrag"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16343
|
+
}
|
|
16344
|
+
|
|
16345
|
+
/**
|
|
16346
|
+
* Defaults inherited by descendant carousels in the surrounding injector scope.
|
|
16347
|
+
* Configure with `provideForCarouselDefaults` either at the application root
|
|
16348
|
+
* or in any component's `providers` array; partial overrides merge with
|
|
16349
|
+
* the parent scope.
|
|
16350
|
+
*/
|
|
16351
|
+
interface ForCarouselDefaults {
|
|
16352
|
+
/**
|
|
16353
|
+
* Whether index wrap-around is enabled. When `true`, `next` past the last
|
|
16354
|
+
* slide wraps to index 0 and `prev` before index 0 wraps to the last slide.
|
|
16355
|
+
*/
|
|
16356
|
+
loop: boolean;
|
|
16357
|
+
/**
|
|
16358
|
+
* Alignment of the active slide within the viewport. `'start'` (default):
|
|
16359
|
+
* the active slide's leading edge aligns with the viewport's leading edge.
|
|
16360
|
+
* `'center'` / `'end'` offset accordingly.
|
|
16361
|
+
*/
|
|
16362
|
+
align: CarouselAlign;
|
|
16363
|
+
/**
|
|
16364
|
+
* Number of slides visible simultaneously in the viewport. Slide width is
|
|
16365
|
+
* set to `100% / slidesPerView` by the consumer's CSS.
|
|
16366
|
+
*/
|
|
16367
|
+
slidesPerView: number;
|
|
16368
|
+
/**
|
|
16369
|
+
* When `true` (and the carousel is not looping), clamps the track offset so the
|
|
16370
|
+
* trailing slides align flush to the viewport's trailing edge instead of
|
|
16371
|
+
* overscrolling into empty space when `slidesPerView > 1`. The indicator/slide
|
|
16372
|
+
* mapping is unchanged — only the visual offset is contained. Default `false`.
|
|
16373
|
+
*/
|
|
16374
|
+
containScroll: boolean;
|
|
16375
|
+
/** Whether the carousel auto-rotates on mount (when not under reduced-motion). Default `false`. */
|
|
16376
|
+
autoplay: boolean;
|
|
16377
|
+
/** Milliseconds between automatic slide advances. Default `5000`. */
|
|
16378
|
+
autoplayInterval: number;
|
|
16379
|
+
}
|
|
16380
|
+
/** Token holding the resolved carousel defaults for the current scope. */
|
|
16381
|
+
declare const FOR_CAROUSEL_DEFAULTS: _angular_core.InjectionToken<ForCarouselDefaults>;
|
|
16382
|
+
/**
|
|
16383
|
+
* Configures forty-cdk carousel defaults for this injector scope. Partial
|
|
16384
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
16385
|
+
* defaults at the root).
|
|
16386
|
+
*/
|
|
16387
|
+
declare function provideForCarouselDefaults(defaults?: Partial<ForCarouselDefaults>): Provider[];
|
|
16388
|
+
|
|
16389
|
+
/** A registered draggable item, as seen by its drop list. */
|
|
16390
|
+
interface ForDraggableHandle {
|
|
16391
|
+
readonly host: HTMLElement;
|
|
16392
|
+
/** The consumer-supplied data payload for this item. */
|
|
16393
|
+
readonly data: Signal<unknown>;
|
|
16394
|
+
/** Effective disabled (item's own `dragDisabled` OR the list being disabled). */
|
|
16395
|
+
readonly disabled: Signal<boolean>;
|
|
16396
|
+
}
|
|
16397
|
+
/**
|
|
16398
|
+
* Coordination contract owned by `ForDropList` and consumed by each `ForDraggable`. Also the
|
|
16399
|
+
* public handle type used by `[connectedTo]` and the `dragDrop` event's
|
|
16400
|
+
* `previousContainer` / `container` — advanced consumers may read `host` / `items`; the
|
|
16401
|
+
* interaction methods exist for the directive pieces.
|
|
16402
|
+
*/
|
|
16403
|
+
interface ForDropListContext {
|
|
16404
|
+
readonly host: HTMLElement;
|
|
16405
|
+
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
16406
|
+
readonly dir: Signal<WritingDirection>;
|
|
16407
|
+
/** Effective disabled of the whole list. */
|
|
16408
|
+
readonly disabled: Signal<boolean>;
|
|
16409
|
+
readonly items: Signal<readonly ForDraggableHandle[]>;
|
|
16410
|
+
/** Insertion index this list is the current drop target at, else `null`. */
|
|
16411
|
+
readonly dragOverIndex: Signal<number | null>;
|
|
16412
|
+
setDragOver(index: number | null): void;
|
|
16413
|
+
registerItem(handle: ForDraggableHandle): void;
|
|
16414
|
+
unregisterItem(handle: ForDraggableHandle): void;
|
|
16415
|
+
/** Roving tab-stop value for `el` before/after roving engages (mirror Listbox's pattern). */
|
|
16416
|
+
itemTabindex(el: HTMLElement): -1 | 0 | null;
|
|
16417
|
+
isFirstFocusableItem(el: HTMLElement): boolean;
|
|
16418
|
+
isItemHighlighted(el: HTMLElement): boolean;
|
|
16419
|
+
setActiveItem(el: HTMLElement): void;
|
|
16420
|
+
/** Idle roving focus move from `el`. */
|
|
16421
|
+
navigate(el: HTMLElement, action: ListNavigationAction): void;
|
|
16422
|
+
/** Start a keyboard drag for `el`; returns its source index, or `-1` if it could not lift. */
|
|
16423
|
+
lift(el: HTMLElement): number;
|
|
16424
|
+
/** Whether `el` is the currently lifted item. */
|
|
16425
|
+
isLifted(el: HTMLElement): boolean;
|
|
16426
|
+
/** Step the logical drop target while lifted. */
|
|
16427
|
+
moveLifted(action: ListNavigationAction): void;
|
|
16428
|
+
/** Commit the current drag (emits `dragDrop` on the source list). No-op if nothing lifted. */
|
|
16429
|
+
drop(): void;
|
|
16430
|
+
/** Abort the current drag without emitting `dragDrop`. */
|
|
16431
|
+
cancel(): void;
|
|
16432
|
+
/**
|
|
16433
|
+
* Begin a pointer drag for `el` at viewport point `point`. Sets up the same session state as a
|
|
16434
|
+
* keyboard lift. `preview` is the floating element supplied by the draggable (a consumer
|
|
16435
|
+
* `[forDragPreview]` template); when omitted, the list creates the default cloned preview.
|
|
16436
|
+
* Returns the source index, or `-1` if it could not lift.
|
|
16437
|
+
*/
|
|
16438
|
+
pointerLift(el: HTMLElement, point: {
|
|
16439
|
+
x: number;
|
|
16440
|
+
y: number;
|
|
16441
|
+
}, preview?: {
|
|
16442
|
+
moveTo(x: number, y: number): void;
|
|
16443
|
+
destroy(): void;
|
|
16444
|
+
} | null): number;
|
|
16445
|
+
/** Update the live pointer drop target + preview position. No-op if nothing is lifted. */
|
|
16446
|
+
pointerMove(point: {
|
|
16447
|
+
x: number;
|
|
16448
|
+
y: number;
|
|
16449
|
+
}): void;
|
|
16450
|
+
/**
|
|
16451
|
+
* Register the rendered placeholder's root nodes with the source list so it can reposition
|
|
16452
|
+
* them to the live drop index during a `liveSort` pointer drag. Pass `null` to clear. The
|
|
16453
|
+
* list ignores the nodes when `liveSort` is off. Called by `ForDraggable`.
|
|
16454
|
+
*/
|
|
16455
|
+
setLivePlaceholder(nodes: readonly Node[] | null): void;
|
|
16456
|
+
}
|
|
16457
|
+
declare const FOR_DRAG_DROP_CONTEXT: InjectionToken<ForDropListContext>;
|
|
16458
|
+
/** Emitted by the **source** `ForDropList` on a committed drop (keyboard or pointer). */
|
|
16459
|
+
interface ForDragDropEvent<T = unknown> {
|
|
16460
|
+
readonly item: T;
|
|
16461
|
+
readonly previousContainer: ForDropListContext;
|
|
16462
|
+
readonly container: ForDropListContext;
|
|
16463
|
+
readonly previousIndex: number;
|
|
16464
|
+
readonly currentIndex: number;
|
|
16465
|
+
}
|
|
16466
|
+
/** Emitted by `ForDraggable` when a drag (keyboard or pointer) starts. */
|
|
16467
|
+
interface ForDragStartEvent {
|
|
16468
|
+
readonly source: ForDropListContext;
|
|
16469
|
+
readonly index: number;
|
|
16470
|
+
}
|
|
16471
|
+
/** Emitted by `ForDraggable` when a drag ends (committed or cancelled). */
|
|
16472
|
+
interface ForDragEndEvent {
|
|
16473
|
+
/** `true` on a committed drop, `false` on cancel. */
|
|
16474
|
+
readonly dropped: boolean;
|
|
16475
|
+
}
|
|
16476
|
+
/** Internal coordination surface a `ForDraggable` exposes to its `[forDragHandle]` children. */
|
|
16477
|
+
interface ForDraggableContext {
|
|
16478
|
+
/** Register a handle element; while any handle is registered, pointer drags may only start on one. */
|
|
16479
|
+
registerHandle(el: HTMLElement): void;
|
|
16480
|
+
unregisterHandle(el: HTMLElement): void;
|
|
16481
|
+
}
|
|
16482
|
+
|
|
16483
|
+
/**
|
|
16484
|
+
* Root directive of the drag-drop primitive. Apply on any container element to
|
|
16485
|
+
* create a reorderable list. Items inside are declared with `[forDraggable]`.
|
|
16486
|
+
*
|
|
16487
|
+
* Supports both keyboard dragging and pointer (mouse / touch / pen) dragging.
|
|
16488
|
+
*/
|
|
16489
|
+
declare class ForDropList implements ForDropListContext {
|
|
16490
|
+
#private;
|
|
16491
|
+
/** Layout orientation of the list. Affects which arrow keys move focus and the lifted item. */
|
|
16492
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
14795
16493
|
/**
|
|
14796
|
-
*
|
|
14797
|
-
*
|
|
14798
|
-
*
|
|
16494
|
+
* Writing direction. When unset (default `null`), the inherited ambient direction is
|
|
16495
|
+
* resolved from the nearest ancestor carrying a `dir` attribute (or `<html dir>`),
|
|
16496
|
+
* defaulting to `'ltr'`.
|
|
14799
16497
|
*/
|
|
14800
|
-
readonly
|
|
16498
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
16499
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
16500
|
+
/** When true, the entire list and all its items are disabled. */
|
|
16501
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14801
16502
|
/**
|
|
14802
|
-
*
|
|
14803
|
-
*
|
|
14804
|
-
* or `'start'`.
|
|
16503
|
+
* Other lists this one can transfer items into. Union'd with any `[forDropListGroup]`
|
|
16504
|
+
* members. Disabled lists are excluded from the effective connected set.
|
|
14805
16505
|
*/
|
|
14806
|
-
readonly
|
|
16506
|
+
readonly connectedTo: _angular_core.InputSignal<readonly ForDropListContext[]>;
|
|
14807
16507
|
/**
|
|
14808
|
-
*
|
|
14809
|
-
*
|
|
14810
|
-
*
|
|
16508
|
+
* When true (the default), a pointer drag that nears the edge of the nearest scrollable
|
|
16509
|
+
* container (the list, a scrollable ancestor, or the viewport) auto-scrolls it toward that
|
|
16510
|
+
* edge so off-screen drop targets become reachable. Set `false` to opt out. Edge size and
|
|
16511
|
+
* max speed are configured via `provideForDragDropDefaults`. Keyboard dragging is unaffected.
|
|
14811
16512
|
*/
|
|
14812
|
-
readonly
|
|
16513
|
+
readonly autoScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14813
16514
|
/**
|
|
14814
|
-
* When
|
|
14815
|
-
*
|
|
14816
|
-
*
|
|
14817
|
-
*
|
|
14818
|
-
*
|
|
14819
|
-
* Default from `provideForCarouselDefaults` or `false`.
|
|
16515
|
+
* When true, the `[forDragPlaceholder]` follows the live resolved drop index during a
|
|
16516
|
+
* **pointer** drag — within this list and across connected lists — so siblings part to
|
|
16517
|
+
* reveal where the item will land. When false (the default), the placeholder stays in the
|
|
16518
|
+
* dragged item's source slot (the #806 behaviour). Has no effect without a
|
|
16519
|
+
* `[forDragPlaceholder]` template, and none on keyboard dragging.
|
|
14820
16520
|
*/
|
|
14821
|
-
readonly
|
|
16521
|
+
readonly liveSort: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14822
16522
|
/**
|
|
14823
|
-
*
|
|
14824
|
-
*
|
|
14825
|
-
*
|
|
14826
|
-
*
|
|
16523
|
+
* When true, a committed drop (keyboard or pointer) animates: displaced sibling items
|
|
16524
|
+
* transition from their old positions to their new ones (FLIP), and — on a pointer drag — the
|
|
16525
|
+
* floating preview settles into the final slot before it is removed. Opt-in and default off.
|
|
16526
|
+
* Duration / easing are styled by the consumer via CSS on the published hooks
|
|
16527
|
+
* (`[data-drag-animating]` on items, `[data-settling]` on the preview); the library imposes
|
|
16528
|
+
* none. Fully skipped under `prefers-reduced-motion: reduce` (teardown stays instant).
|
|
14827
16529
|
*/
|
|
14828
|
-
readonly
|
|
16530
|
+
readonly animateReorder: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
14829
16531
|
/**
|
|
14830
|
-
*
|
|
14831
|
-
*
|
|
14832
|
-
* `
|
|
14833
|
-
* (the user can still start it via the rotation control). Default from
|
|
14834
|
-
* `provideForCarouselDefaults` or `false`.
|
|
14835
|
-
*
|
|
14836
|
-
* APG requires a `[forCarouselRotationControl]` to be present whenever
|
|
14837
|
-
* autoplay is enabled. The directive does not enforce this — see the README.
|
|
16532
|
+
* Emitted by the **source** list when a drop commits (keyboard or pointer) — whether
|
|
16533
|
+
* the item stays in this list (reorder) or moves to a connected list (transfer). Apply
|
|
16534
|
+
* `moveItemInArray` or `transferArrayItem` to your data signal inside the handler.
|
|
14838
16535
|
*/
|
|
14839
|
-
readonly
|
|
16536
|
+
readonly dragDrop: _angular_core.OutputEmitterRef<ForDragDropEvent<unknown>>;
|
|
16537
|
+
readonly host: HTMLElement;
|
|
16538
|
+
/** Effective disabled — the list's own `disabled` input (fieldset wiring deferred to v2). */
|
|
16539
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
16540
|
+
readonly roving: RovingTabindex;
|
|
16541
|
+
readonly items: _angular_core.Signal<readonly ForDraggableHandle[]>;
|
|
16542
|
+
/** Insertion index this list is the current drop target at, else `null`. */
|
|
16543
|
+
readonly dragOverIndex: _angular_core.Signal<number | null>;
|
|
16544
|
+
/** `true` while a drag originating from this list is in progress. */
|
|
16545
|
+
readonly isDragging: _angular_core.Signal<boolean>;
|
|
16546
|
+
constructor();
|
|
16547
|
+
registerItem(handle: ForDraggableHandle): void;
|
|
16548
|
+
unregisterItem(handle: ForDraggableHandle): void;
|
|
16549
|
+
itemTabindex(el: HTMLElement): -1 | 0 | null;
|
|
16550
|
+
isFirstFocusableItem(el: HTMLElement): boolean;
|
|
16551
|
+
isItemHighlighted(el: HTMLElement): boolean;
|
|
16552
|
+
setActiveItem(el: HTMLElement): void;
|
|
16553
|
+
navigate(el: HTMLElement, action: ListNavigationAction): void;
|
|
16554
|
+
lift(el: HTMLElement): number;
|
|
16555
|
+
pointerLift(el: HTMLElement, point: {
|
|
16556
|
+
x: number;
|
|
16557
|
+
y: number;
|
|
16558
|
+
}, preview?: {
|
|
16559
|
+
moveTo(x: number, y: number): void;
|
|
16560
|
+
destroy(): void;
|
|
16561
|
+
} | null): number;
|
|
16562
|
+
pointerMove(point: {
|
|
16563
|
+
x: number;
|
|
16564
|
+
y: number;
|
|
16565
|
+
}): void;
|
|
16566
|
+
isLifted(el: HTMLElement): boolean;
|
|
16567
|
+
moveLifted(action: ListNavigationAction): void;
|
|
16568
|
+
drop(): void;
|
|
16569
|
+
cancel(): void;
|
|
16570
|
+
setDragOver(index: number | null): void;
|
|
16571
|
+
setLivePlaceholder(nodes: readonly Node[] | null): void;
|
|
16572
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDropList, never>;
|
|
16573
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDropList, "[forDropList]", ["forDropList"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "connectedTo": { "alias": "connectedTo"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "liveSort": { "alias": "liveSort"; "required": false; "isSignal": true; }; "animateReorder": { "alias": "animateReorder"; "required": false; "isSignal": true; }; }, { "dragDrop": "dragDrop"; }, never, never, true, never>;
|
|
16574
|
+
}
|
|
16575
|
+
|
|
16576
|
+
/**
|
|
16577
|
+
* Optional custom drag preview. Apply `[forDragPreview]` on an `<ng-template>` inside a
|
|
16578
|
+
* `[forDraggable]`; its content renders as the floating element that follows the pointer during a
|
|
16579
|
+
* pointer drag, replacing the default cloned preview. Has no effect on keyboard dragging.
|
|
16580
|
+
*/
|
|
16581
|
+
declare class ForDragPreview {
|
|
16582
|
+
/** The template rendered as the floating pointer-drag preview. */
|
|
16583
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
16584
|
+
constructor();
|
|
16585
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDragPreview, never>;
|
|
16586
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDragPreview, "ng-template[forDragPreview]", ["forDragPreview"], {}, {}, never, never, true, never>;
|
|
16587
|
+
}
|
|
16588
|
+
|
|
16589
|
+
/**
|
|
16590
|
+
* Optional custom drag placeholder. Apply `[forDragPlaceholder]` on an `<ng-template>` inside a
|
|
16591
|
+
* `[forDraggable]`; during a **pointer** drag the dragged item's host is hidden and this template
|
|
16592
|
+
* renders in its slot, preserving the gap. Keyboard dragging keeps the default (the lifted item
|
|
16593
|
+
* stays in place, reflecting `data-dragging`).
|
|
16594
|
+
*/
|
|
16595
|
+
declare class ForDragPlaceholder {
|
|
16596
|
+
/** The template rendered in the dragged item's slot during a pointer drag. */
|
|
16597
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
16598
|
+
constructor();
|
|
16599
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDragPlaceholder, never>;
|
|
16600
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDragPlaceholder, "ng-template[forDragPlaceholder]", ["forDragPlaceholder"], {}, {}, never, never, true, never>;
|
|
16601
|
+
}
|
|
16602
|
+
|
|
16603
|
+
/**
|
|
16604
|
+
* Marks an element as a draggable item inside a `[forDropList]`. Handles
|
|
16605
|
+
* keyboard and pointer interaction for lift, move, drop, and cancel.
|
|
16606
|
+
*/
|
|
16607
|
+
declare class ForDraggable implements ForDraggableContext {
|
|
16608
|
+
#private;
|
|
16609
|
+
protected readonly previewTpl: _angular_core.Signal<ForDragPreview | undefined>;
|
|
16610
|
+
protected readonly placeholderTpl: _angular_core.Signal<ForDragPlaceholder | undefined>;
|
|
16611
|
+
/** `true` while a pointer-drag placeholder template occupies this item's slot (host hidden). */
|
|
16612
|
+
protected readonly placeholderActive: _angular_core.WritableSignal<boolean>;
|
|
16613
|
+
/** Data payload handed back in the `dragDrop` event when this item is dropped. */
|
|
16614
|
+
readonly dragData: _angular_core.InputSignal<unknown>;
|
|
16615
|
+
/** When true, this item cannot be lifted. The item remains focusable. */
|
|
16616
|
+
readonly dragDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16617
|
+
/** Emitted when a drag (keyboard or pointer) starts from this item. */
|
|
16618
|
+
readonly dragStart: _angular_core.OutputEmitterRef<ForDragStartEvent>;
|
|
16619
|
+
/** Emitted when a drag originating from this item ends (committed or cancelled). */
|
|
16620
|
+
readonly dragEnd: _angular_core.OutputEmitterRef<ForDragEndEvent>;
|
|
16621
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
16622
|
+
/** `true` when this item is the currently lifted draggable. Reflected as `data-dragging`. */
|
|
16623
|
+
readonly lifted: _angular_core.Signal<boolean>;
|
|
16624
|
+
/** `true` when this item is the roving-tabindex active candidate. */
|
|
16625
|
+
protected readonly highlighted: _angular_core.Signal<boolean>;
|
|
16626
|
+
/** `aria-roledescription` value from defaults. */
|
|
16627
|
+
protected readonly roleDescription: _angular_core.Signal<string>;
|
|
16628
|
+
protected readonly tabindex: _angular_core.Signal<0 | -1>;
|
|
16629
|
+
protected readonly touchAction: _angular_core.Signal<"none" | null>;
|
|
16630
|
+
constructor();
|
|
16631
|
+
registerHandle(el: HTMLElement): void;
|
|
16632
|
+
unregisterHandle(el: HTMLElement): void;
|
|
16633
|
+
protected onNativeDragStart(event: Event): void;
|
|
16634
|
+
protected onFocus(): void;
|
|
16635
|
+
protected onBlur(): void;
|
|
16636
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
16637
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDraggable, never>;
|
|
16638
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDraggable, "[forDraggable]", ["forDraggable"], { "dragData": { "alias": "dragData"; "required": true; "isSignal": true; }; "dragDisabled": { "alias": "dragDisabled"; "required": false; "isSignal": true; }; }, { "dragStart": "dragStart"; "dragEnd": "dragEnd"; }, ["previewTpl", "placeholderTpl"], never, true, never>;
|
|
16639
|
+
}
|
|
16640
|
+
|
|
16641
|
+
/**
|
|
16642
|
+
* Optional drag handle inside a `[forDraggable]`. When at least one handle is present on an item, a pointer
|
|
16643
|
+
* drag may only start from within a handle (keyboard dragging is unaffected). Apply on a child element.
|
|
16644
|
+
*/
|
|
16645
|
+
declare class ForDragHandle {
|
|
16646
|
+
#private;
|
|
16647
|
+
constructor();
|
|
16648
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDragHandle, never>;
|
|
16649
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDragHandle, "[forDragHandle]", ["forDragHandle"], {}, {}, never, never, true, never>;
|
|
16650
|
+
}
|
|
16651
|
+
|
|
16652
|
+
declare const FOR_DROP_LIST_GROUP: InjectionToken<ForDropListGroup>;
|
|
16653
|
+
/**
|
|
16654
|
+
* Groups sibling `[forDropList]` elements so items can be transferred between
|
|
16655
|
+
* them without hand-wiring `[connectedTo]` on each list. Every list nested
|
|
16656
|
+
* under `[forDropListGroup]` automatically becomes a connected transfer target
|
|
16657
|
+
* for every other member of the group.
|
|
16658
|
+
*/
|
|
16659
|
+
declare class ForDropListGroup {
|
|
16660
|
+
#private;
|
|
16661
|
+
/** All registered drop lists in this group, in registration order. */
|
|
16662
|
+
readonly members: Signal<readonly ForDropListContext[]>;
|
|
16663
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForDropListGroup, never>;
|
|
16664
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForDropListGroup, "[forDropListGroup]", ["forDropListGroup"], {}, {}, never, never, true, never>;
|
|
16665
|
+
}
|
|
16666
|
+
|
|
16667
|
+
/**
|
|
16668
|
+
* Returns a copy of `array` with the item at `from` moved to `to`. Indices are clamped to
|
|
16669
|
+
* the array bounds; an out-of-range or no-op move returns a shallow copy unchanged.
|
|
16670
|
+
*/
|
|
16671
|
+
declare function moveItemInArray<T>(array: readonly T[], from: number, to: number): T[];
|
|
16672
|
+
/**
|
|
16673
|
+
* Moves the item at `fromIndex` of `from` into `to` at `toIndex`, returning new arrays for
|
|
16674
|
+
* both. Does not mutate the inputs. Indices are clamped (`toIndex` may equal `to.length`,
|
|
16675
|
+
* i.e. append).
|
|
16676
|
+
*/
|
|
16677
|
+
declare function transferArrayItem<T>(from: readonly T[], to: readonly T[], fromIndex: number, toIndex: number): {
|
|
16678
|
+
from: T[];
|
|
16679
|
+
to: T[];
|
|
16680
|
+
};
|
|
16681
|
+
|
|
16682
|
+
/**
|
|
16683
|
+
* Defaults inherited by descendant drag-drop lists in the surrounding injector
|
|
16684
|
+
* scope. Configure with `provideForDragDropDefaults` either at the application
|
|
16685
|
+
* root or in any component's `providers` array; partial overrides merge with
|
|
16686
|
+
* the parent scope.
|
|
16687
|
+
*/
|
|
16688
|
+
interface ForDragDropDefaults {
|
|
14840
16689
|
/**
|
|
14841
|
-
*
|
|
14842
|
-
*
|
|
16690
|
+
* `aria-roledescription` applied to each draggable item. Empty string disables
|
|
16691
|
+
* the attribute.
|
|
14843
16692
|
*/
|
|
14844
|
-
|
|
16693
|
+
itemRoleDescription: string;
|
|
14845
16694
|
/**
|
|
14846
|
-
*
|
|
14847
|
-
*
|
|
14848
|
-
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
14849
|
-
* The resolved value is reflected to the host `dir` attribute and swaps
|
|
14850
|
-
* ArrowLeft / ArrowRight semantics on the indicator group in RTL.
|
|
16695
|
+
* Announcement when an item is lifted. `index` and `total` describe the source
|
|
16696
|
+
* list and are 1-based.
|
|
14851
16697
|
*/
|
|
14852
|
-
|
|
14853
|
-
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
14854
|
-
/** Roving tabindex tracker for the indicator group. */
|
|
14855
|
-
readonly roving: RovingTabindex;
|
|
14856
|
-
/** Whether auto-rotation is "on" (user intent). Sticky once the user decides. */
|
|
14857
|
-
readonly playing: _angular_core.Signal<boolean>;
|
|
14858
|
-
/** Whether the carousel is actively auto-rotating right now. */
|
|
14859
|
-
readonly rotating: _angular_core.Signal<boolean>;
|
|
14860
|
-
/** Total number of registered slides. Reactive. */
|
|
14861
|
-
readonly slideCount: _angular_core.Signal<number>;
|
|
16698
|
+
announceLift: (label: string, index: number, total: number) => string;
|
|
14862
16699
|
/**
|
|
14863
|
-
*
|
|
14864
|
-
*
|
|
16700
|
+
* Announcement when the drop target position changes. `index` and `total`
|
|
16701
|
+
* describe the target list and are 1-based.
|
|
14865
16702
|
*/
|
|
14866
|
-
|
|
14867
|
-
/** The measured viewport width, or `null` before first measurement / on the server. */
|
|
14868
|
-
readonly viewportWidth: _angular_core.Signal<string | null>;
|
|
14869
|
-
/** The measured viewport height, or `null` before first measurement / on the server. */
|
|
14870
|
-
readonly viewportHeight: _angular_core.Signal<string | null>;
|
|
14871
|
-
constructor();
|
|
14872
|
-
/** Returns `true` when scrolling backward is possible given the current loop/index state. */
|
|
14873
|
-
canScrollPrev(): boolean;
|
|
14874
|
-
/** Returns `true` when scrolling forward is possible given the current loop/index state. */
|
|
14875
|
-
canScrollNext(): boolean;
|
|
14876
|
-
/** Navigate to the previous slide. No-op at index 0 when not looping. */
|
|
14877
|
-
scrollPrev(): void;
|
|
14878
|
-
/** Navigate to the next slide. No-op at the last index when not looping. */
|
|
14879
|
-
scrollNext(): void;
|
|
16703
|
+
announceMove: (label: string, index: number, total: number) => string;
|
|
14880
16704
|
/**
|
|
14881
|
-
*
|
|
14882
|
-
*
|
|
16705
|
+
* Announcement on a committed drop. `index` and `total` describe the
|
|
16706
|
+
* destination list and are 1-based.
|
|
14883
16707
|
*/
|
|
14884
|
-
|
|
16708
|
+
announceDrop: (label: string, index: number, total: number) => string;
|
|
16709
|
+
/** Announcement when a drag is cancelled. */
|
|
16710
|
+
announceCancel: (label: string) => string;
|
|
16711
|
+
/** Distance in px from a scroll edge that arms auto-scroll during a pointer drag. */
|
|
16712
|
+
autoScrollEdgeSize: number;
|
|
16713
|
+
/** Maximum scroll delta in px applied per animation frame while auto-scrolling. */
|
|
16714
|
+
autoScrollMaxSpeed: number;
|
|
16715
|
+
}
|
|
16716
|
+
/** Token holding the resolved drag-drop defaults for the current scope. */
|
|
16717
|
+
declare const FOR_DRAG_DROP_DEFAULTS: _angular_core.InjectionToken<ForDragDropDefaults>;
|
|
16718
|
+
/**
|
|
16719
|
+
* Configures forty-cdk drag-drop defaults for this injector scope. Partial
|
|
16720
|
+
* overrides inherit unspecified keys from the parent scope (or library
|
|
16721
|
+
* defaults at the root).
|
|
16722
|
+
*/
|
|
16723
|
+
declare function provideForDragDropDefaults(defaults?: Partial<ForDragDropDefaults>): Provider[];
|
|
16724
|
+
|
|
16725
|
+
/** Activation timing for interactive-mode arrow navigation. */
|
|
16726
|
+
type StepperActivationMode = 'automatic' | 'manual';
|
|
16727
|
+
/** Accessibility model: interactive Tabs pattern vs display-only progress list. */
|
|
16728
|
+
type StepperMode = 'interactive' | 'progress';
|
|
16729
|
+
/**
|
|
16730
|
+
* Registry entry for one step, owned by `ForStepperItem`. Drives index
|
|
16731
|
+
* derivation and linear gating.
|
|
16732
|
+
*/
|
|
16733
|
+
interface ForStepperItemHandle {
|
|
16734
|
+
/** Host element, used for DOM-order sorting in the collection. */
|
|
16735
|
+
readonly host: HTMLElement;
|
|
16736
|
+
/** Whether this step has been marked as completed by the consumer. */
|
|
16737
|
+
readonly completed: Signal<boolean>;
|
|
16738
|
+
/** Whether this step can be skipped when the stepper is in linear mode. */
|
|
16739
|
+
readonly optional: Signal<boolean>;
|
|
16740
|
+
/** Whether this step is disabled (own `disabled` OR root `disabled`). */
|
|
16741
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
16742
|
+
/** Whether this step has an error condition. */
|
|
16743
|
+
readonly hasError: Signal<boolean>;
|
|
16744
|
+
/** The resolved `data-state` string for this step. */
|
|
16745
|
+
readonly resolvedState: Signal<string>;
|
|
16746
|
+
}
|
|
16747
|
+
/**
|
|
16748
|
+
* Registry entry for one trigger (roving participant and id source). Used by
|
|
16749
|
+
* the root to wire roving tabindex, id lookups, and navigation.
|
|
16750
|
+
*/
|
|
16751
|
+
interface ForStepperTriggerHandle {
|
|
16752
|
+
/** Host element, used for DOM-order sorting and focus moves. */
|
|
16753
|
+
readonly host: HTMLElement;
|
|
16754
|
+
/** The trigger's own host id, for `aria-labelledby` on content panels. */
|
|
16755
|
+
readonly id: Signal<string>;
|
|
14885
16756
|
/**
|
|
14886
|
-
*
|
|
14887
|
-
*
|
|
14888
|
-
* keydown handler.
|
|
16757
|
+
* Whether this trigger can be focused and activated. `false` when the step
|
|
16758
|
+
* is disabled or not yet reachable in linear mode.
|
|
14889
16759
|
*/
|
|
14890
|
-
|
|
14891
|
-
|
|
14892
|
-
|
|
14893
|
-
|
|
14894
|
-
|
|
14895
|
-
|
|
14896
|
-
|
|
14897
|
-
|
|
14898
|
-
|
|
14899
|
-
|
|
14900
|
-
|
|
14901
|
-
|
|
14902
|
-
|
|
14903
|
-
|
|
16760
|
+
readonly selectable: Signal<boolean>;
|
|
16761
|
+
/**
|
|
16762
|
+
* Inverse of `selectable`. Required by `firstEnabledHost` and
|
|
16763
|
+
* `reconcileRovingActive`, which read a `disabled` signal per handle.
|
|
16764
|
+
*/
|
|
16765
|
+
readonly disabled: Signal<boolean>;
|
|
16766
|
+
}
|
|
16767
|
+
/**
|
|
16768
|
+
* Registry entry for one content panel (id source; positional). The content's
|
|
16769
|
+
* position in this collection determines its associated step index.
|
|
16770
|
+
*/
|
|
16771
|
+
interface ForStepperContentHandle {
|
|
16772
|
+
/** Host element, used for DOM-order sorting and index derivation. */
|
|
16773
|
+
readonly host: HTMLElement;
|
|
16774
|
+
/** The panel's own host id, for `aria-controls` on triggers. */
|
|
16775
|
+
readonly id: Signal<string>;
|
|
16776
|
+
}
|
|
16777
|
+
/**
|
|
16778
|
+
* Coordination contract owned by `ForStepper`. Triggers, items, and content
|
|
16779
|
+
* panels register here; navigation and selection flow back through these
|
|
16780
|
+
* methods.
|
|
16781
|
+
*
|
|
16782
|
+
* Implements the [WAI-ARIA Tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)
|
|
16783
|
+
* in `mode="interactive"` and a `<ol>`-based progress list with
|
|
16784
|
+
* `aria-current="step"` in `mode="progress"`.
|
|
16785
|
+
*/
|
|
16786
|
+
interface ForStepperContext {
|
|
16787
|
+
/** Two-way bindable selected step index. */
|
|
16788
|
+
readonly selectedIndex: Signal<number>;
|
|
16789
|
+
/** When true, steps are only reachable after all preceding steps are completed or optional. */
|
|
16790
|
+
readonly linear: Signal<boolean>;
|
|
16791
|
+
/** Accessibility model — `'interactive'` (Tabs APG) or `'progress'` (progress list). */
|
|
16792
|
+
readonly mode: Signal<StepperMode>;
|
|
16793
|
+
/** Layout axis for the step list. */
|
|
16794
|
+
readonly orientation: Signal<'horizontal' | 'vertical'>;
|
|
16795
|
+
/** Arrow-key activation timing when in interactive mode. */
|
|
16796
|
+
readonly activationMode: Signal<StepperActivationMode>;
|
|
16797
|
+
/** Resolved writing direction (`'ltr'` or `'rtl'`). */
|
|
16798
|
+
readonly dir: Signal<WritingDirection>;
|
|
16799
|
+
/** Whether the entire stepper is disabled. */
|
|
16800
|
+
readonly disabled: Signal<boolean>;
|
|
16801
|
+
/** Total number of registered step items. */
|
|
16802
|
+
readonly count: Signal<number>;
|
|
16803
|
+
/**
|
|
16804
|
+
* True when the stepper has reached the terminal completed state
|
|
16805
|
+
* (`selectedIndex()` >= `count()`).
|
|
16806
|
+
*/
|
|
16807
|
+
readonly isCompleted: Signal<boolean>;
|
|
16808
|
+
/** Roving tabindex tracker for interactive-mode triggers. */
|
|
16809
|
+
readonly roving: RovingTabindex;
|
|
16810
|
+
/** Returns the DOM-order index of `item` in the item collection, or -1 if not found. */
|
|
16811
|
+
indexOf(item: ForStepperItemHandle): number;
|
|
16812
|
+
/** Returns true when `index` matches the currently selected step. */
|
|
14904
16813
|
isCurrent(index: number): boolean;
|
|
14905
16814
|
/**
|
|
14906
|
-
* Returns
|
|
14907
|
-
*
|
|
16815
|
+
* Returns true when step `index` can be navigated to in linear mode. Index 0
|
|
16816
|
+
* is always reachable; subsequent steps require all preceding steps to be
|
|
16817
|
+
* completed or optional.
|
|
14908
16818
|
*/
|
|
14909
|
-
|
|
16819
|
+
isReachable(index: number): boolean;
|
|
16820
|
+
/** Returns the resolved `data-state` string for step at `index`. */
|
|
16821
|
+
resolvedStateFor(index: number): string;
|
|
14910
16822
|
/**
|
|
14911
|
-
*
|
|
14912
|
-
*
|
|
16823
|
+
* Selects step `index`. No-op when the root is disabled, when `index` is
|
|
16824
|
+
* out of range, or when the step is not reachable in linear mode.
|
|
14913
16825
|
*/
|
|
14914
|
-
|
|
16826
|
+
select(index: number): void;
|
|
14915
16827
|
/**
|
|
14916
|
-
*
|
|
14917
|
-
*
|
|
14918
|
-
*
|
|
16828
|
+
* Advances to the next step, or into the terminal completed state when on
|
|
16829
|
+
* the last step. No-op when the root is disabled, when already in the terminal state, or
|
|
16830
|
+
* (in linear mode) when the current step is neither completed nor optional.
|
|
14919
16831
|
*/
|
|
14920
|
-
|
|
14921
|
-
/**
|
|
14922
|
-
|
|
14923
|
-
|
|
14924
|
-
|
|
14925
|
-
|
|
14926
|
-
|
|
14927
|
-
|
|
14928
|
-
|
|
14929
|
-
|
|
14930
|
-
|
|
14931
|
-
|
|
16832
|
+
next(): void;
|
|
16833
|
+
/**
|
|
16834
|
+
* Retreats to the previous step. No-op when the root is disabled or the
|
|
16835
|
+
* first step is already selected. Bypasses the linear reachability gate —
|
|
16836
|
+
* going back always works.
|
|
16837
|
+
*/
|
|
16838
|
+
previous(): void;
|
|
16839
|
+
/**
|
|
16840
|
+
* Returns true when the Next button can advance — including advancing the last
|
|
16841
|
+
* step into the terminal completed state. False when disabled, already in the
|
|
16842
|
+
* terminal state, or (in linear mode) the current step is not completed/optional.
|
|
16843
|
+
*/
|
|
16844
|
+
canAdvance(): boolean;
|
|
16845
|
+
/** Returns true when the Previous button can retreat. False when disabled or at the first step. */
|
|
16846
|
+
canRetreat(): boolean;
|
|
16847
|
+
/**
|
|
16848
|
+
* Moves focus from `currentTrigger` according to `action` (interactive mode
|
|
16849
|
+
* only). In automatic activation mode, also selects the target step.
|
|
16850
|
+
* Disabled / unreachable triggers are skipped.
|
|
16851
|
+
*/
|
|
16852
|
+
navigate(currentTrigger: HTMLElement, action: ListNavigationAction): void;
|
|
16853
|
+
/** Registers a step item handle into the item collection. */
|
|
16854
|
+
registerItem(h: ForStepperItemHandle): void;
|
|
16855
|
+
/** Unregisters a step item handle from the item collection. */
|
|
16856
|
+
unregisterItem(h: ForStepperItemHandle): void;
|
|
16857
|
+
/** Registers a trigger handle into the trigger collection. */
|
|
16858
|
+
registerTrigger(h: ForStepperTriggerHandle): void;
|
|
16859
|
+
/** Unregisters a trigger handle from the trigger collection and the roving tracker. */
|
|
16860
|
+
unregisterTrigger(h: ForStepperTriggerHandle): void;
|
|
16861
|
+
/** Registers a content panel handle into the content collection. */
|
|
16862
|
+
registerContent(h: ForStepperContentHandle): void;
|
|
16863
|
+
/** Unregisters a content panel handle from the content collection. */
|
|
16864
|
+
unregisterContent(h: ForStepperContentHandle): void;
|
|
16865
|
+
/**
|
|
16866
|
+
* Returns the id of the trigger at `index`, or `null` if there is no
|
|
16867
|
+
* registered trigger at that position.
|
|
16868
|
+
*/
|
|
16869
|
+
triggerIdFor(index: number): string | null;
|
|
16870
|
+
/**
|
|
16871
|
+
* Returns the id of the content panel at `index`, or `null` if there is no
|
|
16872
|
+
* registered panel at that position.
|
|
16873
|
+
*/
|
|
16874
|
+
contentIdFor(index: number): string | null;
|
|
16875
|
+
/**
|
|
16876
|
+
* Returns the DOM-order index of the content panel whose host is `host`, or
|
|
16877
|
+
* -1 if not registered. Used by `ForStepperContent` to derive its step index
|
|
16878
|
+
* reactively.
|
|
16879
|
+
*/
|
|
16880
|
+
indexOfContent(host: HTMLElement): number;
|
|
16881
|
+
/**
|
|
16882
|
+
* True when `el` is the first selectable trigger (the roving entry-point
|
|
16883
|
+
* fallback when no step is selected or the roving pointer is stale).
|
|
16884
|
+
*/
|
|
16885
|
+
isFirstSelectableTrigger(el: HTMLElement): boolean;
|
|
16886
|
+
/**
|
|
16887
|
+
* True when some registered trigger corresponds to the currently selected
|
|
16888
|
+
* step. Distinguishes "the current step owns the tab stop" from "the selected
|
|
16889
|
+
* index points at a missing or unreachable trigger" so the per-trigger
|
|
16890
|
+
* tabindex fallback can re-engage the first-selectable entry point.
|
|
16891
|
+
*/
|
|
16892
|
+
hasCurrentTrigger(): boolean;
|
|
16893
|
+
}
|
|
16894
|
+
/**
|
|
16895
|
+
* Per-step state contract. Provided by `ForStepperItem`; consumed by
|
|
16896
|
+
* `ForStepperTrigger`, `ForStepperIndicator`, and `ForStepperSeparator`.
|
|
16897
|
+
*/
|
|
16898
|
+
interface ForStepperItemContext {
|
|
16899
|
+
/** DOM-order index of this step within the stepper. */
|
|
16900
|
+
readonly index: Signal<number>;
|
|
16901
|
+
/** True when this step is the currently selected step. */
|
|
16902
|
+
readonly current: Signal<boolean>;
|
|
16903
|
+
/**
|
|
16904
|
+
* True when this step can be focused and activated (reachable and not
|
|
16905
|
+
* effectively disabled).
|
|
16906
|
+
*/
|
|
16907
|
+
readonly selectable: Signal<boolean>;
|
|
16908
|
+
/** Whether this step has been marked as completed. */
|
|
16909
|
+
readonly completed: Signal<boolean>;
|
|
16910
|
+
/** Whether this step can be skipped when the stepper is in linear mode. */
|
|
16911
|
+
readonly optional: Signal<boolean>;
|
|
16912
|
+
/** Whether this step is disabled (own `disabled` OR root `disabled`). */
|
|
16913
|
+
readonly effectiveDisabled: Signal<boolean>;
|
|
16914
|
+
/** Whether this step has an error condition. */
|
|
16915
|
+
readonly hasError: Signal<boolean>;
|
|
16916
|
+
/** Resolved `data-state` string (precedence: custom state > error > active > completed > pending). */
|
|
16917
|
+
readonly resolvedState: Signal<string>;
|
|
16918
|
+
/**
|
|
16919
|
+
* Selects this step. Delegates to `ForStepperContext.select(index)` — the
|
|
16920
|
+
* linear reachability and disabled guards apply.
|
|
16921
|
+
*/
|
|
16922
|
+
select(): void;
|
|
14932
16923
|
}
|
|
16924
|
+
/** Injection token for the root stepper context (`ForStepper`). */
|
|
16925
|
+
declare const FOR_STEPPER_CONTEXT: InjectionToken<ForStepperContext>;
|
|
16926
|
+
/** Injection token for the per-step item context (`ForStepperItem`). */
|
|
16927
|
+
declare const FOR_STEPPER_ITEM_CONTEXT: InjectionToken<ForStepperItemContext>;
|
|
14933
16928
|
|
|
14934
16929
|
/**
|
|
14935
|
-
*
|
|
14936
|
-
*
|
|
14937
|
-
*
|
|
14938
|
-
* do not bombard the screen reader) and `"polite"` at all other times so
|
|
14939
|
-
* manual navigation is announced. Also serves as the `aria-controls` target
|
|
14940
|
-
* for the prev/next buttons.
|
|
16930
|
+
* Root of the Stepper primitive. Owns the selected step index, linear
|
|
16931
|
+
* progression, accessibility mode, orientation, and disabled state. Provides
|
|
16932
|
+
* the shared context to descendant directives.
|
|
14941
16933
|
*
|
|
14942
|
-
*
|
|
14943
|
-
* `
|
|
14944
|
-
*
|
|
16934
|
+
* Implements the [WAI-ARIA Tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/)
|
|
16935
|
+
* in `mode="interactive"` (roving tabindex, `role="tablist"`, `aria-selected`)
|
|
16936
|
+
* and an ordered-list progress pattern with `aria-current="step"` in
|
|
16937
|
+
* `mode="progress"`.
|
|
16938
|
+
*
|
|
16939
|
+
* `activationMode='manual'` (default): arrow navigation only moves focus;
|
|
16940
|
+
* Space / Enter activates. Recommended for wizards where step activation
|
|
16941
|
+
* triggers validation. `activationMode='automatic'`: arrow navigation moves
|
|
16942
|
+
* focus AND selects the step.
|
|
14945
16943
|
*/
|
|
14946
|
-
declare class
|
|
16944
|
+
declare class ForStepper implements ForStepperContext {
|
|
14947
16945
|
#private;
|
|
14948
|
-
|
|
14949
|
-
|
|
14950
|
-
|
|
16946
|
+
/**
|
|
16947
|
+
* Two-way bindable selected step index in the inclusive range `0 … count`.
|
|
16948
|
+
* Defaults to `0`. The terminal value `=== count()` (one past the last step) is
|
|
16949
|
+
* the **completed** state (see `isCompleted` / `complete`). The `model()` change
|
|
16950
|
+
* emitter (`(selectedIndexChange)`) fires only on internal selection changes
|
|
16951
|
+
* (trigger click, Next/Previous, automatic-mode arrow navigation), never on
|
|
16952
|
+
* consumer writes via `[(selectedIndex)]`.
|
|
16953
|
+
*/
|
|
16954
|
+
readonly selectedIndex: _angular_core.ModelSignal<number>;
|
|
16955
|
+
/**
|
|
16956
|
+
* Emits once each time the stepper transitions **into** the completed terminal
|
|
16957
|
+
* state — i.e. when `selectedIndex()` reaches `count()`. Does not re-emit while
|
|
16958
|
+
* it stays completed; retreating via `previous()` and re-entering emits again.
|
|
16959
|
+
*/
|
|
16960
|
+
readonly complete: _angular_core.OutputEmitterRef<void>;
|
|
16961
|
+
/**
|
|
16962
|
+
* When true, steps are only reachable after all preceding steps are completed
|
|
16963
|
+
* or optional. Navigating back (`previous()`) always works regardless of this
|
|
16964
|
+
* flag.
|
|
16965
|
+
*/
|
|
16966
|
+
readonly linear: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16967
|
+
/**
|
|
16968
|
+
* Accessibility model. `'interactive'` (default): full WAI-ARIA Tabs pattern
|
|
16969
|
+
* — `role="tablist"`, `role="tab"`, `role="tabpanel"`, roving tabindex, arrow
|
|
16970
|
+
* navigation. `'progress'`: ordered list with `aria-current="step"` on the
|
|
16971
|
+
* active trigger — no tab stop manipulation.
|
|
16972
|
+
*/
|
|
16973
|
+
readonly mode: _angular_core.InputSignal<StepperMode>;
|
|
16974
|
+
/**
|
|
16975
|
+
* Layout axis for the step list. Affects `aria-orientation` on the list and
|
|
16976
|
+
* which arrow keys navigate in interactive mode.
|
|
16977
|
+
*/
|
|
16978
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
16979
|
+
/**
|
|
16980
|
+
* Arrow-key activation timing in interactive mode. Defaults to the value from
|
|
16981
|
+
* `provideForStepperDefaults` for the surrounding scope (library default:
|
|
16982
|
+
* `'manual'`).
|
|
16983
|
+
*/
|
|
16984
|
+
readonly activationMode: _angular_core.InputSignal<StepperActivationMode>;
|
|
16985
|
+
/**
|
|
16986
|
+
* Whether arrow navigation wraps around past the first / last selectable
|
|
16987
|
+
* trigger. Defaults to the value from `provideForStepperDefaults` for the
|
|
16988
|
+
* surrounding scope (library default: `true`).
|
|
16989
|
+
*/
|
|
16990
|
+
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16991
|
+
/**
|
|
16992
|
+
* When true, all step triggers are non-interactive and the root carries
|
|
16993
|
+
* `data-disabled`.
|
|
16994
|
+
*/
|
|
16995
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
16996
|
+
/**
|
|
16997
|
+
* Writing direction. When unset (default `null`), the inherited ambient
|
|
16998
|
+
* direction is resolved from the nearest ancestor carrying a `dir` attribute
|
|
16999
|
+
* (or `<html dir>`), defaulting to `'ltr'`. An explicit `[dir]` always wins.
|
|
17000
|
+
* The resolved value is reflected to the host `dir` attribute and swaps
|
|
17001
|
+
* ArrowLeft / ArrowRight semantics in RTL.
|
|
17002
|
+
*/
|
|
17003
|
+
readonly _dirInput: _angular_core.InputSignal<WritingDirection | null>;
|
|
17004
|
+
readonly dir: _angular_core.Signal<WritingDirection>;
|
|
17005
|
+
readonly roving: RovingTabindex;
|
|
17006
|
+
/** Total number of registered step items. */
|
|
17007
|
+
readonly count: _angular_core.Signal<number>;
|
|
17008
|
+
/**
|
|
17009
|
+
* True when the stepper is in the terminal **completed** state: `selectedIndex()`
|
|
17010
|
+
* has reached `count()` (one past the last step). No step is current and every
|
|
17011
|
+
* `[forStepperContent]` panel is inactive while this holds.
|
|
17012
|
+
*/
|
|
17013
|
+
readonly isCompleted: _angular_core.Signal<boolean>;
|
|
14951
17014
|
constructor();
|
|
14952
|
-
|
|
14953
|
-
|
|
17015
|
+
indexOf(item: ForStepperItemHandle): number;
|
|
17016
|
+
isCurrent(index: number): boolean;
|
|
17017
|
+
isReachable(index: number): boolean;
|
|
17018
|
+
resolvedStateFor(index: number): string;
|
|
17019
|
+
select(index: number): void;
|
|
17020
|
+
next(): void;
|
|
17021
|
+
previous(): void;
|
|
17022
|
+
canAdvance(): boolean;
|
|
17023
|
+
canRetreat(): boolean;
|
|
17024
|
+
navigate(currentTrigger: HTMLElement, action: ListNavigationAction): void;
|
|
17025
|
+
registerItem(h: ForStepperItemHandle): void;
|
|
17026
|
+
unregisterItem(h: ForStepperItemHandle): void;
|
|
17027
|
+
registerTrigger(h: ForStepperTriggerHandle): void;
|
|
17028
|
+
unregisterTrigger(h: ForStepperTriggerHandle): void;
|
|
17029
|
+
registerContent(h: ForStepperContentHandle): void;
|
|
17030
|
+
unregisterContent(h: ForStepperContentHandle): void;
|
|
17031
|
+
triggerIdFor(index: number): string | null;
|
|
17032
|
+
contentIdFor(index: number): string | null;
|
|
17033
|
+
indexOfContent(host: HTMLElement): number;
|
|
17034
|
+
isFirstSelectableTrigger(el: HTMLElement): boolean;
|
|
17035
|
+
hasCurrentTrigger(): boolean;
|
|
17036
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepper, never>;
|
|
17037
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepper, "[forStepper]", ["forStepper"], { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "activationMode": { "alias": "activationMode"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "complete": "complete"; }, never, never, true, never>;
|
|
17038
|
+
}
|
|
17039
|
+
|
|
17040
|
+
/**
|
|
17041
|
+
* The step-list container. In `mode="interactive"` renders as `role="tablist"`
|
|
17042
|
+
* with `aria-orientation`; in `mode="progress"` renders as `role="list"`.
|
|
17043
|
+
*
|
|
17044
|
+
* Apply on an `<ol>` (recommended for semantic list markup) wrapping the
|
|
17045
|
+
* `[forStepperItem]` elements. The `[forStepperContent]` panels live as
|
|
17046
|
+
* siblings of the list.
|
|
17047
|
+
*/
|
|
17048
|
+
declare class ForStepperList {
|
|
17049
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17050
|
+
/** Accessible name for the step list. Defers to a consumer `aria-labelledby`. */
|
|
17051
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
17052
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperList, never>;
|
|
17053
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperList, "[forStepperList]", ["forStepperList"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14954
17054
|
}
|
|
14955
17055
|
|
|
14956
17056
|
/**
|
|
14957
|
-
*
|
|
14958
|
-
*
|
|
14959
|
-
*
|
|
14960
|
-
*
|
|
17057
|
+
* One step within a `ForStepper`. Owns per-step state (`completed`, `optional`,
|
|
17058
|
+
* `disabled`, `hasError`, `state`) and exposes the `ForStepperItemContext` that
|
|
17059
|
+
* child `[forStepperTrigger]`, `[forStepperIndicator]`, and
|
|
17060
|
+
* `[forStepperSeparator]` directives consume.
|
|
14961
17061
|
*
|
|
14962
|
-
*
|
|
14963
|
-
*
|
|
17062
|
+
* Apply on a list item element (e.g. `<li forStepperItem>`). The step's index
|
|
17063
|
+
* is derived reactively from its DOM position within the stepper via the root's
|
|
17064
|
+
* item collection.
|
|
14964
17065
|
*/
|
|
14965
|
-
declare class
|
|
14966
|
-
protected readonly ctx: forty_cdk.
|
|
14967
|
-
|
|
14968
|
-
|
|
17066
|
+
declare class ForStepperItem implements ForStepperItemContext, ForStepperItemHandle {
|
|
17067
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17068
|
+
/** Host element — satisfies `ForStepperItemHandle.host` for collection registration. */
|
|
17069
|
+
readonly host: HTMLElement;
|
|
17070
|
+
/**
|
|
17071
|
+
* Manual completion flag. When `true`, the step is completed regardless of any
|
|
17072
|
+
* bound `field()`. Bind via `[completed]`.
|
|
17073
|
+
*/
|
|
17074
|
+
readonly _completedInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17075
|
+
/** Marks this step as optional (can be skipped in linear mode). */
|
|
17076
|
+
readonly optional: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17077
|
+
/** When true, this step's trigger ignores clicks and the step is unreachable by keyboard. */
|
|
17078
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17079
|
+
/**
|
|
17080
|
+
* Manual error flag. When `true`, the step reflects the `'error'` resolved state
|
|
17081
|
+
* (unless current) regardless of any bound `field()`. Bind via `[hasError]`.
|
|
17082
|
+
*/
|
|
17083
|
+
readonly _hasErrorInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
17084
|
+
/**
|
|
17085
|
+
* Optional Signal Forms field. When bound, the step's `completed` and
|
|
17086
|
+
* `hasError` derive from the field's reactive validity: `completed` is `true`
|
|
17087
|
+
* when the field is valid and touched; `hasError` is `true` when the field is
|
|
17088
|
+
* touched and invalid. A manual `[completed]` / `[hasError]` input always wins
|
|
17089
|
+
* when set. Leave unset to drive completion manually.
|
|
17090
|
+
*
|
|
17091
|
+
* The `@angular/forms` peer is optional: the field *type* is imported with
|
|
17092
|
+
* `import type`, so binding `[field]` requires the peer but the primitive
|
|
17093
|
+
* compiles and tree-shakes without it for consumers who never use it.
|
|
17094
|
+
*/
|
|
17095
|
+
readonly field: _angular_core.InputSignal<FieldTree<unknown> | null>;
|
|
17096
|
+
/**
|
|
17097
|
+
* Whether this step is completed. A manual `[completed]` input wins; otherwise,
|
|
17098
|
+
* when a `field()` is bound, derives `true` from `field` valid + touched.
|
|
17099
|
+
*/
|
|
17100
|
+
readonly completed: _angular_core.Signal<boolean>;
|
|
17101
|
+
/**
|
|
17102
|
+
* Whether this step has an error. A manual `[hasError]` input wins; otherwise,
|
|
17103
|
+
* when a `field()` is bound, derives `true` from `field` touched + invalid.
|
|
17104
|
+
*/
|
|
17105
|
+
readonly hasError: _angular_core.Signal<boolean>;
|
|
17106
|
+
/**
|
|
17107
|
+
* Custom state string override. When non-empty, wins over the derived resolved
|
|
17108
|
+
* state (`error`, `active`, `completed`, `pending`) and drives every
|
|
17109
|
+
* `data-state` attribute on this step.
|
|
17110
|
+
*/
|
|
17111
|
+
readonly state: _angular_core.InputSignal<string | null>;
|
|
17112
|
+
/** Whether this step is disabled — own `disabled` OR the root stepper's `disabled`. */
|
|
17113
|
+
readonly effectiveDisabled: _angular_core.Signal<boolean>;
|
|
17114
|
+
/** DOM-order index of this step within the stepper. */
|
|
17115
|
+
readonly index: _angular_core.Signal<number>;
|
|
17116
|
+
/** True when this step is the currently selected step. */
|
|
17117
|
+
readonly current: _angular_core.Signal<boolean>;
|
|
17118
|
+
/**
|
|
17119
|
+
* True when this step can be focused and activated. False when the step is
|
|
17120
|
+
* effectively disabled or not yet reachable in linear mode.
|
|
17121
|
+
*/
|
|
17122
|
+
readonly selectable: _angular_core.Signal<boolean>;
|
|
17123
|
+
/**
|
|
17124
|
+
* Resolved `data-state` string. Precedence:
|
|
17125
|
+
* 1. Custom `state()` when non-empty.
|
|
17126
|
+
* 2. `'error'` when `hasError()` and not current.
|
|
17127
|
+
* 3. `'active'` when current.
|
|
17128
|
+
* 4. `'completed'` when `completed()`.
|
|
17129
|
+
* 5. `'pending'` otherwise.
|
|
17130
|
+
*/
|
|
17131
|
+
readonly resolvedState: _angular_core.Signal<string>;
|
|
17132
|
+
constructor();
|
|
17133
|
+
/** Selects this step. Delegates to `ForStepperContext.select(index)`. */
|
|
17134
|
+
select(): void;
|
|
17135
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperItem, never>;
|
|
17136
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperItem, "[forStepperItem]", ["forStepperItem"], { "_completedInput": { "alias": "completed"; "required": false; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_hasErrorInput": { "alias": "hasError"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14969
17137
|
}
|
|
14970
17138
|
|
|
14971
17139
|
/**
|
|
14972
|
-
*
|
|
14973
|
-
* `aria-
|
|
17140
|
+
* Header for one step. In `mode="interactive"` carries `role="tab"`, participates
|
|
17141
|
+
* in the roving tabindex, and wires `aria-selected` / `aria-controls` /
|
|
17142
|
+
* `aria-disabled`. In `mode="progress"` carries `aria-current="step"` on the
|
|
17143
|
+
* active step only and is a static element (no tab-stop manipulation).
|
|
14974
17144
|
*
|
|
14975
|
-
*
|
|
14976
|
-
*
|
|
14977
|
-
*
|
|
17145
|
+
* Apply on a `<button type="button">` for interactive mode so Enter / Space
|
|
17146
|
+
* activation is native. A static element (`<span>`) is acceptable for progress
|
|
17147
|
+
* mode.
|
|
14978
17148
|
*
|
|
14979
|
-
*
|
|
14980
|
-
*
|
|
14981
|
-
* `aria-hidden="true"` + `inert`.
|
|
17149
|
+
* Disabled triggers in interactive mode keep their tab stop (`aria-disabled`
|
|
17150
|
+
* instead of native `disabled`) so assistive tech can announce them.
|
|
14982
17151
|
*/
|
|
14983
|
-
declare class
|
|
17152
|
+
declare class ForStepperTrigger {
|
|
14984
17153
|
#private;
|
|
14985
|
-
protected readonly ctx: forty_cdk.
|
|
17154
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17155
|
+
protected readonly item: forty_cdk.ForStepperItemContext;
|
|
17156
|
+
/** Generated (or consumer-set static) id for this trigger. Used by content panels for `aria-labelledby`. */
|
|
17157
|
+
readonly id: _angular_core.Signal<string>;
|
|
17158
|
+
/** Id of the content panel this trigger controls (the matching panel by step index). */
|
|
17159
|
+
protected readonly controlsId: _angular_core.Signal<string | null>;
|
|
14986
17160
|
/**
|
|
14987
|
-
*
|
|
14988
|
-
*
|
|
14989
|
-
*
|
|
14990
|
-
*
|
|
17161
|
+
* APG tabindex cascade (interactive mode only). In progress mode returns
|
|
17162
|
+
* `null` so no tab-stop attribute is emitted. In interactive mode:
|
|
17163
|
+
* - `null` when not selectable (disabled or unreachable in linear mode).
|
|
17164
|
+
* - Roving-tracker value once any trigger has been focused.
|
|
17165
|
+
* - `0` when this step is current.
|
|
17166
|
+
* - `-1` when another trigger owns the current step.
|
|
17167
|
+
* - `0` if this is the first selectable trigger (fallback entry point).
|
|
17168
|
+
* - `-1` otherwise.
|
|
14991
17169
|
*/
|
|
14992
|
-
readonly
|
|
14993
|
-
/** Whether this is the current (active) slide. */
|
|
14994
|
-
protected readonly current: _angular_core.Signal<boolean>;
|
|
14995
|
-
/** Whether this slide is within the visible window. */
|
|
14996
|
-
protected readonly inView: _angular_core.Signal<boolean>;
|
|
14997
|
-
/** The positional `"N of M"` label used when no explicit `ariaLabel` is set. */
|
|
14998
|
-
protected readonly positionLabel: _angular_core.Signal<string | null>;
|
|
17170
|
+
protected readonly tabindex: _angular_core.Signal<0 | -1 | null>;
|
|
14999
17171
|
constructor();
|
|
15000
|
-
|
|
15001
|
-
|
|
17172
|
+
protected onClick(): void;
|
|
17173
|
+
protected onFocus(): void;
|
|
17174
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
17175
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperTrigger, never>;
|
|
17176
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperTrigger, "[forStepperTrigger]", ["forStepperTrigger"], {}, {}, never, never, true, never>;
|
|
15002
17177
|
}
|
|
15003
17178
|
|
|
15004
17179
|
/**
|
|
15005
|
-
*
|
|
15006
|
-
*
|
|
15007
|
-
*
|
|
17180
|
+
* Decorative icon slot for a step. Hidden from the accessibility tree
|
|
17181
|
+
* (`aria-hidden="true"`). Reflects the step's resolved `data-state` so
|
|
17182
|
+
* consumers can swap icons via CSS `[data-state="completed"]`,
|
|
17183
|
+
* `[data-state="error"]`, etc., or with `@if` keyed on the exported
|
|
17184
|
+
* `#indicator="forStepperIndicator"` reference.
|
|
15008
17185
|
*
|
|
15009
|
-
*
|
|
15010
|
-
* relationship. Clicking does not move focus (APG).
|
|
17186
|
+
* Must be used inside a `[forStepperItem]` element.
|
|
15011
17187
|
*/
|
|
15012
|
-
declare class
|
|
15013
|
-
protected readonly
|
|
15014
|
-
|
|
15015
|
-
|
|
15016
|
-
* (default), no `aria-label` is emitted — the consumer should supply a
|
|
15017
|
-
* visible label or set this input.
|
|
15018
|
-
*/
|
|
15019
|
-
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
15020
|
-
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
15021
|
-
constructor();
|
|
15022
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselPrevious, never>;
|
|
15023
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselPrevious, "[forCarouselPrevious]", ["forCarouselPrevious"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17188
|
+
declare class ForStepperIndicator {
|
|
17189
|
+
protected readonly item: forty_cdk.ForStepperItemContext;
|
|
17190
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperIndicator, never>;
|
|
17191
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperIndicator, "[forStepperIndicator]", ["forStepperIndicator"], {}, {}, never, never, true, never>;
|
|
15024
17192
|
}
|
|
15025
17193
|
|
|
15026
17194
|
/**
|
|
15027
|
-
*
|
|
15028
|
-
*
|
|
15029
|
-
*
|
|
17195
|
+
* Decorative connector between steps. Hidden from the accessibility tree
|
|
17196
|
+
* (`aria-hidden="true"`). Reflects `data-state="completed"` when the preceding
|
|
17197
|
+
* step is marked completed, `data-state="pending"` otherwise. Also reflects
|
|
17198
|
+
* `data-orientation` so consumers can style horizontal vs vertical separators
|
|
17199
|
+
* differently.
|
|
15030
17200
|
*
|
|
15031
|
-
*
|
|
15032
|
-
* relationship. Clicking does not move focus (APG).
|
|
17201
|
+
* Must be used inside a `[forStepperItem]` element.
|
|
15033
17202
|
*/
|
|
15034
|
-
declare class
|
|
15035
|
-
protected readonly ctx: forty_cdk.
|
|
15036
|
-
|
|
15037
|
-
|
|
15038
|
-
|
|
15039
|
-
* visible label or set this input.
|
|
15040
|
-
*/
|
|
15041
|
-
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
15042
|
-
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
15043
|
-
constructor();
|
|
15044
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselNext, never>;
|
|
15045
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselNext, "[forCarouselNext]", ["forCarouselNext"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17203
|
+
declare class ForStepperSeparator {
|
|
17204
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17205
|
+
protected readonly item: forty_cdk.ForStepperItemContext;
|
|
17206
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperSeparator, never>;
|
|
17207
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperSeparator, "[forStepperSeparator]", ["forStepperSeparator"], {}, {}, never, never, true, never>;
|
|
15046
17208
|
}
|
|
15047
17209
|
|
|
15048
17210
|
/**
|
|
15049
|
-
*
|
|
15050
|
-
*
|
|
15051
|
-
* to
|
|
17211
|
+
* Panel for one step. Correlates to a step by **position** — the Nth
|
|
17212
|
+
* `[forStepperContent]` panel in registration (DOM document) order corresponds
|
|
17213
|
+
* to the Nth step.
|
|
15052
17214
|
*
|
|
15053
|
-
*
|
|
15054
|
-
*
|
|
17215
|
+
* In `mode="interactive"` the panel carries `role="tabpanel"` and is a tab
|
|
17216
|
+
* stop (`tabindex="0"`) only when it has no focusable content of its own
|
|
17217
|
+
* (WAI-ARIA Tabs APG rule). In `mode="progress"` the panel carries
|
|
17218
|
+
* `role="group"` and is never a tab stop.
|
|
17219
|
+
*
|
|
17220
|
+
* While inactive the directive reflects `aria-hidden="true"` and `inert` so
|
|
17221
|
+
* mounted-but-inactive panels are removed from the accessibility tree and focus
|
|
17222
|
+
* order automatically. DOM presence is the consumer's responsibility — wrap
|
|
17223
|
+
* with `@if (current())` to unmount or leave mounted and toggle visibility with
|
|
17224
|
+
* CSS via `[data-state="inactive"]`.
|
|
15055
17225
|
*/
|
|
15056
|
-
declare class
|
|
15057
|
-
|
|
17226
|
+
declare class ForStepperContent {
|
|
17227
|
+
#private;
|
|
17228
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17229
|
+
/** Generated (or consumer-set static) id for this panel. Used by triggers for `aria-controls`. */
|
|
17230
|
+
readonly id: _angular_core.Signal<string>;
|
|
17231
|
+
/** True when this panel corresponds to the currently selected step. */
|
|
17232
|
+
readonly current: _angular_core.Signal<boolean>;
|
|
17233
|
+
/** Id of the trigger that labels this panel (`aria-labelledby`). */
|
|
17234
|
+
protected readonly labelledBy: _angular_core.Signal<string | null>;
|
|
15058
17235
|
/**
|
|
15059
|
-
*
|
|
15060
|
-
*
|
|
15061
|
-
*
|
|
17236
|
+
* APG tabindex: `'0'` only when in interactive mode and the panel has no
|
|
17237
|
+
* focusable content of its own, so screen-reader users can reach the panel
|
|
17238
|
+
* itself. A panel containing buttons / links / form controls gets no
|
|
17239
|
+
* `tabindex`, avoiding a redundant tab stop.
|
|
15062
17240
|
*/
|
|
15063
|
-
readonly
|
|
15064
|
-
|
|
15065
|
-
static
|
|
17241
|
+
protected readonly tabindex: _angular_core.Signal<"0" | null>;
|
|
17242
|
+
constructor();
|
|
17243
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperContent, never>;
|
|
17244
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperContent, "[forStepperContent]", ["forStepperContent"], {}, {}, never, never, true, never>;
|
|
15066
17245
|
}
|
|
15067
17246
|
|
|
15068
17247
|
/**
|
|
15069
|
-
*
|
|
15070
|
-
*
|
|
15071
|
-
*
|
|
15072
|
-
*
|
|
15073
|
-
* picker" variant).
|
|
17248
|
+
* Terminal "all steps complete" panel. Shown (active) only while the stepper is in
|
|
17249
|
+
* the completed state (`selectedIndex` has reached `count`); gated the same way as
|
|
17250
|
+
* `[forStepperContent]` — `aria-hidden` / `inert` / `data-state` flip with
|
|
17251
|
+
* `isCompleted()`. The natural place for a wizard's final success panel.
|
|
15074
17252
|
*
|
|
15075
|
-
*
|
|
15076
|
-
*
|
|
15077
|
-
*
|
|
17253
|
+
* DOM presence is the consumer's responsibility — wrap with `@if` driven by the same
|
|
17254
|
+
* completed condition, or leave it mounted and toggle visibility with CSS via
|
|
17255
|
+
* `[data-state="active"]`.
|
|
15078
17256
|
*/
|
|
15079
|
-
declare class
|
|
15080
|
-
|
|
15081
|
-
|
|
15082
|
-
|
|
15083
|
-
* Override the default positional `aria-label` (e.g. `"Go to slide 1"`).
|
|
15084
|
-
* Use this to provide a more descriptive label when the slide has a title.
|
|
15085
|
-
*/
|
|
15086
|
-
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
15087
|
-
/**
|
|
15088
|
-
* Disables this indicator. Disabled indicators remain focusable (for
|
|
15089
|
-
* assistive tech) but ignore click and keyboard activation.
|
|
15090
|
-
*/
|
|
15091
|
-
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
15092
|
-
/** Whether this indicator corresponds to the current active slide. */
|
|
15093
|
-
protected readonly current: _angular_core.Signal<boolean>;
|
|
15094
|
-
/** Default positional label used when no explicit `ariaLabel` is set. */
|
|
15095
|
-
protected readonly positionLabel: _angular_core.Signal<string | null>;
|
|
15096
|
-
/**
|
|
15097
|
-
* APG roving tabindex: user-driven roving owns it once any indicator has
|
|
15098
|
-
* been focused. Before that, fall back to "current slide's indicator, else
|
|
15099
|
-
* first enabled".
|
|
15100
|
-
*/
|
|
15101
|
-
protected readonly tabindex: _angular_core.Signal<0 | -1>;
|
|
15102
|
-
constructor();
|
|
15103
|
-
protected onClick(): void;
|
|
15104
|
-
protected onFocus(): void;
|
|
15105
|
-
protected onKeyDown(event: KeyboardEvent): void;
|
|
15106
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselIndicator, never>;
|
|
15107
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselIndicator, "[forCarouselIndicator]", ["forCarouselIndicator"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17257
|
+
declare class ForStepperCompletedContent {
|
|
17258
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17259
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperCompletedContent, never>;
|
|
17260
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperCompletedContent, "[forStepperCompletedContent]", ["forStepperCompletedContent"], {}, {}, never, never, true, never>;
|
|
15108
17261
|
}
|
|
15109
17262
|
|
|
15110
17263
|
/**
|
|
15111
|
-
*
|
|
15112
|
-
*
|
|
15113
|
-
*
|
|
15114
|
-
* per the WAI-ARIA APG Carousel pattern, which forbids `aria-pressed` here.
|
|
17264
|
+
* "Next" button for the stepper. Apply on a `<button>` element. Reflects
|
|
17265
|
+
* `aria-disabled="true"` when `canAdvance()` is false (last step reached, root
|
|
17266
|
+
* disabled, or in linear mode the current step is not completed / optional).
|
|
15115
17267
|
*
|
|
15116
|
-
*
|
|
15117
|
-
*
|
|
17268
|
+
* The button retains its native `type="button"` attribute via the `type` host
|
|
17269
|
+
* binding to prevent accidental form submission.
|
|
15118
17270
|
*
|
|
15119
|
-
*
|
|
15120
|
-
* as the styling hook for swapping a play/pause icon.
|
|
17271
|
+
* Clicking while `aria-disabled` is a no-op because `next()` guards internally.
|
|
15121
17272
|
*/
|
|
15122
|
-
declare class
|
|
15123
|
-
protected readonly ctx: forty_cdk.
|
|
15124
|
-
|
|
15125
|
-
|
|
15126
|
-
|
|
15127
|
-
readonly stopLabel: _angular_core.InputSignal<string>;
|
|
15128
|
-
/** The current accessible name — `stopLabel` while playing, else `startLabel`. */
|
|
15129
|
-
protected readonly label: _angular_core.Signal<string>;
|
|
15130
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselRotationControl, never>;
|
|
15131
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselRotationControl, "[forCarouselRotationControl]", ["forCarouselRotationControl"], { "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "stopLabel": { "alias": "stopLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17273
|
+
declare class ForStepperNext {
|
|
17274
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17275
|
+
protected onClick(): void;
|
|
17276
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperNext, never>;
|
|
17277
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperNext, "button[forStepperNext]", ["forStepperNext"], {}, {}, never, never, true, never>;
|
|
15132
17278
|
}
|
|
15133
17279
|
|
|
15134
17280
|
/**
|
|
15135
|
-
*
|
|
15136
|
-
* `
|
|
17281
|
+
* "Previous" button for the stepper. Apply on a `<button>` element. Reflects
|
|
17282
|
+
* `aria-disabled="true"` when `canRetreat()` is false (first step reached or
|
|
17283
|
+
* root disabled).
|
|
15137
17284
|
*
|
|
15138
|
-
*
|
|
15139
|
-
*
|
|
15140
|
-
* `data-dragging` while the gesture is armed. Sets `touch-action` automatically
|
|
15141
|
-
* to free the cross axis for page scrolling.
|
|
17285
|
+
* The button retains its native `type="button"` attribute via the `type` host
|
|
17286
|
+
* binding to prevent accidental form submission.
|
|
15142
17287
|
*
|
|
15143
|
-
*
|
|
15144
|
-
*
|
|
17288
|
+
* Clicking while `aria-disabled` is a no-op because `previous()` guards
|
|
17289
|
+
* internally.
|
|
15145
17290
|
*/
|
|
15146
|
-
declare class
|
|
15147
|
-
|
|
15148
|
-
protected
|
|
15149
|
-
|
|
15150
|
-
|
|
15151
|
-
/** Whether a drag gesture is currently armed (reflected as `data-dragging`). */
|
|
15152
|
-
readonly dragging: _angular_core.Signal<boolean>;
|
|
15153
|
-
/** `touch-action` for the viewport: capture the primary axis, free the cross axis. */
|
|
15154
|
-
readonly touchAction: _angular_core.Signal<string | null>;
|
|
15155
|
-
/** Live offset CSS var; suppressed at rest and under reduced motion (D3). */
|
|
15156
|
-
readonly dragVar: _angular_core.Signal<string | null>;
|
|
15157
|
-
constructor();
|
|
15158
|
-
protected onDragStart(event: Event): void;
|
|
15159
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCarouselDrag, never>;
|
|
15160
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForCarouselDrag, "[forCarouselDrag]", ["forCarouselDrag"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17291
|
+
declare class ForStepperPrevious {
|
|
17292
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
17293
|
+
protected onClick(): void;
|
|
17294
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperPrevious, never>;
|
|
17295
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperPrevious, "button[forStepperPrevious]", ["forStepperPrevious"], {}, {}, never, never, true, never>;
|
|
15161
17296
|
}
|
|
15162
17297
|
|
|
15163
17298
|
/**
|
|
15164
|
-
*
|
|
15165
|
-
*
|
|
15166
|
-
*
|
|
15167
|
-
* the
|
|
17299
|
+
* Optional progress indicator for the Stepper. Reads the stepper context and
|
|
17300
|
+
* reflects how far through the steps the user is as a WAI-ARIA
|
|
17301
|
+
* [`progressbar`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/progressbar_role):
|
|
17302
|
+
* `aria-valuemin="0"`, `aria-valuemax="100"`, `aria-valuenow` = the computed
|
|
17303
|
+
* percent, and an `aria-valuetext` describing the position. Publishes a
|
|
17304
|
+
* `--for-stepper-progress` (0–1) custom property for styling; ships no visuals.
|
|
17305
|
+
*
|
|
17306
|
+
* Must be used inside a `[forStepper]` element.
|
|
15168
17307
|
*/
|
|
15169
|
-
|
|
17308
|
+
declare class ForStepperProgress {
|
|
17309
|
+
#private;
|
|
17310
|
+
protected readonly ctx: forty_cdk.ForStepperContext;
|
|
15170
17311
|
/**
|
|
15171
|
-
*
|
|
15172
|
-
*
|
|
17312
|
+
* Basis for the reported percent. `'index'` (default) derives progress from
|
|
17313
|
+
* the current step index (matches Ark UI's `Steps.Progress`); `'completed'`
|
|
17314
|
+
* derives it from the count of steps whose resolved state is `completed`.
|
|
15173
17315
|
*/
|
|
15174
|
-
|
|
17316
|
+
readonly valueBy: _angular_core.InputSignal<"index" | "completed">;
|
|
15175
17317
|
/**
|
|
15176
|
-
*
|
|
15177
|
-
*
|
|
15178
|
-
*
|
|
17318
|
+
* Accessible name for the progressbar. Defaults to `null`, emitting no
|
|
17319
|
+
* `aria-label`; prefer a visible label referenced via `aria-labelledby` when
|
|
17320
|
+
* one exists.
|
|
15179
17321
|
*/
|
|
15180
|
-
|
|
17322
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
15181
17323
|
/**
|
|
15182
|
-
*
|
|
15183
|
-
*
|
|
17324
|
+
* Progress as a whole-number percent in `[0, 100]`, reflected to
|
|
17325
|
+
* `aria-valuenow` and (divided by 100) to the `--for-stepper-progress`
|
|
17326
|
+
* custom property.
|
|
15184
17327
|
*/
|
|
15185
|
-
|
|
17328
|
+
readonly percent: _angular_core.Signal<number>;
|
|
15186
17329
|
/**
|
|
15187
|
-
*
|
|
15188
|
-
*
|
|
15189
|
-
* overscrolling into empty space when `slidesPerView > 1`. The indicator/slide
|
|
15190
|
-
* mapping is unchanged — only the visual offset is contained. Default `false`.
|
|
17330
|
+
* Human-readable position string reflected to `aria-valuetext`: `"Step X of N"`
|
|
17331
|
+
* on the `'index'` basis, `"P% complete"` on the `'completed'` basis.
|
|
15191
17332
|
*/
|
|
15192
|
-
|
|
15193
|
-
|
|
15194
|
-
|
|
15195
|
-
/** Milliseconds between automatic slide advances. Default `5000`. */
|
|
15196
|
-
autoplayInterval: number;
|
|
17333
|
+
readonly valueText: _angular_core.Signal<string>;
|
|
17334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForStepperProgress, never>;
|
|
17335
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ForStepperProgress, "[forStepperProgress]", ["forStepperProgress"], { "valueBy": { "alias": "valueBy"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15197
17336
|
}
|
|
15198
|
-
|
|
15199
|
-
declare const FOR_CAROUSEL_DEFAULTS: _angular_core.InjectionToken<ForCarouselDefaults>;
|
|
17337
|
+
|
|
15200
17338
|
/**
|
|
15201
|
-
*
|
|
15202
|
-
*
|
|
15203
|
-
*
|
|
17339
|
+
* Defaults inherited by descendant steppers in the surrounding injector scope.
|
|
17340
|
+
* Configure with `provideForStepperDefaults` either at the application root or
|
|
17341
|
+
* in any component's `providers` array; partial overrides merge with the parent
|
|
17342
|
+
* scope.
|
|
15204
17343
|
*/
|
|
15205
|
-
|
|
17344
|
+
interface ForStepperDefaults {
|
|
17345
|
+
/**
|
|
17346
|
+
* `'manual'` (default): arrow navigation only moves focus; the user must
|
|
17347
|
+
* press Space / Enter to activate. Recommended for wizards where step
|
|
17348
|
+
* activation often triggers validation. `'automatic'`: arrow navigation moves
|
|
17349
|
+
* focus AND selects the step.
|
|
17350
|
+
*/
|
|
17351
|
+
activationMode: StepperActivationMode;
|
|
17352
|
+
/**
|
|
17353
|
+
* Whether arrow navigation wraps around past the first / last selectable
|
|
17354
|
+
* trigger.
|
|
17355
|
+
*/
|
|
17356
|
+
loop: boolean;
|
|
17357
|
+
}
|
|
17358
|
+
/** Token holding the resolved stepper defaults for the current scope. */
|
|
17359
|
+
declare const FOR_STEPPER_DEFAULTS: _angular_core.InjectionToken<ForStepperDefaults>;
|
|
17360
|
+
/**
|
|
17361
|
+
* Configures forty-cdk stepper defaults for this injector scope. Partial
|
|
17362
|
+
* overrides inherit unspecified keys from the parent scope (or library defaults
|
|
17363
|
+
* at the root).
|
|
17364
|
+
*/
|
|
17365
|
+
declare function provideForStepperDefaults(defaults?: Partial<ForStepperDefaults>): Provider[];
|
|
15206
17366
|
|
|
15207
|
-
export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarNextButton, ForCalendarPrevButton, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForSwitch, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemLabel, ForTreeItemToggle, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectNumberInputGroup, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForSwitchDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter };
|
|
15208
|
-
export type { CalendarDateLabelFormatter, CalendarDateRange, CalendarDayCell, CalendarWeek, CalendarWeekday, CarouselAlign, DateAdapter, DateFieldSegment, DateSegmentType, SegmentType as DateTimeSegmentType, FieldControlHandle, FieldGranularity, ForAccordionContext, ForAccordionDefaults, ForAccordionItemContext, ForAspectRatioDefaults, ForAvatarContext, ForAvatarDefaults, ForAvatarStatus, ForCalendarCellHandle, ForCalendarContext, ForCalendarDefaults, ForCarouselContext, ForCarouselDefaults, ForCheckboxDefaults, ForComboboxAutocomplete, ForComboboxChipHandle, ForComboboxCloseReason, ForComboboxContext, ForComboboxDefaults, ForComboboxInitialFocus, ForComboboxOptionHandle, ForContextMenuContext, ForContextMenuDefaults, ForDateFieldContext, ForDateFieldDefaults, ForDateFieldSegmentHandle, ForDateFieldSegmentLabels, ForDatePickerContext, ForDatePickerDefaults, ForDialogCloseReason, ForDialogContext, ForDialogDefaults, ForDialogOpenConfig, ForDisclosureContext, ForDisclosureDefaults, ForDrawerCloseReason, ForDrawerContext, ForDrawerDefaults, ForDrawerDragEvent, ForDrawerOpenConfig, ForDrawerReleaseEvent, ForDrawerSide, ForDrawerSnapPoint, ForDropdownMenuDefaults, ForFieldContext, ForFieldDefaults, ForFieldsetContext, ForFieldsetDefaults, ForHoverCardContext, ForHoverCardDefaults, ForInputDefaults, ForListboxContext, ForListboxDefaults, ForMenuCloseReason, ForMenuContext, ForMenuDefaults, ForMenuGroupContext, ForMenuItemHandle, ForMenuRadioGroupContext, ForMenubarContext, ForMenubarDefaults, ForMenubarTriggerHandle, ForMeterContext, ForMeterDefaults, ForMeterQuality, ForNavigationMenuContentHandle, ForNavigationMenuContext, ForNavigationMenuDefaults, ForNavigationMenuItemContext, ForNavigationMenuMotion, ForNavigationMenuTriggerHandle, ForNavigationMenuViewportHandle, ForNumberInputContext, ForNumberInputDefaults, ForNumberInputGroupContext, ForOtpInputContext, ForOtpInputDefaults, ForPaneResizerDefaults, ForPopoverContext, ForPopoverDefaults, ForProgressContext, ForProgressDefaults, ForProgressState, ForRadioGroupContext, ForRadioGroupDefaults, ForScrollAreaContext, ForScrollAreaDefaults, ForScrollAreaType, ForScrollbarOrientation, ForSelectCloseReason, ForSelectContext, ForSelectDefaults, ForSelectInitialFocus, ForSelectOptionHandle, ForSeparatorDefaults, ForSliderContext, ForSliderDefaults, ForSliderThumbHandle, ForSwitchDefaults, ForTabsContext, ForTabsDefaults, ForTimeFieldContext, ForTimeFieldDefaults, ForTimeFieldSegmentHandle, ForTimeFieldSegmentLabels, ForToastCloseReason, ForToastConfig, ForToastContext, ForToastDefaults, ForToastInstance, ForToastSwipeDirection, ForToastTemplateContext, ForToastVariant, ForToggleDefaults, ForToggleGroupContext, ForToggleGroupItemHandle, ForToolbarContext, ForToolbarDefaults, ForToolbarItemHandle, ForTooltipContext, ForTooltipDefaults, ForTreeContainerContext, ForTreeContext, ForTreeDefaults, ForTreeItemContext, ForTreeItemHandle, HoverCardScheduleReason, MenuActivationModality, NavigationMenuScheduleReason, OtpInputType, SliderArrowKey, SwipeDirection, SwipeEventDetail, TabsActivationMode, TimeCapableDateAdapter, TimeFieldSegment, TimeGranularity, TimeSegmentType, TooltipScheduleReason, VetoableEvent, VetoableNativeEvent };
|
|
17367
|
+
export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAG_DROP_CONTEXT, FOR_DRAG_DROP_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_DROP_LIST_GROUP, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_PICKER_CONTEXT, FOR_TIME_PICKER_DEFAULTS, FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS, FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarMonthCell, ForCalendarMonthGrid, ForCalendarMonthSelect, ForCalendarNextButton, ForCalendarPrevButton, ForCalendarViewTrigger, ForCalendarYearCell, ForCalendarYearGrid, ForCalendarYearSelect, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDragHandle, ForDragPlaceholder, ForDragPreview, ForDraggable, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropList, ForDropListGroup, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, ForSwitch, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForTimePicker, ForTimePickerContent, ForTimePickerOption, ForTimePickerTrigger, ForTimePickerValue, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemCheckbox, ForTreeItemCheckboxIndicator, ForTreeItemLabel, ForTreeItemToggle, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, buildTimeSlots, expandToReveal, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectNumberInputGroup, moveItemInArray, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDragDropDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForStepperDefaults, provideForSwitchDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForTimePickerDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter, transferArrayItem };
|
|
17368
|
+
export type { CalendarDateLabelFormatter, CalendarDateRange, CalendarDayCell, CalendarMonthOption, CalendarMonthRow, CalendarView, CalendarWeek, CalendarWeekday, CalendarYearOption, CalendarYearRow, CarouselAlign, DateAdapter, DateFieldSegment, DateSegmentType, SegmentType as DateTimeSegmentType, FieldControlHandle, FieldGranularity, ForAccordionContext, ForAccordionDefaults, ForAccordionItemContext, ForAspectRatioDefaults, ForAvatarContext, ForAvatarDefaults, ForAvatarStatus, ForCalendarCellHandle, ForCalendarContext, ForCalendarDefaults, ForCalendarMonthCellHandle, ForCalendarYearCellHandle, ForCarouselContext, ForCarouselDefaults, ForCheckboxDefaults, ForComboboxAutocomplete, ForComboboxChipHandle, ForComboboxCloseReason, ForComboboxContext, ForComboboxDefaults, ForComboboxInitialFocus, ForComboboxOptionHandle, ForContextMenuContext, ForContextMenuDefaults, ForDateFieldContext, ForDateFieldDefaults, ForDateFieldSegmentHandle, ForDateFieldSegmentLabels, ForDatePickerContext, ForDatePickerDefaults, ForDialogCloseReason, ForDialogContext, ForDialogDefaults, ForDialogOpenConfig, ForDisclosureContext, ForDisclosureDefaults, ForDragDropDefaults, ForDragDropEvent, ForDragEndEvent, ForDragStartEvent, ForDraggableHandle, ForDrawerCloseReason, ForDrawerContext, ForDrawerDefaults, ForDrawerDragEvent, ForDrawerOpenConfig, ForDrawerReleaseEvent, ForDrawerSide, ForDrawerSnapPoint, ForDropListContext, ForDropdownMenuDefaults, ForFieldContext, ForFieldDefaults, ForFieldsetContext, ForFieldsetDefaults, ForHoverCardContext, ForHoverCardDefaults, ForInputDefaults, ForListboxContext, ForListboxDefaults, ForMenuCloseReason, ForMenuContext, ForMenuDefaults, ForMenuGroupContext, ForMenuItemHandle, ForMenuRadioGroupContext, ForMenubarContext, ForMenubarDefaults, ForMenubarTriggerHandle, ForMeterContext, ForMeterDefaults, ForMeterQuality, ForNavigationMenuContentHandle, ForNavigationMenuContext, ForNavigationMenuDefaults, ForNavigationMenuItemContext, ForNavigationMenuMotion, ForNavigationMenuTriggerHandle, ForNavigationMenuViewportHandle, ForNumberInputContext, ForNumberInputDefaults, ForNumberInputGroupContext, ForOtpInputContext, ForOtpInputDefaults, ForPaneResizerDefaults, ForPopoverContext, ForPopoverDefaults, ForProgressContext, ForProgressDefaults, ForProgressState, ForRadioGroupContext, ForRadioGroupDefaults, ForScrollAreaContext, ForScrollAreaDefaults, ForScrollAreaType, ForScrollbarOrientation, ForSelectCloseReason, ForSelectContext, ForSelectDefaults, ForSelectInitialFocus, ForSelectOptionHandle, ForSeparatorDefaults, ForSliderContext, ForSliderDefaults, ForSliderThumbHandle, ForStepperContentHandle, ForStepperContext, ForStepperDefaults, ForStepperItemContext, ForStepperItemHandle, ForStepperTriggerHandle, ForSwitchDefaults, ForTabsContext, ForTabsDefaults, ForTimeFieldContext, ForTimeFieldDefaults, ForTimeFieldSegmentHandle, ForTimeFieldSegmentLabels, ForTimePickerCloseReason, ForTimePickerContext, ForTimePickerDefaults, ForTimePickerInitialFocus, ForTimePickerOptionHandle, ForTimeSlot, ForToastCloseReason, ForToastConfig, ForToastContext, ForToastDefaults, ForToastInstance, ForToastSwipeDirection, ForToastTemplateContext, ForToastVariant, ForToggleDefaults, ForToggleGroupContext, ForToggleGroupItemHandle, ForToolbarContext, ForToolbarDefaults, ForToolbarItemHandle, ForTooltipContext, ForTooltipDefaults, ForTreeContainerContext, ForTreeContext, ForTreeDefaults, ForTreeItemContext, ForTreeItemHandle, HoverCardScheduleReason, MenuActivationModality, NavigationMenuScheduleReason, OtpInputType, SliderArrowKey, StepperActivationMode, StepperMode, SwipeDirection, SwipeEventDetail, TabsActivationMode, TimeCapableDateAdapter, TimeFieldSegment, TimeGranularity, TimePickerGranularity, TimeSegmentType, TooltipScheduleReason, VetoableEvent, VetoableNativeEvent };
|