@ds-mo/ui 14.9.0 → 14.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.
@@ -1 +1 @@
1
- {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.9.0","components":72,"digest":"1ca8377391f4827408635f876e002129658e4574004d636ecc5da5981139d48f","completedAt":"2026-08-21T18:00:05.482Z"}
1
+ {"schemaVersion":1,"package":"@ds-mo/ui","version":"14.11.0","components":72,"digest":"e51394c38b3c1bd8680c2877e7ec4412284b3b50af7760c0ff3d90ec520d37df","completedAt":"2026-08-21T20:51:50.923Z"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.9.0",
4
+ "packageVersion": "14.11.0",
5
5
  "kind": "patterns",
6
6
  "entries": [
7
7
  {
package/dist/agent.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
3
  "package": "@ds-mo/ui",
4
- "packageVersion": "14.9.0",
4
+ "packageVersion": "14.11.0",
5
5
  "kind": "components",
6
6
  "entries": [
7
7
  {
@@ -8631,21 +8631,21 @@
8631
8631
  "tag": "ds-table",
8632
8632
  "name": "table",
8633
8633
  "title": "Table",
8634
- "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, and top-level pagination.",
8634
+ "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, top-level pagination, and optional row virtualization.",
8635
8635
  "intentStatus": "complete",
8636
8636
  "intent": {
8637
8637
  "audience": "general",
8638
8638
  "status": "stable",
8639
- "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, and top-level pagination.",
8639
+ "summary": "Semantic, controlled data table with durable visual primitives for cell geometry, grouping, sorting, multi-selection, sticky overflow, incremental loading, top-level pagination, and optional row virtualization.",
8640
8640
  "useWhen": [
8641
8641
  "A structured dataset needs native row and column relationships, optional one-level grouping, or comparable values across records.",
8642
- "An application needs controlled sorting, loaded-row selection, infinite loading, pagination, or opted-in table-owned data-mode and column controls while retaining ownership of the data query, catalog, and persistence.",
8642
+ "An application needs controlled sorting, loaded-row selection, infinite loading, pagination, virtual row recycling, or opted-in table-owned data-mode and column controls while retaining ownership of the data query, catalog, and persistence.",
8643
8643
  "A product table needs a token-backed recipe whose individual header, group, row, cell, selection, state, and load-more layers remain easy to restyle."
8644
8644
  ],
8645
8645
  "avoidWhen": [
8646
8646
  "Content is primarily editorial prose; use semantic product-owned markup with the prose recipe instead.",
8647
8647
  "A small label/value set reads more clearly as a list, description list, or card.",
8648
- "The interface requires tree-grid behavior, nested grouping, inline cell editing, row reordering, multiple pinned columns per edge, or virtualization; those remain outside the contract.",
8648
+ "The interface requires tree-grid behavior, nested grouping, inline cell editing, row reordering, multiple pinned columns per edge, or column virtualization; those remain outside the contract.",
8649
8649
  "The application expects the component to fetch, slice pages, sort, group, or mutate records internally."
8650
8650
  ],
8651
8651
  "commonlyComposedWith": [
@@ -8667,23 +8667,23 @@
8667
8667
  ],
8668
8668
  "accessibility": [
8669
8669
  "The rendered structure uses a native table, caption, column headers, row groups, and data cells; keep the caption non-empty. The native caption remains visually hidden as the table's accessible name. When caption visibility is enabled, a 48px header bar renders as component chrome outside the horizontal scrollport. It defaults to a presentational caption title that does not duplicate the accessible name. Application-owned labeled controls supplied through the single named header slot replace that fallback and occupy the leading content width inside the component-owned 8px inset. When columnCustomizer is enabled, the table adds a trailing Preferences control named Customize table; otherwise the header slot receives the complete content width.",
8670
- "The data-mode switcher is the shared Menu of the table's supported infinite and pagination modes. It is the final caption-bar action; when the column customizer is also present, a decorative vertical divider separates the two controls. dataMode remains controlled, and the application responds to change intent by supplying the matching records, pagination state, loading behavior, and query consequences. Escape, dismissal, and selection return focus to the trigger.",
8670
+ "The data-mode switcher is the shared Menu of the table's supported infinite, pagination, and virtual modes. The switcher is the final caption-bar action; when the column customizer is also present, a decorative vertical divider separates the two controls. dataMode remains controlled, and the application responds to change intent by supplying the matching records, pagination state, loading behavior, and query consequences. Escape, dismissal, and selection return focus to the trigger.",
8671
8671
  "The column customizer is the shared Menu of switch rows, not a table-owned dialog. Data columns can be shown, hidden, and reordered. Locked action columns stay visible, inactive, and last. The selection checkbox is not a column and never appears. The last remaining visible data column cannot be hidden, but it stays focusable so it can still be reordered. Escape and outside click restore focus to the trigger. Persistence stays in the application.",
8672
8672
  "Sorting controls remain buttons inside column headers and expose the table's one controlled member-row sort through aria-sort. Grouping never adds a second sort indicator or header control; the application supplies groups in its fixed product order. Optional column help underlines the header label with the shared dotted decoration and shows ds-tooltip from that label; it does not add a second header control or replace the column name.",
8673
- "Selection controls expose checkbox semantics and explicit row names; select-all affects selectable loaded rows only and preserves selected identities outside the loaded window. When grouping is active with multi-selection, each group section header also exposes a checkbox that selects or clears that group's selectable loaded rows.",
8673
+ "Selection controls expose checkbox semantics and explicit row names; select-all affects selectable loaded rows only and preserves selected identities outside the loaded window. In virtual mode the supplied in-memory rows are that loaded set, including rows whose DOM is recycled. When grouping is active with multi-selection, each group section header also exposes a checkbox that selects or clears that group's selectable loaded rows.",
8674
8674
  "Interactive rows are focusable as native rows, activate with Enter or Space, and do not steal activation from their nested selection, action, overflow-menu, or primary-text link controls.",
8675
8675
  "Scrollable table regions become keyboard focusable and named only when overflow exists.",
8676
8676
  "Incremental loading, newly appended row counts, failures, and end-of-results transitions are announced through a polite status region without replacing visible state. In grouped tables, announcements name the independently loading group.",
8677
- "Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Pagination mode instead renders a named Pagination control with a compact selected-size total, vertical divider, and page position; range changes are announced independently with complete phrasing. While focus is anywhere inside a paginated table, unmodified Left and Right Arrow request the adjacent page; editable fields, choice controls, sliders, and modified key combinations retain their own keyboard behavior. The footer slot can replace summary copy, while footer-leading and footer-trailing remain available in the same compact-bar anatomy."
8677
+ "Static and infinite tables may show an optional result summary footer when displayedCount and totalCount are finite. Virtual mode shows a total-only summary and ignores displayedCount. Pagination mode instead renders a named Pagination control with a compact selected-size total, vertical divider, and page position; range changes are announced independently with complete phrasing. While focus is anywhere inside a paginated table, unmodified Left and Right Arrow request the adjacent page; editable fields, choice controls, sliders, and modified key combinations retain their own keyboard behavior. The footer slot can replace summary copy, while footer-leading and footer-trailing remain available in the same compact-bar anatomy."
8678
8678
  ],
8679
8679
  "states": [
8680
8680
  "Columns, rows, groups, grouping, sorting, selected row IDs, collapsed group IDs, hiddenColumnIds, columnOrder, dataMode, pagination, displayedCount, totalCount, and incremental-loading state are controlled inputs. Events communicate intent and never mutate those inputs. The optional header is one composable table-local surface: the component owns its 48px chrome, 8px inset on every side, and sticky placement while the application owns the leading slot's internal layout, controls, labels, filtering behavior, and action handling. Opting into dataModeSwitcher and columnCustomizer adds their trailing Menu triggers and requires caption visibility. When both are present, Customize table precedes a decorative divider and the data-mode trigger remains the final action. The table closes one trailing Menu before opening the other. The footer retains its compact-bar composition: application-owned leading status sits left while a controlled result summary or Pagination aligns right, before any trailing action. Content-sized tables remain natural for sparse or fixed-count results. height bounds the complete header, frame, and footer composition. fitViewport reserves the compact-state composition height in the nearest vertical scrollport while growing the visible table into that reservation as surrounding page chrome collapses.",
8681
- "Grouping supports one level. The application supplies groups in a fixed product-defined order and supplies ordered member rows independently. Group section headers show an emphasized text-body-medium label followed by a middle dot and plain secondary loaded progress, for example Critical · 50 of 166. The loaded value comes from the supplied member rows and the total comes from totalCount. A localized countLabel total phrase remains available for the complete assistive progress announcement. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background. Internal sections keep their separators; a collapsed or empty section header yields its separator only when it is the table's final rendered item. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group is expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width.",
8681
+ "Grouping supports one level. The application supplies groups in a fixed product-defined order and supplies ordered member rows independently. Group section headers show an emphasized text-body-medium label followed by a middle dot and plain secondary loaded progress, for example Critical · 50 of 166. The loaded value comes from the supplied member rows and the total comes from totalCount. A localized countLabel total phrase remains available for the complete assistive progress announcement. Virtual mode shows totals only, for example Critical · 166, because there is no loaded window. Groups may declare an optional intent (brand, neutral, negative, warning, caution, positive) that paints an LTR gradient from the faint intent surface at the label edge into faint neutral at the trailing edge, plus a bold intent title color. Neutral groups remain solid faint neutral. Section separators are painted inside that viewport-width surface so translucent border tokens composite with each intent background. Internal sections keep their separators; a collapsed or empty section header yields its separator only when it is the table's final rendered item. A trailing visually neutral icon-only ButtonUnfilled uses the 24px md double-inset action recipe and toggles controlled collapsedGroupIds, showing ChevronUp while expanded and ChevronDown while collapsed. While any group is expanded, a ChevronDownUp action uses the xs sort-control recipe widened to a table-owned 24px lane and collapses every group. It appears at the inline-end edge of the trailing column declared with kind action when one exists; otherwise a button-hugging 24px by 16px medium-elevation surface floats at the visible scrollport's header edge so the action remains reachable while member columns scroll beneath it. With stickyHeader enabled, each contained section uses its one real section row as a native sticky header inside its real row-group boundary. The browser therefore owns pinning, push-off, scrolling, and resize layout in one pass without a duplicated lane, active-section state, transforms, or scroll-time geometry. Shared grid tracks retain exact header and member-cell alignment. The section surface also stays pinned to the visible horizontal scrollport and spans the smaller of the visible viewport or table width. Virtual grouped tables flatten headers and members into that same scrollport; expanding a section never introduces an inner scroller.",
8682
8682
  "When columnCustomizer is false, columns render in catalog order. When it is true, columns remains the catalog: hiddenColumnIds and columnOrder control visibility and data-column sequence, action columns stay last and cannot be hidden, and dsColumnsConfigChange reports the next hidden ids and data-column order without mutating those inputs. The customizer Menu live-applies show/hide and data-column reorder. The table does not persist preferences.",
8683
8683
  "An active member sort toggles only between ascending and descending; activating a different sortable label moves the one sorting state to that key. Applications may still clear the controlled sort state explicitly. Grouping does not introduce another interactive direction.",
8684
8684
  "Compound headers can expose multiple related labels with independent sort keys. Each label owns only its content-width interaction target while the active direction remains in the column's alignment-aware sort lane.",
8685
8685
  "Initial loading defaults to ten row-shaped skeletons and preserves row dividers, column dividers, selection lanes, and sticky boundaries. A selectable table renders a checkbox-sized control skeleton in its selection lane so loading geometry matches the real checkbox instead of a generic icon. Each column may declare representative text, multiline text, image, Tag, icon, icon-and-text, action, or intentionally blank loading geometry; the table applies the matching resolved-cell padding and track anatomy so the placeholder row has the same height and rhythm as its data row. Columns without a declaration use one text line, while action columns infer an icon action placeholder. Empty and initial error replace only the body with ds-empty-state, using Inbox or ErrorTriangle plus the table heading and body copy. In height-bounded and maxHeight tables that region fills the remaining viewport below the column header; content-sized tables keep a minimum empty-region height. Empty, initial error, load-more, retry, loading-more, and terminal bands remain fixed to the visible table width while data columns scroll horizontally beneath them. Incremental loading retains existing rows and supports automatic sentinel, manual load-more, retry, and terminal states. When grouping is active, each expanded group owns its load band at the end of its member rows; internal group load bands keep their bottom divider, while a terminal group load band yields it to the table edge or footer. The global bottom-of-table loader is not rendered.",
8686
- "dataMode selects the top-level window: infinite appends ungrouped rows through dsLoadMore when hasMore is true, and pagination renders the controlled page supplied by the application and emits dsPaginationChange. Infinite mode also covers fixed result sets by leaving hasMore false. In a grouped paginated table, pagination counts and windows only parent groups; each expanded parent can still append its own members through dsGroupLoadMore. The application owns requests, cancellation, cursors, deduplication, slicing, and query identity.",
8686
+ "dataMode selects the top-level window: infinite appends ungrouped rows through dsLoadMore when hasMore is true, pagination renders the controlled page supplied by the application and emits dsPaginationChange, and virtual recycles row DOM over the full in-memory rows or groups the application already supplied. Infinite mode also covers fixed result sets by leaving hasMore false. In a grouped paginated table, pagination counts and windows only parent groups; each expanded parent can still append its own members through dsGroupLoadMore. Virtual mode does not fetch, ignores hasMore and load bands, and requires a bounded viewport (height, maxHeight, or fitViewport with a definite block size). Without that height it fails visibly instead of mounting every row. The application owns requests, cancellation, cursors, deduplication, slicing, and query identity.",
8687
8687
  "When pagination enables Fit to page on a bounded table, the table proposes the number of complete top-level rows that fit below its column header. Grouped tables count group headers only; member rows never affect capacity. Selecting Fit captures that numeric snapshot. A changed fitIdentity requests one fresh snapshot for a new query shape, while viewport resizing alone does not change the active controlled page size.",
8688
8688
  "Rows opt into complete-row activation with interactive and emit dsRowActivate without owning navigation. Selection paints through the shared selected ::before layer; interactive hover and press paint through the shared ::after layer.",
8689
8689
  "Row selection owns the single sticky start lane. One explicitly sized application column can own the sticky end lane, or the start lane when selection is absent. Each sticky boundary owns one fixed divider and a row-clipped directional shadow that paints into the adjacent scrolling columns only while more inline content remains beyond that edge.",
@@ -8703,6 +8703,7 @@
8703
8703
  "frameworkCaveats": {
8704
8704
  "customElements": [
8705
8705
  "Assign columns, rows, groups, grouping, sort, selectedRowIds, collapsedGroupIds, hiddenColumnIds, columnOrder, pagination, displayedCount, and totalCount through JavaScript properties rather than HTML attribute strings.",
8706
+ "dataMode=virtual recycles row DOM over the supplied in-memory rows or groups and requires height, maxHeight, or fitViewport. It does not fetch or paginate.",
8706
8707
  "When an action cell supplies items, the table opens one shared ds-menu from the Ellipses trigger; dsCellAction fires for the selected command, not for opening or closing the menu.",
8707
8708
  "When columnCustomizer is enabled, the Preferences trigger opens the same shared ds-menu of reorderable switch rows; toggling a switch or reordering a row emits dsColumnsConfigChange and does not close the menu.",
8708
8709
  "Overflowing text tracks present one shared ds-tooltip with the omitted value. Unlimited wrapping tracks and disabled rows never show it. The tooltip is not linked with aria-describedby because the full string remains in the cell.",
@@ -8906,6 +8907,10 @@
8906
8907
  "type": "string",
8907
8908
  "required": false
8908
8909
  },
8910
+ "resultTotalSummaryLabel": {
8911
+ "type": "string",
8912
+ "required": false
8913
+ },
8909
8914
  "retryLabel": {
8910
8915
  "type": "string",
8911
8916
  "required": false
@@ -8953,6 +8958,10 @@
8953
8958
  "viewportInsetBlockStart": {
8954
8959
  "type": "string | number",
8955
8960
  "required": false
8961
+ },
8962
+ "virtualModeLabel": {
8963
+ "type": "string",
8964
+ "required": false
8956
8965
  }
8957
8966
  },
8958
8967
  "events": [
@@ -27,7 +27,7 @@ export declare class DsTable {
27
27
  dsDataModeChange: EventEmitter<DsTableCustomEvent<IDsTableTableDataModeChangeDetail>>;
28
28
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
29
29
  static ɵfac: i0.ɵɵFactoryDeclaration<DsTable, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columnCustomizer": { "alias": "columnCustomizer"; "required": false; }; "columnOrder": { "alias": "columnOrder"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "dataModeMenuLabel": { "alias": "dataModeMenuLabel"; "required": false; }; "dataModeSwitcher": { "alias": "dataModeSwitcher"; "required": false; }; "dataModeSwitcherLabel": { "alias": "dataModeSwitcherLabel"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "groupEndOfResultsLabel": { "alias": "groupEndOfResultsLabel"; "required": false; }; "groupLoadMoreAriaLabel": { "alias": "groupLoadMoreAriaLabel"; "required": false; }; "groupLoadMoreLabel": { "alias": "groupLoadMoreLabel"; "required": false; }; "groupLoadingMoreLabel": { "alias": "groupLoadingMoreLabel"; "required": false; }; "groupRetryLabel": { "alias": "groupRetryLabel"; "required": false; }; "groupRowsLoadedLabel": { "alias": "groupRowsLoadedLabel"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "hiddenColumnIds": { "alias": "hiddenColumnIds"; "required": false; }; "infiniteModeLabel": { "alias": "infiniteModeLabel"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationModeLabel": { "alias": "paginationModeLabel"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsPaginationChange": "dsPaginationChange"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; "dsColumnsConfigChange": "dsColumnsConfigChange"; "dsDataModeChange": "dsDataModeChange"; }, never, ["*"], true, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<DsTable, "ds-table", never, { "caption": { "alias": "caption"; "required": true; }; "captionVisibility": { "alias": "captionVisibility"; "required": false; }; "collapsedGroupIds": { "alias": "collapsedGroupIds"; "required": false; }; "columnCustomizer": { "alias": "columnCustomizer"; "required": false; }; "columnOrder": { "alias": "columnOrder"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dataMode": { "alias": "dataMode"; "required": false; }; "dataModeMenuLabel": { "alias": "dataModeMenuLabel"; "required": false; }; "dataModeSwitcher": { "alias": "dataModeSwitcher"; "required": false; }; "dataModeSwitcherLabel": { "alias": "dataModeSwitcherLabel"; "required": false; }; "displayedCount": { "alias": "displayedCount"; "required": false; }; "emptyBody": { "alias": "emptyBody"; "required": false; }; "emptyCellLabel": { "alias": "emptyCellLabel"; "required": false; }; "emptyHeading": { "alias": "emptyHeading"; "required": false; }; "endOfResultsLabel": { "alias": "endOfResultsLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorBody": { "alias": "errorBody"; "required": false; }; "errorHeading": { "alias": "errorHeading"; "required": false; }; "fitViewport": { "alias": "fitViewport"; "required": false; }; "groupEndOfResultsLabel": { "alias": "groupEndOfResultsLabel"; "required": false; }; "groupLoadMoreAriaLabel": { "alias": "groupLoadMoreAriaLabel"; "required": false; }; "groupLoadMoreLabel": { "alias": "groupLoadMoreLabel"; "required": false; }; "groupLoadingMoreLabel": { "alias": "groupLoadingMoreLabel"; "required": false; }; "groupRetryLabel": { "alias": "groupRetryLabel"; "required": false; }; "groupRowsLoadedLabel": { "alias": "groupRowsLoadedLabel"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "hasMore": { "alias": "hasMore"; "required": false; }; "height": { "alias": "height"; "required": false; }; "hiddenColumnIds": { "alias": "hiddenColumnIds"; "required": false; }; "infiniteModeLabel": { "alias": "infiniteModeLabel"; "required": false; }; "loadIdentity": { "alias": "loadIdentity"; "required": false; }; "loadMoreError": { "alias": "loadMoreError"; "required": false; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "loadingMore": { "alias": "loadingMore"; "required": false; }; "loadingMoreLabel": { "alias": "loadingMoreLabel"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "paginationModeLabel": { "alias": "paginationModeLabel"; "required": false; }; "resultSummaryLabel": { "alias": "resultSummaryLabel"; "required": false; }; "resultTotalSummaryLabel": { "alias": "resultTotalSummaryLabel"; "required": false; }; "retryLabel": { "alias": "retryLabel"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "rowsLoadedLabel": { "alias": "rowsLoadedLabel"; "required": false; }; "scrollLabel": { "alias": "scrollLabel"; "required": false; }; "selectedRowIds": { "alias": "selectedRowIds"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "totalCount": { "alias": "totalCount"; "required": false; }; "viewportInsetBlockEnd": { "alias": "viewportInsetBlockEnd"; "required": false; }; "viewportInsetBlockStart": { "alias": "viewportInsetBlockStart"; "required": false; }; "virtualModeLabel": { "alias": "virtualModeLabel"; "required": false; }; }, { "dsSortChange": "dsSortChange"; "dsGroupCollapseChange": "dsGroupCollapseChange"; "dsSelectionChange": "dsSelectionChange"; "dsLoadMore": "dsLoadMore"; "dsGroupLoadMore": "dsGroupLoadMore"; "dsPaginationChange": "dsPaginationChange"; "dsCellAction": "dsCellAction"; "dsRowActivate": "dsRowActivate"; "dsColumnsConfigChange": "dsColumnsConfigChange"; "dsDataModeChange": "dsDataModeChange"; }, never, ["*"], true, never>;
31
31
  }
32
32
  export declare interface DsTable extends Components.DsTable {
33
33
  dsSortChange: EventEmitter<DsTableCustomEvent<IDsTableTableSortChangeDetail>>;
@@ -27,12 +27,12 @@ let DsTable = class DsTable {
27
27
  this.el = r.nativeElement;
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: DsTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columnCustomizer: "columnCustomizer", columnOrder: "columnOrder", columns: "columns", dataMode: "dataMode", dataModeMenuLabel: "dataModeMenuLabel", dataModeSwitcher: "dataModeSwitcher", dataModeSwitcherLabel: "dataModeSwitcherLabel", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", hiddenColumnIds: "hiddenColumnIds", infiniteModeLabel: "infiniteModeLabel", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", pagination: "pagination", paginationModeLabel: "paginationModeLabel", resultSummaryLabel: "resultSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart" }, outputs: { dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsPaginationChange: "dsPaginationChange", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate", dsColumnsConfigChange: "dsColumnsConfigChange", dsDataModeChange: "dsDataModeChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.0", type: DsTable, isStandalone: true, selector: "ds-table", inputs: { caption: "caption", captionVisibility: "captionVisibility", collapsedGroupIds: "collapsedGroupIds", columnCustomizer: "columnCustomizer", columnOrder: "columnOrder", columns: "columns", dataMode: "dataMode", dataModeMenuLabel: "dataModeMenuLabel", dataModeSwitcher: "dataModeSwitcher", dataModeSwitcherLabel: "dataModeSwitcherLabel", displayedCount: "displayedCount", emptyBody: "emptyBody", emptyCellLabel: "emptyCellLabel", emptyHeading: "emptyHeading", endOfResultsLabel: "endOfResultsLabel", error: "error", errorBody: "errorBody", errorHeading: "errorHeading", fitViewport: "fitViewport", groupEndOfResultsLabel: "groupEndOfResultsLabel", groupLoadMoreAriaLabel: "groupLoadMoreAriaLabel", groupLoadMoreLabel: "groupLoadMoreLabel", groupLoadingMoreLabel: "groupLoadingMoreLabel", groupRetryLabel: "groupRetryLabel", groupRowsLoadedLabel: "groupRowsLoadedLabel", grouping: "grouping", groups: "groups", hasMore: "hasMore", height: "height", hiddenColumnIds: "hiddenColumnIds", infiniteModeLabel: "infiniteModeLabel", loadIdentity: "loadIdentity", loadMoreError: "loadMoreError", loadMoreLabel: "loadMoreLabel", loadMoreMode: "loadMoreMode", loadMoreThreshold: "loadMoreThreshold", loading: "loading", loadingMore: "loadingMore", loadingMoreLabel: "loadingMoreLabel", maxHeight: "maxHeight", pagination: "pagination", paginationModeLabel: "paginationModeLabel", resultSummaryLabel: "resultSummaryLabel", resultTotalSummaryLabel: "resultTotalSummaryLabel", retryLabel: "retryLabel", rows: "rows", rowsLoadedLabel: "rowsLoadedLabel", scrollLabel: "scrollLabel", selectedRowIds: "selectedRowIds", selectionMode: "selectionMode", skeletonRows: "skeletonRows", sort: "sort", stickyHeader: "stickyHeader", totalCount: "totalCount", viewportInsetBlockEnd: "viewportInsetBlockEnd", viewportInsetBlockStart: "viewportInsetBlockStart", virtualModeLabel: "virtualModeLabel" }, outputs: { dsSortChange: "dsSortChange", dsGroupCollapseChange: "dsGroupCollapseChange", dsSelectionChange: "dsSelectionChange", dsLoadMore: "dsLoadMore", dsGroupLoadMore: "dsGroupLoadMore", dsPaginationChange: "dsPaginationChange", dsCellAction: "dsCellAction", dsRowActivate: "dsRowActivate", dsColumnsConfigChange: "dsColumnsConfigChange", dsDataModeChange: "dsDataModeChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  };
32
32
  DsTable = __decorate([
33
33
  ProxyCmp({
34
34
  defineCustomElementFn: defineDsTable,
35
- inputs: ['caption', 'captionVisibility', 'collapsedGroupIds', 'columnCustomizer', 'columnOrder', 'columns', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenColumnIds', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart']
35
+ inputs: ['caption', 'captionVisibility', 'collapsedGroupIds', 'columnCustomizer', 'columnOrder', 'columns', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenColumnIds', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel']
36
36
  })
37
37
  ], DsTable);
38
38
  export { DsTable };
@@ -43,7 +43,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
43
43
  changeDetection: ChangeDetectionStrategy.OnPush,
44
44
  template: '<ng-content></ng-content>',
45
45
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
46
- inputs: [{ name: 'caption', required: true }, 'captionVisibility', 'collapsedGroupIds', 'columnCustomizer', 'columnOrder', 'columns', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenColumnIds', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart'],
46
+ inputs: [{ name: 'caption', required: true }, 'captionVisibility', 'collapsedGroupIds', 'columnCustomizer', 'columnOrder', 'columns', 'dataMode', 'dataModeMenuLabel', 'dataModeSwitcher', 'dataModeSwitcherLabel', 'displayedCount', 'emptyBody', 'emptyCellLabel', 'emptyHeading', 'endOfResultsLabel', 'error', 'errorBody', 'errorHeading', 'fitViewport', 'groupEndOfResultsLabel', 'groupLoadMoreAriaLabel', 'groupLoadMoreLabel', 'groupLoadingMoreLabel', 'groupRetryLabel', 'groupRowsLoadedLabel', 'grouping', 'groups', 'hasMore', 'height', 'hiddenColumnIds', 'infiniteModeLabel', 'loadIdentity', 'loadMoreError', 'loadMoreLabel', 'loadMoreMode', 'loadMoreThreshold', 'loading', 'loadingMore', 'loadingMoreLabel', 'maxHeight', 'pagination', 'paginationModeLabel', 'resultSummaryLabel', 'resultTotalSummaryLabel', 'retryLabel', 'rows', 'rowsLoadedLabel', 'scrollLabel', 'selectedRowIds', 'selectionMode', 'skeletonRows', 'sort', 'stickyHeader', 'totalCount', 'viewportInsetBlockEnd', 'viewportInsetBlockStart', 'virtualModeLabel'],
47
47
  outputs: ['dsSortChange', 'dsGroupCollapseChange', 'dsSelectionChange', 'dsLoadMore', 'dsGroupLoadMore', 'dsPaginationChange', 'dsCellAction', 'dsRowActivate', 'dsColumnsConfigChange', 'dsDataModeChange'],
48
48
  }]
49
49
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dsSortChange: [{