@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.
Files changed (165) hide show
  1. package/design-tokens/README.md +195 -0
  2. package/design-tokens/tokens/src/components/unsplash-page/unsplash-page.minimo.tokens.jsonc +69 -31
  3. package/design-tokens/{utilities/tokens-config-sample.mjs → tokens-config-sample.mjs} +10 -10
  4. package/dev-tools/starter-kit/starter-install.sh +1 -1
  5. package/package.json +6 -2
  6. package/snippets/error-pages/error-pages.js +3 -2
  7. package/src/components/unsplash-page/unsplash-page.minimo.tokens.mjs +78 -39
  8. package/src/components/unsplash-page/unsplash-page.module.css +25 -6
  9. package/src/custom-properties.css +8 -1
  10. package/src/minimo.css +1 -1
  11. package/src/web-components/s-datatable-component/s-datatable-component.js +4 -1
  12. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/index.js +0 -92
  13. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/hbars.js +0 -356
  14. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/pie.js +0 -245
  15. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/radial-bars.js +0 -177
  16. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/rating-display.js +0 -835
  17. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/costruzione-assi.js +0 -212
  18. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/costruzione-linee.js +0 -101
  19. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/defaults.js +0 -185
  20. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/display-current.js +0 -27
  21. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/grid-areas.js +0 -129
  22. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/parse-opts.js +0 -64
  23. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile-src/paths-setup.js +0 -73
  24. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/settimanale-mensile.js +0 -126
  25. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/charts/signal-bars.js +0 -290
  26. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/src/week-utils.js +0 -122
  27. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/hbars-test.js +0 -52
  28. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/mcn-test.js +0 -74
  29. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/pie-test.js +0 -16
  30. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/radial-bars-test.js +0 -48
  31. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/settimanale-mensile-dati-settimanale.js +0 -426
  32. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/settimanale-mensile-test.js +0 -260
  33. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/browser-test/src/signal-bars-test.js +0 -64
  34. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/node-test.mjs +0 -86
  35. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/hBars-node-test.mjs +0 -40
  36. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/lines-node-test.mjs +0 -73
  37. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/mcn-node-test.mjs +0 -64
  38. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/pie-node-test.mjs +0 -12
  39. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/radialsBar-node-test.mjs +0 -44
  40. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/settimanale-mensile-node-test.mjs +0 -258
  41. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/node-test/src/signalBars-node-test.mjs +0 -36
  42. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/test-readme.md +0 -24
  43. package/charts/TODO charts/1a-vers DA RIFATTORIZZARE/test/textToPath-test.mjs +0 -14
  44. package/charts/TODO charts/???/InfoBox.js +0 -456
  45. package/charts/TODO charts/???/README-upg OLD/342/206/222NEW.md" +0 -53
  46. package/charts/TODO charts/???/README.md +0 -1
  47. package/charts/TODO charts/???/TODO.md +0 -39
  48. package/charts/TODO charts/???/base-cfg.js +0 -66
  49. package/charts/TODO charts/???/rating-displayOLD.js +0 -837
  50. package/charts/TODO charts/docs/TODO.md +0 -1
  51. package/charts/TODO charts/docs/costruzione display rating.md +0 -145
  52. package/charts/TODO charts/test/node-test.mjs +0 -92
  53. package/charts/TODO charts/test/test-readme.md +0 -23
  54. package/charts/TODO charts/test/test-src/rating-display-extra-test.js +0 -132
  55. package/charts/TODO charts/test/test-src/rating-display-test.js +0 -155
  56. package/charts/TODO charts/test/textToPath-test.mjs +0 -14
  57. package/charts/TODO.md +0 -7
  58. package/charts/src/node-helpers/TODO.md +0 -2
  59. package/dev-tools/starter-kit/TODO.md +0 -135
  60. package/src/components/TODO form-multiselect/form-multiselect.css +0 -40
  61. package/src/components/TODO form-multiselect/form-multiselect.js +0 -83
  62. package/src/components/TODO vanilla-cookie-consent/cookie-consent.css +0 -20
  63. package/src/components/TODO vanilla-cookie-consent/cookie-consent.js +0 -76
  64. package/src/components/TODO vanilla-cookie-consent/render-cookie-list.js +0 -32
  65. package/src/components/TODO vanilla-cookie-consent/src/cookie-list.js +0 -85
  66. package/src/components/TODO vanilla-cookie-consent/src/it-translation.js +0 -38
  67. package/src/components/TODO vanilla-cookie-consent/src/run-analytics.js +0 -54
  68. package/src/components/TODO vanilla-cookie-consent/src/run-recaptcha.js +0 -71
  69. package/src/components/autocomplete/TODO.md +0 -4
  70. package/src/web-components/TODO json-table/README.md +0 -67
  71. package/src/web-components/TODO json-table/TODO.md +0 -12
  72. package/src/web-components/TODO json-table/_work/OLD/docs/custom-props-list.md +0 -69
  73. package/src/web-components/TODO json-table/_work/OLD/script/create-css-custom-props-doc.mjs +0 -113
  74. package/src/web-components/TODO json-table/_work/OLD/script/src/custom-props-end.md +0 -4
  75. package/src/web-components/TODO json-table/_work/OLD/script/src/custom-props-start.md +0 -30
  76. package/src/web-components/TODO json-table/_work/OLD/src/css/icons.module.css +0 -22
  77. package/src/web-components/TODO json-table/_work/OLD/src/css/info.module.css +0 -42
  78. package/src/web-components/TODO json-table/_work/OLD/src/css/main-wrapper.module.css +0 -4
  79. package/src/web-components/TODO json-table/_work/OLD/src/css/table.module.css +0 -154
  80. package/src/web-components/TODO json-table/_work/OLD/src/css/utility.module.css +0 -9
  81. package/src/web-components/TODO json-table/_work/OLD/src/icons/false.svg +0 -1
  82. package/src/web-components/TODO json-table/_work/OLD/src/icons/search-arrows.svg +0 -1
  83. package/src/web-components/TODO json-table/_work/OLD/src/icons/true.svg +0 -1
  84. package/src/web-components/TODO json-table/_work/OLD/src/index.js +0 -56
  85. package/src/web-components/TODO json-table/_work/OLD/src/js/default-columns-data-types.js +0 -172
  86. package/src/web-components/TODO json-table/_work/OLD/src/js/defaults.js +0 -156
  87. package/src/web-components/TODO json-table/_work/OLD/src/js/info-section.js +0 -31
  88. package/src/web-components/TODO json-table/_work/OLD/src/js/listeners.js +0 -17
  89. package/src/web-components/TODO json-table/_work/OLD/src/js/main-builder.js +0 -26
  90. package/src/web-components/TODO json-table/_work/OLD/src/js/parse-params.js +0 -121
  91. package/src/web-components/TODO json-table/_work/OLD/src/js/set-column-classname.js +0 -22
  92. package/src/web-components/TODO json-table/_work/OLD/src/js/table-builder.js +0 -64
  93. package/src/web-components/TODO json-table/_work/OLD/src/js/table-foot.js +0 -8
  94. package/src/web-components/TODO json-table/_work/OLD/src/js/table-head.js +0 -47
  95. package/src/web-components/TODO json-table/_work/OLD/src/js/table-row.js +0 -83
  96. package/src/web-components/TODO json-table/_work/OLD/src/js/utilities.js +0 -5
  97. package/src/web-components/TODO json-table/_work/__json-table-react/index.js +0 -4
  98. package/src/web-components/TODO json-table/_work/__json-table-react/src/build-page-array.js +0 -73
  99. package/src/web-components/TODO json-table/_work/__json-table-react/src/columns-data-types.js +0 -73
  100. package/src/web-components/TODO json-table/_work/__json-table-react/src/defaults.js +0 -50
  101. package/src/web-components/TODO json-table/_work/__json-table-react/src/download-excel.js +0 -156
  102. package/src/web-components/TODO json-table/_work/__json-table-react/src/set-className.js +0 -19
  103. package/src/web-components/TODO json-table/_work/__json-table-react/src/set-download-filename.js +0 -17
  104. package/src/web-components/TODO json-table/_work/__json-table-react/src/table-to-csv.js +0 -48
  105. package/src/web-components/TODO json-table/_work/archived/table-to-csv.js +0 -48
  106. package/src/web-components/TODO json-table/_work/arrow.svg +0 -3
  107. package/src/web-components/TODO json-table/_work/da decidere/get-cell-data.js +0 -18
  108. package/src/web-components/TODO json-table/_work/download-button.js +0 -29
  109. package/src/web-components/TODO json-table/_work/download-excel.js +0 -155
  110. package/src/web-components/TODO json-table/_work/pagination-array-builder.js +0 -73
  111. package/src/web-components/TODO json-table/_work/pagination.js +0 -37
  112. package/src/web-components/TODO json-table/_work/set-download-filename.js +0 -19
  113. package/src/web-components/TODO json-table/_work/table-info.js +0 -24
  114. package/src/web-components/TODO json-table/demo/README.md +0 -66
  115. package/src/web-components/TODO json-table/demo/assets/link-simple.svg +0 -1
  116. package/src/web-components/TODO json-table/demo/demo-data/json-static-table-demo-data.js +0 -512
  117. package/src/web-components/TODO json-table/demo/demo.css +0 -32
  118. package/src/web-components/TODO json-table/demo/demo.js +0 -24
  119. package/src/web-components/TODO json-table/demo/js/demo-ajax-table.js +0 -165
  120. package/src/web-components/TODO json-table/demo/js/demo-static-table.js +0 -180
  121. package/src/web-components/TODO json-table/demo/webpack-modules/css-rules.mjs +0 -122
  122. package/src/web-components/TODO json-table/demo/webpack-modules/get-jsConfig-aliases.mjs +0 -33
  123. package/src/web-components/TODO json-table/demo/webpack-modules/svg-rules.mjs +0 -108
  124. package/src/web-components/TODO json-table/demo/webpack-modules/svgo.config.mjs +0 -26
  125. package/src/web-components/TODO json-table/demo/webpack.config.mjs +0 -333
  126. package/src/web-components/TODO json-table/docs/custom-props-list.md +0 -74
  127. package/src/web-components/TODO json-table/docs-builder/create-css-custom-props-doc.mjs +0 -157
  128. package/src/web-components/TODO json-table/docs-builder/src/custom-props-end.md +0 -6
  129. package/src/web-components/TODO json-table/docs-builder/src/custom-props-start.md +0 -29
  130. package/src/web-components/TODO json-table/src/TODO.md +0 -1
  131. package/src/web-components/TODO json-table/src/__json-table-react/build-page-array.js +0 -73
  132. package/src/web-components/TODO json-table/src/__json-table-react/columns-data-types.js +0 -73
  133. package/src/web-components/TODO json-table/src/__json-table-react/defaults.js +0 -50
  134. package/src/web-components/TODO json-table/src/__json-table-react/download-excel.js +0 -156
  135. package/src/web-components/TODO json-table/src/__json-table-react/set-className.js +0 -19
  136. package/src/web-components/TODO json-table/src/__json-table-react/set-download-filename.js +0 -17
  137. package/src/web-components/TODO json-table/src/__json-table-react/table-to-csv.js +0 -48
  138. package/src/web-components/TODO json-table/src/css/custom-media.css +0 -16
  139. package/src/web-components/TODO json-table/src/css/icons.module.css +0 -22
  140. package/src/web-components/TODO json-table/src/css/info-section.module.css +0 -78
  141. package/src/web-components/TODO json-table/src/css/main-builder.module.css +0 -6
  142. package/src/web-components/TODO json-table/src/css/table.module.css +0 -172
  143. package/src/web-components/TODO json-table/src/css/utility.module.css +0 -9
  144. package/src/web-components/TODO json-table/src/icons/arrow-down-bold.svg +0 -1
  145. package/src/web-components/TODO json-table/src/icons/false.svg +0 -1
  146. package/src/web-components/TODO json-table/src/icons/true.svg +0 -1
  147. package/src/web-components/TODO json-table/src/index.js +0 -125
  148. package/src/web-components/TODO json-table/src/js/default-columns-data-types.js +0 -172
  149. package/src/web-components/TODO json-table/src/js/defaults.js +0 -510
  150. package/src/web-components/TODO json-table/src/js/get-ajax-data.js +0 -72
  151. package/src/web-components/TODO json-table/src/js/info-section.js +0 -39
  152. package/src/web-components/TODO json-table/src/js/init-ajax-table.js +0 -30
  153. package/src/web-components/TODO json-table/src/js/init-static-table.js +0 -18
  154. package/src/web-components/TODO json-table/src/js/main-builder.js +0 -87
  155. package/src/web-components/TODO json-table/src/js/parse-data-row.js +0 -123
  156. package/src/web-components/TODO json-table/src/js/parse-params.js +0 -118
  157. package/src/web-components/TODO json-table/src/js/set-search-listener.js +0 -62
  158. package/src/web-components/TODO json-table/src/js/set-sort-listeners.js +0 -115
  159. package/src/web-components/TODO json-table/src/js/static-data-sorting.js +0 -23
  160. package/src/web-components/TODO json-table/src/js/table-builder.js +0 -45
  161. package/src/web-components/TODO json-table/src/js/table-row.js +0 -43
  162. package/src/web-components/TODO json-table/src/js/table-tfoot.js +0 -9
  163. package/src/web-components/TODO json-table/src/js/table-thead.js +0 -91
  164. package/src/web-components/TODO json-table/src/js/update-info.js +0 -42
  165. package/src/web-components/TODO json-table/src/js/utilities.js +0 -5
