@yuuvis/client-framework 3.0.0-beta.20.2 → 3.0.0-beta.21.1

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.
Files changed (129) hide show
  1. package/autocomplete/README.md +1 -1
  2. package/common/README.md +1 -1
  3. package/fesm2022/yuuvis-client-framework-actions.mjs +25 -25
  4. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  5. package/fesm2022/yuuvis-client-framework-app-bar.mjs +6 -6
  6. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
  7. package/fesm2022/yuuvis-client-framework-autocomplete.mjs +5 -236
  8. package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +4 -4
  10. package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-clipboard.mjs +7 -6
  12. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-common.mjs +3 -1793
  14. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  15. package/fesm2022/yuuvis-client-framework-datepicker.mjs +51 -51
  16. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
  17. package/fesm2022/yuuvis-client-framework-forms.mjs +154 -167
  18. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  19. package/fesm2022/yuuvis-client-framework-icons.mjs +14 -14
  20. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  21. package/fesm2022/yuuvis-client-framework-list.mjs +3 -679
  22. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  23. package/fesm2022/yuuvis-client-framework-master-details.mjs +3 -136
  24. package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
  25. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -7
  26. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
  27. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +28 -28
  28. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  29. package/fesm2022/yuuvis-client-framework-object-details.mjs +92 -95
  30. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  31. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +46 -44
  32. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  33. package/fesm2022/yuuvis-client-framework-object-form.mjs +47 -47
  34. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  35. package/fesm2022/yuuvis-client-framework-object-preview.mjs +37 -58
  36. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  37. package/fesm2022/yuuvis-client-framework-object-relationship.mjs +80 -80
  38. package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
  39. package/fesm2022/yuuvis-client-framework-object-summary.mjs +37 -38
  40. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  41. package/fesm2022/yuuvis-client-framework-object-versions.mjs +20 -20
  42. package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
  43. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs +3 -62
  44. package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs.map +1 -1
  45. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +3 -129
  46. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
  47. package/fesm2022/yuuvis-client-framework-pagination.mjs +5 -5
  48. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  49. package/fesm2022/yuuvis-client-framework-popout.mjs +3 -239
  50. package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
  51. package/fesm2022/yuuvis-client-framework-query-list.mjs +26 -28
  52. package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
  53. package/fesm2022/yuuvis-client-framework-renderer.mjs +51 -51
  54. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  55. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +7 -7
  56. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  57. package/fesm2022/yuuvis-client-framework-simple-search.mjs +4 -4
  58. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
  59. package/fesm2022/yuuvis-client-framework-sort.mjs +34 -55
  60. package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
  61. package/fesm2022/yuuvis-client-framework-split-view.mjs +3 -321
  62. package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
  63. package/fesm2022/yuuvis-client-framework-tile-list.mjs +88 -90
  64. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  65. package/fesm2022/yuuvis-client-framework-token-search.mjs +21 -21
  66. package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -1
  67. package/fesm2022/yuuvis-client-framework-tree.mjs +16 -16
  68. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
  69. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +15 -15
  70. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
  71. package/fesm2022/yuuvis-client-framework-widget-grid.mjs +3 -946
  72. package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
  73. package/fesm2022/yuuvis-client-framework.mjs +22 -22
  74. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  75. package/lib/assets/i18n/de.json +1 -55
  76. package/lib/assets/i18n/en.json +1 -55
  77. package/list/README.md +1 -1
  78. package/master-details/README.md +1 -1
  79. package/overflow-hidden/README.md +1 -1
  80. package/overflow-menu/README.md +1 -1
  81. package/package.json +50 -48
  82. package/popout/README.md +1 -1
  83. package/split-view/README.md +1 -1
  84. package/types/yuuvis-client-framework-autocomplete.d.ts +1 -0
  85. package/{clipboard/index.d.ts → types/yuuvis-client-framework-clipboard.d.ts} +1 -1
  86. package/types/yuuvis-client-framework-common.d.ts +1 -0
  87. package/types/yuuvis-client-framework-list.d.ts +1 -0
  88. package/types/yuuvis-client-framework-master-details.d.ts +1 -0
  89. package/{object-flavor/index.d.ts → types/yuuvis-client-framework-object-flavor.d.ts} +1 -0
  90. package/types/yuuvis-client-framework-overflow-hidden.d.ts +1 -0
  91. package/types/yuuvis-client-framework-overflow-menu.d.ts +1 -0
  92. package/types/yuuvis-client-framework-popout.d.ts +1 -0
  93. package/{renderer/index.d.ts → types/yuuvis-client-framework-renderer.d.ts} +2 -2
  94. package/types/yuuvis-client-framework-split-view.d.ts +1 -0
  95. package/types/yuuvis-client-framework-widget-grid.d.ts +1 -0
  96. package/widget-grid/README.md +1 -46
  97. package/autocomplete/index.d.ts +0 -89
  98. package/common/index.d.ts +0 -536
  99. package/list/index.d.ts +0 -380
  100. package/master-details/index.d.ts +0 -69
  101. package/overflow-hidden/index.d.ts +0 -28
  102. package/overflow-menu/index.d.ts +0 -52
  103. package/popout/index.d.ts +0 -106
  104. package/split-view/index.d.ts +0 -197
  105. package/widget-grid/index.d.ts +0 -299
  106. /package/{actions/index.d.ts → types/yuuvis-client-framework-actions.d.ts} +0 -0
  107. /package/{app-bar/index.d.ts → types/yuuvis-client-framework-app-bar.d.ts} +0 -0
  108. /package/{breadcrumb/index.d.ts → types/yuuvis-client-framework-breadcrumb.d.ts} +0 -0
  109. /package/{datepicker/index.d.ts → types/yuuvis-client-framework-datepicker.d.ts} +0 -0
  110. /package/{forms/index.d.ts → types/yuuvis-client-framework-forms.d.ts} +0 -0
  111. /package/{icons/index.d.ts → types/yuuvis-client-framework-icons.d.ts} +0 -0
  112. /package/{metadata-form-defaults/index.d.ts → types/yuuvis-client-framework-metadata-form-defaults.d.ts} +0 -0
  113. /package/{metadata-form/index.d.ts → types/yuuvis-client-framework-metadata-form.d.ts} +0 -0
  114. /package/{object-details/index.d.ts → types/yuuvis-client-framework-object-details.d.ts} +0 -0
  115. /package/{object-form/index.d.ts → types/yuuvis-client-framework-object-form.d.ts} +0 -0
  116. /package/{object-preview/index.d.ts → types/yuuvis-client-framework-object-preview.d.ts} +0 -0
  117. /package/{object-relationship/index.d.ts → types/yuuvis-client-framework-object-relationship.d.ts} +0 -0
  118. /package/{object-summary/index.d.ts → types/yuuvis-client-framework-object-summary.d.ts} +0 -0
  119. /package/{object-versions/index.d.ts → types/yuuvis-client-framework-object-versions.d.ts} +0 -0
  120. /package/{pagination/index.d.ts → types/yuuvis-client-framework-pagination.d.ts} +0 -0
  121. /package/{query-list/index.d.ts → types/yuuvis-client-framework-query-list.d.ts} +0 -0
  122. /package/{sequence-list/index.d.ts → types/yuuvis-client-framework-sequence-list.d.ts} +0 -0
  123. /package/{simple-search/index.d.ts → types/yuuvis-client-framework-simple-search.d.ts} +0 -0
  124. /package/{sort/index.d.ts → types/yuuvis-client-framework-sort.d.ts} +0 -0
  125. /package/{tile-list/index.d.ts → types/yuuvis-client-framework-tile-list.d.ts} +0 -0
  126. /package/{token-search/index.d.ts → types/yuuvis-client-framework-token-search.d.ts} +0 -0
  127. /package/{tree/index.d.ts → types/yuuvis-client-framework-tree.d.ts} +0 -0
  128. /package/{upload-progress/index.d.ts → types/yuuvis-client-framework-upload-progress.d.ts} +0 -0
  129. /package/{index.d.ts → types/yuuvis-client-framework.d.ts} +0 -0
