leaflet-html 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. package/.github/workflows/npm-publish.yml +27 -27
  2. package/.prettierignore +2 -0
  3. package/.prettierrc +1 -0
  4. package/README.md +2 -2
  5. package/dist/leaflet-html.cjs +1 -1
  6. package/dist/leaflet-html.cjs.map +1 -1
  7. package/dist/leaflet-html.js +1 -1
  8. package/dist/leaflet-html.js.map +1 -1
  9. package/dist/leaflet-html.modern.js +2 -0
  10. package/dist/leaflet-html.modern.js.map +1 -0
  11. package/dist/leaflet-html.umd.js +1 -1
  12. package/dist/leaflet-html.umd.js.map +1 -1
  13. package/docs/content/_index.md +7 -2
  14. package/docs/content/articles/_index.md +5 -0
  15. package/docs/content/articles/basic.md +115 -0
  16. package/docs/content/articles/icons.md +35 -0
  17. package/docs/content/articles/style.md +14 -0
  18. package/docs/public/icons/leaf-green.png +0 -0
  19. package/docs/public/icons/leaf-orange.png +0 -0
  20. package/docs/public/icons/leaf-red.png +0 -0
  21. package/docs/public/icons/leaf-shadow.png +0 -0
  22. package/docs/static/icons/leaf-green.png +0 -0
  23. package/docs/static/icons/leaf-orange.png +0 -0
  24. package/docs/static/icons/leaf-red.png +0 -0
  25. package/docs/static/icons/leaf-shadow.png +0 -0
  26. package/docs/templates/article-page.html +8 -0
  27. package/docs/templates/article.html +12 -0
  28. package/docs/templates/base.html +66 -0
  29. package/docs/templates/index.html +5 -56
  30. package/example/geojson/index.html +7 -0
  31. package/example/index.html +7 -0
  32. package/example/overlays/index.html +7 -0
  33. package/package.json +12 -9
  34. package/src/events.js +3 -3
  35. package/src/index.js +19 -18
  36. package/src/l-base-layers.js +6 -7
  37. package/src/l-control-layers.js +17 -17
  38. package/src/l-geojson.js +13 -11
  39. package/src/l-icon.js +124 -0
  40. package/src/l-image-overlay.js +22 -20
  41. package/src/l-lat-lng-bounds.js +7 -7
  42. package/src/l-layer-group.js +15 -15
  43. package/src/l-map.js +17 -17
  44. package/src/l-marker.js +67 -18
  45. package/src/l-overlay-layers.js +6 -6
  46. package/src/l-popup.js +8 -10
  47. package/src/l-tile-layer.js +13 -10
  48. package/src/l-video-overlay.js +17 -16
  49. package/vite.config.js +7 -0
  50. package/dist/leaflet-html.esm.js +0 -2
  51. package/dist/leaflet-html.esm.js.map +0 -1
