ngx-com 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -2
- package/fesm2022/ngx-com-components-calendar.mjs +21 -11
- package/fesm2022/ngx-com-components-calendar.mjs.map +1 -1
- package/fesm2022/ngx-com-components-datepicker.mjs +222 -51
- package/fesm2022/ngx-com-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngx-com-components-dropdown.mjs +193 -10
- package/fesm2022/ngx-com-components-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-com-components-table.mjs +188 -63
- package/fesm2022/ngx-com-components-table.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-com-components-calendar.d.ts +5 -5
- package/types/ngx-com-components-datepicker.d.ts +44 -10
- package/types/ngx-com-components-dropdown.d.ts +54 -3
- package/types/ngx-com-components-table.d.ts +98 -22
package/package.json
CHANGED
|
@@ -504,8 +504,8 @@ declare class ComCalendar<D> {
|
|
|
504
504
|
private readonly monthViews;
|
|
505
505
|
/** The date to display and navigate from */
|
|
506
506
|
readonly activeDate: InputSignal<D | undefined>;
|
|
507
|
-
/** The currently selected date
|
|
508
|
-
readonly selected: InputSignal<D | DateRange<D> | null>;
|
|
507
|
+
/** The currently selected date, date range, or array of dates (multi-selection) */
|
|
508
|
+
readonly selected: InputSignal<D | D[] | DateRange<D> | null>;
|
|
509
509
|
/** Minimum selectable date */
|
|
510
510
|
readonly minDate: InputSignal<D | null>;
|
|
511
511
|
/** Maximum selectable date */
|
|
@@ -635,8 +635,8 @@ declare abstract class CalendarViewBase<D> {
|
|
|
635
635
|
protected readonly dateAdapter: DateAdapter<D>;
|
|
636
636
|
/** The date to display and navigate from */
|
|
637
637
|
readonly activeDate: InputSignal<D>;
|
|
638
|
-
/** The currently selected date
|
|
639
|
-
readonly selected: InputSignal<D | DateRange<D> | null>;
|
|
638
|
+
/** The currently selected date, date range, or array of dates (multi-selection) */
|
|
639
|
+
readonly selected: InputSignal<D | D[] | DateRange<D> | null>;
|
|
640
640
|
/** Minimum selectable date */
|
|
641
641
|
readonly minDate: InputSignal<D | null>;
|
|
642
642
|
/** Maximum selectable date */
|
|
@@ -711,7 +711,7 @@ declare abstract class CalendarViewBase<D> {
|
|
|
711
711
|
/**
|
|
712
712
|
* Type guard to check if a value is a DateRange.
|
|
713
713
|
*/
|
|
714
|
-
protected isDateRange(value: D | DateRange<D>): value is DateRange<D>;
|
|
714
|
+
protected isDateRange(value: D | D[] | DateRange<D>): value is DateRange<D>;
|
|
715
715
|
/**
|
|
716
716
|
* Handles cell selection events.
|
|
717
717
|
*/
|
|
@@ -236,6 +236,16 @@ declare class ComDatepicker<D> implements ControlValueAccessor, FormFieldControl
|
|
|
236
236
|
readonly showSeconds: InputSignal<boolean>;
|
|
237
237
|
/** Step interval for minutes in the time picker. */
|
|
238
238
|
readonly minuteStep: InputSignal<number>;
|
|
239
|
+
/**
|
|
240
|
+
* When true, date/time selections while the panel is open update only the visual state.
|
|
241
|
+
* The value is committed (emitted via `dateChange`, propagated to forms) only when
|
|
242
|
+
* the user presses "Done". Closing via Escape or backdrop click reverts to the
|
|
243
|
+
* pre-open value without emitting.
|
|
244
|
+
*
|
|
245
|
+
* All in-panel actions (date selection, time change, today, footer clear) are buffered.
|
|
246
|
+
* The trigger clear button (panel closed) always commits immediately.
|
|
247
|
+
*/
|
|
248
|
+
readonly commitOnClose: InputSignal<boolean>;
|
|
239
249
|
/** Emitted when a date is selected. */
|
|
240
250
|
readonly dateChange: OutputEmitterRef<D | null>;
|
|
241
251
|
/** Emitted when the panel opens. */
|
|
@@ -248,6 +258,11 @@ declare class ComDatepicker<D> implements ControlValueAccessor, FormFieldControl
|
|
|
248
258
|
readonly internalValue: WritableSignal<D | null>;
|
|
249
259
|
/** Calendar active date for navigation. Recomputes when value or startAt changes; user navigation overrides via .set(). */
|
|
250
260
|
readonly calendarActiveDate: WritableSignal<D>;
|
|
261
|
+
/**
|
|
262
|
+
* Snapshot of the value when the panel was opened.
|
|
263
|
+
* Used by `commitOnClose` to revert on Escape/backdrop close.
|
|
264
|
+
*/
|
|
265
|
+
private readonly committedValue;
|
|
251
266
|
/** Live announcements for screen readers. */
|
|
252
267
|
readonly liveAnnouncement: WritableSignal<string>;
|
|
253
268
|
/** Whether the input is focused (not panel). */
|
|
@@ -305,7 +320,7 @@ declare class ComDatepicker<D> implements ControlValueAccessor, FormFieldControl
|
|
|
305
320
|
readonly timeValue: Signal<ComTimeValue | null>;
|
|
306
321
|
/** Effective display format — switches to dateTime when time picker is shown. */
|
|
307
322
|
readonly effectiveDateFormat: Signal<DateFormatPreset>;
|
|
308
|
-
/** Whether the panel should stay open (keepOpen
|
|
323
|
+
/** Whether the panel should stay open (keepOpen, time picker shown, or commitOnClose). */
|
|
309
324
|
readonly effectiveKeepOpen: Signal<boolean>;
|
|
310
325
|
private onChange;
|
|
311
326
|
private onTouched;
|
|
@@ -320,13 +335,15 @@ declare class ComDatepicker<D> implements ControlValueAccessor, FormFieldControl
|
|
|
320
335
|
registerOnValidatorChange(fn: () => void): void;
|
|
321
336
|
/** Opens the datepicker panel. */
|
|
322
337
|
open(): void;
|
|
323
|
-
/** Closes the datepicker panel. */
|
|
338
|
+
/** Closes the datepicker panel. Reverts buffered changes when `commitOnClose` is active. */
|
|
324
339
|
close(): void;
|
|
340
|
+
/** Commits the buffered value and closes the panel. Called by the Done button. */
|
|
341
|
+
protected commitAndClose(): void;
|
|
325
342
|
/** Toggles the datepicker panel. */
|
|
326
343
|
toggle(): void;
|
|
327
|
-
/** Clears the selected date. */
|
|
344
|
+
/** Clears the selected date. Buffered when commitOnClose is active and panel is open. */
|
|
328
345
|
clear(event?: Event): void;
|
|
329
|
-
/** Selects today's date. */
|
|
346
|
+
/** Selects today's date. Buffered when commitOnClose is active and panel is open. */
|
|
330
347
|
selectToday(): void;
|
|
331
348
|
protected onInputFocus(): void;
|
|
332
349
|
protected onTriggerClick(): void;
|
|
@@ -360,7 +377,7 @@ declare class ComDatepicker<D> implements ControlValueAccessor, FormFieldControl
|
|
|
360
377
|
private isDateValid;
|
|
361
378
|
private announce;
|
|
362
379
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComDatepicker<any>, never>;
|
|
363
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ComDatepicker<any>, "com-datepicker", ["comDatepicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; "isSignal": true; }; "showFooterClearButton": { "alias": "showFooterClearButton"; "required": false; "isSignal": true; }; "keepOpen": { "alias": "keepOpen"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; "showTimePicker": { "alias": "showTimePicker"; "required": false; "isSignal": true; }; "use12HourFormat": { "alias": "use12HourFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "dateChange": "dateChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
380
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComDatepicker<any>, "com-datepicker", ["comDatepicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; "isSignal": true; }; "showFooterClearButton": { "alias": "showFooterClearButton"; "required": false; "isSignal": true; }; "keepOpen": { "alias": "keepOpen"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; "showTimePicker": { "alias": "showTimePicker"; "required": false; "isSignal": true; }; "use12HourFormat": { "alias": "use12HourFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "commitOnClose": { "alias": "commitOnClose"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "dateChange": "dateChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
364
381
|
}
|
|
365
382
|
|
|
366
383
|
/**
|
|
@@ -473,6 +490,16 @@ declare class ComDateRangePicker<D> implements ControlValueAccessor, FormFieldCo
|
|
|
473
490
|
readonly showSeconds: InputSignal<boolean>;
|
|
474
491
|
/** Step interval for minutes in the time pickers. */
|
|
475
492
|
readonly minuteStep: InputSignal<number>;
|
|
493
|
+
/**
|
|
494
|
+
* When true, range/time selections while the panel is open update only the visual state.
|
|
495
|
+
* The value is committed (emitted via `rangeChange`, propagated to forms) only when
|
|
496
|
+
* the user presses "Done". Closing via Escape or backdrop click reverts to the
|
|
497
|
+
* pre-open value without emitting.
|
|
498
|
+
*
|
|
499
|
+
* All in-panel actions (range selection, time change, today, footer clear) are buffered.
|
|
500
|
+
* The trigger clear button (panel closed) always commits immediately.
|
|
501
|
+
*/
|
|
502
|
+
readonly commitOnClose: InputSignal<boolean>;
|
|
476
503
|
/** Emitted when a complete range is selected. */
|
|
477
504
|
readonly rangeChange: OutputEmitterRef<DateRangeValue<D> | null>;
|
|
478
505
|
/** Emitted when the panel opens. */
|
|
@@ -487,6 +514,11 @@ declare class ComDateRangePicker<D> implements ControlValueAccessor, FormFieldCo
|
|
|
487
514
|
readonly internalValue: WritableSignal<DateRangeValue<D> | null>;
|
|
488
515
|
/** Calendar active date for navigation. Recomputes when value or startAt changes; user navigation overrides via .set(). */
|
|
489
516
|
readonly calendarActiveDate: WritableSignal<D>;
|
|
517
|
+
/**
|
|
518
|
+
* Snapshot of the value when the panel was opened.
|
|
519
|
+
* Used by `commitOnClose` to revert on Escape/backdrop close.
|
|
520
|
+
*/
|
|
521
|
+
private readonly committedValue;
|
|
490
522
|
/** Live announcements for screen readers. */
|
|
491
523
|
readonly liveAnnouncement: WritableSignal<string>;
|
|
492
524
|
/** Whether any input is focused. */
|
|
@@ -555,7 +587,7 @@ declare class ComDateRangePicker<D> implements ControlValueAccessor, FormFieldCo
|
|
|
555
587
|
readonly endTimeValue: Signal<ComTimeValue | null>;
|
|
556
588
|
/** Effective display format — switches to dateTime when time picker is shown. */
|
|
557
589
|
readonly effectiveDateFormat: Signal<DateFormatPreset>;
|
|
558
|
-
/** Whether the panel should stay open (keepOpen
|
|
590
|
+
/** Whether the panel should stay open (keepOpen, time picker shown, or commitOnClose). */
|
|
559
591
|
readonly effectiveKeepOpen: Signal<boolean>;
|
|
560
592
|
private onChange;
|
|
561
593
|
private onTouched;
|
|
@@ -570,13 +602,15 @@ declare class ComDateRangePicker<D> implements ControlValueAccessor, FormFieldCo
|
|
|
570
602
|
registerOnValidatorChange(fn: () => void): void;
|
|
571
603
|
/** Opens the datepicker panel. */
|
|
572
604
|
open(): void;
|
|
573
|
-
/** Closes the datepicker panel. */
|
|
605
|
+
/** Closes the datepicker panel. Reverts buffered changes when `commitOnClose` is active. */
|
|
574
606
|
close(): void;
|
|
607
|
+
/** Commits the buffered value and closes the panel. Called by the Done button. */
|
|
608
|
+
protected commitAndClose(): void;
|
|
575
609
|
/** Toggles the datepicker panel. */
|
|
576
610
|
toggle(): void;
|
|
577
|
-
/** Clears the selected date range. */
|
|
611
|
+
/** Clears the selected date range. Buffered when commitOnClose is active and panel is open. */
|
|
578
612
|
clear(event?: Event): void;
|
|
579
|
-
/** Selects today's date as the start date. */
|
|
613
|
+
/** Selects today's date as the start date. Buffered when commitOnClose is active and panel is open. */
|
|
580
614
|
selectToday(): void;
|
|
581
615
|
protected onTriggerClick(): void;
|
|
582
616
|
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
@@ -616,7 +650,7 @@ declare class ComDateRangePicker<D> implements ControlValueAccessor, FormFieldCo
|
|
|
616
650
|
private formatDate;
|
|
617
651
|
private announce;
|
|
618
652
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComDateRangePicker<any>, never>;
|
|
619
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ComDateRangePicker<any>, "com-date-range-picker", ["comDateRangePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; "isSignal": true; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; "isSignal": true; }; "showFooterClearButton": { "alias": "showFooterClearButton"; "required": false; "isSignal": true; }; "keepOpen": { "alias": "keepOpen"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "startAriaLabel": { "alias": "startAriaLabel"; "required": false; "isSignal": true; }; "endAriaLabel": { "alias": "endAriaLabel"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; "showTimePicker": { "alias": "showTimePicker"; "required": false; "isSignal": true; }; "use12HourFormat": { "alias": "use12HourFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "rangeChange": "rangeChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
653
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComDateRangePicker<any>, "com-date-range-picker", ["comDateRangePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "dateFilter": { "alias": "dateFilter"; "required": false; "isSignal": true; }; "startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; "isSignal": true; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "showTodayButton": { "alias": "showTodayButton"; "required": false; "isSignal": true; }; "showFooterClearButton": { "alias": "showFooterClearButton"; "required": false; "isSignal": true; }; "keepOpen": { "alias": "keepOpen"; "required": false; "isSignal": true; }; "allowManualInput": { "alias": "allowManualInput"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "startAriaLabel": { "alias": "startAriaLabel"; "required": false; "isSignal": true; }; "endAriaLabel": { "alias": "endAriaLabel"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; "showTimePicker": { "alias": "showTimePicker"; "required": false; "isSignal": true; }; "use12HourFormat": { "alias": "use12HourFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "commitOnClose": { "alias": "commitOnClose"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; "rangeChange": "rangeChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
620
654
|
}
|
|
621
655
|
|
|
622
656
|
export { ComDateRangePicker, ComDatepicker, createDateRangeValue, datepickerClearVariants, datepickerDisabledVariants, datepickerFooterButtonVariants, datepickerFooterVariants, datepickerIconVariants, datepickerInputVariants, datepickerPanelVariants, datepickerRangeSeparatorVariants, datepickerTriggerVariants, generateDatepickerId };
|
|
@@ -294,6 +294,30 @@ declare class ComDropdownTagTpl<T> {
|
|
|
294
294
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ComDropdownTagTpl<any>, "ng-template[comDropdownTag]", never, {}, {}, never, never, true, never>;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
+
/**
|
|
298
|
+
* Directive to mark a template as the custom loading indicator template.
|
|
299
|
+
*
|
|
300
|
+
* @tokens none
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```html
|
|
304
|
+
* <com-dropdown [options]="users()" [loading]="isLoading()">
|
|
305
|
+
* <ng-template comDropdownLoading>
|
|
306
|
+
* <div class="flex items-center gap-2 p-3">
|
|
307
|
+
* <com-spinner size="xs" color="primary" />
|
|
308
|
+
* <span class="text-sm text-muted-foreground">Fetching more results...</span>
|
|
309
|
+
* </div>
|
|
310
|
+
* </ng-template>
|
|
311
|
+
* </com-dropdown>
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
declare class ComDropdownLoadingTpl {
|
|
315
|
+
/** Reference to the template. */
|
|
316
|
+
readonly templateRef: TemplateRef<void>;
|
|
317
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComDropdownLoadingTpl, never>;
|
|
318
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComDropdownLoadingTpl, "ng-template[comDropdownLoading]", never, {}, {}, never, never, true, never>;
|
|
319
|
+
}
|
|
320
|
+
|
|
297
321
|
/**
|
|
298
322
|
* Variant type for dropdown trigger appearance.
|
|
299
323
|
*/
|
|
@@ -424,6 +448,15 @@ declare const dropdownChevronVariants: (props?: {
|
|
|
424
448
|
open?: boolean;
|
|
425
449
|
}) => string;
|
|
426
450
|
type DropdownChevronVariants = VariantProps<typeof dropdownChevronVariants>;
|
|
451
|
+
/**
|
|
452
|
+
* CVA variants for the loading indicator container.
|
|
453
|
+
*
|
|
454
|
+
* @tokens `--color-muted-foreground`
|
|
455
|
+
*/
|
|
456
|
+
declare const dropdownLoadingVariants: (props?: {
|
|
457
|
+
size?: DropdownSize;
|
|
458
|
+
}) => string;
|
|
459
|
+
type DropdownLoadingVariants = VariantProps<typeof dropdownLoadingVariants>;
|
|
427
460
|
|
|
428
461
|
/**
|
|
429
462
|
* Reusable dropdown/select component with full accessibility support.
|
|
@@ -478,6 +511,8 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
478
511
|
protected readonly groupTemplate: Signal<ComDropdownGroupTpl | undefined>;
|
|
479
512
|
/** Content query for custom tag template. */
|
|
480
513
|
protected readonly tagTemplate: Signal<ComDropdownTagTpl<T> | undefined>;
|
|
514
|
+
/** Content query for custom loading template. */
|
|
515
|
+
protected readonly loadingTemplate: Signal<ComDropdownLoadingTpl | undefined>;
|
|
481
516
|
/** Overlay reference. */
|
|
482
517
|
private overlayRef;
|
|
483
518
|
/** Unique ID for the dropdown. */
|
|
@@ -532,6 +567,8 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
532
567
|
readonly maxVisibleTags: InputSignal<number | null>;
|
|
533
568
|
/** Custom error state matcher for determining when to show errors. */
|
|
534
569
|
readonly errorStateMatcher: InputSignal<ErrorStateMatcher | undefined>;
|
|
570
|
+
/** Whether the dropdown is currently loading data. */
|
|
571
|
+
readonly loading: InputSignal<boolean>;
|
|
535
572
|
readonly touched: ModelSignal<boolean>;
|
|
536
573
|
readonly invalid: InputSignal<boolean>;
|
|
537
574
|
readonly sfErrors: InputSignal<readonly unknown[]>;
|
|
@@ -541,6 +578,8 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
541
578
|
readonly opened: OutputEmitterRef<void>;
|
|
542
579
|
/** Emitted when panel closes. */
|
|
543
580
|
readonly closed: OutputEmitterRef<void>;
|
|
581
|
+
/** Emitted when user scrolls near the bottom of the option list. */
|
|
582
|
+
readonly loadMore: OutputEmitterRef<void>;
|
|
544
583
|
/** Whether the panel is open. */
|
|
545
584
|
readonly isOpen: WritableSignal<boolean>;
|
|
546
585
|
/** Whether the trigger button is focused. */
|
|
@@ -553,6 +592,12 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
553
592
|
readonly internalValue: WritableSignal<T | T[] | null>;
|
|
554
593
|
/** Live announcements for screen readers. */
|
|
555
594
|
readonly liveAnnouncement: WritableSignal<string>;
|
|
595
|
+
/** Flag to prevent duplicate loadMore emissions per scroll-to-bottom. */
|
|
596
|
+
private loadMoreEmitted;
|
|
597
|
+
/** Subscription for virtual scroll elementScrolled. */
|
|
598
|
+
private scrollSubscription;
|
|
599
|
+
/** Throttled handler for standard scroll events. */
|
|
600
|
+
private throttledScrollHandler;
|
|
556
601
|
/** IDs for aria-describedby (set by form-field). */
|
|
557
602
|
private readonly _describedByIds;
|
|
558
603
|
/** Form field appearance (set by form-field). */
|
|
@@ -612,6 +657,8 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
612
657
|
readonly clearClasses: Signal<string>;
|
|
613
658
|
/** Computed overflow badge classes. */
|
|
614
659
|
readonly overflowBadgeClasses: Signal<string>;
|
|
660
|
+
/** Computed loading container classes. */
|
|
661
|
+
readonly loadingContainerClasses: Signal<string>;
|
|
615
662
|
private onChange;
|
|
616
663
|
private onTouched;
|
|
617
664
|
constructor();
|
|
@@ -679,8 +726,12 @@ declare class ComDropdown<T> implements ControlValueAccessor, FormFieldControl<T
|
|
|
679
726
|
private flattenGroupedOptions;
|
|
680
727
|
private typeAhead;
|
|
681
728
|
private announce;
|
|
729
|
+
/** Sets up scroll detection for the loadMore output. SSR-safe: only called from user interaction. */
|
|
730
|
+
private setupScrollDetection;
|
|
731
|
+
/** Cleans up scroll detection listeners. */
|
|
732
|
+
private cleanupScrollDetection;
|
|
682
733
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComDropdown<any>, never>;
|
|
683
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ComDropdown<any>, "com-dropdown", ["comDropdown"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "filterWith": { "alias": "filterWith"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "searchDebounceMs": { "alias": "searchDebounceMs"; "required": false; "isSignal": true; }; "virtualScrollThreshold": { "alias": "virtualScrollThreshold"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "maxVisibleTags": { "alias": "maxVisibleTags"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; }, ["optionTemplate", "selectedTemplate", "emptyTemplate", "groupTemplate", "tagTemplate"], never, true, never>;
|
|
734
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ComDropdown<any>, "com-dropdown", ["comDropdown"], { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "filterWith": { "alias": "filterWith"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "searchDebounceMs": { "alias": "searchDebounceMs"; "required": false; "isSignal": true; }; "virtualScrollThreshold": { "alias": "virtualScrollThreshold"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "maxVisibleTags": { "alias": "maxVisibleTags"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "sfErrors": { "alias": "errors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "searchChange": "searchChange"; "opened": "opened"; "closed": "closed"; "loadMore": "loadMore"; }, ["optionTemplate", "selectedTemplate", "emptyTemplate", "groupTemplate", "tagTemplate", "loadingTemplate"], never, true, never>;
|
|
684
735
|
}
|
|
685
736
|
|
|
686
737
|
/**
|
|
@@ -957,5 +1008,5 @@ declare class ComDropdownGroup {
|
|
|
957
1008
|
static ɵcmp: i0.ɵɵComponentDeclaration<ComDropdownGroup, "com-dropdown-group", ["comDropdownGroup"], { "label": { "alias": "label"; "required": true; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "userClass": { "alias": "class"; "required": false; "isSignal": true; }; "groupTemplate": { "alias": "groupTemplate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
958
1009
|
}
|
|
959
1010
|
|
|
960
|
-
export { ComDropdown, ComDropdownEmptyTpl, ComDropdownGroup, ComDropdownGroupTpl, ComDropdownOption, ComDropdownOptionTpl, ComDropdownPanel, ComDropdownSearch, ComDropdownSelectedTpl, ComDropdownTag, ComDropdownTagTpl, defaultCompareWith, defaultDisplayWith, defaultFilterWith, dropdownChevronVariants, dropdownClearVariants, dropdownEmptyVariants, dropdownGroupVariants, dropdownOptionVariants, dropdownOverflowBadgeVariants, dropdownPanelVariants, dropdownSearchVariants, dropdownTagRemoveVariants, dropdownTagVariants, dropdownTriggerVariants, generateDropdownId };
|
|
961
|
-
export type { ComDropdownEmptyContext, ComDropdownGroupContext, ComDropdownGroup$1 as ComDropdownGroupData, ComDropdownOptionContext, ComDropdownPanelWidth, ComDropdownPosition, ComDropdownProcessedOption, ComDropdownSelectedContext, ComDropdownTagContext, DropdownChevronVariants, DropdownClearVariants, DropdownEmptyVariants, DropdownGroupVariants, DropdownOptionVariants, DropdownOverflowBadgeVariants, DropdownPanelVariants, DropdownSearchVariants, DropdownSize, DropdownState, DropdownTagRemoveVariants, DropdownTagVariants, DropdownTriggerVariants, DropdownVariant };
|
|
1011
|
+
export { ComDropdown, ComDropdownEmptyTpl, ComDropdownGroup, ComDropdownGroupTpl, ComDropdownLoadingTpl, ComDropdownOption, ComDropdownOptionTpl, ComDropdownPanel, ComDropdownSearch, ComDropdownSelectedTpl, ComDropdownTag, ComDropdownTagTpl, defaultCompareWith, defaultDisplayWith, defaultFilterWith, dropdownChevronVariants, dropdownClearVariants, dropdownEmptyVariants, dropdownGroupVariants, dropdownLoadingVariants, dropdownOptionVariants, dropdownOverflowBadgeVariants, dropdownPanelVariants, dropdownSearchVariants, dropdownTagRemoveVariants, dropdownTagVariants, dropdownTriggerVariants, generateDropdownId };
|
|
1012
|
+
export type { ComDropdownEmptyContext, ComDropdownGroupContext, ComDropdownGroup$1 as ComDropdownGroupData, ComDropdownOptionContext, ComDropdownPanelWidth, ComDropdownPosition, ComDropdownProcessedOption, ComDropdownSelectedContext, ComDropdownTagContext, DropdownChevronVariants, DropdownClearVariants, DropdownEmptyVariants, DropdownGroupVariants, DropdownLoadingVariants, DropdownOptionVariants, DropdownOverflowBadgeVariants, DropdownPanelVariants, DropdownSearchVariants, DropdownSize, DropdownState, DropdownTagRemoveVariants, DropdownTagVariants, DropdownTriggerVariants, DropdownVariant };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, InputSignal, Signal, InputSignalWithTransform, TrackByFunction } from '@angular/core';
|
|
2
|
+
import { TemplateRef, InputSignal, Signal, InputSignalWithTransform, TrackByFunction, InjectionToken, OutputEmitterRef } from '@angular/core';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -259,39 +259,45 @@ declare const tableHeaderVariants: (props?: {
|
|
|
259
259
|
}) => string;
|
|
260
260
|
type TableHeaderVariants = VariantProps<typeof tableHeaderVariants>;
|
|
261
261
|
/**
|
|
262
|
-
* CVA variants for `<th>`
|
|
262
|
+
* CVA variants for the header `<tr>` — applies base styles to child `<th>` cells via child selectors.
|
|
263
263
|
*
|
|
264
264
|
* @tokens `--color-muted-foreground`
|
|
265
265
|
*/
|
|
266
|
-
declare const
|
|
266
|
+
declare const tableHeaderRowVariants: (props?: {
|
|
267
267
|
density?: TableDensity;
|
|
268
268
|
}) => string;
|
|
269
|
-
type
|
|
269
|
+
type TableHeaderRowVariants = VariantProps<typeof tableHeaderRowVariants>;
|
|
270
270
|
/**
|
|
271
|
-
* CVA variants for `<tbody> <tr>` rows.
|
|
271
|
+
* CVA variants for `<tbody> <tr>` rows — includes row-level styles and child `<td>` cell styles.
|
|
272
272
|
*
|
|
273
273
|
* @tokens `--color-border-subtle`, `--color-muted`, `--color-muted-hover`
|
|
274
274
|
*/
|
|
275
275
|
declare const tableRowVariants: (props?: {
|
|
276
276
|
variant?: TableVariant;
|
|
277
|
-
}) => string;
|
|
278
|
-
type TableRowVariants = VariantProps<typeof tableRowVariants>;
|
|
279
|
-
/**
|
|
280
|
-
* CVA variants for `<td>` body cells.
|
|
281
|
-
*/
|
|
282
|
-
declare const tableBodyCellVariants: (props?: {
|
|
283
277
|
density?: TableDensity;
|
|
284
278
|
}) => string;
|
|
285
|
-
type
|
|
279
|
+
type TableRowVariants = VariantProps<typeof tableRowVariants>;
|
|
286
280
|
/**
|
|
287
|
-
* CVA variants for `<
|
|
281
|
+
* CVA variants for the footer `<tr>` — applies base styles to child `<td>` cells via child selectors.
|
|
288
282
|
*
|
|
289
283
|
* @tokens `--color-foreground`, `--color-border`
|
|
290
284
|
*/
|
|
291
|
-
declare const
|
|
285
|
+
declare const tableFooterRowVariants: (props?: {
|
|
292
286
|
density?: TableDensity;
|
|
293
287
|
}) => string;
|
|
294
|
-
type
|
|
288
|
+
type TableFooterRowVariants = VariantProps<typeof tableFooterRowVariants>;
|
|
289
|
+
/** @deprecated Use `tableHeaderRowVariants` instead. */
|
|
290
|
+
declare const tableHeaderCellVariants: typeof tableHeaderRowVariants;
|
|
291
|
+
/** @deprecated Use `tableHeaderRowVariants` instead. */
|
|
292
|
+
type TableHeaderCellVariants = TableHeaderRowVariants;
|
|
293
|
+
/** @deprecated Body cell styles are now part of `tableRowVariants`. */
|
|
294
|
+
declare const tableBodyCellVariants: typeof tableRowVariants;
|
|
295
|
+
/** @deprecated Body cell styles are now part of `tableRowVariants`. */
|
|
296
|
+
type TableBodyCellVariants = TableRowVariants;
|
|
297
|
+
/** @deprecated Use `tableFooterRowVariants` instead. */
|
|
298
|
+
declare const tableFooterCellVariants: typeof tableFooterRowVariants;
|
|
299
|
+
/** @deprecated Use `tableFooterRowVariants` instead. */
|
|
300
|
+
type TableFooterCellVariants = TableFooterRowVariants;
|
|
295
301
|
|
|
296
302
|
/**
|
|
297
303
|
* Declarative data table component using native HTML `<table>` semantics.
|
|
@@ -339,6 +345,7 @@ type TableFooterCellVariants = VariantProps<typeof tableFooterCellVariants>;
|
|
|
339
345
|
*/
|
|
340
346
|
declare class ComTable<T> {
|
|
341
347
|
private readonly destroyRef;
|
|
348
|
+
private readonly rowClickRef;
|
|
342
349
|
/** The data to render — accepts a plain array or a ComDataSource. */
|
|
343
350
|
readonly dataSource: InputSignal<ComTableDataSourceInput<T>>;
|
|
344
351
|
/** Track function for `@for`. Defaults to tracking by index. */
|
|
@@ -369,23 +376,92 @@ declare class ComTable<T> {
|
|
|
369
376
|
readonly renderData: Signal<readonly T[]>;
|
|
370
377
|
/** @internal Header column names. */
|
|
371
378
|
protected readonly headerColumns: Signal<string[]>;
|
|
372
|
-
/** @internal Body column names. */
|
|
373
|
-
|
|
379
|
+
/** @internal Body column names — public for ComRowClick event delegation. */
|
|
380
|
+
readonly bodyColumns: Signal<string[]>;
|
|
374
381
|
/** @internal Footer column names. */
|
|
375
382
|
protected readonly footerColumns: Signal<string[]>;
|
|
376
383
|
/** @internal Whether the header should be sticky. */
|
|
377
384
|
private readonly isSticky;
|
|
385
|
+
/** @internal Whether body rows are clickable (ComRowClick directive is active). */
|
|
386
|
+
protected readonly isRowClickable: Signal<boolean>;
|
|
378
387
|
protected readonly containerClasses: Signal<string>;
|
|
379
388
|
protected readonly tableClasses: Signal<string>;
|
|
380
389
|
protected readonly theadClasses: Signal<string>;
|
|
381
|
-
protected readonly
|
|
390
|
+
protected readonly headerTrClasses: Signal<string>;
|
|
382
391
|
protected readonly trClasses: Signal<string>;
|
|
383
|
-
protected readonly
|
|
384
|
-
protected readonly tfootTdClasses: Signal<string>;
|
|
392
|
+
protected readonly footerTrClasses: Signal<string>;
|
|
385
393
|
constructor();
|
|
386
394
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComTable<any>, never>;
|
|
387
395
|
static ɵcmp: i0.ɵɵComponentDeclaration<ComTable<any>, "com-table", ["comTable"], { "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "trackByFn": { "alias": "trackByFn"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, ["columnDefs", "headerRowDef", "rowDef", "footerRowDef", "noDataRow"], never, true, never>;
|
|
388
396
|
}
|
|
389
397
|
|
|
390
|
-
|
|
391
|
-
|
|
398
|
+
/** Data context that ComTable pushes to ComRowClick to avoid circular DI. */
|
|
399
|
+
interface ComRowClickContext<T = unknown> {
|
|
400
|
+
readonly renderData: Signal<readonly T[]>;
|
|
401
|
+
readonly bodyColumns: Signal<string[]>;
|
|
402
|
+
}
|
|
403
|
+
/** Minimal interface that ComTable reads to detect an active row-click directive. */
|
|
404
|
+
interface ComRowClickRef<T = unknown> {
|
|
405
|
+
/** Whether row-click behavior is currently active (exists and not disabled). */
|
|
406
|
+
readonly isActive: Signal<boolean>;
|
|
407
|
+
/** Called by ComTable to provide data context — avoids circular injection. */
|
|
408
|
+
_setContext(ctx: ComRowClickContext<T>): void;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Injection token used by ComTable to optionally detect a ComRowClick directive.
|
|
412
|
+
* Breaks the circular dependency between ComTable and ComRowClick.
|
|
413
|
+
*/
|
|
414
|
+
declare const COM_ROW_CLICK: InjectionToken<ComRowClickRef>;
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Attribute directive that enables click-to-act on `<com-table>` body rows.
|
|
418
|
+
*
|
|
419
|
+
* Uses event delegation — a single click/keydown listener on the `<table>` element —
|
|
420
|
+
* rather than per-row bindings. When a user clicks or presses Enter/Space on a body row,
|
|
421
|
+
* the directive resolves the row data and emits it, unless the click originated from an
|
|
422
|
+
* excluded column's cell.
|
|
423
|
+
*
|
|
424
|
+
* @tokens `--color-ring`
|
|
425
|
+
*
|
|
426
|
+
* @example Basic
|
|
427
|
+
* ```html
|
|
428
|
+
* <com-table [dataSource]="users()" comRowClick (comRowClick)="openDetail($event)">
|
|
429
|
+
* ...
|
|
430
|
+
* </com-table>
|
|
431
|
+
* ```
|
|
432
|
+
*
|
|
433
|
+
* @example With column exclusion
|
|
434
|
+
* ```html
|
|
435
|
+
* <com-table [dataSource]="users()" comRowClick
|
|
436
|
+
* [comRowClickExclude]="['select', 'actions']"
|
|
437
|
+
* (comRowClick)="openDetail($event)">
|
|
438
|
+
* ...
|
|
439
|
+
* </com-table>
|
|
440
|
+
* ```
|
|
441
|
+
*/
|
|
442
|
+
declare class ComRowClick<T = unknown> implements ComRowClickRef<T> {
|
|
443
|
+
private readonly elementRef;
|
|
444
|
+
private readonly renderer;
|
|
445
|
+
private readonly destroyRef;
|
|
446
|
+
private readonly document;
|
|
447
|
+
/** @internal Context pushed by ComTable — avoids circular DI. */
|
|
448
|
+
private context;
|
|
449
|
+
/** Column names whose cells do NOT trigger the row click output. */
|
|
450
|
+
readonly comRowClickExclude: InputSignal<string[]>;
|
|
451
|
+
/** Disables all row click behavior — removes cursor, tabindex, and event handling. */
|
|
452
|
+
readonly comRowClickDisabled: InputSignalWithTransform<boolean, unknown>;
|
|
453
|
+
/** Emits the row data object when a non-excluded cell is clicked or activated via keyboard. */
|
|
454
|
+
readonly comRowClick: OutputEmitterRef<T>;
|
|
455
|
+
/** Whether row-click behavior is currently active. */
|
|
456
|
+
readonly isActive: Signal<boolean>;
|
|
457
|
+
/** @internal Called by ComTable to provide data context. */
|
|
458
|
+
_setContext(ctx: ComRowClickContext<T>): void;
|
|
459
|
+
constructor();
|
|
460
|
+
private handleEvent;
|
|
461
|
+
private emitRow;
|
|
462
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ComRowClick<any>, never>;
|
|
463
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ComRowClick<any>, "com-table[comRowClick]", ["comRowClick"], { "comRowClickExclude": { "alias": "comRowClickExclude"; "required": false; "isSignal": true; }; "comRowClickDisabled": { "alias": "comRowClickDisabled"; "required": false; "isSignal": true; }; }, { "comRowClick": "comRowClick"; }, never, never, true, never>;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
export { COM_ROW_CLICK, ComArrayDataSource, ComCellDef, ComColumnDef, ComDataSource, ComFooterCellDef, ComFooterRowDef, ComHeaderCellDef, ComHeaderRowDef, ComNoDataRow, ComRowClick, ComRowDef, ComTable, isDataSource, tableBodyCellVariants, tableContainerVariants, tableFooterCellVariants, tableFooterRowVariants, tableHeaderCellVariants, tableHeaderRowVariants, tableHeaderVariants, tableRowVariants, tableVariants };
|
|
467
|
+
export type { CellDefContext, ComRowClickRef, ComTableDataSourceInput, TableBodyCellVariants, TableContainerVariants, TableDensity, TableFooterCellVariants, TableFooterRowVariants, TableHeaderCellVariants, TableHeaderRowVariants, TableHeaderVariants, TableRowVariants, TableVariant, TableVariants };
|