leaflet-html 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. package/package.json +5 -1
  2. package/.github/workflows/master.yml +0 -15
  3. package/.github/workflows/npm-publish.yml +0 -37
  4. package/.prettierignore +0 -2
  5. package/.prettierrc +0 -1
  6. package/docs/config.toml +0 -16
  7. package/docs/content/_index.md +0 -89
  8. package/docs/content/articles/_index.md +0 -5
  9. package/docs/content/articles/basic.md +0 -110
  10. package/docs/content/articles/htmx.md +0 -84
  11. package/docs/content/articles/icons.md +0 -47
  12. package/docs/content/articles/style.md +0 -14
  13. package/docs/public/icons/leaf-green.png +0 -0
  14. package/docs/public/icons/leaf-orange.png +0 -0
  15. package/docs/public/icons/leaf-red.png +0 -0
  16. package/docs/public/icons/leaf-shadow.png +0 -0
  17. package/docs/static/htmx/clicked.html +0 -1
  18. package/docs/static/htmx/marker.html +0 -3
  19. package/docs/static/htmx/tile-esri.html +0 -3
  20. package/docs/static/htmx/tile-osm.html +0 -4
  21. package/docs/static/htmx/tile-voyager.html +0 -4
  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/static/style.css +0 -48
  27. package/docs/templates/article-page.html +0 -8
  28. package/docs/templates/article.html +0 -12
  29. package/docs/templates/base.html +0 -43
  30. package/docs/templates/index.html +0 -6
  31. package/docs/templates/shortcodes/url.html +0 -1
  32. package/example/geojson/index.html +0 -44
  33. package/example/index.html +0 -113
  34. package/example/overlays/index.html +0 -78
  35. package/src/events.js +0 -3
  36. package/src/index.js +0 -33
  37. package/src/l-base-layers.js +0 -16
  38. package/src/l-control-layers.js +0 -39
  39. package/src/l-geojson.js +0 -27
  40. package/src/l-icon.js +0 -124
  41. package/src/l-image-overlay.js +0 -54
  42. package/src/l-lat-lng-bounds.js +0 -21
  43. package/src/l-layer-group.js +0 -51
  44. package/src/l-layer.js +0 -8
  45. package/src/l-map.js +0 -56
  46. package/src/l-marker.js +0 -95
  47. package/src/l-overlay-layers.js +0 -16
  48. package/src/l-popup.js +0 -22
  49. package/src/l-tile-layer.js +0 -32
  50. package/src/l-video-overlay.js +0 -34
  51. package/vite.config.js +0 -7
