@object-ui/plugin-list 3.1.5 → 3.3.0
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/.turbo/turbo-build.log +83 -10
- package/CHANGELOG.md +22 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +34834 -34375
- package/dist/index.umd.cjs +34 -33
- package/dist/{src → packages/plugin-list/src}/ListView.d.ts +17 -1
- package/dist/packages/plugin-list/src/ListView.d.ts.map +1 -0
- package/dist/packages/plugin-list/src/ListView.stories.d.ts.map +1 -0
- package/dist/packages/plugin-list/src/ObjectGallery.d.ts.map +1 -0
- package/dist/packages/plugin-list/src/UserFilters.d.ts.map +1 -0
- package/dist/packages/plugin-list/src/ViewSwitcher.d.ts.map +1 -0
- package/dist/packages/plugin-list/src/components/TabBar.d.ts.map +1 -0
- package/dist/{src → packages/plugin-list/src}/index.d.ts +1 -1
- package/dist/packages/plugin-list/src/index.d.ts.map +1 -0
- package/dist/plugin-list.css +1 -1
- package/package.json +11 -11
- package/src/ListView.tsx +41 -4
- package/src/__tests__/ListRefresh.test.tsx +276 -0
- package/src/__tests__/ListView.test.tsx +4 -2
- package/src/index.tsx +1 -1
- package/vite.config.ts +1 -0
- package/dist/src/ListView.d.ts.map +0 -1
- package/dist/src/ListView.stories.d.ts.map +0 -1
- package/dist/src/ObjectGallery.d.ts.map +0 -1
- package/dist/src/UserFilters.d.ts.map +0 -1
- package/dist/src/ViewSwitcher.d.ts.map +0 -1
- package/dist/src/components/TabBar.d.ts.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- /package/dist/{src → packages/plugin-list/src}/ListView.stories.d.ts +0 -0
- /package/dist/{src → packages/plugin-list/src}/ObjectGallery.d.ts +0 -0
- /package/dist/{src → packages/plugin-list/src}/UserFilters.d.ts +0 -0
- /package/dist/{src → packages/plugin-list/src}/ViewSwitcher.d.ts +0 -0
- /package/dist/{src → packages/plugin-list/src}/components/TabBar.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/plugin-list",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "ListView plugin for Object UI - unified view component with view type switching",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"lucide-react": "^
|
|
28
|
-
"@object-ui/components": "3.
|
|
29
|
-
"@object-ui/core": "3.
|
|
30
|
-
"@object-ui/i18n": "3.
|
|
31
|
-
"@object-ui/mobile": "3.
|
|
32
|
-
"@object-ui/react": "3.
|
|
33
|
-
"@object-ui/types": "3.
|
|
27
|
+
"lucide-react": "^1.8.0",
|
|
28
|
+
"@object-ui/components": "3.3.0",
|
|
29
|
+
"@object-ui/core": "3.3.0",
|
|
30
|
+
"@object-ui/i18n": "3.3.0",
|
|
31
|
+
"@object-ui/mobile": "3.3.0",
|
|
32
|
+
"@object-ui/react": "3.3.0",
|
|
33
|
+
"@object-ui/types": "3.3.0"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"@types/react": "19.2.14",
|
|
41
41
|
"@types/react-dom": "19.2.3",
|
|
42
42
|
"@vitejs/plugin-react": "^6.0.1",
|
|
43
|
-
"typescript": "^
|
|
44
|
-
"vite": "^8.0.
|
|
43
|
+
"typescript": "^6.0.2",
|
|
44
|
+
"vite": "^8.0.8",
|
|
45
45
|
"vite-plugin-dts": "^4.5.4",
|
|
46
|
-
"vitest": "^4.1.
|
|
46
|
+
"vitest": "^4.1.4"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"build": "vite build",
|
package/src/ListView.tsx
CHANGED
|
@@ -273,7 +273,24 @@ function useListFieldLabel() {
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
|
|
276
|
+
/**
|
|
277
|
+
* Imperative handle exposed by ListView via React.forwardRef.
|
|
278
|
+
* Allows parent components to trigger a data refresh programmatically.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```tsx
|
|
282
|
+
* const listRef = React.useRef<ListViewHandle>(null);
|
|
283
|
+
* <ListView ref={listRef} schema={schema} />
|
|
284
|
+
* // After a mutation:
|
|
285
|
+
* listRef.current?.refresh();
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
export interface ListViewHandle {
|
|
289
|
+
/** Force the ListView to re-fetch data from the DataSource */
|
|
290
|
+
refresh(): void;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
export const ListView = React.forwardRef<ListViewHandle, ListViewProps>(({
|
|
277
294
|
schema: propSchema,
|
|
278
295
|
className,
|
|
279
296
|
onViewChange,
|
|
@@ -283,7 +300,7 @@ export const ListView: React.FC<ListViewProps> = ({
|
|
|
283
300
|
onRowClick,
|
|
284
301
|
showViewSwitcher = false,
|
|
285
302
|
...props
|
|
286
|
-
}) => {
|
|
303
|
+
}, ref) => {
|
|
287
304
|
// i18n support for record count and other labels
|
|
288
305
|
const { t } = useListViewTranslation();
|
|
289
306
|
const { fieldLabel: resolveFieldLabel } = useListFieldLabel();
|
|
@@ -393,6 +410,24 @@ export const ListView: React.FC<ListViewProps> = ({
|
|
|
393
410
|
const [refreshKey, setRefreshKey] = React.useState(0);
|
|
394
411
|
const [dataLimitReached, setDataLimitReached] = React.useState(false);
|
|
395
412
|
|
|
413
|
+
// --- P1: Imperative refresh API ---
|
|
414
|
+
React.useImperativeHandle(ref, () => ({
|
|
415
|
+
refresh: () => setRefreshKey(k => k + 1),
|
|
416
|
+
}), []);
|
|
417
|
+
|
|
418
|
+
// --- P2: Auto-subscribe to DataSource mutation events ---
|
|
419
|
+
// When an external refreshTrigger is provided, rely on that instead of
|
|
420
|
+
// subscribing to dataSource mutations to avoid double refreshes.
|
|
421
|
+
React.useEffect(() => {
|
|
422
|
+
if (!dataSource?.onMutation || !schema.objectName || schema.refreshTrigger) return;
|
|
423
|
+
const unsub = dataSource.onMutation((event) => {
|
|
424
|
+
if (event.resource === schema.objectName) {
|
|
425
|
+
setRefreshKey(k => k + 1);
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
return unsub;
|
|
429
|
+
}, [dataSource, schema.objectName, schema.refreshTrigger]);
|
|
430
|
+
|
|
396
431
|
// Dynamic page size state (wired from pageSizeOptions selector)
|
|
397
432
|
const [dynamicPageSize, setDynamicPageSize] = React.useState<number | undefined>(undefined);
|
|
398
433
|
const effectivePageSize = dynamicPageSize ?? schema.pagination?.pageSize ?? 100;
|
|
@@ -683,7 +718,7 @@ export const ListView: React.FC<ListViewProps> = ({
|
|
|
683
718
|
fetchData();
|
|
684
719
|
|
|
685
720
|
return () => { isMounted = false; };
|
|
686
|
-
}, [schema.objectName, schema.data, dataSource, schema.filters, effectivePageSize, currentSort, currentFilters, activeQuickFilters, normalizedQuickFilters, userFilterConditions, refreshKey, searchTerm, schema.searchableFields, expandFields, objectDefLoaded]); // Re-fetch on filter/sort/search change
|
|
721
|
+
}, [schema.objectName, schema.data, dataSource, schema.filters, effectivePageSize, currentSort, currentFilters, activeQuickFilters, normalizedQuickFilters, userFilterConditions, refreshKey, searchTerm, schema.searchableFields, expandFields, objectDefLoaded, schema.refreshTrigger]); // Re-fetch on filter/sort/search/refreshTrigger change
|
|
687
722
|
|
|
688
723
|
// Available view types based on schema configuration
|
|
689
724
|
const availableViews = React.useMemo(() => {
|
|
@@ -1685,4 +1720,6 @@ export const ListView: React.FC<ListViewProps> = ({
|
|
|
1685
1720
|
)}
|
|
1686
1721
|
</div>
|
|
1687
1722
|
);
|
|
1688
|
-
};
|
|
1723
|
+
});
|
|
1724
|
+
|
|
1725
|
+
ListView.displayName = 'ListView';
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI — List Refresh Tests
|
|
3
|
+
* Tests for the standardized list refresh after mutation mechanism.
|
|
4
|
+
*
|
|
5
|
+
* Covers:
|
|
6
|
+
* - P0: refreshTrigger prop triggers data re-fetch
|
|
7
|
+
* - P1: Imperative refresh() via forwardRef
|
|
8
|
+
* - P2: Auto-refresh via DataSource.onMutation()
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { render, act } from '@testing-library/react';
|
|
14
|
+
import { ListView } from '../ListView';
|
|
15
|
+
import type { ListViewHandle } from '../ListView';
|
|
16
|
+
import type { ListViewSchema } from '@object-ui/types';
|
|
17
|
+
import { SchemaRendererProvider } from '@object-ui/react';
|
|
18
|
+
|
|
19
|
+
let mockDataSource: any;
|
|
20
|
+
|
|
21
|
+
const renderWithProvider = (component: React.ReactNode, ds?: any) =>
|
|
22
|
+
render(
|
|
23
|
+
<SchemaRendererProvider dataSource={ds || mockDataSource}>
|
|
24
|
+
{component}
|
|
25
|
+
</SchemaRendererProvider>,
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
describe('ListView Refresh Mechanisms', () => {
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
mockDataSource = {
|
|
31
|
+
find: vi.fn().mockResolvedValue([]),
|
|
32
|
+
findOne: vi.fn(),
|
|
33
|
+
create: vi.fn(),
|
|
34
|
+
update: vi.fn(),
|
|
35
|
+
delete: vi.fn(),
|
|
36
|
+
getObjectSchema: vi.fn().mockResolvedValue({ name: 'contacts', fields: {} }),
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// =========================================================================
|
|
41
|
+
// P0: refreshTrigger schema prop
|
|
42
|
+
// =========================================================================
|
|
43
|
+
describe('P0 — refreshTrigger prop', () => {
|
|
44
|
+
it('should re-fetch data when refreshTrigger changes', async () => {
|
|
45
|
+
const schema: ListViewSchema = {
|
|
46
|
+
type: 'list-view',
|
|
47
|
+
objectName: 'contacts',
|
|
48
|
+
fields: ['name'],
|
|
49
|
+
refreshTrigger: 0,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const { rerender } = renderWithProvider(
|
|
53
|
+
<ListView schema={schema} dataSource={mockDataSource} />,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
// Wait for initial data fetch
|
|
57
|
+
await vi.waitFor(() => {
|
|
58
|
+
expect(mockDataSource.find).toHaveBeenCalled();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const initialCallCount = mockDataSource.find.mock.calls.length;
|
|
62
|
+
|
|
63
|
+
// Increment refreshTrigger → should trigger a new data fetch
|
|
64
|
+
const updatedSchema: ListViewSchema = { ...schema, refreshTrigger: 1 };
|
|
65
|
+
rerender(
|
|
66
|
+
<SchemaRendererProvider dataSource={mockDataSource}>
|
|
67
|
+
<ListView schema={updatedSchema} dataSource={mockDataSource} />
|
|
68
|
+
</SchemaRendererProvider>,
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
await vi.waitFor(() => {
|
|
72
|
+
expect(mockDataSource.find.mock.calls.length).toBeGreaterThan(initialCallCount);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('should NOT re-fetch when refreshTrigger stays the same', async () => {
|
|
77
|
+
const schema: ListViewSchema = {
|
|
78
|
+
type: 'list-view',
|
|
79
|
+
objectName: 'contacts',
|
|
80
|
+
fields: ['name'],
|
|
81
|
+
refreshTrigger: 5,
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const { rerender } = renderWithProvider(
|
|
85
|
+
<ListView schema={schema} dataSource={mockDataSource} />,
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
await vi.waitFor(() => {
|
|
89
|
+
expect(mockDataSource.find).toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
const callCount = mockDataSource.find.mock.calls.length;
|
|
93
|
+
|
|
94
|
+
// Re-render with the same refreshTrigger → no extra fetch
|
|
95
|
+
rerender(
|
|
96
|
+
<SchemaRendererProvider dataSource={mockDataSource}>
|
|
97
|
+
<ListView schema={{ ...schema }} dataSource={mockDataSource} />
|
|
98
|
+
</SchemaRendererProvider>,
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
// Wait a tick and verify no extra call
|
|
102
|
+
await new Promise(r => setTimeout(r, 100));
|
|
103
|
+
expect(mockDataSource.find.mock.calls.length).toBe(callCount);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
// =========================================================================
|
|
108
|
+
// P1: Imperative refresh() via forwardRef
|
|
109
|
+
// =========================================================================
|
|
110
|
+
describe('P1 — imperative refresh() API', () => {
|
|
111
|
+
it('should expose a refresh() method via ref', () => {
|
|
112
|
+
const ref = React.createRef<ListViewHandle>();
|
|
113
|
+
const schema: ListViewSchema = {
|
|
114
|
+
type: 'list-view',
|
|
115
|
+
objectName: 'contacts',
|
|
116
|
+
fields: ['name'],
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
renderWithProvider(<ListView ref={ref} schema={schema} dataSource={mockDataSource} />);
|
|
120
|
+
|
|
121
|
+
expect(ref.current).toBeDefined();
|
|
122
|
+
expect(typeof ref.current?.refresh).toBe('function');
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('calling refresh() should trigger a data re-fetch', async () => {
|
|
126
|
+
const ref = React.createRef<ListViewHandle>();
|
|
127
|
+
const schema: ListViewSchema = {
|
|
128
|
+
type: 'list-view',
|
|
129
|
+
objectName: 'contacts',
|
|
130
|
+
fields: ['name'],
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
renderWithProvider(<ListView ref={ref} schema={schema} dataSource={mockDataSource} />);
|
|
134
|
+
|
|
135
|
+
await vi.waitFor(() => {
|
|
136
|
+
expect(mockDataSource.find).toHaveBeenCalled();
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const callCount = mockDataSource.find.mock.calls.length;
|
|
140
|
+
|
|
141
|
+
// Call imperative refresh
|
|
142
|
+
act(() => {
|
|
143
|
+
ref.current?.refresh();
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
await vi.waitFor(() => {
|
|
147
|
+
expect(mockDataSource.find.mock.calls.length).toBeGreaterThan(callCount);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// =========================================================================
|
|
153
|
+
// P2: Auto-refresh via DataSource.onMutation()
|
|
154
|
+
// =========================================================================
|
|
155
|
+
describe('P2 — DataSource.onMutation() auto-refresh', () => {
|
|
156
|
+
it('should auto-refresh when a mutation event fires for the same resource', async () => {
|
|
157
|
+
let mutationCallback: ((event: any) => void) | null = null;
|
|
158
|
+
const unsub = vi.fn();
|
|
159
|
+
|
|
160
|
+
const dsWithMutation = {
|
|
161
|
+
...mockDataSource,
|
|
162
|
+
onMutation: vi.fn((cb: any) => {
|
|
163
|
+
mutationCallback = cb;
|
|
164
|
+
return unsub;
|
|
165
|
+
}),
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const schema: ListViewSchema = {
|
|
169
|
+
type: 'list-view',
|
|
170
|
+
objectName: 'contacts',
|
|
171
|
+
fields: ['name'],
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
renderWithProvider(
|
|
175
|
+
<ListView schema={schema} dataSource={dsWithMutation} />,
|
|
176
|
+
dsWithMutation,
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
await vi.waitFor(() => {
|
|
180
|
+
expect(dsWithMutation.find).toHaveBeenCalled();
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
const callCount = dsWithMutation.find.mock.calls.length;
|
|
184
|
+
|
|
185
|
+
// Simulate a mutation on the same resource
|
|
186
|
+
act(() => {
|
|
187
|
+
mutationCallback?.({ type: 'create', resource: 'contacts', record: { id: '1' } });
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
await vi.waitFor(() => {
|
|
191
|
+
expect(dsWithMutation.find.mock.calls.length).toBeGreaterThan(callCount);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it('should NOT refresh when a mutation fires for a different resource', async () => {
|
|
196
|
+
let mutationCallback: ((event: any) => void) | null = null;
|
|
197
|
+
|
|
198
|
+
const dsWithMutation = {
|
|
199
|
+
...mockDataSource,
|
|
200
|
+
onMutation: vi.fn((cb: any) => {
|
|
201
|
+
mutationCallback = cb;
|
|
202
|
+
return vi.fn();
|
|
203
|
+
}),
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
const schema: ListViewSchema = {
|
|
207
|
+
type: 'list-view',
|
|
208
|
+
objectName: 'contacts',
|
|
209
|
+
fields: ['name'],
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
renderWithProvider(
|
|
213
|
+
<ListView schema={schema} dataSource={dsWithMutation} />,
|
|
214
|
+
dsWithMutation,
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
await vi.waitFor(() => {
|
|
218
|
+
expect(dsWithMutation.find).toHaveBeenCalled();
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
const callCount = dsWithMutation.find.mock.calls.length;
|
|
222
|
+
|
|
223
|
+
// Fire a mutation for a different resource
|
|
224
|
+
act(() => {
|
|
225
|
+
mutationCallback?.({ type: 'create', resource: 'accounts', record: { id: '2' } });
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// Should NOT trigger a refresh
|
|
229
|
+
await new Promise(r => setTimeout(r, 100));
|
|
230
|
+
expect(dsWithMutation.find.mock.calls.length).toBe(callCount);
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
it('should unsubscribe when unmounted', async () => {
|
|
234
|
+
const unsub = vi.fn();
|
|
235
|
+
const dsWithMutation = {
|
|
236
|
+
...mockDataSource,
|
|
237
|
+
onMutation: vi.fn(() => unsub),
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
const schema: ListViewSchema = {
|
|
241
|
+
type: 'list-view',
|
|
242
|
+
objectName: 'contacts',
|
|
243
|
+
fields: ['name'],
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
const { unmount } = renderWithProvider(
|
|
247
|
+
<ListView schema={schema} dataSource={dsWithMutation} />,
|
|
248
|
+
dsWithMutation,
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
await vi.waitFor(() => {
|
|
252
|
+
expect(dsWithMutation.onMutation).toHaveBeenCalled();
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
unmount();
|
|
256
|
+
expect(unsub).toHaveBeenCalled();
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
it('should work without onMutation (backward compatible)', async () => {
|
|
260
|
+
// DataSource without onMutation — should not throw
|
|
261
|
+
const schema: ListViewSchema = {
|
|
262
|
+
type: 'list-view',
|
|
263
|
+
objectName: 'contacts',
|
|
264
|
+
fields: ['name'],
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
renderWithProvider(
|
|
268
|
+
<ListView schema={schema} dataSource={mockDataSource} />,
|
|
269
|
+
);
|
|
270
|
+
|
|
271
|
+
await vi.waitFor(() => {
|
|
272
|
+
expect(mockDataSource.find).toHaveBeenCalled();
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
});
|
|
@@ -50,8 +50,10 @@ describe('ListView', () => {
|
|
|
50
50
|
expect(ListView).toBeDefined();
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
it('should be a
|
|
54
|
-
|
|
53
|
+
it('should be a forwardRef component', () => {
|
|
54
|
+
// React.forwardRef wraps the component — typeof is 'object' with a render function
|
|
55
|
+
expect(typeof ListView).toBe('object');
|
|
56
|
+
expect(typeof (ListView as any).render).toBe('function');
|
|
55
57
|
});
|
|
56
58
|
|
|
57
59
|
it('should render with basic schema', () => {
|
package/src/index.tsx
CHANGED
|
@@ -17,7 +17,7 @@ export type { TabBarProps, ViewTab } from './components/TabBar';
|
|
|
17
17
|
export { UserFilters } from './UserFilters';
|
|
18
18
|
export type { UserFiltersProps } from './UserFilters';
|
|
19
19
|
export { evaluateConditionalFormatting, normalizeFilterCondition, normalizeFilters } from './ListView';
|
|
20
|
-
export type { ListViewProps } from './ListView';
|
|
20
|
+
export type { ListViewProps, ListViewHandle } from './ListView';
|
|
21
21
|
export type { ObjectGalleryProps } from './ObjectGallery';
|
|
22
22
|
export type { ViewSwitcherProps, ViewType } from './ViewSwitcher';
|
|
23
23
|
|
package/vite.config.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../src/ListView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAgB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvD,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAqBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAyBhE;AAUD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAKtD;AAmBD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,GAC9C,KAAK,CAAC,aAAa,CAoDrB;AAuFD,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAo4C5C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.stories.d.ts","sourceRoot":"","sources":["../../src/ListView.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;CAUW,CAAC;AAEtB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAInC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAexB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectGallery.d.ts","sourceRoot":"","sources":["../../src/ObjectGallery.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5F,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,gDAAgD;QAChD,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,mDAAmD;QACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC1E,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1D;AAcD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyPtD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserFilters.d.ts","sourceRoot":"","sources":["../../src/UserFilters.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAoBvD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,yCAAyC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,IAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,GACV,EAAE,gBAAgB,kDAkClB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../../src/ViewSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsDpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/components/TabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4DxC,CAAC"}
|
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|