@cerca.red/mapa 0.2.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.
Files changed (68) hide show
  1. package/README.md +133 -0
  2. package/dist/capas.d.ts +29 -0
  3. package/dist/capas.js +489 -0
  4. package/dist/capas.js.map +1 -0
  5. package/dist/doble/estiloFalso.d.ts +19 -0
  6. package/dist/doble/estiloFalso.js +33 -0
  7. package/dist/doble/estiloFalso.js.map +1 -0
  8. package/dist/doble/index.d.ts +11 -0
  9. package/dist/doble/index.js +12 -0
  10. package/dist/doble/index.js.map +1 -0
  11. package/dist/doble/mapaFalso.d.ts +75 -0
  12. package/dist/doble/mapaFalso.js +535 -0
  13. package/dist/doble/mapaFalso.js.map +1 -0
  14. package/dist/encuadre.d.ts +64 -0
  15. package/dist/encuadre.js +83 -0
  16. package/dist/encuadre.js.map +1 -0
  17. package/dist/estilo.d.ts +88 -0
  18. package/dist/estilo.js +23 -0
  19. package/dist/estilo.js.map +1 -0
  20. package/dist/eventos.d.ts +127 -0
  21. package/dist/eventos.js +69 -0
  22. package/dist/eventos.js.map +1 -0
  23. package/dist/identificadores.d.ts +109 -0
  24. package/dist/identificadores.js +104 -0
  25. package/dist/identificadores.js.map +1 -0
  26. package/dist/index.d.ts +37 -0
  27. package/dist/index.js +33 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/manifiesto.d.ts +97 -0
  30. package/dist/manifiesto.js +156 -0
  31. package/dist/manifiesto.js.map +1 -0
  32. package/dist/modelo.d.ts +154 -0
  33. package/dist/modelo.js +227 -0
  34. package/dist/modelo.js.map +1 -0
  35. package/dist/navegador/index.d.ts +70 -0
  36. package/dist/navegador/index.js +132 -0
  37. package/dist/navegador/index.js.map +1 -0
  38. package/dist/navegador/maplibre.d.ts +41 -0
  39. package/dist/navegador/maplibre.js +463 -0
  40. package/dist/navegador/maplibre.js.map +1 -0
  41. package/dist/navegador/protocolo.d.ts +4 -0
  42. package/dist/navegador/protocolo.js +55 -0
  43. package/dist/navegador/protocolo.js.map +1 -0
  44. package/dist/navegador/webgl.d.ts +24 -0
  45. package/dist/navegador/webgl.js +47 -0
  46. package/dist/navegador/webgl.js.map +1 -0
  47. package/dist/navegador/worker.d.ts +33 -0
  48. package/dist/navegador/worker.js +47 -0
  49. package/dist/navegador/worker.js.map +1 -0
  50. package/dist/paleta.d.ts +53 -0
  51. package/dist/paleta.js +53 -0
  52. package/dist/paleta.js.map +1 -0
  53. package/dist/proyecciones.d.ts +160 -0
  54. package/dist/proyecciones.js +2 -0
  55. package/dist/proyecciones.js.map +1 -0
  56. package/dist/puerto.d.ts +244 -0
  57. package/dist/puerto.js +2 -0
  58. package/dist/puerto.js.map +1 -0
  59. package/dist/sdk.d.ts +111 -0
  60. package/dist/sdk.js +552 -0
  61. package/dist/sdk.js.map +1 -0
  62. package/dist/sincronizacion.d.ts +40 -0
  63. package/dist/sincronizacion.js +144 -0
  64. package/dist/sincronizacion.js.map +1 -0
  65. package/dist/worker-de-maplibre.d.ts +36 -0
  66. package/dist/worker-de-maplibre.js +37 -0
  67. package/dist/worker-de-maplibre.js.map +1 -0
  68. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capas.js","sourceRoot":"","sources":["../src/capas.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CapaDelEstilo } from \"./estilo.ts\";\nimport {\n type Anclas,\n CAPAS,\n FUENTES,\n RADIO_TACTIL_MINIMO_EN_PX,\n} from \"./identificadores.ts\";\nimport type { PaletaDelMapa } from \"./paleta.ts\";\n\n/**\n * Las capas de Cerca, como datos.\n *\n * Cada función devuelve una lista de capas y **el ancla donde van**. El SDK\n * las inserta en ese orden; no hay ninguna que dependa de dónde quedó otra.\n *\n * Se rehacen enteras cada vez que cambia el tema, porque cambiar de tema en\n * MapLibre es reemplazar el estilo completo y el estilo nuevo llega sin nada\n * de esto. Que sean funciones puras de la paleta es lo que hace que esa\n * reconstrucción no pueda quedar a medias.\n */\n\n/** Una capa con el ancla debajo de la cual se inserta. */\nexport interface CapaConAncla {\n readonly capa: CapaDelEstilo;\n readonly antesDe: string;\n}\n\n/** Radio del punto de un negocio, por énfasis. El tamaño distingue tanto como el color. */\nconst RADIO_POR_ENFASIS = {\n atenuado: 4,\n normal: 6,\n destacado: 9,\n} as const;\n\n/**\n * La expresión que elige radio según el énfasis y el zoom.\n *\n * Interpola con el zoom porque un punto de radio fijo se ve enorme al alejarse\n * —cuando hay cien en pantalla— y minúsculo al acercarse. Los valores están\n * atados a los tres énfasis para que la diferencia entre destacado y atenuado\n * siga siendo visible a cualquier zoom.\n */\nfunction radioDeNegocio(multiplicador: number): unknown {\n return [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 10,\n [\n \"*\",\n multiplicador * 0.7,\n [\n \"match\",\n [\"get\", \"enfasis\"],\n \"destacado\",\n RADIO_POR_ENFASIS.destacado,\n \"atenuado\",\n RADIO_POR_ENFASIS.atenuado,\n RADIO_POR_ENFASIS.normal,\n ],\n ],\n 16,\n [\n \"*\",\n multiplicador,\n [\n \"match\",\n [\"get\", \"enfasis\"],\n \"destacado\",\n RADIO_POR_ENFASIS.destacado,\n \"atenuado\",\n RADIO_POR_ENFASIS.atenuado,\n RADIO_POR_ENFASIS.normal,\n ],\n ],\n ];\n}\n\n/**\n * Las capas invisibles que reciben los toques.\n *\n * Radio 22 px, o sea un objetivo de 44 (CLAUDE.md §1). No se comprueba\n * leyendo este número: se comprueba tocando, calculando el punto con la\n * proyección del mapa y tocando dentro y fuera del radio. Un radio que nadie\n * tocó no está comprobado.\n */\nfunction capaDeToque(\n id: string,\n fuente: string,\n filter?: unknown,\n): CapaDelEstilo {\n return {\n id,\n type: \"circle\",\n source: fuente,\n ...(filter === undefined ? {} : { filter }),\n paint: {\n \"circle-radius\": RADIO_TACTIL_MINIMO_EN_PX,\n // Cero, no `visibility: none`. La consulta de entidades dibujadas\n // devuelve capas transparentes y no devuelve capas apagadas: si esto\n // fuera `none`, los alfileres dejarían de ser tocables sin que nada\n // cambiara de aspecto.\n \"circle-opacity\": 0,\n },\n };\n}\n\n/** Las áreas: isócronas, zonas de cobertura y halos de imprecisión. */\nexport function capasDeAreas(\n paleta: PaletaDelMapa,\n anclas: Anclas,\n): readonly CapaConAncla[] {\n const antesDe = anclas.lineas;\n return [\n {\n antesDe,\n capa: {\n id: CAPAS.isocronas,\n type: \"fill\",\n source: FUENTES.isocronas,\n paint: {\n \"fill-color\": paleta.isocrona,\n // Las bandas se superponen: la de 15 minutos contiene a la de 5.\n // Con opacidad baja, la acumulación es justo lo que hace legible\n // que el centro se alcanza antes.\n \"fill-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"get\", \"minutos\"],\n 5,\n 0.28,\n 30,\n 0.1,\n ],\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.isocronasBorde,\n type: \"line\",\n source: FUENTES.isocronas,\n paint: {\n \"line-color\": paleta.isocrona,\n \"line-width\": 1,\n \"line-opacity\": 0.6,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.zonas,\n type: \"fill\",\n source: FUENTES.zonas,\n paint: {\n \"fill-color\": paleta.zona,\n \"fill-opacity\": [\n \"match\",\n [\"get\", \"enfasis\"],\n \"destacado\",\n 0.28,\n \"atenuado\",\n 0.08,\n 0.16,\n ],\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.zonasBorde,\n type: \"line\",\n source: FUENTES.zonas,\n paint: { \"line-color\": paleta.bordeDeZona, \"line-width\": 1.5 },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.imprecision,\n type: \"fill\",\n source: FUENTES.imprecision,\n paint: { \"fill-color\": paleta.imprecision, \"fill-opacity\": 0.18 },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.imprecisionBorde,\n type: \"line\",\n source: FUENTES.imprecision,\n paint: {\n \"line-color\": paleta.bordeDeImprecision,\n \"line-width\": 1.5,\n // Discontinuo a propósito: es la forma, no el color, la que dice\n // «esto es una estimación». Quien no distinga los dos morados sigue\n // viendo que este borde no es como los demás.\n \"line-dasharray\": [2, 2],\n },\n },\n },\n ];\n}\n\n/** Las líneas: rutas, con su contorno y sus alternativas. */\nexport function capasDeLineas(\n paleta: PaletaDelMapa,\n anclas: Anclas,\n): readonly CapaConAncla[] {\n const antesDe = anclas.puntos;\n return [\n {\n antesDe,\n capa: {\n id: CAPAS.rutasAlternativas,\n type: \"line\",\n source: FUENTES.rutas,\n filter: [\"!\", [\"get\", \"principal\"]],\n layout: { \"line-cap\": \"round\", \"line-join\": \"round\" },\n paint: {\n \"line-color\": paleta.rutaAlternativa,\n \"line-width\": 4,\n \"line-dasharray\": [2, 1.5],\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.rutaPrincipalContorno,\n type: \"line\",\n source: FUENTES.rutas,\n filter: [\"get\", \"principal\"],\n layout: { \"line-cap\": \"round\", \"line-join\": \"round\" },\n // El contorno claro por debajo es lo que hace que la ruta se lea\n // sobre una avenida del mismo grosor y color parecido. Sin él, la\n // línea desaparece justo donde va por la vía que sigue.\n paint: { \"line-color\": paleta.contornoDeRuta, \"line-width\": 9 },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.rutaPrincipal,\n type: \"line\",\n source: FUENTES.rutas,\n filter: [\"get\", \"principal\"],\n layout: { \"line-cap\": \"round\", \"line-join\": \"round\" },\n paint: { \"line-color\": paleta.ruta, \"line-width\": 5 },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.rutasToque,\n type: \"line\",\n source: FUENTES.rutas,\n paint: {\n \"line-width\": RADIO_TACTIL_MINIMO_EN_PX * 2,\n \"line-opacity\": 0,\n },\n },\n },\n ];\n}\n\n/** Los puntos: grupos, negocios, sedes, vehículos y la ubicación del usuario. */\nexport function capasDePuntos(\n paleta: PaletaDelMapa,\n anclas: Anclas,\n): readonly CapaConAncla[] {\n const antesDe = anclas.seleccion;\n return [\n {\n antesDe,\n capa: {\n id: CAPAS.ubicacionHalo,\n type: \"fill\",\n source: FUENTES.ubicacion,\n // El halo es un **polígono**, no un círculo de MapLibre, y el filtro\n // lo separa del punto que va en la misma fuente. La razón está en\n // `circuloComoPoligono`: el radio de un círculo de MapLibre va en\n // píxeles, así que un halo de «30 metros de incertidumbre» dibujado\n // así mediría kilómetros al alejarse. Un polígono está en el mundo y\n // se queda donde está.\n filter: [\"==\", [\"geometry-type\"], \"Polygon\"],\n paint: {\n \"fill-color\": paleta.haloDeUbicacion,\n \"fill-opacity\": 0.15,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.ubicacionPunto,\n type: \"circle\",\n source: FUENTES.ubicacion,\n filter: [\"==\", [\"geometry-type\"], \"Point\"],\n paint: {\n \"circle-radius\": 6,\n \"circle-color\": paleta.ubicacion,\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": paleta.contornoDePunto,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.gruposServidorCirculo,\n type: \"circle\",\n source: FUENTES.grupos,\n paint: {\n \"circle-color\": paleta.grupo,\n \"circle-radius\": [\"step\", [\"get\", \"cantidad\"], 16, 10, 20, 50, 26],\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": paleta.contornoDePunto,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.gruposServidorCantidad,\n type: \"symbol\",\n source: FUENTES.grupos,\n layout: {\n \"text-field\": [\n \"coalesce\",\n [\"get\", \"rotulo\"],\n [\"to-string\", [\"get\", \"cantidad\"]],\n ],\n \"text-size\": 12,\n \"text-allow-overlap\": true,\n },\n paint: { \"text-color\": paleta.textoDeGrupo },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.gruposCirculo,\n type: \"circle\",\n source: FUENTES.negocios,\n filter: [\"has\", \"point_count\"],\n paint: {\n \"circle-color\": paleta.grupo,\n // El círculo crece con lo que contiene, en escalones. Un grupo de\n // 200 y uno de 3 tienen que verse distintos antes de leer el número.\n \"circle-radius\": [\"step\", [\"get\", \"point_count\"], 16, 10, 20, 50, 26],\n \"circle-stroke-width\": 2,\n \"circle-stroke-color\": paleta.contornoDePunto,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.gruposCantidad,\n type: \"symbol\",\n source: FUENTES.negocios,\n filter: [\"has\", \"point_count\"],\n layout: {\n \"text-field\": [\"get\", \"point_count_abbreviated\"],\n \"text-size\": 12,\n \"text-allow-overlap\": true,\n },\n paint: { \"text-color\": paleta.textoDeGrupo },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.sedesPunto,\n type: \"circle\",\n source: FUENTES.sedes,\n paint: {\n \"circle-radius\": 4,\n \"circle-color\": paleta.negocioAtenuado,\n \"circle-stroke-width\": 1.5,\n \"circle-stroke-color\": paleta.contornoDePunto,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.negociosPunto,\n type: \"circle\",\n source: FUENTES.negocios,\n filter: [\"!\", [\"has\", \"point_count\"]],\n paint: {\n \"circle-radius\": radioDeNegocio(1),\n \"circle-color\": [\n \"match\",\n [\"get\", \"enfasis\"],\n \"destacado\",\n paleta.negocioDestacado,\n \"atenuado\",\n paleta.negocioAtenuado,\n paleta.negocio,\n ],\n \"circle-stroke-width\": [\n \"case\",\n [\"boolean\", [\"feature-state\", \"encima\"], false],\n 3,\n 2,\n ],\n \"circle-stroke-color\": paleta.contornoDePunto,\n \"circle-opacity\": [\"match\", [\"get\", \"enfasis\"], \"atenuado\", 0.65, 1],\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.negociosSimbolo,\n type: \"symbol\",\n source: FUENTES.negocios,\n filter: [\"all\", [\"!\", [\"has\", \"point_count\"]], [\"has\", \"simbolo\"]],\n layout: {\n \"icon-image\": [\"get\", \"simbolo\"],\n \"icon-size\": 0.8,\n \"icon-allow-overlap\": true,\n \"text-field\": [\"coalesce\", [\"get\", \"rotulo\"], \"\"],\n \"text-size\": 11,\n \"text-offset\": [0, 1.3],\n \"text-anchor\": \"top\",\n \"text-optional\": true,\n },\n paint: {\n \"icon-color\": paleta.contornoDePunto,\n \"text-color\": paleta.rotulo,\n \"text-halo-color\": paleta.haloDeRotulo,\n \"text-halo-width\": 1.2,\n },\n },\n },\n {\n antesDe,\n capa: {\n id: CAPAS.vehiculos,\n type: \"symbol\",\n source: FUENTES.vehiculos,\n layout: {\n \"icon-image\": [\"coalesce\", [\"get\", \"simbolo\"], \"cerca-vehiculo\"],\n \"icon-size\": 0.9,\n \"icon-allow-overlap\": true,\n \"icon-rotate\": [\"coalesce\", [\"get\", \"rumbo\"], 0],\n \"icon-rotation-alignment\": \"map\",\n },\n paint: { \"icon-color\": paleta.vehiculo },\n },\n },\n {\n antesDe,\n capa: capaDeToque(CAPAS.gruposServidorToque, FUENTES.grupos),\n },\n {\n antesDe,\n capa: capaDeToque(CAPAS.gruposToque, FUENTES.negocios, [\n \"has\",\n \"point_count\",\n ]),\n },\n { antesDe, capa: capaDeToque(CAPAS.sedesToque, FUENTES.sedes) },\n {\n antesDe,\n capa: capaDeToque(CAPAS.negociosToque, FUENTES.negocios, [\n \"!\",\n [\"has\", \"point_count\"],\n ]),\n },\n { antesDe, capa: capaDeToque(CAPAS.vehiculosToque, FUENTES.vehiculos) },\n ];\n}\n\n/** La selección: encima de todo, con anillo además de color. */\nexport function capasDeSeleccion(\n paleta: PaletaDelMapa,\n): readonly CapaConAncla[] {\n return [\n {\n // Sin ancla: la selección es lo último y va arriba del todo. Es la\n // única familia de capas que no recibe `anclas`, y por eso su firma es\n // distinta — fingir que la recibe para igualar las firmas dejaría un\n // parámetro que nadie lee y que el siguiente lector creería que hace\n // algo.\n antesDe: \"\",\n capa: {\n id: CAPAS.seleccionArea,\n type: \"fill\",\n source: FUENTES.seleccion,\n // Un negocio seleccionado con ubicación aproximada llega aquí como\n // polígono, no como punto: ver `coleccionDeSeleccion`.\n filter: [\"==\", [\"geometry-type\"], \"Polygon\"],\n paint: {\n \"fill-color\": paleta.seleccion,\n \"fill-opacity\": 0.25,\n \"fill-outline-color\": paleta.seleccion,\n },\n },\n },\n {\n antesDe: \"\",\n capa: {\n id: CAPAS.seleccion,\n type: \"circle\",\n source: FUENTES.seleccion,\n filter: [\"==\", [\"geometry-type\"], \"Point\"],\n paint: {\n \"circle-radius\": radioDeNegocio(1.35),\n \"circle-color\": paleta.seleccion,\n // El anillo grueso es la señal que no depende del color: quien no\n // distinga el naranja del azul sigue viendo cuál está elegido.\n \"circle-stroke-width\": 4,\n \"circle-stroke-color\": paleta.contornoDePunto,\n },\n },\n },\n ];\n}\n\n/** Todas las capas de Cerca, en el orden en que se insertan. */\nexport function todasLasCapas(\n paleta: PaletaDelMapa,\n anclas: Anclas,\n): readonly CapaConAncla[] {\n return [\n ...capasDeAreas(paleta, anclas),\n ...capasDeLineas(paleta, anclas),\n ...capasDePuntos(paleta, anclas),\n ...capasDeSeleccion(paleta),\n ];\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { EspecificacionDeEstilo, FabricaDeEstilo } from "../estilo.ts";
