@nice2dev/ui-core 1.0.10
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 +63 -0
- package/README.md +62 -0
- package/dist/core/NiceInlineHelp.d.ts +69 -0
- package/dist/core/NiceInlineHelp.d.ts.map +1 -0
- package/dist/core/NiceThemeProvider.d.ts +31 -0
- package/dist/core/NiceThemeProvider.d.ts.map +1 -0
- package/dist/core/NiceThemeVariants.d.ts +55 -0
- package/dist/core/NiceThemeVariants.d.ts.map +1 -0
- package/dist/core/NiceUserPreferences.d.ts +304 -0
- package/dist/core/NiceUserPreferences.d.ts.map +1 -0
- package/dist/core/a11y-advanced.d.ts +157 -0
- package/dist/core/a11y-advanced.d.ts.map +1 -0
- package/dist/core/a11y.d.ts +299 -0
- package/dist/core/a11y.d.ts.map +1 -0
- package/dist/core/access-control.d.ts +59 -0
- package/dist/core/access-control.d.ts.map +1 -0
- package/dist/core/adapters.d.ts +178 -0
- package/dist/core/adapters.d.ts.map +1 -0
- package/dist/core/ai.d.ts +191 -0
- package/dist/core/ai.d.ts.map +1 -0
- package/dist/core/animations.d.ts +48 -0
- package/dist/core/animations.d.ts.map +1 -0
- package/dist/core/colorBlind.d.ts +22 -0
- package/dist/core/colorBlind.d.ts.map +1 -0
- package/dist/core/datasource-advanced.d.ts +261 -0
- package/dist/core/datasource-advanced.d.ts.map +1 -0
- package/dist/core/datasource-aggregation.d.ts +221 -0
- package/dist/core/datasource-aggregation.d.ts.map +1 -0
- package/dist/core/datasource-hooks.d.ts +93 -0
- package/dist/core/datasource-hooks.d.ts.map +1 -0
- package/dist/core/datasource-offline.d.ts +201 -0
- package/dist/core/datasource-offline.d.ts.map +1 -0
- package/dist/core/datasource.d.ts +181 -0
- package/dist/core/datasource.d.ts.map +1 -0
- package/dist/core/displayMode.d.ts +46 -0
- package/dist/core/displayMode.d.ts.map +1 -0
- package/dist/core/displayStyle.d.ts +79 -0
- package/dist/core/displayStyle.d.ts.map +1 -0
- package/dist/core/helpContext.d.ts +97 -0
- package/dist/core/helpContext.d.ts.map +1 -0
- package/dist/core/hooks.d.ts +149 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/i18n.d.ts +10 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/i18nDictionaries.d.ts +4 -0
- package/dist/core/i18nDictionaries.d.ts.map +1 -0
- package/dist/core/icons.d.ts +45 -0
- package/dist/core/icons.d.ts.map +1 -0
- package/dist/core/icuMessageFormat.d.ts +10 -0
- package/dist/core/icuMessageFormat.d.ts.map +1 -0
- package/dist/core/leak-detector.d.ts +263 -0
- package/dist/core/leak-detector.d.ts.map +1 -0
- package/dist/core/omniverkTypes.d.ts +164 -0
- package/dist/core/omniverkTypes.d.ts.map +1 -0
- package/dist/core/pluginSystem.d.ts +97 -0
- package/dist/core/pluginSystem.d.ts.map +1 -0
- package/dist/core/profiling.d.ts +276 -0
- package/dist/core/profiling.d.ts.map +1 -0
- package/dist/core/responsive.d.ts +107 -0
- package/dist/core/responsive.d.ts.map +1 -0
- package/dist/core/rtl.d.ts +47 -0
- package/dist/core/rtl.d.ts.map +1 -0
- package/dist/core/sanitizeHtml.d.ts +16 -0
- package/dist/core/sanitizeHtml.d.ts.map +1 -0
- package/dist/core/testing.d.ts +107 -0
- package/dist/core/testing.d.ts.map +1 -0
- package/dist/core/theme.d.ts +213 -0
- package/dist/core/theme.d.ts.map +1 -0
- package/dist/core/themeGallery.d.ts +104 -0
- package/dist/core/themeGallery.d.ts.map +1 -0
- package/dist/core/themePacks.d.ts +53 -0
- package/dist/core/themePacks.d.ts.map +1 -0
- package/dist/core/themePacksExtended.d.ts +59 -0
- package/dist/core/themePacksExtended.d.ts.map +1 -0
- package/dist/core/themePresets.d.ts +10 -0
- package/dist/core/themePresets.d.ts.map +1 -0
- package/dist/core/themeVariants.d.ts +204 -0
- package/dist/core/themeVariants.d.ts.map +1 -0
- package/dist/core/touch.d.ts +208 -0
- package/dist/core/touch.d.ts.map +1 -0
- package/dist/core/traceless.d.ts +461 -0
- package/dist/core/traceless.d.ts.map +1 -0
- package/dist/core/types.d.ts +105 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/useThemeIsDark.d.ts +15 -0
- package/dist/core/useThemeIsDark.d.ts.map +1 -0
- package/dist/index.cjs +128 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +16881 -0
- package/dist/index.mjs.map +1 -0
- package/dist/performance/concurrent.d.ts +190 -0
- package/dist/performance/concurrent.d.ts.map +1 -0
- package/dist/performance/images.d.ts +189 -0
- package/dist/performance/images.d.ts.map +1 -0
- package/dist/performance/index.d.ts +17 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/memory.d.ts +223 -0
- package/dist/performance/memory.d.ts.map +1 -0
- package/dist/performance/virtualization.d.ts +166 -0
- package/dist/performance/virtualization.d.ts.map +1 -0
- package/dist/performance/workers.d.ts +125 -0
- package/dist/performance/workers.d.ts.map +1 -0
- package/dist/viewSchema.d.ts +81 -0
- package/dist/viewSchema.d.ts.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NiceDataSource — Advanced Features
|
|
3
|
+
* Sprint 5: Server-Side Processing, Caching, Real-Time, Offline
|
|
4
|
+
*/
|
|
5
|
+
import type { NiceDataSource, NiceLoadOptions } from './datasource';
|
|
6
|
+
export interface NiceCacheConfig {
|
|
7
|
+
/** Time-to-live in milliseconds (default 60000 = 1 min) */
|
|
8
|
+
ttl?: number;
|
|
9
|
+
/** Maximum cache entries (default 100) */
|
|
10
|
+
maxSize?: number;
|
|
11
|
+
/** Whether to cache load results (default true) */
|
|
12
|
+
cacheLoads?: boolean;
|
|
13
|
+
/** Whether to cache byKey results (default true) */
|
|
14
|
+
cacheByKey?: boolean;
|
|
15
|
+
/** Custom cache key generator */
|
|
16
|
+
generateKey?: (options: NiceLoadOptions) => string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Creates an LRU cache with TTL support.
|
|
20
|
+
*/
|
|
21
|
+
export declare class NiceDataCache<T = unknown> {
|
|
22
|
+
private cache;
|
|
23
|
+
private readonly ttl;
|
|
24
|
+
private readonly maxSize;
|
|
25
|
+
constructor(config?: NiceCacheConfig);
|
|
26
|
+
get(key: string): T | undefined;
|
|
27
|
+
set(key: string, data: T, ttl?: number): void;
|
|
28
|
+
has(key: string): boolean;
|
|
29
|
+
invalidate(key: string): void;
|
|
30
|
+
invalidateAll(): void;
|
|
31
|
+
invalidateMatching(pattern: RegExp): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Request deduplication — prevents duplicate concurrent requests.
|
|
35
|
+
*/
|
|
36
|
+
export declare class NiceRequestDeduplicator {
|
|
37
|
+
private pending;
|
|
38
|
+
dedupe<T>(key: string, fetcher: () => Promise<T>): Promise<T>;
|
|
39
|
+
hasPending(key: string): boolean;
|
|
40
|
+
cancelAll(): void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Wraps a data source with caching and request deduplication.
|
|
44
|
+
*/
|
|
45
|
+
export declare function withCaching<T>(source: NiceDataSource<T>, config?: NiceCacheConfig): NiceDataSource<T> & {
|
|
46
|
+
cache: NiceDataCache;
|
|
47
|
+
invalidateCache(): void;
|
|
48
|
+
};
|
|
49
|
+
export interface NiceCursorPaginationConfig<T> {
|
|
50
|
+
/** Field to use for cursor (usually primary key or timestamp) */
|
|
51
|
+
cursorField: string;
|
|
52
|
+
/** Page size */
|
|
53
|
+
pageSize?: number;
|
|
54
|
+
/** Sort direction for cursor (default 'asc') */
|
|
55
|
+
direction?: 'asc' | 'desc';
|
|
56
|
+
}
|
|
57
|
+
export interface NiceCursorPage<T> {
|
|
58
|
+
data: T[];
|
|
59
|
+
nextCursor: string | null;
|
|
60
|
+
prevCursor: string | null;
|
|
61
|
+
hasMore: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface NiceCursorLoadOptions extends Omit<NiceLoadOptions, 'skip' | 'take'> {
|
|
64
|
+
cursor?: string;
|
|
65
|
+
pageSize?: number;
|
|
66
|
+
direction?: 'forward' | 'backward';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Creates a cursor-based paginated wrapper around a data source.
|
|
70
|
+
*/
|
|
71
|
+
export declare function withCursorPagination<T extends Record<string, any>>(source: NiceDataSource<T>, config: NiceCursorPaginationConfig<T>): {
|
|
72
|
+
loadPage(options?: NiceCursorLoadOptions): Promise<NiceCursorPage<T>>;
|
|
73
|
+
loadAll(options?: Omit<NiceCursorLoadOptions, 'cursor'>): AsyncGenerator<T[], void, unknown>;
|
|
74
|
+
};
|
|
75
|
+
export interface NiceInfiniteScrollState<T> {
|
|
76
|
+
items: T[];
|
|
77
|
+
isLoading: boolean;
|
|
78
|
+
hasMore: boolean;
|
|
79
|
+
error: Error | null;
|
|
80
|
+
page: number;
|
|
81
|
+
totalCount: number;
|
|
82
|
+
}
|
|
83
|
+
export interface NiceInfiniteScrollConfig {
|
|
84
|
+
/** Items per page (default 50) */
|
|
85
|
+
pageSize?: number;
|
|
86
|
+
/** Threshold in pixels to trigger load (default 200) */
|
|
87
|
+
threshold?: number;
|
|
88
|
+
/** Initial page (default 0) */
|
|
89
|
+
initialPage?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Creates an infinite scroll controller for a data source.
|
|
93
|
+
*/
|
|
94
|
+
export declare function createInfiniteScroll<T>(source: NiceDataSource<T>, config?: NiceInfiniteScrollConfig): {
|
|
95
|
+
readonly state: NiceInfiniteScrollState<T>;
|
|
96
|
+
loadMore: () => Promise<void>;
|
|
97
|
+
reset: (options?: NiceLoadOptions) => void;
|
|
98
|
+
handleScroll: (event: Event) => void;
|
|
99
|
+
subscribe(listener: (state: NiceInfiniteScrollState<T>) => void): () => boolean;
|
|
100
|
+
setOptions(options: NiceLoadOptions): void;
|
|
101
|
+
};
|
|
102
|
+
export type NiceWebSocketMessageType = 'insert' | 'update' | 'remove' | 'refresh' | 'sync';
|
|
103
|
+
export interface NiceWebSocketMessage<T = unknown> {
|
|
104
|
+
type: NiceWebSocketMessageType;
|
|
105
|
+
key?: unknown;
|
|
106
|
+
data?: T;
|
|
107
|
+
changes?: Partial<T>;
|
|
108
|
+
}
|
|
109
|
+
export interface NiceWebSocketConfig<T> {
|
|
110
|
+
/** WebSocket URL */
|
|
111
|
+
url: string;
|
|
112
|
+
/** Base data source for initial load and writes */
|
|
113
|
+
baseSource: NiceDataSource<T>;
|
|
114
|
+
/** Key field name */
|
|
115
|
+
keyField?: string;
|
|
116
|
+
/** Parse incoming message */
|
|
117
|
+
parseMessage?: (event: MessageEvent) => NiceWebSocketMessage<T> | null;
|
|
118
|
+
/** Serialize outgoing message */
|
|
119
|
+
serializeMessage?: (msg: NiceWebSocketMessage<T>) => string;
|
|
120
|
+
/** Reconnect delay in ms (default 3000) */
|
|
121
|
+
reconnectDelay?: number;
|
|
122
|
+
/** Max reconnect attempts (default 10) */
|
|
123
|
+
maxReconnects?: number;
|
|
124
|
+
/** Heartbeat interval in ms (default 30000) */
|
|
125
|
+
heartbeatInterval?: number;
|
|
126
|
+
}
|
|
127
|
+
export interface NiceWebSocketDataSource<T> extends NiceDataSource<T> {
|
|
128
|
+
connect(): void;
|
|
129
|
+
disconnect(): void;
|
|
130
|
+
isConnected(): boolean;
|
|
131
|
+
sendMessage(msg: NiceWebSocketMessage<T>): void;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Creates a real-time data source using WebSocket.
|
|
135
|
+
* Syncs changes from server and broadcasts local writes.
|
|
136
|
+
*/
|
|
137
|
+
export declare function createWebSocketDataSource<T extends Record<string, any>>(config: NiceWebSocketConfig<T>): NiceWebSocketDataSource<T>;
|
|
138
|
+
export interface NiceSignalRConfig<T> {
|
|
139
|
+
/** SignalR hub connection (from @microsoft/signalr) */
|
|
140
|
+
connection: {
|
|
141
|
+
on(methodName: string, callback: (...args: any[]) => void): void;
|
|
142
|
+
off(methodName: string, callback: (...args: any[]) => void): void;
|
|
143
|
+
invoke(methodName: string, ...args: any[]): Promise<any>;
|
|
144
|
+
start(): Promise<void>;
|
|
145
|
+
stop(): Promise<void>;
|
|
146
|
+
state: string | number;
|
|
147
|
+
};
|
|
148
|
+
/** Base data source for initial load and writes */
|
|
149
|
+
baseSource: NiceDataSource<T>;
|
|
150
|
+
/** Hub method names */
|
|
151
|
+
methods?: {
|
|
152
|
+
onInsert?: string;
|
|
153
|
+
onUpdate?: string;
|
|
154
|
+
onRemove?: string;
|
|
155
|
+
onRefresh?: string;
|
|
156
|
+
insert?: string;
|
|
157
|
+
update?: string;
|
|
158
|
+
remove?: string;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Creates a real-time data source using SignalR.
|
|
163
|
+
*/
|
|
164
|
+
export declare function createSignalRDataSource<T extends Record<string, any>>(config: NiceSignalRConfig<T>): NiceDataSource<T> & {
|
|
165
|
+
connect(): Promise<void>;
|
|
166
|
+
disconnect(): Promise<void>;
|
|
167
|
+
};
|
|
168
|
+
export interface NiceOptimisticConfig<T> {
|
|
169
|
+
/** Called when optimistic update is applied */
|
|
170
|
+
onOptimisticApply?: (item: T, action: 'insert' | 'update' | 'remove') => void;
|
|
171
|
+
/** Called when update is confirmed */
|
|
172
|
+
onConfirm?: (item: T, action: 'insert' | 'update' | 'remove') => void;
|
|
173
|
+
/** Called when update fails and is rolled back */
|
|
174
|
+
onRollback?: (item: T, action: 'insert' | 'update' | 'remove', error: Error) => void;
|
|
175
|
+
/** Delay before applying optimistic update (default 0) */
|
|
176
|
+
delay?: number;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Wraps a data source with optimistic update support.
|
|
180
|
+
* Changes are applied immediately, then confirmed or rolled back.
|
|
181
|
+
*/
|
|
182
|
+
export declare function withOptimisticUpdates<T extends Record<string, any>>(source: NiceDataSource<T>, config?: NiceOptimisticConfig<T>): NiceDataSource<T> & {
|
|
183
|
+
hasPendingChanges(): boolean;
|
|
184
|
+
getPendingCount(): number;
|
|
185
|
+
};
|
|
186
|
+
export interface NiceDataDiff<T> {
|
|
187
|
+
inserted: T[];
|
|
188
|
+
updated: Array<{
|
|
189
|
+
key: unknown;
|
|
190
|
+
changes: Partial<T>;
|
|
191
|
+
oldItem: T;
|
|
192
|
+
newItem: T;
|
|
193
|
+
}>;
|
|
194
|
+
removed: T[];
|
|
195
|
+
unchanged: T[];
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Calculates the difference between two data arrays.
|
|
199
|
+
*/
|
|
200
|
+
export declare function calculateDataDiff<T extends Record<string, any>>(oldData: T[], newData: T[], keyField: string): NiceDataDiff<T>;
|
|
201
|
+
export interface NicePollingConfig {
|
|
202
|
+
/** Polling interval in ms (default 5000) */
|
|
203
|
+
interval?: number;
|
|
204
|
+
/** Whether to start polling immediately (default false) */
|
|
205
|
+
autoStart?: boolean;
|
|
206
|
+
/** Pause polling when tab is hidden (default true) */
|
|
207
|
+
pauseWhenHidden?: boolean;
|
|
208
|
+
/** Callback when data changes */
|
|
209
|
+
onDataChange?: <T>(diff: NiceDataDiff<T>) => void;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Wraps a data source with automatic polling for updates.
|
|
213
|
+
*/
|
|
214
|
+
export declare function withPolling<T extends Record<string, any>>(source: NiceDataSource<T>, config?: NicePollingConfig): NiceDataSource<T> & {
|
|
215
|
+
startPolling(): void;
|
|
216
|
+
stopPolling(): void;
|
|
217
|
+
isPolling(): boolean;
|
|
218
|
+
setInterval(ms: number): void;
|
|
219
|
+
};
|
|
220
|
+
export type NiceSSEMessageType = 'insert' | 'update' | 'remove' | 'refresh' | 'snapshot';
|
|
221
|
+
export interface NiceSSEMessage<T = unknown> {
|
|
222
|
+
type: NiceSSEMessageType;
|
|
223
|
+
key?: unknown;
|
|
224
|
+
data?: T;
|
|
225
|
+
changes?: Partial<T>;
|
|
226
|
+
}
|
|
227
|
+
export interface NiceSSEConfig<T> {
|
|
228
|
+
/** SSE endpoint URL. */
|
|
229
|
+
url: string;
|
|
230
|
+
/** Base data source for initial load (SSE is read-only for pushes). */
|
|
231
|
+
baseSource: NiceDataSource<T>;
|
|
232
|
+
/** Key field name. */
|
|
233
|
+
keyField?: string;
|
|
234
|
+
/** Parse incoming SSE event into a message. Defaults to JSON.parse(event.data). */
|
|
235
|
+
parseEvent?: (event: MessageEvent) => NiceSSEMessage<T> | null;
|
|
236
|
+
/** Custom headers (requires polyfill like eventsource-polyfill for non-standard headers). */
|
|
237
|
+
headers?: Record<string, string>;
|
|
238
|
+
/** Reconnect delay in ms (EventSource handles this natively; used for manual fallback). @default 3000 */
|
|
239
|
+
reconnectDelay?: number;
|
|
240
|
+
/** Max reconnect attempts before giving up. @default 10 */
|
|
241
|
+
maxReconnects?: number;
|
|
242
|
+
/** Whether to include credentials (cookies). @default false */
|
|
243
|
+
withCredentials?: boolean;
|
|
244
|
+
}
|
|
245
|
+
export interface NiceSSEDataSource<T> extends NiceDataSource<T> {
|
|
246
|
+
/** Start listening to SSE events. */
|
|
247
|
+
connect(): void;
|
|
248
|
+
/** Close the SSE connection. */
|
|
249
|
+
disconnect(): void;
|
|
250
|
+
/** Whether the EventSource is currently connected. */
|
|
251
|
+
isConnected(): boolean;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Creates a read-only real-time data source using Server-Sent Events (SSE).
|
|
255
|
+
* Lighter alternative to WebSocket — ideal for server→client unidirectional streaming.
|
|
256
|
+
*
|
|
257
|
+
* The SSE endpoint should send JSON messages with { type, key?, data?, changes? }.
|
|
258
|
+
* Writes (insert/update/remove) are delegated to the base data source.
|
|
259
|
+
*/
|
|
260
|
+
export declare function createSSEDataSource<T extends Record<string, any>>(config: NiceSSEConfig<T>): NiceSSEDataSource<T>;
|
|
261
|
+
//# sourceMappingURL=datasource-advanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource-advanced.d.ts","sourceRoot":"","sources":["../../src/core/datasource-advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NiceDataAggregation — Data transformation utilities
|
|
3
|
+
* Sprint 5.4: Aggregation, Pivot, Calculated Columns
|
|
4
|
+
*/
|
|
5
|
+
export type AggregateFunction = 'sum' | 'avg' | 'min' | 'max' | 'count' | 'first' | 'last' | 'distinct';
|
|
6
|
+
export interface AggregateSpec {
|
|
7
|
+
field: string;
|
|
8
|
+
fn: AggregateFunction;
|
|
9
|
+
alias?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Applies aggregate functions to a dataset.
|
|
13
|
+
*/
|
|
14
|
+
export declare function aggregate<T extends Record<string, any>>(data: T[], specs: AggregateSpec[]): Record<string, unknown>;
|
|
15
|
+
export interface GroupByOptions<T> {
|
|
16
|
+
/** Fields to group by */
|
|
17
|
+
groupBy: string[];
|
|
18
|
+
/** Aggregate functions to apply */
|
|
19
|
+
aggregates?: AggregateSpec[];
|
|
20
|
+
/** Whether to include items in each group */
|
|
21
|
+
includeItems?: boolean;
|
|
22
|
+
/** Sort groups by field and direction */
|
|
23
|
+
sortGroups?: {
|
|
24
|
+
field: string;
|
|
25
|
+
direction: 'asc' | 'desc';
|
|
26
|
+
}[];
|
|
27
|
+
}
|
|
28
|
+
export interface GroupedResult<T> {
|
|
29
|
+
/** Group key values */
|
|
30
|
+
key: Record<string, unknown>;
|
|
31
|
+
/** Number of items in group */
|
|
32
|
+
count: number;
|
|
33
|
+
/** Aggregate results */
|
|
34
|
+
aggregates: Record<string, unknown>;
|
|
35
|
+
/** Items in group (if includeItems is true) */
|
|
36
|
+
items?: T[];
|
|
37
|
+
/** Nested groups (for multi-level grouping) */
|
|
38
|
+
groups?: GroupedResult<T>[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Groups data by specified fields with optional aggregation.
|
|
42
|
+
*/
|
|
43
|
+
export declare function groupBy<T extends Record<string, any>>(data: T[], options: GroupByOptions<T>): GroupedResult<T>[];
|
|
44
|
+
/**
|
|
45
|
+
* Creates hierarchical groups (groups within groups).
|
|
46
|
+
*/
|
|
47
|
+
export declare function groupByHierarchical<T extends Record<string, any>>(data: T[], groupFields: string[], aggregates?: AggregateSpec[]): GroupedResult<T>[];
|
|
48
|
+
export interface PivotConfig {
|
|
49
|
+
/** Row fields */
|
|
50
|
+
rows: string[];
|
|
51
|
+
/** Column field (will become column headers) */
|
|
52
|
+
columns: string;
|
|
53
|
+
/** Value field to aggregate */
|
|
54
|
+
values: string;
|
|
55
|
+
/** Aggregate function (default 'sum') */
|
|
56
|
+
aggregateFunction?: AggregateFunction;
|
|
57
|
+
/** Include row totals */
|
|
58
|
+
rowTotals?: boolean;
|
|
59
|
+
/** Include column totals */
|
|
60
|
+
columnTotals?: boolean;
|
|
61
|
+
/** Include grand total */
|
|
62
|
+
grandTotal?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface PivotResult {
|
|
65
|
+
/** Column headers (unique values from column field) */
|
|
66
|
+
columnHeaders: string[];
|
|
67
|
+
/** Row data with pivot values */
|
|
68
|
+
rows: Array<{
|
|
69
|
+
rowKey: Record<string, unknown>;
|
|
70
|
+
values: Record<string, number | null>;
|
|
71
|
+
rowTotal?: number;
|
|
72
|
+
}>;
|
|
73
|
+
/** Column totals */
|
|
74
|
+
columnTotals?: Record<string, number>;
|
|
75
|
+
/** Grand total */
|
|
76
|
+
grandTotal?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Transforms data into a pivot table format.
|
|
80
|
+
*/
|
|
81
|
+
export declare function pivot<T extends Record<string, any>>(data: T[], config: PivotConfig): PivotResult;
|
|
82
|
+
export interface CalculatedColumn<T> {
|
|
83
|
+
/** Name for the new column */
|
|
84
|
+
name: string;
|
|
85
|
+
/** Formula function */
|
|
86
|
+
formula: (item: T, index: number, allItems: T[]) => unknown;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Adds calculated columns to data.
|
|
90
|
+
*/
|
|
91
|
+
export declare function withCalculatedColumns<T extends Record<string, any>>(data: T[], columns: CalculatedColumn<T>[]): Array<T & Record<string, unknown>>;
|
|
92
|
+
/**
|
|
93
|
+
* Pre-built formula helpers for common calculations.
|
|
94
|
+
*/
|
|
95
|
+
export declare const ColumnFormulas: {
|
|
96
|
+
/** Running sum of a field */
|
|
97
|
+
runningSum: <T>(field: keyof T) => (item: T, index: number, all: T[]) => number;
|
|
98
|
+
/** Running average of a field */
|
|
99
|
+
runningAvg: <T>(field: keyof T) => (item: T, index: number, all: T[]) => number;
|
|
100
|
+
/** Percentage of total */
|
|
101
|
+
percentOfTotal: <T>(field: keyof T) => (item: T, _: number, all: T[]) => number;
|
|
102
|
+
/** Rank by field value */
|
|
103
|
+
rank: <T>(field: keyof T, direction?: "asc" | "desc") => (item: T, _: number, all: T[]) => number;
|
|
104
|
+
/** Difference from previous row */
|
|
105
|
+
diffFromPrevious: <T>(field: keyof T) => (item: T, index: number, all: T[]) => number | null;
|
|
106
|
+
/** Percentage change from previous row */
|
|
107
|
+
percentChange: <T>(field: keyof T) => (item: T, index: number, all: T[]) => number | null;
|
|
108
|
+
/** Moving average */
|
|
109
|
+
movingAverage: <T>(field: keyof T, window: number) => (item: T, index: number, all: T[]) => number;
|
|
110
|
+
/** Conditional value */
|
|
111
|
+
conditional: <T, R>(condition: (item: T) => boolean, trueValue: R, falseValue: R) => (item: T) => R;
|
|
112
|
+
/** Concatenate fields */
|
|
113
|
+
concat: <T>(...fields: (keyof T)[]) => (item: T) => string;
|
|
114
|
+
/** Parse date and format */
|
|
115
|
+
formatDate: <T>(field: keyof T, format?: "short" | "medium" | "long") => (item: T) => string;
|
|
116
|
+
};
|
|
117
|
+
export type ValidationSeverity = 'error' | 'warning' | 'info';
|
|
118
|
+
export interface ValidationRule<T> {
|
|
119
|
+
/** Rule name */
|
|
120
|
+
name: string;
|
|
121
|
+
/** Validation function */
|
|
122
|
+
validate: (item: T, index: number, all: T[]) => boolean;
|
|
123
|
+
/** Error message */
|
|
124
|
+
message: string | ((item: T) => string);
|
|
125
|
+
/** Severity level */
|
|
126
|
+
severity?: ValidationSeverity;
|
|
127
|
+
/** Fields this rule applies to */
|
|
128
|
+
fields?: string[];
|
|
129
|
+
}
|
|
130
|
+
export interface ValidationError {
|
|
131
|
+
/** Item index */
|
|
132
|
+
index: number;
|
|
133
|
+
/** Rule name */
|
|
134
|
+
rule: string;
|
|
135
|
+
/** Error message */
|
|
136
|
+
message: string;
|
|
137
|
+
/** Severity */
|
|
138
|
+
severity: ValidationSeverity;
|
|
139
|
+
/** Affected fields */
|
|
140
|
+
fields: string[];
|
|
141
|
+
/** The invalid item */
|
|
142
|
+
item: unknown;
|
|
143
|
+
}
|
|
144
|
+
export interface ValidationResult {
|
|
145
|
+
/** Whether all items are valid */
|
|
146
|
+
isValid: boolean;
|
|
147
|
+
/** Total error count */
|
|
148
|
+
errorCount: number;
|
|
149
|
+
/** Total warning count */
|
|
150
|
+
warningCount: number;
|
|
151
|
+
/** All validation errors */
|
|
152
|
+
errors: ValidationError[];
|
|
153
|
+
/** Errors grouped by index */
|
|
154
|
+
byIndex: Map<number, ValidationError[]>;
|
|
155
|
+
/** Errors grouped by field */
|
|
156
|
+
byField: Map<string, ValidationError[]>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Validates data against a set of rules.
|
|
160
|
+
*/
|
|
161
|
+
export declare function validateData<T>(data: T[], rules: ValidationRule<T>[]): ValidationResult;
|
|
162
|
+
/**
|
|
163
|
+
* Pre-built validation rules.
|
|
164
|
+
*/
|
|
165
|
+
export declare const ValidationRules: {
|
|
166
|
+
required: <T>(field: keyof T) => ValidationRule<T>;
|
|
167
|
+
minLength: <T>(field: keyof T, min: number) => ValidationRule<T>;
|
|
168
|
+
maxLength: <T>(field: keyof T, max: number) => ValidationRule<T>;
|
|
169
|
+
min: <T>(field: keyof T, min: number) => ValidationRule<T>;
|
|
170
|
+
max: <T>(field: keyof T, max: number) => ValidationRule<T>;
|
|
171
|
+
email: <T>(field: keyof T) => ValidationRule<T>;
|
|
172
|
+
pattern: <T>(field: keyof T, regex: RegExp, message?: string) => ValidationRule<T>;
|
|
173
|
+
unique: <T>(field: keyof T) => ValidationRule<T>;
|
|
174
|
+
custom: <T>(name: string, validate: (item: T) => boolean, message: string, fields?: string[]) => ValidationRule<T>;
|
|
175
|
+
};
|
|
176
|
+
export interface BatchOperationResult<T> {
|
|
177
|
+
succeeded: number;
|
|
178
|
+
failed: number;
|
|
179
|
+
errors: Array<{
|
|
180
|
+
index: number;
|
|
181
|
+
item: T;
|
|
182
|
+
error: Error;
|
|
183
|
+
}>;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Performs batch operations on data.
|
|
187
|
+
*/
|
|
188
|
+
export declare const BatchOperations: {
|
|
189
|
+
/**
|
|
190
|
+
* Updates multiple items matching a condition.
|
|
191
|
+
*/
|
|
192
|
+
updateWhere<T extends Record<string, any>>(items: T[], condition: (item: T) => boolean, changes: Partial<T> | ((item: T) => Partial<T>)): Promise<T[]>;
|
|
193
|
+
/**
|
|
194
|
+
* Removes items matching a condition.
|
|
195
|
+
*/
|
|
196
|
+
removeWhere<T>(items: T[], condition: (item: T) => boolean): Promise<{
|
|
197
|
+
remaining: T[];
|
|
198
|
+
removed: T[];
|
|
199
|
+
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Applies a transformation to all items.
|
|
202
|
+
*/
|
|
203
|
+
transform<T, R>(items: T[], transformer: (item: T, index: number) => R | Promise<R>, options?: {
|
|
204
|
+
parallel?: boolean;
|
|
205
|
+
batchSize?: number;
|
|
206
|
+
}): Promise<BatchOperationResult<T> & {
|
|
207
|
+
results: R[];
|
|
208
|
+
}>;
|
|
209
|
+
/**
|
|
210
|
+
* Deduplicates items by a key field.
|
|
211
|
+
*/
|
|
212
|
+
deduplicate<T>(items: T[], keyField: keyof T): T[];
|
|
213
|
+
/**
|
|
214
|
+
* Merges two arrays, updating existing items and adding new ones.
|
|
215
|
+
*/
|
|
216
|
+
merge<T extends Record<string, any>>(existing: T[], incoming: T[], keyField: keyof T, options?: {
|
|
217
|
+
updateExisting?: boolean;
|
|
218
|
+
addNew?: boolean;
|
|
219
|
+
}): T[];
|
|
220
|
+
};
|
|
221
|
+
//# sourceMappingURL=datasource-aggregation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource-aggregation.d.ts","sourceRoot":"","sources":["../../src/core/datasource-aggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React hooks for NiceDataSource binding.
|
|
3
|
+
*
|
|
4
|
+
* useNiceDataSource — list/grid binding (sort, page, filter, search, CRUD)
|
|
5
|
+
* useNiceRecord — single-record binding (edit form, detail view)
|
|
6
|
+
* useNiceField — single-field two-way binding (input, label, etc.)
|
|
7
|
+
* useNiceLookupSource — options binding for Select/Autocomplete/TagBox
|
|
8
|
+
*/
|
|
9
|
+
import type { NiceFilterGroup, NiceDataSource, NiceLoadOptions, NiceSortExpression, NiceSortDirection } from './datasource';
|
|
10
|
+
import type { NiceOption } from './types';
|
|
11
|
+
export interface UseNiceDataSourceOptions {
|
|
12
|
+
/** Auto-load on mount & when query changes. Default: true. */
|
|
13
|
+
autoLoad?: boolean;
|
|
14
|
+
defaultPageSize?: number;
|
|
15
|
+
defaultSort?: NiceSortExpression[];
|
|
16
|
+
defaultFilter?: NiceFilterGroup;
|
|
17
|
+
defaultSearch?: string;
|
|
18
|
+
/** Additional load options merged into every request. */
|
|
19
|
+
loadOptions?: Partial<NiceLoadOptions>;
|
|
20
|
+
}
|
|
21
|
+
export interface NiceDataSourceState<T> {
|
|
22
|
+
data: T[];
|
|
23
|
+
totalCount: number;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
error: string | null;
|
|
26
|
+
page: number;
|
|
27
|
+
pageSize: number;
|
|
28
|
+
sort: NiceSortExpression[];
|
|
29
|
+
filter: NiceFilterGroup | undefined;
|
|
30
|
+
search: string;
|
|
31
|
+
setPage: (page: number) => void;
|
|
32
|
+
setPageSize: (size: number) => void;
|
|
33
|
+
setSort: (sort: NiceSortExpression[]) => void;
|
|
34
|
+
setSortField: (field: string, direction: NiceSortDirection) => void;
|
|
35
|
+
setFilter: (filter: NiceFilterGroup | undefined) => void;
|
|
36
|
+
setSearch: (search: string) => void;
|
|
37
|
+
reload: () => void;
|
|
38
|
+
insert: (item: Partial<T>) => Promise<void>;
|
|
39
|
+
update: (key: unknown, changes: Partial<T>) => Promise<void>;
|
|
40
|
+
remove: (key: unknown) => Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
export declare function useNiceDataSource<T = any>(source: NiceDataSource<T> | null | undefined, options?: UseNiceDataSourceOptions): NiceDataSourceState<T>;
|
|
43
|
+
export interface NiceRecordState<T> {
|
|
44
|
+
/** Original loaded data. */
|
|
45
|
+
data: T | undefined;
|
|
46
|
+
/** Data with local changes applied. */
|
|
47
|
+
editData: Record<string, unknown>;
|
|
48
|
+
loading: boolean;
|
|
49
|
+
error: string | null;
|
|
50
|
+
/** Pending local changes not yet saved. */
|
|
51
|
+
changes: Partial<T>;
|
|
52
|
+
isDirty: boolean;
|
|
53
|
+
/** Set a single field value locally (does NOT save). */
|
|
54
|
+
set: (field: string, value: unknown) => void;
|
|
55
|
+
/** Set multiple fields locally. */
|
|
56
|
+
setMany: (changes: Partial<T>) => void;
|
|
57
|
+
/** Persist local changes to the data source. */
|
|
58
|
+
save: () => Promise<void>;
|
|
59
|
+
/** Reload from server, discarding local changes. */
|
|
60
|
+
reload: () => void;
|
|
61
|
+
/** Discard local changes without reloading. */
|
|
62
|
+
reset: () => void;
|
|
63
|
+
}
|
|
64
|
+
export declare function useNiceRecord<T = any>(source: NiceDataSource<T> | null | undefined, key: unknown): NiceRecordState<T>;
|
|
65
|
+
export interface NiceFieldState {
|
|
66
|
+
value: unknown;
|
|
67
|
+
setValue: (v: unknown) => void;
|
|
68
|
+
loading: boolean;
|
|
69
|
+
error: string | null;
|
|
70
|
+
isDirty: boolean;
|
|
71
|
+
/** Save just this field. */
|
|
72
|
+
save: () => Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
export declare function useNiceField<T = any>(source: NiceDataSource<T> | null | undefined, key: unknown, field: string): NiceFieldState;
|
|
75
|
+
export interface UseNiceLookupSourceOptions {
|
|
76
|
+
iconField?: string;
|
|
77
|
+
descriptionField?: string;
|
|
78
|
+
groupField?: string;
|
|
79
|
+
/** Field(s) searched when user types. If omitted, server-side search is used. */
|
|
80
|
+
searchFields?: string[];
|
|
81
|
+
autoLoad?: boolean;
|
|
82
|
+
/** Max items to load. Default: 200. */
|
|
83
|
+
take?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface NiceLookupSourceState {
|
|
86
|
+
options: NiceOption[];
|
|
87
|
+
loading: boolean;
|
|
88
|
+
error: string | null;
|
|
89
|
+
search: (query: string) => void;
|
|
90
|
+
reload: () => void;
|
|
91
|
+
}
|
|
92
|
+
export declare function useNiceLookupSource<T = any>(source: NiceDataSource<T> | null | undefined, valueField: string, labelField: string, opts?: UseNiceLookupSourceOptions): NiceLookupSourceState;
|
|
93
|
+
//# sourceMappingURL=datasource-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource-hooks.d.ts","sourceRoot":"","sources":["../../src/core/datasource-hooks.ts"],"names":[],"mappings":"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"}
|