@comitor/ui 1.11.0 → 2.1.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.
Files changed (176) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +23 -7
  3. package/dist/components/ui/action-bar-constants.d.ts +31 -0
  4. package/dist/components/ui/action-bar-constants.js +9 -0
  5. package/dist/components/ui/action-bar-constants.js.map +1 -0
  6. package/dist/components/ui/action-bar.d.ts +67 -0
  7. package/dist/components/ui/action-bar.js +522 -0
  8. package/dist/components/ui/action-bar.js.map +1 -0
  9. package/dist/components/ui/badge-overflow.d.ts +30 -0
  10. package/dist/components/ui/badge-overflow.js +179 -0
  11. package/dist/components/ui/badge-overflow.js.map +1 -0
  12. package/dist/components/ui/banner.d.ts +79 -0
  13. package/dist/components/ui/banner.js +518 -0
  14. package/dist/components/ui/banner.js.map +1 -0
  15. package/dist/components/ui/circular-progress.d.ts +50 -0
  16. package/dist/components/ui/circular-progress.js +266 -0
  17. package/dist/components/ui/circular-progress.js.map +1 -0
  18. package/dist/components/ui/cropper-constants.d.ts +34 -0
  19. package/dist/components/ui/cropper-constants.js +10 -0
  20. package/dist/components/ui/cropper-constants.js.map +1 -0
  21. package/dist/components/ui/cropper.d.ts +106 -0
  22. package/dist/components/ui/cropper.js +1269 -0
  23. package/dist/components/ui/cropper.js.map +1 -0
  24. package/dist/components/ui/drawer.d.ts +1 -1
  25. package/dist/components/ui/drawer.js +2 -2
  26. package/dist/components/ui/drawer.js.map +1 -1
  27. package/dist/components/ui/kanban-constants.d.ts +61 -0
  28. package/dist/components/ui/kanban-constants.js +21 -0
  29. package/dist/components/ui/kanban-constants.js.map +1 -0
  30. package/dist/components/ui/kanban.d.ts +72 -0
  31. package/dist/components/ui/kanban.js +787 -0
  32. package/dist/components/ui/kanban.js.map +1 -0
  33. package/dist/components/ui/key-value-constants.d.ts +33 -0
  34. package/dist/components/ui/key-value-constants.js +11 -0
  35. package/dist/components/ui/key-value-constants.js.map +1 -0
  36. package/dist/components/ui/key-value.d.ts +96 -0
  37. package/dist/components/ui/key-value.js +641 -0
  38. package/dist/components/ui/key-value.js.map +1 -0
  39. package/dist/components/ui/mask-input-constants.d.ts +99 -0
  40. package/dist/components/ui/mask-input-constants.js +601 -0
  41. package/dist/components/ui/mask-input-constants.js.map +1 -0
  42. package/dist/components/ui/mask-input.d.ts +36 -0
  43. package/dist/components/ui/mask-input.js +558 -0
  44. package/dist/components/ui/mask-input.js.map +1 -0
  45. package/dist/components/ui/mention.d.ts +31 -0
  46. package/dist/components/ui/mention.js +128 -0
  47. package/dist/components/ui/mention.js.map +1 -0
  48. package/dist/components/ui/phone-input-constants.d.ts +54 -0
  49. package/dist/components/ui/phone-input-constants.js +9 -0
  50. package/dist/components/ui/phone-input-constants.js.map +1 -0
  51. package/dist/components/ui/phone-input.d.ts +85 -0
  52. package/dist/components/ui/phone-input.js +743 -0
  53. package/dist/components/ui/phone-input.js.map +1 -0
  54. package/dist/components/ui/rating.d.ts +56 -0
  55. package/dist/components/ui/rating.js +646 -0
  56. package/dist/components/ui/rating.js.map +1 -0
  57. package/dist/components/ui/responsive-dialog.d.ts +35 -0
  58. package/dist/components/ui/responsive-dialog.js +193 -0
  59. package/dist/components/ui/responsive-dialog.js.map +1 -0
  60. package/dist/components/ui/scroll-spy.d.ts +42 -0
  61. package/dist/components/ui/scroll-spy.js +334 -0
  62. package/dist/components/ui/scroll-spy.js.map +1 -0
  63. package/dist/components/ui/stepper-constants.d.ts +29 -0
  64. package/dist/components/ui/stepper-constants.js +9 -0
  65. package/dist/components/ui/stepper-constants.js.map +1 -0
  66. package/dist/components/ui/stepper.d.ts +80 -0
  67. package/dist/components/ui/stepper.js +902 -0
  68. package/dist/components/ui/stepper.js.map +1 -0
  69. package/dist/components/ui/tags-input.d.ts +41 -0
  70. package/dist/components/ui/tags-input.js +127 -0
  71. package/dist/components/ui/tags-input.js.map +1 -0
  72. package/dist/components/ui/time-picker-constants.d.ts +48 -0
  73. package/dist/components/ui/time-picker-constants.js +14 -0
  74. package/dist/components/ui/time-picker-constants.js.map +1 -0
  75. package/dist/components/ui/time-picker.d.ts +115 -0
  76. package/dist/components/ui/time-picker.js +1620 -0
  77. package/dist/components/ui/time-picker.js.map +1 -0
  78. package/dist/components/ui/timeline.d.ts +32 -0
  79. package/dist/components/ui/timeline.js +559 -0
  80. package/dist/components/ui/timeline.js.map +1 -0
  81. package/dist/components/ui/tour-constants.d.ts +39 -0
  82. package/dist/components/ui/tour-constants.js +12 -0
  83. package/dist/components/ui/tour-constants.js.map +1 -0
  84. package/dist/components/ui/tour.d.ts +124 -0
  85. package/dist/components/ui/tour.js +1207 -0
  86. package/dist/components/ui/tour.js.map +1 -0
  87. package/dist/data-grid/data-grid-cell-variants.js +10 -6
  88. package/dist/data-grid/data-grid-cell-variants.js.map +1 -1
  89. package/dist/data-grid/data-grid-cell-wrapper.js +1 -1
  90. package/dist/data-grid/data-grid-cell-wrapper.js.map +1 -1
  91. package/dist/data-grid/data-grid-column-header.js +4 -2
  92. package/dist/data-grid/data-grid-column-header.js.map +1 -1
  93. package/dist/data-grid/data-grid-context-menu.js +5 -4
  94. package/dist/data-grid/data-grid-context-menu.js.map +1 -1
  95. package/dist/data-grid/data-grid-filter-menu.d.ts +12 -1
  96. package/dist/data-grid/data-grid-filter-menu.js +28 -17
  97. package/dist/data-grid/data-grid-filter-menu.js.map +1 -1
  98. package/dist/data-grid/data-grid-keyboard-shortcuts.d.ts +12 -1
  99. package/dist/data-grid/data-grid-keyboard-shortcuts.js +7 -5
  100. package/dist/data-grid/data-grid-keyboard-shortcuts.js.map +1 -1
  101. package/dist/data-grid/data-grid-locale.d.ts +24 -0
  102. package/dist/data-grid/data-grid-locale.js +25 -0
  103. package/dist/data-grid/data-grid-locale.js.map +1 -0
  104. package/dist/data-grid/data-grid-paste-dialog.js +3 -2
  105. package/dist/data-grid/data-grid-paste-dialog.js.map +1 -1
  106. package/dist/data-grid/data-grid-row-height-menu.d.ts +11 -1
  107. package/dist/data-grid/data-grid-row-height-menu.js +25 -28
  108. package/dist/data-grid/data-grid-row-height-menu.js.map +1 -1
  109. package/dist/data-grid/data-grid-row.js +1 -1
  110. package/dist/data-grid/data-grid-row.js.map +1 -1
  111. package/dist/data-grid/data-grid-search.js +6 -5
  112. package/dist/data-grid/data-grid-search.js.map +1 -1
  113. package/dist/data-grid/data-grid-select-column.js +3 -1
  114. package/dist/data-grid/data-grid-select-column.js.map +1 -1
  115. package/dist/data-grid/data-grid-sort-menu.d.ts +12 -1
  116. package/dist/data-grid/data-grid-sort-menu.js +25 -13
  117. package/dist/data-grid/data-grid-sort-menu.js.map +1 -1
  118. package/dist/data-grid/data-grid-view-menu.d.ts +12 -1
  119. package/dist/data-grid/data-grid-view-menu.js +12 -4
  120. package/dist/data-grid/data-grid-view-menu.js.map +1 -1
  121. package/dist/data-grid/data-grid.d.ts +14 -2
  122. package/dist/data-grid/data-grid.js +7 -4
  123. package/dist/data-grid/data-grid.js.map +1 -1
  124. package/dist/data-grid/filters.d.ts +17 -21
  125. package/dist/data-grid/filters.js +73 -52
  126. package/dist/data-grid/filters.js.map +1 -1
  127. package/dist/data-grid/index.d.ts +4 -1
  128. package/dist/data-grid/index.js +20 -2
  129. package/dist/data-grid/index.js.map +1 -1
  130. package/dist/data-grid/messages-en.d.ts +294 -0
  131. package/dist/data-grid/messages-en.js +279 -0
  132. package/dist/data-grid/messages-en.js.map +1 -0
  133. package/dist/data-grid/messages-vi.d.ts +12 -0
  134. package/dist/data-grid/messages-vi.js +279 -0
  135. package/dist/data-grid/messages-vi.js.map +1 -0
  136. package/dist/data-grid/messages.d.ts +549 -262
  137. package/dist/data-grid/messages.js +16 -275
  138. package/dist/data-grid/messages.js.map +1 -1
  139. package/dist/data-grid/sortable.js +1 -1
  140. package/dist/data-grid/sortable.js.map +1 -1
  141. package/dist/data-grid/use-data-grid-undo-redo.d.ts +13 -1
  142. package/dist/data-grid/use-data-grid-undo-redo.js +13 -10
  143. package/dist/data-grid/use-data-grid-undo-redo.js.map +1 -1
  144. package/dist/data-grid/use-data-grid.d.ts +281 -1
  145. package/dist/data-grid/use-data-grid.js +24 -19
  146. package/dist/data-grid/use-data-grid.js.map +1 -1
  147. package/dist/data-grid/utils.d.ts +9 -1
  148. package/dist/data-grid/utils.js +3 -2
  149. package/dist/data-grid/utils.js.map +1 -1
  150. package/dist/index.d.ts +31 -0
  151. package/dist/index.js +42 -0
  152. package/dist/index.js.map +1 -1
  153. package/dist/lib/compose-refs.js.map +1 -0
  154. package/dist/lib/use-as-ref.js.map +1 -0
  155. package/dist/lib/use-is-mobile.d.ts +10 -0
  156. package/dist/lib/use-is-mobile.js +21 -0
  157. package/dist/lib/use-is-mobile.js.map +1 -0
  158. package/dist/lib/use-isomorphic-layout-effect.js.map +1 -0
  159. package/dist/lib/use-lazy-ref.js.map +1 -0
  160. package/dist/lib/visually-hidden-input.d.ts +12 -0
  161. package/dist/lib/visually-hidden-input.js +105 -0
  162. package/dist/lib/visually-hidden-input.js.map +1 -0
  163. package/package.json +5 -1
  164. package/styles.css +19 -0
  165. package/dist/data-grid/compose-refs.js.map +0 -1
  166. package/dist/data-grid/use-as-ref.js.map +0 -1
  167. package/dist/data-grid/use-isomorphic-layout-effect.js.map +0 -1
  168. package/dist/data-grid/use-lazy-ref.js.map +0 -1
  169. /package/dist/{data-grid → lib}/compose-refs.d.ts +0 -0
  170. /package/dist/{data-grid → lib}/compose-refs.js +0 -0
  171. /package/dist/{data-grid → lib}/use-as-ref.d.ts +0 -0
  172. /package/dist/{data-grid → lib}/use-as-ref.js +0 -0
  173. /package/dist/{data-grid → lib}/use-isomorphic-layout-effect.d.ts +0 -0
  174. /package/dist/{data-grid → lib}/use-isomorphic-layout-effect.js +0 -0
  175. /package/dist/{data-grid → lib}/use-lazy-ref.d.ts +0 -0
  176. /package/dist/{data-grid → lib}/use-lazy-ref.js +0 -0
