@comitor/ui 1.10.0 → 2.0.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 +24 -5
- package/dist/data-grid/compose-refs.d.ts +19 -0
- package/dist/data-grid/compose-refs.js +41 -0
- package/dist/data-grid/compose-refs.js.map +1 -0
- package/dist/data-grid/data-grid-cell-variants.d.ts +15 -0
- package/dist/data-grid/data-grid-cell-variants.js +1738 -0
- package/dist/data-grid/data-grid-cell-variants.js.map +1 -0
- package/dist/data-grid/data-grid-cell-wrapper.d.ts +9 -0
- package/dist/data-grid/data-grid-cell-wrapper.js +179 -0
- package/dist/data-grid/data-grid-cell-wrapper.js.map +1 -0
- package/dist/data-grid/data-grid-cell.d.ts +8 -0
- package/dist/data-grid/data-grid-cell.js +101 -0
- package/dist/data-grid/data-grid-cell.js.map +1 -0
- package/dist/data-grid/data-grid-column-header.d.ts +12 -0
- package/dist/data-grid/data-grid-column-header.js +207 -0
- package/dist/data-grid/data-grid-column-header.js.map +1 -0
- package/dist/data-grid/data-grid-context-menu.d.ts +12 -0
- package/dist/data-grid/data-grid-context-menu.js +161 -0
- package/dist/data-grid/data-grid-context-menu.js.map +1 -0
- package/dist/data-grid/data-grid-filter-menu.d.ts +23 -0
- package/dist/data-grid/data-grid-filter-menu.js +725 -0
- package/dist/data-grid/data-grid-filter-menu.js.map +1 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.d.ts +31 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.js +229 -0
- package/dist/data-grid/data-grid-keyboard-shortcuts.js.map +1 -0
- package/dist/data-grid/data-grid-locale.d.ts +24 -0
- package/dist/data-grid/data-grid-locale.js +25 -0
- package/dist/data-grid/data-grid-locale.js.map +1 -0
- package/dist/data-grid/data-grid-paste-dialog.d.ts +11 -0
- package/dist/data-grid/data-grid-paste-dialog.js +104 -0
- package/dist/data-grid/data-grid-paste-dialog.js.map +1 -0
- package/dist/data-grid/data-grid-presence.d.ts +14 -0
- package/dist/data-grid/data-grid-presence.js +16 -0
- package/dist/data-grid/data-grid-presence.js.map +1 -0
- package/dist/data-grid/data-grid-row-height-menu.d.ts +25 -0
- package/dist/data-grid/data-grid-row-height-menu.js +53 -0
- package/dist/data-grid/data-grid-row-height-menu.js.map +1 -0
- package/dist/data-grid/data-grid-row.d.ts +28 -0
- package/dist/data-grid/data-grid-row.js +206 -0
- package/dist/data-grid/data-grid-row.js.map +1 -0
- package/dist/data-grid/data-grid-search.d.ts +10 -0
- package/dist/data-grid/data-grid-search.js +184 -0
- package/dist/data-grid/data-grid-search.js.map +1 -0
- package/dist/data-grid/data-grid-select-column.d.ts +12 -0
- package/dist/data-grid/data-grid-select-column.js +179 -0
- package/dist/data-grid/data-grid-select-column.js.map +1 -0
- package/dist/data-grid/data-grid-skeleton.d.ts +13 -0
- package/dist/data-grid/data-grid-skeleton.js +52 -0
- package/dist/data-grid/data-grid-skeleton.js.map +1 -0
- package/dist/data-grid/data-grid-sort-menu.d.ts +23 -0
- package/dist/data-grid/data-grid-sort-menu.js +283 -0
- package/dist/data-grid/data-grid-sort-menu.js.map +1 -0
- package/dist/data-grid/data-grid-view-menu.d.ts +24 -0
- package/dist/data-grid/data-grid-view-menu.js +74 -0
- package/dist/data-grid/data-grid-view-menu.js.map +1 -0
- package/dist/data-grid/data-grid.d.ts +44 -0
- package/dist/data-grid/data-grid.js +238 -0
- package/dist/data-grid/data-grid.js.map +1 -0
- package/dist/data-grid/filters.d.ts +27 -0
- package/dist/data-grid/filters.js +233 -0
- package/dist/data-grid/filters.js.map +1 -0
- package/dist/data-grid/index.d.ts +25 -0
- package/dist/data-grid/index.js +95 -0
- package/dist/data-grid/index.js.map +1 -0
- package/dist/data-grid/messages-en.d.ts +294 -0
- package/dist/data-grid/messages-en.js +279 -0
- package/dist/data-grid/messages-en.js.map +1 -0
- package/dist/data-grid/messages-vi.d.ts +12 -0
- package/dist/data-grid/messages-vi.js +279 -0
- package/dist/data-grid/messages-vi.js.map +1 -0
- package/dist/data-grid/messages.d.ts +567 -0
- package/dist/data-grid/messages.js +20 -0
- package/dist/data-grid/messages.js.map +1 -0
- package/dist/data-grid/sortable.d.ts +50 -0
- package/dist/data-grid/sortable.js +361 -0
- package/dist/data-grid/sortable.js.map +1 -0
- package/dist/data-grid/toast.d.ts +10 -0
- package/dist/data-grid/toast.js +21 -0
- package/dist/data-grid/toast.js.map +1 -0
- package/dist/data-grid/types.d.ts +189 -0
- package/dist/data-grid/types.js +1 -0
- package/dist/data-grid/types.js.map +1 -0
- package/dist/data-grid/use-as-ref.d.ts +5 -0
- package/dist/data-grid/use-as-ref.js +13 -0
- package/dist/data-grid/use-as-ref.js.map +1 -0
- package/dist/data-grid/use-badge-overflow.d.ts +24 -0
- package/dist/data-grid/use-badge-overflow.js +123 -0
- package/dist/data-grid/use-badge-overflow.js.map +1 -0
- package/dist/data-grid/use-callback-ref.d.ts +10 -0
- package/dist/data-grid/use-callback-ref.js +12 -0
- package/dist/data-grid/use-callback-ref.js.map +1 -0
- package/dist/data-grid/use-data-grid-undo-redo.d.ts +45 -0
- package/dist/data-grid/use-data-grid-undo-redo.js +348 -0
- package/dist/data-grid/use-data-grid-undo-redo.js.map +1 -0
- package/dist/data-grid/use-data-grid.d.ts +372 -0
- package/dist/data-grid/use-data-grid.js +2697 -0
- package/dist/data-grid/use-data-grid.js.map +1 -0
- package/dist/data-grid/use-debounced-callback.d.ts +6 -0
- package/dist/data-grid/use-debounced-callback.js +19 -0
- package/dist/data-grid/use-debounced-callback.js.map +1 -0
- package/dist/data-grid/use-isomorphic-layout-effect.d.ts +5 -0
- package/dist/data-grid/use-isomorphic-layout-effect.js +6 -0
- package/dist/data-grid/use-isomorphic-layout-effect.js.map +1 -0
- package/dist/data-grid/use-lazy-ref.d.ts +5 -0
- package/dist/data-grid/use-lazy-ref.js +12 -0
- package/dist/data-grid/use-lazy-ref.js.map +1 -0
- package/dist/data-grid/utils.d.ts +81 -0
- package/dist/data-grid/utils.js +409 -0
- package/dist/data-grid/utils.js.map +1 -0
- package/package.json +33 -15
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
import { DataGridMessages } from './messages-en.js';
|
|
2
|
+
export { messagesEn } from './messages-en.js';
|
|
3
|
+
export { messagesVi } from './messages-vi.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Sổ đăng ký ngôn ngữ của DataGrid. Module THUẦN — không directive, không hook — nên Server
|
|
7
|
+
* Component đọc thẳng được (xem `verify:directives`, phép kiểm 2 và 3).
|
|
8
|
+
*
|
|
9
|
+
* Hai ngôn ngữ, và cố ý dừng ở hai: tiếng Anh là bản gốc định nghĩa hình dạng
|
|
10
|
+
* ({@link DataGridMessages}), tiếng Việt là bản dịch đủ. Thêm ngôn ngữ thứ ba thì thêm một file
|
|
11
|
+
* `messages-<mã>.ts` chú thích `: DataGridMessages`, ghi vào `DATA_GRID_MESSAGES` bên dưới, và
|
|
12
|
+
* `DataGridLocale` tự rộng ra theo — không có danh sách thứ hai nào phải nhớ cập nhật.
|
|
13
|
+
*
|
|
14
|
+
* ⚠ Mặc định là **tiếng Anh**, ngược với phần còn lại của gói (README §5). Đây là ngoại lệ có chủ
|
|
15
|
+
* ý của riêng `DataGrid`, chốt ở `2.0.0` — lý do đầy đủ ở đầu `messages-en.ts`.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/** Mọi bảng ngôn ngữ dựng sẵn, tra theo mã. */
|
|
19
|
+
declare const DATA_GRID_MESSAGES: {
|
|
20
|
+
en: {
|
|
21
|
+
grid: {
|
|
22
|
+
label: string;
|
|
23
|
+
addRow: string;
|
|
24
|
+
};
|
|
25
|
+
search: {
|
|
26
|
+
placeholder: string;
|
|
27
|
+
label: string;
|
|
28
|
+
prevMatch: string;
|
|
29
|
+
nextMatch: string;
|
|
30
|
+
close: string;
|
|
31
|
+
matchPosition: (index: number, total: number) => string;
|
|
32
|
+
noResults: string;
|
|
33
|
+
typeToSearch: string;
|
|
34
|
+
};
|
|
35
|
+
column: {
|
|
36
|
+
sortAsc: string;
|
|
37
|
+
sortDesc: string;
|
|
38
|
+
removeSort: string;
|
|
39
|
+
pinLeft: string;
|
|
40
|
+
unpinLeft: string;
|
|
41
|
+
pinRight: string;
|
|
42
|
+
unpinRight: string;
|
|
43
|
+
hide: string;
|
|
44
|
+
resize: (label: string) => string;
|
|
45
|
+
variant: {
|
|
46
|
+
shortText: string;
|
|
47
|
+
longText: string;
|
|
48
|
+
number: string;
|
|
49
|
+
url: string;
|
|
50
|
+
checkbox: string;
|
|
51
|
+
select: string;
|
|
52
|
+
multiSelect: string;
|
|
53
|
+
date: string;
|
|
54
|
+
file: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
select: {
|
|
58
|
+
all: string;
|
|
59
|
+
row: string;
|
|
60
|
+
rowNumber: (rowNumber: number) => string;
|
|
61
|
+
};
|
|
62
|
+
contextMenu: {
|
|
63
|
+
copy: string;
|
|
64
|
+
cut: string;
|
|
65
|
+
clear: string;
|
|
66
|
+
deleteRows: string;
|
|
67
|
+
};
|
|
68
|
+
pasteDialog: {
|
|
69
|
+
title: string;
|
|
70
|
+
description: (rowsNeeded: number) => string;
|
|
71
|
+
expandTitle: string;
|
|
72
|
+
expandDescription: (rowsNeeded: number) => string;
|
|
73
|
+
keepTitle: string;
|
|
74
|
+
keepDescription: string;
|
|
75
|
+
cancel: string;
|
|
76
|
+
confirm: string;
|
|
77
|
+
};
|
|
78
|
+
rowHeight: {
|
|
79
|
+
label: string;
|
|
80
|
+
short: string;
|
|
81
|
+
medium: string;
|
|
82
|
+
tall: string;
|
|
83
|
+
extraTall: string;
|
|
84
|
+
};
|
|
85
|
+
view: {
|
|
86
|
+
trigger: string;
|
|
87
|
+
toggleColumns: string;
|
|
88
|
+
searchPlaceholder: string;
|
|
89
|
+
empty: string;
|
|
90
|
+
};
|
|
91
|
+
sort: {
|
|
92
|
+
trigger: string;
|
|
93
|
+
title: string;
|
|
94
|
+
emptyTitle: string;
|
|
95
|
+
description: string;
|
|
96
|
+
emptyDescription: string;
|
|
97
|
+
add: string;
|
|
98
|
+
reset: string;
|
|
99
|
+
remove: string;
|
|
100
|
+
drag: string;
|
|
101
|
+
fieldPlaceholder: string;
|
|
102
|
+
fieldEmpty: string;
|
|
103
|
+
asc: string;
|
|
104
|
+
desc: string;
|
|
105
|
+
};
|
|
106
|
+
filter: {
|
|
107
|
+
trigger: string;
|
|
108
|
+
title: string;
|
|
109
|
+
emptyTitle: string;
|
|
110
|
+
description: string;
|
|
111
|
+
emptyDescription: string;
|
|
112
|
+
add: string;
|
|
113
|
+
reset: string;
|
|
114
|
+
remove: string;
|
|
115
|
+
drag: string;
|
|
116
|
+
where: string;
|
|
117
|
+
and: string;
|
|
118
|
+
fieldPlaceholder: string;
|
|
119
|
+
fieldEmpty: string;
|
|
120
|
+
valuePlaceholder: string;
|
|
121
|
+
rangeStart: string;
|
|
122
|
+
rangeEnd: string;
|
|
123
|
+
pickDate: string;
|
|
124
|
+
pickRange: string;
|
|
125
|
+
optionPlaceholder: string;
|
|
126
|
+
optionEmpty: string;
|
|
127
|
+
selectedCount: (count: number) => string;
|
|
128
|
+
emptyValue: (label: string) => string;
|
|
129
|
+
operators: {
|
|
130
|
+
contains: string;
|
|
131
|
+
notContains: string;
|
|
132
|
+
equals: string;
|
|
133
|
+
notEquals: string;
|
|
134
|
+
startsWith: string;
|
|
135
|
+
endsWith: string;
|
|
136
|
+
isEmpty: string;
|
|
137
|
+
isNotEmpty: string;
|
|
138
|
+
lessThan: string;
|
|
139
|
+
lessThanOrEqual: string;
|
|
140
|
+
greaterThan: string;
|
|
141
|
+
greaterThanOrEqual: string;
|
|
142
|
+
isBetween: string;
|
|
143
|
+
dateEquals: string;
|
|
144
|
+
dateNotEquals: string;
|
|
145
|
+
before: string;
|
|
146
|
+
after: string;
|
|
147
|
+
onOrBefore: string;
|
|
148
|
+
onOrAfter: string;
|
|
149
|
+
is: string;
|
|
150
|
+
isNot: string;
|
|
151
|
+
isAnyOf: string;
|
|
152
|
+
isNoneOf: string;
|
|
153
|
+
isTrue: string;
|
|
154
|
+
isFalse: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
cell: {
|
|
158
|
+
longTextPlaceholder: string;
|
|
159
|
+
optionSearchPlaceholder: string;
|
|
160
|
+
optionEmpty: string;
|
|
161
|
+
clearAll: string;
|
|
162
|
+
invalidUrlTitle: string;
|
|
163
|
+
invalidUrlDescription: string;
|
|
164
|
+
};
|
|
165
|
+
file: {
|
|
166
|
+
uploadLabel: string;
|
|
167
|
+
dropHere: string;
|
|
168
|
+
dragHere: string;
|
|
169
|
+
browse: string;
|
|
170
|
+
limits: (maxSize?: string, maxFiles?: number) => string;
|
|
171
|
+
count: (count: number) => string;
|
|
172
|
+
clearAll: string;
|
|
173
|
+
remove: string;
|
|
174
|
+
uploading: string;
|
|
175
|
+
deleting: string;
|
|
176
|
+
tooMany: (maxFiles: number) => string;
|
|
177
|
+
tooLarge: (maxSize: string) => string;
|
|
178
|
+
wrongType: string;
|
|
179
|
+
rejectedOne: (name: string) => string;
|
|
180
|
+
rejectedMany: (name: string, others: number) => string;
|
|
181
|
+
uploadFailed: (count: number) => string;
|
|
182
|
+
deleteFailed: (name: string) => string;
|
|
183
|
+
deleteFailedMany: string;
|
|
184
|
+
};
|
|
185
|
+
toast: {
|
|
186
|
+
cellsCopied: (count: number) => string;
|
|
187
|
+
copyFailed: string;
|
|
188
|
+
cellsCut: (count: number) => string;
|
|
189
|
+
cutFailed: string;
|
|
190
|
+
cellsPasted: (count: number) => string;
|
|
191
|
+
cellsPastedWithSkipped: (count: number, skipped: number) => string;
|
|
192
|
+
pasteSkipped: (skipped: number) => string;
|
|
193
|
+
pasteFailed: string;
|
|
194
|
+
cellsCleared: (count: number) => string;
|
|
195
|
+
rowsDeleted: (count: number) => string;
|
|
196
|
+
nothingToUndo: string;
|
|
197
|
+
nothingToRedo: string;
|
|
198
|
+
undone: (count: number) => string;
|
|
199
|
+
redone: (count: number) => string;
|
|
200
|
+
};
|
|
201
|
+
booleanText: {
|
|
202
|
+
checked: string;
|
|
203
|
+
unchecked: string;
|
|
204
|
+
};
|
|
205
|
+
shortcuts: {
|
|
206
|
+
trigger: string;
|
|
207
|
+
title: string;
|
|
208
|
+
description: string;
|
|
209
|
+
searchPlaceholder: string;
|
|
210
|
+
emptyTitle: string;
|
|
211
|
+
emptyDescription: string;
|
|
212
|
+
close: string;
|
|
213
|
+
groups: {
|
|
214
|
+
navigation: string;
|
|
215
|
+
selection: string;
|
|
216
|
+
editing: string;
|
|
217
|
+
search: string;
|
|
218
|
+
filtering: string;
|
|
219
|
+
sorting: string;
|
|
220
|
+
general: string;
|
|
221
|
+
};
|
|
222
|
+
keys: {
|
|
223
|
+
click: string;
|
|
224
|
+
doubleClick: string;
|
|
225
|
+
};
|
|
226
|
+
navigation: {
|
|
227
|
+
move: string;
|
|
228
|
+
nextCell: string;
|
|
229
|
+
prevCell: string;
|
|
230
|
+
firstColumn: string;
|
|
231
|
+
lastColumn: string;
|
|
232
|
+
firstRowSameColumn: string;
|
|
233
|
+
lastRowSameColumn: string;
|
|
234
|
+
firstColumnSameRow: string;
|
|
235
|
+
lastColumnSameRow: string;
|
|
236
|
+
firstCell: string;
|
|
237
|
+
lastCell: string;
|
|
238
|
+
pageUp: string;
|
|
239
|
+
pageDown: string;
|
|
240
|
+
scrollUp: string;
|
|
241
|
+
scrollDown: string;
|
|
242
|
+
scrollLeft: string;
|
|
243
|
+
scrollRight: string;
|
|
244
|
+
};
|
|
245
|
+
selection: {
|
|
246
|
+
extend: string;
|
|
247
|
+
toTop: string;
|
|
248
|
+
toBottom: string;
|
|
249
|
+
toFirstColumn: string;
|
|
250
|
+
toLastColumn: string;
|
|
251
|
+
all: string;
|
|
252
|
+
toggle: string;
|
|
253
|
+
range: string;
|
|
254
|
+
clear: string;
|
|
255
|
+
};
|
|
256
|
+
editing: {
|
|
257
|
+
start: string;
|
|
258
|
+
insertRow: string;
|
|
259
|
+
copy: string;
|
|
260
|
+
cut: string;
|
|
261
|
+
paste: string;
|
|
262
|
+
clear: string;
|
|
263
|
+
deleteRows: string;
|
|
264
|
+
undo: string;
|
|
265
|
+
redo: string;
|
|
266
|
+
};
|
|
267
|
+
search: {
|
|
268
|
+
open: string;
|
|
269
|
+
next: string;
|
|
270
|
+
prev: string;
|
|
271
|
+
close: string;
|
|
272
|
+
};
|
|
273
|
+
filtering: {
|
|
274
|
+
toggle: string;
|
|
275
|
+
remove: string;
|
|
276
|
+
};
|
|
277
|
+
sorting: {
|
|
278
|
+
toggle: string;
|
|
279
|
+
remove: string;
|
|
280
|
+
};
|
|
281
|
+
general: {
|
|
282
|
+
shortcuts: string;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
vi: {
|
|
287
|
+
grid: {
|
|
288
|
+
label: string;
|
|
289
|
+
addRow: string;
|
|
290
|
+
};
|
|
291
|
+
search: {
|
|
292
|
+
placeholder: string;
|
|
293
|
+
label: string;
|
|
294
|
+
prevMatch: string;
|
|
295
|
+
nextMatch: string;
|
|
296
|
+
close: string;
|
|
297
|
+
matchPosition: (index: number, total: number) => string;
|
|
298
|
+
noResults: string;
|
|
299
|
+
typeToSearch: string;
|
|
300
|
+
};
|
|
301
|
+
column: {
|
|
302
|
+
sortAsc: string;
|
|
303
|
+
sortDesc: string;
|
|
304
|
+
removeSort: string;
|
|
305
|
+
pinLeft: string;
|
|
306
|
+
unpinLeft: string;
|
|
307
|
+
pinRight: string;
|
|
308
|
+
unpinRight: string;
|
|
309
|
+
hide: string;
|
|
310
|
+
resize: (label: string) => string;
|
|
311
|
+
variant: {
|
|
312
|
+
shortText: string;
|
|
313
|
+
longText: string;
|
|
314
|
+
number: string;
|
|
315
|
+
url: string;
|
|
316
|
+
checkbox: string;
|
|
317
|
+
select: string;
|
|
318
|
+
multiSelect: string;
|
|
319
|
+
date: string;
|
|
320
|
+
file: string;
|
|
321
|
+
};
|
|
322
|
+
};
|
|
323
|
+
select: {
|
|
324
|
+
all: string;
|
|
325
|
+
row: string;
|
|
326
|
+
rowNumber: (rowNumber: number) => string;
|
|
327
|
+
};
|
|
328
|
+
contextMenu: {
|
|
329
|
+
copy: string;
|
|
330
|
+
cut: string;
|
|
331
|
+
clear: string;
|
|
332
|
+
deleteRows: string;
|
|
333
|
+
};
|
|
334
|
+
pasteDialog: {
|
|
335
|
+
title: string;
|
|
336
|
+
description: (rowsNeeded: number) => string;
|
|
337
|
+
expandTitle: string;
|
|
338
|
+
expandDescription: (rowsNeeded: number) => string;
|
|
339
|
+
keepTitle: string;
|
|
340
|
+
keepDescription: string;
|
|
341
|
+
cancel: string;
|
|
342
|
+
confirm: string;
|
|
343
|
+
};
|
|
344
|
+
rowHeight: {
|
|
345
|
+
label: string;
|
|
346
|
+
short: string;
|
|
347
|
+
medium: string;
|
|
348
|
+
tall: string;
|
|
349
|
+
extraTall: string;
|
|
350
|
+
};
|
|
351
|
+
view: {
|
|
352
|
+
trigger: string;
|
|
353
|
+
toggleColumns: string;
|
|
354
|
+
searchPlaceholder: string;
|
|
355
|
+
empty: string;
|
|
356
|
+
};
|
|
357
|
+
sort: {
|
|
358
|
+
trigger: string;
|
|
359
|
+
title: string;
|
|
360
|
+
emptyTitle: string;
|
|
361
|
+
description: string;
|
|
362
|
+
emptyDescription: string;
|
|
363
|
+
add: string;
|
|
364
|
+
reset: string;
|
|
365
|
+
remove: string;
|
|
366
|
+
drag: string;
|
|
367
|
+
fieldPlaceholder: string;
|
|
368
|
+
fieldEmpty: string;
|
|
369
|
+
asc: string;
|
|
370
|
+
desc: string;
|
|
371
|
+
};
|
|
372
|
+
filter: {
|
|
373
|
+
trigger: string;
|
|
374
|
+
title: string;
|
|
375
|
+
emptyTitle: string;
|
|
376
|
+
description: string;
|
|
377
|
+
emptyDescription: string;
|
|
378
|
+
add: string;
|
|
379
|
+
reset: string;
|
|
380
|
+
remove: string;
|
|
381
|
+
drag: string;
|
|
382
|
+
where: string;
|
|
383
|
+
and: string;
|
|
384
|
+
fieldPlaceholder: string;
|
|
385
|
+
fieldEmpty: string;
|
|
386
|
+
valuePlaceholder: string;
|
|
387
|
+
rangeStart: string;
|
|
388
|
+
rangeEnd: string;
|
|
389
|
+
pickDate: string;
|
|
390
|
+
pickRange: string;
|
|
391
|
+
optionPlaceholder: string;
|
|
392
|
+
optionEmpty: string;
|
|
393
|
+
selectedCount: (count: number) => string;
|
|
394
|
+
emptyValue: (label: string) => string;
|
|
395
|
+
operators: {
|
|
396
|
+
contains: string;
|
|
397
|
+
notContains: string;
|
|
398
|
+
equals: string;
|
|
399
|
+
notEquals: string;
|
|
400
|
+
startsWith: string;
|
|
401
|
+
endsWith: string;
|
|
402
|
+
isEmpty: string;
|
|
403
|
+
isNotEmpty: string;
|
|
404
|
+
lessThan: string;
|
|
405
|
+
lessThanOrEqual: string;
|
|
406
|
+
greaterThan: string;
|
|
407
|
+
greaterThanOrEqual: string;
|
|
408
|
+
isBetween: string;
|
|
409
|
+
dateEquals: string;
|
|
410
|
+
dateNotEquals: string;
|
|
411
|
+
before: string;
|
|
412
|
+
after: string;
|
|
413
|
+
onOrBefore: string;
|
|
414
|
+
onOrAfter: string;
|
|
415
|
+
is: string;
|
|
416
|
+
isNot: string;
|
|
417
|
+
isAnyOf: string;
|
|
418
|
+
isNoneOf: string;
|
|
419
|
+
isTrue: string;
|
|
420
|
+
isFalse: string;
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
cell: {
|
|
424
|
+
longTextPlaceholder: string;
|
|
425
|
+
optionSearchPlaceholder: string;
|
|
426
|
+
optionEmpty: string;
|
|
427
|
+
clearAll: string;
|
|
428
|
+
invalidUrlTitle: string;
|
|
429
|
+
invalidUrlDescription: string;
|
|
430
|
+
};
|
|
431
|
+
file: {
|
|
432
|
+
uploadLabel: string;
|
|
433
|
+
dropHere: string;
|
|
434
|
+
dragHere: string;
|
|
435
|
+
browse: string;
|
|
436
|
+
limits: (maxSize?: string, maxFiles?: number) => string;
|
|
437
|
+
count: (count: number) => string;
|
|
438
|
+
clearAll: string;
|
|
439
|
+
remove: string;
|
|
440
|
+
uploading: string;
|
|
441
|
+
deleting: string;
|
|
442
|
+
tooMany: (maxFiles: number) => string;
|
|
443
|
+
tooLarge: (maxSize: string) => string;
|
|
444
|
+
wrongType: string;
|
|
445
|
+
rejectedOne: (name: string) => string;
|
|
446
|
+
rejectedMany: (name: string, others: number) => string;
|
|
447
|
+
uploadFailed: (count: number) => string;
|
|
448
|
+
deleteFailed: (name: string) => string;
|
|
449
|
+
deleteFailedMany: string;
|
|
450
|
+
};
|
|
451
|
+
toast: {
|
|
452
|
+
cellsCopied: (count: number) => string;
|
|
453
|
+
copyFailed: string;
|
|
454
|
+
cellsCut: (count: number) => string;
|
|
455
|
+
cutFailed: string;
|
|
456
|
+
cellsPasted: (count: number) => string;
|
|
457
|
+
cellsPastedWithSkipped: (count: number, skipped: number) => string;
|
|
458
|
+
pasteSkipped: (skipped: number) => string;
|
|
459
|
+
pasteFailed: string;
|
|
460
|
+
cellsCleared: (count: number) => string;
|
|
461
|
+
rowsDeleted: (count: number) => string;
|
|
462
|
+
nothingToUndo: string;
|
|
463
|
+
nothingToRedo: string;
|
|
464
|
+
undone: (count: number) => string;
|
|
465
|
+
redone: (count: number) => string;
|
|
466
|
+
};
|
|
467
|
+
booleanText: {
|
|
468
|
+
checked: string;
|
|
469
|
+
unchecked: string;
|
|
470
|
+
};
|
|
471
|
+
shortcuts: {
|
|
472
|
+
trigger: string;
|
|
473
|
+
title: string;
|
|
474
|
+
description: string;
|
|
475
|
+
searchPlaceholder: string;
|
|
476
|
+
emptyTitle: string;
|
|
477
|
+
emptyDescription: string;
|
|
478
|
+
close: string;
|
|
479
|
+
groups: {
|
|
480
|
+
navigation: string;
|
|
481
|
+
selection: string;
|
|
482
|
+
editing: string;
|
|
483
|
+
search: string;
|
|
484
|
+
filtering: string;
|
|
485
|
+
sorting: string;
|
|
486
|
+
general: string;
|
|
487
|
+
};
|
|
488
|
+
keys: {
|
|
489
|
+
click: string;
|
|
490
|
+
doubleClick: string;
|
|
491
|
+
};
|
|
492
|
+
navigation: {
|
|
493
|
+
move: string;
|
|
494
|
+
nextCell: string;
|
|
495
|
+
prevCell: string;
|
|
496
|
+
firstColumn: string;
|
|
497
|
+
lastColumn: string;
|
|
498
|
+
firstRowSameColumn: string;
|
|
499
|
+
lastRowSameColumn: string;
|
|
500
|
+
firstColumnSameRow: string;
|
|
501
|
+
lastColumnSameRow: string;
|
|
502
|
+
firstCell: string;
|
|
503
|
+
lastCell: string;
|
|
504
|
+
pageUp: string;
|
|
505
|
+
pageDown: string;
|
|
506
|
+
scrollUp: string;
|
|
507
|
+
scrollDown: string;
|
|
508
|
+
scrollLeft: string;
|
|
509
|
+
scrollRight: string;
|
|
510
|
+
};
|
|
511
|
+
selection: {
|
|
512
|
+
extend: string;
|
|
513
|
+
toTop: string;
|
|
514
|
+
toBottom: string;
|
|
515
|
+
toFirstColumn: string;
|
|
516
|
+
toLastColumn: string;
|
|
517
|
+
all: string;
|
|
518
|
+
toggle: string;
|
|
519
|
+
range: string;
|
|
520
|
+
clear: string;
|
|
521
|
+
};
|
|
522
|
+
editing: {
|
|
523
|
+
start: string;
|
|
524
|
+
insertRow: string;
|
|
525
|
+
copy: string;
|
|
526
|
+
cut: string;
|
|
527
|
+
paste: string;
|
|
528
|
+
clear: string;
|
|
529
|
+
deleteRows: string;
|
|
530
|
+
undo: string;
|
|
531
|
+
redo: string;
|
|
532
|
+
};
|
|
533
|
+
search: {
|
|
534
|
+
open: string;
|
|
535
|
+
next: string;
|
|
536
|
+
prev: string;
|
|
537
|
+
close: string;
|
|
538
|
+
};
|
|
539
|
+
filtering: {
|
|
540
|
+
toggle: string;
|
|
541
|
+
remove: string;
|
|
542
|
+
};
|
|
543
|
+
sorting: {
|
|
544
|
+
toggle: string;
|
|
545
|
+
remove: string;
|
|
546
|
+
};
|
|
547
|
+
general: {
|
|
548
|
+
shortcuts: string;
|
|
549
|
+
};
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
};
|
|
553
|
+
/** Mã ngôn ngữ mà `DataGrid` nhận. Suy từ `DATA_GRID_MESSAGES`, không viết tay lần hai. */
|
|
554
|
+
type DataGridLocale = keyof typeof DATA_GRID_MESSAGES;
|
|
555
|
+
/** Mặc định khi không ai truyền gì — xem ghi chú đầu file về vì sao là `"en"`. */
|
|
556
|
+
declare const DEFAULT_DATA_GRID_LOCALE: DataGridLocale;
|
|
557
|
+
/**
|
|
558
|
+
* Bảng chuỗi cho một ngôn ngữ, hoặc bảng do app tự truyền vào.
|
|
559
|
+
*
|
|
560
|
+
* Nhận cả mã lẫn cả object để app không phải chọn giữa "dùng bản dựng sẵn" và "sửa vài chữ":
|
|
561
|
+
* truyền `"vi"` là xong, còn muốn đổi từ ngữ theo nghiệp vụ thì trải bảng ra rồi ghi đè khoá cần
|
|
562
|
+
* đổi. Mã lạ rơi về mặc định thay vì ném lỗi — một chữ sai chính tả trong prop không đáng làm
|
|
563
|
+
* trắng cả màn hình.
|
|
564
|
+
*/
|
|
565
|
+
declare function getDataGridMessages(locale?: DataGridLocale | DataGridMessages): DataGridMessages;
|
|
566
|
+
|
|
567
|
+
export { DATA_GRID_MESSAGES, DEFAULT_DATA_GRID_LOCALE, type DataGridLocale, DataGridMessages, getDataGridMessages };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { messagesEn } from "./messages-en.js";
|
|
2
|
+
import { messagesVi } from "./messages-vi.js";
|
|
3
|
+
const DATA_GRID_MESSAGES = {
|
|
4
|
+
en: messagesEn,
|
|
5
|
+
vi: messagesVi
|
|
6
|
+
};
|
|
7
|
+
const DEFAULT_DATA_GRID_LOCALE = "en";
|
|
8
|
+
function getDataGridMessages(locale) {
|
|
9
|
+
if (!locale) return DATA_GRID_MESSAGES[DEFAULT_DATA_GRID_LOCALE];
|
|
10
|
+
if (typeof locale === "string") return DATA_GRID_MESSAGES[locale] ?? DATA_GRID_MESSAGES[DEFAULT_DATA_GRID_LOCALE];
|
|
11
|
+
return locale;
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
DATA_GRID_MESSAGES,
|
|
15
|
+
DEFAULT_DATA_GRID_LOCALE,
|
|
16
|
+
getDataGridMessages,
|
|
17
|
+
messagesEn,
|
|
18
|
+
messagesVi
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/data-grid/messages.ts"],"sourcesContent":["/**\n * Sổ đăng ký ngôn ngữ của DataGrid. Module THUẦN — không directive, không hook — nên Server\n * Component đọc thẳng được (xem `verify:directives`, phép kiểm 2 và 3).\n *\n * Hai ngôn ngữ, và cố ý dừng ở hai: tiếng Anh là bản gốc định nghĩa hình dạng\n * ({@link DataGridMessages}), tiếng Việt là bản dịch đủ. Thêm ngôn ngữ thứ ba thì thêm một file\n * `messages-<mã>.ts` chú thích `: DataGridMessages`, ghi vào `DATA_GRID_MESSAGES` bên dưới, và\n * `DataGridLocale` tự rộng ra theo — không có danh sách thứ hai nào phải nhớ cập nhật.\n *\n * ⚠ Mặc định là **tiếng Anh**, ngược với phần còn lại của gói (README §5). Đây là ngoại lệ có chủ\n * ý của riêng `DataGrid`, chốt ở `2.0.0` — lý do đầy đủ ở đầu `messages-en.ts`.\n */\nimport { type DataGridMessages, messagesEn } from \"./messages-en.js\";\nimport { messagesVi } from \"./messages-vi.js\";\n\nexport type { DataGridMessages };\nexport { messagesEn, messagesVi };\n\n/** Mọi bảng ngôn ngữ dựng sẵn, tra theo mã. */\nexport const DATA_GRID_MESSAGES = {\n en: messagesEn,\n vi: messagesVi\n};\n\n/** Mã ngôn ngữ mà `DataGrid` nhận. Suy từ `DATA_GRID_MESSAGES`, không viết tay lần hai. */\nexport type DataGridLocale = keyof typeof DATA_GRID_MESSAGES;\n\n/** Mặc định khi không ai truyền gì — xem ghi chú đầu file về vì sao là `\"en\"`. */\nexport const DEFAULT_DATA_GRID_LOCALE: DataGridLocale = \"en\";\n\n/**\n * Bảng chuỗi cho một ngôn ngữ, hoặc bảng do app tự truyền vào.\n *\n * Nhận cả mã lẫn cả object để app không phải chọn giữa \"dùng bản dựng sẵn\" và \"sửa vài chữ\":\n * truyền `\"vi\"` là xong, còn muốn đổi từ ngữ theo nghiệp vụ thì trải bảng ra rồi ghi đè khoá cần\n * đổi. Mã lạ rơi về mặc định thay vì ném lỗi — một chữ sai chính tả trong prop không đáng làm\n * trắng cả màn hình.\n */\nexport function getDataGridMessages(locale?: DataGridLocale | DataGridMessages): DataGridMessages {\n if (!locale) return DATA_GRID_MESSAGES[DEFAULT_DATA_GRID_LOCALE];\n if (typeof locale === \"string\") return DATA_GRID_MESSAGES[locale] ?? DATA_GRID_MESSAGES[DEFAULT_DATA_GRID_LOCALE];\n return locale;\n}\n"],"mappings":"AAYA,SAAgC,kBAAkB;AAClD,SAAS,kBAAkB;AAMpB,MAAM,qBAAqB;AAAA,EAChC,IAAI;AAAA,EACJ,IAAI;AACN;AAMO,MAAM,2BAA2C;AAUjD,SAAS,oBAAoB,QAA8D;AAChG,MAAI,CAAC,OAAQ,QAAO,mBAAmB,wBAAwB;AAC/D,MAAI,OAAO,WAAW,SAAU,QAAO,mBAAmB,MAAM,KAAK,mBAAmB,wBAAwB;AAChH,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DndContextProps, UniqueIdentifier, DragEndEvent, DragOverlay } from '@dnd-kit/core';
|
|
2
|
+
import { SortableContextProps } from '@dnd-kit/sortable';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
|
|
5
|
+
interface GetItemValue<T> {
|
|
6
|
+
/**
|
|
7
|
+
* Callback that returns a unique identifier for each sortable item. Required for array of objects.
|
|
8
|
+
* @example getItemValue={(item) => item.id}
|
|
9
|
+
*/
|
|
10
|
+
getItemValue: (item: T) => UniqueIdentifier;
|
|
11
|
+
}
|
|
12
|
+
type SortableProps<T> = DndContextProps & (T extends object ? GetItemValue<T> : Partial<GetItemValue<T>>) & {
|
|
13
|
+
value: T[];
|
|
14
|
+
onValueChange?: (items: T[]) => void;
|
|
15
|
+
onMove?: (event: DragEndEvent & {
|
|
16
|
+
activeIndex: number;
|
|
17
|
+
overIndex: number;
|
|
18
|
+
}) => void;
|
|
19
|
+
strategy?: SortableContextProps["strategy"];
|
|
20
|
+
orientation?: "vertical" | "horizontal" | "mixed";
|
|
21
|
+
flatCursor?: boolean;
|
|
22
|
+
};
|
|
23
|
+
declare function Sortable<T>(props: SortableProps<T>): React.JSX.Element;
|
|
24
|
+
interface SortableContentProps extends React.ComponentProps<"div"> {
|
|
25
|
+
strategy?: SortableContextProps["strategy"];
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
asChild?: boolean;
|
|
28
|
+
withoutSlot?: boolean;
|
|
29
|
+
}
|
|
30
|
+
declare function SortableContent(props: SortableContentProps): React.JSX.Element;
|
|
31
|
+
interface SortableItemProps extends React.ComponentProps<"div"> {
|
|
32
|
+
value: UniqueIdentifier;
|
|
33
|
+
asHandle?: boolean;
|
|
34
|
+
asChild?: boolean;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
}
|
|
37
|
+
declare function SortableItem(props: SortableItemProps): React.JSX.Element;
|
|
38
|
+
interface SortableItemHandleProps extends React.ComponentProps<"button"> {
|
|
39
|
+
asChild?: boolean;
|
|
40
|
+
}
|
|
41
|
+
declare function SortableItemHandle(props: SortableItemHandleProps): React.JSX.Element;
|
|
42
|
+
interface SortableOverlayProps extends Omit<React.ComponentProps<typeof DragOverlay>, "children"> {
|
|
43
|
+
container?: Element | DocumentFragment | null;
|
|
44
|
+
children?: ((params: {
|
|
45
|
+
value: UniqueIdentifier;
|
|
46
|
+
}) => React.ReactNode) | React.ReactNode;
|
|
47
|
+
}
|
|
48
|
+
declare function SortableOverlay(props: SortableOverlayProps): React.ReactPortal | null;
|
|
49
|
+
|
|
50
|
+
export { Sortable, SortableContent, SortableItem, SortableItemHandle, SortableOverlay, type SortableProps };
|