ngwr 14.1.0 → 14.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +23 -22
  2. package/command-palette/styles/_index.scss +17 -0
  3. package/fesm2022/ngwr-breadcrumbs.mjs +2 -2
  4. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  5. package/fesm2022/ngwr-calendar.mjs +4 -2
  6. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  7. package/fesm2022/ngwr-cascader.mjs +2 -2
  8. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  9. package/fesm2022/ngwr-command-palette.mjs +2 -2
  10. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  11. package/fesm2022/ngwr-drag-drop.mjs +2 -2
  12. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  13. package/fesm2022/ngwr-event-calendar.mjs +17 -5
  14. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  15. package/fesm2022/ngwr-form.mjs +30 -1
  16. package/fesm2022/ngwr-form.mjs.map +1 -1
  17. package/fesm2022/ngwr-i18n-ar.mjs +429 -0
  18. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -0
  19. package/fesm2022/ngwr-i18n-cs.mjs +399 -0
  20. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -0
  21. package/fesm2022/ngwr-i18n-de.mjs +418 -0
  22. package/fesm2022/ngwr-i18n-de.mjs.map +1 -0
  23. package/fesm2022/ngwr-i18n-en.mjs +23 -0
  24. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  25. package/fesm2022/ngwr-i18n-es.mjs +399 -0
  26. package/fesm2022/ngwr-i18n-es.mjs.map +1 -0
  27. package/fesm2022/ngwr-i18n-fr.mjs +423 -0
  28. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -0
  29. package/fesm2022/ngwr-i18n-he.mjs +422 -0
  30. package/fesm2022/ngwr-i18n-he.mjs.map +1 -0
  31. package/fesm2022/ngwr-i18n-hi.mjs +399 -0
  32. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -0
  33. package/fesm2022/ngwr-i18n-id.mjs +399 -0
  34. package/fesm2022/ngwr-i18n-id.mjs.map +1 -0
  35. package/fesm2022/ngwr-i18n-it.mjs +418 -0
  36. package/fesm2022/ngwr-i18n-it.mjs.map +1 -0
  37. package/fesm2022/ngwr-i18n-ja.mjs +403 -0
  38. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -0
  39. package/fesm2022/ngwr-i18n-ko.mjs +411 -0
  40. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -0
  41. package/fesm2022/ngwr-i18n-nl.mjs +415 -0
  42. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -0
  43. package/fesm2022/ngwr-i18n-pl.mjs +425 -0
  44. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -0
  45. package/fesm2022/ngwr-i18n-pt.mjs +408 -0
  46. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -0
  47. package/fesm2022/ngwr-i18n-ru.mjs +11 -0
  48. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  49. package/fesm2022/ngwr-i18n-sv.mjs +399 -0
  50. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -0
  51. package/fesm2022/ngwr-i18n-tr.mjs +423 -0
  52. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -0
  53. package/fesm2022/ngwr-i18n-uk.mjs +420 -0
  54. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -0
  55. package/fesm2022/ngwr-i18n-vi.mjs +416 -0
  56. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -0
  57. package/fesm2022/ngwr-i18n-zh-TW.mjs +407 -0
  58. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -0
  59. package/fesm2022/ngwr-i18n-zh.mjs +398 -0
  60. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -0
  61. package/fesm2022/ngwr-lightbox.mjs +2 -2
  62. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  63. package/fesm2022/ngwr-line-chart.mjs +24 -4
  64. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  65. package/fesm2022/ngwr-list.mjs +2 -2
  66. package/fesm2022/ngwr-list.mjs.map +1 -1
  67. package/fesm2022/ngwr-pipes.mjs +75 -10
  68. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  69. package/fesm2022/ngwr-schema-form.mjs +185 -0
  70. package/fesm2022/ngwr-schema-form.mjs.map +1 -0
  71. package/fesm2022/ngwr-select.mjs +2 -2
  72. package/fesm2022/ngwr-select.mjs.map +1 -1
  73. package/fesm2022/ngwr-validators.mjs +8 -1
  74. package/fesm2022/ngwr-validators.mjs.map +1 -1
  75. package/fesm2022/ngwr-version.mjs +1 -1
  76. package/fesm2022/ngwr-version.mjs.map +1 -1
  77. package/i18n/ar.json +389 -0
  78. package/i18n/cs.json +389 -0
  79. package/i18n/de.json +389 -0
  80. package/i18n/en.json +10 -2
  81. package/i18n/es.json +389 -0
  82. package/i18n/fr.json +389 -0
  83. package/i18n/he.json +389 -0
  84. package/i18n/hi.json +389 -0
  85. package/i18n/id.json +389 -0
  86. package/i18n/it.json +389 -0
  87. package/i18n/ja.json +389 -0
  88. package/i18n/ko.json +389 -0
  89. package/i18n/nl.json +389 -0
  90. package/i18n/pl.json +389 -0
  91. package/i18n/pt.json +389 -0
  92. package/i18n/ru.json +10 -2
  93. package/i18n/sv.json +389 -0
  94. package/i18n/tr.json +389 -0
  95. package/i18n/uk.json +389 -0
  96. package/i18n/vi.json +389 -0
  97. package/i18n/zh-TW.json +389 -0
  98. package/i18n/zh.json +389 -0
  99. package/llms-full.txt +87 -1
  100. package/llms.txt +1 -1
  101. package/package.json +89 -7
  102. package/schema-form/styles/_index.scss +15 -0
  103. package/schematics/migrations/v9/index.js +11 -3
  104. package/schematics/use/symbol-map.json +1 -0
  105. package/skills/ngwr/SKILL.md +1 -1
  106. package/skills/ngwr/references/catalog.md +21 -0
  107. package/styles.scss +1 -0
  108. package/theme/styles/_focus.scss +23 -2
  109. package/types/ngwr-calendar.d.ts +2 -0
  110. package/types/ngwr-command-palette.d.ts +1 -1
  111. package/types/ngwr-event-calendar.d.ts +5 -0
  112. package/types/ngwr-form.d.ts +88 -2
  113. package/types/ngwr-i18n-ar.d.ts +6 -0
  114. package/types/ngwr-i18n-cs.d.ts +6 -0
  115. package/types/ngwr-i18n-de.d.ts +6 -0
  116. package/types/ngwr-i18n-es.d.ts +6 -0
  117. package/types/ngwr-i18n-fr.d.ts +6 -0
  118. package/types/ngwr-i18n-he.d.ts +6 -0
  119. package/types/ngwr-i18n-hi.d.ts +6 -0
  120. package/types/ngwr-i18n-id.d.ts +6 -0
  121. package/types/ngwr-i18n-it.d.ts +6 -0
  122. package/types/ngwr-i18n-ja.d.ts +6 -0
  123. package/types/ngwr-i18n-ko.d.ts +6 -0
  124. package/types/ngwr-i18n-nl.d.ts +6 -0
  125. package/types/ngwr-i18n-pl.d.ts +6 -0
  126. package/types/ngwr-i18n-pt.d.ts +6 -0
  127. package/types/ngwr-i18n-sv.d.ts +6 -0
  128. package/types/ngwr-i18n-tr.d.ts +6 -0
  129. package/types/ngwr-i18n-uk.d.ts +6 -0
  130. package/types/ngwr-i18n-vi.d.ts +6 -0
  131. package/types/ngwr-i18n-zh-TW.d.ts +6 -0
  132. package/types/ngwr-i18n-zh.d.ts +6 -0
  133. package/types/ngwr-line-chart.d.ts +15 -0
  134. package/types/ngwr-pipes.d.ts +45 -4
  135. package/types/ngwr-schema-form.d.ts +90 -0
  136. package/types/ngwr-version.d.ts +1 -1