@@ -0,0 +1,279 @@
1
+ const messagesVi = {
2
+ grid: {
3
+ /** Nhãn mặc định của vùng `role="grid"` (ghi đè bằng prop `aria-label`) */
4
+ label: "B\u1EA3ng d\u1EEF li\u1EC7u",
5
+ addRow: "Th\xEAm d\xF2ng"
6
+ },
7
+ search: {
8
+ placeholder: "T\xECm trong b\u1EA3ng...",
9
+ label: "T\xECm trong b\u1EA3ng",
10
+ prevMatch: "K\u1EBFt qu\u1EA3 tr\u01B0\u1EDBc",
11
+ nextMatch: "K\u1EBFt qu\u1EA3 sau",
12
+ close: "\u0110\xF3ng t\xECm ki\u1EBFm",
13
+ matchPosition: (index, total) => `${index} / ${total}`,
14
+ noResults: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3",
15
+ typeToSearch: "G\xF5 \u0111\u1EC3 t\xECm"
16
+ },
17
+ column: {
18
+ sortAsc: "S\u1EAFp x\u1EBFp t\u0103ng d\u1EA7n",
19
+ sortDesc: "S\u1EAFp x\u1EBFp gi\u1EA3m d\u1EA7n",
20
+ removeSort: "B\u1ECF s\u1EAFp x\u1EBFp",
21
+ pinLeft: "Ghim sang tr\xE1i",
22
+ unpinLeft: "B\u1ECF ghim tr\xE1i",
23
+ pinRight: "Ghim sang ph\u1EA3i",
24
+ unpinRight: "B\u1ECF ghim ph\u1EA3i",
25
+ hide: "\u1EA8n c\u1ED9t",
26
+ resize: (label) => `\u0110\u1ED5i \u0111\u1ED9 r\u1ED9ng c\u1ED9t ${label}`,
27
+ /** Tên kiểu dữ liệu của cột, hiện trong tooltip ở tiêu đề cột */
28
+ variant: {
29
+ shortText: "V\u0103n b\u1EA3n ng\u1EAFn",
30
+ longText: "V\u0103n b\u1EA3n d\xE0i",
31
+ number: "S\u1ED1",
32
+ url: "Li\xEAn k\u1EBFt",
33
+ checkbox: "\xD4 \u0111\xE1nh d\u1EA5u",
34
+ select: "Ch\u1ECDn m\u1ED9t",
35
+ multiSelect: "Ch\u1ECDn nhi\u1EC1u",
36
+ date: "Ng\xE0y",
37
+ file: "T\u1EC7p"
38
+ }
39
+ },
40
+ select: {
41
+ all: "Ch\u1ECDn t\u1EA5t c\u1EA3",
42
+ row: "Ch\u1ECDn d\xF2ng",
43
+ rowNumber: (rowNumber) => `Ch\u1ECDn d\xF2ng ${rowNumber}`
44
+ },
45
+ contextMenu: {
46
+ copy: "Sao ch\xE9p",
47
+ cut: "C\u1EAFt",
48
+ clear: "Xo\xE1 n\u1ED9i dung",
49
+ deleteRows: "Xo\xE1 d\xF2ng"
50
+ },
51
+ pasteDialog: {
52
+ title: "Th\xEAm d\xF2ng \u0111\u1EC3 d\xE1n h\u1EBFt d\u1EEF li\u1EC7u?",
53
+ description: (rowsNeeded) => `C\u1EA7n th\xEAm ${rowsNeeded} d\xF2ng n\u1EEFa \u0111\u1EC3 d\xE1n h\u1EBFt n\u1ED9i dung \u0111ang c\xF3 trong clipboard.`,
54
+ expandTitle: "T\u1EA1o d\xF2ng m\u1EDBi",
55
+ expandDescription: (rowsNeeded) => `Th\xEAm ${rowsNeeded} d\xF2ng v\xE0o b\u1EA3ng r\u1ED3i d\xE1n to\xE0n b\u1ED9 d\u1EEF li\u1EC7u`,
56
+ keepTitle: "Gi\u1EEF nguy\xEAn s\u1ED1 d\xF2ng",
57
+ keepDescription: "Ch\u1EC9 d\xE1n ph\u1EA7n v\u1EEBa v\u1EDBi c\xE1c d\xF2ng hi\u1EC7n c\xF3",
58
+ cancel: "Hu\u1EF7",
59
+ confirm: "Ti\u1EBFp t\u1EE5c"
60
+ },
61
+ rowHeight: {
62
+ label: "Chi\u1EC1u cao d\xF2ng",
63
+ short: "Th\u1EA5p",
64
+ medium: "V\u1EEBa",
65
+ tall: "Cao",
66
+ extraTall: "R\u1EA5t cao"
67
+ },
68
+ view: {
69
+ trigger: "Hi\u1EC3n th\u1ECB",
70
+ toggleColumns: "\u1EA8n/hi\u1EC7n c\u1ED9t",
71
+ searchPlaceholder: "T\xECm c\u1ED9t...",
72
+ empty: "Kh\xF4ng c\xF3 c\u1ED9t ph\xF9 h\u1EE3p."
73
+ },
74
+ sort: {
75
+ trigger: "S\u1EAFp x\u1EBFp",
76
+ title: "S\u1EAFp x\u1EBFp theo",
77
+ emptyTitle: "Ch\u01B0a s\u1EAFp x\u1EBFp",
78
+ description: "\u0110\u1ED5i ti\xEAu ch\xED s\u1EAFp x\u1EBFp cho danh s\xE1ch.",
79
+ emptyDescription: "Th\xEAm ti\xEAu ch\xED \u0111\u1EC3 s\u1EAFp x\u1EBFp danh s\xE1ch.",
80
+ add: "Th\xEAm s\u1EAFp x\u1EBFp",
81
+ reset: "B\u1ECF s\u1EAFp x\u1EBFp",
82
+ remove: "Xo\xE1 ti\xEAu ch\xED",
83
+ drag: "K\xE9o \u0111\u1EC3 \u0111\u1ED5i th\u1EE9 t\u1EF1",
84
+ fieldPlaceholder: "T\xECm tr\u01B0\u1EDDng...",
85
+ fieldEmpty: "Kh\xF4ng c\xF3 tr\u01B0\u1EDDng ph\xF9 h\u1EE3p.",
86
+ asc: "T\u0103ng d\u1EA7n",
87
+ desc: "Gi\u1EA3m d\u1EA7n"
88
+ },
89
+ filter: {
90
+ trigger: "L\u1ECDc",
91
+ title: "L\u1ECDc theo",
92
+ emptyTitle: "Ch\u01B0a c\xF3 b\u1ED9 l\u1ECDc",
93
+ description: "\u0110\u1ED5i \u0111i\u1EC1u ki\u1EC7n l\u1ECDc \u0111\u1EC3 thu h\u1EB9p d\u1EEF li\u1EC7u.",
94
+ emptyDescription: "Th\xEAm \u0111i\u1EC1u ki\u1EC7n l\u1ECDc \u0111\u1EC3 thu h\u1EB9p d\u1EEF li\u1EC7u.",
95
+ add: "Th\xEAm b\u1ED9 l\u1ECDc",
96
+ reset: "Xo\xE1 b\u1ED9 l\u1ECDc",
97
+ remove: "Xo\xE1 \u0111i\u1EC1u ki\u1EC7n",
98
+ drag: "K\xE9o \u0111\u1EC3 \u0111\u1ED5i th\u1EE9 t\u1EF1",
99
+ where: "Khi",
100
+ and: "V\xE0",
101
+ fieldPlaceholder: "T\xECm tr\u01B0\u1EDDng...",
102
+ fieldEmpty: "Kh\xF4ng c\xF3 tr\u01B0\u1EDDng ph\xF9 h\u1EE3p.",
103
+ valuePlaceholder: "Gi\xE1 tr\u1ECB",
104
+ rangeStart: "T\u1EEB",
105
+ rangeEnd: "\u0110\u1EBFn",
106
+ pickDate: "Ch\u1ECDn ng\xE0y",
107
+ pickRange: "Ch\u1ECDn kho\u1EA3ng ng\xE0y",
108
+ optionPlaceholder: "T\xECm l\u1EF1a ch\u1ECDn...",
109
+ optionEmpty: "Kh\xF4ng c\xF3 l\u1EF1a ch\u1ECDn ph\xF9 h\u1EE3p.",
110
+ selectedCount: (count) => `\u0110\xE3 ch\u1ECDn ${count}`,
111
+ emptyValue: (label) => `B\u1ED9 l\u1ECDc ${label} ch\u01B0a c\u1EA7n gi\xE1 tr\u1ECB`,
112
+ /** Nhãn toán tử lọc — xem `filters.ts` để biết toán tử nào dùng cho kiểu ô nào */
113
+ operators: {
114
+ contains: "Ch\u1EE9a",
115
+ notContains: "Kh\xF4ng ch\u1EE9a",
116
+ equals: "B\u1EB1ng",
117
+ notEquals: "Kh\xE1c",
118
+ startsWith: "B\u1EAFt \u0111\u1EA7u b\u1EB1ng",
119
+ endsWith: "K\u1EBFt th\xFAc b\u1EB1ng",
120
+ isEmpty: "\u0110ang tr\u1ED1ng",
121
+ isNotEmpty: "Kh\xF4ng tr\u1ED1ng",
122
+ lessThan: "Nh\u1ECF h\u01A1n",
123
+ lessThanOrEqual: "Nh\u1ECF h\u01A1n ho\u1EB7c b\u1EB1ng",
124
+ greaterThan: "L\u1EDBn h\u01A1n",
125
+ greaterThanOrEqual: "L\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng",
126
+ isBetween: "Trong kho\u1EA3ng",
127
+ dateEquals: "\u0110\xFAng ng\xE0y",
128
+ dateNotEquals: "Kh\xE1c ng\xE0y",
129
+ before: "Tr\u01B0\u1EDBc ng\xE0y",
130
+ after: "Sau ng\xE0y",
131
+ onOrBefore: "V\xE0o ho\u1EB7c tr\u01B0\u1EDBc ng\xE0y",
132
+ onOrAfter: "V\xE0o ho\u1EB7c sau ng\xE0y",
133
+ is: "L\xE0",
134
+ isNot: "Kh\xF4ng l\xE0",
135
+ isAnyOf: "L\xE0 m\u1ED9t trong",
136
+ isNoneOf: "Kh\xF4ng l\xE0 b\u1EA5t k\u1EF3",
137
+ isTrue: "C\xF3 \u0111\xE1nh d\u1EA5u",
138
+ isFalse: "Kh\xF4ng \u0111\xE1nh d\u1EA5u"
139
+ }
140
+ },
141
+ cell: {
142
+ longTextPlaceholder: "Nh\u1EADp n\u1ED9i dung...",
143
+ optionSearchPlaceholder: "T\xECm...",
144
+ optionEmpty: "Kh\xF4ng c\xF3 l\u1EF1a ch\u1ECDn ph\xF9 h\u1EE3p.",
145
+ clearAll: "B\u1ECF ch\u1ECDn h\u1EBFt",
146
+ invalidUrlTitle: "Li\xEAn k\u1EBFt kh\xF4ng h\u1EE3p l\u1EC7",
147
+ invalidUrlDescription: "Li\xEAn k\u1EBFt ch\u1EE9a giao th\u1EE9c nguy hi\u1EC3m (javascript:, data:, vbscript: ho\u1EB7c file:)"
148
+ },
149
+ file: {
150
+ uploadLabel: "T\u1EA3i t\u1EC7p l\xEAn",
151
+ dropHere: "Th\u1EA3 t\u1EC7p v\xE0o \u0111\xE2y",
152
+ dragHere: "K\xE9o t\u1EC7p v\xE0o \u0111\xE2y",
153
+ browse: "ho\u1EB7c b\u1EA5m \u0111\u1EC3 ch\u1ECDn t\u1EC7p",
154
+ limits: (maxSize, maxFiles) => {
155
+ if (maxSize && maxFiles) return `T\u1ED1i \u0111a ${maxSize} \u2022 T\u1ED1i \u0111a ${maxFiles} t\u1EC7p`;
156
+ if (maxSize) return `T\u1ED1i \u0111a ${maxSize}`;
157
+ if (maxFiles) return `T\u1ED1i \u0111a ${maxFiles} t\u1EC7p`;
158
+ return "Ch\u1ECDn t\u1EC7p \u0111\u1EC3 t\u1EA3i l\xEAn";
159
+ },
160
+ count: (count) => `${count} t\u1EC7p`,
161
+ clearAll: "Xo\xE1 h\u1EBFt",
162
+ remove: "Xo\xE1 t\u1EC7p",
163
+ uploading: "\u0110ang t\u1EA3i l\xEAn...",
164
+ deleting: "\u0110ang xo\xE1...",
165
+ tooMany: (maxFiles) => `Ch\u1EC9 cho ph\xE9p t\u1ED1i \u0111a ${maxFiles} t\u1EC7p`,
166
+ tooLarge: (maxSize) => `T\u1EC7p v\u01B0\u1EE3t qu\xE1 ${maxSize}`,
167
+ wrongType: "Kh\xF4ng ch\u1EA5p nh\u1EADn \u0111\u1ECBnh d\u1EA1ng t\u1EC7p n\xE0y",
168
+ rejectedOne: (name) => `\u0110\xE3 b\u1ECF qua "${name}"`,
169
+ rejectedMany: (name, others) => `\u0110\xE3 b\u1ECF qua "${name}" v\xE0 ${others} t\u1EC7p kh\xE1c`,
170
+ uploadFailed: (count) => `Kh\xF4ng t\u1EA3i l\xEAn \u0111\u01B0\u1EE3c ${count} t\u1EC7p`,
171
+ deleteFailed: (name) => `Kh\xF4ng xo\xE1 \u0111\u01B0\u1EE3c ${name}`,
172
+ deleteFailedMany: "Kh\xF4ng xo\xE1 \u0111\u01B0\u1EE3c t\u1EC7p"
173
+ },
174
+ toast: {
175
+ cellsCopied: (count) => `\u0110\xE3 sao ch\xE9p ${count} \xF4`,
176
+ copyFailed: "Kh\xF4ng sao ch\xE9p \u0111\u01B0\u1EE3c v\xE0o clipboard",
177
+ cellsCut: (count) => `\u0110\xE3 c\u1EAFt ${count} \xF4`,
178
+ cutFailed: "Kh\xF4ng c\u1EAFt \u0111\u01B0\u1EE3c v\xE0o clipboard",
179
+ cellsPasted: (count) => `\u0110\xE3 d\xE1n ${count} \xF4`,
180
+ cellsPastedWithSkipped: (count, skipped) => `\u0110\xE3 d\xE1n ${count} \xF4, b\u1ECF qua ${skipped} \xF4`,
181
+ pasteSkipped: (skipped) => `B\u1ECF qua ${skipped} \xF4 do d\u1EEF li\u1EC7u kh\xF4ng h\u1EE3p l\u1EC7`,
182
+ pasteFailed: "Kh\xF4ng d\xE1n \u0111\u01B0\u1EE3c. Vui l\xF2ng th\u1EED l\u1EA1i.",
183
+ cellsCleared: (count) => `\u0110\xE3 xo\xE1 n\u1ED9i dung ${count} \xF4`,
184
+ rowsDeleted: (count) => `\u0110\xE3 xo\xE1 ${count} d\xF2ng`,
185
+ nothingToUndo: "Kh\xF4ng c\xF2n thao t\xE1c \u0111\u1EC3 ho\xE0n t\xE1c",
186
+ nothingToRedo: "Kh\xF4ng c\xF2n thao t\xE1c \u0111\u1EC3 l\xE0m l\u1EA1i",
187
+ undone: (count) => `\u0110\xE3 ho\xE0n t\xE1c ${count} thao t\xE1c`,
188
+ redone: (count) => `\u0110\xE3 l\xE0m l\u1EA1i ${count} thao t\xE1c`
189
+ },
190
+ /** Giá trị văn bản khi dán boolean vào ô văn bản */
191
+ booleanText: {
192
+ checked: "C\xF3",
193
+ unchecked: "Kh\xF4ng"
194
+ },
195
+ shortcuts: {
196
+ trigger: "Ph\xEDm t\u1EAFt",
197
+ title: "Ph\xEDm t\u1EAFt",
198
+ description: "Danh s\xE1ch ph\xEDm t\u1EAFt \u0111\u1EC3 thao t\xE1c nhanh v\u1EDBi b\u1EA3ng d\u1EEF li\u1EC7u.",
199
+ searchPlaceholder: "T\xECm ph\xEDm t\u1EAFt...",
200
+ emptyTitle: "Kh\xF4ng t\xECm th\u1EA5y ph\xEDm t\u1EAFt",
201
+ emptyDescription: "Th\u1EED t\xECm v\u1EDBi t\u1EEB kho\xE1 kh\xE1c.",
202
+ close: "\u0110\xF3ng",
203
+ groups: {
204
+ navigation: "Di chuy\u1EC3n",
205
+ selection: "Ch\u1ECDn \xF4",
206
+ editing: "S\u1EEDa d\u1EEF li\u1EC7u",
207
+ search: "T\xECm ki\u1EBFm",
208
+ filtering: "L\u1ECDc",
209
+ sorting: "S\u1EAFp x\u1EBFp",
210
+ general: "Chung"
211
+ },
212
+ keys: {
213
+ click: "Nh\u1EA5p chu\u1ED9t",
214
+ doubleClick: "Nh\u1EA5p \u0111\xFAp"
215
+ },
216
+ navigation: {
217
+ move: "Di chuy\u1EC3n gi\u1EEFa c\xE1c \xF4",
218
+ nextCell: "Sang \xF4 k\u1EBF ti\u1EBFp",
219
+ prevCell: "V\u1EC1 \xF4 tr\u01B0\u1EDBc \u0111\xF3",
220
+ firstColumn: "V\u1EC1 c\u1ED9t \u0111\u1EA7u",
221
+ lastColumn: "T\u1EDBi c\u1ED9t cu\u1ED1i",
222
+ firstRowSameColumn: "V\u1EC1 d\xF2ng \u0111\u1EA7u (c\xF9ng c\u1ED9t)",
223
+ lastRowSameColumn: "T\u1EDBi d\xF2ng cu\u1ED1i (c\xF9ng c\u1ED9t)",
224
+ firstColumnSameRow: "V\u1EC1 c\u1ED9t \u0111\u1EA7u (c\xF9ng d\xF2ng)",
225
+ lastColumnSameRow: "T\u1EDBi c\u1ED9t cu\u1ED1i (c\xF9ng d\xF2ng)",
226
+ firstCell: "V\u1EC1 \xF4 \u0111\u1EA7u b\u1EA3ng",
227
+ lastCell: "T\u1EDBi \xF4 cu\u1ED1i b\u1EA3ng",
228
+ pageUp: "L\xEAn m\u1ED9t trang",
229
+ pageDown: "Xu\u1ED1ng m\u1ED9t trang",
230
+ scrollUp: "Cu\u1ED9n l\xEAn m\u1ED9t trang",
231
+ scrollDown: "Cu\u1ED9n xu\u1ED1ng m\u1ED9t trang",
232
+ scrollLeft: "Cu\u1ED9n sang tr\xE1i m\u1ED9t trang c\u1ED9t",
233
+ scrollRight: "Cu\u1ED9n sang ph\u1EA3i m\u1ED9t trang c\u1ED9t"
234
+ },
235
+ selection: {
236
+ extend: "M\u1EDF r\u1ED9ng v\xF9ng ch\u1ECDn",
237
+ toTop: "Ch\u1ECDn t\u1EDBi \u0111\u1EA7u b\u1EA3ng",
238
+ toBottom: "Ch\u1ECDn t\u1EDBi cu\u1ED1i b\u1EA3ng",
239
+ toFirstColumn: "Ch\u1ECDn t\u1EDBi c\u1ED9t \u0111\u1EA7u",
240
+ toLastColumn: "Ch\u1ECDn t\u1EDBi c\u1ED9t cu\u1ED1i",
241
+ all: "Ch\u1ECDn to\xE0n b\u1ED9 \xF4",
242
+ toggle: "Th\xEAm/b\u1EDBt m\u1ED9t \xF4 kh\u1ECFi v\xF9ng ch\u1ECDn",
243
+ range: "Ch\u1ECDn c\u1EA3 v\xF9ng",
244
+ clear: "B\u1ECF ch\u1ECDn"
245
+ },
246
+ editing: {
247
+ start: "B\u1EAFt \u0111\u1EA7u s\u1EEDa \xF4",
248
+ insertRow: "Ch\xE8n d\xF2ng b\xEAn d\u01B0\u1EDBi",
249
+ copy: "Sao ch\xE9p \xF4 \u0111ang ch\u1ECDn",
250
+ cut: "C\u1EAFt \xF4 \u0111ang ch\u1ECDn",
251
+ paste: "D\xE1n v\xE0o \xF4",
252
+ clear: "Xo\xE1 n\u1ED9i dung \xF4 \u0111ang ch\u1ECDn",
253
+ deleteRows: "Xo\xE1 d\xF2ng \u0111ang ch\u1ECDn",
254
+ undo: "Ho\xE0n t\xE1c",
255
+ redo: "L\xE0m l\u1EA1i"
256
+ },
257
+ search: {
258
+ open: "M\u1EDF \xF4 t\xECm ki\u1EBFm",
259
+ next: "K\u1EBFt qu\u1EA3 k\u1EBF ti\u1EBFp",
260
+ prev: "K\u1EBFt qu\u1EA3 tr\u01B0\u1EDBc \u0111\xF3",
261
+ close: "\u0110\xF3ng t\xECm ki\u1EBFm"
262
+ },
263
+ filtering: {
264
+ toggle: "M\u1EDF/\u0111\xF3ng menu l\u1ECDc",
265
+ remove: "Xo\xE1 \u0111i\u1EC1u ki\u1EC7n l\u1ECDc (khi \u0111ang ch\u1ECDn)"
266
+ },
267
+ sorting: {
268
+ toggle: "M\u1EDF/\u0111\xF3ng menu s\u1EAFp x\u1EBFp",
269
+ remove: "Xo\xE1 ti\xEAu ch\xED s\u1EAFp x\u1EBFp (khi \u0111ang ch\u1ECDn)"
270
+ },
271
+ general: {
272
+ shortcuts: "Xem danh s\xE1ch ph\xEDm t\u1EAFt"
273
+ }
274
+ }
275
+ };
276
+ export {
277
+ messagesVi
278
+ };
279
+ //# sourceMappingURL=messages-vi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data-grid/messages-vi.ts"],"sourcesContent":["import type { DataGridMessages } from \"./messages-en.js\";\n\n/**\n * Bảng tiếng VIỆT của DataGrid. Hình dạng do `messages-en.ts` quy định — chú thích `: DataGridMessages`\n * ở đây là thứ bắt lỗi: thêm khoá mới ở bản tiếng Anh mà quên dịch thì typecheck đỏ ngay, thay vì\n * một chuỗi `undefined` lọt ra giao diện lúc chạy.\n *\n * ⚠ Bản này KHÔNG còn là mặc định từ `2.0.0`. Muốn nó thì truyền `locale=\"vi\"` (xem README §5).\n */\nexport const messagesVi: DataGridMessages = {\n grid: {\n /** Nhãn mặc định của vùng `role=\"grid\"` (ghi đè bằng prop `aria-label`) */\n label: \"Bảng dữ liệu\",\n addRow: \"Thêm dòng\"\n },\n\n search: {\n placeholder: \"Tìm trong bảng...\",\n label: \"Tìm trong bảng\",\n prevMatch: \"Kết quả trước\",\n nextMatch: \"Kết quả sau\",\n close: \"Đóng tìm kiếm\",\n matchPosition: (index: number, total: number) => `${index} / ${total}`,\n noResults: \"Không có kết quả\",\n typeToSearch: \"Gõ để tìm\"\n },\n\n column: {\n sortAsc: \"Sắp xếp tăng dần\",\n sortDesc: \"Sắp xếp giảm dần\",\n removeSort: \"Bỏ sắp xếp\",\n pinLeft: \"Ghim sang trái\",\n unpinLeft: \"Bỏ ghim trái\",\n pinRight: \"Ghim sang phải\",\n unpinRight: \"Bỏ ghim phải\",\n hide: \"Ẩn cột\",\n resize: (label: string) => `Đổi độ rộng cột ${label}`,\n /** Tên kiểu dữ liệu của cột, hiện trong tooltip ở tiêu đề cột */\n variant: {\n shortText: \"Văn bản ngắn\",\n longText: \"Văn bản dài\",\n number: \"Số\",\n url: \"Liên kết\",\n checkbox: \"Ô đánh dấu\",\n select: \"Chọn một\",\n multiSelect: \"Chọn nhiều\",\n date: \"Ngày\",\n file: \"Tệp\"\n }\n },\n\n select: {\n all: \"Chọn tất cả\",\n row: \"Chọn dòng\",\n rowNumber: (rowNumber: number) => `Chọn dòng ${rowNumber}`\n },\n\n contextMenu: {\n copy: \"Sao chép\",\n cut: \"Cắt\",\n clear: \"Xoá nội dung\",\n deleteRows: \"Xoá dòng\"\n },\n\n pasteDialog: {\n title: \"Thêm dòng để dán hết dữ liệu?\",\n description: (rowsNeeded: number) => `Cần thêm ${rowsNeeded} dòng nữa để dán hết nội dung đang có trong clipboard.`,\n expandTitle: \"Tạo dòng mới\",\n expandDescription: (rowsNeeded: number) => `Thêm ${rowsNeeded} dòng vào bảng rồi dán toàn bộ dữ liệu`,\n keepTitle: \"Giữ nguyên số dòng\",\n keepDescription: \"Chỉ dán phần vừa với các dòng hiện có\",\n cancel: \"Huỷ\",\n confirm: \"Tiếp tục\"\n },\n\n rowHeight: {\n label: \"Chiều cao dòng\",\n short: \"Thấp\",\n medium: \"Vừa\",\n tall: \"Cao\",\n extraTall: \"Rất cao\"\n },\n\n view: {\n trigger: \"Hiển thị\",\n toggleColumns: \"Ẩn/hiện cột\",\n searchPlaceholder: \"Tìm cột...\",\n empty: \"Không có cột phù hợp.\"\n },\n\n sort: {\n trigger: \"Sắp xếp\",\n title: \"Sắp xếp theo\",\n emptyTitle: \"Chưa sắp xếp\",\n description: \"Đổi tiêu chí sắp xếp cho danh sách.\",\n emptyDescription: \"Thêm tiêu chí để sắp xếp danh sách.\",\n add: \"Thêm sắp xếp\",\n reset: \"Bỏ sắp xếp\",\n remove: \"Xoá tiêu chí\",\n drag: \"Kéo để đổi thứ tự\",\n fieldPlaceholder: \"Tìm trường...\",\n fieldEmpty: \"Không có trường phù hợp.\",\n asc: \"Tăng dần\",\n desc: \"Giảm dần\"\n },\n\n filter: {\n trigger: \"Lọc\",\n title: \"Lọc theo\",\n emptyTitle: \"Chưa có bộ lọc\",\n description: \"Đổi điều kiện lọc để thu hẹp dữ liệu.\",\n emptyDescription: \"Thêm điều kiện lọc để thu hẹp dữ liệu.\",\n add: \"Thêm bộ lọc\",\n reset: \"Xoá bộ lọc\",\n remove: \"Xoá điều kiện\",\n drag: \"Kéo để đổi thứ tự\",\n where: \"Khi\",\n and: \"Và\",\n fieldPlaceholder: \"Tìm trường...\",\n fieldEmpty: \"Không có trường phù hợp.\",\n valuePlaceholder: \"Giá trị\",\n rangeStart: \"Từ\",\n rangeEnd: \"Đến\",\n pickDate: \"Chọn ngày\",\n pickRange: \"Chọn khoảng ngày\",\n optionPlaceholder: \"Tìm lựa chọn...\",\n optionEmpty: \"Không có lựa chọn phù hợp.\",\n selectedCount: (count: number) => `Đã chọn ${count}`,\n emptyValue: (label: string) => `Bộ lọc ${label} chưa cần giá trị`,\n /** Nhãn toán tử lọc — xem `filters.ts` để biết toán tử nào dùng cho kiểu ô nào */\n operators: {\n contains: \"Chứa\",\n notContains: \"Không chứa\",\n equals: \"Bằng\",\n notEquals: \"Khác\",\n startsWith: \"Bắt đầu bằng\",\n endsWith: \"Kết thúc bằng\",\n isEmpty: \"Đang trống\",\n isNotEmpty: \"Không trống\",\n lessThan: \"Nhỏ hơn\",\n lessThanOrEqual: \"Nhỏ hơn hoặc bằng\",\n greaterThan: \"Lớn hơn\",\n greaterThanOrEqual: \"Lớn hơn hoặc bằng\",\n isBetween: \"Trong khoảng\",\n dateEquals: \"Đúng ngày\",\n dateNotEquals: \"Khác ngày\",\n before: \"Trước ngày\",\n after: \"Sau ngày\",\n onOrBefore: \"Vào hoặc trước ngày\",\n onOrAfter: \"Vào hoặc sau ngày\",\n is: \"Là\",\n isNot: \"Không là\",\n isAnyOf: \"Là một trong\",\n isNoneOf: \"Không là bất kỳ\",\n isTrue: \"Có đánh dấu\",\n isFalse: \"Không đánh dấu\"\n }\n },\n\n cell: {\n longTextPlaceholder: \"Nhập nội dung...\",\n optionSearchPlaceholder: \"Tìm...\",\n optionEmpty: \"Không có lựa chọn phù hợp.\",\n clearAll: \"Bỏ chọn hết\",\n invalidUrlTitle: \"Liên kết không hợp lệ\",\n invalidUrlDescription: \"Liên kết chứa giao thức nguy hiểm (javascript:, data:, vbscript: hoặc file:)\"\n },\n\n file: {\n uploadLabel: \"Tải tệp lên\",\n dropHere: \"Thả tệp vào đây\",\n dragHere: \"Kéo tệp vào đây\",\n browse: \"hoặc bấm để chọn tệp\",\n limits: (maxSize?: string, maxFiles?: number) => {\n if (maxSize && maxFiles) return `Tối đa ${maxSize} • Tối đa ${maxFiles} tệp`;\n if (maxSize) return `Tối đa ${maxSize}`;\n if (maxFiles) return `Tối đa ${maxFiles} tệp`;\n return \"Chọn tệp để tải lên\";\n },\n count: (count: number) => `${count} tệp`,\n clearAll: \"Xoá hết\",\n remove: \"Xoá tệp\",\n uploading: \"Đang tải lên...\",\n deleting: \"Đang xoá...\",\n tooMany: (maxFiles: number) => `Chỉ cho phép tối đa ${maxFiles} tệp`,\n tooLarge: (maxSize: string) => `Tệp vượt quá ${maxSize}`,\n wrongType: \"Không chấp nhận định dạng tệp này\",\n rejectedOne: (name: string) => `Đã bỏ qua \"${name}\"`,\n rejectedMany: (name: string, others: number) => `Đã bỏ qua \"${name}\" và ${others} tệp khác`,\n uploadFailed: (count: number) => `Không tải lên được ${count} tệp`,\n deleteFailed: (name: string) => `Không xoá được ${name}`,\n deleteFailedMany: \"Không xoá được tệp\"\n },\n\n toast: {\n cellsCopied: (count: number) => `Đã sao chép ${count} ô`,\n copyFailed: \"Không sao chép được vào clipboard\",\n cellsCut: (count: number) => `Đã cắt ${count} ô`,\n cutFailed: \"Không cắt được vào clipboard\",\n cellsPasted: (count: number) => `Đã dán ${count} ô`,\n cellsPastedWithSkipped: (count: number, skipped: number) => `Đã dán ${count} ô, bỏ qua ${skipped} ô`,\n pasteSkipped: (skipped: number) => `Bỏ qua ${skipped} ô do dữ liệu không hợp lệ`,\n pasteFailed: \"Không dán được. Vui lòng thử lại.\",\n cellsCleared: (count: number) => `Đã xoá nội dung ${count} ô`,\n rowsDeleted: (count: number) => `Đã xoá ${count} dòng`,\n nothingToUndo: \"Không còn thao tác để hoàn tác\",\n nothingToRedo: \"Không còn thao tác để làm lại\",\n undone: (count: number) => `Đã hoàn tác ${count} thao tác`,\n redone: (count: number) => `Đã làm lại ${count} thao tác`\n },\n\n /** Giá trị văn bản khi dán boolean vào ô văn bản */\n booleanText: {\n checked: \"Có\",\n unchecked: \"Không\"\n },\n\n shortcuts: {\n trigger: \"Phím tắt\",\n title: \"Phím tắt\",\n description: \"Danh sách phím tắt để thao tác nhanh với bảng dữ liệu.\",\n searchPlaceholder: \"Tìm phím tắt...\",\n emptyTitle: \"Không tìm thấy phím tắt\",\n emptyDescription: \"Thử tìm với từ khoá khác.\",\n close: \"Đóng\",\n groups: {\n navigation: \"Di chuyển\",\n selection: \"Chọn ô\",\n editing: \"Sửa dữ liệu\",\n search: \"Tìm kiếm\",\n filtering: \"Lọc\",\n sorting: \"Sắp xếp\",\n general: \"Chung\"\n },\n keys: {\n click: \"Nhấp chuột\",\n doubleClick: \"Nhấp đúp\"\n },\n navigation: {\n move: \"Di chuyển giữa các ô\",\n nextCell: \"Sang ô kế tiếp\",\n prevCell: \"Về ô trước đó\",\n firstColumn: \"Về cột đầu\",\n lastColumn: \"Tới cột cuối\",\n firstRowSameColumn: \"Về dòng đầu (cùng cột)\",\n lastRowSameColumn: \"Tới dòng cuối (cùng cột)\",\n firstColumnSameRow: \"Về cột đầu (cùng dòng)\",\n lastColumnSameRow: \"Tới cột cuối (cùng dòng)\",\n firstCell: \"Về ô đầu bảng\",\n lastCell: \"Tới ô cuối bảng\",\n pageUp: \"Lên một trang\",\n pageDown: \"Xuống một trang\",\n scrollUp: \"Cuộn lên một trang\",\n scrollDown: \"Cuộn xuống một trang\",\n scrollLeft: \"Cuộn sang trái một trang cột\",\n scrollRight: \"Cuộn sang phải một trang cột\"\n },\n selection: {\n extend: \"Mở rộng vùng chọn\",\n toTop: \"Chọn tới đầu bảng\",\n toBottom: \"Chọn tới cuối bảng\",\n toFirstColumn: \"Chọn tới cột đầu\",\n toLastColumn: \"Chọn tới cột cuối\",\n all: \"Chọn toàn bộ ô\",\n toggle: \"Thêm/bớt một ô khỏi vùng chọn\",\n range: \"Chọn cả vùng\",\n clear: \"Bỏ chọn\"\n },\n editing: {\n start: \"Bắt đầu sửa ô\",\n insertRow: \"Chèn dòng bên dưới\",\n copy: \"Sao chép ô đang chọn\",\n cut: \"Cắt ô đang chọn\",\n paste: \"Dán vào ô\",\n clear: \"Xoá nội dung ô đang chọn\",\n deleteRows: \"Xoá dòng đang chọn\",\n undo: \"Hoàn tác\",\n redo: \"Làm lại\"\n },\n search: {\n open: \"Mở ô tìm kiếm\",\n next: \"Kết quả kế tiếp\",\n prev: \"Kết quả trước đó\",\n close: \"Đóng tìm kiếm\"\n },\n filtering: {\n toggle: \"Mở/đóng menu lọc\",\n remove: \"Xoá điều kiện lọc (khi đang chọn)\"\n },\n sorting: {\n toggle: \"Mở/đóng menu sắp xếp\",\n remove: \"Xoá tiêu chí sắp xếp (khi đang chọn)\"\n },\n general: {\n shortcuts: \"Xem danh sách phím tắt\"\n }\n }\n};\n"],"mappings":"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","names":[]}