@massimo-cassandro/minimo 1.32.4 → 1.33.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 (88) hide show
  1. package/README.md +2 -1
  2. package/dev-tools/starter-kit/source_files/_private/pwd.md +16 -0
  3. package/dev-tools/starter-kit/source_files/_private/sf.md +12 -0
  4. package/dev-tools/starter-kit/source_files/{CLAUDE-frontend.md → app/CLAUDE.md} +2 -1
  5. package/dev-tools/starter-kit/source_files/app/assets/api_htaccess +20 -0
  6. package/dev-tools/starter-kit/source_files/{layout-critical.css → app/css/layout.critical.css} +1 -1
  7. package/dev-tools/starter-kit/source_files/app/css/layout.css +0 -0
  8. package/dev-tools/starter-kit/source_files/app/index.js +1 -0
  9. package/dev-tools/starter-kit/{package-tpl.json → source_files/root/package-tpl.json} +1 -1
  10. package/dev-tools/starter-kit/source_files/{stylelint.config.mjs → root/stylelint.config.mjs} +1 -1
  11. package/dev-tools/starter-kit/source_files/root/webpack-config-modules/inline-critical-css.mjs +41 -0
  12. package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/purgecss-setup.mjs +1 -1
  13. package/dev-tools/starter-kit/{webpack.config.mjs → source_files/root/webpack.config.mjs} +56 -38
  14. package/dev-tools/starter-kit/starter-install.sh +233 -81
  15. package/dev-tools/stylelint-config/README.md +45 -0
  16. package/dev-tools/stylelint-config/index.js +184 -0
  17. package/dev-tools/stylelint-config/test/test.module.scss +9 -0
  18. package/package.json +11 -2
  19. package/snippets/php/iviewer.php +488 -0
  20. package/snippets/twig-symfony/ViewerController.php +549 -0
  21. package/src/custom-properties.css +36 -0
  22. package/src/minimo.css +3 -0
  23. package/src/utilities/dom-builder/dom-builder.js +9 -5
  24. package/src/web-components/json-table/json-table-component.js +632 -0
  25. package/src/web-components/json-table/json-table-component.module.css +247 -0
  26. package/src/web-components/json-table/json-table.minimo.tokens.mjs +243 -0
  27. package/src/web-components/json-table/readme.md +764 -0
  28. package/src/web-components/json-table/src/cell-content.js +136 -0
  29. package/src/web-components/json-table/src/content-utils.js +103 -0
  30. package/src/web-components/json-table/src/data-types.js +280 -0
  31. package/src/web-components/json-table/src/defaults.js +424 -0
  32. package/src/web-components/json-table/src/get-data.js +152 -0
  33. package/src/web-components/json-table/src/icons.js +80 -0
  34. package/src/web-components/json-table/src/info-section.js +107 -0
  35. package/src/web-components/json-table/src/main-builder.js +218 -0
  36. package/src/web-components/json-table/src/pagination.js +253 -0
  37. package/src/web-components/json-table/src/parse-cols.js +113 -0
  38. package/src/web-components/json-table/src/parse-rows.js +81 -0
  39. package/src/web-components/json-table/src/resolve-params.js +166 -0
  40. package/src/web-components/json-table/src/search.js +71 -0
  41. package/src/web-components/json-table/src/sorting.js +111 -0
  42. package/src/web-components/json-table/src/table-body.js +109 -0
  43. package/src/web-components/json-table/src/table-builder.js +152 -0
  44. package/src/web-components/json-table/src/table-tfoot.js +56 -0
  45. package/src/web-components/json-table/src/table-thead.js +183 -0
  46. package/src/web-components/json-table/src/update-info.js +67 -0
  47. package/src/web-components/s-datatable-component/{docs.md → readme.md} +67 -3
  48. package/src/web-components/s-datatable-component/s-datatable-component.js +1 -1
  49. package/types/global.d.ts +17 -3
  50. package/dev-tools/starter-kit/source_files/app_index.js +0 -1
  51. package/snippets/config-templates/_htaccess +0 -69
  52. package/snippets/config-templates/robots.txt +0 -5
  53. package/snippets/config-templates/rollup.config.mjs +0 -115
  54. /package/dev-tools/starter-kit/source_files/{_root_robots.txt → app/assets/robots.txt} +0 -0
  55. /package/dev-tools/starter-kit/source_files/{_root_htaccess → app/assets/root_htaccess} +0 -0
  56. /package/{src → dev-tools/starter-kit/source_files/app/css}/fonts.css +0 -0
  57. /package/dev-tools/starter-kit/source_files/{favicons-readme.md → app/favicons/favicons-readme.md} +0 -0
  58. /package/dev-tools/starter-kit/{webpack-template.ejs → source_files/app/tpl/index.ejs} +0 -0
  59. /package/dev-tools/starter-kit/source_files/{__project__.code-workspace → root/__project__.code-workspace} +0 -0
  60. /package/dev-tools/starter-kit/source_files/{_browserslistrc → root/_browserslistrc} +0 -0
  61. /package/dev-tools/starter-kit/source_files/{_editorconfig → root/_editorconfig} +0 -0
  62. /package/dev-tools/starter-kit/source_files/{_gitignore → root/_gitignore} +0 -0
  63. /package/dev-tools/starter-kit/source_files/{_prettierrc → root/_prettierrc} +0 -0
  64. /package/dev-tools/starter-kit/source_files/{eslint.config.mjs → root/eslint.config.mjs} +0 -0
  65. /package/dev-tools/starter-kit/source_files/{jsconfig.json → root/jsconfig.json} +0 -0
  66. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/css-rules.mjs +0 -0
  67. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/get-jsConfig-aliases.mjs +0 -0
  68. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/mini-svg-data-uri-loader.cjs +0 -0
  69. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/postcss.config.mjs +0 -0
  70. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/purgecss-variables-safelist.mjs +0 -0
  71. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/svg-rules.mjs +0 -0
  72. /package/dev-tools/starter-kit/{webpack-config-modules → source_files/root/webpack-config-modules}/svgo.config.mjs +0 -0
  73. /package/snippets/{config-templates/_github → _github}/dependabot.yml +0 -0
  74. /package/snippets/{error-pages/error-pages.js → error-pages.js} +0 -0
  75. /package/snippets/{config-templates/react → react}/offcanvas/offcanvas.jsx +0 -0
  76. /package/snippets/{config-templates/react → react}/offcanvas/offcanvas.module.scss +0 -0
  77. /package/snippets/{config-templates → root}/_hintrc.cjs +0 -0
  78. /package/snippets/{config-templates → root}/_npmignore +0 -0
  79. /package/snippets/{config-templates → root}/_npmrc +0 -0
  80. /package/snippets/{config-templates → root}/_stylelintignore +0 -0
  81. /package/snippets/{config-templates → root}/babel.config--react.json +0 -0
  82. /package/snippets/{config-templates → root}/babel.config--solidJS.json +0 -0
  83. /package/snippets/{ImgViewerController.php → twig-symfony/ImgViewerController.php} +0 -0
  84. /package/snippets/{UnsplashController.php → twig-symfony/UnsplashController.php} +0 -0
  85. /package/snippets/{config-templates → twig-symfony}/_env.local +0 -0
  86. /package/snippets/{error-pages → twig-symfony}/bundles/TwigBundle/Exception/error.html.twig +0 -0
  87. /package/snippets/{flash-messages.html.twig → twig-symfony/flash-messages.html.twig} +0 -0
  88. /package/snippets/{minimo-form-layout.html.twig → twig-symfony/minimo-form-layout.html.twig} +0 -0
