sass-template-common 0.15.12 → 0.16.2
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/dist/sass-template-common.css +1 -1
- package/dist/sass-template-common.d.ts +281 -0
- package/dist/sass-template-common.js +5284 -4928
- package/dist/sass-template-common.umd.cjs +47 -47
- package/dist/ui/components/block_main_dynamic/block_main_dynamic.css +1 -1
- package/dist/ui/components/block_main_dynamic/destacado-notas-horizontal/components-block_main_dynamic-destacado-notas-horizontal.css +1 -1
- package/dist/ui/components/common/list-load-more/list-load-more.css +1 -0
- package/package.json +1 -1
|
@@ -353,8 +353,32 @@ export declare type BucketOriginConfig = {
|
|
|
353
353
|
cacheTtlMs?: number;
|
|
354
354
|
};
|
|
355
355
|
|
|
356
|
+
declare type BuildArgs = {
|
|
357
|
+
route: string;
|
|
358
|
+
slug: string;
|
|
359
|
+
page: number;
|
|
360
|
+
/** Tamano del lote. Es el `NEWS_PER_SECTION` con el que se pinto la pagina 1. */
|
|
361
|
+
size: number;
|
|
362
|
+
cfg?: LibraryConfig;
|
|
363
|
+
};
|
|
364
|
+
|
|
356
365
|
export declare function buildConfigMenuApiPath(servicePrefix: string, configVersion: string, fileName: string): string;
|
|
357
366
|
|
|
367
|
+
/**
|
|
368
|
+
* Arma `{ path, params }` para la pagina `page` de `route`.
|
|
369
|
+
*
|
|
370
|
+
* `publication` es OBLIGATORIO: sin el, el CMS responde 500 (verificado contra
|
|
371
|
+
* `news-list-section`). En el resto de la app viaja gratis porque `createAxiosApi`
|
|
372
|
+
* lo pone como param por default del instance; aca el request se arma a mano.
|
|
373
|
+
*
|
|
374
|
+
* Los listados transversales (tema / autor / ultimas-noticias) lo pisan con la
|
|
375
|
+
* lista de ids de multipublicacion; `seccion` NO, porque sus slugs son propios
|
|
376
|
+
* de cada publicacion.
|
|
377
|
+
*
|
|
378
|
+
* Devuelve `null` si la ruta no es una ruta de listado conocida.
|
|
379
|
+
*/
|
|
380
|
+
export declare function buildLoadMoreRequest({ route, slug, page, size, cfg, }: BuildArgs): LoadMoreCmsRequest | null;
|
|
381
|
+
|
|
358
382
|
export declare const buildTagUrl: (tag: Tag, paths: RoutePathConfig) => string;
|
|
359
383
|
|
|
360
384
|
/**
|
|
@@ -1266,11 +1290,29 @@ export declare const extractRealtedNews: typeof extractRelatedNews;
|
|
|
1266
1290
|
*/
|
|
1267
1291
|
export declare function extractRelatedNews(article: NewListResponseData): Array<Array<string>>;
|
|
1268
1292
|
|
|
1293
|
+
/** ID de tag en slugs como `lionel-messi-t640863` o `t640863`. */
|
|
1294
|
+
export declare const extractTagIdFromSlug: (slug: string) => string;
|
|
1295
|
+
|
|
1269
1296
|
export declare type FetchConfig = {
|
|
1270
1297
|
imgSizes: string;
|
|
1271
1298
|
newsType: string;
|
|
1272
1299
|
};
|
|
1273
1300
|
|
|
1301
|
+
declare type FetchMoreArgs = {
|
|
1302
|
+
endpoint: string;
|
|
1303
|
+
route: string;
|
|
1304
|
+
slug: string;
|
|
1305
|
+
page: number;
|
|
1306
|
+
size: number;
|
|
1307
|
+
/** Rama CDN: URL ya armada (con params) + headers. Ausente = endpoint propio. */
|
|
1308
|
+
direct?: {
|
|
1309
|
+
url: string;
|
|
1310
|
+
headers: Record<string, string>;
|
|
1311
|
+
};
|
|
1312
|
+
};
|
|
1313
|
+
|
|
1314
|
+
export declare function fetchMoreNews({ endpoint, route, slug, page, size, direct, }: FetchMoreArgs): Promise<MoreNewsPage>;
|
|
1315
|
+
|
|
1274
1316
|
/**
|
|
1275
1317
|
* Cache in-memory + deduplicación de requests en vuelo (misma clave → misma promesa).
|
|
1276
1318
|
* TTL corto pensado para SSR: evita 4–5 GETs repetidos de menú/banners por instancia.
|
|
@@ -1599,6 +1641,8 @@ export declare const GTM: () => "" | JSX.Element | undefined;
|
|
|
1599
1641
|
|
|
1600
1642
|
export declare function handleGetComments({ publication, path, size, sizereply, id, lastid, state, apiToken, API_ENV, }: GetCommentsParams): Promise<any>;
|
|
1601
1643
|
|
|
1644
|
+
export declare function handleListLoadMoreRequest(url: URL, { size, cfg, timeoutMs }: ListLoadMoreHandlerOptions): Promise<Response>;
|
|
1645
|
+
|
|
1602
1646
|
export declare interface Hascontent {
|
|
1603
1647
|
hasgalleryvideosflash: boolean;
|
|
1604
1648
|
hasgalleryvideosyoutube: boolean;
|
|
@@ -1914,6 +1958,9 @@ export declare interface Info {
|
|
|
1914
1958
|
|
|
1915
1959
|
export declare function initLibrary(userConfig?: LibraryConfig): void;
|
|
1916
1960
|
|
|
1961
|
+
/** Engancha todos los botones "Ver mas" presentes en `scope` (default: el documento). */
|
|
1962
|
+
export declare function initListLoadMore(scope?: ParentNode | null): void;
|
|
1963
|
+
|
|
1917
1964
|
/**
|
|
1918
1965
|
* Reescribe a "hace 3 horas" el texto de todo `[data-rel-ts]` cuya fecha caiga
|
|
1919
1966
|
* dentro de `maxAgeHours`, y lo refresca mientras la pestaña esté visible.
|
|
@@ -1955,6 +2002,9 @@ export declare interface ISection {
|
|
|
1955
2002
|
*/
|
|
1956
2003
|
export declare const isHomePath: (pathname?: string) => boolean;
|
|
1957
2004
|
|
|
2005
|
+
/** `true` si esta ruta muestra el boton "Ver mas" en lugar del paginador. */
|
|
2006
|
+
export declare function isLoadMoreRoute(route: string, cfg?: Pick<LibraryConfig, 'CONFIG_listLoadMore'>): boolean;
|
|
2007
|
+
|
|
1958
2008
|
export declare const isPhotoGallery: (news: NewListResponseData) => boolean | undefined;
|
|
1959
2009
|
|
|
1960
2010
|
/**
|
|
@@ -1972,6 +2022,15 @@ export declare const isPhotoGallery: (news: NewListResponseData) => boolean | un
|
|
|
1972
2022
|
*/
|
|
1973
2023
|
export declare function isRecaptchaBlocked(cfg?: Pick<LibraryConfig, 'CONFIG_blockRecaptcha'>): boolean;
|
|
1974
2024
|
|
|
2025
|
+
/**
|
|
2026
|
+
* ¿El molde es una tarjeta que este renderer sabe completar? Cubre
|
|
2027
|
+
* `section-card-1` y `SectionCard6`, que son las dos que emiten el bloque de
|
|
2028
|
+
* `NewsDescription` (`.sass-com-nd-*`). Una `OpinionCard2` (`.sass-com-oc2-*`)
|
|
2029
|
+
* NO lo emite: ahi el clon saldria con los datos de la primera nota repetidos,
|
|
2030
|
+
* asi que el runtime corta antes de pintar nada.
|
|
2031
|
+
*/
|
|
2032
|
+
export declare const isSupportedCardTemplate: (template: Element) => boolean;
|
|
2033
|
+
|
|
1975
2034
|
export declare class IssuuServices {
|
|
1976
2035
|
private issuuApi;
|
|
1977
2036
|
private api;
|
|
@@ -2113,6 +2172,28 @@ export declare type LibraryConfig = {
|
|
|
2113
2172
|
* hidratador de imágenes offline). Default `false` → usa `<HomeCard>` React.
|
|
2114
2173
|
*/
|
|
2115
2174
|
CONFIG_landingFastRender?: boolean;
|
|
2175
|
+
/**
|
|
2176
|
+
* [listados] Boton "Ver mas" en lugar de ANTERIOR/SIGUIENTE.
|
|
2177
|
+
*
|
|
2178
|
+
* `true` lo prende en todas las rutas de {@link LISTING_ROUTES} con los
|
|
2179
|
+
* defaults; la forma larga ({@link ListLoadMoreConfig}) permite elegir rutas,
|
|
2180
|
+
* tope de paginas y los params del pedido al CMS.
|
|
2181
|
+
*
|
|
2182
|
+
* Prenderlo arrastra, sin tocar codigo de la ruta:
|
|
2183
|
+
* - `SectionServerComponent` pinta `<ListLoadMore>` en el lugar exacto donde
|
|
2184
|
+
* pintaba `<NextPrev>`, o sea que hereda su caja y su CSS.
|
|
2185
|
+
* - `shouldDisablePagination(route)` pasa a `true`, para que el sitio recorte
|
|
2186
|
+
* la metadata de paginado (`rel=prev` / `rel=next`).
|
|
2187
|
+
*
|
|
2188
|
+
* Lo unico que cada repo monta a mano es el runtime de cliente
|
|
2189
|
+
* (`initListLoadMore()`, un `<script>` en el layout) y el endpoint
|
|
2190
|
+
* (`handleListLoadMoreRequest`, un archivo de ~6 lineas en `src/pages/api/`),
|
|
2191
|
+
* porque ni los `<script>` ni las rutas de Astro se pueden declarar desde un
|
|
2192
|
+
* paquete.
|
|
2193
|
+
*
|
|
2194
|
+
* Default `undefined` -> paginacion clasica, comportamiento actual.
|
|
2195
|
+
*/
|
|
2196
|
+
CONFIG_listLoadMore?: boolean | ListLoadMoreConfig;
|
|
2116
2197
|
/**
|
|
2117
2198
|
* [render] Fecha relativa ("hace 3 horas") en las superficies que emiten
|
|
2118
2199
|
* `data-rel-ts`. Solo lo lee el hidratador `initRelativeTime` en el cliente:
|
|
@@ -2317,8 +2398,137 @@ export declare interface Link {
|
|
|
2317
2398
|
|
|
2318
2399
|
export declare function LinkComponent(props: any): JSX.Element;
|
|
2319
2400
|
|
|
2401
|
+
/** Se emite cuando el boton agrego tarjetas: lo escucha `initRelativeTime`. */
|
|
2402
|
+
export declare const LIST_APPENDED_EVENT = "list:appended";
|
|
2403
|
+
|
|
2404
|
+
/**
|
|
2405
|
+
* Rutas de listado que el boton "Ver mas" sabe recorrer. Es la key con la que
|
|
2406
|
+
* viaja el `route` desde el boton hasta `buildLoadMoreRequest` y hasta el
|
|
2407
|
+
* endpoint propio del sitio; cada una resuelve a un endpoint distinto del CMS.
|
|
2408
|
+
*
|
|
2409
|
+
* `cartonista` NO es una `MetadataDefaultsKeys` (esa ruta se cuelga de la key
|
|
2410
|
+
* 'autor' para menu / banners / schemas), pero SI es una ruta de listado a
|
|
2411
|
+
* estos efectos.
|
|
2412
|
+
*/
|
|
2413
|
+
export declare const LISTING_ROUTES: readonly ["seccion", "tema", "ultimas-noticias", "autor", "cartonista"];
|
|
2414
|
+
|
|
2415
|
+
export declare type ListingRoute = (typeof LISTING_ROUTES)[number];
|
|
2416
|
+
|
|
2417
|
+
/**
|
|
2418
|
+
* Boton "Ver mas": reemplaza a ANTERIOR/SIGUIENTE en las rutas que el sitio
|
|
2419
|
+
* marca en `CONFIG_listLoadMore`.
|
|
2420
|
+
*
|
|
2421
|
+
* Se renderiza en el SERVIDOR (sin `client:`): el boton esta en el HTML desde el
|
|
2422
|
+
* primer byte, no hay salto de layout ni espera de hidratacion. Lo unico que
|
|
2423
|
+
* corre en el cliente es `initListLoadMore`, que lee todo de estos `data-*`.
|
|
2424
|
+
*
|
|
2425
|
+
* Va con las clases del paginador (`sass-com-np-content` + `sass-com-np-linkStyled`)
|
|
2426
|
+
* y en el mismo lugar del arbol a proposito: mismo alto, mismo radio, mismo
|
|
2427
|
+
* color y mismo hover que los links que reemplaza, sin CSS nuevo salvo el reset
|
|
2428
|
+
* del <button>.
|
|
2429
|
+
*/
|
|
2430
|
+
declare const ListLoadMore: FC<ListLoadMoreProps>;
|
|
2431
|
+
export { ListLoadMore }
|
|
2432
|
+
export { ListLoadMore as ListLoadMoreComponent }
|
|
2433
|
+
|
|
2434
|
+
/**
|
|
2435
|
+
* Forma larga del toggle {@link LibraryConfig.CONFIG_listLoadMore}.
|
|
2436
|
+
*/
|
|
2437
|
+
export declare type ListLoadMoreConfig = {
|
|
2438
|
+
/** Kill switch. `false` apaga la feature aunque el objeto este presente. */
|
|
2439
|
+
enabled?: boolean;
|
|
2440
|
+
/** Que rutas llevan boton. Default: todas las de {@link LISTING_ROUTES}. */
|
|
2441
|
+
routes?: ListingRoute[];
|
|
2442
|
+
/**
|
|
2443
|
+
* Tope de paginas que el boton deja alcanzar, contando la pagina 1 que ya
|
|
2444
|
+
* pinto el SSR: 5 => 4 clicks (paginas 2, 3, 4 y 5) y despues el boton se
|
|
2445
|
+
* saca del DOM. Default 5.
|
|
2446
|
+
*/
|
|
2447
|
+
maxPages?: number;
|
|
2448
|
+
/** Endpoint propio del sitio. Default `/api/get-more-list`. */
|
|
2449
|
+
endpoint?: string;
|
|
2450
|
+
/**
|
|
2451
|
+
* `newstype` del pedido. Tiene que ser el MISMO que usa el router del sitio
|
|
2452
|
+
* para la pagina 1 (`config.newsType`), o la tarjeta 46 no sale del mismo
|
|
2453
|
+
* universo que la 45. Sin valor, el param no se manda y el CMS aplica su
|
|
2454
|
+
* default.
|
|
2455
|
+
*/
|
|
2456
|
+
newsType?: string;
|
|
2457
|
+
/**
|
|
2458
|
+
* `imagesizes` del pedido. Mismo criterio: el corte con el que el router
|
|
2459
|
+
* pidio la pagina 1 (tipicamente `imageSizes.note.listStandard`). Sin valor,
|
|
2460
|
+
* el param no se manda y el CMS devuelve sus cortes por default — o sea,
|
|
2461
|
+
* imagenes con otra medida que las del SSR.
|
|
2462
|
+
*/
|
|
2463
|
+
imageSizes?: string;
|
|
2464
|
+
/** `exclude` del pedido. Default: el mismo de los routers de listado. */
|
|
2465
|
+
exclude?: string;
|
|
2466
|
+
/**
|
|
2467
|
+
* Opt-in: el browser le pide las notas al CMS por `/hit/*` en vez de al
|
|
2468
|
+
* endpoint propio. Ahorra el paso por el SSR, pero obliga a publicar los dos
|
|
2469
|
+
* tokens (`PUBLIC_X_SECURITY_TOKEN` y `PUBLIC_X_SECURITY_WAF_TOKEN`) en el
|
|
2470
|
+
* HTML de la pagina. Default `false`.
|
|
2471
|
+
*/
|
|
2472
|
+
cdnDirect?: boolean;
|
|
2473
|
+
/** Overrides por ruta de `newsType` / `imageSizes`. */
|
|
2474
|
+
routeOverrides?: Partial<Record<ListingRoute, ListLoadMoreRouteOverride>>;
|
|
2475
|
+
};
|
|
2476
|
+
|
|
2477
|
+
export declare type ListLoadMoreHandlerOptions = {
|
|
2478
|
+
/** Tamano del lote. Es el `config.newsListLimit` del sitio. */
|
|
2479
|
+
size: number;
|
|
2480
|
+
cfg?: LibraryConfig;
|
|
2481
|
+
/**
|
|
2482
|
+
* Techo del pedido al CMS. Sin esto, un lote alto que tarda mas de lo normal
|
|
2483
|
+
* se corta solo del lado de Node y el boton queda sin salida. Default 20 s
|
|
2484
|
+
* (medido: hay lotes que tardan ~9 s, y el resto de la app no pone timeout).
|
|
2485
|
+
*/
|
|
2486
|
+
timeoutMs?: number;
|
|
2487
|
+
};
|
|
2488
|
+
|
|
2489
|
+
export declare type ListLoadMoreProps = {
|
|
2490
|
+
/** Ruta de listado. Es la key con la que viaja hasta el endpoint. */
|
|
2491
|
+
route: string;
|
|
2492
|
+
/** Slug del listado: seccion, tag (`...-t1234`) o usuario del autor. */
|
|
2493
|
+
slug: string;
|
|
2494
|
+
/** Cuantas notas ya pinto el SSR. Lote incompleto = no hay pagina siguiente. */
|
|
2495
|
+
renderedCount: number;
|
|
2496
|
+
/** Tamano del lote (`NEWS_PER_SECTION`). */
|
|
2497
|
+
batchSize: number;
|
|
2498
|
+
/** Pagina que ya esta en pantalla. El boton arranca en `currentPage + 1`. */
|
|
2499
|
+
currentPage?: number;
|
|
2500
|
+
texts?: {
|
|
2501
|
+
[key: string]: string | undefined;
|
|
2502
|
+
};
|
|
2503
|
+
paths: RoutePathConfig;
|
|
2504
|
+
/** Clase de speculation rules, para sacarla de los clones. */
|
|
2505
|
+
prerenderClass?: string;
|
|
2506
|
+
/**
|
|
2507
|
+
* Variante de tarjeta con la que se pinto el listado (el `option` de
|
|
2508
|
+
* `SectionCardServerComponent`). Las variantes de opinion montan
|
|
2509
|
+
* `OpinionCard2`, que el renderer no sabe completar.
|
|
2510
|
+
*/
|
|
2511
|
+
cardOption?: string;
|
|
2512
|
+
/** Override del contenedor al que se le hace `appendChild`. */
|
|
2513
|
+
targetSelector?: string;
|
|
2514
|
+
/** Override del selector de la tarjeta molde dentro de ese contenedor. */
|
|
2515
|
+
itemSelector?: string;
|
|
2516
|
+
};
|
|
2517
|
+
|
|
2518
|
+
/** Overrides de los params del CMS para una ruta puntual. */
|
|
2519
|
+
export declare type ListLoadMoreRouteOverride = {
|
|
2520
|
+
newsType?: string;
|
|
2521
|
+
imageSizes?: string;
|
|
2522
|
+
};
|
|
2523
|
+
|
|
2320
2524
|
export declare const LiveBlogHeader: FC<Props_43>;
|
|
2321
2525
|
|
|
2526
|
+
export declare type LoadMoreCmsRequest = {
|
|
2527
|
+
/** Nombre del endpoint del CMS, sin host ni version de path. */
|
|
2528
|
+
path: string;
|
|
2529
|
+
params: Record<string, string>;
|
|
2530
|
+
};
|
|
2531
|
+
|
|
2322
2532
|
declare const Location_2: FC<Props_23>;
|
|
2323
2533
|
export { Location_2 as Location }
|
|
2324
2534
|
|
|
@@ -2545,6 +2755,12 @@ declare interface ModuloNewsletterProps {
|
|
|
2545
2755
|
|
|
2546
2756
|
export declare const ModuloOpinion: FC<OptionCardBlockProps>;
|
|
2547
2757
|
|
|
2758
|
+
export declare type MoreNewsPage = {
|
|
2759
|
+
items: NewListResponseData[];
|
|
2760
|
+
/** Mismo criterio que el `showNext` del paginador: lote incompleto = no hay mas. */
|
|
2761
|
+
hasMore: boolean;
|
|
2762
|
+
};
|
|
2763
|
+
|
|
2548
2764
|
declare type Network = {
|
|
2549
2765
|
title: string;
|
|
2550
2766
|
slug: string;
|
|
@@ -2973,6 +3189,15 @@ export declare type NoteShare = {
|
|
|
2973
3189
|
|
|
2974
3190
|
export declare type NoteShareOption = 'X' | 'Email' | 'LinkedIn' | 'Whatsapp' | 'FaceBook';
|
|
2975
3191
|
|
|
3192
|
+
export declare const OpinionCard2: FC<OpinionCardProps>;
|
|
3193
|
+
|
|
3194
|
+
declare interface OpinionCardProps {
|
|
3195
|
+
data: NewListResponseData;
|
|
3196
|
+
autorIcon: any;
|
|
3197
|
+
paths: RoutePathConfig;
|
|
3198
|
+
speculationPrerenderClass?: string;
|
|
3199
|
+
}
|
|
3200
|
+
|
|
2976
3201
|
declare interface OptionCardBlockProps {
|
|
2977
3202
|
title: ReactNode;
|
|
2978
3203
|
banner?: ReactNode;
|
|
@@ -3747,6 +3972,20 @@ declare type Props_8 = {
|
|
|
3747
3972
|
custom_bannerPosition?: {
|
|
3748
3973
|
[key: number]: number;
|
|
3749
3974
|
};
|
|
3975
|
+
/**
|
|
3976
|
+
* [listados] Identidad del listado para el boton "Ver mas". Es lo UNICO que
|
|
3977
|
+
* cada ruta agrega para sumarse a la feature; el on/off vive en
|
|
3978
|
+
* `CONFIG_listLoadMore` (initLibrary), asi que con el toggle apagado este prop
|
|
3979
|
+
* no hace nada.
|
|
3980
|
+
*
|
|
3981
|
+
* `slug` va aparte del prop `slug` del componente a proposito: ese prop es la
|
|
3982
|
+
* VARIANTE de tarjeta (`option` de `SectionCardServerComponent`), y en varios
|
|
3983
|
+
* repos no coincide con el slug real del listado.
|
|
3984
|
+
*/
|
|
3985
|
+
loadMore?: {
|
|
3986
|
+
route: string;
|
|
3987
|
+
slug: string;
|
|
3988
|
+
};
|
|
3750
3989
|
};
|
|
3751
3990
|
|
|
3752
3991
|
declare type Props_9 = {
|
|
@@ -3916,6 +4155,21 @@ export declare type RelativeTimeSurface = 'note' | 'summary';
|
|
|
3916
4155
|
|
|
3917
4156
|
export declare const removePages: (pathname: string) => string;
|
|
3918
4157
|
|
|
4158
|
+
export declare type RenderCardContext = {
|
|
4159
|
+
/** Base de las imagenes relativas (`getEnvironmentUrl()` resuelto en el SSR). */
|
|
4160
|
+
imageBase: string;
|
|
4161
|
+
paths: RoutePathConfig;
|
|
4162
|
+
/** `SHOW_TAG_BY_SECTION`: la volanta muestra el primer tag y no la seccion. */
|
|
4163
|
+
showTagBySection: boolean;
|
|
4164
|
+
/** `PUBLIC_LNG` (el mismo valor que lee `formatDate` del singleton en el SSR). */
|
|
4165
|
+
lng: string;
|
|
4166
|
+
timeZone: string;
|
|
4167
|
+
/** Clase de speculation rules a sacar del clon. */
|
|
4168
|
+
prerenderClass?: string;
|
|
4169
|
+
};
|
|
4170
|
+
|
|
4171
|
+
export declare function renderCardFast(template: Element, item: NewListResponseData, ctx: RenderCardContext): Element;
|
|
4172
|
+
|
|
3919
4173
|
declare type ReplaceProps = {
|
|
3920
4174
|
'[author_replace]': string;
|
|
3921
4175
|
'[section_replace]': string;
|
|
@@ -4051,6 +4305,18 @@ export declare function resolveBucketMenuSubtype(path?: string): string;
|
|
|
4051
4305
|
*/
|
|
4052
4306
|
export declare function resolveBucketOriginUrl(bucket: BucketOriginConfig, servicePrefix: string | undefined, type: 'menu' | 'banners' | 'bloques', subtype: string, offline?: boolean): string;
|
|
4053
4307
|
|
|
4308
|
+
/** {@link ListLoadMoreConfig} con todos los defaults ya aplicados. */
|
|
4309
|
+
export declare type ResolvedListLoadMore = {
|
|
4310
|
+
routes: readonly ListingRoute[];
|
|
4311
|
+
maxPages: number;
|
|
4312
|
+
endpoint: string;
|
|
4313
|
+
newsType: string;
|
|
4314
|
+
imageSizes: string;
|
|
4315
|
+
exclude: string;
|
|
4316
|
+
cdnDirect: boolean;
|
|
4317
|
+
routeOverrides?: Partial<Record<ListingRoute, ListLoadMoreRouteOverride>>;
|
|
4318
|
+
};
|
|
4319
|
+
|
|
4054
4320
|
/**
|
|
4055
4321
|
* Recibe lo que el app mande hoy (contrato completo, parcial, o nada) y
|
|
4056
4322
|
* devuelve SIEMPRE un contrato completo. Los constructores públicos del
|
|
@@ -4063,6 +4329,13 @@ export declare function resolveBucketOriginUrl(bucket: BucketOriginConfig, servi
|
|
|
4063
4329
|
*/
|
|
4064
4330
|
export declare function resolveImageSizes(input: ImageSizesContractInput | undefined): ImageSizesResolution;
|
|
4065
4331
|
|
|
4332
|
+
/**
|
|
4333
|
+
* El toggle del boton "Ver mas" con los defaults aplicados, o `null` si el
|
|
4334
|
+
* sitio no lo prendio. Fuente UNICA de la resolucion: la consumen el componente,
|
|
4335
|
+
* el armador de params y el endpoint.
|
|
4336
|
+
*/
|
|
4337
|
+
export declare function resolveListLoadMore(cfg?: Pick<LibraryConfig, 'CONFIG_listLoadMore'>): ResolvedListLoadMore | null;
|
|
4338
|
+
|
|
4066
4339
|
/** Clase de prerender para una nota por índice (primer slot: todas las notas). */
|
|
4067
4340
|
export declare function resolveSpeculationPrerenderClass(index: number, speculationPrerenderClass?: string, speculationPrerender?: SpeculationPrerenderConfig): string | undefined;
|
|
4068
4341
|
|
|
@@ -4247,6 +4520,14 @@ declare type SelectItem = {
|
|
|
4247
4520
|
|
|
4248
4521
|
export declare function shareButtons({ noteShare }: Props_34): JSX.Element | null;
|
|
4249
4522
|
|
|
4523
|
+
/**
|
|
4524
|
+
* `true` si la ruta dejo de paginar de verdad, o sea si el sitio tiene que
|
|
4525
|
+
* recortar la metadata de paginado: sin `rel=prev` / `rel=next` y con el
|
|
4526
|
+
* canonical sin `/page/N`. Hoy es exactamente "esta ruta usa el boton", y existe
|
|
4527
|
+
* aparte para que los consumidores expresen la intencion y no la condicion.
|
|
4528
|
+
*/
|
|
4529
|
+
export declare function shouldDisablePagination(route: string, cfg?: Pick<LibraryConfig, 'CONFIG_listLoadMore'>): boolean;
|
|
4530
|
+
|
|
4250
4531
|
export declare const ShowSection: FC<Props_25>;
|
|
4251
4532
|
|
|
4252
4533
|
declare interface Size {
|