@@ -1,2 +0,0 @@
1
- function t(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(t=function(){return!!e})()}function e(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,r(t,e)}function n(t){return n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},n(t)}function r(t,e){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},r(t,e)}function a(e){var i="function"==typeof Map?new Map:void 0;return a=function(e){if(null===e||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,a)}function a(){return function(e,n,a){if(t())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return a&&r(o,a.prototype),o}(e,arguments,n(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),r(a,e)},a(e)}var i="map:addTo",o="popup:add",l=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){this.addEventListener(i,function(t){t.detail.type="base"})},n}(/*#__PURE__*/a(HTMLElement)),u=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=L.control.layers({},{});this.addEventListener(i,function(e){var n=e.detail,r=n.type,a=n.name,i=n.layer;"overlay"===r?t.addOverlay(i,a):"base"===r&&t.addBaseLayer(i,a),e.preventDefault()});var e=new CustomEvent(i,{cancelable:!0,bubbles:!0,detail:{layer:t}});this.dispatchEvent(e)},n}(/*#__PURE__*/a(HTMLElement)),s=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=this.getAttribute("name"),e=L.layerGroup(),n=new CustomEvent(i,{cancelable:!0,bubbles:!0,detail:{layer:e,name:t}});this.dispatchEvent(n),this.addEventListener(i,function(t){t.stopPropagation(),e.addLayer(t.detail.layer)}),new MutationObserver(function(t){t.forEach(function(t){t.removedNodes.forEach(function(t){var n=t.getAttribute("leaflet-id"),r=e.getLayer(n);e.removeLayer(r)})})}).observe(this,{childList:!0})},n}(/*#__PURE__*/a(HTMLElement)),c=/*#__PURE__*/function(t){function n(){var e;return(e=t.call(this)||this).map=null,e.addEventListener("map:bounds",function(t){var n=t.detail;e.map[n.method](n.bounds)}),e}return e(n,t),n.prototype.connectedCallback=function(){var t=this;this.map=L.map(this);var e=this.getAttribute("center"),n=this.getAttribute("zoom");null!==e&&null!==n&&this.map.setView(JSON.parse(e),parseInt(n)),this.addEventListener(i,function(e){e.detail.layer.addTo(t.map)}),this.addEventListener("layer:remove",function(e){t.map.remove(e.detail.layer)})},n}(/*#__PURE__*/a(HTMLElement)),p=/*#__PURE__*/function(t){function n(){var e;return(e=t.call(this)||this).layer=null,e}e(n,t);var r=n.prototype;return r.connectedCallback=function(){var t=this,e=JSON.parse(this.getAttribute("lat-lng")),n=parseFloat(this.getAttribute("opacity")||"1.0");this.layer=L.marker(e,{opacity:n}),this.setAttribute("leaflet-id",L.stamp(this.layer)),this.addEventListener(o,function(e){t.layer.bindPopup(e.detail.content)});var r=new CustomEvent(i,{cancelable:!0,bubbles:!0,detail:{layer:this.layer}});this.dispatchEvent(r)},r.attributeChangedCallback=function(t,e,n){null!==this.layer&&("lat-lng"===t&&this.layer.setLatLng(JSON.parse(n)),"opacity"===t&&this.layer.setOpacity(parseFloat(n)))},n}(/*#__PURE__*/a(HTMLElement));p.observedAttributes=["lat-lng","opacity"];var d=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){this.addEventListener(i,function(t){t.detail.type="overlay"})},n}(/*#__PURE__*/a(HTMLElement)),b=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=this.getAttribute("content"),e=new CustomEvent(o,{cancelable:!0,bubbles:!0,detail:{content:t}});this.dispatchEvent(e)},n}(/*#__PURE__*/a(HTMLElement)),f=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=this.getAttribute("name"),e=this.getAttribute("url-template"),n=this.getAttribute("attribution"),r=L.tileLayer(e,{attribution:n}),a=new CustomEvent(i,{detail:{name:t,layer:r},bubbles:!0});this.dispatchEvent(a)},n}(/*#__PURE__*/a(HTMLElement)),h=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.attributeChangedCallback=function(t,e,n){var r=new CustomEvent("map:bounds",{bubbles:!0,detail:{bounds:JSON.parse(n),method:this.getAttribute("method")||"fitBounds"}});this.dispatchEvent(r)},n}(/*#__PURE__*/a(HTMLElement));h.observedAttributes=["bounds"];var y=/*#__PURE__*/function(t){function n(){var e;return(e=t.call(this)||this).layer=null,e}e(n,t);var r=n.prototype;return r.connectedCallback=function(){var t=this.getAttribute("url"),e=JSON.parse(this.getAttribute("bounds")),n={opacity:parseFloat(this.getAttribute("opacity")||"1.0"),alt:this.getAttribute("alt")||""};this.layer=L.imageOverlay(t,e,n),this.dispatchEvent(new CustomEvent(i,{cancelable:!0,bubbles:!0,detail:{layer:this.layer}}))},r.attributeChangedCallback=function(t,e,n){null!==this.layer&&("url"===t?this.layer.setUrl(n):"bounds"===t?this.layer.setBounds(JSON.parse(n)):"opacity"===t&&this.layer.setOpacity(parseFloat(n)))},n}(/*#__PURE__*/a(HTMLElement));y.observedAttributes=["url","bounds","opacity"];var v=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=JSON.parse(this.getAttribute("url")),e=JSON.parse(this.getAttribute("bounds")),n={opacity:parseFloat(this.getAttribute("opacity")||"1.0"),alt:this.getAttribute("alt")||"",autoplay:!0,muted:!0,playsInline:!0},r=L.videoOverlay(t,e,n);this.dispatchEvent(new CustomEvent(i,{cancelable:!0,bubbles:!0,detail:{layer:r}}))},n}(/*#__PURE__*/a(HTMLElement)),m=/*#__PURE__*/function(t){function n(){return t.call(this)||this}return e(n,t),n.prototype.connectedCallback=function(){var t=L.geoJSON(JSON.parse(this.getAttribute("geojson")));this.dispatchEvent(new CustomEvent(i,{bubbles:!0,cancelable:!0,detail:{layer:t}}))},n}(/*#__PURE__*/a(HTMLElement)),E=(customElements.define("l-map",c),customElements.define("l-control-layers",u),customElements.define("l-base-layers",l),customElements.define("l-overlay-layers",d),customElements.define("l-layer-group",s),customElements.define("l-tile-layer",f),customElements.define("l-marker",p),customElements.define("l-popup",b),customElements.define("l-lat-lng-bounds",h),customElements.define("l-image-overlay",y),customElements.define("l-video-overlay",v),void customElements.define("l-geojson",m));export{E as default};
2
- //# sourceMappingURL=leaflet-html.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leaflet-html.esm.js","sources":["../src/events.js","../src/l-base-layers.js","../src/l-control-layers.js","../src/l-layer-group.js","../src/l-map.js","../src/l-marker.js","../src/l-overlay-layers.js","../src/l-popup.js","../src/l-tile-layer.js","../src/l-lat-lng-bounds.js","../src/l-image-overlay.js","../src/l-video-overlay.js","../src/l-geojson.js","../src/index.js"],"sourcesContent":["export const mapAddTo = \"map:addTo\"\nexport const popupAdd = \"popup:add\"\nexport const layerRemove = \"layer:remove\"\n","import { mapAddTo } from \"./events.js\"\n\nclass LBaseLayers extends HTMLElement {\n constructor() {\n super()\n }\n \n connectedCallback() {\n this.addEventListener(mapAddTo, (ev) => {\n ev.detail[\"type\"] = \"base\"\n })\n }\n}\n\nexport default LBaseLayers\n\n","import { mapAddTo } from \"./events.js\"\n\nclass LControlLayers extends HTMLElement {\n constructor() {\n super()\n }\n \n connectedCallback() {\n const base = {}\n const overlay = {}\n const control = L.control.layers(base, overlay)\n\n this.addEventListener(mapAddTo, (ev) => {\n const { type, name, layer } = ev.detail\n if (type === \"overlay\") {\n control.addOverlay(layer, name)\n } else if (type === \"base\") {\n control.addBaseLayer(layer, name)\n }\n ev.preventDefault()\n })\n \n const event = new CustomEvent(mapAddTo, {\n cancelable: true,\n bubbles: true,\n detail: {\n layer: control\n }\n })\n this.dispatchEvent(event)\n }\n}\n\nexport default LControlLayers\n","import { mapAddTo } from \"./events.js\"\n\nclass LLayerGroup extends HTMLElement {\n constructor() {\n super()\n }\n \n connectedCallback() {\n const name = this.getAttribute(\"name\")\n const group = L.layerGroup()\n const event = new CustomEvent(mapAddTo, {\n cancelable: true,\n bubbles: true,\n detail: {\n layer: group,\n name\n }\n })\n this.dispatchEvent(event)\n\n this.addEventListener(mapAddTo, (ev) => {\n ev.stopPropagation()\n group.addLayer(ev.detail.layer)\n })\n\n const observer = new MutationObserver(function(mutations) {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n const leafletId = node.getAttribute(\"leaflet-id\");\n const layer = group.getLayer(leafletId);\n group.removeLayer(layer);\n });\n });\n });\n observer.observe(this, { childList: true })\n }\n}\n\nexport default LLayerGroup\n","// @ts-check\nimport { layerRemove, mapAddTo } from \"./events.js\"\n\nclass LMap extends HTMLElement {\n constructor() {\n super()\n\n this.map = null\n this.addEventListener(\"map:bounds\", (ev) => {\n const { bounds, method } = ev.detail\n this.map[method](bounds)\n })\n }\n\n connectedCallback() {\n this.map = L.map(this)\n const center = this.getAttribute(\"center\")\n const zoom = this.getAttribute(\"zoom\")\n if ((center !== null) && (zoom !== null)) {\n this.map.setView(JSON.parse(center), parseInt(zoom))\n }\n this.addEventListener(mapAddTo, (ev) => {\n const layer = ev.detail.layer\n layer.addTo(this.map)\n })\n\n this.addEventListener(layerRemove, (ev) => {\n this.map.remove(ev.detail.layer)\n })\n }\n}\n\nexport default LMap\n","import { mapAddTo, popupAdd } from \"./events.js\"; \n\nclass LMarker extends HTMLElement {\n static observedAttributes = [\"lat-lng\", \"opacity\"]\n\n constructor() {\n super()\n this.layer = null\n }\n\n connectedCallback() {\n const latLng = JSON.parse(this.getAttribute(\"lat-lng\"))\n const opacity = parseFloat(this.getAttribute(\"opacity\") || \"1.0\")\n this.layer = L.marker(latLng, { opacity });\n this.setAttribute(\"leaflet-id\", L.stamp(this.layer))\n\n this.addEventListener(popupAdd, (ev) => {\n const { content } = ev.detail\n this.layer.bindPopup(content)\n })\n \n const event = new CustomEvent(mapAddTo, {\n cancelable: true,\n bubbles: true,\n detail: {\n layer: this.layer\n }\n })\n this.dispatchEvent(event)\n }\n\n attributeChangedCallback(name, _oldValue, newValue) {\n if (this.layer !== null) {\n if (name === \"lat-lng\") {\n this.layer.setLatLng(JSON.parse(newValue))\n }\n if (name === \"opacity\") {\n this.layer.setOpacity(parseFloat(newValue))\n }\n }\n }\n}\n\n\nexport default LMarker\n","import { mapAddTo } from \"./events.js\"\n\nclass LOverlayLayers extends HTMLElement {\n constructor() {\n super()\n }\n \n connectedCallback() {\n this.addEventListener(mapAddTo, (ev) => {\n ev.detail[\"type\"] = \"overlay\"\n })\n }\n}\n\nexport default LOverlayLayers\n","import { popupAdd } from \"./events.js\"\n\nclass LPopup extends HTMLElement {\n constructor() {\n super()\n }\n\n connectedCallback() {\n const content = this.getAttribute(\"content\")\n const event = new CustomEvent(popupAdd, {\n cancelable: true,\n bubbles: true,\n detail: {\n content\n }\n })\n this.dispatchEvent(event)\n }\n}\n\n\nexport default LPopup\n\n","import { mapAddTo } from \"./events.js\"\n\nclass LTileLayer extends HTMLElement {\n constructor() {\n super()\n }\n\n connectedCallback() {\n const name = this.getAttribute(\"name\")\n const urlTemplate = this.getAttribute(\"url-template\")\n const attribution = this.getAttribute(\"attribution\")\n const options = { attribution }\n const layer = L.tileLayer(urlTemplate, options)\n const event = new CustomEvent(mapAddTo, { detail: { name, layer }, bubbles: true})\n this.dispatchEvent(event)\n }\n}\n\nexport default LTileLayer\n","class LLatLngBounds extends HTMLElement {\n static observedAttributes = [\"bounds\"]\n\n constructor() {\n super()\n }\n\n attributeChangedCallback(_name, _oldValue, newValue) {\n const event = new CustomEvent(\"map:bounds\", {\n bubbles: true,\n detail: {\n bounds: JSON.parse(newValue),\n method: this.getAttribute(\"method\") || \"fitBounds\"\n }\n })\n this.dispatchEvent(event)\n }\n}\n\nexport default LLatLngBounds\n","import { mapAddTo } from \"./events.js\"\n\nclass LImageOverlay extends HTMLElement {\n static observedAttributes = [\"url\", \"bounds\", \"opacity\"]\n\n constructor() {\n super()\n this.layer = null\n }\n\n connectedCallback() {\n const url = this.getAttribute(\"url\")\n const bounds = JSON.parse(this.getAttribute(\"bounds\"))\n const options = {\n opacity: parseFloat(this.getAttribute(\"opacity\") || \"1.0\"),\n alt: this.getAttribute(\"alt\") || \"\"\n }\n this.layer = L.imageOverlay(url, bounds, options)\n this.dispatchEvent(new CustomEvent(mapAddTo, {\n cancelable: true,\n bubbles: true,\n detail: {\n layer: this.layer\n }\n }))\n }\n\n attributeChangedCallback(name, _oldValue, newValue) {\n if (this.layer !== null) {\n if (name === \"url\") {\n this.layer.setUrl(newValue)\n } else if (name === \"bounds\") {\n this.layer.setBounds(JSON.parse(newValue))\n } else if (name === \"opacity\") {\n this.layer.setOpacity(parseFloat(newValue))\n }\n }\n }\n}\n\nexport default LImageOverlay\n","import { mapAddTo } from \"./events.js\"\n\nclass LVideoOverlay extends HTMLElement {\n constructor() {\n super()\n }\n\n connectedCallback() {\n const url = JSON.parse(this.getAttribute(\"url\"))\n const bounds = JSON.parse(this.getAttribute(\"bounds\"))\n const options = {\n opacity: parseFloat(this.getAttribute(\"opacity\") || \"1.0\"),\n alt: this.getAttribute(\"alt\") || \"\",\n autoplay: true,\n muted: true,\n playsInline: true\n }\n const layer = L.videoOverlay(url, bounds, options)\n this.dispatchEvent(new CustomEvent(mapAddTo, {\n cancelable: true,\n bubbles: true,\n detail: {\n layer\n }\n }))\n }\n}\n\nexport default LVideoOverlay\n\n","import { mapAddTo } from \"./events.js\"\n\nclass LGeoJSON extends HTMLElement {\n constructor() {\n super()\n }\n\n connectedCallback() {\n const layer = L.geoJSON(JSON.parse(this.getAttribute(\"geojson\")))\n this.dispatchEvent(new CustomEvent(mapAddTo, {\n bubbles: true,\n cancelable: true,\n detail: {\n layer\n }\n }))\n }\n}\n\nexport default LGeoJSON\n","// @ts-check\nimport LBaseLayers from \"./l-base-layers.js\";\nimport LControlLayers from \"./l-control-layers.js\"; \nimport LLayerGroup from \"./l-layer-group.js\"; \nimport LMap from \"./l-map.js\"; \nimport LMarker from \"./l-marker.js\"; \nimport LOverlayLayers from \"./l-overlay-layers.js\";\nimport LPopup from \"./l-popup.js\"; \nimport LTileLayer from \"./l-tile-layer.js\";\nimport LLatLngBounds from \"./l-lat-lng-bounds.js\";\nimport LImageOverlay from \"./l-image-overlay.js\";\nimport LVideoOverlay from \"./l-video-overlay.js\";\nimport LGeoJSON from \"./l-geojson.js\";\n\n\nconst init = (() => {\n // Custom elements (order of definition is important)\n customElements.define(\"l-map\", LMap)\n customElements.define(\"l-control-layers\", LControlLayers)\n customElements.define(\"l-base-layers\", LBaseLayers)\n customElements.define(\"l-overlay-layers\", LOverlayLayers)\n customElements.define(\"l-layer-group\", LLayerGroup)\n customElements.define(\"l-tile-layer\", LTileLayer)\n customElements.define(\"l-marker\", LMarker)\n customElements.define(\"l-popup\", LPopup)\n customElements.define(\"l-lat-lng-bounds\", LLatLngBounds)\n customElements.define(\"l-image-overlay\", LImageOverlay)\n customElements.define(\"l-video-overlay\", LVideoOverlay)\n customElements.define(\"l-geojson\", LGeoJSON)\n})();\n\nexport default init;\n"],"names":["mapAddTo","popupAdd","LBaseLayers","_HTMLElement","call","this","_inheritsLoose","prototype","connectedCallback","addEventListener","ev","detail","_wrapNativeSuper","HTMLElement","LControlLayers","control","L","layers","_ev$detail","type","name","layer","addOverlay","addBaseLayer","preventDefault","event","CustomEvent","cancelable","bubbles","dispatchEvent","LLayerGroup","getAttribute","group","layerGroup","stopPropagation","addLayer","MutationObserver","mutations","forEach","mutation","removedNodes","node","leafletId","getLayer","removeLayer","observe","childList","LMap","_this","map","method","bounds","_this2","center","zoom","setView","JSON","parse","parseInt","addTo","remove","LMarker","_proto","latLng","opacity","parseFloat","marker","setAttribute","stamp","bindPopup","content","attributeChangedCallback","_oldValue","newValue","setLatLng","setOpacity","observedAttributes","LOverlayLayers","LPopup","LTileLayer","urlTemplate","attribution","tileLayer","LLatLngBounds","_name","LImageOverlay","url","options","alt","imageOverlay","setUrl","setBounds","LVideoOverlay","autoplay","muted","playsInline","videoOverlay","LGeoJSON","geoJSON","init","customElements","define"],"mappings":"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"}