ng-primitives 0.115.2 → 0.117.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context-menu/README.md +3 -0
- package/context-menu/index.d.ts +284 -0
- package/fesm2022/ng-primitives-context-menu.mjs +612 -0
- package/fesm2022/ng-primitives-context-menu.mjs.map +1 -0
- package/fesm2022/ng-primitives-menu.mjs +1 -1
- package/fesm2022/ng-primitives-portal.mjs +9 -1
- package/fesm2022/ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +56 -10
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +49 -32
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +36 -21
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/menu/index.d.ts +40 -1
- package/package.json +5 -1
- package/portal/index.d.ts +7 -0
- package/schematics/ng-generate/templates/context-menu/context-menu-item.__fileSuffix@dasherize__.ts.template +41 -0
- package/schematics/ng-generate/templates/context-menu/context-menu.__fileSuffix@dasherize__.ts.template +54 -0
- package/schematics/ng-generate/templates/toggle/toggle.__fileSuffix@dasherize__.ts.template +1 -1
- package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +1 -1
- package/state/index.d.ts +33 -2
- package/toggle/index.d.ts +23 -6
- package/toggle-group/index.d.ts +24 -6
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Provider, Signal } from '@angular/core';
|
|
3
|
+
import { NgpOffset, NgpFlip, NgpShift, NgpOverlayContent, NgpOffsetInput, NgpFlipInput, NgpShiftInput } from 'ng-primitives/portal';
|
|
4
|
+
import { FocusOrigin } from '@angular/cdk/a11y';
|
|
5
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
6
|
+
import { NgpMenuPlacement } from 'ng-primitives/menu';
|
|
7
|
+
|
|
8
|
+
interface NgpContextMenuConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Define the offset of the context menu relative to the cursor position.
|
|
11
|
+
* @default 2
|
|
12
|
+
*/
|
|
13
|
+
offset: NgpOffset;
|
|
14
|
+
/**
|
|
15
|
+
* Define whether the context menu should flip when there is not enough space.
|
|
16
|
+
* @default true
|
|
17
|
+
*/
|
|
18
|
+
flip: NgpFlip;
|
|
19
|
+
/**
|
|
20
|
+
* Define the container element or selector in which the context menu should be attached.
|
|
21
|
+
* @default 'body'
|
|
22
|
+
*/
|
|
23
|
+
container: HTMLElement | string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Defines how the context menu behaves when the window is scrolled.
|
|
26
|
+
* @default 'close'
|
|
27
|
+
*/
|
|
28
|
+
scrollBehavior: 'reposition' | 'block' | 'close';
|
|
29
|
+
/**
|
|
30
|
+
* Configure shift behavior to keep the context menu in view.
|
|
31
|
+
* @default undefined
|
|
32
|
+
*/
|
|
33
|
+
shift: NgpShift;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Provide the default Context Menu configuration
|
|
37
|
+
* @param config The Context Menu configuration
|
|
38
|
+
* @returns The provider
|
|
39
|
+
*/
|
|
40
|
+
declare function provideContextMenuConfig(config: Partial<NgpContextMenuConfig>): Provider[];
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The `NgpContextMenu` is a container for context menu items.
|
|
44
|
+
*/
|
|
45
|
+
declare class NgpContextMenu {
|
|
46
|
+
/**
|
|
47
|
+
* Whether focus should wrap around when reaching the end of the menu.
|
|
48
|
+
* @default true
|
|
49
|
+
*/
|
|
50
|
+
readonly wrap: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
51
|
+
private readonly state;
|
|
52
|
+
constructor();
|
|
53
|
+
/** @internal Close the menu and any parent menus */
|
|
54
|
+
closeAllMenus(origin: FocusOrigin): void;
|
|
55
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenu, never>;
|
|
56
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenu, "[ngpContextMenu]", ["ngpContextMenu"], { "wrap": { "alias": "ngpContextMenuWrap"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The `NgpContextMenuItem` directive represents a context menu item.
|
|
61
|
+
*/
|
|
62
|
+
declare class NgpContextMenuItem {
|
|
63
|
+
/** Whether the menu item is disabled */
|
|
64
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
65
|
+
/** Whether the menu should close when this item is selected */
|
|
66
|
+
readonly closeOnSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
67
|
+
constructor();
|
|
68
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuItem, never>;
|
|
69
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuItem, "[ngpContextMenuItem]", ["ngpContextMenuItem"], { "disabled": { "alias": "ngpContextMenuItemDisabled"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "ngpContextMenuItemCloseOnSelect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The `NgpContextMenuItemCheckbox` directive represents a context menu item that can be toggled on and off.
|
|
74
|
+
*/
|
|
75
|
+
declare class NgpContextMenuItemCheckbox {
|
|
76
|
+
/** Whether the checkbox is checked */
|
|
77
|
+
readonly checked: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
78
|
+
/** Event emitted when the checked state changes */
|
|
79
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
80
|
+
/** Whether the menu item checkbox is disabled */
|
|
81
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
82
|
+
constructor();
|
|
83
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuItemCheckbox, never>;
|
|
84
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuItemCheckbox, "[ngpContextMenuItemCheckbox]", ["ngpContextMenuItemCheckbox"], { "checked": { "alias": "ngpContextMenuItemCheckboxChecked"; "required": false; "isSignal": true; }; "disabled": { "alias": "ngpContextMenuItemCheckboxDisabled"; "required": false; "isSignal": true; }; }, { "checkedChange": "ngpContextMenuItemCheckboxCheckedChange"; }, never, never, true, never>;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The `NgpContextMenuItemIndicator` directive renders inside a checkbox or radio context menu item
|
|
89
|
+
* and exposes `data-checked` based on the parent item's checked state.
|
|
90
|
+
*/
|
|
91
|
+
declare class NgpContextMenuItemIndicator {
|
|
92
|
+
constructor();
|
|
93
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuItemIndicator, never>;
|
|
94
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuItemIndicator, "[ngpContextMenuItemIndicator]", ["ngpContextMenuItemIndicator"], {}, {}, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* The `NgpContextMenuItemRadio` directive represents a radio context menu item within a radio group.
|
|
99
|
+
*/
|
|
100
|
+
declare class NgpContextMenuItemRadio {
|
|
101
|
+
/** The value this radio item represents */
|
|
102
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
103
|
+
/** Whether the radio item is disabled */
|
|
104
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
105
|
+
constructor();
|
|
106
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuItemRadio, never>;
|
|
107
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuItemRadio, "[ngpContextMenuItemRadio]", ["ngpContextMenuItemRadio"], { "value": { "alias": "ngpContextMenuItemRadioValue"; "required": true; "isSignal": true; }; "disabled": { "alias": "ngpContextMenuItemRadioDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The `NgpContextMenuItemRadioGroup` directive represents a group of radio context menu items.
|
|
112
|
+
*/
|
|
113
|
+
declare class NgpContextMenuItemRadioGroup {
|
|
114
|
+
/** The current value of the radio group */
|
|
115
|
+
readonly value: _angular_core.InputSignal<string | null>;
|
|
116
|
+
/** Event emitted when the value changes */
|
|
117
|
+
readonly valueChange: _angular_core.OutputEmitterRef<string>;
|
|
118
|
+
constructor();
|
|
119
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuItemRadioGroup, never>;
|
|
120
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuItemRadioGroup, "[ngpContextMenuItemRadioGroup]", ["ngpContextMenuItemRadioGroup"], { "value": { "alias": "ngpContextMenuItemRadioGroupValue"; "required": false; "isSignal": true; }; }, { "valueChange": "ngpContextMenuItemRadioGroupValueChange"; }, never, never, true, never>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The `NgpContextMenuSubmenuTrigger` directive turns a context menu item into a submenu trigger.
|
|
125
|
+
*/
|
|
126
|
+
declare class NgpContextMenuSubmenuTrigger<T = unknown> {
|
|
127
|
+
/**
|
|
128
|
+
* Access the submenu template ref.
|
|
129
|
+
*/
|
|
130
|
+
readonly menu: _angular_core.InputSignal<NgpOverlayContent<T> | undefined>;
|
|
131
|
+
/**
|
|
132
|
+
* Define if the trigger should be disabled.
|
|
133
|
+
* @default false
|
|
134
|
+
*/
|
|
135
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
136
|
+
/**
|
|
137
|
+
* Define the placement of the submenu relative to the trigger.
|
|
138
|
+
* @default 'right-start'
|
|
139
|
+
*/
|
|
140
|
+
readonly placement: _angular_core.InputSignal<NgpMenuPlacement>;
|
|
141
|
+
/**
|
|
142
|
+
* Define the offset of the submenu relative to the trigger.
|
|
143
|
+
* @default 0
|
|
144
|
+
*/
|
|
145
|
+
readonly offset: _angular_core.InputSignalWithTransform<NgpOffset, NgpOffsetInput>;
|
|
146
|
+
/**
|
|
147
|
+
* Define whether the submenu should flip when there is not enough space.
|
|
148
|
+
* @default true
|
|
149
|
+
*/
|
|
150
|
+
readonly flip: _angular_core.InputSignalWithTransform<NgpFlip, NgpFlipInput>;
|
|
151
|
+
private readonly state;
|
|
152
|
+
show(): void;
|
|
153
|
+
hide(origin?: FocusOrigin): void;
|
|
154
|
+
toggle(event: MouseEvent): void;
|
|
155
|
+
focus(origin?: FocusOrigin): void;
|
|
156
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuSubmenuTrigger<any>, never>;
|
|
157
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuSubmenuTrigger<any>, "[ngpContextMenuSubmenuTrigger]", ["ngpContextMenuSubmenuTrigger"], { "menu": { "alias": "ngpContextMenuSubmenuTrigger"; "required": false; "isSignal": true; }; "disabled": { "alias": "ngpContextMenuSubmenuTriggerDisabled"; "required": false; "isSignal": true; }; "placement": { "alias": "ngpContextMenuSubmenuTriggerPlacement"; "required": false; "isSignal": true; }; "offset": { "alias": "ngpContextMenuSubmenuTriggerOffset"; "required": false; "isSignal": true; }; "flip": { "alias": "ngpContextMenuSubmenuTriggerFlip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The `NgpContextMenuTrigger` directive allows you to turn an element into a context menu trigger.
|
|
162
|
+
* Right-clicking or long-pressing the element will open the specified menu at the cursor position.
|
|
163
|
+
*/
|
|
164
|
+
declare class NgpContextMenuTrigger<T = unknown> {
|
|
165
|
+
/**
|
|
166
|
+
* Access the global context menu configuration.
|
|
167
|
+
*/
|
|
168
|
+
private readonly config;
|
|
169
|
+
/**
|
|
170
|
+
* The menu template ref or ComponentType to display.
|
|
171
|
+
*/
|
|
172
|
+
readonly menu: _angular_core.InputSignal<NgpOverlayContent<T> | undefined>;
|
|
173
|
+
/**
|
|
174
|
+
* Define if the trigger should be disabled.
|
|
175
|
+
* @default false
|
|
176
|
+
*/
|
|
177
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
|
|
178
|
+
/**
|
|
179
|
+
* Define the offset of the context menu relative to the cursor position.
|
|
180
|
+
* @default 2
|
|
181
|
+
*/
|
|
182
|
+
readonly offset: _angular_core.InputSignalWithTransform<NgpOffset, NgpOffsetInput>;
|
|
183
|
+
/**
|
|
184
|
+
* Define whether the context menu should flip when there is not enough space.
|
|
185
|
+
* @default true
|
|
186
|
+
*/
|
|
187
|
+
readonly flip: _angular_core.InputSignalWithTransform<NgpFlip, NgpFlipInput>;
|
|
188
|
+
/**
|
|
189
|
+
* Configure shift behavior to keep the context menu in view.
|
|
190
|
+
* @default undefined
|
|
191
|
+
*/
|
|
192
|
+
readonly shift: _angular_core.InputSignalWithTransform<NgpShift, NgpShiftInput>;
|
|
193
|
+
/**
|
|
194
|
+
* Define the container in which the context menu should be attached.
|
|
195
|
+
* @default document.body
|
|
196
|
+
*/
|
|
197
|
+
readonly container: _angular_core.InputSignal<string | HTMLElement | null>;
|
|
198
|
+
/**
|
|
199
|
+
* Defines how the context menu behaves when the window is scrolled.
|
|
200
|
+
* @default 'close'
|
|
201
|
+
*/
|
|
202
|
+
readonly scrollBehavior: _angular_core.InputSignal<"reposition" | "block" | "close">;
|
|
203
|
+
/**
|
|
204
|
+
* Provide context to the menu. This can be used to pass data to the menu content.
|
|
205
|
+
*/
|
|
206
|
+
readonly context: _angular_core.InputSignal<T | undefined>;
|
|
207
|
+
/**
|
|
208
|
+
* The context menu trigger state.
|
|
209
|
+
*/
|
|
210
|
+
private readonly state;
|
|
211
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgpContextMenuTrigger<any>, never>;
|
|
212
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgpContextMenuTrigger<any>, "[ngpContextMenuTrigger]", ["ngpContextMenuTrigger"], { "menu": { "alias": "ngpContextMenuTrigger"; "required": false; "isSignal": true; }; "disabled": { "alias": "ngpContextMenuTriggerDisabled"; "required": false; "isSignal": true; }; "offset": { "alias": "ngpContextMenuTriggerOffset"; "required": false; "isSignal": true; }; "flip": { "alias": "ngpContextMenuTriggerFlip"; "required": false; "isSignal": true; }; "shift": { "alias": "ngpContextMenuTriggerShift"; "required": false; "isSignal": true; }; "container": { "alias": "ngpContextMenuTriggerContainer"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "ngpContextMenuTriggerScrollBehavior"; "required": false; "isSignal": true; }; "context": { "alias": "ngpContextMenuTriggerContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
interface NgpContextMenuTriggerState {
|
|
216
|
+
/**
|
|
217
|
+
* Whether the context menu is open.
|
|
218
|
+
*/
|
|
219
|
+
readonly open: Signal<boolean>;
|
|
220
|
+
/**
|
|
221
|
+
* The focus origin that was used to open the menu.
|
|
222
|
+
*/
|
|
223
|
+
readonly openOrigin: Signal<FocusOrigin>;
|
|
224
|
+
/**
|
|
225
|
+
* Show the context menu.
|
|
226
|
+
*/
|
|
227
|
+
show(origin?: FocusOrigin): void;
|
|
228
|
+
/**
|
|
229
|
+
* Hide the context menu.
|
|
230
|
+
*/
|
|
231
|
+
hide(origin?: FocusOrigin): void;
|
|
232
|
+
/**
|
|
233
|
+
* Set whether the pointer is over the menu content.
|
|
234
|
+
*/
|
|
235
|
+
setPointerOverContent(isOver: boolean): void;
|
|
236
|
+
}
|
|
237
|
+
interface NgpContextMenuTriggerProps<T = unknown> {
|
|
238
|
+
/**
|
|
239
|
+
* The menu template or component.
|
|
240
|
+
*/
|
|
241
|
+
readonly menu?: Signal<NgpOverlayContent<T> | undefined>;
|
|
242
|
+
/**
|
|
243
|
+
* Whether the trigger is disabled.
|
|
244
|
+
*/
|
|
245
|
+
readonly disabled?: Signal<boolean>;
|
|
246
|
+
/**
|
|
247
|
+
* The offset of the menu.
|
|
248
|
+
*/
|
|
249
|
+
readonly offset?: Signal<NgpOffset>;
|
|
250
|
+
/**
|
|
251
|
+
* Whether the menu should flip when there is not enough space.
|
|
252
|
+
*/
|
|
253
|
+
readonly flip?: Signal<NgpFlip>;
|
|
254
|
+
/**
|
|
255
|
+
* The container in which the menu should be attached.
|
|
256
|
+
*/
|
|
257
|
+
readonly container?: Signal<HTMLElement | string | null>;
|
|
258
|
+
/**
|
|
259
|
+
* Configure shift behavior.
|
|
260
|
+
*/
|
|
261
|
+
shift: NgpShift;
|
|
262
|
+
/**
|
|
263
|
+
* How the menu behaves when the window is scrolled.
|
|
264
|
+
*/
|
|
265
|
+
readonly scrollBehavior?: Signal<'reposition' | 'block' | 'close'>;
|
|
266
|
+
/**
|
|
267
|
+
* Context to provide to the menu.
|
|
268
|
+
*/
|
|
269
|
+
readonly context?: Signal<T>;
|
|
270
|
+
}
|
|
271
|
+
declare const ngpContextMenuTrigger: <T>({ disabled: _disabled, menu: _menu, offset: _offset, flip: _flip, context: _context, container, scrollBehavior, shift, }: NgpContextMenuTriggerProps<T>) => {
|
|
272
|
+
open: Signal<boolean>;
|
|
273
|
+
openOrigin: _angular_core.WritableSignal<FocusOrigin>;
|
|
274
|
+
show: (origin?: FocusOrigin) => void;
|
|
275
|
+
hide: (origin?: FocusOrigin) => void;
|
|
276
|
+
setPointerOverContent: (_isOver: boolean) => void;
|
|
277
|
+
};
|
|
278
|
+
declare const provideContextMenuTriggerState: (opts?: {
|
|
279
|
+
inherit?: boolean;
|
|
280
|
+
}) => _angular_core.FactoryProvider;
|
|
281
|
+
declare function injectContextMenuTriggerState(): Signal<NgpContextMenuTriggerState>;
|
|
282
|
+
|
|
283
|
+
export { NgpContextMenu, NgpContextMenuItem, NgpContextMenuItemCheckbox, NgpContextMenuItemIndicator, NgpContextMenuItemRadio, NgpContextMenuItemRadioGroup, NgpContextMenuSubmenuTrigger, NgpContextMenuTrigger, injectContextMenuTriggerState, ngpContextMenuTrigger, provideContextMenuConfig, provideContextMenuTriggerState };
|
|
284
|
+
export type { NgpContextMenuConfig, NgpContextMenuTriggerProps, NgpContextMenuTriggerState };
|