sass-template-common 0.11.21 → 0.11.23-beta.0
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 +36 -36
- package/dist/sass-template-common.d.ts +106 -0
- package/dist/sass-template-common.js +3846 -3736
- package/dist/sass-template-common.umd.cjs +52 -52
- package/package.json +69 -69
package/README.md
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# sass-template-common
|
|
2
|
-
|
|
3
|
-
Librería web, maqueta de configuración y componentes para proyectos sass.
|
|
4
|
-
|
|
5
|
-
## Publicar nueva versión
|
|
6
|
-
|
|
7
|
-
Para que los cambios se reflejen al publicar:
|
|
8
|
-
|
|
9
|
-
1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
|
|
10
|
-
```bash
|
|
11
|
-
pnpm version:patch # 0.3.21 → 0.3.22
|
|
12
|
-
# o
|
|
13
|
-
pnpm version:minor # 0.3.21 → 0.4.0
|
|
14
|
-
pnpm version:major # 0.3.21 → 1.0.0
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
2. **Build limpio + publicar**:
|
|
18
|
-
```bash
|
|
19
|
-
pnpm run clean && pnpm run build && pnpm publish
|
|
20
|
-
```
|
|
21
|
-
O en un solo paso (patch):
|
|
22
|
-
```bash
|
|
23
|
-
pnpm release:patch
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
|
|
27
|
-
|
|
28
|
-
4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
|
|
29
|
-
```bash
|
|
30
|
-
pnpm update sass-template-common
|
|
31
|
-
# o cambiar la versión en package.json y luego
|
|
32
|
-
pnpm install
|
|
33
|
-
```
|
|
34
|
-
Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
|
|
35
|
-
|
|
36
|
-
**Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
|
|
1
|
+
# sass-template-common
|
|
2
|
+
|
|
3
|
+
Librería web, maqueta de configuración y componentes para proyectos sass.
|
|
4
|
+
|
|
5
|
+
## Publicar nueva versión
|
|
6
|
+
|
|
7
|
+
Para que los cambios se reflejen al publicar:
|
|
8
|
+
|
|
9
|
+
1. **Subir versión** (obligatorio; si no, npm rechaza o se usa la misma versión):
|
|
10
|
+
```bash
|
|
11
|
+
pnpm version:patch # 0.3.21 → 0.3.22
|
|
12
|
+
# o
|
|
13
|
+
pnpm version:minor # 0.3.21 → 0.4.0
|
|
14
|
+
pnpm version:major # 0.3.21 → 1.0.0
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. **Build limpio + publicar**:
|
|
18
|
+
```bash
|
|
19
|
+
pnpm run clean && pnpm run build && pnpm publish
|
|
20
|
+
```
|
|
21
|
+
O en un solo paso (patch):
|
|
22
|
+
```bash
|
|
23
|
+
pnpm release:patch
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. **`prepublishOnly`**: Antes de cada `pnpm publish` se ejecuta `clean` + `build`, así siempre se publica un build nuevo.
|
|
27
|
+
|
|
28
|
+
4. **En proyectos que consumen la lib**: Actualizar la dependencia y reinstalar:
|
|
29
|
+
```bash
|
|
30
|
+
pnpm update sass-template-common
|
|
31
|
+
# o cambiar la versión en package.json y luego
|
|
32
|
+
pnpm install
|
|
33
|
+
```
|
|
34
|
+
Si usan versión fija (`"0.3.21"`), hay que actualizarla a la nueva (p. ej. `"0.3.22"`).
|
|
35
|
+
|
|
36
|
+
**Si no ves los cambios:** comprueba que subiste la versión (`version:patch` o similar), que hiciste `clean` + `build` antes de publicar, y que el proyecto consumidor tiene actualizada la dependencia (o `^0.3.21` y ha ejecutado `pnpm update`).
|
|
@@ -51,6 +51,16 @@ export declare type Analytics = {
|
|
|
51
51
|
comscore: string | undefined;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Una pasada sobre el DOM. Exportada aparte de `initRelativeTime` para poder
|
|
56
|
+
* re-correrla a mano después de inyectar HTML (paginados, "más noticias") —
|
|
57
|
+
* pasándole las MISMAS `opts` que se le pasaron a `initRelativeTime`.
|
|
58
|
+
*
|
|
59
|
+
* Tambien gateada por el flag: sin `enabled` no escribe nada. Es la condición
|
|
60
|
+
* de que el HTML de un sitio que no opto in sea el de siempre.
|
|
61
|
+
*/
|
|
62
|
+
export declare const applyRelativeTime: (opts?: RelativeTimeOptions) => void;
|
|
63
|
+
|
|
54
64
|
/**
|
|
55
65
|
* Red de seguridad runtime para consumidores JS (sin type-check). El tipo
|
|
56
66
|
* marca la forma en build; esto valida presencia de cada slot y que matchee
|
|
@@ -1248,6 +1258,21 @@ export declare const formatNewsMeta: (meta: any, news: NewListResponseData | und
|
|
|
1248
1258
|
};
|
|
1249
1259
|
};
|
|
1250
1260
|
|
|
1261
|
+
/**
|
|
1262
|
+
* Relativo ("hace 3 horas") si la nota es más nueva que `maxAgeHours`;
|
|
1263
|
+
* si no, cae a `formatDate` (absoluto).
|
|
1264
|
+
*
|
|
1265
|
+
* `now` entra POR PARÁMETRO, no se lee adentro: así la función es determinista
|
|
1266
|
+
* dado `(date, now)` y el SSR nunca la llama con `Date.now()` por accidente
|
|
1267
|
+
* (un relativo renderizado en servidor queda congelado en el cache del CDN y
|
|
1268
|
+
* a los 40 minutos sigue diciendo "hace 5 minutos" — información incorrecta,
|
|
1269
|
+
* no desactualizada).
|
|
1270
|
+
*/
|
|
1271
|
+
export declare const formatRelativeDate: (date: number, now: number, maxAgeHours?: number, DATE_CONFIG?: {
|
|
1272
|
+
PUBLIC_LNG: string;
|
|
1273
|
+
DATE_TIMEZONE: string;
|
|
1274
|
+
}) => string;
|
|
1275
|
+
|
|
1251
1276
|
export declare const FormatScripts: (props: ScriptProps) => JSX.Element | null;
|
|
1252
1277
|
|
|
1253
1278
|
export declare const formatVideoData: (meta: any, news: VideoResponseData, config: Config) => {
|
|
@@ -1736,6 +1761,19 @@ export declare interface Info {
|
|
|
1736
1761
|
|
|
1737
1762
|
export declare function initLibrary(userConfig?: LibraryConfig): void;
|
|
1738
1763
|
|
|
1764
|
+
/**
|
|
1765
|
+
* Reescribe a "hace 3 horas" el texto de todo `[data-rel-ts]` cuya fecha caiga
|
|
1766
|
+
* dentro de `maxAgeHours`, y lo refresca mientras la pestaña esté visible.
|
|
1767
|
+
*
|
|
1768
|
+
* Sin React a propósito: hidratar un nodo de texto con React cuesta más que el
|
|
1769
|
+
* dato. Sin JS —o sin llamar a esta función— queda el absoluto que emitió el
|
|
1770
|
+
* SSR, que es correcto, cacheable y el que lee el crawler.
|
|
1771
|
+
*
|
|
1772
|
+
* Idempotente: una segunda llamada reemplaza los listeners de la anterior.
|
|
1773
|
+
* Devuelve el disposer.
|
|
1774
|
+
*/
|
|
1775
|
+
export declare const initRelativeTime: (opts?: RelativeTimeOptions) => () => void;
|
|
1776
|
+
|
|
1739
1777
|
export declare function isConfigOriginAuditEnabled(): boolean;
|
|
1740
1778
|
|
|
1741
1779
|
export declare interface ISection {
|
|
@@ -1781,6 +1819,18 @@ export declare class IssuuServices {
|
|
|
1781
1819
|
/** True para videos (flash, youtube y embedded) en cualquiera de sus formas. */
|
|
1782
1820
|
export declare const isVideoContentItem: (item: any) => boolean;
|
|
1783
1821
|
|
|
1822
|
+
/**
|
|
1823
|
+
* ¿La fecha cae dentro de la ventana en la que corresponde texto relativo?
|
|
1824
|
+
*
|
|
1825
|
+
* Fuente ÚNICA de la decisión relativo-vs-absoluto: la consumen
|
|
1826
|
+
* `formatRelativeDate` (SSR/render) y el hidratador `initRelativeTime`
|
|
1827
|
+
* (cliente), para que nunca puedan discrepar.
|
|
1828
|
+
*
|
|
1829
|
+
* Las fechas futuras (`date > now`) quedan FUERA de la ventana a propósito:
|
|
1830
|
+
* un reloj de cliente atrasado no debe producir "en 3 horas".
|
|
1831
|
+
*/
|
|
1832
|
+
export declare const isWithinRelativeWindow: (date: number, now: number, maxAgeHours?: number) => boolean;
|
|
1833
|
+
|
|
1784
1834
|
export declare interface ItemFormatedType extends NewListResponseData {
|
|
1785
1835
|
gallery?: Array<Preview>;
|
|
1786
1836
|
videos?: Array<VideoItem>;
|
|
@@ -1877,6 +1927,19 @@ export declare type LibraryConfig = {
|
|
|
1877
1927
|
* hidratador de imágenes offline). Default `false` → usa `<HomeCard>` React.
|
|
1878
1928
|
*/
|
|
1879
1929
|
CONFIG_landingFastRender?: boolean;
|
|
1930
|
+
/**
|
|
1931
|
+
* [render] Fecha relativa ("hace 3 horas") en las superficies que emiten
|
|
1932
|
+
* `data-rel-ts`. Solo lo lee el hidratador `initRelativeTime` en el cliente:
|
|
1933
|
+
* el SSR SIEMPRE emite la fecha absoluta, porque el HTML se sirve cacheado y
|
|
1934
|
+
* un relativo renderizado en servidor queda congelado en el CDN.
|
|
1935
|
+
*
|
|
1936
|
+
* Default `undefined` -> comportamiento actual (absoluto, sin hidratador).
|
|
1937
|
+
* `maxAgeHours` default 24: pasada esa antiguedad se muestra el absoluto.
|
|
1938
|
+
*/
|
|
1939
|
+
CONFIG_relativeTime?: {
|
|
1940
|
+
enabled: boolean;
|
|
1941
|
+
maxAgeHours?: number;
|
|
1942
|
+
};
|
|
1880
1943
|
CONFIG_deferBanners?: {
|
|
1881
1944
|
common?: boolean;
|
|
1882
1945
|
middle?: boolean;
|
|
@@ -3382,6 +3445,49 @@ declare interface Relatedexternal {
|
|
|
3382
3445
|
news: boolean;
|
|
3383
3446
|
}
|
|
3384
3447
|
|
|
3448
|
+
/**
|
|
3449
|
+
* Marca un elemento como hidratable a fecha relativa. El valor es el timestamp
|
|
3450
|
+
* en milisegundos (el mismo número que consume `formatDate`).
|
|
3451
|
+
*/
|
|
3452
|
+
export declare const RELATIVE_TIME_ATTR = "data-rel-ts";
|
|
3453
|
+
|
|
3454
|
+
/**
|
|
3455
|
+
* Texto literal a preservar ANTES del relativo, para las superficies donde el
|
|
3456
|
+
* elemento contiene `"Autor - fecha"` en un ÚNICO nodo de texto (super,
|
|
3457
|
+
* block-video-2/3, fast-render de la home). Existe para no partir ese texto en
|
|
3458
|
+
* nodos nuevos: el hidratador reescribe el `textContent` como `prefix + relativo`.
|
|
3459
|
+
*
|
|
3460
|
+
* Duplica el nombre del autor en el HTML; al ser una repetición literal dentro
|
|
3461
|
+
* del mismo documento, gzip/brotli la resuelven como back-reference.
|
|
3462
|
+
*/
|
|
3463
|
+
export declare const RELATIVE_TIME_PREFIX_ATTR = "data-rel-prefix";
|
|
3464
|
+
|
|
3465
|
+
/**
|
|
3466
|
+
* Props JSX del contrato. Devuelve `{}` (spread vacío, cero atributos en el
|
|
3467
|
+
* HTML) si el timestamp no sirve: la superficie queda exactamente como hoy.
|
|
3468
|
+
*/
|
|
3469
|
+
export declare const relativeTimeAttrs: (ts: number | undefined, prefix?: string) => Record<string, string | number>;
|
|
3470
|
+
|
|
3471
|
+
/**
|
|
3472
|
+
* La misma info que `relativeTimeAttrs`, para los emisores de HTML-string
|
|
3473
|
+
* (`homeCardFastRender`). Devuelve `''` o un fragmento que ARRANCA con espacio,
|
|
3474
|
+
* listo para concatenar dentro del tag.
|
|
3475
|
+
*/
|
|
3476
|
+
export declare const relativeTimeAttrsHTML: (ts: number | undefined, prefix?: string) => string;
|
|
3477
|
+
|
|
3478
|
+
declare type RelativeTimeOptions = {
|
|
3479
|
+
/**
|
|
3480
|
+
* Gana sobre `CONFIG_relativeTime.enabled`. Sin ninguno de los dos en `true`
|
|
3481
|
+
* el hidratador es un no-op: no observa, no agenda y no toca el DOM.
|
|
3482
|
+
*/
|
|
3483
|
+
enabled?: boolean;
|
|
3484
|
+
maxAgeHours?: number;
|
|
3485
|
+
/** Cada cuánto refresca el texto. Default 60_000. `0` desactiva el refresco. */
|
|
3486
|
+
refreshMs?: number;
|
|
3487
|
+
/** Raíz del query. Default `document`. */
|
|
3488
|
+
root?: ParentNode;
|
|
3489
|
+
};
|
|
3490
|
+
|
|
3385
3491
|
export declare const removePages: (pathname: string) => string;
|
|
3386
3492
|
|
|
3387
3493
|
declare type ReplaceProps = {
|