@guiexpert/table 1.1.90 → 1.1.91
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 +3 -1
- package/css/main.css +50 -4
- package/css/table-classes.css +30 -0
- package/css/table-color-classes.css +3 -1
- package/css/table-color-vars.css +4 -2
- package/css/table-tree.css +13 -1
- package/index.cjs +80 -89
- package/index.d.ts +192 -184
- package/index.js +3229 -1580
- 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 +53 -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 +64 -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/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 +32 -1
- package/lib/table/data/options/auto-restore-options.if.d.ts +8 -0
- 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/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/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 +37 -13
- package/lib/table/data/options/table-options.if.d.ts +117 -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 +6 -4
- package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +13 -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 +35 -31
- package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +153 -11
- package/lib/table/data/tablemodel/areamodel/area-model.d.ts +66 -104
- package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +56 -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 +10 -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 +2 -1
- package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +28 -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 +6 -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 +36 -5
- package/lib/table/event-adapter.d.ts +17 -10
- package/lib/table/event-checkbox-changed-handler.d.ts +2 -1
- package/lib/table/event-listener.if.d.ts +42 -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 +18 -9
- package/lib/table/render-scope.d.ts +115 -25
- 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 +36 -13
- 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/table-api.d.ts +296 -550
- package/lib/table/table-scope.d.ts +213 -86
- package/package.json +23 -8
package/lib/common/debounce.d.ts
CHANGED
|
@@ -3,5 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @param {number} [delay=500] - The delay threshold in milliseconds.
|
|
5
5
|
* @returns {Function} - The decorated method descriptor.
|
|
6
|
+
*
|
|
7
|
+
* @category Utilities
|
|
6
8
|
*/
|
|
7
9
|
export declare function AvoidDoubleExecution(delay?: number): (_target: any, _key: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes a value for HTML text and for (double or single quoted) HTML attribute values:
|
|
3
|
+
* `&`, `<`, `>`, `"` and `'` become entities; `null` and `undefined` become an empty string.
|
|
4
|
+
*
|
|
5
|
+
* Use it whenever data (cell values, labels, ids from the server …) is written into `innerHTML` – otherwise a value
|
|
6
|
+
* like `<img src=x onerror=alert(1)>` is executed as markup (HTML injection / XSS), and a `"` cuts an attribute value.
|
|
7
|
+
*
|
|
8
|
+
* @param {unknown} value - any value; it is converted with `String(value)`
|
|
9
|
+
* @returns {string} the escaped text
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // in a cell renderer
|
|
13
|
+
* const cellDiv = document.createElement('div');
|
|
14
|
+
* const cellValue = 'Tom & Jerry <3';
|
|
15
|
+
* cellDiv.innerHTML = `<div class="my-label" title="${escapeHtml(cellValue)}">${escapeHtml(cellValue)}</div>`;
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* escapeHtml('<b>"Tom" & Jerry</b>'); // "<b>"Tom" & Jerry</b>"
|
|
19
|
+
*
|
|
20
|
+
* @category Utilities
|
|
21
|
+
*/
|
|
22
|
+
export declare function escapeHtml(value: unknown): string;
|
|
@@ -1,58 +1,77 @@
|
|
|
1
|
+
/** @category Utilities */
|
|
1
2
|
export declare const PROPERTY_TYPE_KEY_ANY = "any";
|
|
3
|
+
/** @category Utilities */
|
|
2
4
|
export declare const PROPERTY_TYPE_KEY_UNDEFINED = "undefined";
|
|
5
|
+
/** @category Utilities */
|
|
3
6
|
export declare const PROPERTY_TYPE_KEY_NULL = "null";
|
|
7
|
+
/** @category Utilities */
|
|
4
8
|
export declare const PROPERTY_TYPE_KEY_STRING = "string";
|
|
9
|
+
/** @category Utilities */
|
|
5
10
|
export declare const PROPERTY_TYPE_KEY_NUMBER = "number";
|
|
11
|
+
/** @category Utilities */
|
|
6
12
|
export declare const PROPERTY_TYPE_KEY_BOOLEAN = "boolean";
|
|
13
|
+
/** @category Utilities */
|
|
7
14
|
export declare const PROPERTY_TYPE_KEY_ARRAY = "Array";
|
|
15
|
+
/** @category Utilities */
|
|
8
16
|
export declare const PROPERTY_TYPE_KEY_OBJECT = "object";
|
|
17
|
+
/** @category Utilities */
|
|
9
18
|
export declare const UNIMPORTANT_TYPES: string[];
|
|
19
|
+
/** @category Utilities */
|
|
10
20
|
export interface PropertyType {
|
|
11
21
|
type: string;
|
|
12
22
|
propertyName: string;
|
|
13
23
|
}
|
|
24
|
+
/** @category Utilities */
|
|
14
25
|
export declare class AnyPropertyType implements PropertyType {
|
|
15
26
|
propertyName: string;
|
|
16
27
|
type: string;
|
|
17
28
|
constructor(propertyName: string);
|
|
18
29
|
}
|
|
30
|
+
/** @category Utilities */
|
|
19
31
|
export declare class UndefinedPropertyType implements PropertyType {
|
|
20
32
|
propertyName: string;
|
|
21
33
|
type: string;
|
|
22
34
|
constructor(propertyName: string);
|
|
23
35
|
}
|
|
36
|
+
/** @category Utilities */
|
|
24
37
|
export declare class NullPropertyType implements PropertyType {
|
|
25
38
|
propertyName: string;
|
|
26
39
|
type: string;
|
|
27
40
|
constructor(propertyName: string);
|
|
28
41
|
}
|
|
42
|
+
/** @category Utilities */
|
|
29
43
|
export declare class StringPropertyType implements PropertyType {
|
|
30
44
|
propertyName: string;
|
|
31
45
|
type: string;
|
|
32
46
|
constructor(propertyName: string);
|
|
33
47
|
}
|
|
48
|
+
/** @category Utilities */
|
|
34
49
|
export declare class NumberPropertyType implements PropertyType {
|
|
35
50
|
propertyName: string;
|
|
36
51
|
type: string;
|
|
37
52
|
constructor(propertyName: string);
|
|
38
53
|
}
|
|
54
|
+
/** @category Utilities */
|
|
39
55
|
export declare class BooleanPropertyType implements PropertyType {
|
|
40
56
|
propertyName: string;
|
|
41
57
|
type: string;
|
|
42
58
|
constructor(propertyName: string);
|
|
43
59
|
}
|
|
60
|
+
/** @category Utilities */
|
|
44
61
|
export declare class ArrayPropertyType implements PropertyType {
|
|
45
62
|
propertyName: string;
|
|
46
63
|
items: PropertyType[];
|
|
47
64
|
type: string;
|
|
48
65
|
constructor(propertyName: string, items?: PropertyType[]);
|
|
49
66
|
}
|
|
67
|
+
/** @category Utilities */
|
|
50
68
|
export declare class PropertyItem {
|
|
51
69
|
propertyName: string;
|
|
52
70
|
types: PropertyType[];
|
|
53
71
|
constructor(propertyName: string, types?: PropertyType[]);
|
|
54
72
|
toString(): string;
|
|
55
73
|
}
|
|
74
|
+
/** @category Utilities */
|
|
56
75
|
export declare class ObjectPropertyType implements PropertyType {
|
|
57
76
|
propertyName: string;
|
|
58
77
|
className: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { PropertyType } from './domain/property-type';
|
|
2
|
-
import { ValueInfo } from './domain/value-info';
|
|
1
|
+
import { PropertyType } from './domain/property-type.js';
|
|
2
|
+
import { ValueInfo } from './domain/value-info.js';
|
|
3
3
|
|
|
4
|
+
/** @category Utilities */
|
|
4
5
|
export declare class PropertyTypeService {
|
|
5
6
|
debugging: boolean;
|
|
6
7
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PropertyType } from './domain/property-type';
|
|
1
|
+
import { PropertyType } from './domain/property-type.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
@@ -63,6 +63,8 @@ import { PropertyType } from './domain/property-type';
|
|
|
63
63
|
* const rootPropertyType: PropertyType = new PropertyTypeService().object2PropertyType(demoData, 'XyzRows');
|
|
64
64
|
* console.log(new SchemeGenerator().renderTypeScriptInterfaces(rootPropertyType).join('\n'));
|
|
65
65
|
*
|
|
66
|
+
*
|
|
67
|
+
* @category Utilities
|
|
66
68
|
*/
|
|
67
69
|
export declare class SchemeGenerator {
|
|
68
70
|
orOperator: string;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
/** @category Utilities */
|
|
1
2
|
export declare const entitySuffix = "Entity";
|
|
2
3
|
/**
|
|
3
4
|
* Generates an entity name by formatting the input name and appending a predefined suffix if necessary.
|
|
4
5
|
*
|
|
5
6
|
* @param {string} name - The base name to generate the entity name from.
|
|
6
7
|
* @return {string} The formatted entity name with the appropriate suffix.
|
|
8
|
+
*
|
|
9
|
+
* @category Utilities
|
|
7
10
|
*/
|
|
8
11
|
export declare function getEntityName(name: string): string;
|
|
9
12
|
/**
|
|
@@ -11,6 +14,8 @@ export declare function getEntityName(name: string): string;
|
|
|
11
14
|
*
|
|
12
15
|
* @param {string} text - The input string to process and trim suffixes from.
|
|
13
16
|
* @return {string} The modified string with the suffix removed, or the original string if no suffix was found.
|
|
17
|
+
*
|
|
18
|
+
* @category Utilities
|
|
14
19
|
*/
|
|
15
20
|
export declare function trimArraySuffixes(text: string): string;
|
|
16
21
|
/**
|
|
@@ -18,5 +23,7 @@ export declare function trimArraySuffixes(text: string): string;
|
|
|
18
23
|
*
|
|
19
24
|
* @param {string} text - The input string to be processed.
|
|
20
25
|
* @return {string} The transformed string with the first letter in uppercase. Returns an empty string if the input is invalid or empty.
|
|
26
|
+
*
|
|
27
|
+
* @category Utilities
|
|
21
28
|
*/
|
|
22
29
|
export declare function firstLetterUppercase(text: string): string;
|
package/lib/common/throttle.d.ts
CHANGED
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
* An array of action identifiers.
|
|
3
3
|
*
|
|
4
4
|
* @type {ReadonlyArray<string>}
|
|
5
|
+
*
|
|
6
|
+
* @category Keyboard
|
|
5
7
|
*/
|
|
6
|
-
export declare const actionIds: readonly ["COPY_2_CLIPBOARD", "START_EDITING", "TOGGLE_SELECTION", "SELECT_ALL", "DESELECT_ALL", "NAVIGATE_LEFT", "NAVIGATE_RIGHT", "NAVIGATE_UP", "NAVIGATE_DOWN"];
|
|
8
|
+
export declare const actionIds: readonly ["COPY_2_CLIPBOARD", "START_EDITING", "TOGGLE_SELECTION", "SELECT_ALL", "DESELECT_ALL", "NAVIGATE_LEFT", "NAVIGATE_RIGHT", "NAVIGATE_UP", "NAVIGATE_DOWN", "NAVIGATE_ROW_START", "NAVIGATE_ROW_END", "NAVIGATE_FIRST_CELL", "NAVIGATE_LAST_CELL", "NAVIGATE_PAGE_UP", "NAVIGATE_PAGE_DOWN", "ACTIVATE_CELL"];
|
|
7
9
|
/**
|
|
8
10
|
* Represents an action ID.
|
|
9
11
|
*
|
|
10
12
|
* @typedef {string} ActionId
|
|
11
13
|
* @memberof module:myModule
|
|
12
14
|
* @see module:myModule.actionIds
|
|
15
|
+
*
|
|
16
|
+
* @category Keyboard
|
|
13
17
|
*/
|
|
14
18
|
export type ActionId = typeof actionIds[number];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionId } from './action-id.type';
|
|
1
|
+
import { ActionId } from './action-id.type.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Class representing the mapping of OS X shortcut actions to action IDs.
|
|
@@ -6,6 +6,8 @@ import { ActionId } from './action-id.type';
|
|
|
6
6
|
* Use 'meta' for the MacOS 'cmd' key.
|
|
7
7
|
*
|
|
8
8
|
* @class OsxShortcutActionIdMapping
|
|
9
|
+
*
|
|
10
|
+
* @category Keyboard
|
|
9
11
|
*/
|
|
10
12
|
export declare class OsxShortcutActionIdMapping {
|
|
11
13
|
get(): {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { ActionId } from './action-id.type';
|
|
1
|
+
import { ActionId } from './action-id.type.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents a mapping of shortcut action IDs.
|
|
5
5
|
* @typedef {Object.<string, ActionId>} ShortcutActionIdMapping
|
|
6
|
+
*
|
|
7
|
+
* @category Keyboard
|
|
6
8
|
*/
|
|
7
9
|
export type ShortcutActionIdMapping = {
|
|
8
10
|
[key: string]: ActionId;
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a shortcut string (e.g. a key of a {@link ShortcutActionIdMapping}) so that it can be compared with
|
|
3
|
+
* {@link createHarmonizedShortcutByKeyboardEvent}: "+" becomes a space, symbols and synonyms are unified
|
|
4
|
+
* ("⌘"/"meta"/"command" → "cmd", "arrowup" → "up" …), modifiers come first.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* harmonizeShortcut('meta+c'); // "cmd c"
|
|
8
|
+
* harmonizeShortcut('arrowup'); // "up"
|
|
9
|
+
*
|
|
10
|
+
* @category Keyboard
|
|
11
|
+
*/
|
|
1
12
|
export declare function harmonizeShortcut(shortcut: string): string;
|
|
13
|
+
/** @category Keyboard */
|
|
2
14
|
export declare function createHarmonizedShortcutByKeyboardEvent(keyboardEvent: KeyboardEvent): string;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { TableScope } from '../table-scope';
|
|
2
|
-
import { ShortcutActionIdMapping } from './shortcut-actionid-mapping.type';
|
|
3
|
-
import { OnActionTriggeredIf } from './on-action-triggered.if';
|
|
1
|
+
import { TableScope } from '../table-scope.js';
|
|
2
|
+
import { ShortcutActionIdMapping } from './shortcut-actionid-mapping.type.js';
|
|
3
|
+
import { OnActionTriggeredIf } from './on-action-triggered.if.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Represents a service for managing shortcuts and triggering actions based on keyboard events.
|
|
7
|
+
*
|
|
8
|
+
* @category Keyboard
|
|
7
9
|
*/
|
|
8
10
|
export declare class ShortcutService {
|
|
9
11
|
protected tableScope: TableScope;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ActionId } from './action-id.type';
|
|
1
|
+
import { ActionId } from './action-id.type.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Class representing a mapping of Windows shortcut keys to action IDs.
|
|
5
5
|
*
|
|
6
6
|
* Use 'meta' for the MacOS 'cmd' key.
|
|
7
|
+
*
|
|
8
|
+
* @category Keyboard
|
|
7
9
|
*/
|
|
8
10
|
export declare class WindowsShortcutActionIdMapping {
|
|
9
11
|
get(): {
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { TableModelIf } from '../data/tablemodel/table-model.if.js';
|
|
2
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Row and column numbers for screen readers – computed once per render pass from the table model.
|
|
6
|
+
*
|
|
7
|
+
* With virtual scrolling only the visible rows and columns are in the DOM, so the table tells screen readers the
|
|
8
|
+
* real size (`aria-rowcount`, `aria-colcount` on the grid) and the position of every rendered row and cell
|
|
9
|
+
* (`aria-rowindex`, `aria-colindex`):
|
|
10
|
+
*
|
|
11
|
+
* - rows are numbered 1-based over header → body → footer; a hidden header/footer (`setHeaderVisible(false)`) counts 0,
|
|
12
|
+
* - the body counts **all** rows of the model (after the filter; a tree: the displayed nodes),
|
|
13
|
+
* - columns count only the **shown** columns (width > 0): a column hidden with `setColumnVisible(…, false)` has no
|
|
14
|
+
* `aria-colindex`, the following columns move up,
|
|
15
|
+
* - a body with an unknown row count (`getRowCount() < 0`) gives `aria-rowcount="-1"`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // 1 header row, 1000 body rows, 10 columns, column 3 hidden
|
|
19
|
+
* const info = AriaGridInfo.create(tableModel);
|
|
20
|
+
* info.rowCount; // 1001
|
|
21
|
+
* info.colCount; // 9
|
|
22
|
+
* info.rowIndex("header", 0); // 1
|
|
23
|
+
* info.rowIndex("body", 0); // 2
|
|
24
|
+
* info.colIndex(4); // 4 (column 3 is skipped)
|
|
25
|
+
* info.colIndex(3); // 0 (hidden)
|
|
26
|
+
*
|
|
27
|
+
* @since 1.1.91
|
|
28
|
+
* @category Accessibility
|
|
29
|
+
*/
|
|
30
|
+
export declare class AriaGridInfo {
|
|
31
|
+
readonly headerRowCount: number;
|
|
32
|
+
readonly bodyRowCount: number;
|
|
33
|
+
readonly footerRowCount: number;
|
|
34
|
+
private readonly colIndexMap;
|
|
35
|
+
/**
|
|
36
|
+
* @param {number} headerRowCount - rendered header rows (0 if the header is hidden)
|
|
37
|
+
* @param {number} bodyRowCount - body rows of the model (negative = unknown)
|
|
38
|
+
* @param {number} footerRowCount - rendered footer rows (0 if the footer is hidden)
|
|
39
|
+
* @param {number[]} colIndexMap - per model column its `aria-colindex` (0 = hidden)
|
|
40
|
+
*/
|
|
41
|
+
constructor(headerRowCount: number, bodyRowCount: number, footerRowCount: number, colIndexMap: number[]);
|
|
42
|
+
/**
|
|
43
|
+
* Reads the counts of a table model.
|
|
44
|
+
*
|
|
45
|
+
* @param {TableModelIf} tableModel - the table model (only the area models, header/footer visibility and column widths are read)
|
|
46
|
+
* @returns {AriaGridInfo} the counts
|
|
47
|
+
*/
|
|
48
|
+
static create(tableModel: Pick<TableModelIf, "getAreaModel" | "isHeaderVisibe" | "isFooterVisibe" | "getColumnCount" | "getColumnWidth">): AriaGridInfo;
|
|
49
|
+
/** `aria-rowcount` of the grid: header + body + footer rows, `-1` if the body does not know its row count. */
|
|
50
|
+
get rowCount(): number;
|
|
51
|
+
/** `aria-colcount` of the grid: the number of shown columns. */
|
|
52
|
+
get colCount(): number;
|
|
53
|
+
/**
|
|
54
|
+
* `aria-rowindex` of a row (1-based over header → body → footer).
|
|
55
|
+
*
|
|
56
|
+
* @param {AreaIdent} area - header, body or footer
|
|
57
|
+
* @param {number} rowIndex - row index in the area
|
|
58
|
+
* @returns {number} the 1-based row number in the whole grid
|
|
59
|
+
*/
|
|
60
|
+
rowIndex(area: AreaIdent, rowIndex: number): number;
|
|
61
|
+
/**
|
|
62
|
+
* `aria-colindex` of a column.
|
|
63
|
+
*
|
|
64
|
+
* @param {number} columnIndex - model column index (west + center + east)
|
|
65
|
+
* @returns {number} the 1-based position among the shown columns, 0 for a hidden or unknown column
|
|
66
|
+
*/
|
|
67
|
+
colIndex(columnIndex: number): number;
|
|
68
|
+
/**
|
|
69
|
+
* `aria-colspan` of a cell that spans columns: the number of **shown** columns it covers.
|
|
70
|
+
*
|
|
71
|
+
* @param {number} columnIndex - the first column of the cell
|
|
72
|
+
* @param {number} colspan - the number of model columns the cell spans
|
|
73
|
+
* @returns {number} the number of shown columns (at least 1)
|
|
74
|
+
*/
|
|
75
|
+
colSpan(columnIndex: number, colspan: number): number;
|
|
76
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
2
|
+
import { SideIdent } from '../data/side-ident.type.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Builds the element IDs the table needs for ARIA references (`aria-activedescendant`, `aria-owns`).
|
|
6
|
+
*
|
|
7
|
+
* All IDs of one table start with the same prefix: `ge-` + the `id` of the host element, or `ge-t<n>`
|
|
8
|
+
* (a running number) if the host has no id. Several tables on one page therefore never clash, and with a host id
|
|
9
|
+
* the IDs stay the same when the table is rebuilt.
|
|
10
|
+
*
|
|
11
|
+
* Only the focused cell carries an ID (see {@link cell}); the other cells have none (performance).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const ids = new AriaIds(AriaIds.createPrefix("orders"));
|
|
15
|
+
* ids.cell("body", 5, 2); // "ge-orders-body-r5-c2"
|
|
16
|
+
* ids.rowGroup("header", "center"); // "ge-orders-rg-header-center"
|
|
17
|
+
* ids.liveRegion(); // "ge-orders-live"
|
|
18
|
+
*
|
|
19
|
+
* @since 1.1.91
|
|
20
|
+
* @category Accessibility
|
|
21
|
+
*/
|
|
22
|
+
export declare class AriaIds {
|
|
23
|
+
readonly prefix: string;
|
|
24
|
+
private static counter;
|
|
25
|
+
constructor(prefix: string);
|
|
26
|
+
/**
|
|
27
|
+
* The ID prefix of a table.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} [hostId] - the `id` of the host element (may be empty)
|
|
30
|
+
* @returns {string} `"ge-" + hostId`, or `"ge-t" + n` with a number that is unique on the page
|
|
31
|
+
*/
|
|
32
|
+
static createPrefix(hostId?: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* The ID of a cell (set on the focused cell, referenced by `aria-activedescendant`).
|
|
35
|
+
*
|
|
36
|
+
* @param {AreaIdent} area - header, body or footer
|
|
37
|
+
* @param {number} rowIndex - row index in the area
|
|
38
|
+
* @param {number} columnIndex - model column index (west + center + east)
|
|
39
|
+
* @returns {string} e.g. `"ge-t1-body-r5-c2"`
|
|
40
|
+
*/
|
|
41
|
+
cell(area: AreaIdent, rowIndex: number, columnIndex: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* The ID of one of the nine row groups (`role="rowgroup"`), referenced by `aria-owns` of the host.
|
|
44
|
+
*
|
|
45
|
+
* @param {AreaIdent} area - header, body or footer
|
|
46
|
+
* @param {SideIdent} side - west, center or east
|
|
47
|
+
* @returns {string} e.g. `"ge-t1-rg-body-center"`
|
|
48
|
+
*/
|
|
49
|
+
rowGroup(area: AreaIdent, side: SideIdent): string;
|
|
50
|
+
/**
|
|
51
|
+
* The ID of the live region (the element that speaks announcements, see {@link LiveAnnouncer}).
|
|
52
|
+
*
|
|
53
|
+
* @returns {string} e.g. `"ge-t1-live"`
|
|
54
|
+
*/
|
|
55
|
+
liveRegion(): string;
|
|
56
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AriaTextsIf } from './aria-texts.if.js';
|
|
2
|
+
import { SortState } from '../data/common/sort-state.type.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The English default texts for screen readers (see {@link AriaTextsIf}).
|
|
6
|
+
*
|
|
7
|
+
* The table uses `AriaTexts.create(tableOptions.ariaTexts)`: your functions replace the defaults one by one.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const texts = AriaTexts.create({ copied: (n: number) => `${n} Zellen kopiert` });
|
|
11
|
+
* texts.copied(3); // "3 Zellen kopiert"
|
|
12
|
+
* texts.filtered(42); // "42 rows" (default)
|
|
13
|
+
*
|
|
14
|
+
* @since 1.1.91
|
|
15
|
+
* @category Accessibility
|
|
16
|
+
*/
|
|
17
|
+
export declare class AriaTexts implements AriaTextsIf {
|
|
18
|
+
/**
|
|
19
|
+
* The default texts, overridden by the given functions.
|
|
20
|
+
*
|
|
21
|
+
* @param {Partial<AriaTextsIf>} [overrides] - functions that replace the English defaults (e.g. `tableOptions.ariaTexts`)
|
|
22
|
+
* @returns {AriaTextsIf} a complete set of texts
|
|
23
|
+
*/
|
|
24
|
+
static create(overrides?: Partial<AriaTextsIf>): AriaTextsIf;
|
|
25
|
+
sorted(columnLabel: string, sortState: SortState): string;
|
|
26
|
+
filtered(rowCount: number): string;
|
|
27
|
+
copied(cellCount: number): string;
|
|
28
|
+
allSelected(): string;
|
|
29
|
+
selectionCleared(): string;
|
|
30
|
+
selectRow(rowNumber: number): string;
|
|
31
|
+
selectAllRows(): string;
|
|
32
|
+
expandGroup(groupLabel: string): string;
|
|
33
|
+
collapseGroup(groupLabel: string): string;
|
|
34
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { SortState } from '../data/common/sort-state.type.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The texts the table speaks to screen reader users: announcements of the live region (sorting, filter, copy,
|
|
5
|
+
* select all) and the accessible names of controls the table renders (row checkboxes, header group toggles).
|
|
6
|
+
*
|
|
7
|
+
* The defaults are English ({@link AriaTexts}). Override single functions – e.g. for another language – with
|
|
8
|
+
* {@link TableOptionsIf.ariaTexts}; the others keep their default.
|
|
9
|
+
*
|
|
10
|
+
* Every function returns plain text. It is written with `textContent` / `setAttribute`, never as HTML,
|
|
11
|
+
* so data in it (column labels, group labels) needs no escaping.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const tableOptions: TableOptionsIf = {
|
|
15
|
+
* ...new TableOptions(),
|
|
16
|
+
* ariaTexts: {
|
|
17
|
+
* filtered: (rowCount: number) => `${rowCount} Zeilen`,
|
|
18
|
+
* sorted: (column: string, state: SortState) => state ? `Sortiert nach ${column}` : `Sortierung entfernt`,
|
|
19
|
+
* },
|
|
20
|
+
* };
|
|
21
|
+
*
|
|
22
|
+
* @since 1.1.91
|
|
23
|
+
* @see Training: [Accessible tables: keyboard and screen readers](https://gui.expert/training/accessibility/)
|
|
24
|
+
* @category Accessibility
|
|
25
|
+
*/
|
|
26
|
+
export interface AriaTextsIf {
|
|
27
|
+
/**
|
|
28
|
+
* Announced after a column was sorted (header double click, Enter on a header cell, {@link TableApi.sortByColumn}).
|
|
29
|
+
*
|
|
30
|
+
* @param {string} columnLabel - the header label of the column
|
|
31
|
+
* @param {SortState} sortState - the new sort state, `""` = unsorted
|
|
32
|
+
* @returns {string} default: `"Sorted by Total, descending"`, `"Sorting of Total removed"`
|
|
33
|
+
*/
|
|
34
|
+
sorted(columnLabel: string, sortState: SortState): string;
|
|
35
|
+
/**
|
|
36
|
+
* Announced after the external filter changed ({@link TableApi.externalFilterChanged}).
|
|
37
|
+
*
|
|
38
|
+
* @param {number} rowCount - the number of rows the body shows now
|
|
39
|
+
* @returns {string} default: `"42 rows"`, `"1 row"`, `"No rows"`
|
|
40
|
+
*/
|
|
41
|
+
filtered(rowCount: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* Announced after cells were copied to the clipboard (Ctrl/⌘+C, {@link TableApi.copyToClipboard}).
|
|
44
|
+
*
|
|
45
|
+
* @param {number} cellCount - the number of copied cells
|
|
46
|
+
* @returns {string} default: `"12 cells copied"`, `"1 cell copied"`
|
|
47
|
+
*/
|
|
48
|
+
copied(cellCount: number): string;
|
|
49
|
+
/**
|
|
50
|
+
* Announced after Ctrl/⌘+A.
|
|
51
|
+
*
|
|
52
|
+
* @returns {string} default: `"All cells selected"`
|
|
53
|
+
*/
|
|
54
|
+
allSelected(): string;
|
|
55
|
+
/**
|
|
56
|
+
* Announced after the selection was cleared by the keyboard (e.g. Ctrl+Shift+A).
|
|
57
|
+
*
|
|
58
|
+
* @returns {string} default: `"Selection cleared"`
|
|
59
|
+
*/
|
|
60
|
+
selectionCleared(): string;
|
|
61
|
+
/**
|
|
62
|
+
* The accessible name of the checkbox of a body row.
|
|
63
|
+
*
|
|
64
|
+
* @param {number} rowNumber - 1-based number of the row in the body
|
|
65
|
+
* @returns {string} default: `"Select row 5"`
|
|
66
|
+
*/
|
|
67
|
+
selectRow(rowNumber: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* The accessible name of the checkbox in the header (checks all rows).
|
|
70
|
+
*
|
|
71
|
+
* @returns {string} default: `"Select all rows"`
|
|
72
|
+
*/
|
|
73
|
+
selectAllRows(): string;
|
|
74
|
+
/**
|
|
75
|
+
* The accessible name of the toggle button of a collapsed header group.
|
|
76
|
+
*
|
|
77
|
+
* @param {string} groupLabel - the label of the group
|
|
78
|
+
* @returns {string} default: `"Expand group Q1"`
|
|
79
|
+
*/
|
|
80
|
+
expandGroup(groupLabel: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* The accessible name of the toggle button of an expanded header group.
|
|
83
|
+
*
|
|
84
|
+
* @param {string} groupLabel - the label of the group
|
|
85
|
+
* @returns {string} default: `"Collapse group Q1"`
|
|
86
|
+
*/
|
|
87
|
+
collapseGroup(groupLabel: string): string;
|
|
88
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A polite live region (`role="status"`) that lets screen readers speak short messages: "Sorted by Total,
|
|
5
|
+
* descending", "42 rows", "12 cells copied" … Every table has one ({@link TableApi.announce}).
|
|
6
|
+
*
|
|
7
|
+
* The element lives in `document.body`, not in the table: a `role="grid"` may only contain rows, and the body is
|
|
8
|
+
* never managed by a framework. The table creates it in `firstInit()` – before the first message. Known limit: inside
|
|
9
|
+
* a modal dialog (`aria-modal="true"`) screen readers ignore content outside the dialog; announce such messages with
|
|
10
|
+
* a live region of your own in the dialog. It is visually hidden (inline styles – it works without the table CSS, e.g. outside
|
|
11
|
+
* a shadow root) and removed by {@link destroy} (called by `TableScope.destroy()`).
|
|
12
|
+
*
|
|
13
|
+
* The text is written with `textContent` (never HTML). It is set after a short delay and the region is emptied
|
|
14
|
+
* first, so the same message is announced again, and a burst of messages (typing in a filter field) ends with one
|
|
15
|
+
* announcement of the last one.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const announcer = new LiveAnnouncer(document, "orders-live", new SimpleDomService());
|
|
19
|
+
* announcer.announce("Orders loaded");
|
|
20
|
+
* // later
|
|
21
|
+
* announcer.destroy();
|
|
22
|
+
*
|
|
23
|
+
* @since 1.1.91
|
|
24
|
+
* @category Accessibility
|
|
25
|
+
*/
|
|
26
|
+
export declare class LiveAnnouncer {
|
|
27
|
+
private readonly document;
|
|
28
|
+
private readonly id;
|
|
29
|
+
private readonly domService;
|
|
30
|
+
/** Delay in ms before a message is written (default for {@link announce}). */
|
|
31
|
+
static defaultDelayInMs: number;
|
|
32
|
+
private element?;
|
|
33
|
+
private timeout?;
|
|
34
|
+
constructor(document: Document | undefined, id: string, domService: DomServiceIf);
|
|
35
|
+
/**
|
|
36
|
+
* Speaks a message (replaces a message that is still waiting).
|
|
37
|
+
*
|
|
38
|
+
* @param {string} text - plain text
|
|
39
|
+
* @param {number} [delayInMs=LiveAnnouncer.defaultDelayInMs] - wait this long before the text is written
|
|
40
|
+
*/
|
|
41
|
+
announce(text: string, delayInMs?: number): void;
|
|
42
|
+
/**
|
|
43
|
+
* The live region element (created on the first call).
|
|
44
|
+
*
|
|
45
|
+
* @returns {HTMLElement | undefined} undefined without a document body (e.g. server side rendering)
|
|
46
|
+
*/
|
|
47
|
+
getElement(): HTMLElement | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Cancels a waiting message and removes the live region from the document.
|
|
50
|
+
*/
|
|
51
|
+
destroy(): void;
|
|
52
|
+
private getOrCreateElement;
|
|
53
|
+
}
|