@codemonster-ru/vueforge 0.80.0 → 0.82.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.
@@ -2,6 +2,9 @@ type Size = 'small' | 'normal' | 'large';
2
2
  type Variant = 'filled' | 'outlined';
3
3
  type Align = 'left' | 'center' | 'right';
4
4
  type SortOrder = 'asc' | 'desc' | null;
5
+ type DataTableFilters = Record<string, unknown>;
6
+ type DataTableSelectionMode = 'single' | 'multiple' | null;
7
+ type DataTableRowKey = string | number;
5
8
  export interface DataTableColumn {
6
9
  field: string;
7
10
  header?: string;
@@ -11,6 +14,18 @@ export interface DataTableColumn {
11
14
  minWidth?: string;
12
15
  formatter?: (row: Record<string, unknown>, value: unknown, column: DataTableColumn) => string | number;
13
16
  }
17
+ export interface DataTableQuery {
18
+ sortField: string | null;
19
+ sortOrder: SortOrder;
20
+ page: number;
21
+ pageSize: number;
22
+ filters: DataTableFilters;
23
+ }
24
+ export interface DataTableBulkAction {
25
+ label: string;
26
+ value: string;
27
+ disabled?: boolean;
28
+ }
14
29
  interface Props {
15
30
  rows?: Array<Record<string, unknown>>;
16
31
  columns?: Array<DataTableColumn>;
@@ -27,6 +42,15 @@ interface Props {
27
42
  variant?: Variant;
28
43
  showHeader?: boolean;
29
44
  ariaLabel?: string;
45
+ server?: boolean;
46
+ page?: number;
47
+ pageSize?: number;
48
+ filters?: DataTableFilters;
49
+ selectionMode?: DataTableSelectionMode;
50
+ selection?: DataTableRowKey | Array<DataTableRowKey> | null;
51
+ bulkActions?: Array<DataTableBulkAction>;
52
+ selectAllAriaLabel?: string;
53
+ selectRowAriaLabel?: string;
30
54
  }
31
55
  declare function __VLS_template(): {
32
56
  attrs: Partial<{}>;
@@ -40,6 +64,12 @@ declare function __VLS_template(): {
40
64
  value: unknown;
41
65
  index: number;
42
66
  }) => any>> & {
67
+ 'bulk-actions'?(_: {
68
+ selectedKeys: DataTableRowKey[];
69
+ selectedRows: Record<string, unknown>[];
70
+ clearSelection: () => void;
71
+ applyAction: (value: string) => void;
72
+ }): any;
43
73
  loading?(_: {}): any;
44
74
  empty?(_: {}): any;
45
75
  };
@@ -47,25 +77,55 @@ declare function __VLS_template(): {
47
77
  rootEl: HTMLDivElement;
48
78
  };
49
79
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
50
- declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
80
+ declare const __VLS_component: import('vue').DefineComponent<Props, {
81
+ setPage: (value: number) => void;
82
+ setPageSize: (value: number) => void;
83
+ setFilters: (value: DataTableFilters) => void;
84
+ clearFilters: () => void;
85
+ getQuery: () => DataTableQuery;
86
+ clearSelection: () => void;
87
+ getSelectedKeys: () => DataTableRowKey[];
88
+ getSelectedRows: () => Record<string, unknown>[];
89
+ applyBulkAction: (value: string) => void;
90
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
51
91
  sort: (...args: any[]) => void;
92
+ filter: (...args: any[]) => void;
93
+ page: (...args: any[]) => void;
52
94
  "update:sortField": (...args: any[]) => void;
53
95
  "update:sortOrder": (...args: any[]) => void;
54
96
  rowClick: (...args: any[]) => void;
97
+ "update:page": (...args: any[]) => void;
98
+ "update:pageSize": (...args: any[]) => void;
99
+ "update:filters": (...args: any[]) => void;
100
+ request: (...args: any[]) => void;
101
+ "update:selection": (...args: any[]) => void;
102
+ selectionChange: (...args: any[]) => void;
103
+ bulkAction: (...args: any[]) => void;
55
104
  }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
56
105
  onSort?: ((...args: any[]) => any) | undefined;
106
+ onFilter?: ((...args: any[]) => any) | undefined;
107
+ onPage?: ((...args: any[]) => any) | undefined;
57
108
  "onUpdate:sortField"?: ((...args: any[]) => any) | undefined;
58
109
  "onUpdate:sortOrder"?: ((...args: any[]) => any) | undefined;
59
110
  onRowClick?: ((...args: any[]) => any) | undefined;
111
+ "onUpdate:page"?: ((...args: any[]) => any) | undefined;
112
+ "onUpdate:pageSize"?: ((...args: any[]) => any) | undefined;
113
+ "onUpdate:filters"?: ((...args: any[]) => any) | undefined;
114
+ onRequest?: ((...args: any[]) => any) | undefined;
115
+ "onUpdate:selection"?: ((...args: any[]) => any) | undefined;
116
+ onSelectionChange?: ((...args: any[]) => any) | undefined;
117
+ onBulkAction?: ((...args: any[]) => any) | undefined;
60
118
  }>, {
61
119
  size: Size;
62
120
  columns: Array<DataTableColumn>;
121
+ page: number;
63
122
  loading: boolean;
64
123
  variant: Variant;
65
124
  ariaLabel: string;
66
125
  loadingText: string;
67
126
  emptyText: string;
68
127
  rows: Array<Record<string, unknown>>;
128
+ pageSize: number;
69
129
  rowKey: string | ((row: Record<string, unknown>, index: number) => string | number);
70
130
  sortable: boolean;
71
131
  sortField: string | null;
@@ -73,6 +133,13 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
73
133
  striped: boolean;
74
134
  hover: boolean;
75
135
  showHeader: boolean;
136
+ server: boolean;
137
+ filters: DataTableFilters;
138
+ selectionMode: DataTableSelectionMode;
139
+ selection: DataTableRowKey | Array<DataTableRowKey> | null;
140
+ bulkActions: Array<DataTableBulkAction>;
141
+ selectAllAriaLabel: string;
142
+ selectRowAriaLabel: string;
76
143
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
77
144
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
78
145
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemonster-ru/vueforge",
3
- "version": "0.80.0",
3
+ "version": "0.82.0",
4
4
  "description": "Open source UI components for Vue.js.",
5
5
  "license": "MIT",
6
6
  "author": "Kirill Kolesnikov",