@@ -0,0 +1,416 @@
1
+ /** Base Vietnamese catalog for ngwr built-in component strings. */
2
+ const wrVi = {
3
+ common: {
4
+ ok: 'OK',
5
+ cancel: 'Hủy',
6
+ close: 'Đóng',
7
+ confirm: 'Xác nhận',
8
+ delete: 'Xóa',
9
+ save: 'Lưu',
10
+ edit: 'Sửa',
11
+ add: 'Thêm',
12
+ remove: 'Gỡ bỏ',
13
+ clear: 'Xóa hết',
14
+ search: 'Tìm kiếm',
15
+ loading: 'Đang tải…',
16
+ select: 'Chọn',
17
+ next: 'Tiếp theo',
18
+ previous: 'Trước',
19
+ back: 'Quay lại',
20
+ today: 'Hôm nay',
21
+ yesterday: 'Hôm qua',
22
+ tomorrow: 'Ngày mai',
23
+ of: 'trong số',
24
+ },
25
+ pagination: {
26
+ prev: 'Trang trước',
27
+ next: 'Trang sau',
28
+ itemsPerPage: 'Số mục mỗi trang',
29
+ perPage: '{{size}} / trang',
30
+ goToPage: 'Đến trang {{page}}',
31
+ label: 'Phân trang',
32
+ pageOf: 'Trang {{current}} trên {{total}}',
33
+ range: '{{from}}–{{to}} trong số {{total}}',
34
+ compact: '{{current}} / {{total}}',
35
+ },
36
+ table: {
37
+ empty: 'Không có dữ liệu',
38
+ loading: 'Đang tải…',
39
+ sort: 'Sắp xếp cột',
40
+ filter: 'Lọc cột',
41
+ selectAll: 'Chọn tất cả hàng',
42
+ selectRow: 'Chọn hàng',
43
+ expandRow: 'Hiện/ẩn chi tiết hàng',
44
+ toggleRow: 'Hiện/ẩn hàng con',
45
+ selectGroup: 'Chọn nhóm',
46
+ toggleGroup: 'Mở/thu gọn nhóm',
47
+ noMatches: 'Không có kết quả phù hợp',
48
+ search: 'Tìm kiếm',
49
+ reset: 'Đặt lại',
50
+ },
51
+ eventCalendar: {
52
+ today: 'Hôm nay',
53
+ previous: 'Trước',
54
+ next: 'Sau',
55
+ month: 'Tháng',
56
+ week: 'Tuần',
57
+ day: 'Ngày',
58
+ time: 'Giờ',
59
+ allDay: 'Cả ngày',
60
+ label: 'Lịch',
61
+ more: '+{{count}} nữa',
62
+ // Tiếng Việt viết “tháng 3 năm 2026”, không phải “tháng 3 2026” — chỗ đặt
63
+ // chữ “năm” chính là phần phải dịch ở đây, giống như ja-JP viết 2026年3月.
64
+ header: '{{month}} năm {{year}}',
65
+ range: '{{from}} – {{to}}',
66
+ chipLabel: '{{title}}, {{time}}',
67
+ slotLabel: '{{time}} — {{date}}',
68
+ allDayCellLabel: '{{label}} — {{date}}',
69
+ },
70
+ tour: {
71
+ next: 'Tiếp theo',
72
+ back: 'Quay lại',
73
+ done: 'Xong',
74
+ skip: 'Bỏ qua',
75
+ progress: 'Bước {{current}} trên {{total}}',
76
+ },
77
+ splitter: {
78
+ divider: 'Đổi kích thước khung',
79
+ },
80
+ stepper: {
81
+ optional: 'tùy chọn',
82
+ },
83
+ transfer: {
84
+ source: 'Có sẵn',
85
+ target: 'Đã chọn',
86
+ search: 'Tìm kiếm',
87
+ empty: 'Trống',
88
+ selectAll: 'Chọn tất cả',
89
+ toTarget: 'Chuyển sang danh sách đã chọn',
90
+ toSource: 'Chuyển về danh sách có sẵn',
91
+ count: '{{checked}} / {{total}}',
92
+ },
93
+ form: {
94
+ optional: 'tùy chọn',
95
+ },
96
+ validation: {
97
+ required: 'Trường này là bắt buộc.',
98
+ requiredTrue: 'Cần đánh dấu vào ô này.',
99
+ email: 'Nhập địa chỉ email hợp lệ.',
100
+ minlength: 'Nhập ít nhất {{requiredLength}} ký tự.',
101
+ maxlength: 'Nhập tối đa {{requiredLength}} ký tự.',
102
+ min: 'Nhập {{min}} trở lên.',
103
+ max: 'Nhập {{max}} trở xuống.',
104
+ pattern: 'Giá trị không đúng định dạng.',
105
+ noWhitespace: 'Giá trị không được chứa dấu cách.',
106
+ hexColor: 'Nhập mã màu hex, ví dụ #1a2b3c.',
107
+ url: 'Nhập URL hợp lệ.',
108
+ cardNumber: 'Nhập số thẻ hợp lệ.',
109
+ cvc: 'Nhập mã bảo mật {{length}} chữ số.',
110
+ iban: 'Nhập số IBAN hợp lệ.',
111
+ match: 'Hai giá trị không khớp nhau.',
112
+ matchFields: 'Các trường này không khớp nhau.',
113
+ oneOf: 'Chọn một trong các giá trị cho phép.',
114
+ minDate: 'Chọn ngày muộn hơn.',
115
+ maxDate: 'Chọn ngày sớm hơn.',
116
+ },
117
+ select: {
118
+ label: 'Chọn',
119
+ placeholder: 'Chọn…',
120
+ empty: 'Không có lựa chọn',
121
+ clearSelection: 'Xóa lựa chọn',
122
+ removeItem: 'Xóa {{label}}',
123
+ noResults: 'Không có kết quả',
124
+ loading: 'Đang tải…',
125
+ more: '+{{count}} nữa',
126
+ },
127
+ // `tree` covers both inline display and combobox-mode pickers
128
+ // (replaces the dropped `treeSelect` namespace).
129
+ tree: {
130
+ expand: 'Mở rộng',
131
+ collapse: 'Thu gọn',
132
+ placeholder: 'Chọn…',
133
+ clearSelection: 'Xóa lựa chọn',
134
+ removeItem: 'Xóa {{label}}',
135
+ more: '+{{count}} nữa',
136
+ },
137
+ commandPalette: {
138
+ label: 'Bảng lệnh',
139
+ placeholder: 'Nhập lệnh hoặc tìm kiếm…',
140
+ noResults: 'Không có kết quả',
141
+ loading: 'Đang tìm…',
142
+ escHint: 'esc',
143
+ },
144
+ empty: {
145
+ noData: 'Không có dữ liệu',
146
+ },
147
+ fileUpload: {
148
+ browse: 'Nhấn để chọn tệp',
149
+ dropZone: 'hoặc kéo thả tệp vào đây',
150
+ dropZoneLabel: 'Vùng tải tệp lên — nhấn hoặc kéo thả tệp',
151
+ removeFile: 'Xóa tệp',
152
+ invalid: 'Loại tệp không được hỗ trợ',
153
+ tooBig: 'Tệp quá lớn',
154
+ size: '{{value}} {{unit}}',
155
+ unitByte: 'B',
156
+ unitKb: 'KB',
157
+ unitMb: 'MB',
158
+ unitGb: 'GB',
159
+ unitTb: 'TB',
160
+ },
161
+ popconfirm: {
162
+ label: 'Xác nhận hành động',
163
+ confirm: 'Xác nhận',
164
+ cancel: 'Hủy',
165
+ },
166
+ toast: {
167
+ region: 'Thông báo',
168
+ close: 'Đóng',
169
+ copy: 'Sao chép',
170
+ copied: 'Đã sao chép',
171
+ closeAll: 'Đóng tất cả',
172
+ },
173
+ input: {
174
+ showPassword: 'Hiện mật khẩu',
175
+ hidePassword: 'Ẩn mật khẩu',
176
+ },
177
+ inputNumber: {
178
+ increment: 'Tăng',
179
+ decrement: 'Giảm',
180
+ },
181
+ inputOtp: {
182
+ label: 'Mã xác minh',
183
+ digit: 'Chữ số {{index}}',
184
+ character: 'Ký tự {{index}}',
185
+ },
186
+ anchor: {
187
+ label: 'Mục lục',
188
+ },
189
+ avatar: {
190
+ alt: 'Ảnh đại diện',
191
+ },
192
+ backTop: {
193
+ label: 'Lên đầu trang',
194
+ },
195
+ breadcrumbs: {
196
+ label: 'Đường dẫn trang',
197
+ },
198
+ burger: {
199
+ label: 'Mở/đóng menu',
200
+ },
201
+ calendar: {
202
+ prevMonth: 'Tháng trước',
203
+ nextMonth: 'Tháng sau',
204
+ prevYear: 'Năm trước',
205
+ nextYear: 'Năm sau',
206
+ // The month / year pickers are `role="listbox"`, and a listbox owes a
207
+ // name — without one a screen reader announces the control as nothing at
208
+ // all. Caught by `check:state-a11y` once a state finally opened the view.
209
+ monthList: 'Các tháng',
210
+ yearList: 'Các năm',
211
+ // “12 năm trước” đọc ra thành “12 years ago” chứ không phải “previous 12
212
+ // years”, nên hai nút này phải nói rõ là trước đó / tiếp theo.
213
+ prevYears: '12 năm trước đó',
214
+ nextYears: '12 năm tiếp theo',
215
+ header: '{{month}} năm {{year}}',
216
+ yearRange: '{{from}} – {{to}}',
217
+ dayLabel: '{{weekday}}, {{date}}',
218
+ },
219
+ imageCropper: {
220
+ empty: 'Không có ảnh',
221
+ window: 'Vùng cắt',
222
+ keyHelp: 'Các phím mũi tên di chuyển vùng cắt. Giữ Alt cùng phím mũi tên để đổi kích thước, giữ Shift để bước nhảy lớn hơn. ' +
223
+ 'Vùng cắt được đọc theo thứ tự lề trái, lề trên, chiều rộng và chiều cao, tính bằng pixel của ảnh.',
224
+ },
225
+ sortableList: {
226
+ keyHelp: 'Nhấn phím cách để nhấc mục này lên, rồi dùng các phím mũi tên để di chuyển. ' +
227
+ 'Nhấn phím cách lần nữa để thả, hoặc nhấn Escape để trả về chỗ cũ.',
228
+ grabbed: 'Đã nhấc. {{index}} trên {{total}}.',
229
+ moved: '{{index}} trên {{total}}.',
230
+ dropped: 'Đã thả. {{index}} trên {{total}}.',
231
+ cancelled: 'Đã hủy di chuyển.',
232
+ },
233
+ colorPicker: {
234
+ area: 'Độ bão hòa và độ sáng, {{saturation}}% và {{brightness}}%',
235
+ hue: 'Tông màu',
236
+ alpha: 'Độ mờ',
237
+ formatHex: 'HEX',
238
+ formatRgb: 'RGB',
239
+ formatHsl: 'HSL',
240
+ channelHex: 'HEX',
241
+ channelRed: 'R',
242
+ channelGreen: 'G',
243
+ channelBlue: 'B',
244
+ channelHue: 'H',
245
+ channelSaturation: 'S%',
246
+ channelLightness: 'L%',
247
+ channelAlpha: 'A%',
248
+ },
249
+ calendarHeatmap: {
250
+ label: 'Bản đồ nhiệt theo lịch',
251
+ },
252
+ lineChart: {
253
+ label: 'Biểu đồ đường',
254
+ thousands: '{{value}} N',
255
+ },
256
+ donutChart: {
257
+ label: 'Biểu đồ vành khuyên',
258
+ },
259
+ compare: {
260
+ label: 'Thanh trượt so sánh',
261
+ },
262
+ // Hai giá trị `roledescription` được đọc THAY CHO tên vai trò, nên chúng là danh
263
+ // từ viết thường — “băng chuyền”, “trang chiếu” — chứ không phải nhãn viết hoa
264
+ // như các chuỗi phía trên.
265
+ carousel: {
266
+ label: 'Băng chuyền',
267
+ goToSlide: 'Đến trang chiếu {{index}}',
268
+ prev: 'Trang chiếu trước',
269
+ next: 'Trang chiếu sau',
270
+ pagination: 'Phân trang băng chuyền',
271
+ roledescription: 'băng chuyền',
272
+ slideRoledescription: 'trang chiếu',
273
+ },
274
+ actionSheet: {
275
+ label: 'Thao tác',
276
+ },
277
+ alert: {
278
+ close: 'Đóng cảnh báo',
279
+ },
280
+ qr: {
281
+ label: 'Mã QR',
282
+ },
283
+ image: {
284
+ viewer: 'Xem trước ảnh',
285
+ open: 'Mở xem trước',
286
+ close: 'Đóng xem trước',
287
+ },
288
+ window: {
289
+ close: 'Đóng',
290
+ minimize: 'Thu nhỏ',
291
+ maximize: 'Phóng to',
292
+ restore: 'Khôi phục',
293
+ restoreDown: 'Khôi phục kích thước',
294
+ restoreWindow: 'Khôi phục {{title}}',
295
+ closeWindow: 'Đóng cửa sổ',
296
+ untitled: 'Không có tiêu đề',
297
+ taskbar: 'Cửa sổ đã thu nhỏ',
298
+ },
299
+ dialog: {
300
+ close: 'Đóng hộp thoại',
301
+ },
302
+ // Cố ý chung chung: bảng popover không có tên gọi phổ quát, còn `role="dialog"`
303
+ // không có tên thì hoàn toàn không được đọc lên. Ghi đè cho từng trường hợp
304
+ // bằng `[ariaLabel]`.
305
+ popover: {
306
+ label: 'Bảng bật lên',
307
+ },
308
+ markdown: {
309
+ copy: 'Sao chép mã',
310
+ copied: 'Đã sao chép',
311
+ taskDone: 'Đã xong:',
312
+ taskTodo: 'Chưa xong:',
313
+ },
314
+ // Danh từ đứng trước con số — “Số kết quả phù hợp: 1” vẫn đọc đúng, vì tiếng Việt
315
+ // không đổi dạng từ theo số lượng và bộ nội suy cũng không có luật số nhiều.
316
+ marquee: {
317
+ label: 'Dòng chữ chạy',
318
+ link: 'liên kết',
319
+ },
320
+ mention: {
321
+ listbox: 'Danh sách nhắc đến',
322
+ available: 'Số kết quả phù hợp: {{count}}',
323
+ inserted: 'Đã chèn: {{label}}',
324
+ },
325
+ drawer: {
326
+ close: 'Đóng bảng trượt',
327
+ },
328
+ datePicker: {
329
+ open: 'Mở lịch',
330
+ openTime: 'Mở bộ chọn giờ',
331
+ openDateTime: 'Mở bộ chọn ngày và giờ',
332
+ openRange: 'Mở lịch chọn khoảng ngày',
333
+ panel: 'Chọn ngày',
334
+ panelTime: 'Chọn giờ',
335
+ panelDateTime: 'Chọn ngày và giờ',
336
+ panelRange: 'Chọn khoảng ngày',
337
+ panelRangeDateTime: 'Chọn khoảng ngày và giờ',
338
+ rangeStart: 'Ngày bắt đầu',
339
+ rangeEnd: 'Ngày kết thúc',
340
+ startTime: 'Giờ bắt đầu',
341
+ endTime: 'Giờ kết thúc',
342
+ hours: 'Giờ',
343
+ minutes: 'Phút',
344
+ seconds: 'Giây',
345
+ incrementHours: 'Tăng giờ',
346
+ decrementHours: 'Giảm giờ',
347
+ incrementMinutes: 'Tăng phút',
348
+ decrementMinutes: 'Giảm phút',
349
+ incrementSeconds: 'Tăng giây',
350
+ decrementSeconds: 'Giảm giây',
351
+ toggleAmPm: 'Chuyển SA / CH',
352
+ am: 'SA',
353
+ pm: 'CH',
354
+ },
355
+ sidebar: {
356
+ label: 'Thanh bên',
357
+ },
358
+ spinner: {
359
+ label: 'Đang tải',
360
+ },
361
+ rating: {
362
+ label: 'Đánh giá',
363
+ },
364
+ gauge: {
365
+ label: 'Đồng hồ đo',
366
+ },
367
+ progress: {
368
+ label: 'Tiến trình',
369
+ },
370
+ meterGroup: {
371
+ label: 'Thước đo',
372
+ },
373
+ knob: {
374
+ label: 'Giá trị',
375
+ },
376
+ slider: {
377
+ label: 'Giá trị',
378
+ lower: 'Giá trị dưới',
379
+ upper: 'Giá trị trên',
380
+ },
381
+ speedDial: {
382
+ label: 'Thao tác',
383
+ },
384
+ statistic: {
385
+ delta: '{{value}}{{suffix}}',
386
+ deltaSuffix: '%',
387
+ },
388
+ result: {
389
+ notFound: 'Rất tiếc, trang bạn truy cập không tồn tại.',
390
+ forbidden: 'Rất tiếc, bạn không có quyền truy cập trang này.',
391
+ serverError: 'Rất tiếc, đã xảy ra lỗi.',
392
+ },
393
+ date: {
394
+ months: {
395
+ jan: 'Tháng 1',
396
+ feb: 'Tháng 2',
397
+ mar: 'Tháng 3',
398
+ apr: 'Tháng 4',
399
+ may: 'Tháng 5',
400
+ jun: 'Tháng 6',
401
+ jul: 'Tháng 7',
402
+ aug: 'Tháng 8',
403
+ sep: 'Tháng 9',
404
+ oct: 'Tháng 10',
405
+ nov: 'Tháng 11',
406
+ dec: 'Tháng 12',
407
+ },
408
+ },
409
+ };
410
+
411
+ /**
412
+ * Generated bundle index. Do not edit.
413
+ */
414
+
415
+ export { wrVi };
416
+ //# sourceMappingURL=ngwr-i18n-vi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngwr-i18n-vi.mjs","sources":["../../../projects/lib/i18n/vi/public-api.ts","../../../projects/lib/i18n/vi/ngwr-i18n-vi.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Vietnamese catalog for ngwr built-in component strings. */\nexport const wrVi: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Hủy',\n close: 'Đóng',\n confirm: 'Xác nhận',\n delete: 'Xóa',\n save: 'Lưu',\n edit: 'Sửa',\n add: 'Thêm',\n remove: 'Gỡ bỏ',\n clear: 'Xóa hết',\n search: 'Tìm kiếm',\n loading: 'Đang tải…',\n select: 'Chọn',\n next: 'Tiếp theo',\n previous: 'Trước',\n back: 'Quay lại',\n today: 'Hôm nay',\n yesterday: 'Hôm qua',\n tomorrow: 'Ngày mai',\n of: 'trong số',\n },\n pagination: {\n prev: 'Trang trước',\n next: 'Trang sau',\n itemsPerPage: 'Số mục mỗi trang',\n perPage: '{{size}} / trang',\n goToPage: 'Đến trang {{page}}',\n label: 'Phân trang',\n pageOf: 'Trang {{current}} trên {{total}}',\n range: '{{from}}–{{to}} trong số {{total}}',\n compact: '{{current}} / {{total}}',\n },\n table: {\n empty: 'Không có dữ liệu',\n loading: 'Đang tải…',\n sort: 'Sắp xếp cột',\n filter: 'Lọc cột',\n selectAll: 'Chọn tất cả hàng',\n selectRow: 'Chọn hàng',\n expandRow: 'Hiện/ẩn chi tiết hàng',\n toggleRow: 'Hiện/ẩn hàng con',\n selectGroup: 'Chọn nhóm',\n toggleGroup: 'Mở/thu gọn nhóm',\n noMatches: 'Không có kết quả phù hợp',\n search: 'Tìm kiếm',\n reset: 'Đặt lại',\n },\n eventCalendar: {\n today: 'Hôm nay',\n previous: 'Trước',\n next: 'Sau',\n month: 'Tháng',\n week: 'Tuần',\n day: 'Ngày',\n time: 'Giờ',\n allDay: 'Cả ngày',\n label: 'Lịch',\n more: '+{{count}} nữa',\n // Tiếng Việt viết “tháng 3 năm 2026”, không phải “tháng 3 2026” — chỗ đặt\n // chữ “năm” chính là phần phải dịch ở đây, giống như ja-JP viết 2026年3月.\n header: '{{month}} năm {{year}}',\n range: '{{from}} – {{to}}',\n chipLabel: '{{title}}, {{time}}',\n slotLabel: '{{time}} — {{date}}',\n allDayCellLabel: '{{label}} — {{date}}',\n },\n tour: {\n next: 'Tiếp theo',\n back: 'Quay lại',\n done: 'Xong',\n skip: 'Bỏ qua',\n progress: 'Bước {{current}} trên {{total}}',\n },\n splitter: {\n divider: 'Đổi kích thước khung',\n },\n stepper: {\n optional: 'tùy chọn',\n },\n transfer: {\n source: 'Có sẵn',\n target: 'Đã chọn',\n search: 'Tìm kiếm',\n empty: 'Trống',\n selectAll: 'Chọn tất cả',\n toTarget: 'Chuyển sang danh sách đã chọn',\n toSource: 'Chuyển về danh sách có sẵn',\n count: '{{checked}} / {{total}}',\n },\n form: {\n optional: 'tùy chọn',\n },\n validation: {\n required: 'Trường này là bắt buộc.',\n requiredTrue: 'Cần đánh dấu vào ô này.',\n email: 'Nhập địa chỉ email hợp lệ.',\n minlength: 'Nhập ít nhất {{requiredLength}} ký tự.',\n maxlength: 'Nhập tối đa {{requiredLength}} ký tự.',\n min: 'Nhập {{min}} trở lên.',\n max: 'Nhập {{max}} trở xuống.',\n pattern: 'Giá trị không đúng định dạng.',\n noWhitespace: 'Giá trị không được chứa dấu cách.',\n hexColor: 'Nhập mã màu hex, ví dụ #1a2b3c.',\n url: 'Nhập URL hợp lệ.',\n cardNumber: 'Nhập số thẻ hợp lệ.',\n cvc: 'Nhập mã bảo mật {{length}} chữ số.',\n iban: 'Nhập số IBAN hợp lệ.',\n match: 'Hai giá trị không khớp nhau.',\n matchFields: 'Các trường này không khớp nhau.',\n oneOf: 'Chọn một trong các giá trị cho phép.',\n minDate: 'Chọn ngày muộn hơn.',\n maxDate: 'Chọn ngày sớm hơn.',\n },\n select: {\n label: 'Chọn',\n placeholder: 'Chọn…',\n empty: 'Không có lựa chọn',\n clearSelection: 'Xóa lựa chọn',\n removeItem: 'Xóa {{label}}',\n noResults: 'Không có kết quả',\n loading: 'Đang tải…',\n more: '+{{count}} nữa',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'Mở rộng',\n collapse: 'Thu gọn',\n placeholder: 'Chọn…',\n clearSelection: 'Xóa lựa chọn',\n removeItem: 'Xóa {{label}}',\n more: '+{{count}} nữa',\n },\n commandPalette: {\n label: 'Bảng lệnh',\n placeholder: 'Nhập lệnh hoặc tìm kiếm…',\n noResults: 'Không có kết quả',\n loading: 'Đang tìm…',\n escHint: 'esc',\n },\n empty: {\n noData: 'Không có dữ liệu',\n },\n fileUpload: {\n browse: 'Nhấn để chọn tệp',\n dropZone: 'hoặc kéo thả tệp vào đây',\n dropZoneLabel: 'Vùng tải tệp lên — nhấn hoặc kéo thả tệp',\n removeFile: 'Xóa tệp',\n invalid: 'Loại tệp không được hỗ trợ',\n tooBig: 'Tệp quá lớn',\n size: '{{value}} {{unit}}',\n unitByte: 'B',\n unitKb: 'KB',\n unitMb: 'MB',\n unitGb: 'GB',\n unitTb: 'TB',\n },\n popconfirm: {\n label: 'Xác nhận hành động',\n confirm: 'Xác nhận',\n cancel: 'Hủy',\n },\n toast: {\n region: 'Thông báo',\n close: 'Đóng',\n copy: 'Sao chép',\n copied: 'Đã sao chép',\n closeAll: 'Đóng tất cả',\n },\n input: {\n showPassword: 'Hiện mật khẩu',\n hidePassword: 'Ẩn mật khẩu',\n },\n inputNumber: {\n increment: 'Tăng',\n decrement: 'Giảm',\n },\n inputOtp: {\n label: 'Mã xác minh',\n digit: 'Chữ số {{index}}',\n character: 'Ký tự {{index}}',\n },\n anchor: {\n label: 'Mục lục',\n },\n avatar: {\n alt: 'Ảnh đại diện',\n },\n backTop: {\n label: 'Lên đầu trang',\n },\n breadcrumbs: {\n label: 'Đường dẫn trang',\n },\n burger: {\n label: 'Mở/đóng menu',\n },\n calendar: {\n prevMonth: 'Tháng trước',\n nextMonth: 'Tháng sau',\n prevYear: 'Năm trước',\n nextYear: 'Năm sau',\n // The month / year pickers are `role=\"listbox\"`, and a listbox owes a\n // name — without one a screen reader announces the control as nothing at\n // all. Caught by `check:state-a11y` once a state finally opened the view.\n monthList: 'Các tháng',\n yearList: 'Các năm',\n // “12 năm trước” đọc ra thành “12 years ago” chứ không phải “previous 12\n // years”, nên hai nút này phải nói rõ là trước đó / tiếp theo.\n prevYears: '12 năm trước đó',\n nextYears: '12 năm tiếp theo',\n header: '{{month}} năm {{year}}',\n yearRange: '{{from}} – {{to}}',\n dayLabel: '{{weekday}}, {{date}}',\n },\n imageCropper: {\n empty: 'Không có ảnh',\n window: 'Vùng cắt',\n keyHelp:\n 'Các phím mũi tên di chuyển vùng cắt. Giữ Alt cùng phím mũi tên để đổi kích thước, giữ Shift để bước nhảy lớn hơn. ' +\n 'Vùng cắt được đọc theo thứ tự lề trái, lề trên, chiều rộng và chiều cao, tính bằng pixel của ảnh.',\n },\n sortableList: {\n keyHelp:\n 'Nhấn phím cách để nhấc mục này lên, rồi dùng các phím mũi tên để di chuyển. ' +\n 'Nhấn phím cách lần nữa để thả, hoặc nhấn Escape để trả về chỗ cũ.',\n grabbed: 'Đã nhấc. {{index}} trên {{total}}.',\n moved: '{{index}} trên {{total}}.',\n dropped: 'Đã thả. {{index}} trên {{total}}.',\n cancelled: 'Đã hủy di chuyển.',\n },\n colorPicker: {\n area: 'Độ bão hòa và độ sáng, {{saturation}}% và {{brightness}}%',\n hue: 'Tông màu',\n alpha: 'Độ mờ',\n formatHex: 'HEX',\n formatRgb: 'RGB',\n formatHsl: 'HSL',\n channelHex: 'HEX',\n channelRed: 'R',\n channelGreen: 'G',\n channelBlue: 'B',\n channelHue: 'H',\n channelSaturation: 'S%',\n channelLightness: 'L%',\n channelAlpha: 'A%',\n },\n calendarHeatmap: {\n label: 'Bản đồ nhiệt theo lịch',\n },\n lineChart: {\n label: 'Biểu đồ đường',\n thousands: '{{value}} N',\n },\n donutChart: {\n label: 'Biểu đồ vành khuyên',\n },\n compare: {\n label: 'Thanh trượt so sánh',\n },\n // Hai giá trị `roledescription` được đọc THAY CHO tên vai trò, nên chúng là danh\n // từ viết thường — “băng chuyền”, “trang chiếu” — chứ không phải nhãn viết hoa\n // như các chuỗi phía trên.\n carousel: {\n label: 'Băng chuyền',\n goToSlide: 'Đến trang chiếu {{index}}',\n prev: 'Trang chiếu trước',\n next: 'Trang chiếu sau',\n pagination: 'Phân trang băng chuyền',\n roledescription: 'băng chuyền',\n slideRoledescription: 'trang chiếu',\n },\n actionSheet: {\n label: 'Thao tác',\n },\n alert: {\n close: 'Đóng cảnh báo',\n },\n qr: {\n label: 'Mã QR',\n },\n image: {\n viewer: 'Xem trước ảnh',\n open: 'Mở xem trước',\n close: 'Đóng xem trước',\n },\n window: {\n close: 'Đóng',\n minimize: 'Thu nhỏ',\n maximize: 'Phóng to',\n restore: 'Khôi phục',\n restoreDown: 'Khôi phục kích thước',\n restoreWindow: 'Khôi phục {{title}}',\n closeWindow: 'Đóng cửa sổ',\n untitled: 'Không có tiêu đề',\n taskbar: 'Cửa sổ đã thu nhỏ',\n },\n dialog: {\n close: 'Đóng hộp thoại',\n },\n // Cố ý chung chung: bảng popover không có tên gọi phổ quát, còn `role=\"dialog\"`\n // không có tên thì hoàn toàn không được đọc lên. Ghi đè cho từng trường hợp\n // bằng `[ariaLabel]`.\n popover: {\n label: 'Bảng bật lên',\n },\n markdown: {\n copy: 'Sao chép mã',\n copied: 'Đã sao chép',\n taskDone: 'Đã xong:',\n taskTodo: 'Chưa xong:',\n },\n // Danh từ đứng trước con số — “Số kết quả phù hợp: 1” vẫn đọc đúng, vì tiếng Việt\n // không đổi dạng từ theo số lượng và bộ nội suy cũng không có luật số nhiều.\n marquee: {\n label: 'Dòng chữ chạy',\n link: 'liên kết',\n },\n mention: {\n listbox: 'Danh sách nhắc đến',\n available: 'Số kết quả phù hợp: {{count}}',\n inserted: 'Đã chèn: {{label}}',\n },\n drawer: {\n close: 'Đóng bảng trượt',\n },\n datePicker: {\n open: 'Mở lịch',\n openTime: 'Mở bộ chọn giờ',\n openDateTime: 'Mở bộ chọn ngày và giờ',\n openRange: 'Mở lịch chọn khoảng ngày',\n panel: 'Chọn ngày',\n panelTime: 'Chọn giờ',\n panelDateTime: 'Chọn ngày và giờ',\n panelRange: 'Chọn khoảng ngày',\n panelRangeDateTime: 'Chọn khoảng ngày và giờ',\n rangeStart: 'Ngày bắt đầu',\n rangeEnd: 'Ngày kết thúc',\n startTime: 'Giờ bắt đầu',\n endTime: 'Giờ kết thúc',\n hours: 'Giờ',\n minutes: 'Phút',\n seconds: 'Giây',\n incrementHours: 'Tăng giờ',\n decrementHours: 'Giảm giờ',\n incrementMinutes: 'Tăng phút',\n decrementMinutes: 'Giảm phút',\n incrementSeconds: 'Tăng giây',\n decrementSeconds: 'Giảm giây',\n toggleAmPm: 'Chuyển SA / CH',\n am: 'SA',\n pm: 'CH',\n },\n sidebar: {\n label: 'Thanh bên',\n },\n spinner: {\n label: 'Đang tải',\n },\n rating: {\n label: 'Đánh giá',\n },\n gauge: {\n label: 'Đồng hồ đo',\n },\n progress: {\n label: 'Tiến trình',\n },\n meterGroup: {\n label: 'Thước đo',\n },\n knob: {\n label: 'Giá trị',\n },\n slider: {\n label: 'Giá trị',\n lower: 'Giá trị dưới',\n upper: 'Giá trị trên',\n },\n speedDial: {\n label: 'Thao tác',\n },\n statistic: {\n delta: '{{value}}{{suffix}}',\n deltaSuffix: '%',\n },\n result: {\n notFound: 'Rất tiếc, trang bạn truy cập không tồn tại.',\n forbidden: 'Rất tiếc, bạn không có quyền truy cập trang này.',\n serverError: 'Rất tiếc, đã xảy ra lỗi.',\n },\n date: {\n months: {\n jan: 'Tháng 1',\n feb: 'Tháng 2',\n mar: 'Tháng 3',\n apr: 'Tháng 4',\n may: 'Tháng 5',\n jun: 'Tháng 6',\n jul: 'Tháng 7',\n aug: 'Tháng 8',\n sep: 'Tháng 9',\n oct: 'Tháng 10',\n nov: 'Tháng 11',\n dec: 'Tháng 12',\n },\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}