@mmlogic/components 0.4.0 → 0.4.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/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mosterdcomponents.cjs.js +1 -1
- package/dist/cjs/mrd-boolean-field_23.cjs.entry.js +111 -5
- package/dist/collection/components/table/mrd-table/mrd-table.css +20 -0
- package/dist/collection/components/table/mrd-table/mrd-table.js +124 -5
- package/dist/collection/components/table/mrd-table/virtual-scroll.js +14 -0
- package/dist/collection/utils/i18n.js +8 -0
- package/dist/components/i18n.js +1 -1
- package/dist/components/mrd-table2.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mosterdcomponents.js +1 -1
- package/dist/esm/mrd-boolean-field_23.entry.js +111 -5
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
- package/dist/mosterdcomponents/p-b1a2e108.entry.js +1 -0
- package/dist/types/components/table/mrd-table/mrd-table.d.ts +23 -0
- package/dist/types/components/table/mrd-table/virtual-scroll.d.ts +7 -0
- package/dist/types/components.d.ts +16 -0
- package/package.json +1 -1
- package/dist/mosterdcomponents/p-9b3c0917.entry.js +0 -1
|
@@ -5,6 +5,11 @@ export declare class MrdTable {
|
|
|
5
5
|
el: HTMLElement;
|
|
6
6
|
private pendingPages;
|
|
7
7
|
private debounceTimer;
|
|
8
|
+
/** Timestamp of the last mrdLoadPage emission per outstanding page — drives stale-request detection. */
|
|
9
|
+
private requestedAt;
|
|
10
|
+
/** Retry count per page since it first became stale. */
|
|
11
|
+
private retryAttempts;
|
|
12
|
+
private staleCheckTimer;
|
|
8
13
|
private outsideClickHandler;
|
|
9
14
|
private keydownHandler;
|
|
10
15
|
private createPickerClickHandler;
|
|
@@ -26,6 +31,9 @@ export declare class MrdTable {
|
|
|
26
31
|
rowHeight: number;
|
|
27
32
|
/** Height of the scroll container in px. */
|
|
28
33
|
tableHeight: number;
|
|
34
|
+
/** Time (ms) to wait for setPage() before retrying a page request; after
|
|
35
|
+
* MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages). */
|
|
36
|
+
requestTimeoutMs: number;
|
|
29
37
|
/** Clamp renderEnd when totalElements shrinks (e.g. after a filter is applied). */
|
|
30
38
|
totalElementsChanged(newVal: number): void;
|
|
31
39
|
/** Reset to primary view when the item prop is replaced from outside. */
|
|
@@ -34,6 +42,8 @@ export declare class MrdTable {
|
|
|
34
42
|
private activeViewIdx;
|
|
35
43
|
loadedPages: Map<number, Record<string, any>[]>;
|
|
36
44
|
requestedPages: Set<number>;
|
|
45
|
+
/** Pages that timed out MAX_RETRY_ATTEMPTS times — rendered as a retry row instead of shimmer. */
|
|
46
|
+
failedPages: Set<number>;
|
|
37
47
|
renderStart: number;
|
|
38
48
|
renderEnd: number;
|
|
39
49
|
colWidths: number[];
|
|
@@ -78,6 +88,11 @@ export declare class MrdTable {
|
|
|
78
88
|
path: string;
|
|
79
89
|
qs: string;
|
|
80
90
|
}>;
|
|
91
|
+
/** Fired when a page request timed out MAX_RETRY_ATTEMPTS times without setPage() being called.
|
|
92
|
+
* Purely informational — the table shows its own retry row regardless of whether a host listens. */
|
|
93
|
+
mrdPageError: EventEmitter<{
|
|
94
|
+
page: number;
|
|
95
|
+
}>;
|
|
81
96
|
/** Fired when a data row is clicked. Detail is the full row object including _links. */
|
|
82
97
|
mrdRowClick: EventEmitter<Record<string, any>>;
|
|
83
98
|
/** Fired when a toolbar action button is clicked.
|
|
@@ -105,6 +120,7 @@ export declare class MrdTable {
|
|
|
105
120
|
aggQs: string;
|
|
106
121
|
}>;
|
|
107
122
|
componentWillLoad(): void;
|
|
123
|
+
componentDidLoad(): void;
|
|
108
124
|
private applyDefaultSort;
|
|
109
125
|
/**
|
|
110
126
|
* Initialise (or reset) the virtual scroll.
|
|
@@ -159,10 +175,17 @@ export declare class MrdTable {
|
|
|
159
175
|
private resetPages;
|
|
160
176
|
private handleSortClick;
|
|
161
177
|
private applySort;
|
|
178
|
+
/** Emits mrdLoadPage for a page and records the request timestamp for stale-request detection. */
|
|
179
|
+
private emitLoadPage;
|
|
162
180
|
private emitPagesForWindow;
|
|
163
181
|
private getRow;
|
|
164
182
|
private requestPagesForWindow;
|
|
165
183
|
private flushPendingPages;
|
|
184
|
+
/** Scans outstanding requests for staleness: retries up to MAX_RETRY_ATTEMPTS times,
|
|
185
|
+
* then gives up and marks the page as failed (rendered as a retry row). */
|
|
186
|
+
private checkStalePages;
|
|
187
|
+
/** Manually retry a page the user gave up on (clicked the retry row). */
|
|
188
|
+
private retryPage;
|
|
166
189
|
private handleScroll;
|
|
167
190
|
private handleFilterToggle;
|
|
168
191
|
private handleFilterOpen;
|
|
@@ -7,6 +7,10 @@ export declare const BUFFER = 10;
|
|
|
7
7
|
/** Wait this long (ms) after the last scroll event before requesting pages,
|
|
8
8
|
* so pages the user quickly scrolls past are skipped. */
|
|
9
9
|
export declare const REQUEST_DEBOUNCE_MS = 150;
|
|
10
|
+
/** Default time (ms) to wait for setPage() before treating a request as stale and retrying. */
|
|
11
|
+
export declare const REQUEST_TIMEOUT_MS = 15000;
|
|
12
|
+
/** Max retries for a stale page request before giving up and showing a retry row. */
|
|
13
|
+
export declare const MAX_RETRY_ATTEMPTS = 3;
|
|
10
14
|
export declare function visibleCount(tableHeight: number, rowHeight: number): number;
|
|
11
15
|
/** Render window (with buffer) for the given scroll offset. */
|
|
12
16
|
export declare function computeWindow(scrollTop: number, rowHeight: number, tableHeight: number, total: number): {
|
|
@@ -24,3 +28,6 @@ export declare function getRowFromPages(pages: Map<number, Record<string, any>[]
|
|
|
24
28
|
export declare function computeEffectiveTotal(loadedPages: Map<number, Record<string, any>[]>, pageSize: number, baseTotal: number): number;
|
|
25
29
|
/** True when some loaded page was short — the exact total is then known. */
|
|
26
30
|
export declare function isTotalKnownFromPages(loadedPages: Map<number, Record<string, any>[]>, pageSize: number): boolean;
|
|
31
|
+
/** Pages whose request timestamp is older than timeoutMs — candidates for retry or failure.
|
|
32
|
+
* Caller is expected to already exclude pages present in loadedPages. */
|
|
33
|
+
export declare function getStalePages(requestedAt: Map<number, number>, now: number, timeoutMs: number): number[];
|
|
@@ -687,6 +687,11 @@ export namespace Components {
|
|
|
687
687
|
* @default ''
|
|
688
688
|
*/
|
|
689
689
|
"parentId": string;
|
|
690
|
+
/**
|
|
691
|
+
* Time (ms) to wait for setPage() before retrying a page request; after MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages).
|
|
692
|
+
* @default REQUEST_TIMEOUT_MS
|
|
693
|
+
*/
|
|
694
|
+
"requestTimeoutMs": number;
|
|
690
695
|
/**
|
|
691
696
|
* Row height in px — used for spacer and scroll-position maths.
|
|
692
697
|
* @default 36
|
|
@@ -1305,6 +1310,7 @@ declare global {
|
|
|
1305
1310
|
};
|
|
1306
1311
|
interface HTMLMrdTableElementEventMap {
|
|
1307
1312
|
"mrdLoadPage": { page: number; sort: string; path: string; qs: string };
|
|
1313
|
+
"mrdPageError": { page: number };
|
|
1308
1314
|
"mrdRowClick": Record<string, any>;
|
|
1309
1315
|
"mrdAction": { action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string };
|
|
1310
1316
|
"mrdDownload": { href: string; fileName: string };
|
|
@@ -2175,6 +2181,10 @@ declare namespace LocalJSX {
|
|
|
2175
2181
|
* Fired when a page needs to be fetched. Host fetches and calls setPage(). `sort` is the raw query-param value, e.g. "name" or "name,desc".
|
|
2176
2182
|
*/
|
|
2177
2183
|
"onMrdLoadPage"?: (event: MrdTableCustomEvent<{ page: number; sort: string; path: string; qs: string }>) => void;
|
|
2184
|
+
/**
|
|
2185
|
+
* Fired when a page request timed out MAX_RETRY_ATTEMPTS times without setPage() being called. Purely informational — the table shows its own retry row regardless of whether a host listens.
|
|
2186
|
+
*/
|
|
2187
|
+
"onMrdPageError"?: (event: MrdTableCustomEvent<{ page: number }>) => void;
|
|
2178
2188
|
/**
|
|
2179
2189
|
* Fired when a data row is clicked. Detail is the full row object including _links.
|
|
2180
2190
|
*/
|
|
@@ -2189,6 +2199,11 @@ declare namespace LocalJSX {
|
|
|
2189
2199
|
* @default ''
|
|
2190
2200
|
*/
|
|
2191
2201
|
"parentId"?: string;
|
|
2202
|
+
/**
|
|
2203
|
+
* Time (ms) to wait for setPage() before retrying a page request; after MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages).
|
|
2204
|
+
* @default REQUEST_TIMEOUT_MS
|
|
2205
|
+
*/
|
|
2206
|
+
"requestTimeoutMs"?: number;
|
|
2192
2207
|
/**
|
|
2193
2208
|
* Row height in px — used for spacer and scroll-position maths.
|
|
2194
2209
|
* @default 36
|
|
@@ -2456,6 +2471,7 @@ declare namespace LocalJSX {
|
|
|
2456
2471
|
"pageSize": number;
|
|
2457
2472
|
"rowHeight": number;
|
|
2458
2473
|
"tableHeight": number;
|
|
2474
|
+
"requestTimeoutMs": number;
|
|
2459
2475
|
}
|
|
2460
2476
|
interface MrdTextFieldAttributes {
|
|
2461
2477
|
"name": string;
|