package/README.md CHANGED
@@ -9,9 +9,10 @@ npm i @massimo-cassandro/minimo
9
9
 
10
10
  # optional:
11
11
  npm i -D @massimo-cassandro/eslint-config
12
- npm i -D @massimo-cassandro/stylelint-config
13
12
  ```
14
13
 
14
+ > Note: a stylelint config is bundled with minimo itself (no separate install needed) — see [dev-tools/stylelint-config/README.md](dev-tools/stylelint-config/README.md).
15
+
15
16
  > Note: **minimo** is designed to be used with WebPack using the configuration you can find in the [starter-kit folder](./dev-tools/starter-kit/) of this repository. If changes are made (for example, to how SVG files are imported), things may not work as expected.
16
17
  >
17
18
 
@@ -0,0 +1,16 @@
1
+ ## pwd dev
2
+ * massimo.cassandro@blu-net.it
3
+ * pwd: `devMax`
4
+ * Password hash `$2y$13$woOLLKqTHGnCqlo8D6Iste50vipaXOn2uKPaxztUK8bfQMYPa2MXu`
5
+
6
+ ```sql
7
+ INSERT INTO `utente` (`id`, `email`, `password`, `nome`, `cognome`, `roles`, `active`, `cr_timestamp`, `last_login`, `cancellato`, `export`, `um_utente_id`, `um_timestamp`)
8
+ VALUES
9
+ (2, 'massimo.cassandro@blu-net.it', '$2y$13$woOLLKqTHGnCqlo8D6Iste50vipaXOn2uKPaxztUK8bfQMYPa2MXu', 'Massimo', 'Cassandro', '[\"ROLE_DEPLOY\"]', 1, '2026-03-30 00:00:00', '2026-07-22 09:52:57', 0, 1, 1, '2026-07-22 11:52:57')
10
+ ON DUPLICATE KEY UPDATE
11
+ password = '$2y$13$woOLLKqTHGnCqlo8D6Iste50vipaXOn2uKPaxztUK8bfQMYPa2MXu';
12
+ ```
13
+
14
+ ## genera pwd symfony
15
+
16
+ `php bin/console security:hash-password`
@@ -0,0 +1,12 @@
1
+ # sf
2
+
3
+ ## pagine di errore DEV
4
+
5
+ * http://localhost:[[port5700]]/_error/500
6
+
7
+
8
+ ## svuota cache
9
+ ```bash
10
+ cd /path/to/project/dir
11
+ sudo php bin/console cache:clear --env=prod
12
+ ```
@@ -9,6 +9,7 @@
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
- - nella chat evitare neologismi come 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
12
+ - nella chat evitare 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
13
  - nei commenti su 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
+ - nei commenti jsDoc aggiungere sempre dove possibile una sezione example che riepiloghi i vari parametri mostrando i valori di default
@@ -0,0 +1,20 @@
1
+ # Nega l'accesso diretto ai soli file di configurazione (contengono le
2
+ # credenziali OAuth). Gli altri file di questa cartella sono endpoint veri
3
+ # e propri (login.php, callback.php, whoami.php, ecc.) e devono restare
4
+ # raggiungibili normalmente: qui non c'è un "Require all denied" sull'intera
5
+ # cartella come quando cfg/ era isolata.
6
+ # I file restano comunque leggibili da PHP tramite require (accesso da
7
+ # filesystem, non passa da Apache), quindi l'app continua a funzionare.
8
+
9
+ <FilesMatch "^config(-template|-prod)?\.php$">
10
+ # Apache 2.4+ (praticamente tutti gli hosting attuali)
11
+ <IfModule mod_authz_core.c>
12
+ Require all denied
13
+ </IfModule>
14
+
15
+ # Fallback per Apache 2.2 (hosting più vecchi)
16
+ <IfModule !mod_authz_core.c>
17
+ Order deny,allow
18
+ Deny from all
19
+ </IfModule>
20
+ </FilesMatch>
@@ -3,7 +3,7 @@
3
3
  Per ulteriori entry critical specifiche di pagina, copiare e rinominare.
4
4
 
5
5
  Le entry con suffisso `.critical` generano asset destinati a essere
6
- INLINATI nei template html: devono restare AUTOSUFFICIENTI e minimi.
6
+ inseriti inline nei template html: devono restare AUTOSUFFICIENTI e minimi.
7
7
  Il suffisso attiva l'istanza PurgeCSS dedicata con purge stretto, in dev
8
8
  e in prod (vedi purgeCSSPluginCritical in webpack.config.mjs), e la regola
9
9
  dedicata in css-rules.mjs.
@@ -0,0 +1 @@
1
+ import '@css/index.css';
@@ -28,7 +28,7 @@
28
28
  "launchChrome": "open -n -a 'Google Chrome' --args --profile-directory='Profile 3'",
29
29
  "python server": "python3 -m http.server 8000 # --directory __dirname__ # 8000 = default port",
30
30
  "php server": "php -S localhost:8000 # -t root_dir/",
31
- "symfony server": "symfony serve --port=810X --listen-ip=0.0.0.0 # http://192.168.1.135:810X # -d (deamon): rimane aperto anche dopo la chiusura del terminale, terminare con `symfony server:stop`",
31
+ "symfony server": "symfony serve --port=[[port8000]] --listen-ip=0.0.0.0 # http://192.168.1.135:[[port8000]] # -d (deamon): rimane aperto anche dopo la chiusura del terminale, terminare con `symfony server:stop`",
32
32
  "node server": "node serve # richiede ‘npm i serve’",
33
33
  "build tokens": "npx buildTokens --config ./app/css/tokens-config.mjs",
34
34
  "check unresolved props": "npx checkUnresolvedProps --config ./app/css/tokens-config.mjs",
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  extends: [
3
- '@massimo-cassandro/stylelint-config',
3
+ '@massimo-cassandro/minimo/stylelint-config',
4
4
  ],
5
5
 
6
6
  // File da ignorare durante l'analisi
@@ -0,0 +1,41 @@
1
+ /* plugins/inline-critical-css.mjs */
2
+ import HtmlWebpackPlugin from 'html-webpack-plugin';
3
+
4
+ export class InlineCriticalCssPlugin {
5
+ constructor({ match }) {
6
+ this.match = match;
7
+ }
8
+
9
+ apply(compiler) {
10
+ compiler.hooks.compilation.tap('InlineCriticalCssPlugin', (compilation) => {
11
+ HtmlWebpackPlugin.getHooks(compilation).alterAssetTagGroups.tapAsync(
12
+ 'InlineCriticalCssPlugin',
13
+ (data, callback) => {
14
+ const isTarget = (tag) =>
15
+ tag.tagName === 'link' && this.match(tag.attributes.href);
16
+
17
+ const linkTag = [...data.headTags, ...data.bodyTags].find(isTarget);
18
+
19
+ if (linkTag) {
20
+ const publicPath = compilation.outputOptions.publicPath || '';
21
+ const assetName = linkTag.attributes.href.replace(publicPath, '');
22
+ const source = compilation.assets[assetName]?.source();
23
+
24
+ if (source) {
25
+ const styleTag = {
26
+ tagName: 'style',
27
+ voidTag: false,
28
+ innerHTML: source,
29
+ attributes: {},
30
+ };
31
+ data.headTags = data.headTags.filter((t) => !isTarget(t)).concat(styleTag);
32
+ data.bodyTags = data.bodyTags.filter((t) => !isTarget(t));
33
+ }
34
+ }
35
+
36
+ callback(null, data);
37
+ }
38
+ );
39
+ });
40
+ }
41
+ }
@@ -5,7 +5,7 @@ import { purgecssVariablesSafelist } from './purgecss-variables-safelist.mjs';
5
5
 
6
6
  /*
7
7
  Istanzia i plugin PurgeCSS del progetto: un passaggio stretto sui css
8
- `.critical` (inlinati nei template, devono restare autosufficienti) e un
8
+ `.critical` (inline nei template, devono restare autosufficienti) e un
9
9
  passaggio generale su tutti gli altri asset (il purge è idempotente: il
10
10
  secondo passaggio sui critical non rimuove altro).
11
11
 
@@ -22,6 +22,8 @@ import { cssRules } from './webpack-config-modules/css-rules.mjs';
22
22
  import { createPurgeCSSPlugins } from './webpack-config-modules/purgecss-setup.mjs';
23
23
  import { getJsConfigAliases } from './webpack-config-modules/get-jsConfig-aliases.mjs';
24
24
  import { svgRules } from './webpack-config-modules/svg-rules.mjs';
25
+ // import { InlineCriticalCssPlugin } from './webpack-config-modules/inline-critical-css.mjs';
26
+
25
27
 
26
28
  // --- config ---
27
29
  const __filename = fileURLToPath(import.meta.url)
@@ -30,14 +32,14 @@ const __filename = fileURLToPath(import.meta.url)
30
32
  // Risolve un percorso a partire dalla root del progetto, che coincide con la dir
31
33
  // di questo file solo se il frontend NON è in una sottodirectory (es. ./app):
32
34
  // vengono provate entrambe le posizioni, in fallback la prima
33
- const fromProjectRoot = (relPath) => {
34
- const candidates = ['./', '../'].map(p => path.resolve(__dirname, p, relPath));
35
- return candidates.find(p => fs.existsSync(p)) ?? candidates[0];
36
- };
35
+ // const fromProjectRoot = (relPath) => {
36
+ // const candidates = ['./', '../'].map(p => path.resolve(__dirname, p, relPath));
37
+ // return candidates.find(p => fs.existsSync(p)) ?? candidates[0];
38
+ // };
37
39
 
38
40
  const isDevelopment = process.env.NODE_ENV === 'development'
39
- ,devServerPort = 570x
40
- // ,apiPort = 800x
41
+ ,devServerPort = [[port5700]]
42
+ // ,apiPort = [[port8000]]
41
43
  ,useSass = false
42
44
  ,inlineCssInDevMode = true
43
45
  ,useSvgo = true
@@ -60,11 +62,11 @@ const isDevelopment = process.env.NODE_ENV === 'development'
60
62
  // NB: jsconfig.json va tenuto in questa stessa dir (gli alias sono risolti
61
63
  // a partire dalla sua posizione)
62
64
  ,jsConfigAliases = getJsConfigAliases(path.resolve(__dirname, './jsconfig.json'))
63
- ,packageJson = JSON.parse(fs.readFileSync(fromProjectRoot('package.json'), 'utf-8'))
65
+ ,packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8')) //JSON.parse(fs.readFileSync(fromProjectRoot('package.json'), 'utf-8'))
64
66
 
65
67
  // path del pacchetto minimo (il suo js genera markup con classi proprie e il
66
68
  // suo css dichiara custom properties: entrambi vanno visti da PurgeCSS)
67
- ,minimo_path = fromProjectRoot('node_modules/@massimo-cassandro/minimo')
69
+ ,minimo_path = './node_modules/@massimo-cassandro/minimo' // fromProjectRoot('node_modules/@massimo-cassandro/minimo')
68
70
 
69
71
  ,usePurgeCss = true // false per disattivare PurgeCSS (debug rapido di problemi legati al purge)
70
72
  ,purgeCSSOptions = {
@@ -78,7 +80,7 @@ const isDevelopment = process.env.NODE_ENV === 'development'
78
80
  // test del cacheGroup `shared` (splitChunks): i css restano SEMPRE FUORI dal
79
81
  // chunk condiviso e nel chunk della entry che li importa, così ogni asset css
80
82
  // resta autosufficiente (`variables: true` funziona per singolo asset, e i
81
- // critical css inlinati nei template devono restare autosufficienti). I
83
+ // critical css inline nei template devono restare autosufficienti). I
82
84
  // template (twig/altro) linkano solo il css della propria entry (e gli
83
85
  // eventuali `.critical.css`), MAI uno shared.css: se i css finissero nel
84
86
  // chunk condiviso, quella parte di stili sparirebbe silenziosamente dalla
@@ -120,24 +122,41 @@ const shared_chunk_paths = (module) => {
120
122
  const CopyWebpackPluginPatterns = [
121
123
 
122
124
  // {
123
- // from: '*.webp',
124
- // to: 'imgs/[name].[contenthash].[ext]',
125
- // context: './source/path/', // viene rimosso nella copia
125
+ // from: 'app/api',
126
+ // to: 'api',
126
127
  // globOptions: {
127
128
  // dot: true,
128
129
  // gitignore: true,
129
- // ignore: [ '**/.DS_Store' ]
130
+ // ignore: [
131
+ // '**/.DS_Store',
132
+ // // config.php e config-prod.php sono
133
+ // // gestiti a parte nei pattern successivi (config.php è sempre
134
+ // // scritto a mano per ambiente, mai copiato dalla build)
135
+ // // '**/config.php',
136
+ // // '**/config-prod.php',
137
+ // ]
130
138
  // }
131
139
  // },
132
140
  // {
133
- // from: 'app/php',
134
- // to: 'php',
135
- // globOptions: {
136
- // dot: true,
137
- // gitignore: true,
138
- // ignore: [ '**/.DS_Store', ...(isDevelopment ? [] : [ '**/init-dev.php' ]) ]
139
- // }
140
- // }
141
+ // from: 'app/api/config-prod.php',
142
+ // to: 'api/config.php'
143
+ // },
144
+ // {
145
+ // from: './app/assets/root_htaccess',
146
+ // to: '.htaccess',
147
+ // toType: 'file'
148
+ // },
149
+ // {
150
+ // from: './app/assets/robots.txt',
151
+ // to: 'robots.txt',
152
+ // toType: 'file'
153
+ // },
154
+ // {
155
+ // from: './app/assets/api_htaccess',
156
+ // to: 'api/.htaccess',
157
+ // toType: 'file',
158
+ // // context: 'app/api'
159
+ // },
141
160
  ];
142
161
 
143
162
  // =>> PurgeCSS
@@ -155,12 +174,13 @@ const CopyWebpackPluginPatterns = [
155
174
  // =>> entries
156
175
  // NB: percorsi dalla root del progetto
157
176
  const entries = {
158
- 'xxxxxx': './index.js'
177
+ 'index': './app/index.js',
159
178
 
160
- // css critici inlinati nei template html: il suffisso `.critical` nel nome
179
+ // css critici da includere inline nei template html: il suffisso `.critical` nel nome
161
180
  // della entry attiva l'istanza PurgeCSS dedicata con purge stretto
162
181
  // (vedi purgecss-setup.mjs) e la regola dedicata in css-rules.mjs
163
- // ,'xxxxxx.critical': './index-critical.css'
182
+ 'layout.critical': './app/css/layout.critical.css'
183
+
164
184
  };
165
185
 
166
186
 
@@ -195,7 +215,7 @@ const config = {
195
215
  path: output_dir,
196
216
  filename: '[name].[contenthash].js',
197
217
  publicPath: '/',
198
- // publicPath: isDevelopment? '/' : './', // per devServer, nel caso in cui l'output di produzione non sia sulla root
218
+ // publicPath: isDevelopment? '/' : './', // nel caso in cui l'output di produzione non sia sulla root
199
219
  clean: !isDevelopment
200
220
  },
201
221
 
@@ -350,6 +370,12 @@ const config = {
350
370
  ignoreOrder: true
351
371
  }),
352
372
 
373
+ // =>> plugins: InlineCriticalCssPlugin (solo prod)
374
+ // ...(isDevelopment
375
+ // ? []
376
+ // : [new InlineCriticalCssPlugin({ match: (href) => href?.includes('.critical') })]
377
+ // ),
378
+
353
379
  // =>> plugins: HtmlWebpackPlugin (manifest)
354
380
  new HtmlWebpackPlugin({
355
381
  filename: 'manifest.webmanifest',
@@ -425,7 +451,7 @@ const config = {
425
451
 
426
452
  },
427
453
  raw: true,
428
- // niente banner nei critical css: vengono inlinati nei template html
454
+ // niente banner nei critical css: vengono inseriti inline nei template html
429
455
  exclude: /\.critical/ // chunk name
430
456
  }),
431
457
 
@@ -643,18 +669,10 @@ const config = {
643
669
  // =>> Video
644
670
  // {
645
671
  // test: /\.(?:mp4|webm)$/i,
646
- // // type: 'asset/resource',
647
- // type: 'javascript/auto',
648
- // use: [
649
- // {
650
- // loader: 'file-loader',
651
- // options: {
652
- // name: '[name].[contenthash][ext]',
653
- // outputPath: 'video/',
654
- // esModule: false,
655
- // }
656
- // }
657
- // ]
672
+ // type: 'asset/resource',
673
+ // generator: {
674
+ // filename: 'video/[name].[contenthash][ext]'
675
+ // }
658
676
  // },
659
677
 
660
678
  // =>> rules: Fonts