@lilydesignsystem/angular-data-grid 0.9.0 → 0.11.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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@lilydesignsystem/angular-data-grid",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "engines": {
5
5
  "node": "=26"
6
6
  },
7
7
  "description": "Lily Design System Angular interactive data grid composing the headless DataTable family: sort, filter, selection, pagination, resize, reorder, cell editing, virtualization, export to CSV, TSV and Excel, and twelve cell types. Headless, SSR-safe, no CSS.",
8
8
  "dependencies": {
9
- "@lilydesignsystem/angular-headless": "^0.5.0",
9
+ "@lilydesignsystem/angular-headless": "^0.6.0",
10
10
  "tslib": "^2.3.0"
11
11
  },
12
12
  "peerDependencies": {
@@ -60,6 +60,14 @@ export declare function exportBlob(table: ExportTable, format: ExportFormat, opt
60
60
  export declare function exportFilename(base: string, format: ExportFormat): string;
61
61
  /** Saves a blob through a temporary link. Does nothing outside a browser. */
62
62
  export declare function downloadBlob(blob: Blob, filename: string): void;
63
+ /** The table as tab-separated text with its header row, ready to paste into a spreadsheet (no byte-order mark, formula text defused). */
64
+ export declare function toClipboardText(table: ExportTable): string;
65
+ /**
66
+ * Write `text` to the clipboard: the async Clipboard API where there is one, otherwise a hidden, selected `<textarea>` and
67
+ * `document.execCommand("copy")`. Resolves true when something was copied, false when neither path worked (no permission, no
68
+ * secure context, no DOM). Never throws.
69
+ */
70
+ export declare function copyToClipboard(text: string): Promise<boolean>;
63
71
  type DataGridCellType = "text" | "number" | "link" | "date" | "time" | "time-zone" | "select" | "radio" | "person" | "file" | "rollup" | "formula";
64
72
  /** A time of day and the zone it is stated in (an IANA zone id, or a bare offset such as `+01:00`). */
65
73
  type DataGridZonedTime = {
@@ -251,7 +259,7 @@ type DataGridColumn = {
251
259
  resizable?: boolean;
252
260
  /** Column can be reordered: Alt+ArrowLeft/Right on its focused header, or dragging the header onto another. */
253
261
  movable?: boolean;
254
- /** Pins the column: its header and cells get `data-pinned="start"` / `"end"` for the consumer's sticky CSS. */
262
+ /** Pins the column: its header and cells get `data-pinned="start"` / `"end"` for the consumer's sticky CSS. Lily sets no position; when the widths of the pinned columns before it are known it sets `--data-grid-pinned-offset` (px) for `inset-inline-start` / `-end`. */
255
263
  pinned?: "start" | "end";
256
264
  /** Set `false` to leave the column out of an export. Default true. */
257
265
  exportable?: boolean;
@@ -276,6 +284,8 @@ type DataGridColumn = {
276
284
  /** The kind of value in this column: a bundle of defaults for `format`, `compare`, `filterText`, `exportValue`, `align` and `editor`. */
277
285
  type?: DataGridCellType;
278
286
  /** BCP 47 locale for this column's formatting and collation. */
287
+ /** Shown instead of nothing when this column's value is missing (`null`, `undefined` or `""`). Overrides the grid's `emptyValue`. A missing value always carries `data-empty` on its cell. */
288
+ emptyValue?: string;
279
289
  locale?: string;
280
290
  /** `select` and `radio`: the choices. */
281
291
  options?: DataGridOption[];
@@ -354,6 +364,22 @@ type DataGridColumn = {
354
364
  */
355
365
  type DataGridLabels = {
356
366
  search?: string;
367
+ /** Accessible name of the select that limits the search to one column. Gates the select (needs `searchAllFields` too). */
368
+ searchField?: string;
369
+ /** The select's first option: search every column. */
370
+ searchAllFields?: string;
371
+ /** Accessible name of the pager. When given, the pager is a labelled `<nav>` landmark (the headless `PaginationNav`); without it the pager is a plain `<div>`. */
372
+ pagination?: string;
373
+ /** Visible text of the copy button, which puts the export (header row first, tab-separated) on the clipboard for pasting into a spreadsheet. Gates the button. */
374
+ copy?: string;
375
+ /** Announced after a copy: (how many rows). */
376
+ copyAnnouncement?: (rowCount: number) => string;
377
+ /** Announced when the clipboard could not be written. */
378
+ copyFailed?: string;
379
+ /** Announced after Ctrl/Cmd+Z puts an earlier value back: (column header, the restored text). */
380
+ undoAnnouncement?: (header: string, text: string) => string;
381
+ /** Announced after Ctrl/Cmd+Shift+Z (or Ctrl+Y) re-applies an edit: (column header, the text). */
382
+ redoAnnouncement?: (header: string, text: string) => string;
357
383
  columnVisibility?: string;
358
384
  columnVisibilityOption?: (header: string) => string;
359
385
  resizeHandle?: (header: string) => string;
@@ -392,7 +418,12 @@ type DataGridLabels = {
392
418
  /** What a footer template receives (as `$implicit`). */
393
419
  type DataGridFooterContext = {
394
420
  columns: DataGridColumn[];
421
+ /** The current page. */
395
422
  rows: DataGridRow[];
423
+ /** Every row that passes the filter. */
424
+ allRows: DataGridRow[];
425
+ /** Reduces one column over `allRows` (a footer total that does not change with the page). */
426
+ aggregate: (columnId: string, kind: DataGridAggregate) => unknown;
396
427
  };
397
428
  type DataGridEntry = {
398
429
  row: DataGridRow;
@@ -442,6 +473,16 @@ export declare class DataGrid {
442
473
  readonly rows: import("@angular/core/types/core").InputSignal<DataGridRow[]>;
443
474
  /** BCP 47 locale for the typed columns' formatting and collation. Never defaulted: with none, values show as stored. */
444
475
  readonly locale: import("@angular/core/types/core").InputSignal<string | undefined>;
476
+ /** What a cell shows when its value is missing (`null`, `undefined` or `""`), for example `"—"`. A column's own `emptyValue` wins. No default: Lily ships no text. The cell always carries `data-empty`, and an export is unaffected. */
477
+ readonly emptyValue: import("@angular/core/types/core").InputSignal<string | undefined>;
478
+ /** In development, log (once per grid) the labels the grid's features call for but `labels` leaves out. Default `true`; it never logs in production. */
479
+ readonly warnMissingLabels: import("@angular/core/types/core").InputSignal<boolean>;
480
+ /** Where missing values sort: `"last"` (default, in both directions) or `"first"`. */
481
+ readonly nulls: import("@angular/core/types/core").InputSignal<"first" | "last">;
482
+ /** Make every column movable (Alt+Arrow on its header, or drag it) unless its own `movable` is `false`. Default `false`. */
483
+ readonly movableColumns: import("@angular/core/types/core").InputSignal<boolean>;
484
+ /** Hides rows for which it returns false (a status or date-range filter). Combines with the text filter; both must pass. */
485
+ readonly rowFilter: import("@angular/core/types/core").InputSignal<((row: DataGridRow) => boolean) | undefined>;
445
486
  /** Derives a stable id per row. Defaults to the row's index in `rows`. */
446
487
  readonly rowId: import("@angular/core/types/core").InputSignal<(row: DataGridRow, index: number) => string>;
447
488
  /** Row selection mode. */
@@ -478,6 +519,11 @@ export declare class DataGrid {
478
519
  readonly exportFormulas: import("@angular/core/types/core").InputSignal<boolean>;
479
520
  /** Called with the file before it is saved. Return `false` to keep the grid from saving it. */
480
521
  readonly exportHandler: import("@angular/core/types/core").InputSignal<((file: DataGridExport) => boolean | void) | undefined>;
522
+ /** Called before a copy puts text on the clipboard. Return `false` to take over (nothing is copied). The `copy` output fires first. */
523
+ readonly copyHandler: import("@angular/core/types/core").InputSignal<((copy: {
524
+ text: string;
525
+ rowCount: number;
526
+ }) => boolean | void) | undefined>;
481
527
  /** Renders only the rows in view, in a scroll region of `height` px (needs `scroll`). */
482
528
  readonly virtualize: import("@angular/core/types/core").InputSignal<{
483
529
  rowHeight: number;
@@ -490,6 +536,10 @@ export declare class DataGrid {
490
536
  readonly selected: import("@angular/core/types/core").ModelSignal<string[]>;
491
537
  /** Text filter. Two-way bindable: `[(filter)]`. */
492
538
  readonly filter: import("@angular/core/types/core").ModelSignal<string>;
539
+ /** Limits the text filter to one column: a column id, or `""` for every filterable column. Two-way bindable: `[(filterField)]`. */
540
+ readonly filterField: import("@angular/core/types/core").ModelSignal<string>;
541
+ /** Further sort keys after `sort`, for ties: Shift+click on another sortable header adds it. Two-way bindable: `[(thenBy)]`. */
542
+ readonly thenBy: import("@angular/core/types/core").ModelSignal<DataGridSort[]>;
493
543
  /** Current sort. Two-way bindable: `[(sort)]`. */
494
544
  readonly sort: import("@angular/core/types/core").ModelSignal<DataGridSort>;
495
545
  /** Column ids in display order. Two-way bindable: `[(columnOrder)]`; columns it does not name follow in their `columns` order. */
@@ -514,6 +564,10 @@ export declare class DataGrid {
514
564
  id: string;
515
565
  }>;
516
566
  readonly exportFile: import("@angular/core/types/_api-chunk").OutputEmitterRef<DataGridExport>;
567
+ readonly copy: import("@angular/core/types/_api-chunk").OutputEmitterRef<{
568
+ text: string;
569
+ rowCount: number;
570
+ }>;
517
571
  protected readonly gridId: string;
518
572
  protected readonly minColumnWidth = 40;
519
573
  private readonly rootRef;
@@ -541,9 +595,16 @@ export declare class DataGrid {
541
595
  /** Each cell's value and formatted text, read once per row object and column (reset when the columns change). */
542
596
  private readonly cellCache;
543
597
  protected cellFor(column: DataGridColumn, row: DataGridRow): DataGridCellContext;
544
- /** Lowercased search text per row, built once per rows/columns change. */
598
+ /** A missing value: `null`, `undefined` or an empty string. */
599
+ protected readonly isMissing: (value: unknown) => boolean;
600
+ /** A column the user can move: its own `movable`, else the grid's `movableColumns`. */
601
+ protected isMovable(column: DataGridColumn): boolean;
602
+ protected readonly filterableColumns: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<DataGridColumn[]>;
603
+ /** One folded (lower-case, no diacritics) text per filterable cell, built once per rows/columns change. */
545
604
  private readonly searchIndex;
546
605
  private readonly filteredEntries;
606
+ /** The sort keys in order: the primary, then `thenBy`, each with a real column and a direction. */
607
+ private readonly sortKeys;
547
608
  protected readonly sortedEntries: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<DataGridEntry[]>;
548
609
  protected readonly pageCount: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<number>;
549
610
  protected readonly clampedPage: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<number>;
@@ -560,14 +621,21 @@ export declare class DataGrid {
560
621
  protected readonly allSelected: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<boolean>;
561
622
  protected readonly someSelected: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<boolean>;
562
623
  protected readonly footerContext: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<DataGridFooterContext>;
624
+ /** A reduction of one column over every row that passes the filter (not only the current page), for a footer total. */
625
+ private footerAggregate;
563
626
  protected readonly exportColumns: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<DataGridColumn[]>;
564
627
  protected readonly exportEntries: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<DataGridEntry[]>;
565
628
  protected readonly hasExportButtons: import("@angular/core/types/_chrome_dev_tools_performance-chunk").Signal<boolean>;
566
629
  constructor();
567
630
  private announce;
568
631
  protected ariaSortFor(column: DataGridColumn): DataGridSortDirection | null;
569
- protected toggleSort(column: DataGridColumn): void;
570
- protected onFilterInput(event: Event): void;
632
+ /** 1 for the primary key, 2… for `thenBy`, only while more than one key is in force. */
633
+ protected sortOrderFor(column: DataGridColumn): number | null;
634
+ protected toggleSort(column: DataGridColumn, additive?: boolean): void;
635
+ protected setFilter(value: string): void;
636
+ /** Escape in the search field clears it. */
637
+ protected onFilterKeydown(event: Event): void;
638
+ protected onFilterFieldChange(event: Event): void;
571
639
  protected isSelected(id: string): boolean;
572
640
  private setSelected;
573
641
  protected onRowSelectClick(index: number, event: Event): void;
@@ -595,6 +663,9 @@ export declare class DataGrid {
595
663
  /** One cell for an export: typed values stay typed, everything else is the text the grid shows. */
596
664
  private exportCell;
597
665
  private hasUtcColumn;
666
+ private buildExportTable;
667
+ /** Copy the export (what a download would hold) to the clipboard as tab-separated text. `copyHandler` may return false to take over. */
668
+ protected runCopy(): Promise<void>;
598
669
  protected runExport(format: ExportFormat): void;
599
670
  /** Files dropped on an editable file cell: the same report as the file input. The grid uploads nothing. */
600
671
  protected onFileDragOver(column: DataGridColumn, event: Event): void;
@@ -606,6 +677,10 @@ export declare class DataGrid {
606
677
  protected startEdit(entry: DataGridEntry, column: DataGridColumn): void;
607
678
  private parseDraft;
608
679
  /** Two link values with the same address and label are the same edit. */
680
+ /** Accepted cell edits, for Ctrl/Cmd+Z. The consumer owns the data, so an undo is reported through the `cellEdit` output like any edit. */
681
+ private history;
682
+ /** Put an earlier cell value back, or re-apply it, through `cellEdit`. */
683
+ private stepHistory;
609
684
  private isStructurallyEqual;
610
685
  /** Validate and report one new value for a cell. Returns false (and keeps editing, if the editor is open) when it is refused. */
611
686
  protected commitValue(entry: DataGridEntry, column: DataGridColumn, value: unknown): boolean;
@@ -633,6 +708,7 @@ export declare class DataGrid {
633
708
  protected onGridClick(event: Event): void;
634
709
  /** A double click on an editable body cell starts editing it. */
635
710
  protected onGridDblclick(event: Event): void;
711
+ private typeahead;
636
712
  protected onGridKeydown(event: Event): void;
637
713
  private restoreView;
638
714
  protected rowLabelOf(entry: DataGridEntry): string;
@@ -674,6 +750,31 @@ export declare class DataGrid {
674
750
  "required": false;
675
751
  "isSignal": true;
676
752
  };
753
+ "emptyValue": {
754
+ "alias": "emptyValue";
755
+ "required": false;
756
+ "isSignal": true;
757
+ };
758
+ "warnMissingLabels": {
759
+ "alias": "warnMissingLabels";
760
+ "required": false;
761
+ "isSignal": true;
762
+ };
763
+ "nulls": {
764
+ "alias": "nulls";
765
+ "required": false;
766
+ "isSignal": true;
767
+ };
768
+ "movableColumns": {
769
+ "alias": "movableColumns";
770
+ "required": false;
771
+ "isSignal": true;
772
+ };
773
+ "rowFilter": {
774
+ "alias": "rowFilter";
775
+ "required": false;
776
+ "isSignal": true;
777
+ };
677
778
  "rowId": {
678
779
  "alias": "rowId";
679
780
  "required": false;
@@ -759,6 +860,11 @@ export declare class DataGrid {
759
860
  "required": false;
760
861
  "isSignal": true;
761
862
  };
863
+ "copyHandler": {
864
+ "alias": "copyHandler";
865
+ "required": false;
866
+ "isSignal": true;
867
+ };
762
868
  "virtualize": {
763
869
  "alias": "virtualize";
764
870
  "required": false;
@@ -779,6 +885,16 @@ export declare class DataGrid {
779
885
  "required": false;
780
886
  "isSignal": true;
781
887
  };
888
+ "filterField": {
889
+ "alias": "filterField";
890
+ "required": false;
891
+ "isSignal": true;
892
+ };
893
+ "thenBy": {
894
+ "alias": "thenBy";
895
+ "required": false;
896
+ "isSignal": true;
897
+ };
782
898
  "sort": {
783
899
  "alias": "sort";
784
900
  "required": false;
@@ -797,6 +913,8 @@ export declare class DataGrid {
797
913
  }, {
798
914
  "selected": "selectedChange";
799
915
  "filter": "filterChange";
916
+ "filterField": "filterFieldChange";
917
+ "thenBy": "thenByChange";
800
918
  "sort": "sortChange";
801
919
  "columnOrder": "columnOrderChange";
802
920
  "page": "pageChange";
@@ -805,7 +923,141 @@ export declare class DataGrid {
805
923
  "fileRemove": "fileRemove";
806
924
  "rowActivate": "rowActivate";
807
925
  "exportFile": "exportFile";
926
+ "copy": "copy";
808
927
  }, never, never, true, never>;
809
928
  }
810
- export type { DataGridAggregate, DataGridCellContext, DataGridCellEdit, DataGridCellType, DataGridColumn, DataGridEntry, DataGridExport, DataGridFile, DataGridFooterContext, DataGridFormulaContext, DataGridFormulaResult, DataGridLabels, DataGridLink, DataGridOption, DataGridPerson, DataGridPersonEditorContext, DataGridRow, DataGridSelectionMode, DataGridSort, DataGridSortDirection, DataGridZonedTime, DelimitedOptions, ExportFormat, ExportFormula, ExportTable, XlsxOptions };
929
+ /**
930
+ * Search matching shared by the data grid, kanban board, Gantt chart and calendar: pure, so it is unit-tested without a browser.
931
+ *
932
+ * A query is split on whitespace into terms; every term must appear (AND), in any order, ignoring case and diacritics
933
+ * ("cafe" finds "Café"). An empty query matches everything.
934
+ */
935
+ /** Lower-case and strip combining marks, so matching ignores case and diacritics. */
936
+ export declare function foldText(text: string): string;
937
+ /** The terms of a query, folded; empty when the query is blank. */
938
+ export declare function searchTerms(query: string): string[];
939
+ /** True when every term of `query` appears in `text`. */
940
+ export declare function matchesSearch(text: string, query: string): boolean;
941
+ type SearchSegment = {
942
+ text: string;
943
+ match: boolean;
944
+ };
945
+ /**
946
+ * `text` cut into runs, marking the parts any term matches (for `<mark>`). Folding can change a string's length (a precomposed "é"
947
+ * is one character, its folded form too, but a ligature may not be), so matching works on a per-character fold and falls back to
948
+ * one unmarked segment if the two ever disagree.
949
+ */
950
+ export declare function highlightSegments(text: string, query: string): SearchSegment[];
951
+ export declare const TYPEAHEAD_RESET_MS = 700;
952
+ type TypeaheadState = {
953
+ prefix: string;
954
+ at: number;
955
+ };
956
+ /** Whether a key press is a type-ahead character: one printable character, no Ctrl, Alt or Meta. */
957
+ export declare function isTypeaheadKey(event: {
958
+ key: string;
959
+ ctrlKey?: boolean;
960
+ altKey?: boolean;
961
+ metaKey?: boolean;
962
+ }): boolean;
963
+ /** The prefix after `key` is pressed at time `now`: it grows while presses are within `resetMs` of each other, else starts over. */
964
+ export declare function nextTypeaheadState(previous: TypeaheadState, key: string, now: number, resetMs?: number): TypeaheadState;
965
+ /**
966
+ * The index of the row to move to, or -1. Searches from the row after `from` and wraps. A prefix of one repeated letter ("ss") is
967
+ * treated as that single letter, so pressing it again steps through the rows starting with it.
968
+ */
969
+ export declare function findTypeaheadMatch(labels: readonly string[], from: number, prefix: string): number;
970
+ /**
971
+ * Undo / redo for typed-field edits: pure, so it is unit-tested without a browser. The components own nothing but the stacks:
972
+ * the consumer owns the data, so an undo is reported the same way an edit is — through `onFieldEdit`, with the earlier value.
973
+ */
974
+ /** One accepted edit: which record and field, the value it took and the value it replaced. */
975
+ type EditRecord = {
976
+ ownerId: string;
977
+ fieldId: string;
978
+ value: unknown;
979
+ previous: unknown;
980
+ };
981
+ type EditHistory = {
982
+ undo: readonly EditRecord[];
983
+ redo: readonly EditRecord[];
984
+ };
985
+ export declare const EMPTY_HISTORY: EditHistory;
986
+ /** Most steps kept; the oldest fall off. */
987
+ export declare const HISTORY_LIMIT = 100;
988
+ /** A new edit goes on the undo stack and ends any redo chain. */
989
+ export declare function recordEdit(history: EditHistory, record: EditRecord, limit?: number): EditHistory;
990
+ /** Step back: the record to reverse (apply `previous`), and the history with it moved to the redo stack. */
991
+ export declare function undoEdit(history: EditHistory): {
992
+ history: EditHistory;
993
+ record: EditRecord | undefined;
994
+ };
995
+ /** Step forward: the record to re-apply (apply `value`), and the history with it moved back to the undo stack. */
996
+ export declare function redoEdit(history: EditHistory): {
997
+ history: EditHistory;
998
+ record: EditRecord | undefined;
999
+ };
1000
+ /** Whether a key press is Undo (Ctrl/Cmd+Z) or Redo (Ctrl/Cmd+Shift+Z, or Ctrl+Y), or neither. */
1001
+ export declare function historyKey(event: {
1002
+ key: string;
1003
+ ctrlKey?: boolean;
1004
+ metaKey?: boolean;
1005
+ shiftKey?: boolean;
1006
+ altKey?: boolean;
1007
+ }): "undo" | "redo" | null;
1008
+ /**
1009
+ * Which `labels` a grid needs, by what it renders — so an app can check that it has supplied every string for its locale, and a
1010
+ * grid can say, in development, which control it is about to leave unnamed. Lily ships no English: a missing label is a control with
1011
+ * no name, or an announcement that is never made, never English text. Pure, so it is unit-tested on its own.
1012
+ */
1013
+ /** What the grid is showing, as far as labels are concerned. */
1014
+ type LabelFeatures = {
1015
+ /** `selectionMode` is not `none`. */
1016
+ selection?: boolean;
1017
+ /** `pageSize` is set. */
1018
+ pagination?: boolean;
1019
+ /** Some column is `hidable`. */
1020
+ hidableColumns?: boolean;
1021
+ /** Some column is `resizable`. */
1022
+ resizableColumns?: boolean;
1023
+ /** Some column is editable (`onCellEdit` is set). */
1024
+ editing?: boolean;
1025
+ /** Some column is `sortable`. */
1026
+ sorting?: boolean;
1027
+ /** The search field is wanted (the field itself is gated by `labels.search`). */
1028
+ search?: boolean;
1029
+ /** Export or copy buttons are wanted. */
1030
+ exporting?: boolean;
1031
+ };
1032
+ /** Labels that **name a control**: without one the control is unnamed to a screen reader (or not rendered at all). */
1033
+ export declare const CONTROL_LABELS: {
1034
+ readonly selection: readonly ["selectAll", "selectionColumn", "selectRow"];
1035
+ readonly pagination: readonly ["previousPage", "nextPage", "pageStatus"];
1036
+ readonly hidableColumns: readonly ["columnVisibility", "columnVisibilityOption"];
1037
+ readonly resizableColumns: readonly ["resizeHandle"];
1038
+ readonly editing: readonly ["editCell", "cellEditor"];
1039
+ readonly search: readonly ["search"];
1040
+ readonly exporting: readonly ["export"];
1041
+ };
1042
+ /** Labels that make an **announcement** through the live region: without one the change is silent. */
1043
+ export declare const ANNOUNCEMENT_LABELS: {
1044
+ readonly sorting: readonly ["sortAnnouncement"];
1045
+ readonly search: readonly ["filterAnnouncement"];
1046
+ readonly selection: readonly ["selectionAnnouncement"];
1047
+ readonly pagination: readonly ["pageAnnouncement"];
1048
+ readonly editing: readonly ["editAnnouncement", "editCancelAnnouncement", "editError", "undoAnnouncement", "redoAnnouncement"];
1049
+ readonly exporting: readonly ["exportAnnouncement", "copyAnnouncement", "copyFailed"];
1050
+ };
1051
+ type LabelKind = "control" | "announcement";
1052
+ /** Every label key the features in use call for, with its kind. */
1053
+ export declare function requiredLabels(features: LabelFeatures): {
1054
+ key: string;
1055
+ kind: LabelKind;
1056
+ }[];
1057
+ /** The required labels that are absent (`undefined`, `null` or an empty string) from `labels`. */
1058
+ export declare function missingLabels(features: LabelFeatures, labels: Record<string, unknown> | undefined): {
1059
+ key: string;
1060
+ kind: LabelKind;
1061
+ }[];
1062
+ export type { DataGridAggregate, DataGridCellContext, DataGridCellEdit, DataGridCellType, DataGridColumn, DataGridEntry, DataGridExport, DataGridFile, DataGridFooterContext, DataGridFormulaContext, DataGridFormulaResult, DataGridLabels, DataGridLink, DataGridOption, DataGridPerson, DataGridPersonEditorContext, DataGridRow, DataGridSelectionMode, DataGridSort, DataGridSortDirection, DataGridZonedTime, DelimitedOptions, EditHistory, EditRecord, ExportFormat, ExportFormula, ExportTable, LabelFeatures, LabelKind, SearchSegment, TypeaheadState, XlsxOptions };
811
1063
  //# sourceMappingURL=lilydesignsystem-angular-data-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lilydesignsystem-angular-data-grid.d.ts","names":[],"sources":["../../export-data.ts","../../cell-types.ts","../../data-grid.component.ts"],"mappings":"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"}
1
+ {"version":3,"file":"lilydesignsystem-angular-data-grid.d.ts","names":[],"sources":["../../export-data.ts","../../cell-types.ts","../../data-grid.component.ts","../../search-text.ts","../../typeahead.ts","../../edit-history.ts","../../label-coverage.ts"],"mappings":"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"}