@massimo-cassandro/minimo 1.43.3 → 1.43.4
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/package.json
CHANGED
|
@@ -104,7 +104,7 @@ import { classnames } from '../classnames.js';
|
|
|
104
104
|
* });
|
|
105
105
|
*
|
|
106
106
|
* @param {Object} args
|
|
107
|
-
* @param {string} args.baseSrc - URL base dell'immagine (endpoint del viewer); i suoi parametri di query vengono conservati. Un URL relativo (es. `/img/abc123`) viene risolto rispetto alla location corrente.
|
|
107
|
+
* @param {string} args.baseSrc - URL base dell'immagine (endpoint del viewer); i suoi parametri di query vengono conservati. Un URL relativo (es. `/img/abc123`) viene risolto rispetto alla location corrente; se relativo alla root (inizia con `/`, ma non con `//`), resta tale anche negli URL generati.
|
|
108
108
|
* @param {(number | [number, number] | PictureSizeEntry)[]} [args.sizes=[250]] - Dimensioni renderizzate dell'immagine, in qualsiasi ordine. Ogni entry è un oggetto `{from, size}` (vedi {@link PictureSizeEntry}); un numero semplice o una coppia `[width, height]` è la scorciatoia per l'entry predefinita mobile-first (quella senza `from`), attesa esattamente una volta (default: [250])
|
|
109
109
|
* @param {number|null} [args.ratio=null] - Aspect ratio predefinito (larghezza / altezza, come nella proprietà CSS `aspect-ratio`) usato per calcolare l'altezza delle size numeriche. Se null, l'altezza non viene calcolata: gli output legati all'altezza (attributo `height`, altezza nel parametro `bb`) vengono omessi e il viewer mantiene il ratio originale dell'immagine (default: null)
|
|
110
110
|
* @param {number} [args.dpr=2] - Densità di pixel massima (intero): i candidati di `srcset` vengono generati per ogni densità da 1 a `dpr` (default: 2)
|
|
@@ -183,6 +183,9 @@ export function buildPictureTag({
|
|
|
183
183
|
const base_url = new URL(baseSrc, globalThis.location?.href)
|
|
184
184
|
,searchParams = new URLSearchParams(base_url.search)
|
|
185
185
|
|
|
186
|
+
// baseSrc relativo alla root: negli URL generati viene omessa l'origine aggiunta per la risoluzione
|
|
187
|
+
,isRootRelative = baseSrc.startsWith('/') && !baseSrc.startsWith('//')
|
|
188
|
+
|
|
186
189
|
// dimensioni dei candidati srcset (una per ogni densità da 1 a `dpr`),
|
|
187
190
|
// senza duplicati (per larghezza), in ordine crescente
|
|
188
191
|
,srcsetSizes = sizeEntries
|
|
@@ -240,7 +243,7 @@ export function buildPictureTag({
|
|
|
240
243
|
// TODO senza altezza `bb=<w>x` vale per il viewer di default: prevedere altre convenzioni (es. imgix)
|
|
241
244
|
searchParams.set('bb', `${w}x${h ?? ''}`);
|
|
242
245
|
base_url.search = searchParams.toString();
|
|
243
|
-
srcsetArray.push(`${base_url.toString()} ${w}w`);
|
|
246
|
+
srcsetArray.push(`${isRootRelative? base_url.pathname + base_url.search : base_url.toString()} ${w}w`);
|
|
244
247
|
});
|
|
245
248
|
|
|
246
249
|
if(is_default_fmt) {
|