package/list/index.d.ts DELETED
@@ -1,380 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';
3
- import { BooleanInput } from '@angular/cdk/coercion';
4
- import { Highlightable } from '@angular/cdk/a11y';
5
-
6
- /**
7
- * Directive for list items. It is used in the `yuvList` component
8
- * to keep track of active and selected items. Every element with this
9
- * directive will be treated as a list item and can be selected and focused.
10
- *
11
- *```html
12
- * <yuv-list (itemSelect)="itemSelected($event)">
13
- * <div yuvListItem>Entry #1</div>
14
- * <div yuvListItem>Entry #2</div>
15
- * </yuv-list>
16
- * ```
17
- */
18
- declare class ListItemDirective implements Highlightable, AfterViewInit {
19
- #private;
20
- onClick?: (evt: MouseEvent) => void;
21
- disabled?: boolean | undefined;
22
- /**
23
- * Whether the item is active or not.
24
- */
25
- active: _angular_core.InputSignal<boolean>;
26
- /**
27
- * Whether the item is selected or not.
28
- */
29
- selected: _angular_core.InputSignal<boolean>;
30
- selectedInput: _angular_core.WritableSignal<any>;
31
- activeInput: _angular_core.WritableSignal<any>;
32
- focusableChildren: Element[];
33
- focusedIndex: number;
34
- onHostClick(evt: MouseEvent): void;
35
- setActiveStyles(): void;
36
- setInactiveStyles(): void;
37
- focusNext(): void;
38
- focusPrevious(): void;
39
- ngAfterViewInit(): void;
40
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListItemDirective, never>;
41
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListItemDirective, "[yuvListItem]", never, { "disabled": { "alias": "disabled"; "required": false; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
42
- }
43
-
44
- /**
45
- * Accessible list component with keyboard navigation, single- and multi-selection,
46
- * and flexible delegation of click- and selection-handling to the parent.
47
- *
48
- * The component renders as an ARIA `listbox` and delegates keyboard focus tracking
49
- * to Angular CDK's `ActiveDescendantKeyManager`. Content is projected via
50
- * `[yuvListItem]`-attributed children (see `ListItemDirective`).
51
- *
52
- * **Key Features:**
53
- * - Single and multi-selection (with Shift / Ctrl modifier support)
54
- * - Full keyboard navigation (Arrow keys, Space, Enter, Escape)
55
- * - Horizontal and vertical layout via the `horizontal` host attribute
56
- * - Auto-selection on initialization via the `autoSelect` input
57
- * - Selection guarding via `preventChangeUntil` callback
58
- * - Optional delegation of click and selection handling to the parent component
59
- * - Accessible: `role="listbox"`, active-descendant focus management, `aria-selected` on items
60
- *
61
- * **Basic usage:**
62
- * ```html
63
- * <yuv-list (itemSelect)="onItemSelect($event)">
64
- * <div yuvListItem>Entry #1</div>
65
- * <div yuvListItem>Entry #2</div>
66
- * </yuv-list>
67
- * ```
68
- *
69
- * **Multi-selection with Shift/Ctrl:**
70
- * ```html
71
- * <yuv-list [multiselect]="true" (itemSelect)="onSelect($event)">
72
- * @for (item of items; track item.id) {
73
- * <div yuvListItem>{{ item.label }}</div>
74
- * }
75
- * </yuv-list>
76
- * ```
77
- *
78
- * **Host Attributes (set declaratively in the template):**
79
- * - `selectOnEnter` — treat the Enter key as a selection trigger (in addition to Space)
80
- * - `horizontal` — switch key navigation to left/right arrows instead of up/down
81
- *
82
- * @example
83
- * ```html
84
- * <!-- Horizontal list, Enter key selects -->
85
- * <yuv-list horizontal selectOnEnter (itemSelect)="onSelect($event)">
86
- * <button yuvListItem>A</button>
87
- * <button yuvListItem>B</button>
88
- * </yuv-list>
89
- * ```
90
- */
91
- declare class ListComponent implements OnDestroy {
92
- #private;
93
- /**
94
- * All `[yuvListItem]` children projected into this list.
95
- *
96
- * Queried reactively via `contentChildren` — every time the projected content
97
- * changes (items added, removed, or reordered), the `#itemsEffect` re-runs,
98
- * rebuilds the key manager, and re-attaches click handlers.
99
- */
100
- items: _angular_core.Signal<readonly ListItemDirective[]>;
101
- /**
102
- * Guard function that temporarily blocks all selection changes.
103
- *
104
- * Provide a factory that returns a predicate; as long as that predicate
105
- * returns `true`, any attempt to change the selection (via click, keyboard,
106
- * or programmatic API) is silently ignored. Useful when the parent has
107
- * unsaved changes tied to the current selection and needs to prevent the user
108
- * from accidentally navigating away.
109
- *
110
- * @example
111
- * ```ts
112
- * // Block selection while a save is in progress
113
- * preventChangeUntil = () => () => this.isSaving();
114
- * ```
115
- *
116
- * @default () => false (never prevents)
117
- */
118
- preventChangeUntil: _angular_core.InputSignal<() => boolean>;
119
- /**
120
- * Enables multi-selection mode.
121
- *
122
- * When `true`, the user can hold **Shift** to range-select items between the last
123
- * selected item and the clicked one, or hold **Ctrl** to toggle individual items
124
- * in and out of the selection. The programmatic `multiSelect()` method is also
125
- * only effective when this input is `true`.
126
- *
127
- * @default false
128
- */
129
- multiselect: _angular_core.InputSignal<boolean>;
130
- /**
131
- * Delegates visual selection and focus state rendering to the parent component.
132
- *
133
- * When `false` (default), `yuv-list` applies `.selected` and `.active` CSS classes
134
- * to items via `ListItemDirective` signals, so the list stylesheet controls the look.
135
- * When `true`, those signals are still updated but the host gets the
136
- * `self-handle-selection` CSS class, which the parent can use to opt into its own
137
- * visual treatment — useful when item templates have custom selected/focused styling.
138
- *
139
- * @default false
140
- */
141
- selfHandleSelection: _angular_core.InputSignal<boolean>;
142
- /**
143
- * Disables the built-in click-to-select behavior, letting the parent component
144
- * decide when `select()` is called.
145
- *
146
- * By default the list attaches an `onClick` handler to every `ListItemDirective`
147
- * that calls `select()` with the correct Shift/Ctrl modifier flags. Set this
148
- * input to `true` to suppress that wiring — the parent must then call `select()`
149
- * imperatively in response to whatever interaction it chooses (e.g. a single-click
150
- * that is distinguished from a double-click by `ClickDoubleDirective`).
151
- *
152
- * @default false
153
- */
154
- selfHandleClick: _angular_core.InputSignal<boolean>;
155
- /**
156
- * Automatically selects an item when the list is first rendered.
157
- *
158
- * The selection logic runs once per content-children change (see `#itemsEffect`)
159
- * and follows this priority order:
160
- * 1. The first non-disabled item that already carries the `selected` attribute.
161
- * 2. If no such item exists and `autoSelect` is `true`, the item at index 0.
162
- *
163
- * Accepts any truthy string value in addition to a real boolean because the
164
- * input is also consumable as a plain HTML attribute (`<yuv-list autoSelect>`).
165
- *
166
- * @default false
167
- */
168
- autoSelect: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
169
- /**
170
- * Emits the current selection as an array of zero-based item indices whenever
171
- * the selection changes — via click, keyboard, or programmatic API calls.
172
- *
173
- * An empty array signals that the selection has been cleared.
174
- *
175
- * @example
176
- * ```ts
177
- * onItemSelect(indices: number[]): void {
178
- * this.selectedItems = indices.map(i => this.items[i]);
179
- * }
180
- * ```
181
- */
182
- itemSelect: _angular_core.OutputEmitterRef<number[]>;
183
- /**
184
- * Emits the zero-based index of the item that received keyboard focus
185
- * (i.e. the active descendant managed by `ActiveDescendantKeyManager`).
186
- *
187
- * Note that focus and selection are independent: navigating with arrow keys
188
- * moves focus without changing the selection until Space (or Enter when
189
- * `selectOnEnter` is set) is pressed.
190
- */
191
- itemFocus: _angular_core.OutputEmitterRef<number>;
192
- /**
193
- * Puts the list into a display-only mode where no item can be selected.
194
- *
195
- * When `true`, all selection paths are blocked: clicks, keyboard shortcuts
196
- * (`Space`, `Enter`, `Escape`), and programmatic calls to `select()`,
197
- * `multiSelect()`, and `clear()` are all no-ops. The list still renders
198
- * normally and keyboard navigation still moves the focus indicator.
199
- *
200
- * @default false
201
- */
202
- disableSelection: _angular_core.InputSignal<boolean>;
203
- /**
204
- * When `true`, pressing **Enter** triggers item selection in addition to **Space**.
205
- *
206
- * Resolved once at construction time from the static `selectOnEnter` host attribute.
207
- * Useful in contexts where Enter has a conventional "confirm" meaning (e.g. search
208
- * result lists, command palettes).
209
- *
210
- * Set declaratively in the template: `<yuv-list selectOnEnter>`.
211
- */
212
- selectOnEnter: boolean;
213
- /**
214
- * When `true`, switches the `ActiveDescendantKeyManager` to horizontal mode so that
215
- * the **Left** / **Right** arrow keys navigate between items instead of **Up** / **Down**.
216
- *
217
- * Resolved once at construction time from the static `horizontal` host attribute.
218
- * The text direction of the document is respected automatically (RTL-aware via CDK
219
- * `Directionality`).
220
- *
221
- * Set declaratively in the template: `<yuv-list horizontal>`.
222
- */
223
- horizontal: boolean;
224
- constructor();
225
- ngOnDestroy(): void;
226
- /**
227
- * Moves keyboard focus to the item at the given index and selects it.
228
- *
229
- * Combines three operations in one call: updating the CDK key manager's active
230
- * descendant (which drives the ARIA active-descendant attribute and the visual focus ring),
231
- * selecting the item, and transferring DOM focus to the list host element so that
232
- * subsequent keyboard events are processed correctly.
233
- *
234
- * Safe to call before the key manager is initialized — the guard at the top of
235
- * the method prevents errors during early lifecycle phases.
236
- *
237
- * @param index Zero-based index of the item to activate.
238
- */
239
- setActiveItem(index: number): void;
240
- /**
241
- * Transfers DOM focus to the list host element.
242
- *
243
- * Calling this ensures that subsequent keyboard events (arrow keys, Space, etc.)
244
- * are routed to the list's `(keydown)` handler. Called internally by
245
- * `setActiveItem()`, but also useful from the parent when programmatic focus
246
- * management is needed (e.g. after closing a dialog that was triggered from a
247
- * list item).
248
- */
249
- focus(): void;
250
- /**
251
- * Smoothly scrolls the list container back to the top.
252
- *
253
- * Useful after programmatically refreshing the list contents when the user may
254
- * have scrolled far down and the new result set should be shown from the beginning.
255
- */
256
- scrollToTop(): void;
257
- /**
258
- * Shifts all selected and focused item indices by the given offset.
259
- *
260
- * Use this when items are prepended or inserted at the beginning of the list so
261
- * that the existing selection and keyboard-focus position stay attached to the
262
- * same logical items after the index space shifts. A positive offset moves
263
- * indices forward (items were inserted before the selection); a negative offset
264
- * moves them backward (items were removed before the selection).
265
- *
266
- * Does **not** emit `itemSelect` — the selection indices change structurally,
267
- * not because the user chose different items.
268
- *
269
- * @param offset Number of positions to shift every selected index by.
270
- */
271
- shiftSelectionBy(offset: number): void;
272
- /**
273
- * Programmatically replaces the entire selection with the given indices.
274
- *
275
- * Only effective when `multiselect` is `true` and `disableSelection` is `false`.
276
- * Out-of-range indices are silently discarded. The resulting selection is sorted
277
- * ascending before being applied and emitted.
278
- *
279
- * Use this when the parent needs to restore a previously saved multi-selection
280
- * state, e.g. after navigation or on component re-initialization.
281
- *
282
- * @param index Array of zero-based item indices to select.
283
- */
284
- multiSelect(index: number[]): void;
285
- /**
286
- * Selects the item at the given index, optionally extending or toggling
287
- * the existing selection using modifier-key semantics.
288
- *
289
- * - **No modifiers** (default): replaces the current selection with the single item.
290
- * - **`shiftKey = true`** (`multiselect` only): range-selects all items between the
291
- * last selected index and `index` (inclusive of neither endpoint, matching typical
292
- * OS list behavior).
293
- * - **`ctrlKey = true`** (`multiselect` only): toggles `index` in the selection
294
- * without affecting the rest.
295
- *
296
- * Index is clamped to `[0, items.length - 1]`. Negative values and calls while
297
- * `disableSelection` is `true` are ignored. The `preventChangeUntil` guard is
298
- * also respected.
299
- *
300
- * Emits `itemSelect` after updating the visual state.
301
- *
302
- * @param index Zero-based index of the item to select.
303
- * @param shiftKey Extend the selection from the last selected item to `index`.
304
- * @param ctrlKey Toggle `index` in or out of the current selection.
305
- */
306
- select(index: number, shiftKey?: boolean, ctrlKey?: boolean): void;
307
- /**
308
- * Clears the current selection and resets the active keyboard-focus index.
309
- *
310
- * If the selection is already empty, the method is a no-op (no event emitted,
311
- * no state update). The `preventChangeUntil` guard is respected — if the guard
312
- * returns `true`, the clear is blocked entirely.
313
- *
314
- * Also triggered internally when the user presses **Escape**.
315
- *
316
- * @param silent When `true`, skips emitting `itemSelect` after clearing. Use this
317
- * when the parent needs to reset state programmatically without
318
- * triggering downstream reactions.
319
- */
320
- clear(silent?: boolean): void;
321
- /**
322
- * Host `keydown` handler — routes keyboard events to selection or navigation logic.
323
- *
324
- * Handled keys:
325
- * - **Escape**: clears the selection.
326
- * - **Space** (always) / **Enter** (when `selectOnEnter` is set): selects the
327
- * currently focused item. `preventDefault()` is called to stop the browser
328
- * from scrolling the container when Space is pressed.
329
- * - **All other keys**: forwarded to `ActiveDescendantKeyManager` so arrow keys,
330
- * Home, End, etc. move the focus indicator without changing the selection.
331
- *
332
- * When `disableSelection` is `true`, only navigation keys are forwarded to the
333
- * key manager — selection keys (Space, Enter, Escape) are suppressed.
334
- *
335
- * Bound via the `host` metadata as `(keydown)`.
336
- *
337
- * @param event The keyboard event originating from the list host element.
338
- */
339
- protected onKeydown(event: KeyboardEvent): void;
340
- /**
341
- * Host `focus` handler — restores a sensible focus position when the list
342
- * host element receives DOM focus without an item already being active.
343
- *
344
- * The logic runs inside a 300 ms timeout so that focus events triggered by
345
- * an item being clicked (which also bubbles a focus event up to the host)
346
- * have already resolved their own active-item state before this handler acts.
347
- * If an active item already exists when the timeout fires, nothing happens.
348
- *
349
- * Focus target priority:
350
- * 1. The first index in the current selection (so the user lands back on the
351
- * previously selected item when tabbing into the list).
352
- * 2. Index 0 as the fallback when there is no selection.
353
- *
354
- * Bound via the `host` metadata as `(focus)`.
355
- */
356
- protected onFocus(): void;
357
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListComponent, never>;
358
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListComponent, "yuv-list", never, { "preventChangeUntil": { "alias": "preventChangeUntil"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "selfHandleSelection": { "alias": "selfHandleSelection"; "required": false; "isSignal": true; }; "selfHandleClick": { "alias": "selfHandleClick"; "required": false; "isSignal": true; }; "autoSelect": { "alias": "autoSelect"; "required": false; "isSignal": true; }; "disableSelection": { "alias": "disableSelection"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; "itemFocus": "itemFocus"; }, ["items"], ["*"], true, never>;
359
- }
360
-
361
- declare class ListTileComponent {
362
- iconSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
363
- titleSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
364
- descriptionSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
365
- asideSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
366
- actionsSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
367
- badgesSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
368
- metaSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
369
- extensionSlot: _angular_core.Signal<TemplateRef<any> | undefined>;
370
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListTileComponent, never>;
371
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListTileComponent, "yuv-list-tile", never, {}, {}, ["iconSlot", "titleSlot", "descriptionSlot", "asideSlot", "actionsSlot", "badgesSlot", "metaSlot", "extensionSlot"], ["*"], true, never>;
372
- }
373
-
374
- declare class YuvListModule {
375
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuvListModule, never>;
376
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<YuvListModule, never, [typeof ListComponent, typeof ListItemDirective, typeof ListTileComponent], [typeof ListComponent, typeof ListItemDirective, typeof ListTileComponent]>;
377
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<YuvListModule>;
378
- }
379
-
380
- export { ListComponent, ListItemDirective, ListTileComponent, YuvListModule };
@@ -1,69 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, TemplateRef } from '@angular/core';
3
-
4
- interface MasterDetailsLayoutOptions {
5
- masterSize?: number;
6
- masterMinSize?: number;
7
- detailsSize?: number;
8
- detailsMinSize?: number;
9
- resizable: boolean;
10
- }
11
-
12
- /**
13
- * Component rendering a master/details view.
14
- *
15
- * @example
16
- * <yuv-master-details [(detailsActive)]="detailsActive">
17
- * <ng-template #yuvMasterPane>Main Pane</ng-template>
18
- * <ng-template #yuvDetailsPane>Details Pane</ng-template>
19
- * </yuv-master-details>
20
- */
21
- declare class YuvMasterDetailsComponent implements AfterViewInit {
22
- #private;
23
- masterPane: _angular_core.Signal<TemplateRef<any>>;
24
- detailsPane: _angular_core.Signal<TemplateRef<any>>;
25
- detailsPaneTplateRef: _angular_core.Signal<TemplateRef<any>>;
26
- private _defaultLayoutOptions;
27
- /**
28
- * Enable/disable details pane (also use as two-way-bound variable: [(detailsActive)])
29
- */
30
- detailsActive: _angular_core.ModelSignal<boolean>;
31
- smallScreenLayout: _angular_core.WritableSignal<boolean>;
32
- /**
33
- * Layout settings is the state of the master details that could be persisted.
34
- * Setting a `layoutSettingsID` will save the current state (details area visibilkity and
35
- * split area sizes etc.) to the local storage. If the component is created, it will load
36
- * those settings and re-apply them.
37
- */
38
- readonly layoutSettingsID: _angular_core.InputSignal<string | undefined>;
39
- private _layoutOptions;
40
- /**
41
- * Layout options to be applied.
42
- */
43
- set layoutOptions(lo: Partial<MasterDetailsLayoutOptions>);
44
- get layoutOptions(): MasterDetailsLayoutOptions;
45
- undockableDetails: _angular_core.InputSignal<boolean>;
46
- /**
47
- * Styles tp be applied to the panels
48
- */
49
- panelStyle: _angular_core.InputSignal<{
50
- [key: string]: string;
51
- } | undefined>;
52
- /**
53
- * Size of the gutter in Pixel.
54
- */
55
- gutterSize: _angular_core.InputSignal<number | undefined>;
56
- onPopIn(): void;
57
- ngAfterViewInit(): void;
58
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuvMasterDetailsComponent, never>;
59
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<YuvMasterDetailsComponent, "yuv-master-details", never, { "detailsActive": { "alias": "detailsActive"; "required": false; "isSignal": true; }; "layoutSettingsID": { "alias": "layoutSettingsID"; "required": false; "isSignal": true; }; "layoutOptions": { "alias": "layoutOptions"; "required": false; }; "undockableDetails": { "alias": "undockableDetails"; "required": false; "isSignal": true; }; "panelStyle": { "alias": "panelStyle"; "required": false; "isSignal": true; }; "gutterSize": { "alias": "gutterSize"; "required": false; "isSignal": true; }; }, { "detailsActive": "detailsActiveChange"; }, ["masterPane", "detailsPane"], never, true, never>;
60
- }
61
-
62
- declare class YuvMasterDetailsModule {
63
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuvMasterDetailsModule, never>;
64
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<YuvMasterDetailsModule, never, [typeof YuvMasterDetailsComponent], [typeof YuvMasterDetailsComponent]>;
65
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<YuvMasterDetailsModule>;
66
- }
67
-
68
- export { YuvMasterDetailsComponent, YuvMasterDetailsModule };
69
- export type { MasterDetailsLayoutOptions };
@@ -1,28 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';
3
-
4
- /**
5
- * This component is designed to switch the rendered content when it is overflowing due to
6
- * resizing. If there is enough available space you can render the 'real' component. If there
7
- * is not enough space to render the whole component anymore (it would overflow) another component
8
- * can take it's place. If you do not specify that replace-component, the component will just
9
- * disappear and make room for other more important components.
10
- */
11
- declare class OverflowHiddenComponent implements AfterViewInit, OnDestroy {
12
- #private;
13
- defaultSlot: i0.Signal<TemplateRef<any>>;
14
- overflowSlot: i0.Signal<TemplateRef<any> | undefined>;
15
- overflow: i0.WritableSignal<boolean>;
16
- ngAfterViewInit(): void;
17
- ngOnDestroy(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<OverflowHiddenComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<OverflowHiddenComponent, "yuv-overflow-hidden", never, {}, {}, ["defaultSlot", "overflowSlot"], never, true, never>;
20
- }
21
-
22
- declare class YuvOverflowHiddenModule {
23
- static ɵfac: i0.ɵɵFactoryDeclaration<YuvOverflowHiddenModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<YuvOverflowHiddenModule, never, [typeof OverflowHiddenComponent], [typeof OverflowHiddenComponent]>;
25
- static ɵinj: i0.ɵɵInjectorDeclaration<YuvOverflowHiddenModule>;
26
- }
27
-
28
- export { OverflowHiddenComponent, YuvOverflowHiddenModule };
@@ -1,52 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { AfterViewInit, OnDestroy } from '@angular/core';
3
-
4
- interface OverflowMenuItem {
5
- id: string;
6
- icon: string;
7
- svgIcon?: string;
8
- label: string;
9
- active?: boolean;
10
- group?: string;
11
- disabled?: boolean;
12
- callback: (item: OverflowMenuItem) => void;
13
- }
14
-
15
- type __MenuItem = OverflowMenuItem & {
16
- overflow: boolean;
17
- };
18
- interface MenuGroup {
19
- id: string;
20
- items: __MenuItem[];
21
- }
22
- /**
23
- * Renders items in a toolbar. If menu items provide a 'group' property they will
24
- * be organized in sections.
25
- */
26
- declare class OverflowMenuComponent implements AfterViewInit, OnDestroy {
27
- #private;
28
- overflowIcon: _angular_core.InputSignal<string>;
29
- groupLabels: _angular_core.InputSignal<Record<string, string> | undefined>;
30
- /**
31
- * Items of the menu
32
- */
33
- menuItems: _angular_core.InputSignal<OverflowMenuItem[]>;
34
- vertical: _angular_core.InputSignal<boolean>;
35
- __menuGroups: _angular_core.Signal<MenuGroup[]>;
36
- private __menuItems;
37
- overflowGroups: _angular_core.WritableSignal<MenuGroup[]>;
38
- activeStyles: {};
39
- ngAfterViewInit(): void;
40
- ngOnDestroy(): void;
41
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverflowMenuComponent, never>;
42
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverflowMenuComponent, "yuv-overflow-menu", never, { "overflowIcon": { "alias": "overflowIcon"; "required": false; "isSignal": true; }; "groupLabels": { "alias": "groupLabels"; "required": false; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
43
- }
44
-
45
- declare class YuvOverflowMenuModule {
46
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuvOverflowMenuModule, never>;
47
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<YuvOverflowMenuModule, never, [typeof OverflowMenuComponent], [typeof OverflowMenuComponent]>;
48
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<YuvOverflowMenuModule>;
49
- }
50
-
51
- export { OverflowMenuComponent, YuvOverflowMenuModule };
52
- export type { OverflowMenuItem };
package/popout/index.d.ts DELETED
@@ -1,106 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
- import { OnDestroy, ElementRef } from '@angular/core';
3
- import * as i3 from '@yuuvis/material/panes';
4
- export { FullscreenDirective } from '@yuuvis/material/panes';
5
-
6
- declare enum PopoutTriggerPosition {
7
- TOP_LEFT = "tl",
8
- TOP_RIGHT = "tr",
9
- BOTTOM_LEFT = "bl",
10
- BOTTOM_RIGHT = "br",
11
- NONE = "none"
12
- }
13
- interface PopoutTriggerConfig {
14
- popoutIcon?: string;
15
- popinIcon?: string;
16
- popoutTooltip?: string;
17
- popinTooltip?: string;
18
- }
19
- interface PopoutWindowConfig {
20
- title?: string;
21
- position?: {
22
- blockStart?: number;
23
- inlineStart?: number;
24
- };
25
- size?: {
26
- width?: number;
27
- height?: number;
28
- };
29
- }
30
-
31
- /**
32
- * Component that enables the wrapped content to be 'popped out' as new window.
33
- * It will place a button (icon) to trigger popout on top of the wrapped content. You
34
- * can place this trigger element setting the 'triggerPosition' input.
35
- *
36
- * Providing a 'popoutWindowConfig' will also enable you to influence the appearance of
37
- * the spawned window.
38
- *
39
- */
40
- declare class PopoutComponent implements OnDestroy {
41
- #private;
42
- beforeunloadHandler(): void;
43
- innerWrapper: _angular_core.Signal<ElementRef<any>>;
44
- popoutWrapper: _angular_core.Signal<ElementRef<any>>;
45
- /**
46
- * Where the popout trigger should be located on the component
47
- */
48
- triggerPosition: _angular_core.InputSignal<PopoutTriggerPosition>;
49
- /**
50
- * Icon to be redered inside the trigger
51
- */
52
- triggerIcon: _angular_core.InputSignal<string>;
53
- /**
54
- * Tooltip text for the trigger button
55
- */
56
- triggerTooltip: _angular_core.InputSignal<string | undefined>;
57
- /**
58
- * configuration of the popped out window
59
- */
60
- popoutWindowConfig: _angular_core.InputSignal<PopoutWindowConfig | undefined>;
61
- /**
62
- * Whether or not to disable the undock feature
63
- */
64
- disabled: _angular_core.InputSignal<boolean | undefined>;
65
- /**
66
- * Emitted when the child component is popped out
67
- */
68
- popOut: _angular_core.OutputEmitterRef<boolean>;
69
- /**
70
- * Emitted when the child component is popped in again
71
- */
72
- popIn: _angular_core.OutputEmitterRef<boolean>;
73
- poppedOut: _angular_core.Signal<boolean>;
74
- get isPoppedOut(): boolean;
75
- pop(e: MouseEvent): void;
76
- private _popIn;
77
- private _popOut;
78
- private _createPopoutWindow;
79
- private _getWindowPositioning;
80
- private _close;
81
- private _cloneStylesToPopoutWindow;
82
- private _observeFutureStyleChanges;
83
- ngOnDestroy(): void;
84
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoutComponent, never>;
85
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoutComponent, "yuv-popout", ["yuvPopout"], { "triggerPosition": { "alias": "triggerPosition"; "required": false; "isSignal": true; }; "triggerIcon": { "alias": "triggerIcon"; "required": false; "isSignal": true; }; "triggerTooltip": { "alias": "triggerTooltip"; "required": false; "isSignal": true; }; "popoutWindowConfig": { "alias": "popoutWindowConfig"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "popOut": "popOut"; "popIn": "popIn"; }, never, ["*"], true, never>;
86
- }
87
-
88
- declare class PopoutTriggerComponent {
89
- private translate;
90
- config: _angular_core.InputSignal<PopoutTriggerConfig | undefined>;
91
- popout: _angular_core.InputSignal<PopoutComponent | undefined>;
92
- icon: _angular_core.Signal<string>;
93
- tooltip: _angular_core.Signal<any>;
94
- trigger(e: MouseEvent): void;
95
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoutTriggerComponent, never>;
96
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PopoutTriggerComponent, "yuv-popout-trigger", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "popout": { "alias": "popout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
97
- }
98
-
99
- declare class YuvPopoutModule {
100
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<YuvPopoutModule, never>;
101
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<YuvPopoutModule, never, [typeof PopoutComponent, typeof PopoutTriggerComponent, typeof i3.FullscreenDirective], [typeof PopoutComponent, typeof PopoutTriggerComponent, typeof i3.FullscreenDirective]>;
102
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<YuvPopoutModule>;
103
- }
104
-
105
- export { PopoutComponent, PopoutTriggerComponent, PopoutTriggerPosition, YuvPopoutModule };
106
- export type { PopoutTriggerConfig, PopoutWindowConfig };