@massimo-cassandro/minimo 1.41.4 → 1.41.6
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 +12 -12
- package/charts/src/node-helpers/create-svg-canvas-node.mjs +2 -2
- package/charts/src/node-helpers/svg-text-to-path.js +9 -9
- package/charts/src/rating-display/index.js +1 -1
- package/charts/src/rating-display/ratindDisplayAnimation.js +3 -3
- package/design-tokens/README.md +2 -2
- package/design-tokens/_src/_readme.md +26 -26
- package/dev-tools/README.md +16 -16
- package/dev-tools/create-favicons/README.md +31 -31
- package/dev-tools/create-favicons/src/create-ico.mjs +2 -2
- package/dev-tools/create-favicons/src/default-params.mjs +1 -1
- package/dev-tools/create-favicons/src/init.mjs +1 -1
- package/dev-tools/design-tokens-builder/README.md +102 -102
- package/dev-tools/design-tokens-builder/build-tokens-src/build-source-modes.mjs +85 -73
- package/dev-tools/design-tokens-builder/build-tokens-src/config.mjs +109 -85
- package/dev-tools/design-tokens-builder/build-tokens-src/formats/css.mjs +113 -90
- package/dev-tools/design-tokens-builder/build-tokens-src/formats/json.mjs +107 -95
- package/dev-tools/design-tokens-builder/build-tokens-src/legacy-tokens-parser.mjs +71 -64
- package/dev-tools/design-tokens-builder/build-tokens-src/light-dark.mjs +75 -65
- package/dev-tools/design-tokens-builder/build-tokens-src/merge-css.mjs +113 -102
- package/dev-tools/design-tokens-builder/build-tokens-src/platforms.mjs +36 -30
- package/dev-tools/design-tokens-builder/build-tokens-src/resolve-source-paths.mjs +15 -13
- package/dev-tools/design-tokens-builder/build-tokens-src/source-prefixes.mjs +44 -42
- package/dev-tools/design-tokens-builder/build-tokens-src/source-transforms.mjs +89 -83
- package/dev-tools/design-tokens-builder/build-tokens-src/token-rename-parser.mjs +99 -86
- package/dev-tools/design-tokens-builder/build-tokens-src/transforms.mjs +64 -48
- package/dev-tools/design-tokens-builder/build-tokens.mjs +80 -68
- package/dev-tools/design-tokens-builder/check-unresolved-custom-props.mjs +103 -77
- package/dev-tools/design-tokens-builder/tokens-config-sample.mjs +275 -238
- package/dev-tools/find-orphan-css-classes/find-orphan-css-classes.mjs +2 -2
- package/dev-tools/starter-kit/source_files/app/CLAUDE.md +4 -2
- package/dev-tools/starter-kit/source_files/app/{css/index.css → index.css} +2 -2
- package/dev-tools/starter-kit/source_files/app/index.js +1 -1
- package/dev-tools/starter-kit/source_files/root/_sf/controller/ImgViewerController.php +3 -3
- package/dev-tools/starter-kit/source_files/root/_sf/controller/ViewerController.php +2 -2
- package/dev-tools/starter-kit/source_files/root/stylelint.config.mjs +1 -1
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/css-rules.mjs +1 -1
- package/dev-tools/starter-kit/source_files/root/webpack.config.mjs +15 -1
- package/dev-tools/starter-kit/webpack-config-upg.md +12 -0
- package/dev-tools/stylelint-config/README.md +7 -7
- package/dev-tools/svg-icons-tools/README.md +32 -32
- package/dev-tools/svg-icons-tools/src/config-manager.mjs +1 -1
- package/dev-tools/svg-icons-tools/src/default-config.mjs +118 -118
- package/dev-tools/svg-icons-tools/src/jsx-icon-file-builder.mjs +24 -24
- package/dev-tools/svg-icons-tools/src/parse-svg-filename.mjs +3 -3
- package/dev-tools/svg-icons-tools/src/parse-svg-files.mjs +1 -1
- package/dev-tools/svg-icons-tools/src/parse-svg-markup.mjs +4 -4
- package/dev-tools/svg-icons-tools/src/svg-to-jsx.mjs +2 -2
- package/dev-tools/svg-icons-tools/src/svg-to-optimized.mjs +2 -2
- package/dev-tools/svg-icons-tools/src/svg-to-symbols.mjs +2 -2
- package/dev-tools/upd@m/README.md +1 -1
- package/dev-tools/upd@m/index.mjs +1 -1
- package/dev-tools/update-version/README.md +9 -9
- package/package.json +1 -1
- package/snippets/unsplash-browser-app/README.md +1 -1
- package/snippets/unsplash-browser-app/unsplash-utilities.js +9 -9
- package/src/components/autocomplete/README.md +3 -3
- package/src/components/autocomplete/autocomplete-engine.js +75 -63
- package/src/components/autocomplete/check-autocomplete.js +3 -3
- package/src/components/dismiss-alerts.js +3 -3
- package/src/components/form-reset-submit.js +6 -6
- package/src/components/inner-nav/inner-nav.js +2 -2
- package/src/components/modal-alert/modal-alert.js +67 -65
- package/src/components/modal-alert/modal-alert.minimo.tokens.mjs +1 -1
- package/src/components/modal-popup/modal-popup.js +56 -56
- package/src/components/overlay/overlay.js +3 -3
- package/src/components/sf-macro/readme.md +1 -1
- package/src/components/sf-macro/sf-macro.js +27 -23
- package/src/components/slide-up-down-toggle/slide-up-down-toggle.js +83 -79
- package/src/components/slide-up-down-toggle/slide-up-down-toggle.module.css +44 -44
- package/src/components/snackbar/snackbar.js +19 -19
- package/src/components/spinner/spinner.js +3 -3
- package/src/components/unsplash-page/README.md +8 -8
- package/src/components/unsplash-page/fetch-unsplash-data.js +3 -3
- package/src/components/unsplash-page/unsplash-page.js +33 -33
- package/src/components/unsplash-page/unsplash-page.module.css +1 -1
- package/src/css/alerts.css +2 -2
- package/src/css/forms/forms.css +4 -4
- package/src/css/forms/validation.css +1 -1
- package/src/css/margin-padding-media.css +4 -4
- package/src/css/margin-padding.css +4 -4
- package/src/css/reset.css +11 -11
- package/src/icons/read-me.md +1 -1
- package/src/minimo.css +3 -3
- package/src/utilities/better-text-with-places.js +22 -22
- package/src/utilities/better-text.js +42 -35
- package/src/utilities/classnames.js +8 -8
- package/src/utilities/cookies.js +6 -6
- package/src/utilities/create-id.js +3 -3
- package/src/utilities/disable-btns-on-submit.js +2 -2
- package/src/utilities/dom-builder/dom-builder.js +89 -86
- package/src/utilities/dom-builder/domBuilderBasicSetup.js +9 -9
- package/src/utilities/dom-builder/parseDomString.js +23 -23
- package/src/utilities/dom-builder-helpers/README.md +2 -2
- package/src/utilities/dom-builder-helpers/form-tags.js +100 -100
- package/src/utilities/dom-builder-helpers/picture-tag.js +39 -39
- package/src/utilities/enable-submit-btns.js +1 -1
- package/src/utilities/escape-html.js +2 -2
- package/src/utilities/generate-pwd.js +4 -4
- package/src/utilities/linked-dates.js +13 -13
- package/src/utilities/parse-file-size.js +6 -6
- package/src/utilities/random-id.js +3 -3
- package/src/utilities/relative-date.js +40 -40
- package/src/utilities/sentence-case.js +1 -1
- package/src/utilities/strip-tags.js +1 -1
- package/src/utilities/title-case.js +1 -1
- package/src/utilities/truncate-string.js +5 -5
- package/src/utilities/validation-error-class.js +12 -12
- package/src/web-components/json-table/json-table-component.js +123 -121
- package/src/web-components/json-table/json-table-component.module.css +6 -6
- package/src/web-components/json-table/json-table.minimo.tokens.mjs +6 -6
- package/src/web-components/json-table/jt-docs/parametri.md +124 -0
- package/src/web-components/json-table/jt-docs.md +622 -0
- package/src/web-components/json-table/readme.md +3 -763
- package/src/web-components/json-table/src/cell-content.js +25 -25
- package/src/web-components/json-table/src/content-utils.js +21 -21
- package/src/web-components/json-table/src/data-types.js +32 -32
- package/src/web-components/json-table/src/defaults.js +230 -191
- package/src/web-components/json-table/src/get-data.js +55 -38
- package/src/web-components/json-table/src/icons.js +17 -17
- package/src/web-components/json-table/src/info-section.js +18 -18
- package/src/web-components/json-table/src/main-builder.js +45 -45
- package/src/web-components/json-table/src/pagination.js +32 -32
- package/src/web-components/json-table/src/parse-cols.js +18 -18
- package/src/web-components/json-table/src/parse-rows.js +17 -17
- package/src/web-components/json-table/src/resolve-params.js +53 -41
- package/src/web-components/json-table/src/search.js +13 -13
- package/src/web-components/json-table/src/sorting.js +20 -20
- package/src/web-components/json-table/src/table-body.js +13 -13
- package/src/web-components/json-table/src/table-builder.js +34 -34
- package/src/web-components/json-table/src/table-tfoot.js +8 -8
- package/src/web-components/json-table/src/table-thead.js +21 -21
- package/src/web-components/json-table/src/update-info.js +11 -11
- package/types/classes.d.ts +2 -2
- package/types/global.d.ts +18 -12
|
@@ -376,7 +376,7 @@ for (const file of cssFiles) {
|
|
|
376
376
|
const fallbackClasses = new Set([...globalClasses, ...allModuleClasses]);
|
|
377
377
|
|
|
378
378
|
function isDefined(usage) {
|
|
379
|
-
/*
|
|
379
|
+
/* gli usi di un CSS module escluso non vengono controllati */
|
|
380
380
|
if (usage.module && cfg.excludeCssFiles.has(usage.module)) return true;
|
|
381
381
|
if (!usage.isModule) return globalClasses.has(usage.cls);
|
|
382
382
|
const set = usage.module ? getModuleClasses(usage.module) : fallbackClasses;
|
|
@@ -425,7 +425,7 @@ if (values.json) {
|
|
|
425
425
|
const reportPath = path.resolve(cfg.baseDir, REPORT_FILE);
|
|
426
426
|
|
|
427
427
|
if (sorted.length) {
|
|
428
|
-
/*
|
|
428
|
+
/* elenco piatto ordinato per file e riga, con un link cliccabile a ogni occorrenza */
|
|
429
429
|
const items = sorted
|
|
430
430
|
.flatMap(([cls, locations]) => locations.map(loc => ({ cls, ...loc })))
|
|
431
431
|
.sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line);
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
- Conferma la comprensione prima di agire su richieste ambigue
|
|
10
10
|
- Il progetto usa ES modules (import/export), evitare soluzioni che utilizzano commonJs
|
|
11
11
|
- In linea di massima non proporre soluzioni che richiedano modifiche alla parte back-end, se presente, a meno che non sia esplicitamente richiesto
|
|
12
|
-
-
|
|
13
|
-
- nei commenti
|
|
12
|
+
- evitare SEMPRE neologismi come 'inlinare', 'parsare', 'committare' ecc., usare i termini corrispondenti in italiano o il termine originale in inglese dove non sia possibile un equivalente in italiano. Non coniugare mai secondo le regole dell'italiano verbi di altre lingue
|
|
13
|
+
- nei commenti di 3 o più righe preferire `/* ... */` piuttosto che ripetere `//` ad igni inizio riga
|
|
14
14
|
- a meno che non sia esplicitamente richiesto di eseguire subito una modifica, NON ESEGUIRE MAI nulla autonomamente ma mostra sempre un piano d'azione prima di procedere
|
|
15
15
|
- nei commenti jsDoc aggiungere sempre dove possibile una sezione example che riepiloghi i vari parametri mostrando i valori di default
|
|
16
|
+
- commenti nel codice (inclusi TODO/FIX e jsDoc) e file README vanno scritti sempre in italiano; gli identificatori restano in inglese
|
|
17
|
+
- nei documenti markdown generati non andare a capo forzatamente alla fine di ogni riga: un paragrafo è una sola riga, così si usa il soft wrap dell'editor ed è più semplice fare correzioni
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* decommentare per usare i layer. Vedi https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@layer */
|
|
2
2
|
/* @layer reset, base, components, utilities, project, overrides; */
|
|
3
3
|
|
|
4
4
|
@import '@css/fonts.css';
|
|
5
|
-
/* @import '@css/custom-media.css'; */ /*
|
|
5
|
+
/* @import '@css/custom-media.css'; */ /* gestito da postcss */
|
|
6
6
|
@import '@css/custom-properties.css'; /* layer('base'); */
|
|
7
7
|
|
|
8
8
|
@import '@css/minimo.css';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import './index.css';
|
|
@@ -23,7 +23,7 @@ class ImgViewerController extends AbstractController
|
|
|
23
23
|
* es: crop=10,10,100,100 -> ritaglia un quadrato di 100px a partire dal punto 10,10
|
|
24
24
|
* @param bb: bounding box dell'area che deve contenere l'immagine ridimensionata
|
|
25
25
|
* @param fd: (bool) forza dimensioni (utilizzato in coppia con bb)
|
|
26
|
-
* @param q:
|
|
26
|
+
* @param q: qualità di compressione
|
|
27
27
|
* @param alpha: mantiene la trasparenza nelle png (default 0)
|
|
28
28
|
* @param bg: in combinazione con alpha=1 definisce il bg color della png
|
|
29
29
|
* @param refresh: (bool) forza la rigenerazione dell'immagine
|
|
@@ -76,7 +76,7 @@ class ImgViewerController extends AbstractController
|
|
|
76
76
|
// formati accettati dal browser
|
|
77
77
|
$accept = $request->server->get('HTTP_ACCEPT');
|
|
78
78
|
|
|
79
|
-
//
|
|
79
|
+
// formato 'auto' di default
|
|
80
80
|
if(!isset($get['f'])) $get['f'] = 'auto';
|
|
81
81
|
|
|
82
82
|
// format 'auto' -> sceglie il formato migliore per il browser, se disponibile
|
|
@@ -164,7 +164,7 @@ class ImgViewerController extends AbstractController
|
|
|
164
164
|
$img = new \Imagick();
|
|
165
165
|
$img->readImage($filePath);
|
|
166
166
|
|
|
167
|
-
$img->stripImage(); //
|
|
167
|
+
$img->stripImage(); // Rimuove dall'immagine tutti i profili e i commenti
|
|
168
168
|
|
|
169
169
|
if(isset($params['crop']) or isset($params['bb'])) {
|
|
170
170
|
// dimensioni originali
|
|
@@ -129,7 +129,7 @@ class ViewerController extends AbstractController
|
|
|
129
129
|
* es: crop=10,10,100,100 -> ritaglia un quadrato di 100px a partire dal punto 10,10
|
|
130
130
|
* @param bb: bounding box dell'area che deve contenere l'immagine ridimensionata (image magick)
|
|
131
131
|
* @param fd: forza dimensioni (utilizzato in coppia con bb)
|
|
132
|
-
* @param q:
|
|
132
|
+
* @param q: qualità di compressione (ex jq)
|
|
133
133
|
* @param alpha: mantiene la trasparenza nelle png (default 0)
|
|
134
134
|
* @param bg: in combinazione con alpha=1 definisce il bkg color della png
|
|
135
135
|
* @param refresh: forza la rigenerazione dell'immagine
|
|
@@ -177,7 +177,7 @@ class ViewerController extends AbstractController
|
|
|
177
177
|
// formati accettati dal browser
|
|
178
178
|
$accept = $request->server->get('HTTP_ACCEPT');
|
|
179
179
|
|
|
180
|
-
//
|
|
180
|
+
// formato 'auto' di default
|
|
181
181
|
if(!isset($get['f'])) {
|
|
182
182
|
$get['f'] ='auto';
|
|
183
183
|
} else {
|
|
@@ -60,7 +60,7 @@ export function cssRules({
|
|
|
60
60
|
oneOf: [
|
|
61
61
|
|
|
62
62
|
{
|
|
63
|
-
// `import url from './file.css?as_url'`:
|
|
63
|
+
// `import url from './file.css?as_url'`: il file viene emesso così com'è e ne viene restituito l'URL
|
|
64
64
|
resourceQuery: /as_url/,
|
|
65
65
|
type: 'asset/resource',
|
|
66
66
|
generator: {
|
|
@@ -161,6 +161,9 @@ const { CustomPropsPurgeCssPlugin } = runCustomPropsPlugin
|
|
|
161
161
|
// - `enforce: true` garantisce che `shared.js` e `shared.css` siano sempre
|
|
162
162
|
// generati (senza, splitChunks non crea il chunk se i moduli sono sotto la
|
|
163
163
|
// soglia `minSize`, e il link nel template punterebbe a un file inesistente)
|
|
164
|
+
// - i moduli di `unsplash-page` (js e css module) e la sua dipendenza `blurhash`
|
|
165
|
+
// sono esclusi dal chunk condiviso (`excluded_paths` in `shared_chunk_paths`):
|
|
166
|
+
// restano nel js/css della entry che li importa
|
|
164
167
|
// - i template (twig/altro) devono linkare (preload + link) sia `shared.css` che il
|
|
165
168
|
// css della propria entry, con `shared.css` PRIMA del css della entry per
|
|
166
169
|
// rispettare l'ordine della cascata (vedi _sf/templates/_main-tpl.html.twig)
|
|
@@ -181,7 +184,18 @@ const shared_chunk_paths = (module) => {
|
|
|
181
184
|
'app/src/components',
|
|
182
185
|
].map(p => `${sep}${p.replace(/\//g, sep)}${sep}`).join('|'));
|
|
183
186
|
|
|
184
|
-
|
|
187
|
+
// path dei moduli esclusi dal chunk `shared` (restano nella entry che li importa)
|
|
188
|
+
const excluded_paths = [
|
|
189
|
+
'minimo/src/components/unsplash-page',
|
|
190
|
+
'node_modules/blurhash', // peer dep usata solo da unsplash-page
|
|
191
|
+
];
|
|
192
|
+
const excludedRegexp = new RegExp(
|
|
193
|
+
excluded_paths.map(p => `${sep}${p.replace(/\//g, sep)}${sep}`).join('|')
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
const modulePath = module.nameForCondition?.() ?? '';
|
|
197
|
+
|
|
198
|
+
return !excludedRegexp.test(modulePath) && pathsRegexp.test(modulePath);
|
|
185
199
|
};
|
|
186
200
|
|
|
187
201
|
|
|
@@ -10,6 +10,18 @@ Le versioni precedenti sono conservate in `archived/webpack-config-v2/` del repo
|
|
|
10
10
|
|
|
11
11
|
## Fix e upg da verificare e applicare a tutte le versioni
|
|
12
12
|
* WebpackManifestPlugin: impostare `removeKeyHash: /\?.*$/, // /([a-f0-9]{32}\.?)/gi, // /(\?as_asset)$/,`, sostituendo eventuali impostazione `removeKeyHash: true` se presente
|
|
13
|
+
* cacheGroup `shared` (solo con `useSharedChunk: true`): escludere `unsplash-page` e `blurhash` dal chunk condiviso, in modo che js e css restino nella entry che li importa. In `webpack.config.mjs`, nella funzione `shared_chunk_paths`, prima del `return` aggiungere:
|
|
14
|
+
```js
|
|
15
|
+
const excluded_paths = [
|
|
16
|
+
'minimo/src/components/unsplash-page',
|
|
17
|
+
'node_modules/blurhash', // peer dep usata solo da unsplash-page
|
|
18
|
+
];
|
|
19
|
+
const excludedRegexp = new RegExp(
|
|
20
|
+
excluded_paths.map(p => `${sep}${p.replace(/\//g, sep)}${sep}`).join('|')
|
|
21
|
+
);
|
|
22
|
+
const modulePath = module.nameForCondition?.() ?? '';
|
|
23
|
+
```
|
|
24
|
+
e sostituire il `return` con `return !excludedRegexp.test(modulePath) && pathsRegexp.test(modulePath);`. Aggiungere anche al commento sopra il cacheGroup la nota sull'esclusione.
|
|
13
25
|
|
|
14
26
|
|
|
15
27
|
## Da v2 a v3
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Stylelint config
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
La mia configurazione di [stylelint](https://stylelint.io/),
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
##
|
|
6
|
+
## Utilizzo
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Installare il pacchetto:
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
npm install @massimo-cassandro/minimo
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Creare un file `stylelint.config.mjs` e aggiungere:
|
|
15
15
|
|
|
16
16
|
```javascript
|
|
17
17
|
export default {
|
|
@@ -19,7 +19,7 @@ export default {
|
|
|
19
19
|
'@massimo-cassandro/minimo/stylelint-config',
|
|
20
20
|
],
|
|
21
21
|
|
|
22
|
-
//
|
|
22
|
+
// File da ignorare
|
|
23
23
|
ignoreFiles: [
|
|
24
24
|
'node_modules/**/*.{css,scss}',
|
|
25
25
|
'vendor/**/*.{css,scss}',
|
|
@@ -30,9 +30,9 @@ export default {
|
|
|
30
30
|
'test/**/*.css'
|
|
31
31
|
],
|
|
32
32
|
|
|
33
|
-
//
|
|
33
|
+
// Override
|
|
34
34
|
rules: {
|
|
35
|
-
//**********************
|
|
35
|
+
//********************** opzionale per tailwind:
|
|
36
36
|
// 'at-rule-no-unknown': [
|
|
37
37
|
// true,
|
|
38
38
|
// 'value-keyword-case': null,
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
# Svg Icons Tools
|
|
2
2
|
|
|
3
|
-
Svg Icons Tools
|
|
3
|
+
Svg Icons Tools fornisce alcune utilità per gestire e ottimizzare le icone SVG:
|
|
4
4
|
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* jsx
|
|
5
|
+
* ottimizza tutti i file con [SVGO](https://svgo.dev/)
|
|
6
|
+
* combina i file svg in un unico file, in cui ogni icona è racchiusa in un elemento `<symbol>` (ispirato a [svgstore](https://github.com/svgstore/svgstore))
|
|
7
|
+
* converte i file svg in JSX
|
|
8
|
+
* copia i file svg ottimizzati nella directory di destinazione
|
|
9
|
+
* rimuove i *pallet* dal markup delle icone (vedi il file di configurazione per maggiori dettagli).
|
|
10
|
+
* crea un file scss con le icone svg convertite in variabili sass
|
|
11
|
+
* solo per jsx e icone ottimizzate: possibilità di gestire sia icone con `fill` sia con `stroke`, aggiungendo classi opzionali per applicare proprietà css diverse
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Questi strumenti sono poco utili se le icone vengono scaricate da una delle librerie disponibili sul web, ma se le si disegna da sé, *svg-icons-tools* può far risparmiare molto tempo nella pulizia e nell'ottimizzazione delle icone disegnate con Illustrator, Figma, Sketch ecc.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Inoltre, la maggior parte (o la totalità) delle librerie permette di scaricare solo icone con spessore fisso, ma spesso si possono scaricare versioni "di lavoro" in cui lo spessore è definito dall'attributo stroke. In questi casi è spesso presente un *pallet* che si può rimuovere facilmente.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Maggiori informazioni nel mio articolo [Building an Icon System in React](https://medium.com/better-programming/building-an-icon-system-in-react-16757d73cc35).
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Installazione
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npm i -D @massimo-cassandro/svg-icons-tools
|
|
@@ -24,52 +24,52 @@ npm i -D @massimo-cassandro/svg-icons-tools
|
|
|
24
24
|
|
|
25
25
|
## Setup
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Per prima cosa creare un file di configurazione per il progetto, eseguendo:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
30
|
npx iconsTools init
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Viene creata una directory `svg-icons-tools` che contiene il file di configurazione `svg-icons-tools.config.mjs`.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Rinominare la cartella a piacere e spostarla dove serve. Poi aprire e personalizzare il file `svg-icons-tools.config.mjs`.
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## Esecuzione
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Per lanciare lo script, aprire il terminale e usare il comando:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
42
|
npx iconsTools --config ./path/to/svg-icons-tools.config.mjs
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
dove `--config` deve contenere il percorso, relativo alla directory corrente, del file di configurazione.
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Se il parametro `--config` non è impostato, lo script cerca il file di configurazione nella directory corrente; se il file non viene trovato, viene generato un errore.
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
##
|
|
50
|
+
## Dettagli di configurazione
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Vedi [src/default-config.mjs](src/default-config.mjs) per maggiori informazioni.
|
|
53
53
|
|
|
54
54
|
## Demo
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Vedi [demo/readme](demo/readme.md).
|
|
57
57
|
|
|
58
58
|
## TODO
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* SVG
|
|
62
|
-
*
|
|
63
|
-
*
|
|
59
|
+
* documentazione in jsdoc
|
|
60
|
+
* formattare meglio l'output jsx (aggiornare la documentazione)
|
|
61
|
+
* attributi SVG in jsx (aggiornare la documentazione)
|
|
62
|
+
* opzione per ripulire la cartella di destinazione per jsx e ottimizzati (?)
|
|
63
|
+
* changelog automatico
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
## Changelog / Breaking
|
|
66
|
+
## Changelog / Breaking change
|
|
67
67
|
|
|
68
68
|
### 1.1
|
|
69
|
-
*
|
|
69
|
+
* aggiunta la funzione predefinita per la creazione delle icone jsx
|
|
70
70
|
|
|
71
|
-
#### Breaking
|
|
72
|
-
*
|
|
71
|
+
#### Breaking change
|
|
72
|
+
* nel file di configurazione, `config.jsx.icon_builder` diventa `config.jsx.custom_icon_builder`; se non definita, per i file jsx viene usata la funzione predefinita.
|
|
73
73
|
|
|
74
74
|
### 1.0
|
|
75
|
-
*
|
|
75
|
+
* Prima release di produzione
|
|
@@ -8,7 +8,7 @@ export const configManager = {
|
|
|
8
8
|
updCfg: function(cfg) {
|
|
9
9
|
this.cfgObj = { ...this.cfgObj, ...cfg };
|
|
10
10
|
|
|
11
|
-
// deep merge
|
|
11
|
+
// deep merge degli oggetti cfg
|
|
12
12
|
Object.keys(default_config).forEach((key) => {
|
|
13
13
|
if (default_config[key] && typeof default_config[key] === 'object' && !Array.isArray(default_config[key])) {
|
|
14
14
|
this.cfgObj[key] = { ...default_config[key], ...this.cfgObj[key] };
|