@muxima-ui/core 1.4.0 → 1.5.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 +11 -0
- package/fesm2022/muxima-ui-core-alert.mjs +5 -3
- package/fesm2022/muxima-ui-core-alert.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-breadcrumb.mjs +5 -3
- package/fesm2022/muxima-ui-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-carousel.mjs +19 -17
- package/fesm2022/muxima-ui-core-carousel.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-chips.mjs +19 -14
- package/fesm2022/muxima-ui-core-chips.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-clipboard.mjs +10 -6
- package/fesm2022/muxima-ui-core-clipboard.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-color-picker.mjs +53 -50
- package/fesm2022/muxima-ui-core-color-picker.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-combobox.mjs +15 -12
- package/fesm2022/muxima-ui-core-combobox.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-command.mjs +21 -16
- package/fesm2022/muxima-ui-core-command.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-data-grid.mjs +50 -52
- package/fesm2022/muxima-ui-core-data-grid.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-date-picker.mjs +97 -69
- package/fesm2022/muxima-ui-core-date-picker.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-editor.mjs +25 -19
- package/fesm2022/muxima-ui-core-editor.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-file-upload.mjs +30 -25
- package/fesm2022/muxima-ui-core-file-upload.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-i18n.mjs +550 -0
- package/fesm2022/muxima-ui-core-i18n.mjs.map +1 -0
- package/fesm2022/muxima-ui-core-image-cropper.mjs +27 -24
- package/fesm2022/muxima-ui-core-image-cropper.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-kanban.mjs +22 -19
- package/fesm2022/muxima-ui-core-kanban.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-notification-center.mjs +41 -36
- package/fesm2022/muxima-ui-core-notification-center.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-pagination.mjs +29 -26
- package/fesm2022/muxima-ui-core-pagination.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-progress.mjs +5 -3
- package/fesm2022/muxima-ui-core-progress.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-rating.mjs +12 -8
- package/fesm2022/muxima-ui-core-rating.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-select.mjs +14 -11
- package/fesm2022/muxima-ui-core-select.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-sidebar.mjs +10 -7
- package/fesm2022/muxima-ui-core-sidebar.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-slider.mjs +8 -6
- package/fesm2022/muxima-ui-core-slider.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-stepper.mjs +5 -3
- package/fesm2022/muxima-ui-core-stepper.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-table.mjs +4 -4
- package/fesm2022/muxima-ui-core-table.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-time-picker.mjs +7 -5
- package/fesm2022/muxima-ui-core-time-picker.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-toast.mjs +8 -5
- package/fesm2022/muxima-ui-core-toast.mjs.map +1 -1
- package/fesm2022/muxima-ui-core-tour.mjs +10 -11
- package/fesm2022/muxima-ui-core-tour.mjs.map +1 -1
- package/fesm2022/muxima-ui-core.mjs +1 -1
- package/fesm2022/muxima-ui-core.mjs.map +1 -1
- package/package.json +6 -2
- package/styles/components/data-grid.css +1 -0
- package/types/muxima-ui-core-alert.d.ts +3 -1
- package/types/muxima-ui-core-breadcrumb.d.ts +6 -4
- package/types/muxima-ui-core-carousel.d.ts +4 -2
- package/types/muxima-ui-core-chips.d.ts +23 -3
- package/types/muxima-ui-core-clipboard.d.ts +6 -3
- package/types/muxima-ui-core-color-picker.d.ts +40 -7
- package/types/muxima-ui-core-combobox.d.ts +6 -3
- package/types/muxima-ui-core-command.d.ts +7 -3
- package/types/muxima-ui-core-data-grid.d.ts +31 -11
- package/types/muxima-ui-core-date-picker.d.ts +59 -14
- package/types/muxima-ui-core-editor.d.ts +13 -2
- package/types/muxima-ui-core-file-upload.d.ts +22 -6
- package/types/muxima-ui-core-i18n.d.ts +322 -0
- package/types/muxima-ui-core-image-cropper.d.ts +19 -6
- package/types/muxima-ui-core-kanban.d.ts +16 -3
- package/types/muxima-ui-core-notification-center.d.ts +30 -8
- package/types/muxima-ui-core-pagination.d.ts +16 -1
- package/types/muxima-ui-core-progress.d.ts +10 -8
- package/types/muxima-ui-core-rating.d.ts +6 -2
- package/types/muxima-ui-core-select.d.ts +6 -3
- package/types/muxima-ui-core-sidebar.d.ts +6 -3
- package/types/muxima-ui-core-slider.d.ts +4 -2
- package/types/muxima-ui-core-stepper.d.ts +10 -8
- package/types/muxima-ui-core-table.d.ts +3 -3
- package/types/muxima-ui-core-time-picker.d.ts +3 -1
- package/types/muxima-ui-core-toast.d.ts +3 -0
- package/types/muxima-ui-core-tour.d.ts +6 -1
- package/types/muxima-ui-core.d.ts +1 -1
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, signal, computed, Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
const plural$1 = (n, one, many) => (n === 1 ? one : many);
|
|
5
|
+
/** Português (Angola). */
|
|
6
|
+
const MX_MESSAGES_PT = {
|
|
7
|
+
intlLocale: 'pt-AO',
|
|
8
|
+
dateOrder: 'dmy',
|
|
9
|
+
firstDayOfWeek: 1,
|
|
10
|
+
alert: { close: 'Fechar aviso' },
|
|
11
|
+
breadcrumb: { label: 'Localização' },
|
|
12
|
+
calendar: {
|
|
13
|
+
previousMonth: (m) => `Mês anterior, ${m}`,
|
|
14
|
+
nextMonth: (m) => `Mês seguinte, ${m}`,
|
|
15
|
+
rangeStart: 'início do intervalo',
|
|
16
|
+
rangeEnd: 'fim do intervalo',
|
|
17
|
+
rangeStartEnd: 'início e fim do intervalo',
|
|
18
|
+
rangeHint: (s, e) => `Intervalo de ${s} a ${e}.`,
|
|
19
|
+
rangeStartHint: (s) => `Início ${s}. Escolhe a data de fim.`,
|
|
20
|
+
},
|
|
21
|
+
carousel: {
|
|
22
|
+
carousel: 'carrossel',
|
|
23
|
+
slide: 'diapositivo',
|
|
24
|
+
previous: 'Diapositivo anterior',
|
|
25
|
+
next: 'Diapositivo seguinte',
|
|
26
|
+
choose: 'Escolher diapositivo',
|
|
27
|
+
goTo: (n) => `Diapositivo ${n}`,
|
|
28
|
+
position: (n, total) => `${n} de ${total}`,
|
|
29
|
+
play: 'Iniciar a rotação automática',
|
|
30
|
+
pause: 'Parar a rotação automática',
|
|
31
|
+
},
|
|
32
|
+
chips: {
|
|
33
|
+
remove: 'Remover',
|
|
34
|
+
list: 'Etiquetas',
|
|
35
|
+
help: 'Enter para acrescentar. Backspace no campo vazio vai para a última etiqueta.',
|
|
36
|
+
added: (t) => `${t} acrescentado.`,
|
|
37
|
+
removed: (t) => `${t} removido.`,
|
|
38
|
+
max: (n) => `Máximo de ${n} etiquetas.`,
|
|
39
|
+
duplicate: (t) => `${t} já está na lista.`,
|
|
40
|
+
},
|
|
41
|
+
clipboard: { copy: 'Copiar', copied: 'Copiado', failed: 'Não foi possível copiar' },
|
|
42
|
+
colorPicker: {
|
|
43
|
+
choose: 'Escolher cor',
|
|
44
|
+
change: (name, hex) => `Mudar cor, ${name}, ${hex}`,
|
|
45
|
+
area: 'Saturação e brilho',
|
|
46
|
+
hue: 'Matiz',
|
|
47
|
+
alpha: 'Opacidade',
|
|
48
|
+
swatches: 'Cores sugeridas',
|
|
49
|
+
eyeDropper: 'Escolher uma cor do ecrã',
|
|
50
|
+
hex: 'Hex',
|
|
51
|
+
areaValue: (s, v, name) => `Saturação ${s}%, brilho ${v}%, ${name}`,
|
|
52
|
+
hueValue: (deg, name) => `${deg} graus, ${name}`,
|
|
53
|
+
names: {
|
|
54
|
+
black: 'preto',
|
|
55
|
+
white: 'branco',
|
|
56
|
+
lightGray: 'cinzento claro',
|
|
57
|
+
gray: 'cinzento',
|
|
58
|
+
darkGray: 'cinzento escuro',
|
|
59
|
+
brown: 'castanho',
|
|
60
|
+
red: 'vermelho',
|
|
61
|
+
orange: 'laranja',
|
|
62
|
+
yellow: 'amarelo',
|
|
63
|
+
lime: 'verde-lima',
|
|
64
|
+
green: 'verde',
|
|
65
|
+
teal: 'azul-petróleo',
|
|
66
|
+
blue: 'azul',
|
|
67
|
+
purple: 'roxo',
|
|
68
|
+
magenta: 'magenta',
|
|
69
|
+
tone: (name, tone) => `${name} ${tone === 'dark' ? 'escuro' : 'claro'}`,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
combobox: { placeholder: 'Pesquisar', empty: 'Sem resultados', loading: 'A pesquisar...' },
|
|
73
|
+
command: {
|
|
74
|
+
placeholder: 'Pesquisar...',
|
|
75
|
+
label: 'Pesquisar',
|
|
76
|
+
empty: 'Nada encontrado para',
|
|
77
|
+
results: (n) => `${n} ${plural$1(n, 'resultado', 'resultados')}`,
|
|
78
|
+
},
|
|
79
|
+
dataGrid: {
|
|
80
|
+
label: 'Tabela de dados',
|
|
81
|
+
empty: 'Sem resultados.',
|
|
82
|
+
loading: 'A carregar...',
|
|
83
|
+
columns: 'Colunas',
|
|
84
|
+
filter: 'Filtrar',
|
|
85
|
+
all: 'Todos',
|
|
86
|
+
selectAll: 'Seleccionar todas as linhas',
|
|
87
|
+
selectRow: 'Seleccionar',
|
|
88
|
+
selection: 'Selecção',
|
|
89
|
+
resizeHint: 'Alt e setas esquerda e direita mudam a largura da coluna.',
|
|
90
|
+
numberFilter: (f, c) => `${f} ${c}, aceita maior que, menor que e intervalos`,
|
|
91
|
+
rows: (n, count) => `${n} ${plural$1(count, 'linha', 'linhas')}`,
|
|
92
|
+
of: (total) => ` de ${total}`,
|
|
93
|
+
selected: (n, count) => `${n} ${plural$1(count, 'seleccionada', 'seleccionadas')}`,
|
|
94
|
+
sorted: (c, d) => `Ordenado por ${c}, ${d === 'asc' ? 'ascendente' : 'descendente'}`,
|
|
95
|
+
unsorted: 'Sem ordenação',
|
|
96
|
+
width: (c, px) => `${c}, ${px} píxeis`,
|
|
97
|
+
},
|
|
98
|
+
datePicker: {
|
|
99
|
+
placeholder: 'dd/mm/aaaa',
|
|
100
|
+
choose: 'Escolher data',
|
|
101
|
+
change: (d) => `Mudar data, ${d}`,
|
|
102
|
+
},
|
|
103
|
+
dateRangePicker: {
|
|
104
|
+
start: 'início',
|
|
105
|
+
end: 'fim',
|
|
106
|
+
choose: 'Escolher intervalo',
|
|
107
|
+
change: (s, e) => `Mudar intervalo, ${s} a ${e}`,
|
|
108
|
+
presets: 'Atalhos',
|
|
109
|
+
last7Days: 'Últimos 7 dias',
|
|
110
|
+
last30Days: 'Últimos 30 dias',
|
|
111
|
+
thisMonth: 'Este mês',
|
|
112
|
+
lastMonth: 'Mês passado',
|
|
113
|
+
},
|
|
114
|
+
editor: {
|
|
115
|
+
toolbar: 'Formatação',
|
|
116
|
+
link: 'Endereço da ligação',
|
|
117
|
+
apply: 'Aplicar',
|
|
118
|
+
remove: 'Remover',
|
|
119
|
+
cancel: 'Cancelar',
|
|
120
|
+
characters: 'caracteres',
|
|
121
|
+
tools: {
|
|
122
|
+
bold: 'Negrito',
|
|
123
|
+
italic: 'Itálico',
|
|
124
|
+
underline: 'Sublinhado',
|
|
125
|
+
strike: 'Riscado',
|
|
126
|
+
code: 'Código',
|
|
127
|
+
heading2: 'Título',
|
|
128
|
+
heading3: 'Subtítulo',
|
|
129
|
+
paragraph: 'Parágrafo',
|
|
130
|
+
bulletList: 'Lista',
|
|
131
|
+
orderedList: 'Lista numerada',
|
|
132
|
+
blockquote: 'Citação',
|
|
133
|
+
link: 'Ligação',
|
|
134
|
+
undo: 'Anular',
|
|
135
|
+
redo: 'Refazer',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
fileUpload: {
|
|
139
|
+
drop: 'Arrasta os ficheiros para aqui ou',
|
|
140
|
+
browse: 'escolhe no computador',
|
|
141
|
+
list: 'Ficheiros escolhidos',
|
|
142
|
+
remove: 'Remover',
|
|
143
|
+
done: 'Enviado',
|
|
144
|
+
uploading: (name) => `A enviar ${name}`,
|
|
145
|
+
rejectedType: (name) => `${name}: tipo de ficheiro não aceite.`,
|
|
146
|
+
rejectedSize: (name, size, max) => `${name}: tem ${size}, o máximo é ${max}.`,
|
|
147
|
+
rejectedCount: (name, max) => `${name}: só podes juntar ${max} ${plural$1(max, 'ficheiro', 'ficheiros')}.`,
|
|
148
|
+
addedOne: (name) => `${name} juntado.`,
|
|
149
|
+
addedMany: (n) => `${n} ficheiros juntados.`,
|
|
150
|
+
removed: (name) => `${name} removido.`,
|
|
151
|
+
},
|
|
152
|
+
imageCropper: {
|
|
153
|
+
alt: 'Imagem a recortar',
|
|
154
|
+
help: 'Setas movem a área. Alt e setas mudam o tamanho. Shift dá passos maiores.',
|
|
155
|
+
zoom: 'Zoom',
|
|
156
|
+
rotateLeft: 'Rodar para a esquerda',
|
|
157
|
+
rotateRight: 'Rodar para a direita',
|
|
158
|
+
reset: 'Repor',
|
|
159
|
+
area: 'área de recorte',
|
|
160
|
+
size: (w, h) => `${w} por ${h} píxeis`,
|
|
161
|
+
position: (w, h, x, y) => `${w} por ${h} píxeis, a ${x} da esquerda e ${y} do topo`,
|
|
162
|
+
rotated: (deg) => `Rodada ${deg} graus`,
|
|
163
|
+
},
|
|
164
|
+
kanban: {
|
|
165
|
+
label: 'Quadro',
|
|
166
|
+
empty: 'Sem cartões',
|
|
167
|
+
help: 'Espaço para agarrar. Setas para mover. Espaço para largar, Esc para cancelar.',
|
|
168
|
+
cards: (n, limit) => plural$1(n, 'cartão', 'cartões') + (limit ? `, máximo ${limit}` : ''),
|
|
169
|
+
grabbed: (card) => `${card}, agarrado`,
|
|
170
|
+
position: (col, p, total) => `${col}, posição ${p} de ${total}`,
|
|
171
|
+
pickedUp: (card, where) => `${card} agarrado. ${where}.`,
|
|
172
|
+
dropped: (card, where) => `${card} largado. ${where}.`,
|
|
173
|
+
cancelled: (card, where) => `Movimento cancelado. ${card} voltou a ${where}.`,
|
|
174
|
+
full: (col, limit) => `${col} está cheia, máximo ${limit}.`,
|
|
175
|
+
},
|
|
176
|
+
notifications: {
|
|
177
|
+
title: 'Notificações',
|
|
178
|
+
markAll: 'Marcar todas como lidas',
|
|
179
|
+
empty: 'Sem notificações.',
|
|
180
|
+
emptyUnread: 'Está tudo lido.',
|
|
181
|
+
filter: 'Mostrar',
|
|
182
|
+
all: 'Todas',
|
|
183
|
+
unread: 'Por ler',
|
|
184
|
+
unreadPrefix: 'Por ler: ',
|
|
185
|
+
unreadCount: () => 'por ler',
|
|
186
|
+
markRead: (t) => `Marcar como lida: ${t}`,
|
|
187
|
+
remove: (t) => `Remover: ${t}`,
|
|
188
|
+
removed: (t) => `${t} removida.`,
|
|
189
|
+
newOne: (t) => `Nova notificação: ${t}`,
|
|
190
|
+
newMany: (n) => `${n} notificações novas`,
|
|
191
|
+
now: 'agora',
|
|
192
|
+
bellCount: (label, n) => `${label}, ${n} por ler`,
|
|
193
|
+
},
|
|
194
|
+
pagination: {
|
|
195
|
+
label: 'Paginação',
|
|
196
|
+
rowsPerPage: 'Linhas por página',
|
|
197
|
+
first: 'Primeira página',
|
|
198
|
+
previous: 'Página anterior',
|
|
199
|
+
previousShort: 'Anterior',
|
|
200
|
+
next: 'Página seguinte',
|
|
201
|
+
nextShort: 'Seguinte',
|
|
202
|
+
last: 'Última página',
|
|
203
|
+
page: (n) => `Página ${n}`,
|
|
204
|
+
pageOf: (c, t) => `Página ${c} de ${t}`,
|
|
205
|
+
range: (from, to, total) => `${from}–${to} de ${total}`,
|
|
206
|
+
noResults: '0 resultados',
|
|
207
|
+
},
|
|
208
|
+
progress: { label: 'A carregar' },
|
|
209
|
+
rangeSlider: { low: 'mínimo', high: 'máximo' },
|
|
210
|
+
rating: {
|
|
211
|
+
label: 'Avaliação',
|
|
212
|
+
star: (n) => `${n} ${plural$1(n, 'estrela', 'estrelas')}`,
|
|
213
|
+
summary: (v, max) => `${v} de ${max} estrelas`,
|
|
214
|
+
},
|
|
215
|
+
select: { placeholder: 'Seleccionar', empty: 'Sem opções', loading: 'A carregar...' },
|
|
216
|
+
sidebar: { label: 'Principal', collapse: 'Recolher menu', expand: 'Expandir menu' },
|
|
217
|
+
stepper: { complete: 'concluído' },
|
|
218
|
+
timePicker: { placeholder: 'hh:mm', label: 'Horas' },
|
|
219
|
+
toast: {
|
|
220
|
+
region: 'Notificações',
|
|
221
|
+
close: 'Fechar notificação',
|
|
222
|
+
action: (label) => `Acção disponível: ${label}`,
|
|
223
|
+
},
|
|
224
|
+
tour: {
|
|
225
|
+
next: 'Seguinte',
|
|
226
|
+
previous: 'Anterior',
|
|
227
|
+
done: 'Concluir',
|
|
228
|
+
skip: 'Saltar',
|
|
229
|
+
close: 'Fechar a visita guiada',
|
|
230
|
+
progress: (c, t) => `Passo ${c} de ${t}`,
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
const plural = (n, one, many) => (n === 1 ? one : many);
|
|
235
|
+
/** English (United States). */
|
|
236
|
+
const MX_MESSAGES_EN = {
|
|
237
|
+
intlLocale: 'en-US',
|
|
238
|
+
dateOrder: 'mdy',
|
|
239
|
+
firstDayOfWeek: 0,
|
|
240
|
+
alert: { close: 'Dismiss alert' },
|
|
241
|
+
breadcrumb: { label: 'Breadcrumb' },
|
|
242
|
+
calendar: {
|
|
243
|
+
previousMonth: (m) => `Previous month, ${m}`,
|
|
244
|
+
nextMonth: (m) => `Next month, ${m}`,
|
|
245
|
+
rangeStart: 'range start',
|
|
246
|
+
rangeEnd: 'range end',
|
|
247
|
+
rangeStartEnd: 'range start and end',
|
|
248
|
+
rangeHint: (s, e) => `Range from ${s} to ${e}.`,
|
|
249
|
+
rangeStartHint: (s) => `Start ${s}. Choose the end date.`,
|
|
250
|
+
},
|
|
251
|
+
carousel: {
|
|
252
|
+
carousel: 'carousel',
|
|
253
|
+
slide: 'slide',
|
|
254
|
+
previous: 'Previous slide',
|
|
255
|
+
next: 'Next slide',
|
|
256
|
+
choose: 'Choose slide',
|
|
257
|
+
goTo: (n) => `Slide ${n}`,
|
|
258
|
+
position: (n, total) => `${n} of ${total}`,
|
|
259
|
+
play: 'Start automatic rotation',
|
|
260
|
+
pause: 'Stop automatic rotation',
|
|
261
|
+
},
|
|
262
|
+
chips: {
|
|
263
|
+
remove: 'Remove',
|
|
264
|
+
list: 'Tags',
|
|
265
|
+
help: 'Press Enter to add. Backspace in the empty field moves to the last tag.',
|
|
266
|
+
added: (t) => `${t} added.`,
|
|
267
|
+
removed: (t) => `${t} removed.`,
|
|
268
|
+
max: (n) => `Maximum of ${n} tags.`,
|
|
269
|
+
duplicate: (t) => `${t} is already in the list.`,
|
|
270
|
+
},
|
|
271
|
+
clipboard: { copy: 'Copy', copied: 'Copied', failed: 'Could not copy' },
|
|
272
|
+
colorPicker: {
|
|
273
|
+
choose: 'Choose color',
|
|
274
|
+
change: (name, hex) => `Change color, ${name}, ${hex}`,
|
|
275
|
+
area: 'Saturation and brightness',
|
|
276
|
+
hue: 'Hue',
|
|
277
|
+
alpha: 'Opacity',
|
|
278
|
+
swatches: 'Suggested colors',
|
|
279
|
+
eyeDropper: 'Pick a color from the screen',
|
|
280
|
+
hex: 'Hex',
|
|
281
|
+
areaValue: (s, v, name) => `Saturation ${s}%, brightness ${v}%, ${name}`,
|
|
282
|
+
hueValue: (deg, name) => `${deg} degrees, ${name}`,
|
|
283
|
+
names: {
|
|
284
|
+
black: 'black',
|
|
285
|
+
white: 'white',
|
|
286
|
+
lightGray: 'light gray',
|
|
287
|
+
gray: 'gray',
|
|
288
|
+
darkGray: 'dark gray',
|
|
289
|
+
brown: 'brown',
|
|
290
|
+
red: 'red',
|
|
291
|
+
orange: 'orange',
|
|
292
|
+
yellow: 'yellow',
|
|
293
|
+
lime: 'lime',
|
|
294
|
+
green: 'green',
|
|
295
|
+
teal: 'teal',
|
|
296
|
+
blue: 'blue',
|
|
297
|
+
purple: 'purple',
|
|
298
|
+
magenta: 'magenta',
|
|
299
|
+
tone: (name, tone) => `${tone} ${name}`,
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
combobox: { placeholder: 'Search', empty: 'No results', loading: 'Searching...' },
|
|
303
|
+
command: {
|
|
304
|
+
placeholder: 'Search...',
|
|
305
|
+
label: 'Search',
|
|
306
|
+
empty: 'Nothing found for',
|
|
307
|
+
results: (n) => `${n} ${plural(n, 'result', 'results')}`,
|
|
308
|
+
},
|
|
309
|
+
dataGrid: {
|
|
310
|
+
label: 'Data table',
|
|
311
|
+
empty: 'No results.',
|
|
312
|
+
loading: 'Loading...',
|
|
313
|
+
columns: 'Columns',
|
|
314
|
+
filter: 'Filter',
|
|
315
|
+
all: 'All',
|
|
316
|
+
selectAll: 'Select all rows',
|
|
317
|
+
selectRow: 'Select',
|
|
318
|
+
selection: 'Selection',
|
|
319
|
+
resizeHint: 'Alt and the left and right arrows change the column width.',
|
|
320
|
+
numberFilter: (f, c) => `${f} ${c}, accepts greater than, less than and ranges`,
|
|
321
|
+
rows: (n, count) => `${n} ${plural(count, 'row', 'rows')}`,
|
|
322
|
+
of: (total) => ` of ${total}`,
|
|
323
|
+
selected: (n) => `${n} selected`,
|
|
324
|
+
sorted: (c, d) => `Sorted by ${c}, ${d === 'asc' ? 'ascending' : 'descending'}`,
|
|
325
|
+
unsorted: 'Not sorted',
|
|
326
|
+
width: (c, px) => `${c}, ${px} pixels`,
|
|
327
|
+
},
|
|
328
|
+
datePicker: {
|
|
329
|
+
placeholder: 'mm/dd/yyyy',
|
|
330
|
+
choose: 'Choose date',
|
|
331
|
+
change: (d) => `Change date, ${d}`,
|
|
332
|
+
},
|
|
333
|
+
dateRangePicker: {
|
|
334
|
+
start: 'start',
|
|
335
|
+
end: 'end',
|
|
336
|
+
choose: 'Choose range',
|
|
337
|
+
change: (s, e) => `Change range, ${s} to ${e}`,
|
|
338
|
+
presets: 'Shortcuts',
|
|
339
|
+
last7Days: 'Last 7 days',
|
|
340
|
+
last30Days: 'Last 30 days',
|
|
341
|
+
thisMonth: 'This month',
|
|
342
|
+
lastMonth: 'Last month',
|
|
343
|
+
},
|
|
344
|
+
editor: {
|
|
345
|
+
toolbar: 'Formatting',
|
|
346
|
+
link: 'Link address',
|
|
347
|
+
apply: 'Apply',
|
|
348
|
+
remove: 'Remove',
|
|
349
|
+
cancel: 'Cancel',
|
|
350
|
+
characters: 'characters',
|
|
351
|
+
tools: {
|
|
352
|
+
bold: 'Bold',
|
|
353
|
+
italic: 'Italic',
|
|
354
|
+
underline: 'Underline',
|
|
355
|
+
strike: 'Strikethrough',
|
|
356
|
+
code: 'Code',
|
|
357
|
+
heading2: 'Heading',
|
|
358
|
+
heading3: 'Subheading',
|
|
359
|
+
paragraph: 'Paragraph',
|
|
360
|
+
bulletList: 'Bulleted list',
|
|
361
|
+
orderedList: 'Numbered list',
|
|
362
|
+
blockquote: 'Quote',
|
|
363
|
+
link: 'Link',
|
|
364
|
+
undo: 'Undo',
|
|
365
|
+
redo: 'Redo',
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
fileUpload: {
|
|
369
|
+
drop: 'Drag files here or',
|
|
370
|
+
browse: 'browse your computer',
|
|
371
|
+
list: 'Selected files',
|
|
372
|
+
remove: 'Remove',
|
|
373
|
+
done: 'Uploaded',
|
|
374
|
+
uploading: (name) => `Uploading ${name}`,
|
|
375
|
+
rejectedType: (name) => `${name}: file type not accepted.`,
|
|
376
|
+
rejectedSize: (name, size, max) => `${name}: is ${size}, the maximum is ${max}.`,
|
|
377
|
+
rejectedCount: (name, max) => `${name}: you can only add ${max} ${plural(max, 'file', 'files')}.`,
|
|
378
|
+
addedOne: (name) => `${name} added.`,
|
|
379
|
+
addedMany: (n) => `${n} files added.`,
|
|
380
|
+
removed: (name) => `${name} removed.`,
|
|
381
|
+
},
|
|
382
|
+
imageCropper: {
|
|
383
|
+
alt: 'Image to crop',
|
|
384
|
+
help: 'Arrows move the area. Alt and arrows resize it. Shift takes bigger steps.',
|
|
385
|
+
zoom: 'Zoom',
|
|
386
|
+
rotateLeft: 'Rotate left',
|
|
387
|
+
rotateRight: 'Rotate right',
|
|
388
|
+
reset: 'Reset',
|
|
389
|
+
area: 'crop area',
|
|
390
|
+
size: (w, h) => `${w} by ${h} pixels`,
|
|
391
|
+
position: (w, h, x, y) => `${w} by ${h} pixels, ${x} from the left and ${y} from the top`,
|
|
392
|
+
rotated: (deg) => `Rotated ${deg} degrees`,
|
|
393
|
+
},
|
|
394
|
+
kanban: {
|
|
395
|
+
label: 'Board',
|
|
396
|
+
empty: 'No cards',
|
|
397
|
+
help: 'Space to pick up. Arrows to move. Space to drop, Escape to cancel.',
|
|
398
|
+
cards: (n, limit) => plural(n, 'card', 'cards') + (limit ? `, maximum ${limit}` : ''),
|
|
399
|
+
grabbed: (card) => `${card}, picked up`,
|
|
400
|
+
position: (col, p, total) => `${col}, position ${p} of ${total}`,
|
|
401
|
+
pickedUp: (card, where) => `${card} picked up. ${where}.`,
|
|
402
|
+
dropped: (card, where) => `${card} dropped. ${where}.`,
|
|
403
|
+
cancelled: (card, where) => `Move cancelled. ${card} returned to ${where}.`,
|
|
404
|
+
full: (col, limit) => `${col} is full, maximum ${limit}.`,
|
|
405
|
+
},
|
|
406
|
+
notifications: {
|
|
407
|
+
title: 'Notifications',
|
|
408
|
+
markAll: 'Mark all as read',
|
|
409
|
+
empty: 'No notifications.',
|
|
410
|
+
emptyUnread: 'You are all caught up.',
|
|
411
|
+
filter: 'Show',
|
|
412
|
+
all: 'All',
|
|
413
|
+
unread: 'Unread',
|
|
414
|
+
unreadPrefix: 'Unread: ',
|
|
415
|
+
unreadCount: () => 'unread',
|
|
416
|
+
markRead: (t) => `Mark as read: ${t}`,
|
|
417
|
+
remove: (t) => `Remove: ${t}`,
|
|
418
|
+
removed: (t) => `${t} removed.`,
|
|
419
|
+
newOne: (t) => `New notification: ${t}`,
|
|
420
|
+
newMany: (n) => `${n} new notifications`,
|
|
421
|
+
now: 'now',
|
|
422
|
+
bellCount: (label, n) => `${label}, ${n} unread`,
|
|
423
|
+
},
|
|
424
|
+
pagination: {
|
|
425
|
+
label: 'Pagination',
|
|
426
|
+
rowsPerPage: 'Rows per page',
|
|
427
|
+
first: 'First page',
|
|
428
|
+
previous: 'Previous page',
|
|
429
|
+
previousShort: 'Previous',
|
|
430
|
+
next: 'Next page',
|
|
431
|
+
nextShort: 'Next',
|
|
432
|
+
last: 'Last page',
|
|
433
|
+
page: (n) => `Page ${n}`,
|
|
434
|
+
pageOf: (c, t) => `Page ${c} of ${t}`,
|
|
435
|
+
range: (from, to, total) => `${from}–${to} of ${total}`,
|
|
436
|
+
noResults: '0 results',
|
|
437
|
+
},
|
|
438
|
+
progress: { label: 'Loading' },
|
|
439
|
+
rangeSlider: { low: 'minimum', high: 'maximum' },
|
|
440
|
+
rating: {
|
|
441
|
+
label: 'Rating',
|
|
442
|
+
star: (n) => `${n} ${plural(n, 'star', 'stars')}`,
|
|
443
|
+
summary: (v, max) => `${v} of ${max} stars`,
|
|
444
|
+
},
|
|
445
|
+
select: { placeholder: 'Select', empty: 'No options', loading: 'Loading...' },
|
|
446
|
+
sidebar: { label: 'Main', collapse: 'Collapse menu', expand: 'Expand menu' },
|
|
447
|
+
stepper: { complete: 'completed' },
|
|
448
|
+
timePicker: { placeholder: 'hh:mm', label: 'Times' },
|
|
449
|
+
toast: {
|
|
450
|
+
region: 'Notifications',
|
|
451
|
+
close: 'Dismiss notification',
|
|
452
|
+
action: (label) => `Action available: ${label}`,
|
|
453
|
+
},
|
|
454
|
+
tour: {
|
|
455
|
+
next: 'Next',
|
|
456
|
+
previous: 'Back',
|
|
457
|
+
done: 'Done',
|
|
458
|
+
skip: 'Skip',
|
|
459
|
+
close: 'Close the tour',
|
|
460
|
+
progress: (c, t) => `Step ${c} of ${t}`,
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
const MX_I18N_CONFIG = new InjectionToken('MX_I18N_CONFIG');
|
|
465
|
+
const BUILT_IN = { pt: MX_MESSAGES_PT, en: MX_MESSAGES_EN };
|
|
466
|
+
function isPlainObject(v) {
|
|
467
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v) && Object.getPrototypeOf(v) === Object.prototype;
|
|
468
|
+
}
|
|
469
|
+
/** Junta `patch` sobre `base`, objecto a objecto; funções, textos e números substituem. */
|
|
470
|
+
function mxMergeMessages(base, patch) {
|
|
471
|
+
if (!patch)
|
|
472
|
+
return base;
|
|
473
|
+
const out = { ...base };
|
|
474
|
+
for (const [k, v] of Object.entries(patch)) {
|
|
475
|
+
if (v === undefined)
|
|
476
|
+
continue;
|
|
477
|
+
const current = out[k];
|
|
478
|
+
out[k] = isPlainObject(v) && isPlainObject(current) ? mxMergeMessages(current, v) : v;
|
|
479
|
+
}
|
|
480
|
+
return out;
|
|
481
|
+
}
|
|
482
|
+
/** Dicionário incluído para o idioma ("pt-BR" usa "pt"); inglês quando não há. */
|
|
483
|
+
function mxBuiltInMessages(locale) {
|
|
484
|
+
const base = locale.toLowerCase().split(/[-_]/)[0];
|
|
485
|
+
return BUILT_IN[base] ?? MX_MESSAGES_EN;
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Idioma activo e os textos dos componentes. Mudar o idioma com `setLocale`
|
|
489
|
+
* actualiza logo todos os componentes no ecrã.
|
|
490
|
+
*
|
|
491
|
+
* ```ts
|
|
492
|
+
* readonly i18n = inject(MxI18n);
|
|
493
|
+
* this.i18n.setLocale('en');
|
|
494
|
+
* ```
|
|
495
|
+
*/
|
|
496
|
+
class MxI18n {
|
|
497
|
+
config = inject(MX_I18N_CONFIG, { optional: true }) ?? {};
|
|
498
|
+
custom = signal(this.config.messages ?? {}, ...(ngDevMode ? [{ debugName: "custom" }] : /* istanbul ignore next */ []));
|
|
499
|
+
current = signal(this.config.locale ?? 'pt', ...(ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []));
|
|
500
|
+
/** Idioma activo, tal como foi indicado ("pt", "en", "en-GB"...). */
|
|
501
|
+
locale = this.current.asReadonly();
|
|
502
|
+
/** Todos os textos do idioma activo. */
|
|
503
|
+
messages = computed(() => {
|
|
504
|
+
const locale = this.current();
|
|
505
|
+
const custom = this.custom();
|
|
506
|
+
const base = locale.toLowerCase().split(/[-_]/)[0];
|
|
507
|
+
let m = mxBuiltInMessages(locale);
|
|
508
|
+
if (base !== locale)
|
|
509
|
+
m = mxMergeMessages(m, custom[base]);
|
|
510
|
+
return mxMergeMessages(m, custom[locale]);
|
|
511
|
+
}, ...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
512
|
+
/** Locale para Intl (números, datas): "pt-AO", "en-US"... */
|
|
513
|
+
intlLocale = computed(() => this.messages().intlLocale, ...(ngDevMode ? [{ debugName: "intlLocale" }] : /* istanbul ignore next */ []));
|
|
514
|
+
setLocale(locale) {
|
|
515
|
+
this.current.set(locale);
|
|
516
|
+
}
|
|
517
|
+
/** Acrescenta ou corrige textos de um idioma, sem perder os que já existem. */
|
|
518
|
+
register(locale, messages) {
|
|
519
|
+
this.custom.update((c) => ({ ...c, [locale]: mxMergeMessages((c[locale] ?? {}), messages) }));
|
|
520
|
+
}
|
|
521
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MxI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
522
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MxI18n, providedIn: 'root' });
|
|
523
|
+
}
|
|
524
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MxI18n, decorators: [{
|
|
525
|
+
type: Injectable,
|
|
526
|
+
args: [{ providedIn: 'root' }]
|
|
527
|
+
}] });
|
|
528
|
+
/**
|
|
529
|
+
* Configura o idioma dos componentes.
|
|
530
|
+
*
|
|
531
|
+
* ```ts
|
|
532
|
+
* bootstrapApplication(App, {
|
|
533
|
+
* providers: [provideMuximaI18n({ locale: 'en' })],
|
|
534
|
+
* });
|
|
535
|
+
* ```
|
|
536
|
+
*/
|
|
537
|
+
function provideMuximaI18n(config) {
|
|
538
|
+
return makeEnvironmentProviders([{ provide: MX_I18N_CONFIG, useValue: config }]);
|
|
539
|
+
}
|
|
540
|
+
/** Textos do idioma activo; usar dentro de um componente ou serviço. */
|
|
541
|
+
function injectMxMessages() {
|
|
542
|
+
return inject(MxI18n).messages;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Generated bundle index. Do not edit.
|
|
547
|
+
*/
|
|
548
|
+
|
|
549
|
+
export { MX_I18N_CONFIG, MX_MESSAGES_EN, MX_MESSAGES_PT, MxI18n, injectMxMessages, mxBuiltInMessages, mxMergeMessages, provideMuximaI18n };
|
|
550
|
+
//# sourceMappingURL=muxima-ui-core-i18n.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muxima-ui-core-i18n.mjs","sources":["../../../projects/core/i18n/messages-pt.ts","../../../projects/core/i18n/messages-en.ts","../../../projects/core/i18n/i18n.ts","../../../projects/core/i18n/muxima-ui-core-i18n.ts"],"sourcesContent":["import { MxMessages } from './messages';\n\nconst plural = (n: number, one: string, many: string) => (n === 1 ? one : many);\n\n/** Português (Angola). */\nexport const MX_MESSAGES_PT: MxMessages = {\n intlLocale: 'pt-AO',\n dateOrder: 'dmy',\n firstDayOfWeek: 1,\n\n alert: { close: 'Fechar aviso' },\n breadcrumb: { label: 'Localização' },\n calendar: {\n previousMonth: (m) => `Mês anterior, ${m}`,\n nextMonth: (m) => `Mês seguinte, ${m}`,\n rangeStart: 'início do intervalo',\n rangeEnd: 'fim do intervalo',\n rangeStartEnd: 'início e fim do intervalo',\n rangeHint: (s, e) => `Intervalo de ${s} a ${e}.`,\n rangeStartHint: (s) => `Início ${s}. Escolhe a data de fim.`,\n },\n carousel: {\n carousel: 'carrossel',\n slide: 'diapositivo',\n previous: 'Diapositivo anterior',\n next: 'Diapositivo seguinte',\n choose: 'Escolher diapositivo',\n goTo: (n) => `Diapositivo ${n}`,\n position: (n, total) => `${n} de ${total}`,\n play: 'Iniciar a rotação automática',\n pause: 'Parar a rotação automática',\n },\n chips: {\n remove: 'Remover',\n list: 'Etiquetas',\n help: 'Enter para acrescentar. Backspace no campo vazio vai para a última etiqueta.',\n added: (t) => `${t} acrescentado.`,\n removed: (t) => `${t} removido.`,\n max: (n) => `Máximo de ${n} etiquetas.`,\n duplicate: (t) => `${t} já está na lista.`,\n },\n clipboard: { copy: 'Copiar', copied: 'Copiado', failed: 'Não foi possível copiar' },\n colorPicker: {\n choose: 'Escolher cor',\n change: (name, hex) => `Mudar cor, ${name}, ${hex}`,\n area: 'Saturação e brilho',\n hue: 'Matiz',\n alpha: 'Opacidade',\n swatches: 'Cores sugeridas',\n eyeDropper: 'Escolher uma cor do ecrã',\n hex: 'Hex',\n areaValue: (s, v, name) => `Saturação ${s}%, brilho ${v}%, ${name}`,\n hueValue: (deg, name) => `${deg} graus, ${name}`,\n names: {\n black: 'preto',\n white: 'branco',\n lightGray: 'cinzento claro',\n gray: 'cinzento',\n darkGray: 'cinzento escuro',\n brown: 'castanho',\n red: 'vermelho',\n orange: 'laranja',\n yellow: 'amarelo',\n lime: 'verde-lima',\n green: 'verde',\n teal: 'azul-petróleo',\n blue: 'azul',\n purple: 'roxo',\n magenta: 'magenta',\n tone: (name, tone) => `${name} ${tone === 'dark' ? 'escuro' : 'claro'}`,\n },\n },\n combobox: { placeholder: 'Pesquisar', empty: 'Sem resultados', loading: 'A pesquisar...' },\n command: {\n placeholder: 'Pesquisar...',\n label: 'Pesquisar',\n empty: 'Nada encontrado para',\n results: (n) => `${n} ${plural(n, 'resultado', 'resultados')}`,\n },\n dataGrid: {\n label: 'Tabela de dados',\n empty: 'Sem resultados.',\n loading: 'A carregar...',\n columns: 'Colunas',\n filter: 'Filtrar',\n all: 'Todos',\n selectAll: 'Seleccionar todas as linhas',\n selectRow: 'Seleccionar',\n selection: 'Selecção',\n resizeHint: 'Alt e setas esquerda e direita mudam a largura da coluna.',\n numberFilter: (f, c) => `${f} ${c}, aceita maior que, menor que e intervalos`,\n rows: (n, count) => `${n} ${plural(count, 'linha', 'linhas')}`,\n of: (total) => ` de ${total}`,\n selected: (n, count) => `${n} ${plural(count, 'seleccionada', 'seleccionadas')}`,\n sorted: (c, d) => `Ordenado por ${c}, ${d === 'asc' ? 'ascendente' : 'descendente'}`,\n unsorted: 'Sem ordenação',\n width: (c, px) => `${c}, ${px} píxeis`,\n },\n datePicker: {\n placeholder: 'dd/mm/aaaa',\n choose: 'Escolher data',\n change: (d) => `Mudar data, ${d}`,\n },\n dateRangePicker: {\n start: 'início',\n end: 'fim',\n choose: 'Escolher intervalo',\n change: (s, e) => `Mudar intervalo, ${s} a ${e}`,\n presets: 'Atalhos',\n last7Days: 'Últimos 7 dias',\n last30Days: 'Últimos 30 dias',\n thisMonth: 'Este mês',\n lastMonth: 'Mês passado',\n },\n editor: {\n toolbar: 'Formatação',\n link: 'Endereço da ligação',\n apply: 'Aplicar',\n remove: 'Remover',\n cancel: 'Cancelar',\n characters: 'caracteres',\n tools: {\n bold: 'Negrito',\n italic: 'Itálico',\n underline: 'Sublinhado',\n strike: 'Riscado',\n code: 'Código',\n heading2: 'Título',\n heading3: 'Subtítulo',\n paragraph: 'Parágrafo',\n bulletList: 'Lista',\n orderedList: 'Lista numerada',\n blockquote: 'Citação',\n link: 'Ligação',\n undo: 'Anular',\n redo: 'Refazer',\n },\n },\n fileUpload: {\n drop: 'Arrasta os ficheiros para aqui ou',\n browse: 'escolhe no computador',\n list: 'Ficheiros escolhidos',\n remove: 'Remover',\n done: 'Enviado',\n uploading: (name) => `A enviar ${name}`,\n rejectedType: (name) => `${name}: tipo de ficheiro não aceite.`,\n rejectedSize: (name, size, max) => `${name}: tem ${size}, o máximo é ${max}.`,\n rejectedCount: (name, max) => `${name}: só podes juntar ${max} ${plural(max, 'ficheiro', 'ficheiros')}.`,\n addedOne: (name) => `${name} juntado.`,\n addedMany: (n) => `${n} ficheiros juntados.`,\n removed: (name) => `${name} removido.`,\n },\n imageCropper: {\n alt: 'Imagem a recortar',\n help: 'Setas movem a área. Alt e setas mudam o tamanho. Shift dá passos maiores.',\n zoom: 'Zoom',\n rotateLeft: 'Rodar para a esquerda',\n rotateRight: 'Rodar para a direita',\n reset: 'Repor',\n area: 'área de recorte',\n size: (w, h) => `${w} por ${h} píxeis`,\n position: (w, h, x, y) => `${w} por ${h} píxeis, a ${x} da esquerda e ${y} do topo`,\n rotated: (deg) => `Rodada ${deg} graus`,\n },\n kanban: {\n label: 'Quadro',\n empty: 'Sem cartões',\n help: 'Espaço para agarrar. Setas para mover. Espaço para largar, Esc para cancelar.',\n cards: (n, limit) => plural(n, 'cartão', 'cartões') + (limit ? `, máximo ${limit}` : ''),\n grabbed: (card) => `${card}, agarrado`,\n position: (col, p, total) => `${col}, posição ${p} de ${total}`,\n pickedUp: (card, where) => `${card} agarrado. ${where}.`,\n dropped: (card, where) => `${card} largado. ${where}.`,\n cancelled: (card, where) => `Movimento cancelado. ${card} voltou a ${where}.`,\n full: (col, limit) => `${col} está cheia, máximo ${limit}.`,\n },\n notifications: {\n title: 'Notificações',\n markAll: 'Marcar todas como lidas',\n empty: 'Sem notificações.',\n emptyUnread: 'Está tudo lido.',\n filter: 'Mostrar',\n all: 'Todas',\n unread: 'Por ler',\n unreadPrefix: 'Por ler: ',\n unreadCount: () => 'por ler',\n markRead: (t) => `Marcar como lida: ${t}`,\n remove: (t) => `Remover: ${t}`,\n removed: (t) => `${t} removida.`,\n newOne: (t) => `Nova notificação: ${t}`,\n newMany: (n) => `${n} notificações novas`,\n now: 'agora',\n bellCount: (label, n) => `${label}, ${n} por ler`,\n },\n pagination: {\n label: 'Paginação',\n rowsPerPage: 'Linhas por página',\n first: 'Primeira página',\n previous: 'Página anterior',\n previousShort: 'Anterior',\n next: 'Página seguinte',\n nextShort: 'Seguinte',\n last: 'Última página',\n page: (n) => `Página ${n}`,\n pageOf: (c, t) => `Página ${c} de ${t}`,\n range: (from, to, total) => `${from}–${to} de ${total}`,\n noResults: '0 resultados',\n },\n progress: { label: 'A carregar' },\n rangeSlider: { low: 'mínimo', high: 'máximo' },\n rating: {\n label: 'Avaliação',\n star: (n) => `${n} ${plural(n, 'estrela', 'estrelas')}`,\n summary: (v, max) => `${v} de ${max} estrelas`,\n },\n select: { placeholder: 'Seleccionar', empty: 'Sem opções', loading: 'A carregar...' },\n sidebar: { label: 'Principal', collapse: 'Recolher menu', expand: 'Expandir menu' },\n stepper: { complete: 'concluído' },\n timePicker: { placeholder: 'hh:mm', label: 'Horas' },\n toast: {\n region: 'Notificações',\n close: 'Fechar notificação',\n action: (label) => `Acção disponível: ${label}`,\n },\n tour: {\n next: 'Seguinte',\n previous: 'Anterior',\n done: 'Concluir',\n skip: 'Saltar',\n close: 'Fechar a visita guiada',\n progress: (c, t) => `Passo ${c} de ${t}`,\n },\n};\n","import { MxMessages } from './messages';\n\nconst plural = (n: number, one: string, many: string) => (n === 1 ? one : many);\n\n/** English (United States). */\nexport const MX_MESSAGES_EN: MxMessages = {\n intlLocale: 'en-US',\n dateOrder: 'mdy',\n firstDayOfWeek: 0,\n\n alert: { close: 'Dismiss alert' },\n breadcrumb: { label: 'Breadcrumb' },\n calendar: {\n previousMonth: (m) => `Previous month, ${m}`,\n nextMonth: (m) => `Next month, ${m}`,\n rangeStart: 'range start',\n rangeEnd: 'range end',\n rangeStartEnd: 'range start and end',\n rangeHint: (s, e) => `Range from ${s} to ${e}.`,\n rangeStartHint: (s) => `Start ${s}. Choose the end date.`,\n },\n carousel: {\n carousel: 'carousel',\n slide: 'slide',\n previous: 'Previous slide',\n next: 'Next slide',\n choose: 'Choose slide',\n goTo: (n) => `Slide ${n}`,\n position: (n, total) => `${n} of ${total}`,\n play: 'Start automatic rotation',\n pause: 'Stop automatic rotation',\n },\n chips: {\n remove: 'Remove',\n list: 'Tags',\n help: 'Press Enter to add. Backspace in the empty field moves to the last tag.',\n added: (t) => `${t} added.`,\n removed: (t) => `${t} removed.`,\n max: (n) => `Maximum of ${n} tags.`,\n duplicate: (t) => `${t} is already in the list.`,\n },\n clipboard: { copy: 'Copy', copied: 'Copied', failed: 'Could not copy' },\n colorPicker: {\n choose: 'Choose color',\n change: (name, hex) => `Change color, ${name}, ${hex}`,\n area: 'Saturation and brightness',\n hue: 'Hue',\n alpha: 'Opacity',\n swatches: 'Suggested colors',\n eyeDropper: 'Pick a color from the screen',\n hex: 'Hex',\n areaValue: (s, v, name) => `Saturation ${s}%, brightness ${v}%, ${name}`,\n hueValue: (deg, name) => `${deg} degrees, ${name}`,\n names: {\n black: 'black',\n white: 'white',\n lightGray: 'light gray',\n gray: 'gray',\n darkGray: 'dark gray',\n brown: 'brown',\n red: 'red',\n orange: 'orange',\n yellow: 'yellow',\n lime: 'lime',\n green: 'green',\n teal: 'teal',\n blue: 'blue',\n purple: 'purple',\n magenta: 'magenta',\n tone: (name, tone) => `${tone} ${name}`,\n },\n },\n combobox: { placeholder: 'Search', empty: 'No results', loading: 'Searching...' },\n command: {\n placeholder: 'Search...',\n label: 'Search',\n empty: 'Nothing found for',\n results: (n) => `${n} ${plural(n, 'result', 'results')}`,\n },\n dataGrid: {\n label: 'Data table',\n empty: 'No results.',\n loading: 'Loading...',\n columns: 'Columns',\n filter: 'Filter',\n all: 'All',\n selectAll: 'Select all rows',\n selectRow: 'Select',\n selection: 'Selection',\n resizeHint: 'Alt and the left and right arrows change the column width.',\n numberFilter: (f, c) => `${f} ${c}, accepts greater than, less than and ranges`,\n rows: (n, count) => `${n} ${plural(count, 'row', 'rows')}`,\n of: (total) => ` of ${total}`,\n selected: (n) => `${n} selected`,\n sorted: (c, d) => `Sorted by ${c}, ${d === 'asc' ? 'ascending' : 'descending'}`,\n unsorted: 'Not sorted',\n width: (c, px) => `${c}, ${px} pixels`,\n },\n datePicker: {\n placeholder: 'mm/dd/yyyy',\n choose: 'Choose date',\n change: (d) => `Change date, ${d}`,\n },\n dateRangePicker: {\n start: 'start',\n end: 'end',\n choose: 'Choose range',\n change: (s, e) => `Change range, ${s} to ${e}`,\n presets: 'Shortcuts',\n last7Days: 'Last 7 days',\n last30Days: 'Last 30 days',\n thisMonth: 'This month',\n lastMonth: 'Last month',\n },\n editor: {\n toolbar: 'Formatting',\n link: 'Link address',\n apply: 'Apply',\n remove: 'Remove',\n cancel: 'Cancel',\n characters: 'characters',\n tools: {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strike: 'Strikethrough',\n code: 'Code',\n heading2: 'Heading',\n heading3: 'Subheading',\n paragraph: 'Paragraph',\n bulletList: 'Bulleted list',\n orderedList: 'Numbered list',\n blockquote: 'Quote',\n link: 'Link',\n undo: 'Undo',\n redo: 'Redo',\n },\n },\n fileUpload: {\n drop: 'Drag files here or',\n browse: 'browse your computer',\n list: 'Selected files',\n remove: 'Remove',\n done: 'Uploaded',\n uploading: (name) => `Uploading ${name}`,\n rejectedType: (name) => `${name}: file type not accepted.`,\n rejectedSize: (name, size, max) => `${name}: is ${size}, the maximum is ${max}.`,\n rejectedCount: (name, max) => `${name}: you can only add ${max} ${plural(max, 'file', 'files')}.`,\n addedOne: (name) => `${name} added.`,\n addedMany: (n) => `${n} files added.`,\n removed: (name) => `${name} removed.`,\n },\n imageCropper: {\n alt: 'Image to crop',\n help: 'Arrows move the area. Alt and arrows resize it. Shift takes bigger steps.',\n zoom: 'Zoom',\n rotateLeft: 'Rotate left',\n rotateRight: 'Rotate right',\n reset: 'Reset',\n area: 'crop area',\n size: (w, h) => `${w} by ${h} pixels`,\n position: (w, h, x, y) => `${w} by ${h} pixels, ${x} from the left and ${y} from the top`,\n rotated: (deg) => `Rotated ${deg} degrees`,\n },\n kanban: {\n label: 'Board',\n empty: 'No cards',\n help: 'Space to pick up. Arrows to move. Space to drop, Escape to cancel.',\n cards: (n, limit) => plural(n, 'card', 'cards') + (limit ? `, maximum ${limit}` : ''),\n grabbed: (card) => `${card}, picked up`,\n position: (col, p, total) => `${col}, position ${p} of ${total}`,\n pickedUp: (card, where) => `${card} picked up. ${where}.`,\n dropped: (card, where) => `${card} dropped. ${where}.`,\n cancelled: (card, where) => `Move cancelled. ${card} returned to ${where}.`,\n full: (col, limit) => `${col} is full, maximum ${limit}.`,\n },\n notifications: {\n title: 'Notifications',\n markAll: 'Mark all as read',\n empty: 'No notifications.',\n emptyUnread: 'You are all caught up.',\n filter: 'Show',\n all: 'All',\n unread: 'Unread',\n unreadPrefix: 'Unread: ',\n unreadCount: () => 'unread',\n markRead: (t) => `Mark as read: ${t}`,\n remove: (t) => `Remove: ${t}`,\n removed: (t) => `${t} removed.`,\n newOne: (t) => `New notification: ${t}`,\n newMany: (n) => `${n} new notifications`,\n now: 'now',\n bellCount: (label, n) => `${label}, ${n} unread`,\n },\n pagination: {\n label: 'Pagination',\n rowsPerPage: 'Rows per page',\n first: 'First page',\n previous: 'Previous page',\n previousShort: 'Previous',\n next: 'Next page',\n nextShort: 'Next',\n last: 'Last page',\n page: (n) => `Page ${n}`,\n pageOf: (c, t) => `Page ${c} of ${t}`,\n range: (from, to, total) => `${from}–${to} of ${total}`,\n noResults: '0 results',\n },\n progress: { label: 'Loading' },\n rangeSlider: { low: 'minimum', high: 'maximum' },\n rating: {\n label: 'Rating',\n star: (n) => `${n} ${plural(n, 'star', 'stars')}`,\n summary: (v, max) => `${v} of ${max} stars`,\n },\n select: { placeholder: 'Select', empty: 'No options', loading: 'Loading...' },\n sidebar: { label: 'Main', collapse: 'Collapse menu', expand: 'Expand menu' },\n stepper: { complete: 'completed' },\n timePicker: { placeholder: 'hh:mm', label: 'Times' },\n toast: {\n region: 'Notifications',\n close: 'Dismiss notification',\n action: (label) => `Action available: ${label}`,\n },\n tour: {\n next: 'Next',\n previous: 'Back',\n done: 'Done',\n skip: 'Skip',\n close: 'Close the tour',\n progress: (c, t) => `Step ${c} of ${t}`,\n },\n};\n","import {\n EnvironmentProviders,\n Injectable,\n InjectionToken,\n Signal,\n computed,\n inject,\n makeEnvironmentProviders,\n signal,\n} from '@angular/core';\nimport { MxDeepPartial, MxMessages } from './messages';\nimport { MX_MESSAGES_EN } from './messages-en';\nimport { MX_MESSAGES_PT } from './messages-pt';\n\n/** Idiomas incluídos na biblioteca. Outros podem ser registados com `messages`. */\nexport type MxBuiltInLocale = 'pt' | 'en';\n\nexport interface MxI18nConfig {\n /** Idioma inicial: \"pt\" (por omissão na 1.x) ou \"en\". Aceita também \"pt-BR\", \"en-GB\", etc. */\n locale?: string;\n /**\n * Textos por idioma. Para \"pt\" e \"en\" basta indicar o que muda; um idioma novo\n * (ex.: \"fr\") parte do inglês e substitui o que indicares.\n */\n messages?: Record<string, MxDeepPartial<MxMessages>>;\n}\n\nexport const MX_I18N_CONFIG = new InjectionToken<MxI18nConfig>('MX_I18N_CONFIG');\n\nconst BUILT_IN: Record<MxBuiltInLocale, MxMessages> = { pt: MX_MESSAGES_PT, en: MX_MESSAGES_EN };\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null && !Array.isArray(v) && Object.getPrototypeOf(v) === Object.prototype;\n}\n\n/** Junta `patch` sobre `base`, objecto a objecto; funções, textos e números substituem. */\nexport function mxMergeMessages<T>(base: T, patch: MxDeepPartial<T> | undefined): T {\n if (!patch) return base;\n const out: Record<string, unknown> = { ...(base as Record<string, unknown>) };\n for (const [k, v] of Object.entries(patch)) {\n if (v === undefined) continue;\n const current = out[k];\n out[k] = isPlainObject(v) && isPlainObject(current) ? mxMergeMessages(current, v) : v;\n }\n return out as T;\n}\n\n/** Dicionário incluído para o idioma (\"pt-BR\" usa \"pt\"); inglês quando não há. */\nexport function mxBuiltInMessages(locale: string): MxMessages {\n const base = locale.toLowerCase().split(/[-_]/)[0] as MxBuiltInLocale;\n return BUILT_IN[base] ?? MX_MESSAGES_EN;\n}\n\n/**\n * Idioma activo e os textos dos componentes. Mudar o idioma com `setLocale`\n * actualiza logo todos os componentes no ecrã.\n *\n * ```ts\n * readonly i18n = inject(MxI18n);\n * this.i18n.setLocale('en');\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class MxI18n {\n private readonly config = inject(MX_I18N_CONFIG, { optional: true }) ?? {};\n private readonly custom = signal<Record<string, MxDeepPartial<MxMessages>>>(this.config.messages ?? {});\n private readonly current = signal(this.config.locale ?? 'pt');\n\n /** Idioma activo, tal como foi indicado (\"pt\", \"en\", \"en-GB\"...). */\n readonly locale = this.current.asReadonly();\n\n /** Todos os textos do idioma activo. */\n readonly messages: Signal<MxMessages> = computed(() => {\n const locale = this.current();\n const custom = this.custom();\n const base = locale.toLowerCase().split(/[-_]/)[0];\n let m = mxBuiltInMessages(locale);\n if (base !== locale) m = mxMergeMessages(m, custom[base]);\n return mxMergeMessages(m, custom[locale]);\n });\n\n /** Locale para Intl (números, datas): \"pt-AO\", \"en-US\"... */\n readonly intlLocale = computed(() => this.messages().intlLocale);\n\n setLocale(locale: string): void {\n this.current.set(locale);\n }\n\n /** Acrescenta ou corrige textos de um idioma, sem perder os que já existem. */\n register(locale: string, messages: MxDeepPartial<MxMessages>): void {\n this.custom.update((c) => ({ ...c, [locale]: mxMergeMessages((c[locale] ?? {}) as MxMessages, messages as never) }));\n }\n}\n\n/**\n * Configura o idioma dos componentes.\n *\n * ```ts\n * bootstrapApplication(App, {\n * providers: [provideMuximaI18n({ locale: 'en' })],\n * });\n * ```\n */\nexport function provideMuximaI18n(config: MxI18nConfig): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: MX_I18N_CONFIG, useValue: config }]);\n}\n\n/** Textos do idioma activo; usar dentro de um componente ou serviço. */\nexport function injectMxMessages(): Signal<MxMessages> {\n return inject(MxI18n).messages;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["plural"],"mappings":"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"}
|