2
+ /**
3
+ * Un estilo mínimo con las anclas puestas, para probar sin `mapa-estilos`.
4
+ *
5
+ * No pretende parecerse a un mapa: tiene un fondo, la fuente de teselas y las
6
+ * cuatro capas vacías que sirven de punto de inserción. Es justo lo que el SDK
7
+ * necesita del estilo, y esa es la razón de que exista — si el SDK necesitara
8
+ * algo más, esta función tendría que crecer, y eso se vería.
9
+ *
10
+ * Se exporta junto al doble porque una superficie que pruebe sus pantallas
11
+ * necesita un estilo tanto como necesita un motor.
12
+ */
13
+ export declare function estiloFalso(opciones: {
14
+ urlDeTeselas: string;
15
+ tema: string;
16
+ idioma: string;
17
+ }): EspecificacionDeEstilo;
18
+ /** La misma, con el tipo de la fábrica que espera `crearMapaConMotor`. */
19
+ export declare const fabricaDeEstiloFalso: FabricaDeEstilo;
@@ -0,0 +1,33 @@
1
+ import { ANCLAS_POR_DEFECTO } from "../identificadores.js";
2
+ /**
3
+ * Un estilo mínimo con las anclas puestas, para probar sin `mapa-estilos`.
4
+ *
5
+ * No pretende parecerse a un mapa: tiene un fondo, la fuente de teselas y las
6
+ * cuatro capas vacías que sirven de punto de inserción. Es justo lo que el SDK
7
+ * necesita del estilo, y esa es la razón de que exista — si el SDK necesitara
8
+ * algo más, esta función tendría que crecer, y eso se vería.
9
+ *
10
+ * Se exporta junto al doble porque una superficie que pruebe sus pantallas
11
+ * necesita un estilo tanto como necesita un motor.
12
+ */
13
+ export function estiloFalso(opciones) {
14
+ const anclaVacia = (id) => ({ id, type: "background" });
15
+ return {
16
+ version: 8,
17
+ name: `falso-${opciones.tema}-${opciones.idioma}`,
18
+ sources: {
19
+ base: { type: "vector", url: opciones.urlDeTeselas },
20
+ },
21
+ layers: [
22
+ { id: "fondo", type: "background" },
23
+ anclaVacia(ANCLAS_POR_DEFECTO.areas),
24
+ anclaVacia(ANCLAS_POR_DEFECTO.lineas),
25
+ { id: "rotulos-del-mapa-base", type: "symbol", source: "base" },
26
+ anclaVacia(ANCLAS_POR_DEFECTO.puntos),
27
+ anclaVacia(ANCLAS_POR_DEFECTO.seleccion),
28
+ ],
29
+ };
30
+ }
31
+ /** La misma, con el tipo de la fábrica que espera `crearMapaConMotor`. */
32
+ export const fabricaDeEstiloFalso = estiloFalso;
33
+ //# sourceMappingURL=estiloFalso.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estiloFalso.js","sourceRoot":"","sources":["../../src/doble/estiloFalso.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,QAI3B;IACC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAqB,EAAE,CAAC,CAAC;IAEzE,OAAO;QACL,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,SAAS,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;QACjD,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,YAAY,EAAE;SACrD;QACD,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;YACnC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACpC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACrC,EAAE,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;YAC/D,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACrC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC;SACzC;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAoB,WAAW,CAAC","sourcesContent":["import type { EspecificacionDeEstilo, FabricaDeEstilo } from \"../estilo.ts\";\nimport { ANCLAS_POR_DEFECTO } from \"../identificadores.ts\";\n\n/**\n * Un estilo mínimo con las anclas puestas, para probar sin `mapa-estilos`.\n *\n * No pretende parecerse a un mapa: tiene un fondo, la fuente de teselas y las\n * cuatro capas vacías que sirven de punto de inserción. Es justo lo que el SDK\n * necesita del estilo, y esa es la razón de que exista — si el SDK necesitara\n * algo más, esta función tendría que crecer, y eso se vería.\n *\n * Se exporta junto al doble porque una superficie que pruebe sus pantallas\n * necesita un estilo tanto como necesita un motor.\n */\nexport function estiloFalso(opciones: {\n urlDeTeselas: string;\n tema: string;\n idioma: string;\n}): EspecificacionDeEstilo {\n const anclaVacia = (id: string) => ({ id, type: \"background\" as const });\n\n return {\n version: 8,\n name: `falso-${opciones.tema}-${opciones.idioma}`,\n sources: {\n base: { type: \"vector\", url: opciones.urlDeTeselas },\n },\n layers: [\n { id: \"fondo\", type: \"background\" },\n anclaVacia(ANCLAS_POR_DEFECTO.areas),\n anclaVacia(ANCLAS_POR_DEFECTO.lineas),\n { id: \"rotulos-del-mapa-base\", type: \"symbol\", source: \"base\" },\n anclaVacia(ANCLAS_POR_DEFECTO.puntos),\n anclaVacia(ANCLAS_POR_DEFECTO.seleccion),\n ],\n };\n}\n\n/** La misma, con el tipo de la fábrica que espera `crearMapaConMotor`. */\nexport const fabricaDeEstiloFalso: FabricaDeEstilo = estiloFalso;\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `@cerca.red/mapa/doble` — un motor de mapas falso con la geometría de
3
+ * verdad, para probar sin WebGL.
4
+ *
5
+ * Se publica en vez de quedarse en las pruebas de este paquete porque las
6
+ * superficies lo necesitan igual: una PWA que quiera comprobar que al tocar
7
+ * un resultado de la lista el mapa recibió la orden de seleccionarlo no
8
+ * debería tener que levantar un contexto WebGL para saberlo.
9
+ */
10
+ export { MapaFalso, type OpcionesDelMapaFalso } from "./mapaFalso.ts";
11
+ export { estiloFalso, fabricaDeEstiloFalso } from "./estiloFalso.ts";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `@cerca.red/mapa/doble` — un motor de mapas falso con la geometría de
3
+ * verdad, para probar sin WebGL.
4
+ *
5
+ * Se publica en vez de quedarse en las pruebas de este paquete porque las
6
+ * superficies lo necesitan igual: una PWA que quiera comprobar que al tocar
7
+ * un resultado de la lista el mapa recibió la orden de seleccionarlo no
8
+ * debería tener que levantar un contexto WebGL para saberlo.
9
+ */
10
+ export { MapaFalso } from "./mapaFalso.js";
11
+ export { estiloFalso, fabricaDeEstiloFalso } from "./estiloFalso.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doble/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAA6B,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["/**\n * `@cerca.red/mapa/doble` — un motor de mapas falso con la geometría de\n * verdad, para probar sin WebGL.\n *\n * Se publica en vez de quedarse en las pruebas de este paquete porque las\n * superficies lo necesitan igual: una PWA que quiera comprobar que al tocar\n * un resultado de la lista el mapa recibió la orden de seleccionarlo no\n * debería tener que levantar un contexto WebGL para saberlo.\n */\nexport { MapaFalso, type OpcionesDelMapaFalso } from \"./mapaFalso.ts\";\n\nexport { estiloFalso, fabricaDeEstiloFalso } from \"./estiloFalso.ts\";\n"]}
@@ -0,0 +1,75 @@
1
+ import type { Caja, ColeccionDeEntidades, Coordenada } from "@cerca.red/geo";
2
+ import type { CapaDelEstilo, EspecificacionDeEstilo } from "../estilo.ts";
3
+ import type { Desuscribir, DestinoDeCamara, EntidadDibujada, EventosDeCapa, EventosNativos, ImagenDeSimbolo, MapaNativo, Margenes, OpcionesDeEncuadre, OpcionesDeFuente, OpcionesDeMovimiento, PuntoEnPantalla, VistaDelMapa } from "../puerto.ts";
4
+ export interface OpcionesDelMapaFalso {
5
+ readonly centro?: Coordenada;
6
+ readonly zoom?: number;
7
+ readonly ancho?: number;
8
+ readonly alto?: number;
9
+ /**
10
+ * Si el estilo se da por cargado de inmediato.
11
+ *
12
+ * `false` es lo que permite probar lo que pasa entre `crearMapa` y
13
+ * `mapa:listo`: una superficie que llame a `ponerNegocios` en ese hueco no
14
+ * puede perder los negocios.
15
+ */
16
+ readonly listoDeInmediato?: boolean;
17
+ }
18
+ export declare class MapaFalso implements MapaNativo {
19
+ #private;
20
+ /** Lo que se le pidió a la cámara, en orden. Es lo que se afirma en las pruebas. */
21
+ readonly movimientos: Array<{
22
+ readonly clase: "camara" | "caja";
23
+ readonly destino?: DestinoDeCamara;
24
+ readonly caja?: Caja;
25
+ readonly opciones: OpcionesDeMovimiento | OpcionesDeEncuadre;
26
+ }>;
27
+ /** Cuántas veces se reemplazó el estilo. Un cambio de tema es uno. */
28
+ cambiosDeEstilo: number;
29
+ constructor(opciones?: OpcionesDelMapaFalso);
30
+ /** Marca el estilo como cargado y avisa, como haría el motor al terminar. */
31
+ terminarDeCargar(): void;
32
+ /** Emite un evento como si viniera del motor. */
33
+ emitirNativo<T extends keyof EventosNativos>(tipo: T, evento: EventosNativos[T]): void;
34
+ /** Emite un evento de capa, como si el usuario hubiera tocado ahí. */
35
+ emitirDeCapa<T extends keyof EventosDeCapa>(tipo: T, capa: string, evento: EventosDeCapa[T]): void;
36
+ /** Simula un toque: consulta lo que hay debajo y avisa a quien escuche esa capa. */
37
+ tocarEn(punto: PuntoEnPantalla, desdePuntero?: boolean): void;
38
+ /** El estado de entidad puesto sobre una entidad. Para comprobar el resalte. */
39
+ estadoDeEntidad(fuente: string, id: string | number): Record<string, unknown> | undefined;
40
+ /** Los datos que tiene una fuente ahora mismo. */
41
+ datosDeFuente(id: string): ColeccionDeEntidades | undefined;
42
+ /** Los identificadores de capa, en el orden en que quedaron. */
43
+ ordenDeCapas(): readonly string[];
44
+ /** Cuántas suscripciones vivas quedan. Es lo que comprueba que `destruir` limpió. */
45
+ cuantosOyentes(): number;
46
+ estaDestruido(): boolean;
47
+ estaListo(): boolean;
48
+ cuandoListo(): Promise<void>;
49
+ destruir(): void;
50
+ redimensionar(): void;
51
+ ponerEstilo(estilo: EspecificacionDeEstilo): void;
52
+ estilo(): EspecificacionDeEstilo | undefined;
53
+ agregarFuenteGeoJSON(id: string, datos: ColeccionDeEntidades, opciones?: OpcionesDeFuente): void;
54
+ ponerDatosDeFuente(id: string, datos: ColeccionDeEntidades): void;
55
+ tieneFuente(id: string): boolean;
56
+ agregarCapa(capa: CapaDelEstilo, antesDe?: string): void;
57
+ quitarCapa(id: string): void;
58
+ tieneCapa(id: string): boolean;
59
+ ponerEstadoDeEntidad(fuente: string, id: string | number, estado: Record<string, unknown>): void;
60
+ limpiarEstadosDeEntidad(fuente: string): void;
61
+ agregarImagen(id: string, imagen: ImagenDeSimbolo): void;
62
+ tieneImagen(id: string): boolean;
63
+ vista(): VistaDelMapa;
64
+ moverCamara(destino: DestinoDeCamara, opciones: OpcionesDeMovimiento): void;
65
+ encuadrarCaja(caja: Caja, opciones: OpcionesDeEncuadre): void;
66
+ ponerMargenes(margenes: Margenes): void;
67
+ margenes(): Margenes;
68
+ ponerCajaMaxima(caja: Caja | undefined): void;
69
+ cajaMaxima(): Caja | undefined;
70
+ proyectar(coordenada: Coordenada): PuntoEnPantalla;
71
+ desproyectar(punto: PuntoEnPantalla): Coordenada;
72
+ entidadesEn(punto: PuntoEnPantalla, capas: readonly string[]): readonly EntidadDibujada[];
73
+ al<T extends keyof EventosNativos>(tipo: T, manejador: (evento: EventosNativos[T]) => void): Desuscribir;
74
+ alDeCapa<T extends keyof EventosDeCapa>(tipo: T, capas: readonly string[], manejador: (evento: EventosDeCapa[T]) => void): Desuscribir;
75
+ }