@@ -1,212 +0,0 @@
1
- // costruisce un sistema di assi cartesiani
2
- // TODO da unificare con ada-frontend/ada-charts/src/components/cartesian-axis.js
3
-
4
- export async function costruzioneAssi({
5
- cfg, // oggetto cfg come quello indicato in `charts/andamento-annuale-src/defaults.js`
6
- xLabels, // array con le etichette dell'asseX
7
- adaChartIstance // istanza classe
8
- }) {
9
-
10
- try {
11
-
12
- // =>> ASSE Y
13
- // *****************************************
14
- const yAxisGroup = cfg.svgCanvas.group();
15
- yAxisGroup
16
- .attr({ 'data-cfg.debug-info': cfg.debug? 'Gruppo Asse Y' : null })
17
- .line(
18
- cfg.chart_area.left, cfg.chart_area.top,
19
- cfg.chart_area.left, cfg.chart_area.bottom
20
- )
21
- .attr({
22
- 'data-cfg.debug-info': cfg.debug? 'Asse Y' : null,
23
- class: cfg.axisClassName, // se il valore è null l'attributo viene ignorato
24
- ...cfg.axisAttrs
25
- });
26
-
27
-
28
- // =>> ticks ed etichette asse Y (dal basso verso l'alto)
29
- const ticksYGroup = yAxisGroup.group().attr({
30
- 'data-cfg.debug-info': cfg.debug? 'Gruppo ticks Asse Y' : null,
31
- class: cfg.ticksClassName, // se il valore è null l'attributo viene ignorato
32
- });
33
- const labelsYGroup = yAxisGroup.group().attr({
34
- 'data-cfg.debug-info': cfg.debug? 'Gruppo etichette Asse Y' : null,
35
- class: cfg.labelYClassName,
36
- });
37
-
38
- cfg.gridGroup = null; // inserita in cfg per poter essere riposizionata
39
- if(cfg.horizGrid) {
40
- cfg.gridGroup = cfg.svgCanvas.group().attr({
41
- 'data-cfg.debug-info': cfg.debug? 'Gruppo griglia' : null
42
- });
43
- }
44
-
45
- for await (const stepIdx of Array.from(Array(cfg.stepY_count + 1).keys())) {
46
-
47
- const y = cfg.chart_area.bottom - (cfg.stepY_size * stepIdx)
48
- ,label = cfg.labelYFormatter(cfg.stepY_value * stepIdx);
49
-
50
- // =>> ticks Y
51
- ticksYGroup
52
- .line(
53
- cfg.chart_area.left - cfg.ticksLength, y,
54
- cfg.chart_area.left, y
55
- )
56
- .attr({
57
- 'data-cfg.debug-info': cfg.debug? 'Ticks asse X' : null,
58
- ...cfg.ticksAttrs
59
- });
60
-
61
- // =>> etichette Y
62
- const [label_bbox, labelEl] = await adaChartIstance.createTextEl ({
63
- text: label,
64
- textFill: cfg.labelYAttrs.fill?? '#000',
65
- fontAttr: cfg.labelYAttrs,
66
- fontFilePath: cfg.labelYFontFilePath,
67
- parentElement: labelsYGroup
68
- });
69
-
70
- labelEl.move(
71
- cfg.chart_area.left - cfg.ticksLength - 2 - label_bbox.width, // 2 è un distanziatore tra l'etichetta e la linea
72
- y - label_bbox.height / 2
73
- );
74
-
75
- // =>> griglia orizzontale
76
- if(cfg.horizGrid && stepIdx > 0) { // la prima linea coincide con l'asse X
77
- cfg.gridGroup.line(
78
- cfg.chart_area.left, y,
79
- cfg.chart_area.right, y
80
- )
81
- .attr(cfg.horizGridAttrs);
82
- }
83
-
84
- } // end for await stepIdx
85
-
86
- // =>> titolo asse Y
87
- if(cfg.asseYTitle) {
88
- const [title_bbox, titleEl] = await adaChartIstance.createTextEl ({
89
- text: cfg.asseYTitle,
90
- textFill: cfg.asseYTitleAttrs.fill?? '#000',
91
- fontAttr: cfg.asseYTitleAttrs,
92
- fontFilePath: cfg.asseYTitleFontFilePath,
93
- parentElement: yAxisGroup
94
- });
95
-
96
- titleEl.move(
97
- cfg.padding - (title_bbox.width / 2) + (title_bbox.height / 2),
98
- (cfg.chart_area.bottom - title_bbox.height) / 2
99
- )
100
- .rotate(-90)
101
- ;
102
- }
103
-
104
-
105
-
106
- // =>> ASSE X
107
- // *****************************************
108
- const xAxisGroup = cfg.svgCanvas.group();
109
- xAxisGroup
110
- .attr({ 'data-cfg.debug-info': cfg.debug? 'Gruppo Asse X' : null })
111
- .line(
112
- cfg.chart_area.left, cfg.chart_area.bottom,
113
- cfg.chart_area.right, cfg.chart_area.bottom
114
- )
115
- .attr({
116
- 'data-cfg.debug-info': cfg.debug? 'Asse X' : null,
117
- class: cfg.axisClassName,
118
- ...cfg.axisAttrs
119
- });
120
-
121
- // =>> ticks, etichette ecc asse X (da sinistra a destra)
122
- const ticksXGroup = xAxisGroup.group().attr({
123
- 'data-cfg.debug-info': cfg.debug? 'Gruppo ticks Asse X' : null,
124
- class: cfg.ticksClassName,
125
- });
126
- const labelsXGroup = xAxisGroup.group().attr({
127
- 'data-cfg.debug-info': cfg.debug? 'Gruppo etichette Asse X' : null,
128
- class: cfg.labelXClassName,
129
- });
130
-
131
-
132
- let labelIdx = 0;
133
-
134
- // coordinata y per il posizionamentoi delle etichette
135
- const labelY = cfg.chart_area.bottom + cfg.ticksLength + 2;
136
-
137
- // Y del blocco etichette (comprese le etichette stesse) per utilizzo in altre parti dello script
138
- cfg.xLabelsEndY = 0;
139
-
140
- for await (const thisLabel of xLabels) {
141
- const x = cfg.chart_area.left + (cfg.stepX_size * labelIdx);
142
-
143
- // =>> ticks X
144
- ticksXGroup
145
- .line(
146
- x, cfg.chart_area.bottom + cfg.ticksLength,
147
- x, cfg.chart_area.bottom
148
- )
149
- .attr({
150
- 'data-cfg.debug-info': cfg.debug? 'Ticks asse X' : null,
151
- ...cfg.ticksAttrs
152
- });
153
-
154
- // =>> etichette X
155
- if(!cfg.labelXShowEvensOnly || thisLabel % 2 === 0 ) {
156
- const [label_bbox, labelEl] = await adaChartIstance.createTextEl ({
157
- text: thisLabel,
158
- textFill: cfg.labelXAttrs.fill?? '#000',
159
- fontAttr: cfg.labelXAttrs,
160
- fontFilePath: cfg.labelXFontFilePath,
161
- parentElement: labelsXGroup
162
- });
163
-
164
- labelEl.move(
165
- x - label_bbox.width / 2,
166
- labelY
167
- );
168
-
169
- // per la seconda riga di etichette
170
- cfg.xLabelsEndY = Math.max(cfg.xLabelsEndY, labelY + label_bbox.height);
171
- }
172
-
173
- // TODO sotto griglia verticale
174
-
175
- // =>> griglia verticale
176
- if(cfg.vertGrid && labelIdx > 0) { // la prima linea coincide con l'asse Y
177
- cfg.gridGroup.line(
178
- x, cfg.chart_area.bottom,
179
- x, cfg.chart_area.top
180
- )
181
- .attr(cfg.vertGridAttrs);
182
- }
183
-
184
-
185
- labelIdx++;
186
-
187
- } // end for await thisLabel
188
-
189
-
190
- // =>> titolo asse X
191
- if(cfg.asseXTitle) {
192
- const [title_bbox, titleEl] = await adaChartIstance.createTextEl ({
193
- text: cfg.asseXTitle,
194
- textFill: cfg.asseXTitleAttrs.fill?? '#000',
195
- fontAttr: cfg.asseXTitleAttrs,
196
- fontFilePath: cfg.asseXTitleFontFilePath,
197
- parentElement: xAxisGroup
198
- });
199
-
200
- titleEl.move(
201
- cfg.chart_area.left + (cfg.chart_area.width - title_bbox.width) / 2,
202
- cfg.height - cfg.padding - title_bbox.height
203
- );
204
-
205
- }
206
-
207
- return cfg;
208
-
209
- } catch(e) {
210
- console.error( 'AdaCharts → costruzioneAssi', e ); // eslint-disable-line
211
- }
212
- }
@@ -1,101 +0,0 @@
1
- export function costruzioneLinee(cfg) {
2
-
3
- // area range positivo negativo
4
- const rangeScenari = cfg.svgCanvas.group().attr({
5
- 'data-cfg.debug-info': cfg.debug? 'Range positivo-negativo' : null
6
- });
7
- if(cfg.mostraRangeScenari) {
8
- rangeScenari
9
- .path(
10
- 'M ' +
11
- cfg.coords.budget_positivo.map(item => `${item.join(',')}`).join(' L') +
12
- cfg.coords.budget_negativo.toReversed().map(item => `L${item.join(',')}`).join(' ') +
13
- ' Z'
14
- )
15
- .attr({
16
- ...cfg.rangeScenariAttrs
17
-
18
- });
19
- }
20
- // linee (opzionali) bordi negativo e positivo
21
- if(Object.keys(cfg.lineeRangeScenari).length) {
22
- rangeScenari
23
- .polyline(cfg.coords.budget_positivo)
24
- .attr(cfg.lineeRangeScenari);
25
-
26
- rangeScenari
27
- .polyline(cfg.coords.budget_negativo)
28
- .attr(cfg.lineeRangeScenari);
29
-
30
- }
31
-
32
- // spostamento in primo piano della griglia, sopra il range
33
- cfg.gridGroup.front();
34
-
35
- cfg.lineeGroup = cfg.svgCanvas.group()
36
- .attr({
37
- 'data-cfg.debug-info': cfg.debug? 'Linee' : null
38
- });
39
-
40
-
41
- // linee
42
- [
43
- {
44
- data : cfg.coords.budget_standard,
45
- attrs : cfg.budget_standard_line_attrs,
46
- points_attrs : cfg.budget_standard_points_attrs,
47
- debug_info : 'Budget standard'
48
- },
49
- {
50
- data : cfg.coords.consolidato_prec,
51
- attrs : cfg.consolidato_prec_line_attrs,
52
- points_attrs : cfg.consolidato_prec_point_attrs,
53
- debug_info : 'consolidato anno prec.'
54
- },
55
- {
56
- data : cfg.coords.consolidato,
57
- attrs : cfg.consolidato_line_attrs,
58
- points_attrs : cfg.consolidato_points_attrs,
59
- debug_info : 'consolidato'
60
- },
61
-
62
- ...(
63
- cfg.showConsolidatoForecast
64
- ? [{
65
- data : cfg.coords.consolidato_forecast,
66
- attrs : cfg.consolidato_forecast_line_attrs,
67
- points_attrs : cfg.consolidato_forecast_point_attrs,
68
- debug_info : 'consolidato forecast'
69
- }]
70
- : []
71
- )
72
- ].forEach(line => {
73
-
74
-
75
- cfg.lineeGroup
76
- .polyline(line.data)
77
- .attr({...line.attrs, fill: 'none'});
78
-
79
- if(Object.keys(line.points_attrs??{}).length) {
80
-
81
-
82
- const thisPointsGroup = cfg.lineeGroup.group()
83
- .attr({
84
- 'data-cfg.debug-info': cfg.debug? `Punti ${line.debug_info}` : null,
85
- ...{...line.points_attrs, r: null, cx: null, cy: null},
86
- });
87
-
88
- line.data.forEach(point => {
89
- thisPointsGroup.circle({
90
- r: line.points_attrs.r,
91
- cx: point[0],
92
- cy: point[1]
93
- });
94
- });
95
- }
96
- });
97
-
98
-
99
-
100
- return cfg;
101
- }
@@ -1,185 +0,0 @@
1
- export const default_opts = {
2
- /** mostra info utile per il debug */
3
- debug: false,
4
-
5
- /** container (selettore o elemento DOM), se null viene restituito il codice SVG */
6
- container: null,
7
-
8
- /**
9
- larghezza e altezza del grafico (px),
10
- Se il container è presente e i parametro `width` o `height` sono `null`,
11
- quelli mancanti vengono ricavati dallaìe dimensioni del container
12
- */
13
- width: null,
14
- height: null,
15
-
16
- /** TODO resizeObserver
17
- Se true, il grafico viene ricalcolato al variare delle dimensioni del container (richiesto)
18
- il parametro `width` anche se impostato, viene ignorato
19
- */
20
- resizeObserver: false,
21
-
22
- /** attributi facoltativi per l'svg */
23
- svgAttrs: {},
24
-
25
- /** griglia orizzontale e verticale */
26
- horizGrid: true,
27
- horizGridAttrs: {},
28
-
29
- vertGrid: true,
30
- vertGridAttrs: {},
31
-
32
- /** settimanale o mensile */
33
- modo: 'settimanale',
34
-
35
- /** spazio extra attorno al bordo */
36
- padding: 10,
37
-
38
- /** suddivisioni asse Y */
39
- stepY_count: 4,
40
-
41
- /** px, altezza o larghezza ticks (secondo l'orientamento) */
42
- ticksLength: 5,
43
-
44
- /** parametri legenda (vedi componente ada-charts/src/components/legenda.js) */
45
- legenda: {},
46
-
47
- /**
48
- larghezza area etichette asse y
49
- */
50
- eti_asseY_width: 60,
51
-
52
- /** altezza area etichette asse x */
53
- eti_asseX_height: 30,
54
-
55
- /** titoli assi */
56
- asseYTitle: null,
57
- asseYTitleAttrs: null,
58
- asseYTitleFontFilePath: null,
59
-
60
- asseXTitle: null,
61
- asseXTitleAttrs: null,
62
- asseXTitleFontFilePath: null,
63
-
64
- /**
65
- solo settimanale.
66
- la settimana zero corrisponde ai dati al 31/12 dell'anno precedente a quello in esame
67
- se true la settimana zero non viene rappresentata nel grafico
68
- e l'origine x del grafico corrisponde alla settimana 1
69
- (il motivo è che la settimana 0 ha generalmente un valore molto più elevato
70
- degli altri e rende il grafico illeggibile)
71
- */
72
- skipWeek0: true,
73
-
74
- /** evidenzia la griglia verticale corrispondente alla settimana / mese correnti */
75
- showCurrent: true,
76
- currentWeekAttrs: {},
77
- currentMonthAttrs: {},
78
-
79
- /**
80
- Aree di evidenziazione dei mesi (settimanale)
81
- */
82
- monthsAreasAttrs: {},
83
-
84
- /** se true mostra un area di relativa ai valori min/max degli scenari */
85
- mostraRangeScenari: true,
86
- rangeScenariAttrs: {},
87
-
88
- /**
89
- se `lineeRangeScenari` non è un oggetto vuoto, vengono mostrate
90
- le linee positive/negativo secondo gli attributi svg.js indicati.
91
- Questa opzione è indipendente da `mostraRangeScenari`
92
- */
93
- lineeRangeScenari: {},
94
-
95
- /** anno esaminato */
96
- anno: new Date().getFullYear(),
97
-
98
- /** parametri infoBox (vedi componente) */
99
- infoBoxItems: null,
100
- infoBoxPositionRefs: null,
101
-
102
- /**
103
- array dati
104
-
105
- Ogni elemento deve avere questa struttura
106
- {
107
- w: <num>, // numero settimana (se settimanale)
108
- m: <num>, // numero mese (se mensile)
109
-
110
- s: <num>, // valore scenario standard
111
- p: <num>, // valore scenario positivo
112
- n: <num>, // valore scenario negativo
113
- c: <num>, // valore consolidato anno corrente (può essere null)
114
- cp: <num>, // valore consolidato anno precedente
115
- cf: <num> // valore consolidato forecast (può non essere presente o null)
116
- }
117
- */
118
- chartData: [],
119
-
120
- /**
121
- classi e attributi dei vari elementi.
122
- Per gli attributi, ogni variabile è un oggetto di attributi svg.js, es:
123
-
124
- {
125
- stroke: '#414141',
126
- 'stroke-width': 1,
127
- 'shape-rendering': 'crispEdges',
128
-
129
- // oppure
130
- class: 'xxxx'
131
- }
132
-
133
- */
134
- axisAttrs: {},
135
-
136
- ticksAttrs: {},
137
-
138
- labelXAttrs: {}, // contiene gli attributi fonts (come in AdaCharts.defaults.font) e l'attributo `fill`
139
- labelXFontFilePath: null, // percorso font per textToPath
140
- labelXShowEvensOnly: false,
141
-
142
- // attributi per la seconda riga di etichette X, in sua assenza il default è dati dagli attributi della prima riga
143
- label2XAttrs: null,
144
- labelX2FontFilePath: null, // percorso font per textToPath
145
- label2TopGap: 2, // spazio aggiuntivo tra la prima e lasecondas riga di etichette
146
-
147
- labelYAttrs: {}, // contiene gli attributi fonts (come in AdaCharts.defaults.font) e l'attributo `fill`
148
- labelYFontFilePath: null, // percorso font per textToPath
149
-
150
- /**
151
- attributi delle varie linee
152
- se l'oggetto `line***PointsAttrs`, dove presente, non è vuoto,
153
- viene aggiunto un cerchio ad ogni punto della linea
154
- (NB: non aggiungere `cx` o cy`)
155
- */
156
- budget_standard_line_attrs: {},
157
- budget_standard_points_attrs: {},
158
-
159
- budget_positivo_line_attrs: {},
160
- budget_negativo_line_attrs: {},
161
-
162
- consolidato_line_attrs: {},
163
- consolidato_points_attrs: {},
164
-
165
- consolidato_prec_line_attrs: {},
166
- consolidato_prec_point_attrs: {},
167
-
168
- // TODO verificare
169
- showConsolidatoForecast: false, // porzione di consolidato nomn ancora maturato (si usa il budget)
170
- consolidato_forecast_line_attrs: {},
171
- consolidato_forecast_point_attrs: {},
172
-
173
-
174
- /**
175
- Funzione per formattare le etichette dei valori dell'asse Y.
176
- Null per nessuna eleborazione.
177
- La funzione di default assume che il valore sia di tipo numerico
178
- */
179
- labelYFormatter: labelValue => Math.ceil(labelValue / 1e3)
180
- .toLocaleString('it-IT', {
181
- minimumFractionDigits: 0,
182
- maximumFractionDigits: 0
183
- }) +
184
- (labelValue > 0? '\u2009K' : ''), // \u2009 = thin space (https://www.compart.com/en/unicode/U+2009)
185
- };
@@ -1,27 +0,0 @@
1
- // evidenziazione settiman / mese correnti (solo per anno in corso)
2
-
3
- export function displayCurrent(cfg) {
4
-
5
- if(cfg.showCurrent && cfg.anno === new Date().getFullYear()) {
6
-
7
- if(cfg.isSettimanale) {
8
-
9
- const x = cfg.chart_area.left + (cfg.currentWeek - 1) * cfg.stepX_size;
10
- cfg.svgCanvas
11
- .line(
12
- x, cfg.chart_area.top,
13
- x, cfg.chart_area.bottom
14
- )
15
- .attr({
16
- 'data-cfg.debug-info': cfg.debug? 'Settimana corrente' : null,
17
- ...cfg.currentWeekAttrs
18
- });
19
-
20
- } else {
21
-
22
- // TODO showCurrent per mese
23
- }
24
- }
25
-
26
- return cfg;
27
- }
@@ -1,129 +0,0 @@
1
- // aree e ed etichette mesi
2
- import { getWeekOfDate } from '../../week-utils.js';
3
-
4
- export async function gridAreas(cfg, adaChartIstance) {
5
-
6
- // =>> settimane di inizio e fine, numero settimane, coordinata x e larghezza dei mesi aull'asse X,
7
- //
8
- cfg.months_weeks = [];
9
- for(let i = 0; i < 12; i++) {
10
-
11
- // NB: i (mese) è base 0, start_week e end_week sono base 1
12
-
13
- let start_week = i === 0 ? (cfg.skipWeek0? 1 : 0) : getWeekOfDate({date: new Date(cfg.anno, i, 1)}),
14
- end_week = i=== 11? cfg.weeks : getWeekOfDate({date: new Date(cfg.anno, i+1, 0)});
15
-
16
- // se due mesi adiacenti hanno settimane di fine e inizio diverse
17
- // la settimana intermedia viene suddivisa a metà
18
-
19
- if(i > 0 && start_week > cfg.months_weeks[i-1].end_week) {
20
- cfg.months_weeks[i-1].end_week += .5;
21
- start_week -= .5;
22
- }
23
-
24
- cfg.months_weeks.push({
25
- // mese: i,
26
- start_week: start_week,
27
- end_week: end_week,
28
- });
29
-
30
- }
31
-
32
- // post elaborazione, aggiunta elementi calcolati
33
- // viene eseguita in modo differito per evitare disallineamenti nella correzione
34
- // dei mesi con inizio e fine a metà settimana
35
- cfg.months_weeks = cfg.months_weeks.map(mese => {
36
-
37
- const weeks_count = mese.end_week - mese.start_week;
38
- return {
39
- ...mese,
40
- weeks_count: weeks_count,
41
-
42
- // coordinata x iniziale della porzione mese dell'asse X
43
- x: cfg.chart_area.left + ((mese.start_week - 1) * cfg.stepX_size),
44
- width:weeks_count * cfg.stepX_size
45
- };
46
- });
47
-
48
-
49
- // if(cfg.debug) {
50
- // const lineeControlloMesi = cfg.svgCanvas.group().attr({
51
- // 'data-cfg.debug-info': cfg.debug? 'Linee controllo' : null,
52
- // stroke: '#c00',
53
- // 'stroke-width': 2
54
- // }),
55
- // y1 = cfg.chart_area.bottom - 30,
56
- // y2 = cfg.chart_area.bottom + 50;
57
-
58
- // cfg.months_weeks.forEach((mese, idx) => {
59
-
60
- // lineeControlloMesi.line(
61
- // mese.x,
62
- // y1,
63
- // mese.x,
64
- // y2
65
- // );
66
-
67
- // if(idx === 11) {
68
- // lineeControlloMesi.line(
69
- // mese.x + mese.width ,
70
- // y1,
71
- // mese.x + mese.width ,
72
- // y2
73
- // );
74
- // }
75
- // });
76
- // }
77
-
78
-
79
-
80
- // =>> etichette mesi (in mancanza di `label2XAttrs` usano le stesse impostazioni delle altre etichette asse X, `labelXAttrs`)
81
- const etiMesiGroup = cfg.svgCanvas.group().attr({
82
- 'data-cfg.debug-info': cfg.debug? 'Gruppo etichette mesi asse X' : null,
83
- });
84
-
85
- if(cfg.label2XAttrs == null || !Object.keys(cfg.label2XAttrs).length) {
86
- cfg.label2XAttrs = cfg.labelXAttrs;
87
- }
88
- if(!cfg.labelX2FontFilePath) {
89
- cfg.labelX2FontFilePath = cfg.labelXFontFilePath;
90
- }
91
-
92
-
93
- let meseIdx = 0;
94
- for await (const thisMonth of cfg.months_weeks) {
95
-
96
- const [label_bbox, labelEl] = await adaChartIstance.createTextEl ({
97
- text: cfg.mesi[meseIdx],
98
- textFill: cfg.label2XAttrs.fill?? '#000',
99
- fontAttr: cfg.label2XAttrs,
100
- fontFilePath: cfg.labelX2FontFilePath,
101
- parentElement: etiMesiGroup
102
- });
103
-
104
- labelEl.move(
105
- thisMonth.x + (thisMonth.width / 2) - (label_bbox.width / 2),
106
- cfg.xLabelsEndY + cfg.label2TopGap// il numero è un distanziatore extra tra le due righe di etichette
107
- );
108
- meseIdx++;
109
- }
110
-
111
- // =>> aree colorate mesi
112
- const areeMesiGroup = cfg.svgCanvas.group().attr({
113
- 'data-cfg.debug-info': cfg.debug? 'Gruppo aree mesi' : null,
114
- ...cfg.monthsAreasAttrs
115
- })
116
- .back(); // mette dietro al resto
117
-
118
-
119
- cfg.months_weeks
120
- .filter((mese, idx) => idx % 2)
121
- .forEach(mese => {
122
- areeMesiGroup
123
- .rect(mese.width, cfg.chart_area.height)
124
- .move(mese.x, cfg.chart_area.top);
125
- });
126
-
127
-
128
- return cfg;
129
- }