package/src/l-marker.js DELETED
@@ -1,95 +0,0 @@
1
- // @vitest-environment happy-dom
2
- import * as L from "leaflet";
3
- import { mapAddTo, popupAdd } from "./events.js";
4
- import LLayer from "./l-layer.js";
5
-
6
- class LMarker extends LLayer {
7
- static observedAttributes = ["lat-lng", "opacity", "icon"];
8
-
9
- constructor() {
10
- super();
11
- this.layer = null;
12
- this.addEventListener("icon:add", (ev) => {
13
- ev.stopPropagation();
14
- this.layer.setIcon(ev.detail.icon);
15
- });
16
- }
17
-
18
- connectedCallback() {
19
- const latLng = JSON.parse(this.getAttribute("lat-lng"));
20
- const opacity = parseFloat(this.getAttribute("opacity") || "1.0");
21
- this.layer = L.marker(latLng, { opacity });
22
- if (this.hasAttribute("icon")) {
23
- const icon = L.icon(JSON.parse(this.getAttribute("icon")));
24
- this.layer.setIcon(icon);
25
- }
26
-
27
- this.setAttribute("leaflet-id", L.stamp(this.layer));
28
-
29
- this.addEventListener(popupAdd, (ev) => {
30
- const { content } = ev.detail;
31
- this.layer.bindPopup(content);
32
- });
33
-
34
- const event = new CustomEvent(mapAddTo, {
35
- cancelable: true,
36
- bubbles: true,
37
- detail: {
38
- layer: this.layer,
39
- },
40
- });
41
- this.dispatchEvent(event);
42
- }
43
-
44
- attributeChangedCallback(name, _oldValue, newValue) {
45
- if (this.layer !== null) {
46
- if (name === "lat-lng") {
47
- this.layer.setLatLng(JSON.parse(newValue));
48
- }
49
- if (name === "opacity") {
50
- this.layer.setOpacity(parseFloat(newValue));
51
- }
52
- if (name === "icon") {
53
- this.layer.setIcon(L.icon(JSON.parse(newValue)));
54
- }
55
- }
56
- }
57
- }
58
-
59
- if (import.meta.vitest) {
60
- const { it, expect, beforeAll } = import.meta.vitest;
61
-
62
- beforeAll(() => {
63
- customElements.define("l-marker", LMarker);
64
- });
65
-
66
- it("default icon", () => {
67
- const el = document.createElement("l-marker");
68
- document.body.appendChild(el);
69
- let actual = el.layer.getIcon();
70
- let expected = new L.Icon.Default();
71
- expect(actual).toEqual(expected);
72
- });
73
-
74
- it("adds an icon", () => {
75
- const el = document.createElement("l-marker");
76
- // Set attribute before appendChild
77
- el.setAttribute("icon", JSON.stringify({ iconUrl: "foo.png" }));
78
- document.body.appendChild(el);
79
- let actual = el.layer.getIcon();
80
- let expected = L.icon({ iconUrl: "foo.png" });
81
- expect(actual).toEqual(expected);
82
- });
83
-
84
- it("changes an icon", () => {
85
- const el = document.createElement("l-marker");
86
- // Set attribute after appendChild
87
- document.body.appendChild(el);
88
- el.setAttribute("icon", JSON.stringify({ iconUrl: "bar.png" }));
89
- let actual = el.layer.getIcon();
90
- let expected = L.icon({ iconUrl: "bar.png" });
91
- expect(actual).toEqual(expected);
92
- });
93
- }
94
-
95
- export default LMarker;
@@ -1,16 +0,0 @@
1
- // @ts-check
2
- import { mapAddTo } from "./events.js";
3
-
4
- class LOverlayLayers extends HTMLElement {
5
- constructor() {
6
- super();
7
- }
8
-
9
- connectedCallback() {
10
- this.addEventListener(mapAddTo, (ev) => {
11
- ev.detail["type"] = "overlay";
12
- });
13
- }
14
- }
15
-
16
- export default LOverlayLayers;
package/src/l-popup.js DELETED
@@ -1,22 +0,0 @@
1
- // @ts-check
2
- import { popupAdd } from "./events.js";
3
-
4
- class LPopup extends HTMLElement {
5
- constructor() {
6
- super();
7
- }
8
-
9
- connectedCallback() {
10
- const content = this.getAttribute("content");
11
- const event = new CustomEvent(popupAdd, {
12
- cancelable: true,
13
- bubbles: true,
14
- detail: {
15
- content,
16
- },
17
- });
18
- this.dispatchEvent(event);
19
- }
20
- }
21
-
22
- export default LPopup;
@@ -1,32 +0,0 @@
1
- // @ts-check
2
- import { tileLayer } from "leaflet";
3
- import { mapAddTo } from "./events.js";
4
- import LLayer from "./l-layer.js";
5
-
6
- class LTileLayer extends LLayer {
7
- constructor() {
8
- super();
9
- this.layer = null
10
- }
11
-
12
- connectedCallback() {
13
- const name = this.getAttribute("name");
14
- const urlTemplate = this.getAttribute("url-template");
15
- if (urlTemplate === null) {
16
- return;
17
- }
18
- const options = {};
19
- const key = "attribution";
20
- if (this.hasAttribute(key)) {
21
- options[key] = this.getAttribute(key);
22
- }
23
- this.layer = tileLayer(urlTemplate, options);
24
- const event = new CustomEvent(mapAddTo, {
25
- detail: { name, layer: this.layer },
26
- bubbles: true,
27
- });
28
- this.dispatchEvent(event);
29
- }
30
- }
31
-
32
- export default LTileLayer;
@@ -1,34 +0,0 @@
1
- // @ts-check
2
- import { videoOverlay } from "leaflet";
3
- import { mapAddTo } from "./events.js";
4
- import LLayer from "./l-layer.js";
5
-
6
- class LVideoOverlay extends LLayer {
7
- constructor() {
8
- super();
9
- }
10
-
11
- connectedCallback() {
12
- const url = JSON.parse(this.getAttribute("url"));
13
- const bounds = JSON.parse(this.getAttribute("bounds"));
14
- const options = {
15
- opacity: parseFloat(this.getAttribute("opacity") || "1.0"),
16
- alt: this.getAttribute("alt") || "",
17
- autoplay: true,
18
- muted: true,
19
- playsInline: true,
20
- };
21
- const layer = videoOverlay(url, bounds, options);
22
- this.dispatchEvent(
23
- new CustomEvent(mapAddTo, {
24
- cancelable: true,
25
- bubbles: true,
26
- detail: {
27
- layer,
28
- },
29
- }),
30
- );
31
- }
32
- }
33
-
34
- export default LVideoOverlay;
package/vite.config.js DELETED
@@ -1,7 +0,0 @@
1
- import { defineConfig } from "vite";
2
-
3
- export default defineConfig({
4
- test: {
5
- includeSource: ["src/**/*.{js,ts}"],
6
- },
7
- });