apex-grid 3.6.0 → 4.0.0-beta.2
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/CHANGELOG.md +301 -0
- package/LICENSE.md +2 -1
- package/README.md +117 -18
- package/components/cell.d.ts +13 -1
- package/components/cell.js +28 -13
- package/components/cell.js.map +1 -1
- package/components/grid.d.ts +175 -28
- package/components/grid.js +183 -63
- package/components/grid.js.map +1 -1
- package/components/header-row.d.ts +0 -6
- package/components/header-row.js +1 -19
- package/components/header-row.js.map +1 -1
- package/components/header.js +39 -2
- package/components/header.js.map +1 -1
- package/components/paginator.d.ts +20 -5
- package/components/paginator.js +54 -17
- package/components/paginator.js.map +1 -1
- package/components/row.js +149 -40
- package/components/row.js.map +1 -1
- package/components/toolbar.d.ts +5 -1
- package/components/toolbar.js +4 -1
- package/components/toolbar.js.map +1 -1
- package/components/virtualize-rows.d.ts +38 -0
- package/components/virtualize-rows.js +286 -0
- package/components/virtualize-rows.js.map +1 -0
- package/components/virtualizer.d.ts +71 -1
- package/components/virtualizer.js +105 -29
- package/components/virtualizer.js.map +1 -1
- package/controllers/dom.d.ts +10 -3
- package/controllers/dom.js +5 -5
- package/controllers/dom.js.map +1 -1
- package/controllers/navigation.d.ts +63 -0
- package/controllers/navigation.js +295 -21
- package/controllers/navigation.js.map +1 -1
- package/controllers/pagination.d.ts +7 -6
- package/controllers/pagination.js +27 -28
- package/controllers/pagination.js.map +1 -1
- package/controllers/row-pin.d.ts +6 -0
- package/controllers/row-pin.js +8 -2
- package/controllers/row-pin.js.map +1 -1
- package/controllers/row-reorder.d.ts +12 -4
- package/controllers/row-reorder.js +20 -6
- package/controllers/row-reorder.js.map +1 -1
- package/controllers/selection.d.ts +32 -10
- package/controllers/selection.js +33 -10
- package/controllers/selection.js.map +1 -1
- package/controllers/sort.js +2 -3
- package/controllers/sort.js.map +1 -1
- package/controllers/state.d.ts +18 -5
- package/controllers/state.js +53 -46
- package/controllers/state.js.map +1 -1
- package/custom-elements.json +1762 -339
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/ApexGrid.html +166 -66
- package/docs/classes/ApexGridPaginator.html +39 -8
- package/docs/classes/ApexGridToolbar.html +9 -5
- package/docs/functions/localize.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +123 -20
- package/docs/interfaces/ApexPageChangedEvent.html +3 -1
- package/docs/interfaces/BaseApexCellContext.html +18 -5
- package/docs/interfaces/BaseApexEditorContext.html +20 -5
- package/docs/interfaces/BaseFilterExpression.html +1 -1
- package/docs/interfaces/CSVExportOptions.html +1 -1
- package/docs/interfaces/DataPipelineConfiguration.html +4 -9
- package/docs/interfaces/ExportOptions.html +1 -1
- package/docs/interfaces/GridSelectionConfiguration.html +19 -4
- package/docs/interfaces/PaginationConfiguration.html +11 -4
- package/docs/interfaces/PaginationState.html +4 -2
- package/docs/media/_token-values.scss +42 -16
- package/docs/media/package.json +12 -4
- package/docs/types/DataPipelineParams.html +2 -2
- package/docs/types/PaginationMode.html +5 -4
- package/docs/variables/EN_LOCALE.html +2 -2
- package/i18n/en.d.ts +2 -0
- package/i18n/en.js +2 -0
- package/i18n/en.js.map +1 -1
- package/i18n/es.js +2 -0
- package/i18n/es.js.map +1 -1
- package/ignite-ui.d.ts +1 -0
- package/ignite-ui.js +4 -0
- package/ignite-ui.js.map +1 -0
- package/internal/column-types.d.ts +11 -1
- package/internal/column-types.js +8 -6
- package/internal/column-types.js.map +1 -1
- package/internal/design-system.d.ts +32 -0
- package/internal/design-system.js +66 -0
- package/internal/design-system.js.map +1 -0
- package/internal/export.d.ts +6 -0
- package/internal/export.js +4 -0
- package/internal/export.js.map +1 -1
- package/internal/feature-module.d.ts +7 -0
- package/internal/feature-module.js.map +1 -1
- package/internal/flip.d.ts +28 -16
- package/internal/flip.js +42 -10
- package/internal/flip.js.map +1 -1
- package/internal/icons.d.ts +2 -16
- package/internal/icons.js +0 -8
- package/internal/icons.js.map +1 -1
- package/internal/ignite-ui.d.ts +10 -0
- package/internal/ignite-ui.js +118 -0
- package/internal/ignite-ui.js.map +1 -0
- package/internal/index.d.ts +4 -2
- package/internal/index.js +3 -2
- package/internal/index.js.map +1 -1
- package/internal/types.d.ts +75 -19
- package/internal/types.js.map +1 -1
- package/operations/filter/types.d.ts +1 -1
- package/operations/filter/types.js.map +1 -1
- package/package.json +7 -2
- package/styles/_token-blocks.css.d.ts +1 -0
- package/styles/_token-blocks.css.js +3 -0
- package/styles/_token-blocks.css.js.map +1 -0
- package/styles/_tokens.css.js +1 -1
- package/styles/_tokens.css.js.map +1 -1
- package/styles/body-cell/body-cell.css.js +1 -1
- package/styles/body-cell/body-cell.css.js.map +1 -1
- package/styles/body-cell/cell-renderers.css.js +1 -1
- package/styles/body-cell/cell-renderers.css.js.map +1 -1
- package/styles/body-row/body-row.css.js +1 -1
- package/styles/body-row/body-row.css.js.map +1 -1
- package/styles/document-tokens.css.js +1 -1
- package/styles/document-tokens.css.js.map +1 -1
- package/styles/grid/_grid.base.css.js +1 -1
- package/styles/grid/_grid.base.css.js.map +1 -1
- package/styles/grid/grid.css.js +1 -1
- package/styles/grid/grid.css.js.map +1 -1
- package/styles/group-header-row/group-header-row.css.js +1 -1
- package/styles/group-header-row/group-header-row.css.js.map +1 -1
- package/styles/header-cell/header-cell.css.js +1 -1
- package/styles/header-cell/header-cell.css.js.map +1 -1
- package/styles/header-row/header-row.base.css.js +1 -1
- package/styles/header-row/header-row.base.css.js.map +1 -1
- package/styles/ignite-ui/ignite-ui-dark.css.d.ts +1 -0
- package/styles/ignite-ui/ignite-ui-dark.css.js +3 -0
- package/styles/ignite-ui/ignite-ui-dark.css.js.map +1 -0
- package/styles/ignite-ui/ignite-ui-document.css.d.ts +1 -0
- package/styles/ignite-ui/ignite-ui-document.css.js +3 -0
- package/styles/ignite-ui/ignite-ui-document.css.js.map +1 -0
- package/styles/ignite-ui/ignite-ui.css.d.ts +1 -0
- package/styles/ignite-ui/ignite-ui.css.js +3 -0
- package/styles/ignite-ui/ignite-ui.css.js.map +1 -0
- package/styles/paginator/paginator.css.js +1 -1
- package/styles/paginator/paginator.css.js.map +1 -1
- package/styles/toolbar/toolbar.css.js +1 -1
- package/styles/toolbar/toolbar.css.js.map +1 -1
- package/tokens.css +14 -15
- package/operations/pagination.d.ts +0 -19
- package/operations/pagination.js +0 -12
- package/operations/pagination.js.map +0 -1
package/components/grid.d.ts
CHANGED
|
@@ -692,17 +692,19 @@ export interface ApexGridEventMap<T extends object> {
|
|
|
692
692
|
*
|
|
693
693
|
* The grid is styled out of the box through `--ag-*` CSS custom properties —
|
|
694
694
|
* there is no theme to import and no `configureTheme()` call. Override `--ag-*`
|
|
695
|
-
* tokens on the host (or any ancestor) to rebrand;
|
|
696
|
-
*
|
|
697
|
-
*
|
|
698
|
-
*
|
|
699
|
-
*
|
|
700
|
-
*
|
|
701
|
-
*
|
|
695
|
+
* tokens on the host (or any ancestor) to rebrand; the family `--apx-*` tokens
|
|
696
|
+
* (`--apx-accent`, `--apx-fore`, `--apx-grid`, `--apx-surface`,
|
|
697
|
+
* `--apx-font-family`, `--apx-radius-factor`) apply where no `--ag-*` token is
|
|
698
|
+
* set. To follow an Ignite UI theme, import the `apex-grid/ignite-ui` add-on.
|
|
699
|
+
* For dark mode, set the `theme="dark"` attribute on the host for the built-in
|
|
700
|
+
* slate dark palette (further `--ag-*` overrides still compose on top). Add
|
|
701
|
+
* `tinted` (e.g. `theme="tinted"` or `theme="dark tinted"`) to mix the brand
|
|
702
|
+
* into the chrome so the grid wears its brand even at rest. See the README
|
|
703
|
+
* "Getting Started" and "Theming" sections for the full example and token list.
|
|
702
704
|
*
|
|
703
705
|
* @element apex-grid
|
|
704
706
|
*
|
|
705
|
-
* @attr {string} theme - Space-separated theme flags. `dark` opts into the built-in dark palette; `tinted` mixes `--ag-brand` into the chrome surfaces. Combine as `theme="dark tinted"`.
|
|
707
|
+
* @attr {string} theme - Space-separated theme flags. `dark` opts into the built-in dark palette; `tinted` mixes `--ag-brand` into the chrome surfaces. Combine as `theme="dark tinted"`. With the `apex-grid/ignite-ui` add-on a grid without `dark` or `light` follows the Ignite UI variant, and `light` keeps it light.
|
|
706
708
|
*
|
|
707
709
|
* @fires sorting - Emitted when sorting is initiated through the UI.
|
|
708
710
|
* @fires sorted - Emitted when a sort operation initiated through the UI has completed.
|
|
@@ -727,9 +729,35 @@ export interface ApexGridEventMap<T extends object> {
|
|
|
727
729
|
* @fires treeRowExpanding - Cancellable. Emitted before a tree-row expansion change (tree mode).
|
|
728
730
|
* @fires treeRowExpanded - Emitted after a tree-row expansion change has been applied.
|
|
729
731
|
*
|
|
732
|
+
* @csspart table - The element with the `grid` (or `treegrid`) role, `aria-rowcount` and `aria-colcount`: holds the header rows, pinned rows and body.
|
|
730
733
|
* @csspart live-region - Visually-hidden ARIA live region used for screen-reader announcements.
|
|
734
|
+
* @csspart paginator-host - The `<apex-grid-paginator>` element; the grid re-exports its parts below.
|
|
735
|
+
* @csspart paginator - The paginator's root container.
|
|
736
|
+
* @csspart paginator-size - The page-size selector wrapper.
|
|
737
|
+
* @csspart paginator-info - The "1-25 of 100" summary.
|
|
738
|
+
* @csspart paginator-controls - The first/prev/next/last button cluster.
|
|
739
|
+
* @csspart paginator-page - The "page / count" label.
|
|
740
|
+
* @csspart paginator-button - Each of the first, previous, next and last buttons.
|
|
741
|
+
* @csspart paginator-first - The first page button.
|
|
742
|
+
* @csspart paginator-prev - The previous page button.
|
|
743
|
+
* @csspart paginator-next - The next page button.
|
|
744
|
+
* @csspart paginator-last - The last page button.
|
|
745
|
+
* @csspart toolbar-host - The `<apex-grid-toolbar>` element; the grid re-exports its parts below.
|
|
746
|
+
* @csspart toolbar - The toolbar's container.
|
|
747
|
+
* @csspart toolbar-search - The quick-filter input wrapper.
|
|
748
|
+
* @csspart search-field - The bordered field holding the search icon and input.
|
|
749
|
+
* @csspart search-icon - The leading search icon.
|
|
750
|
+
* @csspart search-input - The quick-filter input.
|
|
751
|
+
* @csspart toolbar-actions - The trailing actions area.
|
|
752
|
+
* @csspart toolbar-action - A host-contributed action button.
|
|
753
|
+
* @csspart export - The export menu wrapper.
|
|
754
|
+
* @csspart export-trigger - The export menu trigger button.
|
|
755
|
+
* @csspart export-icon - The download icon in the trigger.
|
|
756
|
+
* @csspart export-caret - The caret icon in the trigger.
|
|
757
|
+
* @csspart export-menu - The export dropdown menu.
|
|
758
|
+
* @csspart export-menu-item - An item in the export menu.
|
|
731
759
|
*
|
|
732
|
-
* @cssprop [--ag-brand] - Brand color for selection, focus rings, and accents.
|
|
760
|
+
* @cssprop [--ag-brand] - Brand color for selection, focus rings, and accents. Falls back to `--apx-accent`, then (with the `apex-grid/ignite-ui` add-on) the Ignite UI primary.
|
|
733
761
|
* @cssprop [--ag-brand-strong] - Brand color for hover / pressed states.
|
|
734
762
|
* @cssprop [--ag-grid-shadow] - Grid edge/shadow override. Default is a flat 1px hairline edge; set to `var(--ag-shadow-card)` (`var(--ag-dark-shadow-card)` on a dark grid) for the elevated card look, or `none` to remove it.
|
|
735
763
|
* @cssprop [--ag-grid-bg] - Host card background. Defaults to a subtle light gradient; override with a flat color (or use `theme="dark"`) for dark themes.
|
|
@@ -755,8 +783,12 @@ export interface ApexGridEventMap<T extends object> {
|
|
|
755
783
|
* @cssprop [--ag-dark-shadow-card] - Elevated card shadow for dark grids (see `--ag-grid-shadow`).
|
|
756
784
|
* @cssprop [--ag-row-h] - Row height.
|
|
757
785
|
* @cssprop [--ag-header-h] - Header height.
|
|
758
|
-
* @cssprop [--ag-radius] - Outer card corner radius.
|
|
759
|
-
* @cssprop [--ag-font] - Grid font family.
|
|
786
|
+
* @cssprop [--ag-radius] - Outer card corner radius. The radii (`--ag-radius`, `-sm`, `-xs`, not the pill) scale with `--apx-radius-factor` while it is set (single lengths only).
|
|
787
|
+
* @cssprop [--ag-font] - Grid font family. Falls back to `--apx-font-family`, then (with the `apex-grid/ignite-ui` add-on) the Ignite UI `--ig-font-family`.
|
|
788
|
+
* @cssprop [--ag-overlay] - Background of the enterprise popups (filter builder, set filter, AI panel, tool panel, status bar). Unset, each keeps its built-in colour; set it with `--ag-overlay-text`.
|
|
789
|
+
* @cssprop [--ag-overlay-text] - Text color of the enterprise popups; their lines, muted text and hover wash are mixed from the two.
|
|
790
|
+
* @cssprop [--ag-dark-overlay] - Popup background on dark grids.
|
|
791
|
+
* @cssprop [--ag-dark-overlay-text] - Popup text color on dark grids.
|
|
760
792
|
* @cssprop [--ag-fs-cell] - Cell font size.
|
|
761
793
|
*
|
|
762
794
|
* @see {@link https://github.com/apexcharts/apex-grid/blob/main/packages/core/src/styles/_tokens.scss | _tokens.scss} for the complete `--ag-*` token list.
|
|
@@ -773,15 +805,23 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
773
805
|
#private;
|
|
774
806
|
static get tagName(): string;
|
|
775
807
|
static styles: import("lit").CSSResult;
|
|
808
|
+
/**
|
|
809
|
+
* The `rowRecycling` every grid starts with: `true` unless the page global
|
|
810
|
+
* `__apexRowKeying` is `'item'`, which the test runner sets for its second
|
|
811
|
+
* suite run so every grid in it keeps record-keyed rows.
|
|
812
|
+
*
|
|
813
|
+
* @internal Test-only, for the suite-wide keying switch. Not public API.
|
|
814
|
+
*/
|
|
815
|
+
static defaultRowRecycling: boolean;
|
|
776
816
|
/**
|
|
777
817
|
* Registers `<apex-grid>` and its internal dependencies with the custom-element
|
|
778
818
|
* registry. Idempotent — safe to call more than once.
|
|
779
819
|
*
|
|
780
820
|
* @remarks
|
|
781
|
-
* Registering the element is only step one of
|
|
782
|
-
* grid. You must also
|
|
783
|
-
*
|
|
784
|
-
*
|
|
821
|
+
* Registering the element is only step one of three required for a visible, styled
|
|
822
|
+
* grid. You must also give the host a bounded height and avoid overriding
|
|
823
|
+
* `display` on the host. See the README "Getting Started" section for the
|
|
824
|
+
* full setup.
|
|
785
825
|
*/
|
|
786
826
|
static register(): void;
|
|
787
827
|
protected stateController: StateController<T>;
|
|
@@ -977,6 +1017,33 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
977
1017
|
* @attr column-separator
|
|
978
1018
|
*/
|
|
979
1019
|
columnSeparator: boolean;
|
|
1020
|
+
/**
|
|
1021
|
+
* Reuses body row elements across records. On by default: a scroll, sort or
|
|
1022
|
+
* filter re-binds the rendered rows to the records now in view instead of
|
|
1023
|
+
* building rows for them, which makes jumps and sorts cheaper on large
|
|
1024
|
+
* grids. Set to `false` (or the `row-recycling="false"` attribute) to
|
|
1025
|
+
* restore record-keyed rows, where each row element stays with its record.
|
|
1026
|
+
* `undefined` or `null` (a framework prop that was set and then dropped)
|
|
1027
|
+
* restores the default, so only `false` opts out.
|
|
1028
|
+
*
|
|
1029
|
+
* @remarks
|
|
1030
|
+
* A row element (and its cells) shows another record after a scroll or a
|
|
1031
|
+
* sort, so cell and editor templates must derive everything they render
|
|
1032
|
+
* from their context on each render, and must not keep state in the
|
|
1033
|
+
* elements they create. `ctx.row` and `ctx.parent` are row and cell
|
|
1034
|
+
* elements that may show another record later: read `ctx.data` for the
|
|
1035
|
+
* record, and do not hold `ctx.row` or `ctx.parent` across an `await`. A
|
|
1036
|
+
* template that keeps element state wraps itself in
|
|
1037
|
+
* `keyed(ctx.data, html...)` so the state never shows on the wrong record
|
|
1038
|
+
* (it is rebuilt on every rebind). Turn recycling off for templates that
|
|
1039
|
+
* must keep element state across a sort or a move, such as some
|
|
1040
|
+
* third-party widgets.
|
|
1041
|
+
*
|
|
1042
|
+
* @attr row-recycling
|
|
1043
|
+
* @default true
|
|
1044
|
+
*/
|
|
1045
|
+
get rowRecycling(): boolean;
|
|
1046
|
+
set rowRecycling(value: boolean);
|
|
980
1047
|
/**
|
|
981
1048
|
* Inline editing configuration for the grid.
|
|
982
1049
|
*
|
|
@@ -997,13 +1064,14 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
997
1064
|
* @remarks
|
|
998
1065
|
* Selection is disabled by default. Set `enabled: true` and (optionally)
|
|
999
1066
|
* `mode` (`'single' | 'multiple'`) and `showCheckboxColumn` to opt in.
|
|
1067
|
+
* `isRowSelectable` keeps chosen rows (a pinned total row) out of it.
|
|
1000
1068
|
*
|
|
1001
1069
|
* @example
|
|
1002
1070
|
* ```ts
|
|
1003
1071
|
* grid.selection = { enabled: true, mode: 'multiple', showCheckboxColumn: true };
|
|
1004
1072
|
* ```
|
|
1005
1073
|
*/
|
|
1006
|
-
selection?: GridSelectionConfiguration
|
|
1074
|
+
selection?: GridSelectionConfiguration<T>;
|
|
1007
1075
|
/**
|
|
1008
1076
|
* The currently selected rows, in insertion order.
|
|
1009
1077
|
*
|
|
@@ -1020,7 +1088,8 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1020
1088
|
* adding to it in `'multiple'` mode.
|
|
1021
1089
|
*
|
|
1022
1090
|
* @returns `true` if the selection changed, `false` if the change was
|
|
1023
|
-
* rejected by a `rowSelecting` listener
|
|
1091
|
+
* rejected by a `rowSelecting` listener, the row is not selectable
|
|
1092
|
+
* (`selection.isRowSelectable`) or selection is disabled.
|
|
1024
1093
|
*/
|
|
1025
1094
|
selectRow(row: T): Promise<boolean>;
|
|
1026
1095
|
/**
|
|
@@ -1032,8 +1101,8 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1032
1101
|
*/
|
|
1033
1102
|
toggleRowSelection(row: T): Promise<boolean>;
|
|
1034
1103
|
/**
|
|
1035
|
-
* Selects every row in the current view ({@link dataView}).
|
|
1036
|
-
* `'single'` selection mode.
|
|
1104
|
+
* Selects every selectable row in the current view ({@link dataView}).
|
|
1105
|
+
* No-op in `'single'` selection mode.
|
|
1037
1106
|
*/
|
|
1038
1107
|
selectAllRows(): Promise<boolean>;
|
|
1039
1108
|
/**
|
|
@@ -1107,6 +1176,43 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1107
1176
|
* stay `true` by default.
|
|
1108
1177
|
*/
|
|
1109
1178
|
columnMenu: boolean;
|
|
1179
|
+
/**
|
|
1180
|
+
* Whether the column header rows are shown. On by default. Set to `false`
|
|
1181
|
+
* (or the `show-header="false"` attribute) for a compact table, such as a
|
|
1182
|
+
* short dashboard tile, where the rows get the header's room.
|
|
1183
|
+
*
|
|
1184
|
+
* @remarks
|
|
1185
|
+
* Hidden headers take no space, paint nothing and take no pointer, and the
|
|
1186
|
+
* built-in header controls leave the tab order, so resizing, the column
|
|
1187
|
+
* menu, drag reorder and the filter panel are unavailable until the header
|
|
1188
|
+
* returns (an open column menu closes). A focusable control rendered by a
|
|
1189
|
+
* `headerTemplate` stays in the tab order: give it `tabindex="-1"` while
|
|
1190
|
+
* the header is hidden. The column header row
|
|
1191
|
+
* stays in the accessibility tree, so screen readers still announce the
|
|
1192
|
+
* column names, and `aria-rowcount` / `aria-rowindex` do not change. Sort,
|
|
1193
|
+
* filter, column widths and the page are kept.
|
|
1194
|
+
*
|
|
1195
|
+
* @attr show-header
|
|
1196
|
+
*/
|
|
1197
|
+
showHeader: boolean;
|
|
1198
|
+
/**
|
|
1199
|
+
* Whether this grid follows the design-system add-on (`apex-grid/ignite-ui`).
|
|
1200
|
+
* `false`, reflected as `design-system="off"`, turns the Ignite UI colours
|
|
1201
|
+
* and font off for this grid; the Ignite UI variant still picks its mode.
|
|
1202
|
+
* Without the add-on it changes nothing.
|
|
1203
|
+
*
|
|
1204
|
+
* @attr design-system
|
|
1205
|
+
*/
|
|
1206
|
+
designSystem: boolean;
|
|
1207
|
+
/**
|
|
1208
|
+
* Whether this grid reads the family `--apx-*` tokens and, with the
|
|
1209
|
+
* `apex-grid/ignite-ui` add-on, Ignite UI (the variant included). `false`,
|
|
1210
|
+
* reflected as `tokens="off"`, turns them off for the grid and the content
|
|
1211
|
+
* it renders, so it keeps the built-in look and the `--ag-*` tokens you set.
|
|
1212
|
+
*
|
|
1213
|
+
* @attr tokens
|
|
1214
|
+
*/
|
|
1215
|
+
tokens: boolean;
|
|
1110
1216
|
/**
|
|
1111
1217
|
* Column groups rendered as spanning headers above the column header row.
|
|
1112
1218
|
*
|
|
@@ -1238,7 +1344,9 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1238
1344
|
*
|
|
1239
1345
|
* @remarks
|
|
1240
1346
|
* Since the grid has virtualization, this property returns only the currently rendered
|
|
1241
|
-
* chunk of elements in the DOM.
|
|
1347
|
+
* chunk of elements in the DOM. With `rowRecycling` on (the default) an element can
|
|
1348
|
+
* show another record after a scroll, sort or filter; read its `data` each time
|
|
1349
|
+
* rather than keeping the element as a handle to a record.
|
|
1242
1350
|
*/
|
|
1243
1351
|
get rows(): ApexGridRow<T>[];
|
|
1244
1352
|
/**
|
|
@@ -1254,23 +1362,34 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1254
1362
|
* Use this when you need to iterate the columns in the same order the grid
|
|
1255
1363
|
* actually displays them (for example to build a column chooser). Public APIs
|
|
1256
1364
|
* like {@link ApexGrid.getColumn} continue to operate on the user-supplied
|
|
1257
|
-
* {@link ApexGrid.columns} array.
|
|
1365
|
+
* {@link ApexGrid.columns} array. Each read builds a new array, so read it
|
|
1366
|
+
* once and keep the result rather than reading it inside a loop.
|
|
1258
1367
|
*/
|
|
1259
1368
|
get displayColumns(): ReadonlyArray<ColumnConfiguration<T>>;
|
|
1260
1369
|
/**
|
|
1261
|
-
* The
|
|
1370
|
+
* The post-filter, post-sort row count. With pagination enabled it counts
|
|
1371
|
+
* the rows paged through, so rows pinned to the top or bottom (they show on
|
|
1372
|
+
* every page) are left out. In `'remote'` pagination mode, the
|
|
1373
|
+
* `pagination.totalItems` you supplied (the rows the server holds for the
|
|
1374
|
+
* current filter).
|
|
1262
1375
|
*
|
|
1263
1376
|
* @remarks
|
|
1264
|
-
*
|
|
1265
|
-
*
|
|
1377
|
+
* The current page does not change it. Use {@link ApexGrid.pageItems} to read
|
|
1378
|
+
* the rows currently rendered into the body.
|
|
1266
1379
|
*/
|
|
1267
1380
|
get totalItems(): number;
|
|
1381
|
+
/**
|
|
1382
|
+
* The rows the body pages through: {@link ApexGrid.dataView} without the
|
|
1383
|
+
* pinned rows, which render in their own sticky bands on every page. The
|
|
1384
|
+
* page slice and the page count both read it, so they always agree.
|
|
1385
|
+
*/
|
|
1386
|
+
protected get bodyRows(): ReadonlyArray<T>;
|
|
1268
1387
|
/**
|
|
1269
1388
|
* The records currently rendered into the virtualized body.
|
|
1270
1389
|
*
|
|
1271
1390
|
* @remarks
|
|
1272
|
-
* Equal to {@link ApexGrid.dataView}
|
|
1273
|
-
* enabled (`'local'` mode) this is the active page slice.
|
|
1391
|
+
* Equal to {@link ApexGrid.dataView} without the pinned rows when pagination is
|
|
1392
|
+
* disabled. With pagination enabled (`'local'` mode) this is the active page slice.
|
|
1274
1393
|
*/
|
|
1275
1394
|
get pageItems(): ReadonlyArray<T>;
|
|
1276
1395
|
/**
|
|
@@ -1319,10 +1438,12 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1319
1438
|
* so with an async pipeline hook they fire after the rows changed.
|
|
1320
1439
|
*/
|
|
1321
1440
|
protected pipelineSettled(): Promise<void>;
|
|
1441
|
+
protected willUpdate(changed: Map<PropertyKey, unknown>): void;
|
|
1322
1442
|
protected updated(): void;
|
|
1323
1443
|
addEventListener<K extends keyof M, M extends ApexGridEventMap<T> & HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: M[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
1324
1444
|
removeEventListener<K extends keyof M, M extends ApexGridEventMap<T> & HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: M[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
1325
1445
|
connectedCallback(): void;
|
|
1446
|
+
disconnectedCallback(): void;
|
|
1326
1447
|
protected firstUpdated(): void;
|
|
1327
1448
|
/**
|
|
1328
1449
|
* Performs a filter operation in the grid based on the passed expression(s).
|
|
@@ -1746,8 +1867,16 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1746
1867
|
/**
|
|
1747
1868
|
* Tabbing into the grid body lands on the scroll container; forward focus to
|
|
1748
1869
|
* the active cell (when one exists) so the roving tab stop is honored.
|
|
1870
|
+
* Also tells navigation whether this body, not a grid nested in it, now
|
|
1871
|
+
* holds focus.
|
|
1749
1872
|
*/
|
|
1750
1873
|
protected bodyFocusHandler(event: FocusEvent): void;
|
|
1874
|
+
/**
|
|
1875
|
+
* Focus left something in the body; see {@link NavigationController.focusLeft}.
|
|
1876
|
+
* Captured, so the body stops owning focus before a handler further down
|
|
1877
|
+
* (an editor committing on focus loss) runs and lets queued work see it.
|
|
1878
|
+
*/
|
|
1879
|
+
protected bodyFocusOutHandler(event: FocusEvent): void;
|
|
1751
1880
|
/**
|
|
1752
1881
|
* Forwards body-cell pointer interactions (press / drag-over / release) to
|
|
1753
1882
|
* feature modules via {@link StateController.handleCellInteraction}. Gated on
|
|
@@ -1757,10 +1886,12 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1757
1886
|
*/
|
|
1758
1887
|
protected bodyPointerHandler(event: PointerEvent): void;
|
|
1759
1888
|
protected renderGroupHeaderRow(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
1889
|
+
/**
|
|
1890
|
+
* With {@link ApexGrid.showHeader} off the header rows stay in the DOM,
|
|
1891
|
+
* visually hidden, so assistive technology keeps the column names.
|
|
1892
|
+
*/
|
|
1760
1893
|
protected renderHeaderRow(): import("lit-html").TemplateResult<1>;
|
|
1761
1894
|
protected renderBody(): import("lit-html").TemplateResult<1>;
|
|
1762
|
-
/** Number of chrome rows above the body (group header + header + optional filter). */
|
|
1763
|
-
protected get headerRowCount(): number;
|
|
1764
1895
|
protected renderPinnedTop(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
1765
1896
|
protected renderPinnedBottom(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
1766
1897
|
protected renderFilterRow(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
@@ -1773,6 +1904,13 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1773
1904
|
* don't have to coordinate consumer DOM placement.
|
|
1774
1905
|
*/
|
|
1775
1906
|
protected renderLiveRegion(): import("lit-html").TemplateResult<1>;
|
|
1907
|
+
/**
|
|
1908
|
+
* Floating "ghost" of the column header being dragged for reorder. Rendered
|
|
1909
|
+
* here, next to the row ghost, rather than in the header row: a fixed
|
|
1910
|
+
* element still paints inside its parent's stacking context, so inside the
|
|
1911
|
+
* header row it slid under the group header row and the pinned-top band.
|
|
1912
|
+
*/
|
|
1913
|
+
protected renderColumnDragGhost(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
1776
1914
|
/**
|
|
1777
1915
|
* Floating "ghost" of the row being pointer-dragged for reorder. Rendered at
|
|
1778
1916
|
* the top of the shadow tree (outside the virtualizer) so its `position: fixed`
|
|
@@ -1780,6 +1918,15 @@ export declare class ApexGrid<T extends object> extends EventEmitterBase<ApexGri
|
|
|
1780
1918
|
* time so it mirrors the row's visible content and column widths.
|
|
1781
1919
|
*/
|
|
1782
1920
|
protected renderRowDragGhost(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
1921
|
+
/**
|
|
1922
|
+
* The element with the `grid` (or `treegrid`) role and the table semantics.
|
|
1923
|
+
* It owns only rows: the header rows, the pinned bands and the body. The
|
|
1924
|
+
* toolbar, filter panel, paginator and live region stay outside it. The
|
|
1925
|
+
* host's own `aria-label`, `aria-labelledby` and `aria-describedby` name it:
|
|
1926
|
+
* referenced elements go through element reflection where the browser has
|
|
1927
|
+
* it, and their text is copied where it does not.
|
|
1928
|
+
*/
|
|
1929
|
+
protected renderTable(): import("lit-html").TemplateResult<1>;
|
|
1783
1930
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
1784
1931
|
/**
|
|
1785
1932
|
* Sets the live region's announcement text. Screen readers configured to
|