@massimo-cassandro/minimo 1.32.2 → 1.32.3
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/package.json +1 -1
- package/src/web-components/s-datatable-component/docs.md +31 -11
- package/src/web-components/s-datatable-component/s-datatable-component.js +9 -2
- package/src/web-components/s-datatable-component/s-datatable-component.module.css +1 -1
- package/src/web-components/s-datatable-component/src/parse-cols.js +3 -1
package/package.json
CHANGED
|
@@ -194,7 +194,7 @@ cols: [
|
|
|
194
194
|
|
|
195
195
|
_title, // Testo del tooltip sull'intestazione (attributo `title` dell'<abbr>).
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
_cellRender, // Template HTML per il contenuto della cella.
|
|
198
198
|
// Accetta:
|
|
199
199
|
// - stringa mustache-like: i segnaposto [[chiave]] vengono sostituiti
|
|
200
200
|
// con i valori della riga (notazione punto: [[owner.nome]]).
|
|
@@ -203,14 +203,33 @@ cols: [
|
|
|
203
203
|
// warning (il dato è semplicemente assente, non un errore di config).
|
|
204
204
|
// - funzione (row) => string
|
|
205
205
|
|
|
206
|
-
_renderMode, // Preset di visualizzazione predefiniti.
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
// '
|
|
210
|
-
//
|
|
206
|
+
_renderMode, // Preset di visualizzazione predefiniti (vedi parseCols). Vengono
|
|
207
|
+
// applicati solo se la colonna non definisce già l'opzione nativa
|
|
208
|
+
// `render`. Valori disponibili:
|
|
209
|
+
// 'id' – colonna numerica (type 'number'), non ricercabile,
|
|
210
|
+
// allineata a destra
|
|
211
|
+
// 'email' – va a capo prima e dopo la @
|
|
212
|
+
// 'bool_true_only' – come type: 'boolean' (icona spunta con colore
|
|
213
|
+
// semantico) ma per i valori falsi non mostra
|
|
214
|
+
// nessuna icona. Per il booleano standard
|
|
215
|
+
// (spunta/croce) usare la proprietà nativa
|
|
216
|
+
// type: 'boolean', non è previsto un _renderMode.
|
|
217
|
+
// 'sf_datetime' – data e ora da oggetto Symfony ({ date, timezone }),
|
|
218
|
+
// pre-elaborato in _load
|
|
219
|
+
// 'sf_date' – come 'sf_datetime', ma mostra solo la data
|
|
220
|
+
// 'datetime' – data e ora da stringa/valore parsabile da `new Date()`
|
|
221
|
+
// 'date' – come 'datetime', ma mostra solo la data
|
|
222
|
+
// (date/datetime: formato it-IT, allineamento a destra,
|
|
223
|
+
// data-order impostato per l'ordinamento; null → '—')
|
|
224
|
+
// 'numeric' – numero formattato it-IT (separatore migliaia,
|
|
225
|
+
// decimali come nel dato), type 'number', classi
|
|
226
|
+
// text-end text-numeric; null/NaN → '—'
|
|
227
|
+
// 'euro' – come 'numeric', con 2 decimali fissi, senza simbolo
|
|
228
|
+
// 'euro_currency' – come 'euro', con simbolo di valuta (€)
|
|
229
|
+
// 'euro_no_dec' – come 'euro', senza decimali
|
|
211
230
|
|
|
212
231
|
_sortValue, // Percorso del campo da usare per l'ORDINAMENTO al posto del contenuto
|
|
213
|
-
// visualizzato. Utile quando la cella contiene HTML composto (
|
|
232
|
+
// visualizzato. Utile quando la cella contiene HTML composto (_cellRender).
|
|
214
233
|
// Supporta notazione punto.
|
|
215
234
|
// Implementato tramite l'attributo data-order sulla cella, letto
|
|
216
235
|
// nativamente da simple-datatables.
|
|
@@ -285,7 +304,7 @@ cols: [
|
|
|
285
304
|
// ricerca o multisearch.
|
|
286
305
|
|
|
287
306
|
_collapsePlaceholder, // Testo da mostrare al posto del valore ripetuto. Accetta lo stesso
|
|
288
|
-
// ventaglio di
|
|
307
|
+
// ventaglio di _cellRender/_cellTitle: stringa semplice, stringa mustache-like
|
|
289
308
|
// con segnaposto [[chiave]] (interpolati sulla riga corrente), oppure
|
|
290
309
|
// funzione (row) => string. Default null (anche se la funzione ritorna
|
|
291
310
|
// null/undefined) = il testo della cella resta invariato (utile insieme
|
|
@@ -308,7 +327,8 @@ cols: [
|
|
|
308
327
|
|
|
309
328
|
render, // Callback (data, cell, rowIndex, cellIndex) => contenuto cella.
|
|
310
329
|
// È l'opzione nativa usata internamente per implementare i preset
|
|
311
|
-
// _renderMode
|
|
330
|
+
// _renderMode. Se `_cellRender` è impostata, `render` viene annullata
|
|
331
|
+
// (per evitare conflitti); se invece `render` è impostata
|
|
312
332
|
// esplicitamente dal consumer, i preset _renderMode vengono
|
|
313
333
|
// ignorati (vedi parseCols — la logica dei preset scatta solo se
|
|
314
334
|
// `render` non è già definita sulla colonna).
|
|
@@ -358,12 +378,12 @@ const cols = [
|
|
|
358
378
|
{
|
|
359
379
|
_field: 'commessa',
|
|
360
380
|
_heading: 'Commessa / fornitore',
|
|
361
|
-
|
|
381
|
+
_cellRender: '[[commessa]]<br><small class="text-muted">[[fornitore]]</small>',
|
|
362
382
|
},
|
|
363
383
|
{
|
|
364
384
|
_field: 'owner.cognome',
|
|
365
385
|
_heading: 'Owner',
|
|
366
|
-
|
|
386
|
+
_cellRender: '[[owner.nome]] [[owner.cognome]]',
|
|
367
387
|
_sortValue: 'owner.cognome', // ordina per cognome
|
|
368
388
|
_searchValue: 'owner.cognome owner.nome', // cerca su cognome e nome (AND)
|
|
369
389
|
},
|
|
@@ -266,8 +266,15 @@ function computeCellValue(row, col_item, globalNullAs, col_idx) {
|
|
|
266
266
|
|
|
267
267
|
// Applica _renderNullAs al valore della cella se null/undefined
|
|
268
268
|
// e la cella non ha già un template che gestisce la visualizzazione.
|
|
269
|
-
// se _renderMode è impostato, il valore null è gestito direttamente dal gestore predefinito
|
|
270
|
-
|
|
269
|
+
// se _renderMode è impostato, il valore null è gestito direttamente dal gestore predefinito;
|
|
270
|
+
// le colonne booleane (type: 'boolean', anche senza _renderMode) sono escluse allo stesso modo,
|
|
271
|
+
// altrimenti nullAs (stringa non vuota) verrebbe letto come true dal render booleano
|
|
272
|
+
if (
|
|
273
|
+
value == null &&
|
|
274
|
+
col_item._cellRender == null &&
|
|
275
|
+
col_item._renderMode == null &&
|
|
276
|
+
col_item.type !== 'boolean'
|
|
277
|
+
) {
|
|
271
278
|
value = nullAs;
|
|
272
279
|
}
|
|
273
280
|
|
|
@@ -53,7 +53,9 @@ export function parseCols(col_obj){
|
|
|
53
53
|
|
|
54
54
|
// campi booleani
|
|
55
55
|
} else if (col_obj.type === 'boolean' || col_obj._renderMode === 'bool_true_only') {
|
|
56
|
-
//
|
|
56
|
+
// il valore null arriva qui "genuino" (computeCellValue non applica _renderNullAs
|
|
57
|
+
// alle colonne booleane), ma è comunque trattato come false (icona rossa/vuota)
|
|
58
|
+
// TODO distinguere visivamente il caso null da false, se necessario
|
|
57
59
|
|
|
58
60
|
return {
|
|
59
61
|
...col_obj,
|