@iyulab/flex-table 0.48.6 → 0.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/README.md +12 -1
- package/dist/events.d.ts +199 -0
- package/dist/{flex-table-CoqeYojZ.js → flex-table-CpAhHipx.js} +210 -332
- package/dist/flex-table.d.ts +31 -0
- package/dist/flex-table.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/react.d.ts +32 -31
- package/dist/react.js +1 -1
- package/package.json +2 -1
- package/skills/iyulab-flex-table/references/api.md +2 -0
- package/dist/array/use-array-source.hooks.test.d.ts +0 -1
- package/dist/array/use-array-source.test.d.ts +0 -1
- package/dist/clipboard/clipboard.test.d.ts +0 -1
- package/dist/core/filtering.test.d.ts +0 -1
- package/dist/core/selection.test.d.ts +0 -1
- package/dist/core/sorting.test.d.ts +0 -1
- package/dist/core/undo.test.d.ts +0 -1
- package/dist/export/export.test.d.ts +0 -1
- package/dist/export/xlsx-deflate.test.d.ts +0 -1
- package/dist/export/xlsx-reader.test.d.ts +0 -1
- package/dist/flex-table.test.d.ts +0 -1
- package/dist/odata/index.test.d.ts +0 -1
- package/dist/odata/use-odata-source.hooks.test.d.ts +0 -1
- package/dist/odata/use-odata-source.test.d.ts +0 -1
- package/dist/react-events.test.d.ts +0 -1
- package/dist/renderers/format.test.d.ts +0 -1
- package/dist/styles/density-tokens.test.d.ts +0 -1
- package/dist/styles/token-derivation.test.d.ts +0 -1
package/dist/flex-table.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { CellPosition, CellRange } from './core/selection.js';
|
|
|
5
5
|
import type { SortCriteria } from './core/sorting.js';
|
|
6
6
|
import type { FilterPredicate } from './core/filtering.js';
|
|
7
7
|
import type { ColumnDefinition, DataRow, SelectionMode, DataMode } from './models/types.js';
|
|
8
|
+
import type { FlexTableEventMap } from './events.js';
|
|
8
9
|
import type { TemplateResult } from 'lit';
|
|
9
10
|
export declare class FlexTable extends LitElement {
|
|
10
11
|
static styles: import("lit").CSSResult;
|
|
@@ -210,6 +211,11 @@ export declare class FlexTable extends LitElement {
|
|
|
210
211
|
redo(): void;
|
|
211
212
|
/** Clear all undo/redo history. */
|
|
212
213
|
clearUndoHistory(): void;
|
|
214
|
+
/**
|
|
215
|
+
* Dispatches one of {@link FlexTableEventMap}'s events — bubbling and composed. Every event goes
|
|
216
|
+
* through here, so a detail that drifts from the map fails to compile.
|
|
217
|
+
*/
|
|
218
|
+
private _emit;
|
|
213
219
|
private _dispatchUndoStateEvent;
|
|
214
220
|
private _dispatchFilterEvent;
|
|
215
221
|
/**
|
|
@@ -478,6 +484,18 @@ export declare class FlexTable extends LitElement {
|
|
|
478
484
|
/** Keep a fixed-position menu inside the viewport — a menu opened near the right or bottom edge would spill off-screen. */
|
|
479
485
|
private _keepMenuInView;
|
|
480
486
|
private _adjustFilterDropdown;
|
|
487
|
+
/**
|
|
488
|
+
* Close the filter dialog. From the keyboard (Escape) focus goes back to the column's menu button — the
|
|
489
|
+
* dialog leaves the DOM, and focus inside it would otherwise drop to the page (APG dialog). A click
|
|
490
|
+
* outside closes it without moving focus: the click already put focus where the user meant.
|
|
491
|
+
*/
|
|
492
|
+
private _closeFilterDropdown;
|
|
493
|
+
/**
|
|
494
|
+
* Tab stays inside the filter dialog (it floats over the table, fixed to the header — a focus that left
|
|
495
|
+
* it would leave it open and unreachable behind the next control). Capture phase: the controls stop
|
|
496
|
+
* their own keydowns from reaching the grid.
|
|
497
|
+
*/
|
|
498
|
+
private _onFilterDialogKeydown;
|
|
481
499
|
private _renderFilterDropdown;
|
|
482
500
|
private _buildTextPredicate;
|
|
483
501
|
private _applyTextFilter;
|
|
@@ -561,6 +579,19 @@ export declare class FlexTable extends LitElement {
|
|
|
561
579
|
private _renderCell;
|
|
562
580
|
private _renderEditor;
|
|
563
581
|
}
|
|
582
|
+
/**
|
|
583
|
+
* Typed listeners for {@link FlexTableEventMap} — the DOM's own pattern (`HTMLMediaElement` with
|
|
584
|
+
* `HTMLMediaElementEventMap`). Element-scoped on purpose: several names are generic and would
|
|
585
|
+
* collide on the global event map.
|
|
586
|
+
*/
|
|
587
|
+
export interface FlexTable {
|
|
588
|
+
addEventListener<K extends keyof FlexTableEventMap>(type: K, listener: (this: FlexTable, ev: FlexTableEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
589
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: FlexTable, ev: HTMLElementEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
|
|
590
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
591
|
+
removeEventListener<K extends keyof FlexTableEventMap>(type: K, listener: (this: FlexTable, ev: FlexTableEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
592
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: FlexTable, ev: HTMLElementEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
593
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
594
|
+
}
|
|
564
595
|
declare global {
|
|
565
596
|
interface HTMLElementTagNameMap {
|
|
566
597
|
'flex-table': FlexTable;
|
package/dist/flex-table.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./flex-table-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./flex-table-CpAhHipx.js";
|
|
2
2
|
export { o as FlexTable, e as RowSelectionState, t as UndoStack, n as effectiveAlign, i as exportData, r as flexTableLocale, a as renderCell };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { FlexTable } from './flex-table.js';
|
|
|
2
2
|
export type { ColumnDefinition, ColumnType, ColumnAlign, DataRow, CellRenderer, CellEditor, CellValidator, SelectionMode, DataMode, CellStyle, ConditionalRule } from './models/types.js';
|
|
3
3
|
export { effectiveAlign } from './models/types.js';
|
|
4
4
|
export type { CellPosition, CellRange } from './core/selection.js';
|
|
5
|
+
export type { FlexTableEventMap, CellChange } from './events.js';
|
|
5
6
|
export type { SortCriteria, SortDirection } from './core/sorting.js';
|
|
6
7
|
export type { ColumnFilter, FilterPredicate, FilterErrorCallback } from './core/filtering.js';
|
|
7
8
|
export { RowSelectionState } from './core/row-selection.js';
|
package/dist/react.d.ts
CHANGED
|
@@ -2,38 +2,39 @@ import React from 'react';
|
|
|
2
2
|
import { type EventName } from '@lit/react';
|
|
3
3
|
import { FlexTable } from './flex-table.js';
|
|
4
4
|
import type { ColumnDefinition, DataRow } from './models/types.js';
|
|
5
|
+
import type { FlexTableEventMap } from './events.js';
|
|
5
6
|
declare const FlexTableReactBase: import("@lit/react").ReactWebComponent<FlexTable, {
|
|
6
|
-
onCellSelect: EventName<
|
|
7
|
-
onCellEditCommit: EventName<
|
|
8
|
-
onCellEditCancel: EventName<
|
|
9
|
-
onCellEditStart: EventName<
|
|
10
|
-
onSortChange: EventName<
|
|
11
|
-
onFilterChange: EventName<
|
|
12
|
-
onRowAdd: EventName<
|
|
13
|
-
onRowDelete: EventName<
|
|
14
|
-
onRowActivate: EventName<
|
|
15
|
-
onColumnResize: EventName<
|
|
16
|
-
onColumnSelect: EventName<
|
|
17
|
-
onColumnAdd: EventName<
|
|
18
|
-
onColumnDelete: EventName<
|
|
19
|
-
onColumnReorder: EventName<
|
|
20
|
-
onSelectionChange: EventName<
|
|
21
|
-
onClipboardCopy: EventName<
|
|
22
|
-
onClipboardCut: EventName<
|
|
23
|
-
onClipboardPaste: EventName<
|
|
24
|
-
onClipboardError: EventName<
|
|
25
|
-
onUndoStateChange: EventName<
|
|
26
|
-
onValidationError: EventName<
|
|
27
|
-
onBatchUpdate: EventName<
|
|
28
|
-
onContextMenu: EventName<
|
|
29
|
-
onFilterError: EventName<
|
|
30
|
-
onRowReorder: EventName<
|
|
31
|
-
onColumnVisibilityChange: EventName<
|
|
32
|
-
onCommentChange: EventName<
|
|
33
|
-
onDataImport: EventName<
|
|
34
|
-
onFillHandleApply: EventName<
|
|
35
|
-
onFindReplace: EventName<
|
|
36
|
-
onHeaderContextMenu: EventName<
|
|
7
|
+
onCellSelect: EventName<FlexTableEventMap["cell-select"]>;
|
|
8
|
+
onCellEditCommit: EventName<FlexTableEventMap["cell-edit-commit"]>;
|
|
9
|
+
onCellEditCancel: EventName<FlexTableEventMap["cell-edit-cancel"]>;
|
|
10
|
+
onCellEditStart: EventName<FlexTableEventMap["cell-edit-start"]>;
|
|
11
|
+
onSortChange: EventName<FlexTableEventMap["sort-change"]>;
|
|
12
|
+
onFilterChange: EventName<FlexTableEventMap["filter-change"]>;
|
|
13
|
+
onRowAdd: EventName<FlexTableEventMap["row-add"]>;
|
|
14
|
+
onRowDelete: EventName<FlexTableEventMap["row-delete"]>;
|
|
15
|
+
onRowActivate: EventName<FlexTableEventMap["row-activate"]>;
|
|
16
|
+
onColumnResize: EventName<FlexTableEventMap["column-resize"]>;
|
|
17
|
+
onColumnSelect: EventName<FlexTableEventMap["column-select"]>;
|
|
18
|
+
onColumnAdd: EventName<FlexTableEventMap["column-add"]>;
|
|
19
|
+
onColumnDelete: EventName<FlexTableEventMap["column-delete"]>;
|
|
20
|
+
onColumnReorder: EventName<FlexTableEventMap["column-reorder"]>;
|
|
21
|
+
onSelectionChange: EventName<FlexTableEventMap["selection-change"]>;
|
|
22
|
+
onClipboardCopy: EventName<FlexTableEventMap["clipboard-copy"]>;
|
|
23
|
+
onClipboardCut: EventName<FlexTableEventMap["clipboard-cut"]>;
|
|
24
|
+
onClipboardPaste: EventName<FlexTableEventMap["clipboard-paste"]>;
|
|
25
|
+
onClipboardError: EventName<FlexTableEventMap["clipboard-error"]>;
|
|
26
|
+
onUndoStateChange: EventName<FlexTableEventMap["undo-state-change"]>;
|
|
27
|
+
onValidationError: EventName<FlexTableEventMap["validation-error"]>;
|
|
28
|
+
onBatchUpdate: EventName<FlexTableEventMap["batch-update"]>;
|
|
29
|
+
onContextMenu: EventName<FlexTableEventMap["context-menu"]>;
|
|
30
|
+
onFilterError: EventName<FlexTableEventMap["filter-error"]>;
|
|
31
|
+
onRowReorder: EventName<FlexTableEventMap["row-reorder"]>;
|
|
32
|
+
onColumnVisibilityChange: EventName<FlexTableEventMap["column-visibility-change"]>;
|
|
33
|
+
onCommentChange: EventName<FlexTableEventMap["comment-change"]>;
|
|
34
|
+
onDataImport: EventName<FlexTableEventMap["data-import"]>;
|
|
35
|
+
onFillHandleApply: EventName<FlexTableEventMap["fill-handle-apply"]>;
|
|
36
|
+
onFindReplace: EventName<FlexTableEventMap["find-replace"]>;
|
|
37
|
+
onHeaderContextMenu: EventName<FlexTableEventMap["header-context-menu"]>;
|
|
37
38
|
}>;
|
|
38
39
|
type BaseProps = React.ComponentProps<typeof FlexTableReactBase>;
|
|
39
40
|
/**
|
package/dist/react.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./flex-table-
|
|
1
|
+
import { t as e } from "./flex-table-CpAhHipx.js";
|
|
2
2
|
import { i as t, t as n } from "./query-Dw4iO0ir.js";
|
|
3
3
|
import { t as r } from "./view-DiLr-TdY.js";
|
|
4
4
|
import i, { useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/flex-table",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.1",
|
|
4
4
|
"description": "A minimalist, input-centric data grid web component",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/flex-table.js",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|
|
36
|
+
"!dist/**/*.test.d.ts",
|
|
36
37
|
"skills",
|
|
37
38
|
"package.json",
|
|
38
39
|
"README.md",
|
|
@@ -134,6 +134,8 @@ Enter/Escape and blur-to-commit behavior.
|
|
|
134
134
|
## Events
|
|
135
135
|
|
|
136
136
|
All are `CustomEvent`s with `bubbles: true, composed: true`. `row`/`index` are data indices.
|
|
137
|
+
Typed by `FlexTableEventMap` (exported): `table.addEventListener('sort-change', (e) => e.detail.criteria)` needs no
|
|
138
|
+
cast, and the React `on*` props carry the same types.
|
|
137
139
|
|
|
138
140
|
| Event | `detail` |
|
|
139
141
|
|---|---|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/core/undo.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import './flex-table.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '../flex-table';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|