@nova-design-system/nova-vue 3.23.0 → 3.25.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/README.md
CHANGED
|
@@ -26,9 +26,15 @@ yarn add @nova-design-system/nova-webcomponents @nova-design-system/nova-base @n
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
> In some case, you might experience SSL certificate issues when working on Developers' VM. As documented in the [Developers' setup guide](https://wiki.eliagroup.eu/spaces/EAing/pages/89296007/2.3.3.10+Developer+Setup#id-2.3.3.10DeveloperSetup-NPMconfig), you need to turn off the SSL certificate verification:
|
|
29
|
-
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm config set strict-ssl false
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
> **Note for Yarn Users**
|
|
35
|
+
> Yarn **does not automatically** install peer dependencies. You must install the following peer dependency manually:
|
|
30
36
|
> ```bash
|
|
31
|
-
>
|
|
37
|
+
> yarn add @stencil/vue-output-target
|
|
32
38
|
> ```
|
|
33
39
|
|
|
34
40
|
---
|
|
@@ -18,6 +18,20 @@ export declare function createNvDatatable<T>(): import("vue").DefineComponent<im
|
|
|
18
18
|
required: true;
|
|
19
19
|
default: () => any[];
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* Data mode - determines how sorting and pagination behave.
|
|
23
|
+
* - 'client': All data is loaded, sorting/pagination handled in browser
|
|
24
|
+
* - 'server': Data is fetched from server, sorting/pagination handled externally
|
|
25
|
+
* @default 'client'
|
|
26
|
+
*/
|
|
27
|
+
mode: {
|
|
28
|
+
type: PropType<"server" | "client">;
|
|
29
|
+
default: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Pagination config. When provided, pagination is enabled.
|
|
33
|
+
* In client mode, if you omit renderPagination and the #pagination slot, the default nv-paginationtable is used.
|
|
34
|
+
*/
|
|
21
35
|
pagination: {
|
|
22
36
|
type: PropType<NvDatatablePaginationConfig>;
|
|
23
37
|
default: any;
|
|
@@ -26,6 +40,10 @@ export declare function createNvDatatable<T>(): import("vue").DefineComponent<im
|
|
|
26
40
|
type: PropType<NvDatatableSortingConfig>;
|
|
27
41
|
default: any;
|
|
28
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Optional custom pagination UI. When omitted in client mode (with pagination set), the default nv-paginationtable is rendered.
|
|
45
|
+
* Pass a function that returns null to hide the UI while keeping pagination logic (e.g. infinite scroll).
|
|
46
|
+
*/
|
|
29
47
|
renderPagination: {
|
|
30
48
|
type: PropType<(api: NvDatatableRenderPaginationAPI) => VNode>;
|
|
31
49
|
default: any;
|
|
@@ -47,6 +65,20 @@ export declare function createNvDatatable<T>(): import("vue").DefineComponent<im
|
|
|
47
65
|
required: true;
|
|
48
66
|
default: () => any[];
|
|
49
67
|
};
|
|
68
|
+
/**
|
|
69
|
+
* Data mode - determines how sorting and pagination behave.
|
|
70
|
+
* - 'client': All data is loaded, sorting/pagination handled in browser
|
|
71
|
+
* - 'server': Data is fetched from server, sorting/pagination handled externally
|
|
72
|
+
* @default 'client'
|
|
73
|
+
*/
|
|
74
|
+
mode: {
|
|
75
|
+
type: PropType<"server" | "client">;
|
|
76
|
+
default: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Pagination config. When provided, pagination is enabled.
|
|
80
|
+
* In client mode, if you omit renderPagination and the #pagination slot, the default nv-paginationtable is used.
|
|
81
|
+
*/
|
|
50
82
|
pagination: {
|
|
51
83
|
type: PropType<NvDatatablePaginationConfig>;
|
|
52
84
|
default: any;
|
|
@@ -55,6 +87,10 @@ export declare function createNvDatatable<T>(): import("vue").DefineComponent<im
|
|
|
55
87
|
type: PropType<NvDatatableSortingConfig>;
|
|
56
88
|
default: any;
|
|
57
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* Optional custom pagination UI. When omitted in client mode (with pagination set), the default nv-paginationtable is rendered.
|
|
92
|
+
* Pass a function that returns null to hide the UI while keeping pagination logic (e.g. infinite scroll).
|
|
93
|
+
*/
|
|
58
94
|
renderPagination: {
|
|
59
95
|
type: PropType<(api: NvDatatableRenderPaginationAPI) => VNode>;
|
|
60
96
|
default: any;
|
|
@@ -64,6 +100,7 @@ export declare function createNvDatatable<T>(): import("vue").DefineComponent<im
|
|
|
64
100
|
default: boolean;
|
|
65
101
|
};
|
|
66
102
|
}>> & Readonly<{}>, {
|
|
103
|
+
mode: "server" | "client";
|
|
67
104
|
columns: NvDatatableColumn<T, keyof T, T[keyof T]>[];
|
|
68
105
|
rows: T[];
|
|
69
106
|
pagination: NvDatatablePaginationConfig;
|
|
@@ -162,6 +199,8 @@ export interface NvDatatableColumn<Row, K extends keyof Row = keyof Row, F = Row
|
|
|
162
199
|
valueFormatter?: (params: NvTableValueFormatterParams<Row, Row[K], K>) => F;
|
|
163
200
|
/** Custom cell renderer */
|
|
164
201
|
renderCell?: (params: NvTableRenderCellParams<Row, F, K>) => VNode | string | number;
|
|
202
|
+
/** Custom header renderer */
|
|
203
|
+
renderHeader?: (params: NvTableRenderHeaderParams<K>) => VNode | string | number;
|
|
165
204
|
/** Enable/disable sorting for this column */
|
|
166
205
|
sortable?: boolean;
|
|
167
206
|
/** Custom sorting function or built-in function name */
|
|
@@ -173,6 +212,15 @@ export interface NvDatatableColumn<Row, K extends keyof Row = keyof Row, F = Row
|
|
|
173
212
|
/** Where to place undefined values in sort */
|
|
174
213
|
sortUndefined?: 'first' | 'last' | false | -1 | 1;
|
|
175
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Parameters for custom header rendering function.
|
|
217
|
+
*/
|
|
218
|
+
export interface NvTableRenderHeaderParams<Field> {
|
|
219
|
+
/** Display name for the column header */
|
|
220
|
+
headerName: string;
|
|
221
|
+
/** Field name */
|
|
222
|
+
field: Field;
|
|
223
|
+
}
|
|
176
224
|
/**
|
|
177
225
|
* Parameters for custom cell rendering function.
|
|
178
226
|
*/
|
|
@@ -199,15 +247,29 @@ export interface NvTableValueFormatterParams<Row, Value, Field> {
|
|
|
199
247
|
}
|
|
200
248
|
/**
|
|
201
249
|
* Pagination configuration for NvDatatable.
|
|
202
|
-
*
|
|
250
|
+
* The pagination behavior (client vs server) is determined by the top-level `mode` prop.
|
|
251
|
+
* Use `infinite: true` for infinite scroll (requires top-level `mode="server"`).
|
|
203
252
|
*/
|
|
204
253
|
export interface NvDatatablePaginationConfig {
|
|
205
|
-
/**
|
|
206
|
-
|
|
254
|
+
/**
|
|
255
|
+
* Enable infinite scroll pagination.
|
|
256
|
+
* When true, data loads continuously as user scrolls.
|
|
257
|
+
* Requires top-level `mode="server"` on the datatable.
|
|
258
|
+
*/
|
|
259
|
+
infinite?: boolean;
|
|
207
260
|
/** Initial page size (default: 10) */
|
|
208
261
|
initialPageSize?: number;
|
|
209
262
|
/** Available page size options (default: [10, 20, 50, 100]) */
|
|
210
263
|
pageSizeOptions?: number[];
|
|
264
|
+
/** Custom labels for pagination component (i18n support) */
|
|
265
|
+
labels?: {
|
|
266
|
+
/** Label template for the page indicator. Supports placeholders: {pageIndex}, {pageCount} */
|
|
267
|
+
page?: string;
|
|
268
|
+
/** Label template for the total row count display. Supports placeholder: {rowCount} */
|
|
269
|
+
total?: string;
|
|
270
|
+
/** Label template for the page size dropdown options. Supports placeholder: {pageSize} */
|
|
271
|
+
pageSizeOption?: string;
|
|
272
|
+
};
|
|
211
273
|
/** Total number of rows (for server-side pagination) */
|
|
212
274
|
totalRowCount?: number;
|
|
213
275
|
/** Total number of pages (for server-side pagination) */
|
|
@@ -263,11 +325,9 @@ export interface NvDatatableRenderPaginationAPI {
|
|
|
263
325
|
}
|
|
264
326
|
/**
|
|
265
327
|
* Sorting configuration for NvDatatable.
|
|
266
|
-
*
|
|
328
|
+
* The sorting behavior (client vs server) is determined by the top-level `mode` prop.
|
|
267
329
|
*/
|
|
268
330
|
export interface NvDatatableSortingConfig {
|
|
269
|
-
/** Sorting mode */
|
|
270
|
-
mode: 'client' | 'server';
|
|
271
331
|
/** Enable multi-column sorting with Shift+Click */
|
|
272
332
|
enableMultiSort?: boolean;
|
|
273
333
|
/** Allow cycling through to "no sort" state */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
2
|
import { defineComponent, computed, h, ref, watch, watchEffect, onUnmounted, } from 'vue';
|
|
3
3
|
import { useVueTable, getCoreRowModel, getPaginationRowModel, getSortedRowModel, } from '@tanstack/vue-table';
|
|
4
|
-
import { NvTable, NvTableheader } from '../generated/components';
|
|
4
|
+
import { NvTable, NvTableheader, NvPaginationtable, } from '../generated/components';
|
|
5
5
|
/**
|
|
6
6
|
* Creates a typed NvDatatable component for a specific row type. This is the
|
|
7
7
|
* standard approach for generic components in Vue.
|
|
@@ -23,6 +23,20 @@ export function createNvDatatable() {
|
|
|
23
23
|
required: true,
|
|
24
24
|
default: () => [],
|
|
25
25
|
},
|
|
26
|
+
/**
|
|
27
|
+
* Data mode - determines how sorting and pagination behave.
|
|
28
|
+
* - 'client': All data is loaded, sorting/pagination handled in browser
|
|
29
|
+
* - 'server': Data is fetched from server, sorting/pagination handled externally
|
|
30
|
+
* @default 'client'
|
|
31
|
+
*/
|
|
32
|
+
mode: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: 'client',
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Pagination config. When provided, pagination is enabled.
|
|
38
|
+
* In client mode, if you omit renderPagination and the #pagination slot, the default nv-paginationtable is used.
|
|
39
|
+
*/
|
|
26
40
|
pagination: {
|
|
27
41
|
type: Object,
|
|
28
42
|
default: undefined,
|
|
@@ -31,6 +45,10 @@ export function createNvDatatable() {
|
|
|
31
45
|
type: Object,
|
|
32
46
|
default: undefined,
|
|
33
47
|
},
|
|
48
|
+
/**
|
|
49
|
+
* Optional custom pagination UI. When omitted in client mode (with pagination set), the default nv-paginationtable is rendered.
|
|
50
|
+
* Pass a function that returns null to hide the UI while keeping pagination logic (e.g. infinite scroll).
|
|
51
|
+
*/
|
|
34
52
|
renderPagination: {
|
|
35
53
|
type: Function,
|
|
36
54
|
default: undefined,
|
|
@@ -53,6 +71,7 @@ export function createNvDatatable() {
|
|
|
53
71
|
const tableColumns = computed(() => props.columns
|
|
54
72
|
.filter((col) => !col.hidden)
|
|
55
73
|
.map((col) => {
|
|
74
|
+
const headerName = col.headerName || String(col.field);
|
|
56
75
|
const columnDef = {
|
|
57
76
|
accessorKey: col.field,
|
|
58
77
|
accessorFn: col.valueFormatter
|
|
@@ -65,7 +84,12 @@ export function createNvDatatable() {
|
|
|
65
84
|
});
|
|
66
85
|
}
|
|
67
86
|
: undefined,
|
|
68
|
-
header: col.
|
|
87
|
+
header: col.renderHeader
|
|
88
|
+
? () => col.renderHeader({
|
|
89
|
+
headerName,
|
|
90
|
+
field: col.field,
|
|
91
|
+
})
|
|
92
|
+
: headerName,
|
|
69
93
|
size: col.width,
|
|
70
94
|
enableResizing: col.resizable ?? true,
|
|
71
95
|
// Sorting configuration
|
|
@@ -114,6 +138,8 @@ export function createNvDatatable() {
|
|
|
114
138
|
}));
|
|
115
139
|
// Determine base table configuration with sorting
|
|
116
140
|
const getBaseTableConfig = () => {
|
|
141
|
+
// Sorting mode is derived from top-level mode prop
|
|
142
|
+
const isServerMode = props.mode === 'server';
|
|
117
143
|
const baseConfig = {
|
|
118
144
|
get data() {
|
|
119
145
|
return props.rows;
|
|
@@ -126,13 +152,13 @@ export function createNvDatatable() {
|
|
|
126
152
|
...(props.sorting && {
|
|
127
153
|
get state() {
|
|
128
154
|
return {
|
|
129
|
-
sorting:
|
|
155
|
+
sorting: isServerMode && props.sorting.sortState
|
|
130
156
|
? props.sorting.sortState
|
|
131
157
|
: sortingState.value,
|
|
132
158
|
};
|
|
133
159
|
},
|
|
134
160
|
onSortingChange: (updaterOrValue) => {
|
|
135
|
-
const currentSort =
|
|
161
|
+
const currentSort = isServerMode && props.sorting.sortState
|
|
136
162
|
? props.sorting.sortState
|
|
137
163
|
: sortingState.value;
|
|
138
164
|
const newSort = typeof updaterOrValue === 'function'
|
|
@@ -141,12 +167,11 @@ export function createNvDatatable() {
|
|
|
141
167
|
// Always update internal state for reactivity
|
|
142
168
|
sortingState.value = newSort;
|
|
143
169
|
// For server-side sorting, also call the callback
|
|
144
|
-
if (props.sorting?.
|
|
145
|
-
props.sorting.onSortingChange) {
|
|
170
|
+
if (isServerMode && props.sorting?.onSortingChange) {
|
|
146
171
|
props.sorting.onSortingChange(newSort);
|
|
147
172
|
}
|
|
148
173
|
},
|
|
149
|
-
manualSorting:
|
|
174
|
+
manualSorting: isServerMode,
|
|
150
175
|
enableSorting: true,
|
|
151
176
|
enableMultiSort: props.sorting.enableMultiSort ?? false,
|
|
152
177
|
enableSortingRemoval: props.sorting.enableSortingRemoval ?? true,
|
|
@@ -156,19 +181,28 @@ export function createNvDatatable() {
|
|
|
156
181
|
isMultiSortEvent: props.sorting.enableMultiSort
|
|
157
182
|
? () => true
|
|
158
183
|
: undefined,
|
|
159
|
-
getSortedRowModel:
|
|
184
|
+
getSortedRowModel: !isServerMode ? getSortedRowModel() : undefined,
|
|
160
185
|
}),
|
|
161
186
|
};
|
|
162
187
|
return baseConfig;
|
|
163
188
|
};
|
|
189
|
+
// Validation: warn if infinite scroll is used without server mode
|
|
190
|
+
watchEffect(() => {
|
|
191
|
+
if (props.pagination?.infinite && props.mode !== 'server') {
|
|
192
|
+
console.warn('[NvDatatable] pagination.infinite requires mode="server". ' +
|
|
193
|
+
'Set mode="server" on the datatable component.');
|
|
194
|
+
}
|
|
195
|
+
});
|
|
164
196
|
// Create reactive table instance based on pagination mode
|
|
165
197
|
const table = computed(() => {
|
|
166
198
|
const baseConfig = getBaseTableConfig();
|
|
167
|
-
|
|
199
|
+
const isServerMode = props.mode === 'server';
|
|
200
|
+
const isInfiniteScroll = props.pagination?.infinite === true;
|
|
201
|
+
if (!props.pagination || isInfiniteScroll) {
|
|
168
202
|
// No pagination or infinite scroll - simple config
|
|
169
203
|
return useVueTable(baseConfig);
|
|
170
204
|
}
|
|
171
|
-
else if (
|
|
205
|
+
else if (!isServerMode) {
|
|
172
206
|
// Client-side pagination - table manages its own state
|
|
173
207
|
return useVueTable({
|
|
174
208
|
...baseConfig,
|
|
@@ -187,7 +221,7 @@ export function createNvDatatable() {
|
|
|
187
221
|
...baseConfig,
|
|
188
222
|
manualPagination: true,
|
|
189
223
|
get pageCount() {
|
|
190
|
-
if (!props.pagination
|
|
224
|
+
if (!props.pagination) {
|
|
191
225
|
return -1;
|
|
192
226
|
}
|
|
193
227
|
const pageSize = paginationState.value.pageSize;
|
|
@@ -221,8 +255,11 @@ export function createNvDatatable() {
|
|
|
221
255
|
});
|
|
222
256
|
// Handle pagination changes for server mode
|
|
223
257
|
watch(paginationState, (newState) => {
|
|
224
|
-
|
|
225
|
-
|
|
258
|
+
const isServerMode = props.mode === 'server';
|
|
259
|
+
const isInfiniteScroll = props.pagination?.infinite === true;
|
|
260
|
+
if (isServerMode &&
|
|
261
|
+
!isInfiniteScroll &&
|
|
262
|
+
props.pagination?.onPaginationChange) {
|
|
226
263
|
props.pagination.onPaginationChange({
|
|
227
264
|
pageIndex: newState.pageIndex,
|
|
228
265
|
pageSize: newState.pageSize,
|
|
@@ -238,14 +275,15 @@ export function createNvDatatable() {
|
|
|
238
275
|
observer = null;
|
|
239
276
|
}
|
|
240
277
|
// Only set up observer for infinite scroll mode
|
|
241
|
-
|
|
278
|
+
const isInfiniteScroll = props.pagination?.infinite === true;
|
|
279
|
+
if (!isInfiniteScroll || !lastRowRef.value) {
|
|
242
280
|
return;
|
|
243
281
|
}
|
|
244
282
|
const threshold = props.pagination.loadMoreThreshold || 500;
|
|
245
283
|
observer = new IntersectionObserver((entries) => {
|
|
246
284
|
const entry = entries[0];
|
|
247
285
|
if (entry.isIntersecting &&
|
|
248
|
-
props.pagination?.
|
|
286
|
+
props.pagination?.infinite &&
|
|
249
287
|
props.pagination.hasMore &&
|
|
250
288
|
!props.pagination.isLoading &&
|
|
251
289
|
props.pagination.onLoadMore) {
|
|
@@ -274,9 +312,11 @@ export function createNvDatatable() {
|
|
|
274
312
|
if (!props.pagination) {
|
|
275
313
|
return null;
|
|
276
314
|
}
|
|
315
|
+
const isServerMode = props.mode === 'server';
|
|
316
|
+
const isInfiniteScroll = props.pagination.infinite === true;
|
|
277
317
|
const tablePaginationState = table.value.getState().pagination;
|
|
278
318
|
const pageCount = table.value.getPageCount();
|
|
279
|
-
const rowCount =
|
|
319
|
+
const rowCount = isServerMode && !isInfiniteScroll
|
|
280
320
|
? props.pagination.totalRowCount || props.rows.length
|
|
281
321
|
: props.rows.length;
|
|
282
322
|
return {
|
|
@@ -292,17 +332,36 @@ export function createNvDatatable() {
|
|
|
292
332
|
setPageSize: (size) => table.value.setPageSize(size),
|
|
293
333
|
canPreviousPage: table.value.getCanPreviousPage(),
|
|
294
334
|
canNextPage: table.value.getCanNextPage(),
|
|
295
|
-
isLoading:
|
|
335
|
+
isLoading: isInfiniteScroll
|
|
296
336
|
? props.pagination.isLoading
|
|
297
337
|
: undefined,
|
|
298
|
-
hasMore: props.pagination.
|
|
299
|
-
? props.pagination.hasMore
|
|
300
|
-
: undefined,
|
|
338
|
+
hasMore: isInfiniteScroll ? props.pagination.hasMore : undefined,
|
|
301
339
|
};
|
|
302
340
|
});
|
|
341
|
+
// Helper function for default pagination rendering with nv-paginationtable
|
|
342
|
+
const renderDefaultPagination = (api) => {
|
|
343
|
+
// Only pass label props if defined (let web component use its defaults otherwise)
|
|
344
|
+
const labelProps = {};
|
|
345
|
+
if (props.pagination?.labels?.page)
|
|
346
|
+
labelProps.labelPage = props.pagination.labels.page;
|
|
347
|
+
if (props.pagination?.labels?.total)
|
|
348
|
+
labelProps.labelTotal = props.pagination.labels.total;
|
|
349
|
+
if (props.pagination?.labels?.pageSizeOption)
|
|
350
|
+
labelProps.labelPageSizeOption =
|
|
351
|
+
props.pagination.labels.pageSizeOption;
|
|
352
|
+
return h(NvPaginationtable, {
|
|
353
|
+
pageIndex: api.pageIndex,
|
|
354
|
+
pageSize: api.pageSize,
|
|
355
|
+
pageCount: api.pageCount,
|
|
356
|
+
rowCount: api.rowCount,
|
|
357
|
+
...labelProps,
|
|
358
|
+
onPageIndexChanged: (e) => api.setPageIndex(e.detail),
|
|
359
|
+
onPageSizeChanged: (e) => api.setPageSize(e.detail),
|
|
360
|
+
});
|
|
361
|
+
};
|
|
303
362
|
return () => {
|
|
304
363
|
const tableRows = table.value.getRowModel().rows;
|
|
305
|
-
const isInfiniteScroll = props.pagination?.
|
|
364
|
+
const isInfiniteScroll = props.pagination?.infinite === true;
|
|
306
365
|
const tableElement = h(NvTable, attrs, {
|
|
307
366
|
default: () => [
|
|
308
367
|
h('table', {}, [
|
|
@@ -370,7 +429,7 @@ export function createNvDatatable() {
|
|
|
370
429
|
],
|
|
371
430
|
});
|
|
372
431
|
// Return table with optional pagination
|
|
373
|
-
// Priority: slots.pagination > props.renderPagination > no pagination
|
|
432
|
+
// Priority: slots.pagination > props.renderPagination > default pagination > no pagination
|
|
374
433
|
if (paginationAPI.value) {
|
|
375
434
|
if (slots.pagination) {
|
|
376
435
|
// Use scoped slot (preferred)
|
|
@@ -386,6 +445,15 @@ export function createNvDatatable() {
|
|
|
386
445
|
props.renderPagination(paginationAPI.value),
|
|
387
446
|
]);
|
|
388
447
|
}
|
|
448
|
+
else if (props.mode === 'client' &&
|
|
449
|
+
props.pagination &&
|
|
450
|
+
!props.pagination.infinite) {
|
|
451
|
+
// Default pagination with nv-paginationtable (client mode only)
|
|
452
|
+
return h('div', {}, [
|
|
453
|
+
tableElement,
|
|
454
|
+
renderDefaultPagination(paginationAPI.value),
|
|
455
|
+
]);
|
|
456
|
+
}
|
|
389
457
|
}
|
|
390
458
|
return tableElement;
|
|
391
459
|
};
|
|
@@ -16,6 +16,9 @@ export declare const NvDatagridcolumn: StencilVueComponent<JSX.NvDatagridcolumn>
|
|
|
16
16
|
export declare const NvDialog: StencilVueComponent<JSX.NvDialog, JSX.NvDialog["open"]>;
|
|
17
17
|
export declare const NvDialogfooter: StencilVueComponent<JSX.NvDialogfooter>;
|
|
18
18
|
export declare const NvDialogheader: StencilVueComponent<JSX.NvDialogheader>;
|
|
19
|
+
export declare const NvDrawer: StencilVueComponent<JSX.NvDrawer, JSX.NvDrawer["open"]>;
|
|
20
|
+
export declare const NvDrawerfooter: StencilVueComponent<JSX.NvDrawerfooter>;
|
|
21
|
+
export declare const NvDrawerheader: StencilVueComponent<JSX.NvDrawerheader>;
|
|
19
22
|
export declare const NvFieldcheckbox: StencilVueComponent<JSX.NvFieldcheckbox, JSX.NvFieldcheckbox["checked"]>;
|
|
20
23
|
export declare const NvFielddate: StencilVueComponent<JSX.NvFielddate, JSX.NvFielddate["value"]>;
|
|
21
24
|
export declare const NvFielddaterange: StencilVueComponent<JSX.NvFielddaterange, JSX.NvFielddaterange["value"]>;
|
|
@@ -39,6 +42,7 @@ export declare const NvMenuitem: StencilVueComponent<JSX.NvMenuitem>;
|
|
|
39
42
|
export declare const NvNotification: StencilVueComponent<JSX.NvNotification, JSX.NvNotification["hidden"]>;
|
|
40
43
|
export declare const NvNotificationBullet: StencilVueComponent<JSX.NvNotificationBullet>;
|
|
41
44
|
export declare const NvNotificationcontainer: StencilVueComponent<JSX.NvNotificationcontainer>;
|
|
45
|
+
export declare const NvPaginationtable: StencilVueComponent<JSX.NvPaginationtable, JSX.NvPaginationtable["pageIndex"]>;
|
|
42
46
|
export declare const NvPopover: StencilVueComponent<JSX.NvPopover, JSX.NvPopover["open"]>;
|
|
43
47
|
export declare const NvRow: StencilVueComponent<JSX.NvRow>;
|
|
44
48
|
export declare const NvSidebar: StencilVueComponent<JSX.NvSidebar, JSX.NvSidebar["open"]>;
|
|
@@ -155,7 +155,6 @@ export const NvDatagridcolumn = /*@__PURE__*/ defineContainer('nv-datagridcolumn
|
|
|
155
155
|
'group'
|
|
156
156
|
]);
|
|
157
157
|
export const NvDialog = /*@__PURE__*/ defineContainer('nv-dialog', undefined, [
|
|
158
|
-
'triggerElement',
|
|
159
158
|
'headerElement',
|
|
160
159
|
'footerElement',
|
|
161
160
|
'open',
|
|
@@ -188,6 +187,40 @@ export const NvDialogheader = /*@__PURE__*/ defineContainer('nv-dialogheader', u
|
|
|
188
187
|
'heading',
|
|
189
188
|
'subheading'
|
|
190
189
|
]);
|
|
190
|
+
export const NvDrawer = /*@__PURE__*/ defineContainer('nv-drawer', undefined, [
|
|
191
|
+
'open',
|
|
192
|
+
'undismissable',
|
|
193
|
+
'clickOutside',
|
|
194
|
+
'controlled',
|
|
195
|
+
'side',
|
|
196
|
+
'size',
|
|
197
|
+
'width',
|
|
198
|
+
'autofocus',
|
|
199
|
+
'swipeToOpen',
|
|
200
|
+
'openChanged'
|
|
201
|
+
], [
|
|
202
|
+
'openChanged'
|
|
203
|
+
], 'open', 'openChanged', undefined);
|
|
204
|
+
export const NvDrawerfooter = /*@__PURE__*/ defineContainer('nv-drawerfooter', undefined, [
|
|
205
|
+
'disabled',
|
|
206
|
+
'undismissable',
|
|
207
|
+
'leadingIcon',
|
|
208
|
+
'trailingIcon',
|
|
209
|
+
'danger',
|
|
210
|
+
'cancelLabel',
|
|
211
|
+
'primaryLabel',
|
|
212
|
+
'primaryButtonType',
|
|
213
|
+
'form',
|
|
214
|
+
'drawerCanceled',
|
|
215
|
+
'drawerPrimaryClicked'
|
|
216
|
+
], [
|
|
217
|
+
'drawerCanceled',
|
|
218
|
+
'drawerPrimaryClicked'
|
|
219
|
+
]);
|
|
220
|
+
export const NvDrawerheader = /*@__PURE__*/ defineContainer('nv-drawerheader', undefined, [
|
|
221
|
+
'heading',
|
|
222
|
+
'subheading'
|
|
223
|
+
]);
|
|
191
224
|
export const NvFieldcheckbox = /*@__PURE__*/ defineContainer('nv-fieldcheckbox', undefined, [
|
|
192
225
|
'message',
|
|
193
226
|
'validation',
|
|
@@ -653,6 +686,23 @@ export const NvNotificationBullet = /*@__PURE__*/ defineContainer('nv-notificati
|
|
|
653
686
|
export const NvNotificationcontainer = /*@__PURE__*/ defineContainer('nv-notificationcontainer', undefined, [
|
|
654
687
|
'position'
|
|
655
688
|
]);
|
|
689
|
+
export const NvPaginationtable = /*@__PURE__*/ defineContainer('nv-paginationtable', undefined, [
|
|
690
|
+
'pageIndex',
|
|
691
|
+
'pageSize',
|
|
692
|
+
'pageCount',
|
|
693
|
+
'rowCount',
|
|
694
|
+
'hideControls',
|
|
695
|
+
'hidePrevNext',
|
|
696
|
+
'hideFirstLast',
|
|
697
|
+
'labelPage',
|
|
698
|
+
'labelTotal',
|
|
699
|
+
'labelPageSizeOption',
|
|
700
|
+
'pageIndexChanged',
|
|
701
|
+
'pageSizeChanged'
|
|
702
|
+
], [
|
|
703
|
+
'pageIndexChanged',
|
|
704
|
+
'pageSizeChanged'
|
|
705
|
+
], 'pageIndex', 'pageIndexChanged', undefined);
|
|
656
706
|
export const NvPopover = /*@__PURE__*/ defineContainer('nv-popover', undefined, [
|
|
657
707
|
'triggerElement',
|
|
658
708
|
'open',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nova-design-system/nova-vue",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.25.0",
|
|
4
4
|
"description": "Nova is a design system created by Elia Group to empower creators to efficiently build solutions that people love to use.",
|
|
5
5
|
"author": "Elia Group",
|
|
6
6
|
"homepage": "https://nova.eliagroup.io",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"tsc:watch": "tsc -p . --outDir ./dist --watch",
|
|
37
37
|
"storybook": "storybook dev -p 6008",
|
|
38
38
|
"storybook.build": "storybook build -o ../../storybook-static/vue",
|
|
39
|
-
"clean": "rimraf dist lib/generated lib/stories/generated",
|
|
39
|
+
"clean": "rimraf dist lib/generated lib/stories/generated lib/stories/components/*-migration.mdx lib/stories/components/*-guide.mdx",
|
|
40
40
|
"typecheck": "tsc --emitDeclarationOnly false --noEmit"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
@@ -47,5 +47,8 @@
|
|
|
47
47
|
"vue": "3.5.25",
|
|
48
48
|
"nova-utils": "*",
|
|
49
49
|
"nova-storybook-utils": "*"
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"@stencil/vue-output-target": "0.11.8"
|
|
50
53
|
}
|
|
51
54
|
}
|