{"_id":"@carloschar/vue-leaflet-print","_rev":"8-496154d18efce7be483bcfa751604028","name":"@carloschar/vue-leaflet-print","dist-tags":{"latest":"1.0.0"},"versions":{"0.2.0":{"name":"@carloschar/vue-leaflet-print","version":"0.2.0","keywords":["leaflet","vue","vue-leaflet","print","export","map","png"],"author":{"name":"Carlos Ignacio Charletti"},"license":"MIT","_id":"@carloschar/vue-leaflet-print@0.2.0","maintainers":[{"name":"carloschar","email":"carlos.charletti@bue.edu.ar"}],"homepage":"https://github.com/carlosign/vue-leaflet-print#readme","bugs":{"url":"https://github.com/carlosign/vue-leaflet-print/issues"},"dist":{"shasum":"15d4af75dee59f51fb9305f2d8d31ef893a60a6b","tarball":"https://registry.npmjs.org/@carloschar/vue-leaflet-print/-/vue-leaflet-print-0.2.0.tgz","fileCount":15,"integrity":"sha512-AqGUwQHqnnH9KCN3bXWY+3NdFC4hAMBTMbjAotaFXhVHVVJ+YiUwAjnPhW87QxmbRYoYRT8fqPVN9Bmb8a2PpA==","signatures":[{"sig":"MEQCIGf5qPVivcB0gedY7c8L5NGX92XBmFUsJt542HZImtFsAiAwpB+EAlYvJYJ66BJiu0QqxPcmXD13IkXgHfsTP5HTxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21396},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"5a3849010f7f68393c87fefc3e4f0504b2f6177f","scripts":{"test":"vitest run","build":"vite build -c vite.config.ts","release":"semantic-release"},"_npmUser":{"name":"carloschar","email":"carlos.charletti@bue.edu.ar"},"repository":{"url":"git+https://github.com/carlosign/vue-leaflet-print.git","type":"git","directory":"packages/core"},"_npmVersion":"11.0.0","description":"Control de impresión/exportación para Vue-Leaflet (Vue 3): print nativo, PNG via html-to-image y PNG via leaflet-image.","directories":{},"sideEffects":["./dist/style.css","./src/styles.css"],"_nodeVersion":"22.11.0","dependencies":{"html-to-image":"^1.11.11","leaflet-image":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","vite":"^5.4.0","eslint":"^9.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/leaflet":"^1.9.8","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.2.3","semantic-release":"^23.0.0","@vitejs/plugin-vue":"^5.0.5","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.0","@semantic-release/github":"^10.0.7","@semantic-release/changelog":"^6.0.3","conventional-changelog-conventionalcommits":"^8.0.0"},"peerDependencies":{"vue":"^3.4.0","leaflet":"^1.9.0","@vue-leaflet/vue-leaflet":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-leaflet-print_0.2.0_1754520389657_0.24499187524362442","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@carloschar/vue-leaflet-print","version":"1.0.0","description":"Control de impresión/exportación para Vue-Leaflet (Vue 3): print nativo, PNG via html-to-image y PNG via leaflet-image.","keywords":["leaflet","vue","vue-leaflet","print","export","map","png"],"author":{"name":"Carlos Ignacio Charletti"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/carlosign/vue-leaflet-print.git","directory":"packages/core"},"bugs":{"url":"https://github.com/carlosign/vue-leaflet-print/issues"},"homepage":"https://github.com/carlosign/vue-leaflet-print#readme","type":"module","main":"./index.umd.js","module":"./index.es.js","types":"./index.d.ts","exports":{".":{"import":"./index.es.js","require":"./index.umd.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"peerDependencies":{"@vue-leaflet/vue-leaflet":"^0.10.0","leaflet":"^1.9.0","vue":"^3.4.0"},"dependencies":{"html-to-image":"^1.11.11","leaflet-image":"^0.2.0","rimraf":"^6.0.1"},"sideEffects":["./style.css"],"_id":"@carloschar/vue-leaflet-print@1.0.0","gitHead":"0a7c55fb85f35be008b51ef92ffcbb5c1c2fa24f","_nodeVersion":"22.11.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-QAy1eUFgbvNZXjFBAeTtypK6KHceYhkxOhEOA8j2XkL6a5UF15i/6tgMvqvJS1wZzfsxxw2FIs8AmgsKSiAPJg==","shasum":"1f7cf6e9812c5f7a6ee3bf0b9ac58de775376fdf","tarball":"https://registry.npmjs.org/@carloschar/vue-leaflet-print/-/vue-leaflet-print-1.0.0.tgz","fileCount":15,"unpackedSize":20817,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDkQVY89zEB2NCCMuBa0E+TbwRAkl8HXUNtdUEoY2IpNAIhAI76QAx76GS9u5sd2jUutHuJT5yz3NAvbu6tIduxURmy"}]},"_npmUser":{"name":"carloschar","email":"carlos.charletti@bue.edu.ar"},"directories":{},"maintainers":[{"name":"carloschar","email":"carlos.charletti@bue.edu.ar"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-leaflet-print_1.0.0_1754543349363_0.06984847628280866"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-06T22:46:29.507Z","modified":"2025-08-07T05:09:09.737Z","0.2.0":"2025-08-06T22:46:29.966Z","0.0.0-semantic-release":"2025-08-07T00:31:37.083Z","1.0.6":"2025-08-07T03:35:37.488Z","1.0.1":"2025-08-07T03:48:17.697Z","1.0.0":"2025-08-07T05:09:09.547Z"},"bugs":{"url":"https://github.com/carlosign/vue-leaflet-print/issues"},"author":{"name":"Carlos Ignacio Charletti"},"license":"MIT","homepage":"https://github.com/carlosign/vue-leaflet-print#readme","keywords":["leaflet","vue","vue-leaflet","print","export","map","png"],"repository":{"type":"git","url":"git+https://github.com/carlosign/vue-leaflet-print.git","directory":"packages/core"},"description":"Control de impresión/exportación para Vue-Leaflet (Vue 3): print nativo, PNG via html-to-image y PNG via leaflet-image.","maintainers":[{"name":"carloschar","email":"carlos.charletti@bue.edu.ar"}],"readme":"# @carloschar/vue-leaflet-print\r\n\r\nControl de **impresión/exportación** para **Leaflet** en **Vue 3** (Vue-Leaflet).  \r\nIncluye 3 modos: **print nativo**, **PNG por html-to-image**, **PNG por leaflet-image**.\r\nAsimismo, el botón es personalizable con html (se puede usar fontawesome por ejemplo)\r\n\r\n[![npm version](https://img.shields.io/npm/v/@carloschar/vue-leaflet-print.svg)](https://www.npmjs.com/package/@carloschar/vue-leaflet-print)\r\n[![CI](https://github.com/carlosign/vue-leaflet-print/actions/workflows/ci.yml/badge.svg)](https://github.com/carlosign/vue-leaflet-print/actions/workflows/ci.yml)\r\n\r\n## Instalación\r\n\r\n```bash\r\npnpm add @carloschar/vue-leaflet-print\r\npnpm add vue leaflet @vue-leaflet/vue-leaflet\r\n```\r\n\r\n## Uso rápido\r\n\r\n```vue\r\n<!-- App.vue -->\r\n<template>\r\n  <l-map\r\n    ref=\"map\"\r\n    :zoom=\"13\"\r\n    :center=\"[-34.6037, -58.3816]\"\r\n    style=\"height:80vh\"\r\n    @ready=\"mapaListo\"\r\n  >\r\n    <l-tile-layer\r\n      url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\r\n      :options=\"{ crossOrigin: true }\"\r\n      attribution=\"&copy; OSM contributors\"\r\n    />\r\n    <!-- Solo rendereamos el control cuando ya tenemos el mapa -->\r\n    <LPrintControl v-if=\"instanciaMapa\" :map=\"instanciaMapa\" mode=\"image\" filename=\"demo-mapa.png\" />\r\n  </l-map>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue'\r\nimport 'leaflet/dist/leaflet.css'\r\nimport { LMap, LTileLayer, LControl } from '@vue-leaflet/vue-leaflet'\r\nimport { LPrintControl } from '@carloschar/vue-leaflet-print'\r\n\r\n\r\nconst instanciaMapa = ref<any>(null);\r\nconst map = ref<any>(null);\r\nconst mapaListo = () => {\r\n  instanciaMapa.value = map.value.leafletObject;\r\n  console.log('Mapa listo:', instanciaMapa.value)\r\n  }\r\n\r\n</script>\r\n```\r\n\r\n## Props\r\n| Prop                 | Tipo                                                       | Default                                      | Descripción                                          |\r\n| -------------------- | ---------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------- |\r\n| `map`                | `L.Map`                                                    | — (requerido)                                | Instancia real de Leaflet (`@ready` de Vue-Leaflet). |\r\n| `position`           | `\"topleft\" \\| \"topright\" \\| \"bottomleft\" \\| \"bottomright\"` | `\"topright\"`                                 | Posición del control.                                |\r\n| `mode`               | `\"print\" \\| \"image\" \\| \"image-leaflet\"`                    | `\"image\"`                                    | Estrategia de salida.                                |\r\n| `filename`           | `string`                                                   | `\"map.png\"`                                  | Nombre de archivo para PNG.                          |\r\n| `imageScale`         | `number`                                                   | `2`                                          | Multiplica `devicePixelRatio` en modo `image`.       |\r\n| `includeAttribution` | `boolean`                                                  | `true`                                       | Intenta incluir atribución en la imagen.             |\r\n| `hideSelectors`      | `string[]`                                                 | `[\".leaflet-control-container\",\".no-print\"]` | Elementos a ocultar durante la captura.              |\r\n| `title`              | `string`                                                   | `\"Imprimir / Exportar\"`                      | `title` del botón (tooltip).                         |\r\n| `label`              | `string`                                                   | `\"\"`                                         | Texto visible del botón (tiene prioridad).           |\r\n| `iconHtml`           | `string`                                                   | `\"🖨️\"`                                      | HTML del ícono (se usa si `label` es vacío).         |\r\n| `ariaLabel`          | `string`                                                   | derivado de label/title                      | Accesibilidad (lector de pantalla).                  |\r\n\r\n## Notas importantes\r\n    CORS de tiles: para mode=\"image\" (html-to-image) el tile server debe permitir crossOrigin. En LTileLayer añadir :options=\"{ crossOrigin: true }\".\r\n\r\n    image-leaflet: más robusto para rasterizar el mapa (puede ignorar overlays DOM).\r\n\r\n    Accesibilidad: el botón soporta Enter y Espacio, aria-label y title.\r\n\r\n    SSR: Solo cliente.\r\n\r\n## Eventos\r\n\r\nEl componente emite: start, success, error(err).","readmeFilename":"README.md"}