@neural-ui/core 1.3.2 → 1.5.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/README.md +14 -7
- package/calendar/package.json +4 -0
- package/fesm2022/neural-ui-core-accordion.mjs +8 -6
- package/fesm2022/neural-ui-core-accordion.mjs.map +1 -1
- package/fesm2022/neural-ui-core-autocomplete.mjs +121 -29
- package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
- package/fesm2022/neural-ui-core-badge.mjs +2 -2
- package/fesm2022/neural-ui-core-badge.mjs.map +1 -1
- package/fesm2022/neural-ui-core-block-ui.mjs +2 -2
- package/fesm2022/neural-ui-core-button.mjs +2 -2
- package/fesm2022/neural-ui-core-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-calendar.mjs +551 -0
- package/fesm2022/neural-ui-core-calendar.mjs.map +1 -0
- package/fesm2022/neural-ui-core-chip.mjs +2 -2
- package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
- package/fesm2022/neural-ui-core-color-picker.mjs +3 -9
- package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -1
- package/fesm2022/neural-ui-core-confirm-dialog.mjs +2 -2
- package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
- package/fesm2022/neural-ui-core-dashboard-grid.mjs +2 -2
- package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
- package/fesm2022/neural-ui-core-date-input.mjs +2 -2
- package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
- package/fesm2022/neural-ui-core-filter-bar.mjs +2 -2
- package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-image-gallery.mjs +224 -0
- package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -0
- package/fesm2022/neural-ui-core-input.mjs +2 -2
- package/fesm2022/neural-ui-core-kanban.mjs +270 -0
- package/fesm2022/neural-ui-core-kanban.mjs.map +1 -0
- package/fesm2022/neural-ui-core-meter-group.mjs +2 -2
- package/fesm2022/neural-ui-core-modal.mjs +81 -31
- package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
- package/fesm2022/neural-ui-core-multiselect.mjs +269 -99
- package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
- package/fesm2022/neural-ui-core-nav.mjs +4 -6
- package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
- package/fesm2022/neural-ui-core-number-input.mjs +2 -2
- package/fesm2022/neural-ui-core-pagination.mjs +2 -2
- package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
- package/fesm2022/neural-ui-core-progress-bar.mjs +2 -2
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs +289 -0
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -0
- package/fesm2022/neural-ui-core-select.mjs +276 -101
- package/fesm2022/neural-ui-core-select.mjs.map +1 -1
- package/fesm2022/neural-ui-core-sidebar.mjs +3 -2
- package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-slider.mjs +2 -2
- package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
- package/fesm2022/neural-ui-core-split-button.mjs +2 -2
- package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-stepper.mjs +2 -2
- package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
- package/fesm2022/neural-ui-core-table.mjs +435 -34
- package/fesm2022/neural-ui-core-table.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tabs.mjs +11 -4
- package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
- package/fesm2022/neural-ui-core-textarea.mjs +2 -2
- package/fesm2022/neural-ui-core-timeline-grid.mjs +215 -0
- package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -0
- package/fesm2022/neural-ui-core-toggle-button-group.mjs +2 -2
- package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
- package/fesm2022/neural-ui-core-toolbar.mjs +2 -2
- package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tree-table.mjs +262 -0
- package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -0
- package/fesm2022/neural-ui-core-tree.mjs +413 -0
- package/fesm2022/neural-ui-core-tree.mjs.map +1 -0
- package/fesm2022/neural-ui-core-uploader.mjs +624 -0
- package/fesm2022/neural-ui-core-uploader.mjs.map +1 -0
- package/fesm2022/neural-ui-core-url-state.mjs +90 -10
- package/fesm2022/neural-ui-core-url-state.mjs.map +1 -1
- package/fesm2022/neural-ui-core-virtual-list.mjs +53 -23
- package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
- package/fesm2022/neural-ui-core.mjs +3 -1
- package/fesm2022/neural-ui-core.mjs.map +1 -1
- package/image-gallery/package.json +4 -0
- package/kanban/package.json +4 -0
- package/package.json +34 -2
- package/scheduler-gantt/package.json +4 -0
- package/styles/_tokens.scss +13 -4
- package/timeline-grid/package.json +4 -0
- package/tree/package.json +4 -0
- package/tree-table/package.json +4 -0
- package/types/neural-ui-core-autocomplete.d.ts +10 -1
- package/types/neural-ui-core-calendar.d.ts +79 -0
- package/types/neural-ui-core-color-picker.d.ts +0 -1
- package/types/neural-ui-core-image-gallery.d.ts +26 -0
- package/types/neural-ui-core-kanban.d.ts +52 -0
- package/types/neural-ui-core-modal.d.ts +22 -16
- package/types/neural-ui-core-multiselect.d.ts +13 -1
- package/types/neural-ui-core-scheduler-gantt.d.ts +68 -0
- package/types/neural-ui-core-select.d.ts +14 -1
- package/types/neural-ui-core-sidebar.d.ts +1 -0
- package/types/neural-ui-core-table.d.ts +66 -4
- package/types/neural-ui-core-tabs.d.ts +1 -0
- package/types/neural-ui-core-timeline-grid.d.ts +55 -0
- package/types/neural-ui-core-tree-table.d.ts +72 -0
- package/types/neural-ui-core-tree.d.ts +52 -0
- package/types/neural-ui-core-uploader.d.ts +98 -0
- package/types/neural-ui-core-url-state.d.ts +9 -0
- package/types/neural-ui-core-virtual-list.d.ts +17 -1
- package/uploader/package.json +4 -0
package/styles/_tokens.scss
CHANGED
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
--neu-primary-50: #eff6ff;
|
|
14
14
|
--neu-primary-100: #dbeafe;
|
|
15
15
|
--neu-primary-fg: #ffffff;
|
|
16
|
+
--neu-primary-solid: #006ee6;
|
|
17
|
+
--neu-primary-solid-hover: #005fcc;
|
|
18
|
+
--neu-primary-solid-fg: #ffffff;
|
|
16
19
|
|
|
17
20
|
--neu-secondary: #10b981;
|
|
18
21
|
--neu-secondary-dark: #059669;
|
|
@@ -39,8 +42,8 @@
|
|
|
39
42
|
// Tipografía (Slate scale)
|
|
40
43
|
// ------------------------------------------------
|
|
41
44
|
--neu-text: #0f172a; // Slate-900
|
|
42
|
-
--neu-text-muted: #
|
|
43
|
-
--neu-text-disabled: #
|
|
45
|
+
--neu-text-muted: #475569; // Slate-600
|
|
46
|
+
--neu-text-disabled: #64748b; // Slate-500
|
|
44
47
|
--neu-text-inverse: #ffffff;
|
|
45
48
|
--neu-knob-display-color: var(--neu-text);
|
|
46
49
|
--neu-knob-label-color: var(--neu-text-muted);
|
|
@@ -60,7 +63,7 @@
|
|
|
60
63
|
// ------------------------------------------------
|
|
61
64
|
// Estados semánticos
|
|
62
65
|
// ------------------------------------------------
|
|
63
|
-
--neu-success: #
|
|
66
|
+
--neu-success: #15803d;
|
|
64
67
|
--neu-success-bg: #d1fae5;
|
|
65
68
|
--neu-success-text: #065f46;
|
|
66
69
|
|
|
@@ -68,7 +71,7 @@
|
|
|
68
71
|
--neu-warning-bg: #fef3c7;
|
|
69
72
|
--neu-warning-text: #92400e;
|
|
70
73
|
|
|
71
|
-
--neu-error: #
|
|
74
|
+
--neu-error: #dc2626;
|
|
72
75
|
--neu-error-bg: #fee2e2;
|
|
73
76
|
--neu-error-text: #991b1b;
|
|
74
77
|
|
|
@@ -321,8 +324,13 @@
|
|
|
321
324
|
// ============================================================
|
|
322
325
|
[data-theme='dark'] {
|
|
323
326
|
// ---- Brand (mismo azul / same blue, fondos adaptados / adapted backgrounds) ----
|
|
327
|
+
--neu-primary: #007aff;
|
|
328
|
+
--neu-primary-dark: #005fcc;
|
|
329
|
+
--neu-primary-light: #339dff;
|
|
324
330
|
--neu-primary-50: rgba(0, 122, 255, 0.12);
|
|
325
331
|
--neu-primary-100: rgba(0, 122, 255, 0.2);
|
|
332
|
+
--neu-primary-solid: #007aff;
|
|
333
|
+
--neu-primary-solid-hover: #005fcc;
|
|
326
334
|
|
|
327
335
|
// ---- Fondos / Backgrounds ----
|
|
328
336
|
--neu-bg: #0d1117; // GitHub-dark inspired — fondo base
|
|
@@ -351,6 +359,7 @@
|
|
|
351
359
|
--neu-error-bg: rgba(239, 68, 68, 0.15);
|
|
352
360
|
--neu-error-text: #fca5a5;
|
|
353
361
|
|
|
362
|
+
--neu-info: #007aff;
|
|
354
363
|
--neu-info-bg: rgba(0, 122, 255, 0.15);
|
|
355
364
|
--neu-info-text: #93c5fd;
|
|
356
365
|
|
|
@@ -35,6 +35,10 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
|
|
|
35
35
|
readonly floatingLabel: _angular_core.InputSignal<boolean>;
|
|
36
36
|
/** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
|
|
37
37
|
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
38
|
+
/** Habilita scroll virtual para listas largas / Enables virtual scrolling for large result lists */
|
|
39
|
+
readonly virtualScroll: _angular_core.InputSignal<boolean>;
|
|
40
|
+
/** Número de resultados visibles en el viewport virtual / Number of visible results in the virtual viewport */
|
|
41
|
+
readonly virtualScrollVisibleItems: _angular_core.InputSignal<number>;
|
|
38
42
|
/** Emitido al seleccionar una opción / Emitted when an option is selected */
|
|
39
43
|
readonly optionSelected: _angular_core.OutputEmitterRef<NeuAutocompleteOption>;
|
|
40
44
|
/** Emitido al cambiar el texto del input / Emitted on query change */
|
|
@@ -46,6 +50,7 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
|
|
|
46
50
|
readonly _activeIndex: _angular_core.WritableSignal<number>;
|
|
47
51
|
readonly _cvaDisabled: _angular_core.WritableSignal<boolean>;
|
|
48
52
|
readonly _focused: _angular_core.WritableSignal<boolean>;
|
|
53
|
+
private readonly _viewport;
|
|
49
54
|
private _onChange;
|
|
50
55
|
private _onTouched;
|
|
51
56
|
readonly _filtered: _angular_core.Signal<NeuAutocompleteOption[]>;
|
|
@@ -53,6 +58,9 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
|
|
|
53
58
|
readonly hasError: _angular_core.Signal<boolean>;
|
|
54
59
|
readonly describedBy: _angular_core.Signal<string | null>;
|
|
55
60
|
readonly resultsAnnouncement: _angular_core.Signal<string>;
|
|
61
|
+
readonly virtualScrollItemSize: _angular_core.Signal<36 | 52 | 40>;
|
|
62
|
+
readonly virtualViewportHeight: _angular_core.Signal<string>;
|
|
63
|
+
readonly trackByOption: (index: number, option: NeuAutocompleteOption) => {};
|
|
56
64
|
_optionId(i: number): string;
|
|
57
65
|
private readonly _el;
|
|
58
66
|
onDocClick(e: MouseEvent): void;
|
|
@@ -63,12 +71,13 @@ declare class NeuAutocompleteComponent implements ControlValueAccessor {
|
|
|
63
71
|
private _moveActiveIndex;
|
|
64
72
|
selectOption(opt: NeuAutocompleteOption): void;
|
|
65
73
|
clear(): void;
|
|
74
|
+
private _scrollActiveOptionIntoView;
|
|
66
75
|
writeValue(val: unknown): void;
|
|
67
76
|
registerOnChange(fn: (v: unknown) => void): void;
|
|
68
77
|
registerOnTouched(fn: () => void): void;
|
|
69
78
|
setDisabledState(d: boolean): void;
|
|
70
79
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuAutocompleteComponent, never>;
|
|
71
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAutocompleteComponent, "neu-autocomplete", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "optionSelected": "optionSelected"; "queryChange": "queryChange"; }, never, never, true, never>;
|
|
80
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuAutocompleteComponent, "neu-autocomplete", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; }, { "optionSelected": "optionSelected"; "queryChange": "queryChange"; }, never, never, true, never>;
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
export { NeuAutocompleteComponent };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type NeuCalendarView = 'month' | 'week';
|
|
4
|
+
type NeuCalendarEventVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
5
|
+
interface NeuCalendarEvent {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
start: string | Date;
|
|
9
|
+
end?: string | Date;
|
|
10
|
+
description?: string;
|
|
11
|
+
meta?: string;
|
|
12
|
+
allDay?: boolean;
|
|
13
|
+
variant?: NeuCalendarEventVariant;
|
|
14
|
+
}
|
|
15
|
+
interface NeuCalendarLabels {
|
|
16
|
+
previousButtonAriaLabel: string;
|
|
17
|
+
nextButtonAriaLabel: string;
|
|
18
|
+
todayButton: string;
|
|
19
|
+
allDay: string;
|
|
20
|
+
noEvents: string;
|
|
21
|
+
eventCount: (count: number) => string;
|
|
22
|
+
moreEvents: (count: number) => string;
|
|
23
|
+
}
|
|
24
|
+
type NeuCalendarLabelOverrides = Partial<NeuCalendarLabels>;
|
|
25
|
+
interface NormalizedCalendarEvent extends Omit<NeuCalendarEvent, 'start' | 'end'> {
|
|
26
|
+
start: Date;
|
|
27
|
+
end?: Date;
|
|
28
|
+
}
|
|
29
|
+
interface CalendarDayCell {
|
|
30
|
+
date: Date;
|
|
31
|
+
inCurrentMonth: boolean;
|
|
32
|
+
isToday: boolean;
|
|
33
|
+
isSelected: boolean;
|
|
34
|
+
events: NormalizedCalendarEvent[];
|
|
35
|
+
}
|
|
36
|
+
declare class NeuCalendarComponent {
|
|
37
|
+
readonly events: _angular_core.InputSignal<NeuCalendarEvent[]>;
|
|
38
|
+
readonly view: _angular_core.InputSignal<NeuCalendarView>;
|
|
39
|
+
readonly selectedDate: _angular_core.InputSignal<string | Date>;
|
|
40
|
+
readonly locale: _angular_core.InputSignal<string>;
|
|
41
|
+
readonly maxVisibleEvents: _angular_core.InputSignal<number>;
|
|
42
|
+
readonly showHeader: _angular_core.InputSignal<boolean>;
|
|
43
|
+
readonly labels: _angular_core.InputSignal<Partial<NeuCalendarLabels>>;
|
|
44
|
+
readonly selectedDateChange: _angular_core.OutputEmitterRef<Date>;
|
|
45
|
+
readonly dateSelect: _angular_core.OutputEmitterRef<Date>;
|
|
46
|
+
readonly eventClick: _angular_core.OutputEmitterRef<NeuCalendarEvent>;
|
|
47
|
+
private readonly _selectedDate;
|
|
48
|
+
readonly resolvedLabels: _angular_core.Signal<NeuCalendarLabels>;
|
|
49
|
+
readonly normalizedEvents: _angular_core.Signal<NormalizedCalendarEvent[]>;
|
|
50
|
+
readonly weekdays: _angular_core.Signal<string[]>;
|
|
51
|
+
readonly monthDays: _angular_core.Signal<CalendarDayCell[]>;
|
|
52
|
+
readonly weekDays: _angular_core.Signal<CalendarDayCell[]>;
|
|
53
|
+
readonly selectedDay: _angular_core.Signal<CalendarDayCell>;
|
|
54
|
+
readonly selectedDayEvents: _angular_core.Signal<NormalizedCalendarEvent[]>;
|
|
55
|
+
readonly selectedAgendaLabel: _angular_core.Signal<string>;
|
|
56
|
+
readonly currentLabel: _angular_core.Signal<string>;
|
|
57
|
+
constructor();
|
|
58
|
+
prev(): void;
|
|
59
|
+
next(): void;
|
|
60
|
+
today(): void;
|
|
61
|
+
selectDate(date: Date): void;
|
|
62
|
+
visibleEvents(events: NormalizedCalendarEvent[]): NormalizedCalendarEvent[];
|
|
63
|
+
monthVisibleEvents(events: NormalizedCalendarEvent[]): NormalizedCalendarEvent[];
|
|
64
|
+
formatEventMeta(event: NormalizedCalendarEvent): string;
|
|
65
|
+
eventTooltip(event: NormalizedCalendarEvent): string;
|
|
66
|
+
formatWeekDate(date: Date): string;
|
|
67
|
+
formatDayAriaLabel(day: CalendarDayCell): string;
|
|
68
|
+
onDaySpace(event: Event, date: Date): void;
|
|
69
|
+
onDayKeydown(event: KeyboardEvent, date: Date): void;
|
|
70
|
+
onEventClick(event: MouseEvent, calendarEvent: NormalizedCalendarEvent): void;
|
|
71
|
+
private buildDayCell;
|
|
72
|
+
private monthVisibleEventLimit;
|
|
73
|
+
private coerceDate;
|
|
74
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuCalendarComponent, never>;
|
|
75
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuCalendarComponent, "neu-calendar", never, { "events": { "alias": "events"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "selectedDate": { "alias": "selectedDate"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "maxVisibleEvents": { "alias": "maxVisibleEvents"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, { "selectedDateChange": "selectedDateChange"; "dateSelect": "dateSelect"; "eventClick": "eventClick"; }, never, never, true, never>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { NeuCalendarComponent };
|
|
79
|
+
export type { NeuCalendarEvent, NeuCalendarEventVariant, NeuCalendarLabelOverrides, NeuCalendarLabels, NeuCalendarView };
|
|
@@ -29,7 +29,6 @@ declare class NeuColorPickerComponent implements ControlValueAccessor {
|
|
|
29
29
|
private _onChange;
|
|
30
30
|
private _onTouched;
|
|
31
31
|
private readonly _el;
|
|
32
|
-
constructor();
|
|
33
32
|
_outsideClick(e: MouseEvent): void;
|
|
34
33
|
readonly _hexValue: _angular_core.Signal<string>;
|
|
35
34
|
readonly _textValue: _angular_core.Signal<string>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NeuImageViewerItem } from '@neural-ui/core/image-viewer';
|
|
3
|
+
export { NeuImageViewerItem } from '@neural-ui/core/image-viewer';
|
|
4
|
+
|
|
5
|
+
declare class NeuImageGalleryComponent {
|
|
6
|
+
readonly items: _angular_core.InputSignal<NeuImageViewerItem[]>;
|
|
7
|
+
readonly initialIndex: _angular_core.InputSignal<number>;
|
|
8
|
+
readonly showThumbnails: _angular_core.InputSignal<boolean>;
|
|
9
|
+
readonly thumbnailPosition: _angular_core.InputSignal<"bottom" | "left">;
|
|
10
|
+
readonly objectFit: _angular_core.InputSignal<"cover" | "contain">;
|
|
11
|
+
readonly showCounter: _angular_core.InputSignal<boolean>;
|
|
12
|
+
readonly viewerEnabled: _angular_core.InputSignal<boolean>;
|
|
13
|
+
readonly activeIndexChange: _angular_core.OutputEmitterRef<number>;
|
|
14
|
+
private readonly _activeIndex;
|
|
15
|
+
constructor();
|
|
16
|
+
readonly activeIndex: _angular_core.Signal<number>;
|
|
17
|
+
readonly currentItem: _angular_core.Signal<NeuImageViewerItem>;
|
|
18
|
+
setActiveIndex(index: number): void;
|
|
19
|
+
goPrev(): void;
|
|
20
|
+
goNext(): void;
|
|
21
|
+
private _clampIndex;
|
|
22
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuImageGalleryComponent, never>;
|
|
23
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuImageGalleryComponent, "neu-image-gallery", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "initialIndex": { "alias": "initialIndex"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "thumbnailPosition": { "alias": "thumbnailPosition"; "required": false; "isSignal": true; }; "objectFit": { "alias": "objectFit"; "required": false; "isSignal": true; }; "showCounter": { "alias": "showCounter"; "required": false; "isSignal": true; }; "viewerEnabled": { "alias": "viewerEnabled"; "required": false; "isSignal": true; }; }, { "activeIndexChange": "activeIndexChange"; }, never, never, true, never>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { NeuImageGalleryComponent };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
3
|
+
|
|
4
|
+
interface NeuKanbanAssignee {
|
|
5
|
+
name: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
initials?: string;
|
|
8
|
+
}
|
|
9
|
+
interface NeuKanbanCard {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
tags?: string[];
|
|
14
|
+
assignee?: NeuKanbanAssignee;
|
|
15
|
+
dueDate?: string;
|
|
16
|
+
meta?: string;
|
|
17
|
+
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
18
|
+
}
|
|
19
|
+
interface NeuKanbanColumn {
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
cards: NeuKanbanCard[];
|
|
23
|
+
color?: string;
|
|
24
|
+
wipLimit?: number;
|
|
25
|
+
}
|
|
26
|
+
interface NeuKanbanCardDropEvent {
|
|
27
|
+
card: NeuKanbanCard;
|
|
28
|
+
fromColumnId: string;
|
|
29
|
+
toColumnId: string;
|
|
30
|
+
previousIndex: number;
|
|
31
|
+
currentIndex: number;
|
|
32
|
+
columns: NeuKanbanColumn[];
|
|
33
|
+
}
|
|
34
|
+
declare class NeuKanbanComponent {
|
|
35
|
+
readonly columns: _angular_core.InputSignal<NeuKanbanColumn[]>;
|
|
36
|
+
readonly columnWidth: _angular_core.InputSignal<string>;
|
|
37
|
+
readonly showCounts: _angular_core.InputSignal<boolean>;
|
|
38
|
+
readonly showWipLimit: _angular_core.InputSignal<boolean>;
|
|
39
|
+
readonly columnsChange: _angular_core.OutputEmitterRef<NeuKanbanColumn[]>;
|
|
40
|
+
readonly cardDrop: _angular_core.OutputEmitterRef<NeuKanbanCardDropEvent>;
|
|
41
|
+
readonly _columns: _angular_core.WritableSignal<NeuKanbanColumn[]>;
|
|
42
|
+
readonly connectedDropLists: _angular_core.Signal<string[]>;
|
|
43
|
+
constructor();
|
|
44
|
+
assigneeInitials(assignee: NeuKanbanAssignee): string;
|
|
45
|
+
onCardDrop(event: CdkDragDrop<NeuKanbanCard[]>, targetColumnId: string): void;
|
|
46
|
+
private _cloneColumns;
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuKanbanComponent, never>;
|
|
48
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuKanbanComponent, "neu-kanban", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; "showCounts": { "alias": "showCounts"; "required": false; "isSignal": true; }; "showWipLimit": { "alias": "showWipLimit"; "required": false; "isSignal": true; }; }, { "columnsChange": "columnsChange"; "cardDrop": "cardDrop"; }, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { NeuKanbanComponent };
|
|
52
|
+
export type { NeuKanbanAssignee, NeuKanbanCard, NeuKanbanCardDropEvent, NeuKanbanColumn };
|
|
@@ -3,22 +3,6 @@ import { Type } from '@angular/core';
|
|
|
3
3
|
import { DialogRef } from '@angular/cdk/dialog';
|
|
4
4
|
|
|
5
5
|
type NeuDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
6
|
-
/** Datos que se inyectan en el componente del diálogo / Data injected into the dialog component */
|
|
7
|
-
interface NeuDialogData<T = unknown> {
|
|
8
|
-
title?: string;
|
|
9
|
-
data?: T;
|
|
10
|
-
}
|
|
11
|
-
declare class NeuDialogService {
|
|
12
|
-
private readonly dialog;
|
|
13
|
-
open<T = unknown, R = unknown>(component: Type<unknown>, config?: {
|
|
14
|
-
title?: string;
|
|
15
|
-
data?: T;
|
|
16
|
-
size?: NeuDialogSize;
|
|
17
|
-
disableClose?: boolean;
|
|
18
|
-
}): DialogRef<R>;
|
|
19
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogService, never>;
|
|
20
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuDialogService>;
|
|
21
|
-
}
|
|
22
6
|
/**
|
|
23
7
|
* NeuDialogComponent — Diálogo accesible con header, body y footer. / Accessible dialog with header, body and footer.
|
|
24
8
|
* Úsalo directamente como componente declarativo pasando `open` como signal. / Use it directly as a declarative component passing `open` as a signal.
|
|
@@ -44,11 +28,33 @@ declare class NeuDialogComponent {
|
|
|
44
28
|
disableClose: _angular_core.InputSignal<boolean>;
|
|
45
29
|
/** Emite cuando el usuario cierra el diálogo. / Emits when the user closes the dialog. */
|
|
46
30
|
closed: _angular_core.OutputEmitterRef<void>;
|
|
31
|
+
private readonly panelRef;
|
|
47
32
|
/** @internal — ID único para aria-labelledby / Unique ID for aria-labelledby */
|
|
48
33
|
readonly _uid: string;
|
|
34
|
+
constructor();
|
|
35
|
+
onPanelKeydown(event: KeyboardEvent): void;
|
|
36
|
+
private focusInitialElement;
|
|
37
|
+
private getFocusableElements;
|
|
49
38
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogComponent, never>;
|
|
50
39
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuDialogComponent, "neu-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[neu-dialog-footer]"], true, never>;
|
|
51
40
|
}
|
|
52
41
|
|
|
42
|
+
/** Datos que se inyectan en el componente del diálogo / Data injected into the dialog component */
|
|
43
|
+
interface NeuDialogData<T = unknown> {
|
|
44
|
+
title?: string;
|
|
45
|
+
data?: T;
|
|
46
|
+
}
|
|
47
|
+
declare class NeuDialogService {
|
|
48
|
+
private readonly dialog;
|
|
49
|
+
open<T = unknown, R = unknown>(component: Type<unknown>, config?: {
|
|
50
|
+
title?: string;
|
|
51
|
+
data?: T;
|
|
52
|
+
size?: NeuDialogSize;
|
|
53
|
+
disableClose?: boolean;
|
|
54
|
+
}): DialogRef<R>;
|
|
55
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuDialogService, never>;
|
|
56
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NeuDialogService>;
|
|
57
|
+
}
|
|
58
|
+
|
|
53
59
|
export { NeuDialogComponent, NeuDialogService };
|
|
54
60
|
export type { NeuDialogData, NeuDialogSize };
|
|
@@ -40,7 +40,9 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
|
|
|
40
40
|
private readonly _urlState;
|
|
41
41
|
private readonly _mobileViewportMax;
|
|
42
42
|
private readonly _viewportMargin;
|
|
43
|
+
private readonly _panelMaxHeight;
|
|
43
44
|
private readonly _urlParamSignals;
|
|
45
|
+
private readonly _viewport;
|
|
44
46
|
private _getUrlParamSignal;
|
|
45
47
|
constructor();
|
|
46
48
|
/** @internal */
|
|
@@ -74,6 +76,10 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
|
|
|
74
76
|
clearAllLabel: _angular_core.InputSignal<string>;
|
|
75
77
|
/** Muestra un botón × en el trigger para limpiar la selección de una vez / Shows a × button in the trigger to clear the selection at once */
|
|
76
78
|
clearable: _angular_core.InputSignal<boolean>;
|
|
79
|
+
/** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
|
|
80
|
+
virtualScroll: _angular_core.InputSignal<boolean>;
|
|
81
|
+
/** Número de opciones visibles en el viewport virtual / Number of visible options in the virtual viewport */
|
|
82
|
+
virtualScrollVisibleItems: _angular_core.InputSignal<number>;
|
|
77
83
|
/** Aria-label del botón clear que aparece en el trigger / Aria-label for the clear button shown in the trigger */
|
|
78
84
|
clearAriaLabel: _angular_core.InputSignal<string>;
|
|
79
85
|
/**
|
|
@@ -104,6 +110,9 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
|
|
|
104
110
|
readonly describedBy: Signal<string | null>;
|
|
105
111
|
readonly filteredOptions: Signal<NeuSelectOption[]>;
|
|
106
112
|
readonly resultsAnnouncement: Signal<string>;
|
|
113
|
+
readonly virtualScrollItemSize: Signal<36 | 52 | 44>;
|
|
114
|
+
readonly virtualViewportHeight: Signal<string>;
|
|
115
|
+
readonly trackByOptionValue: (_index: number, option: NeuSelectOption) => string;
|
|
107
116
|
private _onChange;
|
|
108
117
|
private _onTouched;
|
|
109
118
|
writeValue(value: string[] | null): void;
|
|
@@ -130,9 +139,12 @@ declare class NeuMultiselectComponent implements ControlValueAccessor {
|
|
|
130
139
|
onWindowResize(): void;
|
|
131
140
|
onWindowScroll(): void;
|
|
132
141
|
private syncPanelPosition;
|
|
142
|
+
private focusFirstOption;
|
|
143
|
+
private focusOption;
|
|
133
144
|
private resetPanelPosition;
|
|
145
|
+
private refreshVirtualViewport;
|
|
134
146
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuMultiselectComponent, never>;
|
|
135
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMultiselectComponent, "neu-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
|
|
147
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuMultiselectComponent, "neu-multiselect", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAllLabel": { "alias": "clearAllLabel"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl"], never, true, never>;
|
|
136
148
|
}
|
|
137
149
|
|
|
138
150
|
export { NeuMultiselectComponent, NeuMultiselectItemDirective };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NeuTimelineGridItemVariant, NeuTimelineGridColumn, NeuTimelineGridRow, NeuTimelineGridSlotSelection, NeuTimelineGridItem } from '@neural-ui/core/timeline-grid';
|
|
3
|
+
|
|
4
|
+
type NeuSchedulerGanttScale = 'day' | 'week';
|
|
5
|
+
interface NeuSchedulerGanttTask {
|
|
6
|
+
id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
start: string | Date;
|
|
9
|
+
end?: string | Date;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
meta?: string;
|
|
12
|
+
variant?: NeuTimelineGridItemVariant;
|
|
13
|
+
progress?: number;
|
|
14
|
+
}
|
|
15
|
+
interface NeuSchedulerGanttRow {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
tasks: NeuSchedulerGanttTask[];
|
|
20
|
+
}
|
|
21
|
+
interface NeuSchedulerGanttTaskClick {
|
|
22
|
+
rowId: string;
|
|
23
|
+
rowLabel: string;
|
|
24
|
+
task: NeuSchedulerGanttTask;
|
|
25
|
+
}
|
|
26
|
+
interface NeuSchedulerGanttSlotClick {
|
|
27
|
+
rowId: string;
|
|
28
|
+
columnId: string;
|
|
29
|
+
date: string;
|
|
30
|
+
scale: NeuSchedulerGanttScale;
|
|
31
|
+
}
|
|
32
|
+
interface NeuSchedulerGanttSelectedSlot {
|
|
33
|
+
rowId: string;
|
|
34
|
+
date: string | Date;
|
|
35
|
+
}
|
|
36
|
+
declare class NeuSchedulerGanttComponent {
|
|
37
|
+
readonly rows: _angular_core.InputSignal<NeuSchedulerGanttRow[]>;
|
|
38
|
+
readonly startDate: _angular_core.InputSignal<string | Date | null>;
|
|
39
|
+
readonly endDate: _angular_core.InputSignal<string | Date | null>;
|
|
40
|
+
readonly locale: _angular_core.InputSignal<string | undefined>;
|
|
41
|
+
readonly scale: _angular_core.InputSignal<NeuSchedulerGanttScale>;
|
|
42
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
43
|
+
readonly compact: _angular_core.InputSignal<boolean>;
|
|
44
|
+
readonly stickyLabels: _angular_core.InputSignal<boolean>;
|
|
45
|
+
readonly minColumnWidth: _angular_core.InputSignal<string>;
|
|
46
|
+
readonly showSummary: _angular_core.InputSignal<boolean>;
|
|
47
|
+
readonly selectedTaskId: _angular_core.InputSignal<string | null>;
|
|
48
|
+
readonly selectedSlot: _angular_core.InputSignal<NeuSchedulerGanttSelectedSlot | null>;
|
|
49
|
+
readonly taskClick: _angular_core.OutputEmitterRef<NeuSchedulerGanttTaskClick>;
|
|
50
|
+
readonly slotClick: _angular_core.OutputEmitterRef<NeuSchedulerGanttSlotClick>;
|
|
51
|
+
readonly _bounds: _angular_core.Signal<{
|
|
52
|
+
start: Date;
|
|
53
|
+
end: Date;
|
|
54
|
+
}>;
|
|
55
|
+
readonly gridColumns: _angular_core.Signal<NeuTimelineGridColumn[]>;
|
|
56
|
+
readonly gridRows: _angular_core.Signal<NeuTimelineGridRow[]>;
|
|
57
|
+
readonly taskCount: _angular_core.Signal<number>;
|
|
58
|
+
readonly rangeLabel: _angular_core.Signal<string>;
|
|
59
|
+
readonly gridSelectedSlot: _angular_core.Signal<NeuTimelineGridSlotSelection | null>;
|
|
60
|
+
private readonly _taskIndex;
|
|
61
|
+
onTaskClick(item: NeuTimelineGridItem): void;
|
|
62
|
+
onSlotClick(selection: NeuTimelineGridSlotSelection): void;
|
|
63
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSchedulerGanttComponent, never>;
|
|
64
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSchedulerGanttComponent, "neu-scheduler-gantt", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "startDate": { "alias": "startDate"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "stickyLabels": { "alias": "stickyLabels"; "required": false; "isSignal": true; }; "minColumnWidth": { "alias": "minColumnWidth"; "required": false; "isSignal": true; }; "showSummary": { "alias": "showSummary"; "required": false; "isSignal": true; }; "selectedTaskId": { "alias": "selectedTaskId"; "required": false; "isSignal": true; }; "selectedSlot": { "alias": "selectedSlot"; "required": false; "isSignal": true; }; }, { "taskClick": "taskClick"; "slotClick": "slotClick"; }, never, never, true, never>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { NeuSchedulerGanttComponent };
|
|
68
|
+
export type { NeuSchedulerGanttRow, NeuSchedulerGanttScale, NeuSchedulerGanttSelectedSlot, NeuSchedulerGanttSlotClick, NeuSchedulerGanttTask, NeuSchedulerGanttTaskClick };
|
|
@@ -75,7 +75,9 @@ declare class NeuSelectComponent implements ControlValueAccessor {
|
|
|
75
75
|
private readonly _urlState;
|
|
76
76
|
private readonly _mobileViewportMax;
|
|
77
77
|
private readonly _viewportMargin;
|
|
78
|
+
private readonly _panelMaxHeight;
|
|
78
79
|
private readonly _urlParamSignals;
|
|
80
|
+
private readonly _viewport;
|
|
79
81
|
private _getUrlParamSignal;
|
|
80
82
|
constructor();
|
|
81
83
|
/** @internal — ID \u00fanico para asociar label con trigger */
|
|
@@ -107,6 +109,10 @@ declare class NeuSelectComponent implements ControlValueAccessor {
|
|
|
107
109
|
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
108
110
|
/** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
|
|
109
111
|
clearable: _angular_core.InputSignal<boolean>;
|
|
112
|
+
/** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
|
|
113
|
+
virtualScroll: _angular_core.InputSignal<boolean>;
|
|
114
|
+
/** Número de opciones visibles en el viewport virtual / Number of visible options in the virtual viewport */
|
|
115
|
+
virtualScrollVisibleItems: _angular_core.InputSignal<number>;
|
|
110
116
|
/** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
|
|
111
117
|
noResultsMessage: _angular_core.InputSignal<string>;
|
|
112
118
|
/** Aria-label del botón de limpiar / Aria-label for the clear button */
|
|
@@ -129,16 +135,21 @@ declare class NeuSelectComponent implements ControlValueAccessor {
|
|
|
129
135
|
readonly panelPosition: _angular_core.WritableSignal<{
|
|
130
136
|
position: string | null;
|
|
131
137
|
top: string | null;
|
|
138
|
+
bottom: string | null;
|
|
132
139
|
left: string | null;
|
|
133
140
|
width: string | null;
|
|
134
141
|
maxHeight: string | null;
|
|
135
142
|
}>;
|
|
143
|
+
readonly isPanelAbove: _angular_core.WritableSignal<boolean>;
|
|
136
144
|
readonly hasError: Signal<boolean>;
|
|
137
145
|
readonly describedBy: Signal<string | null>;
|
|
138
146
|
readonly filteredOptions: Signal<NeuSelectOption[]>;
|
|
139
147
|
readonly selectedLabel: Signal<string | null>;
|
|
140
148
|
readonly _selectedOption: Signal<NeuSelectOption | null>;
|
|
141
149
|
readonly resultsAnnouncement: Signal<string>;
|
|
150
|
+
readonly virtualScrollItemSize: Signal<36 | 52 | 44>;
|
|
151
|
+
readonly virtualViewportHeight: Signal<string>;
|
|
152
|
+
readonly trackByOptionValue: (_index: number, option: NeuSelectOption) => string;
|
|
142
153
|
private _onChange;
|
|
143
154
|
private _onTouched;
|
|
144
155
|
writeValue(val: string | null): void;
|
|
@@ -161,9 +172,11 @@ declare class NeuSelectComponent implements ControlValueAccessor {
|
|
|
161
172
|
onWindowResize(): void;
|
|
162
173
|
onWindowScroll(): void;
|
|
163
174
|
private syncPanelPosition;
|
|
175
|
+
private focusFirstOption;
|
|
176
|
+
private focusOption;
|
|
164
177
|
private resetPanelPosition;
|
|
165
178
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NeuSelectComponent, never>;
|
|
166
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSelectComponent, "neu-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl", "selectedItemTpl"], never, true, never>;
|
|
179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NeuSelectComponent, "neu-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "floatingLabel": { "alias": "floatingLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollVisibleItems": { "alias": "virtualScrollVisibleItems"; "required": false; "isSignal": true; }; "noResultsMessage": { "alias": "noResultsMessage"; "required": false; "isSignal": true; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; "isSignal": true; }; "urlParam": { "alias": "urlParam"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, ["itemTpl", "selectedItemTpl"], never, true, never>;
|
|
167
180
|
}
|
|
168
181
|
|
|
169
182
|
export { NeuSelectComponent, NeuSelectItemDirective, NeuSelectSelectedDirective };
|
|
@@ -23,6 +23,7 @@ import * as _angular_core from '@angular/core';
|
|
|
23
23
|
declare class NeuSidebarComponent {
|
|
24
24
|
private readonly document;
|
|
25
25
|
private readonly urlState;
|
|
26
|
+
private readonly openParam;
|
|
26
27
|
/** Posición del sidebar: izquierda o derecha de la pantalla / Sidebar position: left or right of the screen */
|
|
27
28
|
side: _angular_core.InputSignal<"left" | "right">;
|
|
28
29
|
/** QueryParam que controla el estado. Default: 'menu' (?menu=open) / QueryParam that controls the state. Default: 'menu' (?menu=open) */
|