@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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The overlay the table shows over its body:
|
|
3
|
+
* - `"none"` – no overlay;
|
|
4
|
+
* - `"loading"` – spinner + "Loading…" ({@link TableApi.showLoadingOverlay});
|
|
5
|
+
* - `"noRows"` – "No rows to show": the body is empty ({@link OverlayOptionsIf.autoNoRows}) or
|
|
6
|
+
* {@link TableApi.showNoRowsOverlay} was called;
|
|
7
|
+
* - `"noMatches"` – "No matching rows": the body has rows, but the external filter hides all of them.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* if (tableApi.getOverlayState() === "noMatches") {
|
|
11
|
+
* console.log("Reset the filter to see rows again");
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* @since 1.1.92
|
|
15
|
+
* @category Overlays
|
|
16
|
+
*/
|
|
17
|
+
export type GeOverlayKind = "none" | "loading" | "noRows" | "noMatches";
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ConvenienceDomService } from '../service/convenience-dom.service.js';
|
|
2
|
+
import { OverlayOptionsIf } from '../data/options/overlay-options.if.js';
|
|
3
|
+
import { OverlayOptions } from '../data/options/overlay-options.js';
|
|
4
|
+
import { GeOverlayKind } from './ge-overlay-kind.type.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A change of the shown overlay, reported by {@link TableOverlay.update}.
|
|
8
|
+
*
|
|
9
|
+
* @since 1.1.92
|
|
10
|
+
* @category Internals
|
|
11
|
+
*/
|
|
12
|
+
export interface TableOverlayChange {
|
|
13
|
+
previous: GeOverlayKind;
|
|
14
|
+
kind: GeOverlayKind;
|
|
15
|
+
/** the text of the new overlay (`""` for `"none"`) */
|
|
16
|
+
text: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The overlay layer over the table body: "Loading…" with a CSS spinner, "No rows to show", "No matching rows".
|
|
20
|
+
* One element per table (`.ge-table-overlay`, a child of the host, `aria-hidden` – the table announces the texts
|
|
21
|
+
* through its live region instead). It is created once and only changed when the shown overlay changes, so
|
|
22
|
+
* scrolling costs one comparison per frame.
|
|
23
|
+
*
|
|
24
|
+
* Apps use it through {@link TableApi.showLoadingOverlay}, {@link TableApi.showNoRowsOverlay},
|
|
25
|
+
* {@link TableApi.hideOverlay} and {@link TableApi.getOverlayState}; texts and behaviour come from
|
|
26
|
+
* {@link TableOptionsIf.overlayOptions}.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* const overlay = new TableOverlay(hostDiv, new ConvenienceDomService(new SimpleDomService()), {}, () => {
|
|
30
|
+
* overlay.update(0, 0);
|
|
31
|
+
* });
|
|
32
|
+
* overlay.showLoading("Saving…"); // calls the update callback
|
|
33
|
+
* console.log(overlay.getState()); // "loading"
|
|
34
|
+
* overlay.destroy();
|
|
35
|
+
*
|
|
36
|
+
* @since 1.1.92
|
|
37
|
+
* @category Internals
|
|
38
|
+
*/
|
|
39
|
+
export declare class TableOverlay {
|
|
40
|
+
private readonly dom;
|
|
41
|
+
private readonly requestUpdate;
|
|
42
|
+
/** The overlay element (`.ge-table-overlay`). */
|
|
43
|
+
readonly element: HTMLDivElement;
|
|
44
|
+
/** The content box, centered in the overlay (`.ge-table-overlay-content`). */
|
|
45
|
+
readonly contentElement: HTMLDivElement;
|
|
46
|
+
readonly options: OverlayOptions;
|
|
47
|
+
private manual?;
|
|
48
|
+
private delayTimeout?;
|
|
49
|
+
private shownKind;
|
|
50
|
+
private shownText;
|
|
51
|
+
private shownBlocking;
|
|
52
|
+
private bounds;
|
|
53
|
+
private destroyed;
|
|
54
|
+
/**
|
|
55
|
+
* @param {HTMLDivElement} hostElement - the table host; the overlay is appended to it
|
|
56
|
+
* @param {ConvenienceDomService} dom - DOM access of the table
|
|
57
|
+
* @param {Partial<OverlayOptionsIf>} [overlayOptions] - {@link TableOptionsIf.overlayOptions}
|
|
58
|
+
* @param {() => void} [requestUpdate] - called when the requested overlay changed (API call, end of the
|
|
59
|
+
* delay); the table answers with {@link update}
|
|
60
|
+
*/
|
|
61
|
+
constructor(hostElement: HTMLDivElement, dom: ConvenienceDomService, overlayOptions?: Partial<OverlayOptionsIf>, requestUpdate?: () => void);
|
|
62
|
+
/**
|
|
63
|
+
* Requests the loading overlay (after {@link OverlayOptionsIf.loadingDelayInMs}).
|
|
64
|
+
*
|
|
65
|
+
* @param {string} [text] - text for this overlay, default {@link OverlayOptionsIf.loadingText}
|
|
66
|
+
*/
|
|
67
|
+
showLoading(text?: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Requests the "no rows" overlay, also over rows and with {@link OverlayOptionsIf.autoNoRows} `false`.
|
|
70
|
+
*
|
|
71
|
+
* @param {string} [text] - text for this overlay, default {@link OverlayOptionsIf.noRowsText}
|
|
72
|
+
*/
|
|
73
|
+
showNoRows(text?: string): void;
|
|
74
|
+
/** Ends a requested overlay; the automatic "no rows" / "no matching rows" stays as long as the body is empty. */
|
|
75
|
+
hide(): void;
|
|
76
|
+
/** The overlay that is shown now. */
|
|
77
|
+
getState(): GeOverlayKind;
|
|
78
|
+
/** `true` while a loading overlay blocks mouse and keyboard ({@link OverlayOptionsIf.blockInteractionWhileLoading}). */
|
|
79
|
+
isBlocking(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* `true` for a mouse event on a blocking loading overlay: the table ignores it (click, double click, mouse down,
|
|
82
|
+
* context menu, hover). The event is not stopped – page handlers (e.g. "click outside closes the menu") see it.
|
|
83
|
+
*
|
|
84
|
+
* @param {Event} evt - a mouse event that reached the host
|
|
85
|
+
* @returns {boolean} the table must not react to it
|
|
86
|
+
*/
|
|
87
|
+
isEventBlocked(evt: Event): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Shows the overlay that fits the body: a requested one, else "no matching rows" / "no rows to show"
|
|
90
|
+
* for an empty body. Changes the DOM only if the result differs from what is shown.
|
|
91
|
+
*
|
|
92
|
+
* @param {number} rowCount - `getRowCount()` of the body
|
|
93
|
+
* @param {number} [unfilteredRowCount] - `getUnfilteredRowCount()` of the body (only needed for 0 rows)
|
|
94
|
+
* @returns {TableOverlayChange | undefined} the change, `undefined` if nothing changed
|
|
95
|
+
*/
|
|
96
|
+
update(rowCount: number, unfilteredRowCount?: number): TableOverlayChange | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Places the overlay over the body (px, relative to the host). Unchanged values do not touch the DOM.
|
|
99
|
+
*/
|
|
100
|
+
setBounds(left: number, top: number, width: number, height: number): void;
|
|
101
|
+
/** Removes the overlay element and a waiting delay. Calling it twice is harmless. */
|
|
102
|
+
destroy(): void;
|
|
103
|
+
private getText;
|
|
104
|
+
private render;
|
|
105
|
+
/** The element of {@link OverlayOptionsIf.getOverlayElement}; an error falls back to the built-in content. */
|
|
106
|
+
private getOwnElement;
|
|
107
|
+
private clearDelay;
|
|
108
|
+
}
|
|
@@ -1,25 +1,29 @@
|
|
|
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 {
|
|
1
|
+
import { TableOverlayChange } from './overlay/table-overlay.js';
|
|
2
|
+
import { EleScope } from './ele-scope.js';
|
|
3
|
+
import { TableModelIf } from './data/tablemodel/table-model.if.js';
|
|
4
|
+
import { ConvenienceDomService } from './service/convenience-dom.service.js';
|
|
5
|
+
import { TableOptionsIf } from './data/options/table-options.if.js';
|
|
6
|
+
import { CellRange } from './data/common/cell-range.js';
|
|
7
|
+
import { RendererCleanupFnType } from './renderer/renderer-cleanup-fn.type.js';
|
|
8
|
+
import { AreaIdent } from './data/tablemodel/area-ident.type.js';
|
|
9
|
+
import { SideIdent } from './data/side-ident.type.js';
|
|
10
|
+
import { DivScope } from './data/div-scope.type.js';
|
|
11
|
+
import { AreaModelIf } from './data/tablemodel/areamodel/area-model.if.js';
|
|
12
|
+
import { ArgsAdjustColumnsToRowParentParams } from './data/common/args-adjust-columns-to-row-parent-params.js';
|
|
13
|
+
import { ArgsRenderCellDiv } from './data/common/args-render-cell-div.js';
|
|
14
|
+
import { StoreStateScrollPosService } from './service/store-state-scroll-pos.service.js';
|
|
15
|
+
import { GeMouseEvent } from './data/common/event/ge-mouse-event.js';
|
|
16
|
+
import { GeoData } from './data/geo-data.js';
|
|
17
|
+
import { SelectionModelIf } from './selection/selection-model.if.js';
|
|
18
|
+
import { GetT } from './data/common/get-t.js';
|
|
19
|
+
import { FocusModelIf } from './focus/focus-model.if.js';
|
|
20
|
+
import { ColAndRowspanModel } from './data/tablemodel/areamodel/col-and-rowspan-model.js';
|
|
21
|
+
import { AreaObjectMapType } from './data/common/area-map.type.js';
|
|
22
|
+
import { TableCellUpdateEventIf } from './data/common/event/input/table-cell-update-event.if.js';
|
|
23
|
+
import { AriaGridInfo } from './aria/aria-grid-info.js';
|
|
24
|
+
import { AriaTextsIf } from './aria/aria-texts.if.js';
|
|
22
25
|
|
|
26
|
+
/** @category Internals */
|
|
23
27
|
export declare class RenderScope extends EleScope {
|
|
24
28
|
firstVisibleRowIndex: number;
|
|
25
29
|
lastVisibleRowIndex: number;
|
|
@@ -31,11 +35,11 @@ export declare class RenderScope extends EleScope {
|
|
|
31
35
|
protected dragging: boolean;
|
|
32
36
|
protected editing: boolean;
|
|
33
37
|
protected storedColumnWidths: number[];
|
|
38
|
+
/** @deprecated since 1.1.92 – no longer used, see {@link TableStateService}. */
|
|
34
39
|
protected storeScrollPosStateService?: StoreStateScrollPosService;
|
|
35
40
|
protected getSelectionModel?: GetT<SelectionModelIf>;
|
|
36
41
|
protected getFocusModel?: GetT<FocusModelIf>;
|
|
37
42
|
protected scrollLeft: number;
|
|
38
|
-
private scrollPosSaveTimeout?;
|
|
39
43
|
protected scrollViewportLeft: number;
|
|
40
44
|
protected scrollFactorY: number;
|
|
41
45
|
protected scrollFactorX: number;
|
|
@@ -59,11 +63,27 @@ export declare class RenderScope extends EleScope {
|
|
|
59
63
|
protected areaHeightsOfRenderPass?: {
|
|
60
64
|
[key in AreaIdent]?: number;
|
|
61
65
|
};
|
|
62
|
-
|
|
66
|
+
protected debounceTimeout?: ReturnType<typeof setTimeout> | null;
|
|
63
67
|
private editorRenderer?;
|
|
64
68
|
private editorRendererColumn?;
|
|
65
69
|
private editorRendererRow?;
|
|
66
70
|
private removables;
|
|
71
|
+
/** Texts for screen readers (English defaults + `tableOptions.ariaTexts`). @since 1.1.91 */
|
|
72
|
+
readonly ariaTexts: AriaTextsIf;
|
|
73
|
+
/** Row/column numbers of the current render pass (see {@link getAriaGridInfo}). */
|
|
74
|
+
private ariaGridInfo?;
|
|
75
|
+
private readonly treeAriaInfo;
|
|
76
|
+
/** The cell that has the keyboard focus in this render pass (→ `aria-activedescendant`). */
|
|
77
|
+
private ariaFocusedCell?;
|
|
78
|
+
/** `aria-selected` on body cells ("cell") or rows ("row") – from the type of the selection model. */
|
|
79
|
+
private ariaSelectionKind;
|
|
80
|
+
/** Span cells rendered in their row this pass – drawBigCell() draws them again on top (screen readers: once). */
|
|
81
|
+
private renderedSpanCells;
|
|
82
|
+
/**
|
|
83
|
+
* The header cell with the keyboard focus (row, column of the cell's origin) – set by the arrow-up key in the
|
|
84
|
+
* first body row, see `TableScope`. `undefined`: the focus is in the body ({@link FocusModelIf}).
|
|
85
|
+
*/
|
|
86
|
+
protected headerFocus?: [number, number];
|
|
67
87
|
constructor(hostElement: HTMLDivElement, tableModel: TableModelIf, dom: ConvenienceDomService, tableOptions: TableOptionsIf);
|
|
68
88
|
isEditing(): boolean;
|
|
69
89
|
/**
|
|
@@ -105,20 +125,51 @@ export declare class RenderScope extends EleScope {
|
|
|
105
125
|
*/
|
|
106
126
|
repaintHard(): void;
|
|
107
127
|
/**
|
|
108
|
-
* Recalculates the column widths of the table.
|
|
128
|
+
* Recalculates the column widths of the table (% and weight columns depend on the available width) and repaints.
|
|
109
129
|
*
|
|
110
|
-
* @param {number} [clientWidth] - The
|
|
130
|
+
* @param {number} [clientWidth] - The (new) width of the host element, e.g. from a ResizeObserver.
|
|
131
|
+
* Default: its current width.
|
|
111
132
|
*
|
|
112
133
|
* @return {undefined}
|
|
113
134
|
*/
|
|
114
135
|
recalcColumnWidths(clientWidth?: number): void;
|
|
136
|
+
/**
|
|
137
|
+
* The width that % and weight columns share: host width minus the fixed west columns and a vertical scroll bar.
|
|
138
|
+
*
|
|
139
|
+
* @param {number} [hostWidth] - the width of the host element (default: its current client width)
|
|
140
|
+
* @returns {number} the width in px (0 if the host has no width yet, e.g. while it is hidden)
|
|
141
|
+
*/
|
|
142
|
+
protected getAvailableColumnWidth(hostWidth?: number): number;
|
|
115
143
|
/**
|
|
116
144
|
* Adjusts the table after scrolling. This method performs various adjustments
|
|
117
145
|
* to the table's appearance and behavior after a scroll event occurs.
|
|
118
146
|
*/
|
|
119
147
|
adjustAfterScrolling(): void;
|
|
120
148
|
/**
|
|
121
|
-
*
|
|
149
|
+
* Called at the end of every render pass (scroll, repaint). {@link TableScope} marks the scroll position of the
|
|
150
|
+
* table state as changed here (stored and reported debounced, see {@link TableStateService}).
|
|
151
|
+
*
|
|
152
|
+
* @since 1.1.92
|
|
153
|
+
*/
|
|
154
|
+
protected afterRenderPass(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Shows the overlay that fits the body now (see {@link TableOverlay.update}) and reports a change to
|
|
157
|
+
* {@link onOverlayChanged}.
|
|
158
|
+
*
|
|
159
|
+
* @since 1.1.92
|
|
160
|
+
*/
|
|
161
|
+
protected updateOverlay(): void;
|
|
162
|
+
/**
|
|
163
|
+
* Called after the shown overlay changed (ARIA in {@link TableScope}).
|
|
164
|
+
*
|
|
165
|
+
* @param {TableOverlayChange} _change - previous and new overlay, its text
|
|
166
|
+
* @since 1.1.92
|
|
167
|
+
*/
|
|
168
|
+
protected onOverlayChanged(_change: TableOverlayChange): void;
|
|
169
|
+
/**
|
|
170
|
+
* Marks the scroll position as changed (it is stored with the table state, see {@link TableStateService}).
|
|
171
|
+
*
|
|
172
|
+
* @deprecated since 1.1.92 – the table does this after every render pass.
|
|
122
173
|
*
|
|
123
174
|
* @return {void}
|
|
124
175
|
*/
|
|
@@ -225,6 +276,56 @@ export declare class RenderScope extends EleScope {
|
|
|
225
276
|
* @protected
|
|
226
277
|
*/
|
|
227
278
|
protected adjustArea(areaIdent: AreaIdent, yStart?: number): void;
|
|
279
|
+
/**
|
|
280
|
+
* Row and column numbers for screen readers of the current render pass (computed at its start).
|
|
281
|
+
*
|
|
282
|
+
* @returns {AriaGridInfo} the counts
|
|
283
|
+
* @since 1.1.91
|
|
284
|
+
*/
|
|
285
|
+
getAriaGridInfo(): AriaGridInfo;
|
|
286
|
+
/** `role="row"` and `aria-rowindex`; body rows of a tree: level, position, expanded; row selection: selected. */
|
|
287
|
+
protected applyRowAria(rowDiv: HTMLDivElement, areaIdent: AreaIdent, areaModel: AreaModelIf, rowIndex: number, rowState?: boolean): void;
|
|
288
|
+
/**
|
|
289
|
+
* `role`, `aria-colindex`, spans and `aria-sort` of a cell.
|
|
290
|
+
*
|
|
291
|
+
* @returns {[number, number]} rowspan and colspan of the cell (≥ 1)
|
|
292
|
+
*/
|
|
293
|
+
protected applyCellAria(cell: HTMLDivElement, areaIdent: AreaIdent, areaModel: AreaModelIf, rowIndex: number, columnIndex: number): [number, number];
|
|
294
|
+
/** An empty row group has role "presentation" (a rowgroup needs rows) – changed only when it changes. */
|
|
295
|
+
private updateRowGroupRoles;
|
|
296
|
+
/** Writes an attribute of the host only if it changed (every write may notify screen readers). */
|
|
297
|
+
private setHostAttribute;
|
|
298
|
+
/** Counts, multi selection and the active cell on the host – at the end of every render pass. */
|
|
299
|
+
private updateHostAria;
|
|
300
|
+
/**
|
|
301
|
+
* Remembers the focused cell of this pass. A cell drawn twice (header groups: in its row and again by
|
|
302
|
+
* drawBigCell, that copy is aria-hidden) keeps the first, visible-to-screen-readers element.
|
|
303
|
+
*/
|
|
304
|
+
private setAriaFocusedCell;
|
|
305
|
+
/** "row" for a row selection model, "none" for type "none" (or no model), otherwise "cell". */
|
|
306
|
+
private getAriaSelectionKind;
|
|
307
|
+
/**
|
|
308
|
+
* The label of a column for screen readers: the header label of its column definition, otherwise the text of the
|
|
309
|
+
* lowest header row, otherwise the property.
|
|
310
|
+
*
|
|
311
|
+
* @param {number} columnIndex - model column index
|
|
312
|
+
* @returns {string} e.g. "Total"
|
|
313
|
+
* @since 1.1.91
|
|
314
|
+
*/
|
|
315
|
+
getColumnAriaLabel(columnIndex: number): string;
|
|
316
|
+
/** Name of a row checkbox: "Select row 5" (body) resp. "Select all rows" (header). */
|
|
317
|
+
protected getCheckboxAriaLabel(areaIdent: AreaIdent, rowIndex: number): string;
|
|
318
|
+
/** Gives a form control a name, unless the renderer gave it one. */
|
|
319
|
+
private labelControl;
|
|
320
|
+
/**
|
|
321
|
+
* Names for controls of built-in renderers: row checkboxes ({@link CheckboxColumnDef}), boolean property
|
|
322
|
+
* checkboxes and – with own `ariaTexts` – header group toggles. Cheap class checks first: most cells have none.
|
|
323
|
+
*/
|
|
324
|
+
private labelRendererControls;
|
|
325
|
+
/** The cell div of a column among the children of the given row divs. */
|
|
326
|
+
private findCellDiv;
|
|
327
|
+
/** Removes the cached row divs that are no longer in the area (see `ConvenienceDomService.addRowDiv`). */
|
|
328
|
+
private pruneRowDivCache;
|
|
228
329
|
/**
|
|
229
330
|
* Draws big cells (rowspan and or colspan) in body/center
|
|
230
331
|
* @param range CellRange
|
|
@@ -318,6 +419,19 @@ export declare class RenderScope extends EleScope {
|
|
|
318
419
|
* @param {GeMouseEvent} mouseMoveEvent - The mouse move event object.
|
|
319
420
|
*/
|
|
320
421
|
protected adjustHoverColumns(mouseMoveEvent: GeMouseEvent): void;
|
|
422
|
+
/**
|
|
423
|
+
* The x position of a column relative to the host element: fixed west and east columns do not scroll.
|
|
424
|
+
*
|
|
425
|
+
* @param {number} columnIndex - model index of the column
|
|
426
|
+
* @param {number} columnLeft - x position of the column over all columns (`getXPosByColumnIndex`)
|
|
427
|
+
* @returns {number} the left position in px
|
|
428
|
+
*/
|
|
429
|
+
protected getColumnLeftInHost(columnIndex: number, columnLeft: number): number;
|
|
430
|
+
/**
|
|
431
|
+
* Content pixels of the center columns scrolled out on the left – the offset that is actually rendered
|
|
432
|
+
* (see adjustColumnsToRowParent), the horizontal counterpart of `contentScrollTop`.
|
|
433
|
+
*/
|
|
434
|
+
protected getContentScrollLeft(): number;
|
|
321
435
|
/**
|
|
322
436
|
* Hide hover column.
|
|
323
437
|
*
|
|
@@ -366,7 +480,7 @@ export declare class RenderScope extends EleScope {
|
|
|
366
480
|
* @param {number} [y=0] - The starting y-position.
|
|
367
481
|
* @return {number} The final y-position after rendering all the content.
|
|
368
482
|
*/
|
|
369
|
-
protected renderContentOfDraggingColumnForArea(columnGeo: GeoData, areaIdent: AreaIdent, y?: number): number;
|
|
483
|
+
protected renderContentOfDraggingColumnForArea(columnGeo: GeoData, areaIdent: AreaIdent, y?: number, firstRowIndex?: number, maxY?: number): number;
|
|
370
484
|
/**
|
|
371
485
|
* Hides the dragging column by applying a 'display: none' style to it.
|
|
372
486
|
* This method is protected and can only be accessed within the class.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AreaIdent } from '../../data/tablemodel/area-ident.type';
|
|
2
|
-
import { ActionEventIf } from './action-event.if';
|
|
3
|
-
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if';
|
|
1
|
+
import { AreaIdent } from '../../data/tablemodel/area-ident.type.js';
|
|
2
|
+
import { ActionEventIf } from './action-event.if.js';
|
|
3
|
+
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if.js';
|
|
4
4
|
|
|
5
|
+
/** @category Renderers & editing */
|
|
5
6
|
export declare class ActionEvent implements ActionEventIf {
|
|
6
7
|
action: string;
|
|
7
8
|
area: AreaIdent;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { CellRendererIf } from '../cell-render.if';
|
|
2
|
-
import { AreaIdent } from '../../data/tablemodel/area-ident.type';
|
|
3
|
-
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if';
|
|
4
|
-
import { DomServiceIf } from '../../service/dom-service.if';
|
|
5
|
-
import { RendererCleanupFnType } from '../renderer-cleanup-fn.type';
|
|
6
|
-
import { ActionEventListenerIf } from './action-event-listener.if';
|
|
7
|
-
import { CrudAction } from '../../crud/crud-action';
|
|
1
|
+
import { CellRendererIf } from '../cell-render.if.js';
|
|
2
|
+
import { AreaIdent } from '../../data/tablemodel/area-ident.type.js';
|
|
3
|
+
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if.js';
|
|
4
|
+
import { DomServiceIf } from '../../service/dom-service.if.js';
|
|
5
|
+
import { RendererCleanupFnType } from '../renderer-cleanup-fn.type.js';
|
|
6
|
+
import { ActionEventListenerIf } from './action-event-listener.if.js';
|
|
7
|
+
import { CrudAction } from '../../crud/crud-action.js';
|
|
8
8
|
|
|
9
|
+
/** @category Renderers & editing */
|
|
9
10
|
export declare class ActionsCellRenderer implements CellRendererIf {
|
|
10
11
|
private actionEventListener;
|
|
11
12
|
private crudActions;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
2
|
-
import { CellRendererIf } from './cell-render.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
6
|
-
import { CellGroupExt } from '../data/tablemodel/cellgroup/cell-group-ext';
|
|
7
|
-
import { HeaderGroupOptionsIf } from '../data/options/header-group-options.if';
|
|
1
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
2
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
|
+
import { CellGroupExt } from '../data/tablemodel/cellgroup/cell-group-ext.js';
|
|
7
|
+
import { HeaderGroupOptionsIf } from '../data/options/header-group-options.if.js';
|
|
8
8
|
|
|
9
|
+
/** @category Header groups */
|
|
9
10
|
export declare class CellGroupExtCellRenderer implements CellRendererIf {
|
|
10
11
|
private headerGroupOptions;
|
|
11
12
|
private static toggleHeaderGroup;
|
|
@@ -1,8 +1,45 @@
|
|
|
1
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
2
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
3
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
4
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
2
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
3
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
4
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Decides how a cell **looks** – the value stays the same for sorting, filtering, copy and Excel export.
|
|
8
|
+
* Assign it per column and area (`columnDef.rendererMap.body = …`, or `bodyRenderer` in {@link ColumnDef.create})
|
|
9
|
+
* or return it from {@link AreaModelIf.getCellRenderer}.
|
|
10
|
+
*
|
|
11
|
+
* Renderers are called only for visible cells, on every repaint – keep them cheap.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* class StatusBadgeRenderer implements CellRendererIf {
|
|
15
|
+
* render(cellDiv: HTMLDivElement, rowIndex: number, columnIndex: number, areaIdent: AreaIdent,
|
|
16
|
+
* areaModel: AreaModelIf, cellValue: string, dom: DomServiceIf): RendererCleanupFnType | undefined {
|
|
17
|
+
* const badge = dom.createElement<HTMLSpanElement>("span");
|
|
18
|
+
* dom.addClass(badge, `status-${cellValue}`);
|
|
19
|
+
* badge.textContent = cellValue;
|
|
20
|
+
* dom.appendChild(cellDiv, badge);
|
|
21
|
+
* return undefined; // or a cleanup function (listeners, timers …)
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* columnDefs[9].rendererMap.body = new StatusBadgeRenderer();
|
|
25
|
+
*
|
|
26
|
+
* @see Training: [Cell renderers](https://gui.expert/training/cell-renderers/),
|
|
27
|
+
* [Framework components as cells](https://gui.expert/training/framework-components/)
|
|
28
|
+
*
|
|
29
|
+
* @category Renderers & editing
|
|
30
|
+
*/
|
|
6
31
|
export interface CellRendererIf {
|
|
32
|
+
/**
|
|
33
|
+
* Fills the (empty) cell element.
|
|
34
|
+
*
|
|
35
|
+
* @param cellDiv - the cell element, already positioned and sized
|
|
36
|
+
* @param rowIndex - row in the area (as displayed)
|
|
37
|
+
* @param columnIndex - column index (west + center + east)
|
|
38
|
+
* @param areaIdent - `"header"`, `"body"` or `"footer"`
|
|
39
|
+
* @param areaModel - the model of this area (e.g. for `getRowByIndex(rowIndex)`)
|
|
40
|
+
* @param cellValue - the value of the cell (`areaModel.getValueAt(rowIndex, columnIndex)`)
|
|
41
|
+
* @param domService - create and change elements through it (works with Angular's Renderer2, too)
|
|
42
|
+
* @returns optionally a cleanup function, called before the cell is drawn again
|
|
43
|
+
*/
|
|
7
44
|
render(cellDiv: HTMLDivElement, rowIndex: number, columnIndex: number, areaIdent: AreaIdent, areaModel: AreaModelIf, cellValue: any, domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
8
45
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { CellRendererIf } from './cell-render.if';
|
|
2
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
3
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
4
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
5
|
-
import { AreaModelObjectArray } from '../data/tablemodel/areamodel/area-model-object-array';
|
|
1
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
2
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
3
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
4
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
5
|
+
import { AreaModelObjectArray } from '../data/tablemodel/areamodel/area-model-object-array.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Works with AreaModelObjectArray only
|
|
9
|
+
*
|
|
10
|
+
* @category Renderers & editing
|
|
9
11
|
*/
|
|
10
12
|
export declare class CheckboxBooleanPropertyCellRenderer<T> implements CellRendererIf {
|
|
11
13
|
property: string;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
2
|
-
import { CellRendererIf } from './cell-render.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
2
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class CheckboxCellRenderer implements CellRendererIf {
|
|
9
|
+
/** Marker for {@link isCheckboxCellRenderer} (works across copies of the core). @since 1.1.91 */
|
|
10
|
+
readonly type = "CheckboxCellRenderer";
|
|
8
11
|
render(cellDiv: HTMLDivElement, rowIndex: number, columnIndex: number, areaIdent: AreaIdent, areaModel: AreaModelIf, _cellValue: any, domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
9
12
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CellRendererIf } from './cell-render.if';
|
|
2
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
2
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class DateToIntlDDMMYYYYCellRenderer implements CellRendererIf {
|
|
8
9
|
readonly formatter: Intl.DateTimeFormat;
|
|
9
10
|
render(cellDiv: HTMLDivElement, rowIndex: number, columnIndex: number, areaIdent: AreaIdent, _areaModel: AreaModelIf, cellValue: any, _domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CellRendererIf } from './cell-render.if';
|
|
2
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
2
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class DateToIsoCellRenderer implements CellRendererIf {
|
|
8
9
|
render(cellDiv: HTMLDivElement, _rowIndex: number, _columnIndex: number, _areaIdent: AreaIdent, _areaModel: AreaModelIf, cellValue: any, _domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
9
10
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CellRendererIf } from './cell-render.if';
|
|
2
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
2
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class DateToLocaleDateCellRenderer implements CellRendererIf {
|
|
8
9
|
render(cellDiv: HTMLDivElement, _rowIndex: number, _columnIndex: number, _areaIdent: AreaIdent, _areaModel: AreaModelIf, cellValue: any, _domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
9
10
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CellRendererIf } from './cell-render.if';
|
|
2
|
-
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
|
|
3
|
-
import { DomServiceIf } from '../service/dom-service.if';
|
|
4
|
-
import { AreaIdent } from '../data/tablemodel/area-ident.type';
|
|
5
|
-
import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
|
|
1
|
+
import { CellRendererIf } from './cell-render.if.js';
|
|
2
|
+
import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if.js';
|
|
3
|
+
import { DomServiceIf } from '../service/dom-service.if.js';
|
|
4
|
+
import { AreaIdent } from '../data/tablemodel/area-ident.type.js';
|
|
5
|
+
import { RendererCleanupFnType } from './renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class DateToTecCellRenderer implements CellRendererIf {
|
|
8
9
|
render(cellDiv: HTMLDivElement, _rowIndex: number, _columnIndex: number, _areaIdent: AreaIdent, _areaModel: AreaModelIf, cellValue: any, _domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
9
10
|
}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* @param {number} rowIndex - The index of the row.
|
|
6
6
|
* @param {number} columnIndex - The index of the column.
|
|
7
7
|
* @returns {any|undefined} - The modified input object or undefined.
|
|
8
|
+
*
|
|
9
|
+
* @category Renderers & editing
|
|
8
10
|
*/
|
|
9
11
|
export interface editInputPipe {
|
|
10
12
|
(input: any, rowIndex: number, columnIndex: number): any | undefined;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { CellRendererIf } from '../cell-render.if';
|
|
2
|
-
import { AreaIdent } from '../../data/tablemodel/area-ident.type';
|
|
3
|
-
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if';
|
|
4
|
-
import { DomServiceIf } from '../../service/dom-service.if';
|
|
5
|
-
import { RendererCleanupFnType } from '../renderer-cleanup-fn.type';
|
|
1
|
+
import { CellRendererIf } from '../cell-render.if.js';
|
|
2
|
+
import { AreaIdent } from '../../data/tablemodel/area-ident.type.js';
|
|
3
|
+
import { AreaModelIf } from '../../data/tablemodel/areamodel/area-model.if.js';
|
|
4
|
+
import { DomServiceIf } from '../../service/dom-service.if.js';
|
|
5
|
+
import { RendererCleanupFnType } from '../renderer-cleanup-fn.type.js';
|
|
6
6
|
|
|
7
|
+
/** @category Renderers & editing */
|
|
7
8
|
export declare class InputCellRenderer implements CellRendererIf {
|
|
8
9
|
render(cellDiv: HTMLDivElement, rowIndex: number, columnIndex: number, areaIdent: AreaIdent, areaModel: AreaModelIf, _cellValue: any, domService: DomServiceIf): RendererCleanupFnType | undefined;
|
|
9
10
|
}
|