@massimo-cassandro/minimo 1.19.0 → 1.19.1
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/design-tokens/README.md +195 -0
- package/design-tokens/tokens/src/components/unsplash-page/unsplash-page.minimo.tokens.jsonc +69 -31
- package/design-tokens/{utilities/tokens-config-sample.mjs → tokens-config-sample.mjs} +10 -10
- package/dev-tools/starter-kit/starter-install.sh +1 -1
- package/package.json +6 -2
- package/snippets/error-pages/error-pages.js +3 -2
- package/src/components/unsplash-page/unsplash-page.minimo.tokens.mjs +78 -39
- package/src/components/unsplash-page/unsplash-page.module.css +25 -6
- package/src/custom-properties.css +8 -1
- package/src/minimo.css +1 -1
- package/src/web-components/s-datatable-component/s-datatable-component.js +4 -1
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/index.js +0 -92
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/hbars.js +0 -356
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/pie.js +0 -245
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/radial-bars.js +0 -177
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/rating-display.js +0 -835
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/costruzione-assi.js +0 -212
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/costruzione-linee.js +0 -101
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/defaults.js +0 -185
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/display-current.js +0 -27
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/grid-areas.js +0 -129
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/parse-opts.js +0 -64
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/paths-setup.js +0 -73
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile.js +0 -126
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/signal-bars.js +0 -290
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/week-utils.js +0 -122
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/hbars-test.js +0 -52
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/mcn-test.js +0 -74
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/pie-test.js +0 -16
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/radial-bars-test.js +0 -48
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/settimanale-mensile-dati-settimanale.js +0 -426
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/settimanale-mensile-test.js +0 -260
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/signal-bars-test.js +0 -64
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/node-test.mjs +0 -86
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/hBars-node-test.mjs +0 -40
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/lines-node-test.mjs +0 -73
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/mcn-node-test.mjs +0 -64
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/pie-node-test.mjs +0 -12
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/radialsBar-node-test.mjs +0 -44
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/settimanale-mensile-node-test.mjs +0 -258
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/signalBars-node-test.mjs +0 -36
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/test-readme.md +0 -24
- package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/textToPath-test.mjs +0 -14
- package/charts/TODO charts/???/InfoBox.js +0 -456
- package/charts/TODO charts/???/README-upg OLD/342/206/222NEW.md" +0 -53
- package/charts/TODO charts/???/README.md +0 -1
- package/charts/TODO charts/???/TODO.md +0 -39
- package/charts/TODO charts/???/base-cfg.js +0 -66
- package/charts/TODO charts/???/rating-displayOLD.js +0 -837
- package/charts/TODO charts/docs/TODO.md +0 -1
- package/charts/TODO charts/docs/costruzione display rating.md +0 -145
- package/charts/TODO charts/test/node-test.mjs +0 -92
- package/charts/TODO charts/test/test-readme.md +0 -23
- package/charts/TODO charts/test/test-src/rating-display-extra-test.js +0 -132
- package/charts/TODO charts/test/test-src/rating-display-test.js +0 -155
- package/charts/TODO charts/test/textToPath-test.mjs +0 -14
- package/charts/TODO.md +0 -7
- package/charts/src/node-helpers/TODO.md +0 -2
- package/dev-tools/starter-kit/TODO.md +0 -135
- package/src/components/TODO form-multiselect/form-multiselect.css +0 -40
- package/src/components/TODO form-multiselect/form-multiselect.js +0 -83
- package/src/components/TODO vanilla-cookie-consent/cookie-consent.css +0 -20
- package/src/components/TODO vanilla-cookie-consent/cookie-consent.js +0 -76
- package/src/components/TODO vanilla-cookie-consent/render-cookie-list.js +0 -32
- package/src/components/TODO vanilla-cookie-consent/src/cookie-list.js +0 -85
- package/src/components/TODO vanilla-cookie-consent/src/it-translation.js +0 -38
- package/src/components/TODO vanilla-cookie-consent/src/run-analytics.js +0 -54
- package/src/components/TODO vanilla-cookie-consent/src/run-recaptcha.js +0 -71
- package/src/components/autocomplete/TODO.md +0 -4
- package/src/web-components/TODO json-table/README.md +0 -67
- package/src/web-components/TODO json-table/TODO.md +0 -12
- package/src/web-components/TODO json-table/_work/OLD/docs/custom-props-list.md +0 -69
- package/src/web-components/TODO json-table/_work/OLD/script/create-css-custom-props-doc.mjs +0 -113
- package/src/web-components/TODO json-table/_work/OLD/script/src/custom-props-end.md +0 -4
- package/src/web-components/TODO json-table/_work/OLD/script/src/custom-props-start.md +0 -30
- package/src/web-components/TODO json-table/_work/OLD/src/css/icons.module.css +0 -22
- package/src/web-components/TODO json-table/_work/OLD/src/css/info.module.css +0 -42
- package/src/web-components/TODO json-table/_work/OLD/src/css/main-wrapper.module.css +0 -4
- package/src/web-components/TODO json-table/_work/OLD/src/css/table.module.css +0 -154
- package/src/web-components/TODO json-table/_work/OLD/src/css/utility.module.css +0 -9
- package/src/web-components/TODO json-table/_work/OLD/src/icons/false.svg +0 -1
- package/src/web-components/TODO json-table/_work/OLD/src/icons/search-arrows.svg +0 -1
- package/src/web-components/TODO json-table/_work/OLD/src/icons/true.svg +0 -1
- package/src/web-components/TODO json-table/_work/OLD/src/index.js +0 -56
- package/src/web-components/TODO json-table/_work/OLD/src/js/default-columns-data-types.js +0 -172
- package/src/web-components/TODO json-table/_work/OLD/src/js/defaults.js +0 -156
- package/src/web-components/TODO json-table/_work/OLD/src/js/info-section.js +0 -31
- package/src/web-components/TODO json-table/_work/OLD/src/js/listeners.js +0 -17
- package/src/web-components/TODO json-table/_work/OLD/src/js/main-builder.js +0 -26
- package/src/web-components/TODO json-table/_work/OLD/src/js/parse-params.js +0 -121
- package/src/web-components/TODO json-table/_work/OLD/src/js/set-column-classname.js +0 -22
- package/src/web-components/TODO json-table/_work/OLD/src/js/table-builder.js +0 -64
- package/src/web-components/TODO json-table/_work/OLD/src/js/table-foot.js +0 -8
- package/src/web-components/TODO json-table/_work/OLD/src/js/table-head.js +0 -47
- package/src/web-components/TODO json-table/_work/OLD/src/js/table-row.js +0 -83
- package/src/web-components/TODO json-table/_work/OLD/src/js/utilities.js +0 -5
- package/src/web-components/TODO json-table/_work/__json-table-react/index.js +0 -4
- package/src/web-components/TODO json-table/_work/__json-table-react/src/build-page-array.js +0 -73
- package/src/web-components/TODO json-table/_work/__json-table-react/src/columns-data-types.js +0 -73
- package/src/web-components/TODO json-table/_work/__json-table-react/src/defaults.js +0 -50
- package/src/web-components/TODO json-table/_work/__json-table-react/src/download-excel.js +0 -156
- package/src/web-components/TODO json-table/_work/__json-table-react/src/set-className.js +0 -19
- package/src/web-components/TODO json-table/_work/__json-table-react/src/set-download-filename.js +0 -17
- package/src/web-components/TODO json-table/_work/__json-table-react/src/table-to-csv.js +0 -48
- package/src/web-components/TODO json-table/_work/archived/table-to-csv.js +0 -48
- package/src/web-components/TODO json-table/_work/arrow.svg +0 -3
- package/src/web-components/TODO json-table/_work/da decidere/get-cell-data.js +0 -18
- package/src/web-components/TODO json-table/_work/download-button.js +0 -29
- package/src/web-components/TODO json-table/_work/download-excel.js +0 -155
- package/src/web-components/TODO json-table/_work/pagination-array-builder.js +0 -73
- package/src/web-components/TODO json-table/_work/pagination.js +0 -37
- package/src/web-components/TODO json-table/_work/set-download-filename.js +0 -19
- package/src/web-components/TODO json-table/_work/table-info.js +0 -24
- package/src/web-components/TODO json-table/demo/README.md +0 -66
- package/src/web-components/TODO json-table/demo/assets/link-simple.svg +0 -1
- package/src/web-components/TODO json-table/demo/demo-data/json-static-table-demo-data.js +0 -512
- package/src/web-components/TODO json-table/demo/demo.css +0 -32
- package/src/web-components/TODO json-table/demo/demo.js +0 -24
- package/src/web-components/TODO json-table/demo/js/demo-ajax-table.js +0 -165
- package/src/web-components/TODO json-table/demo/js/demo-static-table.js +0 -180
- package/src/web-components/TODO json-table/demo/webpack-modules/css-rules.mjs +0 -122
- package/src/web-components/TODO json-table/demo/webpack-modules/get-jsConfig-aliases.mjs +0 -33
- package/src/web-components/TODO json-table/demo/webpack-modules/svg-rules.mjs +0 -108
- package/src/web-components/TODO json-table/demo/webpack-modules/svgo.config.mjs +0 -26
- package/src/web-components/TODO json-table/demo/webpack.config.mjs +0 -333
- package/src/web-components/TODO json-table/docs/custom-props-list.md +0 -74
- package/src/web-components/TODO json-table/docs-builder/create-css-custom-props-doc.mjs +0 -157
- package/src/web-components/TODO json-table/docs-builder/src/custom-props-end.md +0 -6
- package/src/web-components/TODO json-table/docs-builder/src/custom-props-start.md +0 -29
- package/src/web-components/TODO json-table/src/TODO.md +0 -1
- package/src/web-components/TODO json-table/src/__json-table-react/build-page-array.js +0 -73
- package/src/web-components/TODO json-table/src/__json-table-react/columns-data-types.js +0 -73
- package/src/web-components/TODO json-table/src/__json-table-react/defaults.js +0 -50
- package/src/web-components/TODO json-table/src/__json-table-react/download-excel.js +0 -156
- package/src/web-components/TODO json-table/src/__json-table-react/set-className.js +0 -19
- package/src/web-components/TODO json-table/src/__json-table-react/set-download-filename.js +0 -17
- package/src/web-components/TODO json-table/src/__json-table-react/table-to-csv.js +0 -48
- package/src/web-components/TODO json-table/src/css/custom-media.css +0 -16
- package/src/web-components/TODO json-table/src/css/icons.module.css +0 -22
- package/src/web-components/TODO json-table/src/css/info-section.module.css +0 -78
- package/src/web-components/TODO json-table/src/css/main-builder.module.css +0 -6
- package/src/web-components/TODO json-table/src/css/table.module.css +0 -172
- package/src/web-components/TODO json-table/src/css/utility.module.css +0 -9
- package/src/web-components/TODO json-table/src/icons/arrow-down-bold.svg +0 -1
- package/src/web-components/TODO json-table/src/icons/false.svg +0 -1
- package/src/web-components/TODO json-table/src/icons/true.svg +0 -1
- package/src/web-components/TODO json-table/src/index.js +0 -125
- package/src/web-components/TODO json-table/src/js/default-columns-data-types.js +0 -172
- package/src/web-components/TODO json-table/src/js/defaults.js +0 -510
- package/src/web-components/TODO json-table/src/js/get-ajax-data.js +0 -72
- package/src/web-components/TODO json-table/src/js/info-section.js +0 -39
- package/src/web-components/TODO json-table/src/js/init-ajax-table.js +0 -30
- package/src/web-components/TODO json-table/src/js/init-static-table.js +0 -18
- package/src/web-components/TODO json-table/src/js/main-builder.js +0 -87
- package/src/web-components/TODO json-table/src/js/parse-data-row.js +0 -123
- package/src/web-components/TODO json-table/src/js/parse-params.js +0 -118
- package/src/web-components/TODO json-table/src/js/set-search-listener.js +0 -62
- package/src/web-components/TODO json-table/src/js/set-sort-listeners.js +0 -115
- package/src/web-components/TODO json-table/src/js/static-data-sorting.js +0 -23
- package/src/web-components/TODO json-table/src/js/table-builder.js +0 -45
- package/src/web-components/TODO json-table/src/js/table-row.js +0 -43
- package/src/web-components/TODO json-table/src/js/table-tfoot.js +0 -9
- package/src/web-components/TODO json-table/src/js/table-thead.js +0 -91
- package/src/web-components/TODO json-table/src/js/update-info.js +0 -42
- package/src/web-components/TODO json-table/src/js/utilities.js +0 -5
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// formattazioni std per i vari tipi di dati
|
|
2
|
-
// la classe std viene sovrascritta se presente come parametro nella colonna
|
|
3
|
-
import {defaults} from './defaults';
|
|
4
|
-
|
|
5
|
-
export const data_types = {
|
|
6
|
-
// string: {} // default type
|
|
7
|
-
date: {
|
|
8
|
-
className: defaults.rightAlignClassName,
|
|
9
|
-
render: d => (new Date(d)).toLocaleString('it-IT', {
|
|
10
|
-
year : 'numeric', // '2-digit'
|
|
11
|
-
month : '2-digit', // 'short'
|
|
12
|
-
day : '2-digit' // 'numeric
|
|
13
|
-
})
|
|
14
|
-
},
|
|
15
|
-
// symfony date field
|
|
16
|
-
sfDate: {
|
|
17
|
-
className: defaults.rightAlignClassName,
|
|
18
|
-
render: d => (new Date(d.date)).toLocaleString('it-IT', {
|
|
19
|
-
year : 'numeric', // '2-digit'
|
|
20
|
-
month : '2-digit', // 'short'
|
|
21
|
-
day : '2-digit' // 'numeric
|
|
22
|
-
})
|
|
23
|
-
},
|
|
24
|
-
datetime: {
|
|
25
|
-
className: defaults.rightAlignClassName,
|
|
26
|
-
render: d => {
|
|
27
|
-
const date = new Date(d);
|
|
28
|
-
return date.toLocaleString('it-IT', {
|
|
29
|
-
year : 'numeric', // '2-digit'
|
|
30
|
-
month : '2-digit', // 'short'
|
|
31
|
-
day : '2-digit', // 'numeric
|
|
32
|
-
}) +
|
|
33
|
-
'\u00A0' +
|
|
34
|
-
'<small>' +
|
|
35
|
-
date.toLocaleString('it-IT', {
|
|
36
|
-
hour12: false,
|
|
37
|
-
hour:'2-digit',
|
|
38
|
-
minute:'2-digit'
|
|
39
|
-
}) +
|
|
40
|
-
'</small>';
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
num: {
|
|
44
|
-
className: defaults.rightAlignClassName,
|
|
45
|
-
render: d => (d? +d : 0).toLocaleString('it-IT', {
|
|
46
|
-
maximumFractionDigits : 2
|
|
47
|
-
})
|
|
48
|
-
},
|
|
49
|
-
perc: {
|
|
50
|
-
className: defaults.rightAlignClassName,
|
|
51
|
-
formatClassName : defaults.percClassName,
|
|
52
|
-
render: d => (d? +d : 0).toLocaleString('it-IT', {
|
|
53
|
-
maximumFractionDigits : 2,
|
|
54
|
-
minimumFractionDigits : 2,
|
|
55
|
-
})
|
|
56
|
-
},
|
|
57
|
-
percDecimal: {
|
|
58
|
-
className: defaults.rightAlignClassName,
|
|
59
|
-
formatClassName : defaults.percClassName,
|
|
60
|
-
render: d => ((d? +d : 0) * 100).toLocaleString('it-IT', {
|
|
61
|
-
maximumFractionDigits : 2,
|
|
62
|
-
minimumFractionDigits : 2,
|
|
63
|
-
})
|
|
64
|
-
},
|
|
65
|
-
euro: {
|
|
66
|
-
className: defaults.rightAlignClassName,
|
|
67
|
-
formatClassName : defaults.euroClassName,
|
|
68
|
-
render: d => (d? +d : 0).toLocaleString('it-IT', {
|
|
69
|
-
minimumFractionDigits : 2,
|
|
70
|
-
maximumFractionDigits : 2
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parametri di configurazione
|
|
3
|
-
* @property {array} columns - colonne della tabella
|
|
4
|
-
* @property {array} data - array dei dati
|
|
5
|
-
* @property {array} footerData - array dei dati da renderizzare nell'elemento <tfoot>
|
|
6
|
-
* @author Massimo Cassandro
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export const defaults = {
|
|
11
|
-
columns : [], // definizione delle colonne
|
|
12
|
-
ajax : true, // se true usa `ajaxUrl` e ignora `data`
|
|
13
|
-
ajaxUrl : null, // url ajax
|
|
14
|
-
data : [], // dati (per versione statica)
|
|
15
|
-
footerData : [],
|
|
16
|
-
caption : null,
|
|
17
|
-
addRowIndex : false, // se true aggiunge un attributo data al tr con l'indice del record json
|
|
18
|
-
|
|
19
|
-
tableClassName : 'table',
|
|
20
|
-
wrapperClassName : 'table-responsive',
|
|
21
|
-
centerAlignClassName : 'text-center',
|
|
22
|
-
rightAlignClassName : 'text-right',
|
|
23
|
-
percClassName : 'perc',
|
|
24
|
-
euroClassName : 'euro',
|
|
25
|
-
showZero : false,
|
|
26
|
-
zeroValuesChar : '\u2014',
|
|
27
|
-
showDownloadBtn : false,
|
|
28
|
-
downloadBtnLabel : 'Download',
|
|
29
|
-
downloadBtnClassName : 'btn btn-outline-secondary btn-sm',
|
|
30
|
-
separateDownloadBtn : false, // se true viene restituito un array con tabella e pulsante download separati
|
|
31
|
-
downloadFilename : 'download',
|
|
32
|
-
downloadFormat : 'excel', // 'excel' o 'csv'
|
|
33
|
-
trCallback : null,
|
|
34
|
-
|
|
35
|
-
// array di eventuali fogli da aggiungere all'excel nel download
|
|
36
|
-
// ogni elemento dell'array è un oggetto con
|
|
37
|
-
// name - nome dela foglio
|
|
38
|
-
// data - array già formattato da trasformare in excel
|
|
39
|
-
extraDownloadSheets : null
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export const columns_default = {
|
|
43
|
-
title : null, // titolo colonna (testo th)
|
|
44
|
-
key : null, // chiave oggetto del json
|
|
45
|
-
dataType : null, // tipo dati
|
|
46
|
-
className : null, // classe
|
|
47
|
-
render : null, // funzione ad hoc per il rendering
|
|
48
|
-
parse : null, // funzione ad hoc per elaborare il valore
|
|
49
|
-
rowHeading : false // se true, viene creato un elemento th[scope=row] invece di un td
|
|
50
|
-
};
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
// genera un json ottimizzato per l'esportazione in xslx partendo
|
|
2
|
-
// dai dati assegnati alla tabella
|
|
3
|
-
|
|
4
|
-
// import {data_types} from './columns-data-types';
|
|
5
|
-
import setDownloadFilename from './set-download-filename';
|
|
6
|
-
import { utils as utilsXSLX, writeFileXLSX } from 'xlsx/xlsx.mjs';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export default function (params) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function excel_sheet(columns, data) {
|
|
13
|
-
|
|
14
|
-
let excel_data = [];
|
|
15
|
-
|
|
16
|
-
const parser = new DOMParser();
|
|
17
|
-
excel_data.push(columns.map(item => {
|
|
18
|
-
|
|
19
|
-
const tit = parser.parseFromString(item.title, 'text/html');
|
|
20
|
-
return tit.documentElement.textContent;
|
|
21
|
-
}));
|
|
22
|
-
|
|
23
|
-
// https://www.codegrepper.com/code-examples/javascript/javascript+convert+number+to+letter+of+alphabet
|
|
24
|
-
// https://docs.sheetjs.com/docs/csf/features/formulae
|
|
25
|
-
// function numToSSColumnLetter(num) {
|
|
26
|
-
// let columnLetter = "",
|
|
27
|
-
// t;
|
|
28
|
-
|
|
29
|
-
// while (num > 0) {
|
|
30
|
-
// t = (num - 1) % 26;
|
|
31
|
-
// columnLetter = String.fromCharCode(65 + t) + columnLetter;
|
|
32
|
-
// num = (num - t) / 26 | 0;
|
|
33
|
-
// }
|
|
34
|
-
// return columnLetter || undefined;
|
|
35
|
-
// }
|
|
36
|
-
|
|
37
|
-
let values_lengths = {};
|
|
38
|
-
|
|
39
|
-
data.forEach(row => {
|
|
40
|
-
let excel_row = [];
|
|
41
|
-
|
|
42
|
-
columns.forEach(col => {
|
|
43
|
-
let cell_value;
|
|
44
|
-
if(col.parse && typeof col.parse === 'function') {
|
|
45
|
-
cell_value = col.parse(row);
|
|
46
|
-
} else {
|
|
47
|
-
cell_value = row[col.key];
|
|
48
|
-
}
|
|
49
|
-
values_lengths[col.key] = Math.max(values_lengths[col.key]?? 0, String(cell_value).length);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// https://docs.sheetjs.com/docs/csf/cell
|
|
53
|
-
// https://docs.sheetjs.com/docs/csf/features/#number-formats
|
|
54
|
-
// https://support.microsoft.com/it-it/office/codici-del-formato-numerico-5026bbd6-04bc-48cd-bf33-80f18b4eae68
|
|
55
|
-
let cell_obj;
|
|
56
|
-
switch (col.dataType) {
|
|
57
|
-
case 'date':
|
|
58
|
-
cell_obj = {
|
|
59
|
-
v: cell_value? new Date(cell_value).toISOString() : undefined,
|
|
60
|
-
t: 'd',
|
|
61
|
-
z: 'd-mmm-yyyy'
|
|
62
|
-
};
|
|
63
|
-
break;
|
|
64
|
-
case 'datetime':
|
|
65
|
-
cell_obj = {
|
|
66
|
-
v: cell_value? new Date(cell_value).toISOString() : undefined,
|
|
67
|
-
t: 'd',
|
|
68
|
-
z: 'd-mmm-yyyy hh:mm'
|
|
69
|
-
};
|
|
70
|
-
break;
|
|
71
|
-
case 'num':
|
|
72
|
-
cell_obj = {
|
|
73
|
-
v: cell_value? +cell_value : 0,
|
|
74
|
-
t: 'n',
|
|
75
|
-
z: '#,##0.00'
|
|
76
|
-
};
|
|
77
|
-
break;
|
|
78
|
-
case 'perc':
|
|
79
|
-
cell_obj = {
|
|
80
|
-
v: (cell_value? +cell_value : 0)/100,
|
|
81
|
-
t: 'n',
|
|
82
|
-
z: '#,##0.00%'
|
|
83
|
-
};
|
|
84
|
-
break;
|
|
85
|
-
case 'percDecimal':
|
|
86
|
-
cell_obj = {
|
|
87
|
-
v: cell_value? +cell_value : 0,
|
|
88
|
-
t: 'n',
|
|
89
|
-
z: '#,##0.00%'
|
|
90
|
-
};
|
|
91
|
-
break;
|
|
92
|
-
case 'euro':
|
|
93
|
-
cell_obj = {
|
|
94
|
-
v: cell_value? +cell_value : 0,
|
|
95
|
-
t: 'n',
|
|
96
|
-
z: '"€"\ #,##0.00' // eslint-disable-line no-useless-escape
|
|
97
|
-
};
|
|
98
|
-
break;
|
|
99
|
-
|
|
100
|
-
default:
|
|
101
|
-
cell_obj = {
|
|
102
|
-
v: cell_value,
|
|
103
|
-
t: 's'
|
|
104
|
-
};
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
excel_row.push(cell_obj);
|
|
109
|
-
});
|
|
110
|
-
excel_data.push(excel_row);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
let ws = utilsXSLX.aoa_to_sheet(excel_data); // worksheet
|
|
114
|
-
// larghezza colonne
|
|
115
|
-
ws['!cols'] = [];
|
|
116
|
-
columns.forEach(col => {
|
|
117
|
-
ws['!cols'].push({ wch: values_lengths[col.key] + 4 });
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
return ws;
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function setSheetName(str) {
|
|
125
|
-
if(str.length > 31) {
|
|
126
|
-
return str.substring(0, 27) + '...';
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return str;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
let wb = utilsXSLX.book_new(); // workbook
|
|
133
|
-
|
|
134
|
-
utilsXSLX.book_append_sheet(
|
|
135
|
-
wb,
|
|
136
|
-
excel_sheet(params.columns, params.data),
|
|
137
|
-
setSheetName(params.downloadFilename)
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
if(params.extraDownloadSheets) {
|
|
141
|
-
params.extraDownloadSheets.forEach(item => {
|
|
142
|
-
|
|
143
|
-
utilsXSLX.book_append_sheet(
|
|
144
|
-
wb,
|
|
145
|
-
utilsXSLX.aoa_to_sheet(item.data),
|
|
146
|
-
setSheetName(item.name)
|
|
147
|
-
);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const filename = setDownloadFilename(params.downloadFilename, params.downloadFormat);
|
|
152
|
-
writeFileXLSX(wb, filename, {
|
|
153
|
-
bookType: 'xlsx',
|
|
154
|
-
cellDates: true
|
|
155
|
-
});
|
|
156
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Restituisce la stringa delle classi per la colonna data
|
|
2
|
-
import {data_types} from './columns-data-types';
|
|
3
|
-
|
|
4
|
-
export default function setClassName(col, addFormatClass = true) {
|
|
5
|
-
if(col.className) {
|
|
6
|
-
return col.className;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
if(col.dataType) {
|
|
10
|
-
|
|
11
|
-
return [
|
|
12
|
-
...(data_types[col.dataType]?.className? [data_types[col.dataType]?.className] : []),
|
|
13
|
-
...(addFormatClass? [data_types[col.dataType]?.formatClassName] : [])
|
|
14
|
-
].join(' ');
|
|
15
|
-
|
|
16
|
-
} else {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {defaults} from './defaults';
|
|
2
|
-
export default function setDownloadFilename(str, format = 'excel') {
|
|
3
|
-
const ext = format.toLowerCase() === 'excel'? 'xlsx' : 'csv';
|
|
4
|
-
if(str) {
|
|
5
|
-
str = str
|
|
6
|
-
.replace(/(\.csv)$/, '')
|
|
7
|
-
.replace(/(\.xslx?)$/, '')
|
|
8
|
-
.replace(/[/:]/g, '-')
|
|
9
|
-
.replace(/-+/g, '-')
|
|
10
|
-
.replace(/^-/, '')
|
|
11
|
-
.replace(/-$/, '');
|
|
12
|
-
|
|
13
|
-
return str + ' [' + new Date().toISOString().split('T')[0] + `].${ext}`;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return defaults.downloadFilename;
|
|
17
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export default function (tableEl, zeroValuesChar = null) {
|
|
2
|
-
|
|
3
|
-
const normalize = str => {
|
|
4
|
-
let is_number = !isNaN(parseFloat(str));
|
|
5
|
-
|
|
6
|
-
str = str.replace(/;/g, '').replace(/"/g, '""');
|
|
7
|
-
if(is_number) {
|
|
8
|
-
str = str.replace(/\./g, ''); // sep migliaia
|
|
9
|
-
}
|
|
10
|
-
return str;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
try {
|
|
14
|
-
if(!tableEl) {
|
|
15
|
-
throw new Error( 'table element not present' );
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// table to array
|
|
19
|
-
let download_array = [];
|
|
20
|
-
tableEl.querySelectorAll('tr').forEach(row => {
|
|
21
|
-
let rowArray = [];
|
|
22
|
-
|
|
23
|
-
row.querySelectorAll('th, td').forEach(item => {
|
|
24
|
-
rowArray.push(normalize(item.innerText));
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
download_array.push(rowArray.join(';'));
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
let csv = download_array.join('\n');
|
|
31
|
-
|
|
32
|
-
if(zeroValuesChar) {
|
|
33
|
-
csv = csv.replaceAll(zeroValuesChar, 0);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return csv;
|
|
37
|
-
|
|
38
|
-
// const url = new Blob([download_array.join('\n')], { type: 'text/csv;charset=utf-8;' });
|
|
39
|
-
|
|
40
|
-
// return URL.createObjectURL(url);
|
|
41
|
-
|
|
42
|
-
} catch(e) {
|
|
43
|
-
console.error( e ); // eslint-disable-line
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
90rem : 1440px
|
|
3
|
-
64rem : 1024px
|
|
4
|
-
47.5rem : 760px
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
@custom-media --media-xlarge-viewport-up (width > 90rem);
|
|
8
|
-
@custom-media --media-large-viewport-up (width > 64rem);
|
|
9
|
-
@custom-media --media-medium-viewport-up (width > 47.5rem);
|
|
10
|
-
|
|
11
|
-
@custom-media --media-large-viewport-only (64rem < width <= 90rem);
|
|
12
|
-
@custom-media --media-medium-viewport-only (47.5rem < width <= 64rem);
|
|
13
|
-
@custom-media --media-small-viewport-only (width <= 47.5rem);
|
|
14
|
-
|
|
15
|
-
@custom-media --media-xlarge-viewport-down (max-width: 90rem);
|
|
16
|
-
@custom-media --media-large-viewport-down (max-width: 64rem);
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
.icon { /* applied to the td */
|
|
2
|
-
text-align: center;
|
|
3
|
-
|
|
4
|
-
svg {
|
|
5
|
-
position: relative;
|
|
6
|
-
top: -3px;
|
|
7
|
-
width: var(--jt-bool-icon-size, 1.3em);
|
|
8
|
-
aspect-ratio: 1;
|
|
9
|
-
fill: none;
|
|
10
|
-
stroke: currentColor;
|
|
11
|
-
stroke-linecap: round;
|
|
12
|
-
stroke-linejoin: round;
|
|
13
|
-
stroke-width: 8px;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
&.true {
|
|
17
|
-
color: var(--jt-bool-true-color, #0a7202);
|
|
18
|
-
}
|
|
19
|
-
&.false {
|
|
20
|
-
color: var(--jt-bool-false-color, #c00);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/* TODO dark mode */
|
|
2
|
-
|
|
3
|
-
.infoOuterContainer {
|
|
4
|
-
position: sticky;
|
|
5
|
-
top: var(--js-info-container-sticky-top, 0);
|
|
6
|
-
left: var(--js-info-container-sticky-left, 0);
|
|
7
|
-
z-index: 10;
|
|
8
|
-
padding-block-end: var(--jt-outer-padding-block-end, 1rem);
|
|
9
|
-
background-color: var(--jt-outer-info-bg, #fff);
|
|
10
|
-
}
|
|
11
|
-
.infoContainer {
|
|
12
|
-
display: flex;
|
|
13
|
-
flex-direction: column;
|
|
14
|
-
flex-wrap: wrap;
|
|
15
|
-
gap: 1rem;
|
|
16
|
-
justify-content: stretch;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.resultInfo {
|
|
20
|
-
font-size: var(--jt-info-font-size, clamp(0.85rem, 0.6824rem + 0.3529vw, 1rem));
|
|
21
|
-
text-align: center;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@media (--media-medium-viewport-up) {
|
|
25
|
-
.infoContainer {
|
|
26
|
-
flex-direction: row;
|
|
27
|
-
align-items: center;
|
|
28
|
-
justify-content: space-between;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.resultInfo {
|
|
32
|
-
flex: 1;
|
|
33
|
-
text-align: start;
|
|
34
|
-
}
|
|
35
|
-
.search {
|
|
36
|
-
flex: 0 1 20rem;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.searchInput {
|
|
42
|
-
display: block;
|
|
43
|
-
width: 100%;
|
|
44
|
-
padding: var(--jt-search-input-padding-y, .375rem) var(--jt-search-input-padding-x, .75rem);
|
|
45
|
-
font-size: var(--jt-search-input-font-size, clamp(0.85rem, 0.6824rem + 0.3529vw, 1rem));
|
|
46
|
-
color: var(--jt-search-input-text-color, currentColor);
|
|
47
|
-
background-color: var(--jt-search-input-bg-color, transparent);
|
|
48
|
-
border: 1px solid var(--jt-search-input-border-color, #999);
|
|
49
|
-
border-radius: .4rem;
|
|
50
|
-
|
|
51
|
-
&:focus {
|
|
52
|
-
outline: 2px solid hsl(192deg 84% 63% / .7);
|
|
53
|
-
}
|
|
54
|
-
&::placeholder {
|
|
55
|
-
color: var(--jt-placeholder-color, #999);
|
|
56
|
-
text-align: center;
|
|
57
|
-
opacity: 1;
|
|
58
|
-
|
|
59
|
-
@media (--media-medium-viewport-up) {
|
|
60
|
-
text-align: start;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
&[disabled] {
|
|
64
|
-
opacity: .6;
|
|
65
|
-
&::placeholder {
|
|
66
|
-
font-style: italic;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
/* @media (prefers-color-scheme: dark) {
|
|
73
|
-
border-color: var(--jt -search-input-border-color-dark, #ecede8);
|
|
74
|
-
&:focus {
|
|
75
|
-
outline-color: var(--green-2);
|
|
76
|
-
}
|
|
77
|
-
} */
|
|
78
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/* stylelint-disable max-nesting-depth */
|
|
2
|
-
|
|
3
|
-
.tableWrapper {
|
|
4
|
-
position: relative;
|
|
5
|
-
max-width: 100%;
|
|
6
|
-
height: var(--js-table-wrapper-height, auto);
|
|
7
|
-
overflow-x: auto;
|
|
8
|
-
overflow-y: visible;
|
|
9
|
-
|
|
10
|
-
/* TODO ombra laterale su overflow della tabella (vedi pannello staff dashboard) */
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.table {
|
|
14
|
-
|
|
15
|
-
--sort-arrows-wrapper-translate-x: -2px;
|
|
16
|
-
|
|
17
|
-
/* TODO fix thead sticky -> vedi TODO in main-builder per impostare l'altezza di tableWrapper */
|
|
18
|
-
/* TODO ombra a sostituire il bordo che scompare nello scroll sticky */
|
|
19
|
-
/* TODO attivare sticky su info e thead con due opzioni default true */
|
|
20
|
-
thead {
|
|
21
|
-
position: sticky;
|
|
22
|
-
top: var(--js-thead-sticky-top, 0);
|
|
23
|
-
z-index: var(--js-thead-zindex, 10);
|
|
24
|
-
/* background-clip: padding-box; */
|
|
25
|
-
|
|
26
|
-
th {
|
|
27
|
-
&.sort {
|
|
28
|
-
position: relative;
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
&.sortingOn {
|
|
33
|
-
.sortArrowsWrapper {
|
|
34
|
-
display: flex;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/* sorting ASC activated */
|
|
39
|
-
&.sortingAsc {
|
|
40
|
-
.sortDesc {
|
|
41
|
-
display: none;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/* sorting DESC activated */
|
|
46
|
-
&.sortingDesc {
|
|
47
|
-
.sortAsc {
|
|
48
|
-
display: none;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&:hover, &:focus, &:focus-within {
|
|
54
|
-
|
|
55
|
-
/* only needed to maintan hover status while hovering mouse from a column to the other */
|
|
56
|
-
&::after {
|
|
57
|
-
position: absolute;
|
|
58
|
-
top: 100%;
|
|
59
|
-
left: 0;
|
|
60
|
-
z-index: 1;
|
|
61
|
-
display: block;
|
|
62
|
-
width: 100%;
|
|
63
|
-
height: calc(var(--jt-sort-arrows-size, .9rem) * 1.5);
|
|
64
|
-
content: '';
|
|
65
|
-
background-color: var(--jt-thead-sort-overlay-bg, rgb(0 0 0 / .1));
|
|
66
|
-
filter: blur(1rem);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.sortArrowsWrapper {
|
|
70
|
-
z-index: 2;
|
|
71
|
-
box-shadow: var(--jt-sort-arrows-wrapper-hover-box-shadow, 0 2px 1rem rgb(0 0 0 / .6));
|
|
72
|
-
scale: 1.4;
|
|
73
|
-
translate: var(--sort-arrows-wrapper-translate-x) 100%;
|
|
74
|
-
|
|
75
|
-
.sortArrow {
|
|
76
|
-
display: block;
|
|
77
|
-
|
|
78
|
-
&.sortActive {
|
|
79
|
-
color: var(--jt-sort-arrows-active-fill, #33ef15);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
@media (hover: hover) {
|
|
83
|
-
&:hover {
|
|
84
|
-
color: var(--jt-sort-arrows-hover-fill, #000);
|
|
85
|
-
background-color: var(--jt-sort-arrows-hover-bg, #fff);
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&:active {
|
|
91
|
-
color: var(--jt-sort-arrows-btn-active-color, #000);
|
|
92
|
-
background-color: var(--jt-sort-arrows-btn-active-bg, #33ef15);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
} /* end hover... thead */
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/* sort */
|
|
103
|
-
.sortBtn {
|
|
104
|
-
width: 100%;
|
|
105
|
-
height: 100%;
|
|
106
|
-
padding: 0;
|
|
107
|
-
margin: 0;
|
|
108
|
-
background: transparent;
|
|
109
|
-
border: none;
|
|
110
|
-
box-shadow: none;
|
|
111
|
-
}
|
|
112
|
-
.sortArrowsWrapper {
|
|
113
|
-
position: absolute;
|
|
114
|
-
top: auto;
|
|
115
|
-
right: 0;
|
|
116
|
-
bottom: 0;
|
|
117
|
-
left: auto;
|
|
118
|
-
|
|
119
|
-
display: flex;
|
|
120
|
-
flex-flow: row nowrap;
|
|
121
|
-
gap: .3rem;
|
|
122
|
-
align-items: center;
|
|
123
|
-
justify-content: flex-end;
|
|
124
|
-
|
|
125
|
-
background-color: var(--jt-sort-arrows-wrapper-bg-color, #000);
|
|
126
|
-
border: var(--jt-sort-arrows-wrapper-border, 1px solid #666);
|
|
127
|
-
border-radius: 99rem;
|
|
128
|
-
box-shadow: var(--jt-sort-arrows-wrapper-box-shadow, 0 0 5px rgb(0 0 0 / .4));
|
|
129
|
-
transition: scale, translate .1s linear;
|
|
130
|
-
transform-origin: bottom right;
|
|
131
|
-
scale: 0;
|
|
132
|
-
translate: var(--sort-arrows-wrapper-translate-x) 35%;
|
|
133
|
-
|
|
134
|
-
/* sorting has been activated for this col */
|
|
135
|
-
.sortingOn & {
|
|
136
|
-
scale: 1;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.sortArrow { /* role button */
|
|
141
|
-
position: relative;
|
|
142
|
-
width: var(--jt-sort-arrows-size, .9rem);
|
|
143
|
-
aspect-ratio: 1;
|
|
144
|
-
padding: var(--jt-sort-arrows-wrapper-padding, 3px);
|
|
145
|
-
color: var(--jt-sort-arrows-fill, #fff);
|
|
146
|
-
/* cursor: pointer; */
|
|
147
|
-
border-radius: 50%;
|
|
148
|
-
|
|
149
|
-
svg {
|
|
150
|
-
position: absolute;
|
|
151
|
-
top: 50%;
|
|
152
|
-
left: 50%;
|
|
153
|
-
width: 100%;
|
|
154
|
-
fill: currentColor;
|
|
155
|
-
transform-origin: center;
|
|
156
|
-
translate: -50% -50%;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.sortAsc {
|
|
162
|
-
svg {
|
|
163
|
-
/* top: var(--jt-sort-asc-arrow-svg-vertical-adjust, 3px); */
|
|
164
|
-
rotate: var(--jt-sort-asc-arrow-rotate, 180deg);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
.sortDesc {
|
|
168
|
-
svg {
|
|
169
|
-
/* top: var(--jt-sort-desc-arrow-svg-vertical-adjust, -3px); */
|
|
170
|
-
rotate: var(--jt-sort-desc-arrow-rotate, 0);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#000000" viewBox="0 0 256 256"><path d="M208.49,152.49l-72,72a12,12,0,0,1-17,0l-72-72a12,12,0,0,1,17-17L116,187V40a12,12,0,0,1,24,0V187l51.51-51.52a12,12,0,0,1,17,17Z"></path></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg"><path d="M48 84c19.882 0 36-16.118 36-36S67.882 12 48 12 12 28.118 12 48s16.118 36 36 36zm16-52L33 63m31 0L33 32"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg"><path d="m64.5 39-22.013 21-10.987-10.5"/><path d="m48 84c19.8823 0 36-16.1177 36-36s-16.1177-36-36-36-36 16.1177-36 36 16.1177 36 36 36z"/></svg>
|