@guiexpert/table 1.1.90 → 1.1.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/css/main.css +129 -4
- package/css/table-classes.css +93 -0
- package/css/table-color-classes.css +3 -1
- package/css/table-color-vars.css +20 -2
- package/css/table-tree.css +13 -1
- package/index.cjs +111 -96
- package/index.d.ts +203 -184
- package/index.js +4927 -2096
- package/lib/common/debounce.d.ts +1 -0
- package/lib/common/decorator/avoid-double-execution.decorator.d.ts +2 -0
- package/lib/common/escape-html.d.ts +22 -0
- package/lib/common/generator/column-def-generator-service.d.ts +2 -1
- package/lib/common/generator/domain/property-type.d.ts +19 -0
- package/lib/common/generator/domain/value-info.d.ts +2 -1
- package/lib/common/generator/json-service.d.ts +1 -0
- package/lib/common/generator/property-type.service.d.ts +3 -2
- package/lib/common/generator/scheme-generator-service.d.ts +3 -1
- package/lib/common/generator/string-util.d.ts +7 -0
- package/lib/common/throttle.d.ts +1 -0
- package/lib/table/action/action-id.type.d.ts +5 -1
- package/lib/table/action/on-action-triggered.if.d.ts +2 -1
- package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +3 -1
- package/lib/table/action/shortcut-actionid-mapping.type.d.ts +3 -1
- package/lib/table/action/shortcut-util.d.ts +12 -0
- package/lib/table/action/shortcut.service.d.ts +5 -3
- package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +3 -1
- package/lib/table/aria/aria-grid-info.d.ts +76 -0
- package/lib/table/aria/aria-ids.d.ts +56 -0
- package/lib/table/aria/aria-texts.d.ts +34 -0
- package/lib/table/aria/aria-texts.if.d.ts +88 -0
- package/lib/table/aria/live-announcer.d.ts +62 -0
- package/lib/table/aria/tree-aria-info.d.ts +58 -0
- package/lib/table/checkbox/all-rows-checkbox-model.d.ts +31 -0
- package/lib/table/checkbox/checkbox-model.d.ts +3 -2
- package/lib/table/checkbox/checkbox-model.if.d.ts +2 -1
- package/lib/table/checkbox/tree-checkbox-model.d.ts +19 -4
- package/lib/table/color/color-rgb.d.ts +2 -1
- package/lib/table/color/color-rgb.if.d.ts +2 -0
- package/lib/table/color/ge-css-color-util.d.ts +25 -2
- package/lib/table/color/three-color-gradient-arg.d.ts +3 -2
- package/lib/table/color/three-color-gradient-arg.if.d.ts +3 -1
- package/lib/table/color/two-color-gradient-arg.d.ts +3 -2
- package/lib/table/color/two-color-gradient-arg.if.d.ts +3 -1
- package/lib/table/crud/column-widths.d.ts +2 -1
- package/lib/table/crud/column-widths.if.d.ts +1 -0
- package/lib/table/crud/crud-action.d.ts +1 -0
- package/lib/table/crud/crud-object-edit.d.ts +25 -3
- package/lib/table/crud/crud-object-view.d.ts +6 -0
- package/lib/table/crud/crud-options.d.ts +35 -4
- package/lib/table/crud/crud-options.if.d.ts +3 -2
- package/lib/table/crud/crud-table-model-factory.d.ts +72 -8
- package/lib/table/crud/url-info.d.ts +2 -1
- package/lib/table/crud/url-info.if.d.ts +1 -0
- package/lib/table/crud/urls.if.d.ts +2 -1
- package/lib/table/css-vars.d.ts +1 -0
- package/lib/table/data/chunk/chunk.data-event.d.ts +3 -2
- package/lib/table/data/chunk/chunk.data-event.if.d.ts +2 -1
- package/lib/table/data/chunk/request-chunk.d.ts +2 -1
- package/lib/table/data/chunk/request-chunk.if.d.ts +1 -0
- package/lib/table/data/common/aligns.d.ts +18 -0
- package/lib/table/data/common/area-map-factory.d.ts +3 -2
- package/lib/table/data/common/area-map.d.ts +3 -1
- package/lib/table/data/common/area-map.type.d.ts +1 -0
- package/lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +6 -4
- package/lib/table/data/common/args-render-cell-div.d.ts +5 -3
- package/lib/table/data/common/boolean-function.d.ts +10 -0
- package/lib/table/data/common/cell-range.d.ts +16 -7
- package/lib/table/data/common/checkbox-column-def.d.ts +6 -4
- package/lib/table/data/common/checked-type.d.ts +2 -0
- package/lib/table/data/common/event/ge-cell-indices.d.ts +2 -0
- package/lib/table/data/common/event/ge-key-event.d.ts +2 -0
- package/lib/table/data/common/event/ge-model-change-event.d.ts +16 -2
- package/lib/table/data/common/event/ge-mouse-event.d.ts +52 -4
- package/lib/table/data/common/event/ge-scroll-event.d.ts +27 -1
- package/lib/table/data/common/event/ge-state-change-event.d.ts +30 -0
- package/lib/table/data/common/event/input/table-cell-update-event.d.ts +14 -10
- package/lib/table/data/common/event/input/table-cell-update-event.if.d.ts +3 -1
- package/lib/table/data/common/filter-function.d.ts +2 -0
- package/lib/table/data/common/get-t.d.ts +2 -0
- package/lib/table/data/common/index-and-px.d.ts +2 -0
- package/lib/table/data/common/size-unit.type.d.ts +2 -0
- package/lib/table/data/common/size.d.ts +13 -2
- package/lib/table/data/common/size.if.d.ts +3 -1
- package/lib/table/data/common/sizes.d.ts +133 -1
- package/lib/table/data/common/sort-item.d.ts +16 -3
- package/lib/table/data/common/sort-state.type.d.ts +2 -0
- package/lib/table/data/common/tree-arrow.type.d.ts +2 -0
- package/lib/table/data/common/tree-row-if.d.ts +22 -1
- package/lib/table/data/common/tree-row.d.ts +3 -1
- package/lib/table/data/common/value-label.d.ts +2 -1
- package/lib/table/data/common/value-label.if.d.ts +1 -0
- package/lib/table/data/div-scope.type.d.ts +2 -0
- package/lib/table/data/event/mouse-target-data.d.ts +5 -3
- package/lib/table/data/geo-data.d.ts +2 -0
- package/lib/table/data/options/auto-restore-options.d.ts +44 -1
- package/lib/table/data/options/auto-restore-options.if.d.ts +95 -45
- package/lib/table/data/options/default-row-heights.d.ts +20 -2
- package/lib/table/data/options/default-row-heights.if.d.ts +4 -1
- package/lib/table/data/options/default-row-id.d.ts +4 -0
- package/lib/table/data/options/header-group-options.d.ts +3 -2
- package/lib/table/data/options/header-group-options.if.d.ts +3 -4
- package/lib/table/data/options/icon.d.ts +2 -1
- package/lib/table/data/options/icon.if.d.ts +2 -0
- package/lib/table/data/options/overlay-options.d.ts +30 -0
- package/lib/table/data/options/overlay-options.if.d.ts +79 -0
- package/lib/table/data/options/sorted-options.d.ts +3 -2
- package/lib/table/data/options/sorted-options.if.d.ts +3 -1
- package/lib/table/data/options/table-options.d.ts +40 -13
- package/lib/table/data/options/table-options.if.d.ts +152 -44
- package/lib/table/data/options/tree-options.d.ts +3 -2
- package/lib/table/data/options/tree-options.if.d.ts +3 -1
- package/lib/table/data/side-ident.type.d.ts +2 -0
- package/lib/table/data/table-model-and-options.d.ts +5 -3
- package/lib/table/data/table-model-and-options.if.d.ts +4 -2
- package/lib/table/data/tablemodel/area-ident.type.d.ts +4 -0
- package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +10 -9
- package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +13 -4
- package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +44 -12
- package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +9 -7
- package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +16 -14
- package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +48 -31
- package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +162 -11
- package/lib/table/data/tablemodel/areamodel/area-model.d.ts +66 -104
- package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +75 -50
- package/lib/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +5 -5
- package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +14 -3
- package/lib/table/data/tablemodel/areamodel/cover-grid-body-model.d.ts +17 -8
- package/lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts +1 -0
- package/lib/table/data/tablemodel/areamodel/object-array-holder.if.d.ts +1 -0
- package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +3 -2
- package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +4 -1
- package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +34 -0
- package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +4 -3
- package/lib/table/data/tablemodel/column/column-def.d.ts +67 -10
- package/lib/table/data/tablemodel/column/column-def.if.d.ts +63 -96
- package/lib/table/data/tablemodel/column/column-visibility.d.ts +11 -0
- package/lib/table/data/tablemodel/cover-grid-table-model.d.ts +11 -10
- package/lib/table/data/tablemodel/padding.d.ts +2 -0
- package/lib/table/data/tablemodel/table-model.d.ts +75 -14
- package/lib/table/data/tablemodel/table-model.if.d.ts +52 -8
- package/lib/table/ele-scope.d.ts +53 -5
- package/lib/table/event-adapter.d.ts +20 -10
- package/lib/table/event-checkbox-changed-handler.d.ts +2 -1
- package/lib/table/event-listener.if.d.ts +50 -9
- package/lib/table/factory/cover-grid-factory.d.ts +4 -3
- package/lib/table/factory/table-factory.d.ts +103 -64
- package/lib/table/factory/tree-factory.d.ts +45 -3
- package/lib/table/focus/event-focus-changed-listener.if.d.ts +5 -3
- package/lib/table/focus/focus-model.d.ts +7 -5
- package/lib/table/focus/focus-model.if.d.ts +22 -1
- package/lib/table/focus/focus.type.d.ts +2 -0
- package/lib/table/input-handler.d.ts +5 -1
- package/lib/table/instanceof-workaround.d.ts +16 -0
- package/lib/table/license-manager.d.ts +2 -0
- package/lib/table/mouse-handler.d.ts +20 -9
- package/lib/table/overlay/calc-overlay-kind.d.ts +31 -0
- package/lib/table/overlay/ge-overlay-kind.type.d.ts +17 -0
- package/lib/table/overlay/table-overlay.d.ts +108 -0
- package/lib/table/render-scope.d.ts +141 -27
- package/lib/table/renderer/action/action-event-listener.if.d.ts +2 -1
- package/lib/table/renderer/action/action-event.d.ts +4 -3
- package/lib/table/renderer/action/action-event.if.d.ts +2 -1
- package/lib/table/renderer/action/actions-cell-renderer.d.ts +8 -7
- package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +8 -7
- package/lib/table/renderer/cell-render.if.d.ts +41 -4
- package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +7 -5
- package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -5
- package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/edit/edit-cell-renderer.type.d.ts +2 -1
- package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -1
- package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +2 -0
- package/lib/table/renderer/edit/input-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/edit/select-cell-renderer.d.ts +7 -6
- package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +19 -6
- package/lib/table/renderer/number-cell-progress-bar-cell-renderer.d.ts +11 -6
- package/lib/table/renderer/number-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/positive-and-negative-number-renderer.d.ts +6 -5
- package/lib/table/renderer/progress-bar-cell-renderer.d.ts +12 -6
- package/lib/table/renderer/renderer-cleanup-fn.type.d.ts +1 -0
- package/lib/table/renderer/renderer.d.ts +3 -2
- package/lib/table/renderer/simple-array-cell-renderer.d.ts +6 -5
- package/lib/table/renderer/star-rating-cell-renderer.d.ts +12 -6
- package/lib/table/renderer/true-false-cell-renderer.d.ts +17 -5
- package/lib/table/resize-handler.d.ts +3 -1
- package/lib/table/selection/event-selection-changed-listener.if.d.ts +2 -1
- package/lib/table/selection/multi-rows-selection-model.d.ts +7 -4
- package/lib/table/selection/selection-model.d.ts +112 -10
- package/lib/table/selection/selection-model.if.d.ts +48 -3
- package/lib/table/selection/selection-service.d.ts +35 -7
- package/lib/table/selection/selection.type.d.ts +3 -0
- package/lib/table/service/abstract-store-state.service.d.ts +1 -1
- package/lib/table/service/convenience-dom.service.d.ts +37 -14
- package/lib/table/service/copy-service.d.ts +18 -4
- package/lib/table/service/copy-service.if.d.ts +4 -3
- package/lib/table/service/data/collapsed-expanded.data.d.ts +1 -0
- package/lib/table/service/data/html-style.type.d.ts +1 -0
- package/lib/table/service/dom-service.if.d.ts +30 -0
- package/lib/table/service/excel-service.d.ts +24 -1
- package/lib/table/service/excel-service.if.d.ts +7 -0
- package/lib/table/service/ge-filter.service.d.ts +1 -0
- package/lib/table/service/simple-dom-service.d.ts +3 -1
- package/lib/table/service/store-state-collapsed-expand.service.d.ts +4 -3
- package/lib/table/service/store-state-scroll-pos.service.d.ts +3 -2
- package/lib/table/service/store-state-sorting.service.d.ts +4 -3
- package/lib/table/service/tree-row.service.d.ts +5 -1
- package/lib/table/state/state-storage.if.d.ts +39 -0
- package/lib/table/state/table-state-migration.d.ts +36 -0
- package/lib/table/state/table-state-part.d.ts +13 -0
- package/lib/table/state/table-state.if.d.ts +181 -0
- package/lib/table/state/table-state.service.d.ts +158 -0
- package/lib/table/table-api.d.ts +450 -550
- package/lib/table/table-scope.d.ts +288 -114
- package/package.json +23 -8
|
@@ -1,57 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
1
|
+
import { TableOverlayChange } from './overlay/table-overlay.js';
|
|
2
|
+
import { GeOverlayKind } from './overlay/ge-overlay-kind.type.js';
|
|
3
|
+
import { TableModelIf } from './data/tablemodel/table-model.if.js';
|
|
4
|
+
import { AreaIdent } from './data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { GeMouseEvent } from './data/common/event/ge-mouse-event.js';
|
|
6
|
+
import { DomServiceIf } from './service/dom-service.if.js';
|
|
7
|
+
import { TableOptionsIf } from './data/options/table-options.if.js';
|
|
8
|
+
import { MouseHandler } from './mouse-handler.js';
|
|
9
|
+
import { EventListenerIf } from './event-listener.if.js';
|
|
10
|
+
import { TableApi } from './table-api.js';
|
|
11
|
+
import { SortState } from './data/common/sort-state.type.js';
|
|
12
|
+
import { StoreStateCollapsedExpandService } from './service/store-state-collapsed-expand.service.js';
|
|
13
|
+
import { StoreStateSortingService } from './service/store-state-sorting.service.js';
|
|
14
|
+
import { RenderScope } from './render-scope.js';
|
|
15
|
+
import { SortItem } from './data/common/sort-item.js';
|
|
16
|
+
import { TableStateService } from './state/table-state.service.js';
|
|
17
|
+
import { GeStateChangeEvent } from './data/common/event/ge-state-change-event.js';
|
|
18
|
+
import { InputHandler } from './input-handler.js';
|
|
19
|
+
import { SelectionService } from './selection/selection-service.js';
|
|
20
|
+
import { GeKeyEvent } from './data/common/event/ge-key-event.js';
|
|
21
|
+
import { OnActionTriggeredIf } from './action/on-action-triggered.if.js';
|
|
22
|
+
import { ActionId } from './action/action-id.type.js';
|
|
23
|
+
import { ShortcutService } from './action/shortcut.service.js';
|
|
24
|
+
import { TreeRowIf } from './data/common/tree-row-if.js';
|
|
25
|
+
import { LicenseManager } from './license-manager.js';
|
|
26
|
+
import { SelectionModel } from './selection/selection-model.js';
|
|
27
|
+
import { CopyServiceIf } from './service/copy-service.if.js';
|
|
28
|
+
import { MouseTargetData } from './data/event/mouse-target-data.js';
|
|
29
|
+
import { SelectionModelIf } from './selection/selection-model.if.js';
|
|
30
|
+
import { FocusModelIf } from './focus/focus-model.if.js';
|
|
31
|
+
import { EventFocusChangedListenerIf } from './focus/event-focus-changed-listener.if.js';
|
|
32
|
+
import { EventSelectionChangedListenerIf } from './selection/event-selection-changed-listener.if.js';
|
|
33
|
+
import { ResizeHandler } from './resize-handler.js';
|
|
34
|
+
import { ExcelServiceIf } from './service/excel-service.if.js';
|
|
35
|
+
import { ColumnDefIf } from './data/tablemodel/column/column-def.if.js';
|
|
36
|
+
import { LiveAnnouncer } from './aria/live-announcer.js';
|
|
29
37
|
|
|
30
38
|
/**
|
|
31
|
-
*
|
|
39
|
+
* Creates and runs one table in a host element – the core that every framework wrapper uses.
|
|
32
40
|
*
|
|
33
|
-
*
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
36
|
-
* @
|
|
37
|
-
* @property {StoreStateCollapsedExpandService | undefined} storeStateCollapsedExpandService - A service to manage and restore the collapsed or expanded state of the table's rows.
|
|
38
|
-
* @property {StoreStateSortingService | undefined} storeSortingService - A service to manage and restore the sort state of the table's columns.
|
|
39
|
-
* @property {SelectionService} selectionService - An instance of SelectionService to manage cell selection in the table.
|
|
40
|
-
* @property {GeKeyEvent | undefined} keyEvent - An object representing the last processed keyboard event.
|
|
41
|
-
* @property {TableApi} api - An instance of TableApi, providing an API for table interactions.
|
|
41
|
+
* It connects the four building blocks: host element, {@link TableModelIf table model}, {@link TableOptionsIf options}
|
|
42
|
+
* and an {@link EventListenerIf event listener}, renders only the visible cells (virtual scrolling in both
|
|
43
|
+
* directions) and handles mouse, keyboard, selection, sorting and editing. Talk to the table through
|
|
44
|
+
* {@link getApi} – the {@link TableApi}.
|
|
42
45
|
*
|
|
43
|
-
*
|
|
44
|
-
* - mouseStartAction: The action performed at the start of a mouse drag operation.
|
|
45
|
-
* - mouseStartWidth: The initial width of an element at the start of a resizing drag operation.
|
|
46
|
-
* - mouseStartColumnIndex: The index of the column at the start of a resizing drag operation.
|
|
47
|
-
* - dragFrom: The initial cell index of a drag operation.
|
|
48
|
-
* - dragTo: The current cell index of a drag operation.
|
|
49
|
-
* - lastDragFrom: The previous initial cell index of a drag operation.
|
|
50
|
-
* - lastDragTo: The previous current cell index of a drag operation.
|
|
51
|
-
* - firstDraggingRendering: A boolean indicating if this is the first render during the current drag operation.
|
|
46
|
+
* The host element needs a height: the table fills it.
|
|
52
47
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
48
|
+
* @example
|
|
49
|
+
* import "@guiexpert/table/css/main.css";
|
|
50
|
+
* import { EventAdapter, SimpleDomService, TableFactory, TableOptions, TableScope } from "@guiexpert/table";
|
|
51
|
+
*
|
|
52
|
+
* const host = document.querySelector<HTMLDivElement>(".table-div")!; // CSS: .table-div { height: 500px }
|
|
53
|
+
* const tableModel = TableFactory.createTableModel({ rows: orders });
|
|
54
|
+
* const tableScope = new TableScope(host, tableModel, new SimpleDomService(), new TableOptions(), new EventAdapter());
|
|
55
|
+
* tableScope.firstInit();
|
|
56
|
+
* const tableApi = tableScope.getApi();
|
|
57
|
+
*
|
|
58
|
+
* // later: remove the table (route change, new model)
|
|
59
|
+
* tableScope.destroy();
|
|
60
|
+
*
|
|
61
|
+
* @see Training: [Your first table in plain TypeScript](https://gui.expert/training/first-table/)
|
|
62
|
+
*
|
|
63
|
+
* @category Table & API
|
|
55
64
|
*/
|
|
56
65
|
export declare class TableScope extends RenderScope implements OnActionTriggeredIf, EventFocusChangedListenerIf, EventSelectionChangedListenerIf {
|
|
57
66
|
protected readonly eventListener: EventListenerIf;
|
|
@@ -68,11 +77,33 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
68
77
|
inputHandler: InputHandler;
|
|
69
78
|
resizeHandler: ResizeHandler;
|
|
70
79
|
shortcutService: ShortcutService;
|
|
80
|
+
/** @deprecated since 1.1.92 – always `undefined`; the state is kept by {@link stateService}. */
|
|
71
81
|
storeStateCollapsedExpandService?: StoreStateCollapsedExpandService;
|
|
82
|
+
/** @deprecated since 1.1.92 – always `undefined`; the state is kept by {@link stateService}. */
|
|
72
83
|
storeSortingService?: StoreStateSortingService;
|
|
84
|
+
/**
|
|
85
|
+
* Collects, applies, stores and reports the state of this table (column layout, sorting, scroll, tree, checked
|
|
86
|
+
* and selected rows …). Use {@link TableApi.getState} / {@link TableApi.applyState}.
|
|
87
|
+
* @since 1.1.92
|
|
88
|
+
*/
|
|
89
|
+
readonly stateService: TableStateService;
|
|
73
90
|
protected selectionService: SelectionService;
|
|
74
91
|
protected keyEvent?: GeKeyEvent;
|
|
75
92
|
private api;
|
|
93
|
+
/**
|
|
94
|
+
* The live region of this table: screen readers speak its messages (sorting, filter, copy …).
|
|
95
|
+
* Use {@link TableApi.announce} for own messages.
|
|
96
|
+
* @since 1.1.91
|
|
97
|
+
*/
|
|
98
|
+
readonly liveAnnouncer: LiveAnnouncer;
|
|
99
|
+
/** Keyboard actions ignored while a blocking loading overlay is shown ({@link OverlayOptionsIf.blockInteractionWhileLoading}). */
|
|
100
|
+
static actionsBlockedWhileLoading: ActionId[];
|
|
101
|
+
/** Delay of the "42 rows" announcement after a filter change (typing in a filter field: one announcement). */
|
|
102
|
+
static filterAnnouncementDelayInMs: number;
|
|
103
|
+
/** The text announced when the loading overlay appeared (dropped if loading ends before it is spoken). */
|
|
104
|
+
private lastLoadingAnnouncement?;
|
|
105
|
+
/** firstInit() has finished: announcements are made from now on (not for the initial filter). */
|
|
106
|
+
private initialized;
|
|
76
107
|
private mouseStartAction;
|
|
77
108
|
private mouseStartWidth;
|
|
78
109
|
private mouseStartColumnIndex;
|
|
@@ -84,6 +115,13 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
84
115
|
/** Last comparator passed to `sort()`; re-applied after filtering. Cleared by a header sort. */
|
|
85
116
|
private lastSortCompareFn?;
|
|
86
117
|
constructor(hostElement: HTMLDivElement, tableModel: TableModelIf, domService: DomServiceIf, tableOptions: TableOptionsIf, eventListener: EventListenerIf, copyService?: CopyServiceIf, excelService?: ExcelServiceIf);
|
|
118
|
+
/** Time of the last Tab key press on the page (the host is focused right after it). */
|
|
119
|
+
private lastTabKeyTime;
|
|
120
|
+
/**
|
|
121
|
+
* The host got the keyboard focus (Tab): without a focus cell the first shown cell of the first visible row
|
|
122
|
+
* gets the focus, so screen readers announce a cell (`aria-activedescendant`).
|
|
123
|
+
*/
|
|
124
|
+
private onHostKeyboardFocus;
|
|
87
125
|
/**
|
|
88
126
|
* Creates a TableScope instance.
|
|
89
127
|
*
|
|
@@ -106,6 +144,83 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
106
144
|
* @return {boolean} - Returns true if the action was triggered successfully, false otherwise.
|
|
107
145
|
*/
|
|
108
146
|
onActionTriggered(actionId: ActionId): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Speaks a message to screen reader users (polite live region, see {@link LiveAnnouncer}).
|
|
149
|
+
*
|
|
150
|
+
* @param {string} text - plain text, e.g. "Orders loaded"
|
|
151
|
+
* @param {number} [delayInMs] - wait before the text is written (default {@link LiveAnnouncer.defaultDelayInMs})
|
|
152
|
+
* @since 1.1.91
|
|
153
|
+
*/
|
|
154
|
+
announce(text: string, delayInMs?: number): void;
|
|
155
|
+
/**
|
|
156
|
+
* Shows the loading overlay over the body (see {@link TableApi.showLoadingOverlay}).
|
|
157
|
+
*
|
|
158
|
+
* @param {string} [text] - text for this overlay, default {@link OverlayOptionsIf.loadingText}
|
|
159
|
+
* @since 1.1.92
|
|
160
|
+
*/
|
|
161
|
+
showLoadingOverlay(text?: string): void;
|
|
162
|
+
/**
|
|
163
|
+
* Shows the "no rows" overlay (see {@link TableApi.showNoRowsOverlay}).
|
|
164
|
+
*
|
|
165
|
+
* @param {string} [text] - text for this overlay, default {@link OverlayOptionsIf.noRowsText}
|
|
166
|
+
* @since 1.1.92
|
|
167
|
+
*/
|
|
168
|
+
showNoRowsOverlay(text?: string): void;
|
|
169
|
+
/**
|
|
170
|
+
* Ends an overlay shown by the API (see {@link TableApi.hideOverlay}).
|
|
171
|
+
*
|
|
172
|
+
* @since 1.1.92
|
|
173
|
+
*/
|
|
174
|
+
hideOverlay(): void;
|
|
175
|
+
/**
|
|
176
|
+
* The overlay shown now (see {@link TableApi.getOverlayState}).
|
|
177
|
+
*
|
|
178
|
+
* @since 1.1.92
|
|
179
|
+
*/
|
|
180
|
+
getOverlayState(): GeOverlayKind;
|
|
181
|
+
/**
|
|
182
|
+
* Screen readers: `aria-busy` while loading, the loading text is spoken; "no rows" is spoken when it appears
|
|
183
|
+
* after the start (not for the initially empty table). "No matching rows" is not spoken: the filter
|
|
184
|
+
* announcement ({@link AriaTextsIf.filtered}) already says it.
|
|
185
|
+
*/
|
|
186
|
+
protected onOverlayChanged(change: TableOverlayChange): void;
|
|
187
|
+
/** "12 cells copied" – the selected cells of the shown columns (without a selection: the focused cell). */
|
|
188
|
+
announceCopied(_text?: string): void;
|
|
189
|
+
/** The number of cells a copy takes: selected cells of shown columns (like CopyService), otherwise 1 (focus). */
|
|
190
|
+
private countCopiedCells;
|
|
191
|
+
/**
|
|
192
|
+
* The header cell with the keyboard focus (arrow up in the first body row moves the focus into the header).
|
|
193
|
+
*
|
|
194
|
+
* @returns {[number, number] | undefined} header row and column index of the cell, `undefined` if the focus is in the body
|
|
195
|
+
* @since 1.1.91
|
|
196
|
+
*/
|
|
197
|
+
getHeaderFocus(): [number, number] | undefined;
|
|
198
|
+
/** Moves the body focus to a cell, scrolls it into view and repaints (also leaves the header). */
|
|
199
|
+
private setFocusCell;
|
|
200
|
+
private getFirstShownColumnIndex;
|
|
201
|
+
private getLastShownColumnIndex;
|
|
202
|
+
/** Home, End, Ctrl+Home, Ctrl+End, Page Up/Down and Enter in the body; `undefined` = not such an action. */
|
|
203
|
+
private onBodyNavigation;
|
|
204
|
+
/** Enter on a body cell: toggles its row checkbox, otherwise expands/collapses its tree row. */
|
|
205
|
+
private activateBodyCell;
|
|
206
|
+
/** Arrow up in the first body row: the focus moves to the lowest header row (same column). */
|
|
207
|
+
private moveFocusIntoHeader;
|
|
208
|
+
/** Focuses a header cell – the origin of a span cell that covers (row, column) – and repaints. */
|
|
209
|
+
private setHeaderFocus;
|
|
210
|
+
/**
|
|
211
|
+
* Keys while a header cell has the focus. Returns `undefined` for actions that work as in the body (copy,
|
|
212
|
+
* select all …) – they leave the header focus as it is.
|
|
213
|
+
*/
|
|
214
|
+
private onHeaderAction;
|
|
215
|
+
/** Enter on a header cell: a group with a toggle opens/closes, a sortable (lowest) header cell sorts. */
|
|
216
|
+
private activateHeaderCell;
|
|
217
|
+
/**
|
|
218
|
+
* Closes the cell editor without changing the model (Escape in the editor).
|
|
219
|
+
*
|
|
220
|
+
* @param {HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement} [editor] - the editor element: its value is reset
|
|
221
|
+
* first, so the blur caused by closing does not commit the typed text ("change" event)
|
|
222
|
+
*/
|
|
223
|
+
cancelEditing(editor?: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement): void;
|
|
109
224
|
updateModelValueAfterEdit(areaIdent: AreaIdent, rowIndex: number, columnIndex: number, value: string): void;
|
|
110
225
|
/**
|
|
111
226
|
* Retrieves the TableApi object.
|
|
@@ -150,6 +265,15 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
150
265
|
* @return {GeMouseEvent} - The created GeMouseEvent object.
|
|
151
266
|
*/
|
|
152
267
|
createGeMouseEvent(mouseEvent: MouseEvent): GeMouseEvent;
|
|
268
|
+
/**
|
|
269
|
+
* The element a mouse event belongs to – usually `evt.target`. The scroll viewport lies above the footer areas (its
|
|
270
|
+
* horizontal scroll bar must stay usable), so a mouse event on a footer cell arrives at the viewport: then the footer
|
|
271
|
+
* element below the mouse pointer is returned (not on the scroll bar itself).
|
|
272
|
+
*
|
|
273
|
+
* @param {MouseEvent} evt - a mouse event on the host element
|
|
274
|
+
* @returns {EventTarget | null} the target element
|
|
275
|
+
*/
|
|
276
|
+
getMouseEventTarget(evt: MouseEvent): EventTarget | null;
|
|
153
277
|
/**
|
|
154
278
|
* Handles the mouse down event.
|
|
155
279
|
*
|
|
@@ -195,6 +319,16 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
195
319
|
* @return {void}
|
|
196
320
|
*/
|
|
197
321
|
toggleExpandCollapseAll(expand?: boolean): void;
|
|
322
|
+
/** The last "expand / collapse all" state – the header icon toggles it. */
|
|
323
|
+
allExpanded: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* Expands or collapses one row of a tree table, repaints, and remembers the state (`autoRestoreOptions`).
|
|
326
|
+
*
|
|
327
|
+
* @param {TreeRowIf<any>} row - a tree row of the body model
|
|
328
|
+
* @param {boolean} expanded - the new state
|
|
329
|
+
* @returns {boolean} false if the body is no tree or the state was already set
|
|
330
|
+
*/
|
|
331
|
+
setTreeRowExpanded(row: TreeRowIf<any>, expanded: boolean): boolean;
|
|
198
332
|
/**
|
|
199
333
|
* Toggles the checkbox state of a specific row in a table.
|
|
200
334
|
*
|
|
@@ -214,9 +348,30 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
214
348
|
*/
|
|
215
349
|
onMouseClicked(evt: GeMouseEvent, previousEvt: GeMouseEvent | undefined): boolean;
|
|
216
350
|
debounceRepaint(): void;
|
|
351
|
+
/**
|
|
352
|
+
* Cancels a repaint scheduled by {@link debounceRepaint}.
|
|
353
|
+
*
|
|
354
|
+
* @returns true if a repaint was pending
|
|
355
|
+
*/
|
|
356
|
+
cancelPendingRepaint(): boolean;
|
|
217
357
|
publishGeMouseEvent(evt: GeMouseEvent): void;
|
|
218
358
|
onFocusChanged(sm: FocusModelIf): void;
|
|
359
|
+
/**
|
|
360
|
+
* Reports a changed state to the event listener (called by {@link TableStateService}).
|
|
361
|
+
* @since 1.1.92
|
|
362
|
+
*/
|
|
363
|
+
stateChanged(evt: GeStateChangeEvent): void;
|
|
364
|
+
protected afterRenderPass(): void;
|
|
219
365
|
onSelectionChanged(sm: SelectionModelIf): void;
|
|
366
|
+
private selectionEventsHeld;
|
|
367
|
+
private heldSelectionModel?;
|
|
368
|
+
/**
|
|
369
|
+
* Runs `fn` and reports all selection changes made in it as ONE `onSelectionChanged` event (a click used to fire
|
|
370
|
+
* up to three: `clear()`, adding the new range and the selection service itself).
|
|
371
|
+
*
|
|
372
|
+
* @param {() => void} fn - code that changes the selection model
|
|
373
|
+
*/
|
|
374
|
+
holdSelectionEvents(fn: () => void): void;
|
|
220
375
|
/**
|
|
221
376
|
* Updates the table (repaint) when an external filter is changed.
|
|
222
377
|
*
|
|
@@ -254,13 +409,26 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
254
409
|
*/
|
|
255
410
|
scrollToPixel(px: number, py: number): void;
|
|
256
411
|
/**
|
|
257
|
-
* Scrolls to the
|
|
412
|
+
* Scrolls to a column and a row: the row becomes the first row of the viewport, the column the first column of the
|
|
413
|
+
* scrollable center area (as far as the scroll range allows).
|
|
414
|
+
*
|
|
415
|
+
* A fixed west column scrolls back to the start (x = 0, like before columns were supported). A fixed east column,
|
|
416
|
+
* `-1` or any other index outside the column range keeps the current horizontal position.
|
|
258
417
|
*
|
|
259
|
-
* @param {number}
|
|
260
|
-
* @param {number} indexY - The
|
|
418
|
+
* @param {number} indexX - The column index (model index over west + center + east), `-1` = keep the horizontal position.
|
|
419
|
+
* @param {number} indexY - The row index of the body.
|
|
261
420
|
* @return {void}
|
|
262
421
|
*/
|
|
263
|
-
scrollToIndex(
|
|
422
|
+
scrollToIndex(indexX: number, indexY: number): void;
|
|
423
|
+
/**
|
|
424
|
+
* The horizontal scroll position (`scrollLeft` of the scroll viewport) that shows a column as the first column of
|
|
425
|
+
* the scrollable center area, clamped to the scroll range.
|
|
426
|
+
* A fixed west column returns 0 (start); fixed east columns and indices outside the columns return the current position.
|
|
427
|
+
*
|
|
428
|
+
* @param {number} columnIndex - model column index (west + center + east)
|
|
429
|
+
* @returns {number} scrollLeft in scroll bar pixels
|
|
430
|
+
*/
|
|
431
|
+
protected getScrollLeftForColumnIndex(columnIndex: number): number;
|
|
264
432
|
adjustAfterScrolling(): void;
|
|
265
433
|
/**
|
|
266
434
|
* Sets the selection model for the table.
|
|
@@ -272,6 +440,21 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
272
440
|
*/
|
|
273
441
|
setSelectionModel(sm: SelectionModel, rerender?: boolean): void;
|
|
274
442
|
toggleHeaderGroup(mouseTargetData: MouseTargetData): void;
|
|
443
|
+
/**
|
|
444
|
+
* Collapses or expands a header group by its id ({@link TableApi.setHeaderGroupCollapsed}).
|
|
445
|
+
*
|
|
446
|
+
* @param {string} id - {@link CellGroupIf.id} or the path of the labels, e.g. `"Customer"`
|
|
447
|
+
* @param {boolean} collapsed - true = collapse
|
|
448
|
+
* @returns {boolean} false if the header has no such group
|
|
449
|
+
* @since 1.1.92
|
|
450
|
+
*/
|
|
451
|
+
setHeaderGroupCollapsed(id: string, collapsed: boolean): boolean;
|
|
452
|
+
/**
|
|
453
|
+
* Rebuilds the layout after a header group was collapsed or expanded (other columns are shown) and marks the
|
|
454
|
+
* state as changed.
|
|
455
|
+
* @since 1.1.92
|
|
456
|
+
*/
|
|
457
|
+
headerGroupsChanged(): void;
|
|
275
458
|
/**
|
|
276
459
|
* Retrieves the selection model.
|
|
277
460
|
* @returns {SelectionModelIf | undefined} The selection model if available, otherwise undefined.
|
|
@@ -285,13 +468,20 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
285
468
|
focusModel(): FocusModelIf | undefined;
|
|
286
469
|
setDragging(dragging: boolean): void;
|
|
287
470
|
/**
|
|
288
|
-
* Changes the focus cell using the specified deltas.
|
|
471
|
+
* Changes the focus cell using the specified deltas (keyboard navigation).
|
|
472
|
+
* The new focus stays inside the body (first/last row and column) and the focused row is scrolled into view.
|
|
473
|
+
* `onFocusChanged` is fired by the focus model itself (TableScope listens to it).
|
|
289
474
|
*
|
|
290
475
|
* @param {number} dx - The delta for the column index.
|
|
291
476
|
* @param {number} dy - The delta for the row index.
|
|
292
|
-
* @return {boolean} - True if the focus
|
|
477
|
+
* @return {boolean} - True if the key was handled (a focus model exists and the table is not editing), false otherwise.
|
|
293
478
|
*/
|
|
294
479
|
private changeFocusCell;
|
|
480
|
+
/**
|
|
481
|
+
* The column index `dx` steps from `colIdx`, skipping hidden columns (width 0, e.g. `setColumnVisible(…, false)`).
|
|
482
|
+
* Stays inside the columns; if there is no shown column in that direction, the focus stays where it is.
|
|
483
|
+
*/
|
|
484
|
+
private getNextShownColumnIndex;
|
|
295
485
|
/**
|
|
296
486
|
* Resizes the column based on the mouse event.
|
|
297
487
|
*
|
|
@@ -304,52 +494,51 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
304
494
|
* @return {void}
|
|
305
495
|
*/
|
|
306
496
|
private clearSelectionModel;
|
|
307
|
-
private debugOnce;
|
|
308
497
|
/**
|
|
309
|
-
*
|
|
498
|
+
* Calculates a width per column that fits the widest text of header, body and footer.
|
|
310
499
|
*
|
|
500
|
+
* The text is measured with the font and padding of a rendered cell label (canvas `measureText`),
|
|
501
|
+
* so dates, numbers and long names are no longer cut off. To stay fast with millions of rows, the body
|
|
502
|
+
* is scanned once by character length and only the longest candidates per column are measured.
|
|
503
|
+
* Without a canvas (e.g. in tests) it falls back to 8 px per character.
|
|
311
504
|
*
|
|
312
|
-
* @returns {
|
|
505
|
+
* @returns {number[]} one width in px per column (at least 50 px)
|
|
313
506
|
*/
|
|
314
|
-
|
|
507
|
+
calcAutoColumnWidths(): number[];
|
|
508
|
+
setColumnWidth(columnIndex: number, width: number): void;
|
|
315
509
|
/**
|
|
316
|
-
*
|
|
510
|
+
* Shows or hides a column and repaints (see {@link TableApi.setColumnVisible}).
|
|
317
511
|
*
|
|
318
|
-
* @
|
|
319
|
-
* @
|
|
320
|
-
* @
|
|
321
|
-
*
|
|
322
|
-
* @description
|
|
323
|
-
* This method checks if the autoRestoreSortingState option is enabled in the tableOptions.
|
|
324
|
-
* If enabled, it uses the storeSortingService to retrieve the sort items array.
|
|
325
|
-
* If there are sort items present, it applies them to the table's body model using the doSort method.
|
|
326
|
-
*
|
|
327
|
-
* @returns {void}
|
|
512
|
+
* @param {number | string | ColumnDefIf} column - column index, property or column definition
|
|
513
|
+
* @param {boolean} visible - false hides the column
|
|
514
|
+
* @returns {boolean} false if the column has no column definition (or the table model can't hide columns)
|
|
328
515
|
*/
|
|
329
|
-
|
|
516
|
+
setColumnVisible(column: number | string | ColumnDefIf, visible: boolean): boolean;
|
|
330
517
|
/**
|
|
331
|
-
*
|
|
332
|
-
* specified in the tableOptions. This method is private and should not be called directly.
|
|
518
|
+
* Shows or hides the header and repaints (see {@link TableApi.setHeaderVisible}).
|
|
333
519
|
*
|
|
334
|
-
* @
|
|
520
|
+
* @param {boolean} visible - false hides the header
|
|
335
521
|
*/
|
|
336
|
-
|
|
522
|
+
setHeaderVisible(visible: boolean): void;
|
|
337
523
|
/**
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
* The text is measured with the font and padding of a rendered cell label (canvas `measureText`),
|
|
341
|
-
* so dates, numbers and long names are no longer cut off. To stay fast with millions of rows, the body
|
|
342
|
-
* is scanned once by character length and only the longest candidates per column are measured.
|
|
343
|
-
* Without a canvas (e.g. in tests) it falls back to 8 px per character.
|
|
524
|
+
* Shows or hides the footer and repaints (see {@link TableApi.setFooterVisible}).
|
|
344
525
|
*
|
|
345
|
-
* @
|
|
526
|
+
* @param {boolean} visible - false hides the footer
|
|
346
527
|
*/
|
|
347
|
-
|
|
348
|
-
|
|
528
|
+
setFooterVisible(visible: boolean): void;
|
|
529
|
+
private setAreaVisible;
|
|
349
530
|
autoResizeColumns(recalcWrappers?: boolean): void;
|
|
350
531
|
recalcWrappers(): void;
|
|
351
532
|
reSort(): void;
|
|
352
533
|
sort(compareFn: (a: any, b: any) => number): void;
|
|
534
|
+
/**
|
|
535
|
+
* Sorts the body by the given items (first = primary key) and sets the header icons – used to apply a stored
|
|
536
|
+
* state. Does not repaint.
|
|
537
|
+
*
|
|
538
|
+
* @param {SortItem[]} sortItems - column index and sort state per sorted column; `[]` only clears the icons
|
|
539
|
+
* @since 1.1.92
|
|
540
|
+
*/
|
|
541
|
+
applySortItems(sortItems: SortItem[]): void;
|
|
353
542
|
/**
|
|
354
543
|
* Sorts the (freshly filtered) body rows again, so a filter keeps the current order:
|
|
355
544
|
* the last `sort(compareFn)` call, otherwise the columns with a `sortState` (header icons).
|
|
@@ -363,7 +552,7 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
363
552
|
* The method performs the following:
|
|
364
553
|
* 1. Checks if the row is above the current viewport (before first visible row)
|
|
365
554
|
* 2. Checks if the row is below the current viewport (after last visible row)
|
|
366
|
-
* 3. Scrolls to make the row visible if needed
|
|
555
|
+
* 3. Scrolls to make the row visible if needed – vertically only, the horizontal position is kept
|
|
367
556
|
*
|
|
368
557
|
* @param {number} rowIndex - The index of the row to make visible
|
|
369
558
|
* @returns {boolean} Returns true if scrolling was needed and performed, false if the row was already visible
|
|
@@ -372,39 +561,24 @@ export declare class TableScope extends RenderScope implements OnActionTriggered
|
|
|
372
561
|
* // Ensure row 5 is visible in the viewport
|
|
373
562
|
* tableScope.ensureRowIsVisible(5);
|
|
374
563
|
*
|
|
375
|
-
* @example
|
|
376
|
-
* // Example usage in a component
|
|
377
|
-
* class MyTableComponent {
|
|
378
|
-
* private tableScope: TableScope;
|
|
379
|
-
*
|
|
380
|
-
* scrollToSpecificRow(rowIndex: number) {
|
|
381
|
-
* // This will scroll the row into view if it's not visible
|
|
382
|
-
* const didScroll = this.tableScope.ensureRowIsVisible(rowIndex);
|
|
383
|
-
*
|
|
384
|
-
* if (didScroll) {
|
|
385
|
-
* console.log(`Table scrolled to show row ${rowIndex}`);
|
|
386
|
-
* } else {
|
|
387
|
-
* console.log(`Row ${rowIndex} was already visible`);
|
|
388
|
-
* }
|
|
389
|
-
* }
|
|
390
|
-
* }
|
|
391
|
-
*
|
|
392
|
-
* @example
|
|
393
|
-
* // Example with row selection
|
|
394
|
-
* class TableHandler {
|
|
395
|
-
* selectAndShowRow(rowIndex: number) {
|
|
396
|
-
* // First ensure the row is visible
|
|
397
|
-
* this.tableScope.ensureRowIsVisible(rowIndex);
|
|
398
|
-
*
|
|
399
|
-
* // Then perform selection
|
|
400
|
-
* this.selectionModel.selectRow(rowIndex);
|
|
401
|
-
* }
|
|
402
|
-
* }
|
|
403
|
-
*
|
|
404
564
|
* @throws {Error} Implicitly may throw if rowIndex is not a number or if required properties are undefined
|
|
405
565
|
*
|
|
406
566
|
* @see {@link scrollToIndex} - The underlying method used for scrolling
|
|
407
567
|
* @see {@link getDisplayedRowCount} - Related method for getting visible row count
|
|
408
568
|
*/
|
|
409
569
|
ensureRowIsVisible(rowIndex: number): boolean;
|
|
570
|
+
/**
|
|
571
|
+
* Ensures that a column of the scrollable center area is fully visible by scrolling horizontally if necessary –
|
|
572
|
+
* the counterpart of {@link ensureRowIsVisible}. A column left of the viewport becomes the first visible column,
|
|
573
|
+
* a column right of it the last one (a column wider than the viewport: the first). The vertical position is kept.
|
|
574
|
+
*
|
|
575
|
+
* Fixed west/east columns are always visible: nothing to do.
|
|
576
|
+
*
|
|
577
|
+
* @param {number} columnIndex - model column index (west + center + east)
|
|
578
|
+
* @returns {boolean} true if the table was scrolled, false if the column was already visible (or is fixed / hidden / out of range)
|
|
579
|
+
*
|
|
580
|
+
* @example
|
|
581
|
+
* tableScope.ensureColumnIsVisible(12);
|
|
582
|
+
*/
|
|
583
|
+
ensureColumnIsVisible(columnIndex: number): boolean;
|
|
410
584
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guiexpert/table",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.92",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Dr. Marc Kronberg <info@gui.expert> (https://gui.expert)",
|
|
6
6
|
"repository": {
|
|
@@ -23,7 +23,10 @@
|
|
|
23
23
|
},
|
|
24
24
|
"exports": {
|
|
25
25
|
".": {
|
|
26
|
-
"import":
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./index.d.ts",
|
|
28
|
+
"default": "./index.js"
|
|
29
|
+
},
|
|
27
30
|
"require": "./index.cjs"
|
|
28
31
|
},
|
|
29
32
|
"./css/*": "./css/*",
|
|
@@ -34,7 +37,7 @@
|
|
|
34
37
|
},
|
|
35
38
|
"devDependencies": {
|
|
36
39
|
"@types/node": "^20.11.17",
|
|
37
|
-
"vite": "6.
|
|
40
|
+
"vite": "6.4.4",
|
|
38
41
|
"vite-plugin-dts": "^3.7.2",
|
|
39
42
|
"vite-plugin-eslint": "^1.8.1",
|
|
40
43
|
"vite-plugin-static-copy": "^0.17.0",
|
|
@@ -46,7 +49,12 @@
|
|
|
46
49
|
"typedoc-plugin-rename-defaults": "^0.7.0",
|
|
47
50
|
"typedoc-plugin-markdown": "3.17.1",
|
|
48
51
|
"typescript": "5.2.2",
|
|
49
|
-
"@babel/core": "~7.28.6"
|
|
52
|
+
"@babel/core": "~7.28.6",
|
|
53
|
+
"vitest": "5.0.4",
|
|
54
|
+
"@vitest/browser-playwright": "5.0.4",
|
|
55
|
+
"@vitest/coverage-v8": "5.0.4",
|
|
56
|
+
"axe-core": "4.10.3",
|
|
57
|
+
"playwright": "1.64.0"
|
|
50
58
|
},
|
|
51
59
|
"scripts": {
|
|
52
60
|
"i": "pnpm i",
|
|
@@ -54,10 +62,17 @@
|
|
|
54
62
|
"build": "vite build && npm run concat-css:main && npm run concat-css:dist",
|
|
55
63
|
"concat-css:main": "cat css/table*.css > css/main.css",
|
|
56
64
|
"concat-css:dist": "cat css/table*.css > dist/css/main.css",
|
|
57
|
-
"typedoc:
|
|
58
|
-
"typedoc:
|
|
59
|
-
"typedoc:docs-html
|
|
60
|
-
"typedoc:docs-md": "npx typedoc --plugin typedoc-plugin-markdown --out ../../apps/table-website/src/assets/docsmd
|
|
65
|
+
"typedoc:website": "node scripts/typedoc-website.mjs",
|
|
66
|
+
"typedoc:json": "npx typedoc --json ../../apps/table-website/src/assets/json/doctype.json",
|
|
67
|
+
"typedoc:docs-html": "npx typedoc --out ../../apps/table-website/src/assets/docs",
|
|
68
|
+
"typedoc:docs-md": "npx typedoc --plugin typedoc-plugin-markdown --out ../../apps/table-website/src/assets/docsmd",
|
|
69
|
+
"docs:check": "node scripts/check-doc-examples.mjs",
|
|
70
|
+
"test": "vitest run",
|
|
71
|
+
"test:unit": "vitest run --project unit",
|
|
72
|
+
"test:browser": "vitest run --project browser",
|
|
73
|
+
"test:watch": "vitest --project unit",
|
|
74
|
+
"test:coverage": "vitest run --coverage",
|
|
75
|
+
"test:types": "tsc -p tsconfig.spec.json --noEmit",
|
|
61
76
|
"npm-pub": "pnpm publish --no-git-checks --access public"
|
|
62
77
|
}
|
|
63
78
|
}
|