@massimo-cassandro/minimo 1.41.3 → 1.41.5
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/index.css +10 -0
- 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/starter-install.sh +2 -2
- 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/index.js +1 -0
- package/package.json +3 -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 -9
- package/src/utilities/better-text-with-places.js +105 -105
- 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/readme.md +76 -110
- 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
|
@@ -93,45 +93,45 @@ const places = [
|
|
|
93
93
|
// località
|
|
94
94
|
'Zermatt', 'St. Moritz', 'Grindelwald', 'Cascate del Reno', 'Interlaken', 'Davos', 'Alpi Svizzere',
|
|
95
95
|
|
|
96
|
-
'
|
|
97
|
-
'
|
|
98
|
-
'Belgio', 'Bruxelles', 'Anversa', 'Bruges',
|
|
96
|
+
'Albania', 'Tirana',
|
|
97
|
+
'Armenia', 'Erevan',
|
|
99
98
|
'Austria', 'Vienna', 'Salisburgo', 'Innsbruck', 'Graz', 'Hallstatt',
|
|
100
|
-
'
|
|
101
|
-
'
|
|
102
|
-
'
|
|
99
|
+
'Azerbaigian', 'Baku',
|
|
100
|
+
'Belgio', 'Bruxelles', 'Anversa', 'Bruges',
|
|
101
|
+
'Bielorussia', 'Minsk',
|
|
102
|
+
'Bosnia ed Erzegovina', 'Sarajevo',
|
|
103
|
+
'Bulgaria', 'Sofia',
|
|
104
|
+
'Cipro', 'Nicosia',
|
|
105
|
+
'Croazia', 'Zagabria', 'Spalato', 'Dubrovnik', 'Zara', 'Plitvice Lakes',
|
|
103
106
|
'Danimarca', 'Copenaghen',
|
|
107
|
+
'Estonia', 'Tallinn',
|
|
104
108
|
'Finlandia', 'Helsinki',
|
|
109
|
+
'Georgia', 'Tbilisi',
|
|
105
110
|
'Irlanda', 'Dublino', 'Galway',
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'Romania', 'Bucarest', 'Transilvania',
|
|
109
|
-
'Croazia', 'Zagabria', 'Spalato', 'Dubrovnik', 'Zara', 'Plitvice Lakes',
|
|
110
|
-
'Turchia', 'Ankara', 'Istanbul', 'Smirne', 'Antalya', 'Cappadocia',
|
|
111
|
-
'Ucraina', 'Kiev', 'Kyiv', 'Odessa', 'Leopoli',
|
|
112
|
-
'Islanda', 'Reykjavik',
|
|
113
|
-
'Lussemburgo', 'Liechtenstein', 'Principato di Monaco',
|
|
114
|
-
'Malta', 'La Valletta',
|
|
115
|
-
'Cipro', 'Nicosia',
|
|
116
|
-
'Estonia', 'Tallinn',
|
|
111
|
+
'Islanda', 'Reykjavik', 'Jökulsárlón',
|
|
112
|
+
'Kosovo', 'Pristina',
|
|
117
113
|
'Lettonia', 'Riga',
|
|
118
114
|
'Lituania', 'Vilnius',
|
|
119
|
-
'
|
|
115
|
+
'Lussemburgo', 'Liechtenstein', 'Principato di Monaco',
|
|
116
|
+
'Macedonia del Nord', 'Skopje',
|
|
117
|
+
'Malta', 'La Valletta',
|
|
120
118
|
'Moldavia', 'Chisinau',
|
|
121
|
-
'Serbia', 'Belgrado',
|
|
122
|
-
'Bosnia ed Erzegovina', 'Sarajevo',
|
|
123
119
|
'Montenegro', 'Podgorica',
|
|
124
|
-
'
|
|
125
|
-
'
|
|
126
|
-
'
|
|
127
|
-
'
|
|
128
|
-
'
|
|
129
|
-
'
|
|
130
|
-
'San Marino', 'Città del Vaticano', 'Andorra',
|
|
120
|
+
'Norvegia', 'Oslo', 'Bergen', 'Tromsø', 'Fiordi Norvegesi',
|
|
121
|
+
'Paesi Bassi', 'Amsterdam', 'Rotterdam', 'L’Aia', 'Utrecht',
|
|
122
|
+
'Polonia', 'Varsavia', 'Cracovia', 'Danzica', 'Breslavia',
|
|
123
|
+
'Portogallo', 'Lisbona', 'Oporto', 'Madeira', 'Azzorre', 'Sintra', 'Algarve',
|
|
124
|
+
'Repubblica Ceca', 'Praga', 'Brno',
|
|
125
|
+
'Romania', 'Bucarest', 'Transilvania',
|
|
131
126
|
'Russia', 'Mosca', 'San Pietroburgo',
|
|
132
|
-
'
|
|
133
|
-
'
|
|
134
|
-
'
|
|
127
|
+
'San Marino', 'Città del Vaticano', 'Andorra',
|
|
128
|
+
'Serbia', 'Belgrado',
|
|
129
|
+
'Slovacchia', 'Bratislava',
|
|
130
|
+
'Slovenia', 'Lubiana', 'Bled',
|
|
131
|
+
'Svezia', 'Stoccolma', 'Göteborg', 'Malmö',
|
|
132
|
+
'Turchia', 'Ankara', 'Istanbul', 'Smirne', 'Antalya', 'Cappadocia',
|
|
133
|
+
'Ucraina', 'Kiev', 'Kyiv', 'Odessa', 'Leopoli',
|
|
134
|
+
'Ungheria', 'Budapest',
|
|
135
135
|
|
|
136
136
|
|
|
137
137
|
// AMERICA DEL NORD
|
|
@@ -218,14 +218,14 @@ const places = [
|
|
|
218
218
|
'Machu Picchu', 'Valle Sacra degli Inca', 'Lago Titicaca', 'Linee di Nazca', 'Vinicunca',
|
|
219
219
|
|
|
220
220
|
// altri paesi dell'America del Sud
|
|
221
|
+
'Bolivia', 'La Paz', 'Cochabamba', 'Sucre', 'Salar de Uyuni',
|
|
221
222
|
'Cile', 'Santiago del Cile', 'Valparaíso', 'Isola di Pasqua', 'Torres del Paine', 'Atacama Desert',
|
|
222
223
|
'Colombia', 'Bogotà', 'Medellín', 'Cartagena Old Town',
|
|
223
224
|
'Ecuador', 'Quito', 'Guayaquil', 'Galapagos Islands',
|
|
225
|
+
'Guyana', 'Suriname',
|
|
226
|
+
'Paraguay', 'Asunción',
|
|
224
227
|
'Uruguay', 'Montevideo',
|
|
225
|
-
'Bolivia', 'La Paz', 'Cochabamba', 'Sucre', 'Salar de Uyuni',
|
|
226
228
|
'Venezuela', 'Caracas',
|
|
227
|
-
'Paraguay', 'Asunción',
|
|
228
|
-
'Guyana', 'Suriname',
|
|
229
229
|
|
|
230
230
|
|
|
231
231
|
// ASIA
|
|
@@ -272,39 +272,39 @@ const places = [
|
|
|
272
272
|
'Piazza Durbar', 'Campo Base dell\'Everest', 'Lago Phewa', 'Parco di Chitwan',
|
|
273
273
|
|
|
274
274
|
// altri paesi asiatici
|
|
275
|
-
'
|
|
276
|
-
'Thailandia', 'Bangkok', 'Phuket', 'Chiang Mai',
|
|
277
|
-
'Vietnam', 'Hanoi', 'Ho Chi Minh', 'Halong Bay',
|
|
278
|
-
'Indonesia', 'Giacarta', 'Bali', 'Borobudur',
|
|
279
|
-
'Filippine', 'Manila',
|
|
280
|
-
'Malaysia', 'Kuala Lumpur',
|
|
281
|
-
'Singapour', 'Singapore',
|
|
282
|
-
'Emirati Arabi Uniti', 'Abu Dhabi', 'Dubai',
|
|
275
|
+
'Afghanistan', 'Kabul',
|
|
283
276
|
'Arabia Saudita', 'Riad',
|
|
284
|
-
'
|
|
285
|
-
'Giordania', 'Amman', 'Petra',
|
|
286
|
-
'Kazakistan', 'Astana',
|
|
287
|
-
'Uzbekistan', 'Tashkent', 'Samarcanda',
|
|
288
|
-
'Mongolia', 'Ulan Bator',
|
|
289
|
-
'Corea del Nord', 'Pyongyang',
|
|
290
|
-
'Taiwan', 'Taipei',
|
|
291
|
-
'Cambogia', 'Phnom Penh', 'Angkor Wat',
|
|
292
|
-
'Laos', 'Vientiane',
|
|
293
|
-
'Myanmar', 'Bagan',
|
|
294
|
-
'Sri Lanka', 'Colombo',
|
|
277
|
+
'Bahrein', 'Yemen',
|
|
295
278
|
'Bangladesh', 'Dacca',
|
|
296
|
-
'Pakistan', 'Islamabad', 'Karachi',
|
|
297
|
-
'Afghanistan', 'Kabul',
|
|
298
279
|
'Bhutan', 'Thimphu',
|
|
299
|
-
'Maldive', 'Maldivian Atolls',
|
|
300
280
|
'Brunei',
|
|
281
|
+
'Cambogia', 'Phnom Penh', 'Angkor Wat',
|
|
282
|
+
'Corea del Nord', 'Pyongyang',
|
|
283
|
+
'Corea del Sud', 'Seoul', 'Busan', 'Jeju Island',
|
|
284
|
+
'Emirati Arabi Uniti', 'Abu Dhabi', 'Dubai',
|
|
285
|
+
'Filippine', 'Manila',
|
|
286
|
+
'Giordania', 'Amman', 'Petra',
|
|
287
|
+
'Indonesia', 'Giacarta', 'Bali', 'Borobudur',
|
|
301
288
|
'Iran', 'Teheran',
|
|
302
289
|
'Iraq', 'Baghdad',
|
|
303
|
-
'
|
|
304
|
-
'
|
|
290
|
+
'Israele', 'Gerusalemme',
|
|
291
|
+
'Kazakistan', 'Astana',
|
|
305
292
|
'Kuwait', 'Qatar', 'Doha',
|
|
293
|
+
'Laos', 'Vientiane',
|
|
294
|
+
'Libano', 'Beirut',
|
|
295
|
+
'Malaysia', 'Kuala Lumpur',
|
|
296
|
+
'Maldive', 'Maldivian Atolls',
|
|
297
|
+
'Mongolia', 'Ulan Bator',
|
|
298
|
+
'Myanmar', 'Bagan',
|
|
306
299
|
'Oman', 'Mascate',
|
|
307
|
-
'
|
|
300
|
+
'Pakistan', 'Islamabad', 'Karachi',
|
|
301
|
+
'Singapour', 'Singapore',
|
|
302
|
+
'Siria', 'Damasco',
|
|
303
|
+
'Sri Lanka', 'Colombo',
|
|
304
|
+
'Taiwan', 'Taipei',
|
|
305
|
+
'Thailandia', 'Bangkok', 'Phuket', 'Chiang Mai',
|
|
306
|
+
'Uzbekistan', 'Tashkent', 'Samarcanda',
|
|
307
|
+
'Vietnam', 'Hanoi', 'Ho Chi Minh', 'Halong Bay',
|
|
308
308
|
|
|
309
309
|
|
|
310
310
|
// AFRICA
|
|
@@ -341,34 +341,34 @@ const places = [
|
|
|
341
341
|
'Parco Nazionale Kruger', 'Capo di Buona Speranza', 'Garden Route', 'Robben Island',
|
|
342
342
|
|
|
343
343
|
// altri paesi africani
|
|
344
|
-
'
|
|
345
|
-
'
|
|
344
|
+
'Algeria', 'Algeri',
|
|
345
|
+
'Angola', 'Luanda',
|
|
346
|
+
'Botswana', 'Gaborone', 'Okavango Delta',
|
|
347
|
+
'Burkina Faso', 'Sierra Leone', 'Liberia', 'Guinea', 'Gibuti',
|
|
348
|
+
'Capo Verde',
|
|
349
|
+
'Congo', 'Kinshasa',
|
|
350
|
+
'Costa d’Avorio', 'Camerun',
|
|
351
|
+
'Eritrea', 'Asmara',
|
|
352
|
+
'Etiopia', 'Addis Abeba',
|
|
353
|
+
'Gambia', 'Niger', 'Ciad', 'Mauritania', 'Malawi', 'Lesotho', 'Eswatini', 'Gabon', 'Togo', 'Benin',
|
|
354
|
+
'Ghana', 'Accra',
|
|
346
355
|
'Kenya', 'Nairobi',
|
|
347
|
-
'
|
|
356
|
+
'Libia', 'Tripoli',
|
|
348
357
|
'Madagascar', 'Antananarivo',
|
|
358
|
+
'Marocco', 'Rabat', 'Marrakech', 'Casablanca', 'Fes', 'Tangeri', 'Chefchaouen',
|
|
349
359
|
'Mauritius', 'Port Louis', 'Le Morne Brabant',
|
|
350
|
-
'Etiopia', 'Addis Abeba',
|
|
351
|
-
'Algeria', 'Algeri',
|
|
352
|
-
'Libia', 'Tripoli',
|
|
353
|
-
'Nigeria', 'Abuja', 'Lagos',
|
|
354
|
-
'Ghana', 'Accra',
|
|
355
|
-
'Costa d’Avorio', 'Camerun',
|
|
356
|
-
'Uganda', 'Kampala',
|
|
357
|
-
'Ruanda', 'Kigali',
|
|
358
360
|
'Mozambico', 'Maputo',
|
|
359
|
-
'Zimbabwe', 'Harare', 'Victoria Falls',
|
|
360
|
-
'Zambia', 'Lusaka',
|
|
361
361
|
'Namibia', 'Windhoek',
|
|
362
|
-
'
|
|
363
|
-
'
|
|
364
|
-
'
|
|
362
|
+
'Nigeria', 'Abuja', 'Lagos',
|
|
363
|
+
'Ruanda', 'Kigali',
|
|
364
|
+
'Senegal', 'Dakar',
|
|
365
365
|
'Seychelles', 'Praslin Island',
|
|
366
|
-
'Capo Verde',
|
|
367
|
-
'Congo', 'Kinshasa',
|
|
368
366
|
'Somalia', 'Mogadiscio',
|
|
369
|
-
'
|
|
370
|
-
'
|
|
371
|
-
'
|
|
367
|
+
'Sudan', 'Khartum',
|
|
368
|
+
'Tunisia', 'Tunisi',
|
|
369
|
+
'Uganda', 'Kampala',
|
|
370
|
+
'Zambia', 'Lusaka',
|
|
371
|
+
'Zimbabwe', 'Harare', 'Victoria Falls',
|
|
372
372
|
|
|
373
373
|
|
|
374
374
|
// OCEANIA
|
|
@@ -398,38 +398,38 @@ const places = [
|
|
|
398
398
|
|
|
399
399
|
// altri paesi dell'Oceania
|
|
400
400
|
'Fiji', 'Suva',
|
|
401
|
-
'Polinesia Francese', 'Papeete', 'Tahiti', 'Bora Bora',
|
|
402
401
|
'Papua Nuova Guinea', 'Port Moresby',
|
|
402
|
+
'Polinesia Francese', 'Papeete', 'Tahiti', 'Bora Bora',
|
|
403
403
|
'Samoa', 'Tonga', 'Vanuatu', 'Nuova Caledonia', 'Isole Cook', 'Isole Salomone',
|
|
404
404
|
|
|
405
405
|
|
|
406
406
|
// --------------------
|
|
407
|
-
//
|
|
407
|
+
// luoghi non legati a un singolo paese (mari, oceani, regioni, aree polari)
|
|
408
|
+
'Ande', 'Amazzonia', 'Terra del Fuoco',
|
|
409
|
+
'Artide', 'Polo Nord', 'Antartide', 'Polo Sud',
|
|
410
|
+
'Groenlandia', 'Lapponia', 'Siberia',
|
|
408
411
|
'Mar Mediterraneo', 'Mediterraneo', 'Mar Adriatico', 'Mar Tirreno', 'Mar Ionio', 'Mar Ligure',
|
|
409
412
|
'Mar Nero', 'Mar Baltico', 'Mare del Nord', 'Mar Rosso', 'Mar Morto', 'Mar dei Caraibi', 'Caraibi',
|
|
410
413
|
'Oceano Atlantico', 'Oceano Pacifico', 'Oceano Indiano',
|
|
411
|
-
'Artide', 'Polo Nord', 'Antartide', 'Polo Sud',
|
|
412
|
-
'Groenlandia', 'Lapponia', 'Siberia',
|
|
413
414
|
'Sahara', 'Kalahari', 'Namib',
|
|
414
|
-
'Ande', 'Amazzonia', 'Terra del Fuoco'
|
|
415
415
|
];
|
|
416
416
|
|
|
417
417
|
|
|
418
418
|
/**
|
|
419
|
-
*
|
|
419
|
+
* Chiave usata per far corrispondere un luogo indipendentemente da maiuscole/minuscole, spaziatura e stile dell'apostrofo
|
|
420
420
|
* @param {string} str
|
|
421
421
|
* @returns {string}
|
|
422
422
|
*/
|
|
423
423
|
const placeKey = str => str.toLowerCase().replace(/[ \u00A0]+/g, ' ').replace(/['‘’]/g, '’');
|
|
424
424
|
|
|
425
425
|
/**
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
426
|
+
* Costruisce il matcher per un elenco di luoghi: una singola regex (prima i luoghi più lunghi, così che
|
|
427
|
+
* ad es. "Lago di Como" prevalga su un nome più corto sovrapposto) e una mappa chiave → forma canonica.
|
|
428
|
+
* La forma canonica usa l'apostrofo tipografico e gli spazi non separabili dopo le particelle,
|
|
429
|
+
* in modo coerente con betterText().
|
|
430
430
|
*
|
|
431
|
-
* @param {string[]} list -
|
|
432
|
-
* @returns {{regex: RegExp, canonical: Map<string, string>} | null} null
|
|
431
|
+
* @param {string[]} list - elenco dei luoghi
|
|
432
|
+
* @returns {{regex: RegExp, canonical: Map<string, string>} | null} null se l'elenco è vuoto
|
|
433
433
|
*/
|
|
434
434
|
function buildPlacesMatcher(list) {
|
|
435
435
|
const canonical = new Map();
|
|
@@ -459,7 +459,7 @@ function buildPlacesMatcher(list) {
|
|
|
459
459
|
);
|
|
460
460
|
|
|
461
461
|
return {
|
|
462
|
-
//
|
|
462
|
+
// delimitatori personalizzati al posto di \b, che non funziona con lettere accentate ai bordi (es. "Perù")
|
|
463
463
|
regex: new RegExp(`(?<![\\p{L}\\p{N}])(?:${patterns.join('|')})(?![\\p{L}\\p{N}])`, 'giu'),
|
|
464
464
|
canonical
|
|
465
465
|
};
|
|
@@ -468,21 +468,21 @@ function buildPlacesMatcher(list) {
|
|
|
468
468
|
const defaultMatcher = buildPlacesMatcher(places);
|
|
469
469
|
|
|
470
470
|
/**
|
|
471
|
-
*
|
|
472
|
-
* (
|
|
473
|
-
*
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
471
|
+
* Versione di betterText() che normalizza anche le occorrenze di luoghi noti
|
|
472
|
+
* (paesi, città, fiumi, monti, località turistiche) presenti nel testo:
|
|
473
|
+
* il confronto non distingue maiuscole/minuscole ed è tollerante su spaziatura e stile
|
|
474
|
+
* dell'apostrofo, e ogni corrispondenza viene sostituita dalla forma canonica elencata in `places`
|
|
475
|
+
* (capitalizzazione, apostrofo tipografico, spazi non separabili dopo le particelle).
|
|
476
|
+
* La sostituzione dei luoghi viene eseguita dopo betterText(), quindi ha la precedenza sulla
|
|
477
|
+
* capitalizzazione imposta a particelle e parole personalizzate.
|
|
478
478
|
*
|
|
479
|
-
*
|
|
480
|
-
*
|
|
479
|
+
* NOTA: i luoghi che sono anche parole comuni (es. "Meno", "Po", "Reno") vengono messi in maiuscolo
|
|
480
|
+
* ovunque compaiano.
|
|
481
481
|
*
|
|
482
|
-
* @param {string} str -
|
|
483
|
-
* @param {string[]} [custom_words] -
|
|
484
|
-
* @param {string[]} [extra_places] -
|
|
485
|
-
* @returns {string}
|
|
482
|
+
* @param {string} str - stringa da elaborare
|
|
483
|
+
* @param {string[]} [custom_words] - elenco di parole di cui va mantenuta la capitalizzazione esatta (es. `['iPhone', 'macOS']`) (default: [])
|
|
484
|
+
* @param {string[]} [extra_places] - luoghi aggiuntivi, uniti all'elenco predefinito (default: [])
|
|
485
|
+
* @returns {string} stringa elaborata, oppure stringa vuota se l'input è falsy
|
|
486
486
|
*
|
|
487
487
|
* @example
|
|
488
488
|
* betterTextWithPlaces("vacanza a new york e nel lago di como ,l'avana");
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
/*! minimo - Better Text */
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
/*
|
|
6
|
+
Particelle/articoli italiani (più alcuni termini inglesi e toponomastici) di cui viene
|
|
7
|
+
imposta la capitalizzazione e dopo i quali gli spazi vengono trasformati in spazi non
|
|
8
|
+
separabili. Portati a livello di modulo insieme alle regex/lookup costruite qui sotto, dato
|
|
9
|
+
che nulla di tutto ciò dipende dagli argomenti della funzione e in precedenza veniva
|
|
10
|
+
ricostruito a ogni singola chiamata di betterText().
|
|
11
|
+
*/
|
|
9
12
|
const PARTICELLE = [
|
|
10
13
|
'e', 'ed',
|
|
11
14
|
'di', 'a', 'da', 'in', 'per', 'con', 'su', 'per', 'tra', 'fra',
|
|
@@ -18,72 +21,76 @@ const PARTICELLE = [
|
|
|
18
21
|
'col', 'collo', 'colla', 'con', 'coi', 'cogli', 'colle',
|
|
19
22
|
'sul', 'sullo', 'sulla', 'sui', 'sugli', 'sulle',
|
|
20
23
|
|
|
21
|
-
//
|
|
24
|
+
// termini toponomastici
|
|
22
25
|
'C.so', 'Corso', 'Via', 'P.za', 'Piazza', 'L.go', 'Largo', 'V.le', 'Viale',
|
|
23
26
|
'De', 'San', 'c/o', 'Loc.',
|
|
24
27
|
|
|
25
|
-
//
|
|
28
|
+
// inglese
|
|
26
29
|
'the', 'a', 'an', 'at', 'out', 'of',
|
|
27
30
|
|
|
28
|
-
//
|
|
31
|
+
// parole usate nei geonames
|
|
29
32
|
'isola', 'isole'
|
|
30
33
|
];
|
|
31
34
|
|
|
32
|
-
//
|
|
35
|
+
// corrisponde a una particella seguita da uno o più spazi, da trasformare in spazi non separabili
|
|
33
36
|
export const NBSP_AFTER_PARTICLE_REGEX =new RegExp('\\b(' + PARTICELLE.join('|') + ')\\b +', 'gmi');
|
|
34
37
|
|
|
35
|
-
//
|
|
38
|
+
// corrisponde a qualsiasi particella indipendentemente dal maiuscolo/minuscolo, per imporne la capitalizzazione esatta in un solo passaggio
|
|
36
39
|
const PARTICLE_CASING_REGEX = new RegExp('\\b(' + PARTICELLE.join('|') + ')\\b', 'gmi');
|
|
37
40
|
|
|
38
|
-
//
|
|
41
|
+
// particella in minuscolo → sua capitalizzazione esatta, per il replacer usato con PARTICLE_CASING_REGEX
|
|
39
42
|
const PARTICLE_CASING_MAP = new Map(PARTICELLE.map(term => [term.toLowerCase(), term]));
|
|
40
43
|
|
|
41
44
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
45
|
+
* Migliora una stringa di testo correggendo la spaziatura della punteggiatura, gli spazi
|
|
46
|
+
* multipli, le virgolette tipografiche, gli spazi non separabili dopo le particelle/articoli
|
|
47
|
+
* italiani e, opzionalmente, imponendo la capitalizzazione esatta di parole personalizzate.
|
|
48
|
+
* Le particelle vengono forzate alla capitalizzazione elencata, tranne all'inizio del testo
|
|
49
|
+
* dove la prima lettera è maiuscola.
|
|
47
50
|
*
|
|
48
|
-
* @param {string} str -
|
|
49
|
-
* @param {string[]} [custom_words] -
|
|
50
|
-
* @returns {string}
|
|
51
|
+
* @param {string} str - stringa da elaborare
|
|
52
|
+
* @param {string[]} [custom_words] - elenco di parole di cui va mantenuta la capitalizzazione esatta (es. `['iPhone', 'macOS']`) (default: [])
|
|
53
|
+
* @returns {string} stringa elaborata, oppure stringa vuota se l'input è falsy
|
|
51
54
|
*/
|
|
52
55
|
export function betterText(str, custom_words = []) {
|
|
53
56
|
|
|
54
57
|
if(str) {
|
|
55
58
|
str = str.trim();
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
/*
|
|
61
|
+
punteggiatura: rimuove lo spazio prima, garantisce un solo spazio dopo
|
|
62
|
+
NOTA: deve essere eseguito prima di qualsiasi sostituzione di entità HTML per evitare conflitti con `;`
|
|
63
|
+
(?!$): negative lookahead per saltare la punteggiatura a fine stringa
|
|
64
|
+
*/
|
|
60
65
|
str = str.replace(/ +(,|;|\.|:|!|\?)/g, '$1');
|
|
61
66
|
str = str.replace(/(,|;|\.|:|!|\?)(?!$) +/g, '$1 ');
|
|
62
67
|
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
/*
|
|
69
|
+
aggiunge lo spazio mancante dopo , ; ! ? quando seguiti direttamente da una lettera o da una virgoletta;
|
|
70
|
+
le cifre vengono saltate di proposito (decimali come 1,5), così come . e : (abbreviazioni, orari, URL)
|
|
71
|
+
*/
|
|
65
72
|
str = str.replace(/([,;!?])(?=[\p{L}"'“‘])/gu, '$1 ');
|
|
66
73
|
|
|
67
|
-
//
|
|
74
|
+
// comprime spazi e tabulazioni multipli (inclusi gli spazi non separabili)
|
|
68
75
|
str = str.replace(/[ \t\u00A0]+/g, ' ');
|
|
69
76
|
|
|
70
|
-
//
|
|
71
|
-
str = str.replace(/(^| )"/g, '$1“') //
|
|
72
|
-
.replace(/"/g, '”') //
|
|
73
|
-
.replace(/(^| )'/g, '$1‘') //
|
|
74
|
-
.replace(/'/g, '’') //
|
|
77
|
+
// virgolette tipografiche
|
|
78
|
+
str = str.replace(/(^| )"/g, '$1“') // virgolette doppie di apertura
|
|
79
|
+
.replace(/"/g, '”') // virgolette doppie rimanenti → chiusura
|
|
80
|
+
.replace(/(^| )'/g, '$1‘') // virgolette singole di apertura
|
|
81
|
+
.replace(/'/g, '’') // virgolette singole rimanenti e apostrofi
|
|
75
82
|
;
|
|
76
83
|
|
|
77
|
-
//
|
|
84
|
+
// rimuove lo spazio dopo l'apostrofo preceduto da articoli elisi (l', un', d', all', ...)
|
|
78
85
|
str = str.replace(/((^| )(l|un|d|all|dell|nell|sull)('|')) /gi, '$1' );
|
|
79
86
|
|
|
80
|
-
//
|
|
87
|
+
// sostituisce gli spazi normali con spazi non separabili dopo le particelle/articoli italiani
|
|
81
88
|
str = str.replace(NBSP_AFTER_PARTICLE_REGEX, function (match) {
|
|
82
89
|
return match.replace(/ +/g, '\u00A0');
|
|
83
90
|
});
|
|
84
91
|
|
|
85
|
-
//
|
|
86
|
-
//
|
|
92
|
+
// impone la capitalizzazione esatta di ogni particella in un solo passaggio;
|
|
93
|
+
// una particella all'inizio del testo (eventualmente dopo una virgoletta di apertura) viene messa in maiuscolo
|
|
87
94
|
str = str.replace(PARTICLE_CASING_REGEX, (match, _p1, offset, whole) => {
|
|
88
95
|
const exact = PARTICLE_CASING_MAP.get(match.toLowerCase()) ?? match;
|
|
89
96
|
return /^[“‘]?$/.test(whole.slice(0, offset))
|
|
@@ -91,8 +98,8 @@ export function betterText(str, custom_words = []) {
|
|
|
91
98
|
: exact;
|
|
92
99
|
});
|
|
93
100
|
|
|
94
|
-
//
|
|
95
|
-
//
|
|
101
|
+
// mette in maiuscolo la prima lettera dopo ! ? e i puntini di sospensione (... o …), eventualmente dopo una virgoletta di apertura;
|
|
102
|
+
// viene eseguito dopo la capitalizzazione delle particelle così che una maiuscola non venga annullata per particelle come "e" o "di"
|
|
96
103
|
str = str.replace(/([!?]|\.{3}|…) +([“‘]?)(\p{Ll})/gu, (_match, punct, quote, letter) =>
|
|
97
104
|
`${punct} ${quote}${letter.toUpperCase()}`
|
|
98
105
|
);
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/*! minimo - Classnames */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* `MinimoClass |
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* `MinimoClass | qualsiasi altra stringa`: mantiene l'autocomplete dell'editor per i nomi
|
|
5
|
+
* di classe di minimo (vedi ../../types/classes.d.ts, generato automaticamente) pur
|
|
6
|
+
* accettando nomi di classe arbitrari definiti dal consumer. Il branding `string & {}`
|
|
7
|
+
* è un trucco TS che impedisce all'union di ridursi a semplice `string`,
|
|
8
|
+
* cosa che disattiverebbe in silenzio l'autocomplete.
|
|
9
9
|
* @typedef {import('../../types/classes.js').MinimoClass | (string & {})} ClassName
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
/** @typedef {ClassName | null | undefined | false | 0} ClassValue */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* Unisce i nomi di classe CSS, scartando i valori falsy e non stringa.
|
|
16
|
+
* Accetta stringhe, valori falsy e array (anche annidati) degli stessi.
|
|
17
17
|
* @param {...(ClassValue | ClassValue[])} args
|
|
18
18
|
* @returns {string}
|
|
19
19
|
*/
|
|
@@ -29,7 +29,7 @@ export function classnames(...args) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Come {@link classnames}, ma restituisce `null` quando il risultato è una stringa vuota.
|
|
33
33
|
* @param {...(ClassValue | ClassValue[])} args
|
|
34
34
|
* @returns {string | null}
|
|
35
35
|
*/
|
package/src/utilities/cookies.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/*! minimo - Cookies */
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Restituisce il valore di un cookie dal nome.
|
|
6
6
|
* @param {string} name
|
|
7
7
|
* @param {object} [options]
|
|
8
|
-
* @param {boolean} [options.parseJson=false] -
|
|
8
|
+
* @param {boolean} [options.parseJson=false] - Se true, esegue il parsing JSON del valore e restituisce un oggetto invece di una stringa (default: false)
|
|
9
9
|
* @returns {string | object | null}
|
|
10
10
|
*/
|
|
11
11
|
export function getCookie(name, {parseJson = false} = {}) {
|
|
@@ -21,19 +21,19 @@ export function getCookie(name, {parseJson = false} = {}) {
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Imposta un cookie.
|
|
25
25
|
* @param {object} params
|
|
26
26
|
* @param {string} params.name
|
|
27
27
|
* @param {string} params.value
|
|
28
28
|
* @param {string|null} [params.path=null] (default: null)
|
|
29
|
-
* @param {number|null} [params.expire=null] - Max-Age in
|
|
29
|
+
* @param {number|null} [params.expire=null] - Max-Age in secondi (default: null)
|
|
30
30
|
* @example
|
|
31
|
-
* // Cookie
|
|
31
|
+
* // Cookie limitato alla sola pagina corrente, con durata di 15 giorni
|
|
32
32
|
* setCookie({
|
|
33
33
|
* name: 'cookieName',
|
|
34
34
|
* value: 'cookieValue',
|
|
35
35
|
* path: window.location.pathname,
|
|
36
|
-
* expire: 15 * 24 * 60 * 60 // 15
|
|
36
|
+
* expire: 15 * 24 * 60 * 60 // 15 giorni
|
|
37
37
|
* });
|
|
38
38
|
*/
|
|
39
39
|
export function setCookie({name, value, path = null, expire = null}) {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { stripTags } from './strip-tags.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Crea un id a partire da una stringa (utile per generare ancore automatiche dal contenuto di un tag).
|
|
6
|
+
* Rimuove i tag HTML e normalizza caratteri accentati, punteggiatura e spazi.
|
|
7
7
|
* @param {string | null | undefined} str
|
|
8
8
|
* @returns {string}
|
|
9
9
|
*/
|
|
@@ -12,7 +12,7 @@ export function createId(str) {
|
|
|
12
12
|
.toLowerCase()
|
|
13
13
|
.normalize('NFD')
|
|
14
14
|
.replace(/[\u0300-\u036f]/g, '')
|
|
15
|
-
.replace(/[\p{P}\p{S}]+/gu, '') //
|
|
15
|
+
.replace(/[\p{P}\p{S}]+/gu, '') // rimuove tutta la punteggiatura e i simboli Unicode
|
|
16
16
|
.replace(/\s+/g, '-')
|
|
17
17
|
.replace(/^-+|-+$/g, '')
|
|
18
18
|
.replace(/-+/g, '-')
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! minimo - Disable Buttons On Submit */
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Disabilita tutti i pulsanti `[type=submit]` e `[type=button]` al submit del form.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Si applica a tutti gli elementi `<form>` del documento, tranne quelli con
|
|
6
6
|
* `data-disable-submit="false"`.
|
|
7
7
|
*
|
|
8
8
|
* @returns {void}
|