@fieldia/map 0.15.0 → 0.17.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.
- package/README.md +79 -11
- package/package.json +4 -4
- package/src/index.d.mts +2 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +3 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +1 -0
- package/src/index.mjs.map +1 -1
- package/src/lib/answers.d.mts +17 -0
- package/src/lib/answers.d.ts +17 -0
- package/src/lib/answers.js +27 -0
- package/src/lib/answers.js.map +1 -0
- package/src/lib/answers.mjs +21 -0
- package/src/lib/answers.mjs.map +1 -0
- package/src/lib/area.js +2 -1
- package/src/lib/area.js.map +1 -1
- package/src/lib/area.mjs +3 -2
- package/src/lib/area.mjs.map +1 -1
- package/src/lib/card.d.mts +10 -2
- package/src/lib/card.d.ts +10 -2
- package/src/lib/card.js +13 -4
- package/src/lib/card.js.map +1 -1
- package/src/lib/card.mjs +13 -4
- package/src/lib/card.mjs.map +1 -1
- package/src/lib/form-map.d.mts +18 -0
- package/src/lib/form-map.d.ts +18 -0
- package/src/lib/form-map.js +586 -0
- package/src/lib/form-map.js.map +1 -0
- package/src/lib/form-map.mjs +583 -0
- package/src/lib/form-map.mjs.map +1 -0
- package/src/lib/heat.d.mts +25 -0
- package/src/lib/heat.d.ts +25 -0
- package/src/lib/heat.js +111 -0
- package/src/lib/heat.js.map +1 -0
- package/src/lib/heat.mjs +108 -0
- package/src/lib/heat.mjs.map +1 -0
- package/src/lib/labels.d.mts +33 -0
- package/src/lib/labels.d.ts +33 -0
- package/src/lib/labels.js +60 -1
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +58 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/list-view.js +168 -70
- package/src/lib/list-view.js.map +1 -1
- package/src/lib/list-view.mjs +162 -64
- package/src/lib/list-view.mjs.map +1 -1
- package/src/lib/map-core.d.mts +8 -0
- package/src/lib/map-core.d.ts +8 -0
- package/src/lib/map-core.js +57 -4
- package/src/lib/map-core.js.map +1 -1
- package/src/lib/map-core.mjs +56 -4
- package/src/lib/map-core.mjs.map +1 -1
- package/src/lib/marks.d.mts +34 -0
- package/src/lib/marks.d.ts +34 -0
- package/src/lib/marks.js +56 -0
- package/src/lib/marks.js.map +1 -0
- package/src/lib/marks.mjs +49 -0
- package/src/lib/marks.mjs.map +1 -0
- package/src/lib/measure.d.mts +15 -0
- package/src/lib/measure.d.ts +15 -0
- package/src/lib/measure.js +157 -0
- package/src/lib/measure.js.map +1 -0
- package/src/lib/measure.mjs +153 -0
- package/src/lib/measure.mjs.map +1 -0
- package/src/lib/pins.d.mts +2 -0
- package/src/lib/pins.d.ts +2 -0
- package/src/lib/pins.js +5 -1
- package/src/lib/pins.js.map +1 -1
- package/src/lib/pins.mjs +3 -1
- package/src/lib/pins.mjs.map +1 -1
- package/src/lib/place.js +3 -1
- package/src/lib/place.js.map +1 -1
- package/src/lib/place.mjs +4 -2
- package/src/lib/place.mjs.map +1 -1
- package/src/lib/providers.d.mts +43 -3
- package/src/lib/providers.d.ts +43 -3
- package/src/lib/providers.js +76 -67
- package/src/lib/providers.js.map +1 -1
- package/src/lib/providers.mjs +24 -15
- package/src/lib/providers.mjs.map +1 -1
- package/src/lib/reach.d.mts +25 -0
- package/src/lib/reach.d.ts +25 -0
- package/src/lib/reach.js +158 -0
- package/src/lib/reach.js.map +1 -0
- package/src/lib/reach.mjs +153 -0
- package/src/lib/reach.mjs.map +1 -0
- package/src/lib/regions.d.mts +137 -0
- package/src/lib/regions.d.ts +137 -0
- package/src/lib/regions.js +456 -0
- package/src/lib/regions.js.map +1 -0
- package/src/lib/regions.mjs +445 -0
- package/src/lib/regions.mjs.map +1 -0
- package/src/lib/route-line.d.mts +34 -0
- package/src/lib/route-line.d.ts +34 -0
- package/src/lib/route-line.js +53 -0
- package/src/lib/route-line.js.map +1 -0
- package/src/lib/route-line.mjs +47 -0
- package/src/lib/route-line.mjs.map +1 -0
- package/src/lib/routes.d.mts +40 -0
- package/src/lib/routes.d.ts +40 -0
- package/src/lib/routes.js +149 -0
- package/src/lib/routes.js.map +1 -0
- package/src/lib/routes.mjs +140 -0
- package/src/lib/routes.mjs.map +1 -0
- package/src/lib/settings.d.mts +13 -3
- package/src/lib/settings.d.ts +13 -3
- package/src/lib/styles.d.mts +10 -2
- package/src/lib/styles.d.ts +10 -2
- package/src/lib/styles.js +52 -3
- package/src/lib/styles.js.map +1 -1
- package/src/lib/styles.mjs +50 -2
- package/src/lib/styles.mjs.map +1 -1
- package/src/lib/tools.d.mts +27 -0
- package/src/lib/tools.d.ts +27 -0
- package/src/lib/tools.js +84 -0
- package/src/lib/tools.js.map +1 -0
- package/src/lib/tools.mjs +81 -0
- package/src/lib/tools.mjs.map +1 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tools under a map's zoom, those its page asks for: the satellite's
|
|
3
|
+
* images (no button where the provider has none), full screen (filling the
|
|
4
|
+
* window where the browser refuses the screen, as a frame may), and measuring
|
|
5
|
+
* a way (its drawing asked for as the tools come, so a key pressed straight
|
|
6
|
+
* after its press is not lost). Loaded with the first map that has any.
|
|
7
|
+
*/
|
|
8
|
+
export function wireTools(options) {
|
|
9
|
+
const { tools, box, map, labels, locale, document: doc } = options;
|
|
10
|
+
const element = box.element;
|
|
11
|
+
if (tools.has('satellite')) {
|
|
12
|
+
const button = box.tool(labels.satellite, '<circle cx="12" cy="12" r="3"/><path d="M5 5l3 3M16 16l3 3M19 5l-3 3M8 16l-3 3"/><rect x="3" y="3" width="18" height="18" rx="3" stroke-dasharray="2 3"/>');
|
|
13
|
+
// A provider with no such images: no such button.
|
|
14
|
+
button.hidden = true;
|
|
15
|
+
void options.provider.tiles('satellite', locale).then((spec) => (button.hidden = !spec), () => (button.hidden = true));
|
|
16
|
+
let on = false;
|
|
17
|
+
button.addEventListener('click', () => {
|
|
18
|
+
on = !on;
|
|
19
|
+
button.setAttribute('aria-pressed', String(on));
|
|
20
|
+
options.satellite(on);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
if (tools.has('fullscreen')) {
|
|
24
|
+
const button = box.tool(labels.fullScreen, '<path d="M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5"/>');
|
|
25
|
+
const mark = (on) => {
|
|
26
|
+
element.toggleAttribute('data-full', on);
|
|
27
|
+
button.setAttribute('aria-pressed', String(on));
|
|
28
|
+
button.setAttribute('aria-label', on ? labels.leaveFullScreen : labels.fullScreen);
|
|
29
|
+
button.title = button.getAttribute('aria-label') ?? '';
|
|
30
|
+
setTimeout(() => map.invalidateSize({ pan: false }), 50);
|
|
31
|
+
};
|
|
32
|
+
// Where the browser refuses the screen (a frame that may not), the map fills the window instead.
|
|
33
|
+
const fill = (on) => {
|
|
34
|
+
element.classList.toggle('fd-map-fixed', on);
|
|
35
|
+
mark(on);
|
|
36
|
+
};
|
|
37
|
+
const change = () => mark(doc.fullscreenElement === element);
|
|
38
|
+
doc.addEventListener('fullscreenchange', change);
|
|
39
|
+
options.cleanup(() => doc.removeEventListener('fullscreenchange', change));
|
|
40
|
+
button.addEventListener('click', () => {
|
|
41
|
+
if (element.hasAttribute('data-full')) {
|
|
42
|
+
if (doc.fullscreenElement === element)
|
|
43
|
+
void doc.exitFullscreen();
|
|
44
|
+
else
|
|
45
|
+
fill(false);
|
|
46
|
+
}
|
|
47
|
+
else if (element.requestFullscreen)
|
|
48
|
+
element.requestFullscreen().catch(() => fill(true));
|
|
49
|
+
else
|
|
50
|
+
fill(true);
|
|
51
|
+
});
|
|
52
|
+
element.addEventListener('keydown', (event) => {
|
|
53
|
+
if (event.key === 'Escape' && element.classList.contains('fd-map-fixed'))
|
|
54
|
+
fill(false);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if (tools.has('measure')) {
|
|
58
|
+
const button = box.tool(labels.measure, '<path d="M3 17L17 3l4 4L7 21z"/><path d="M7 13l2 2M10 10l2 2M13 7l2 2"/>');
|
|
59
|
+
let stop = null;
|
|
60
|
+
const measuring = import('./measure.mjs');
|
|
61
|
+
button.addEventListener('click', async () => {
|
|
62
|
+
if (stop)
|
|
63
|
+
return stop();
|
|
64
|
+
button.setAttribute('aria-pressed', 'true');
|
|
65
|
+
const { measure } = await measuring;
|
|
66
|
+
stop = measure({
|
|
67
|
+
box,
|
|
68
|
+
map,
|
|
69
|
+
L: options.L,
|
|
70
|
+
labels,
|
|
71
|
+
locale,
|
|
72
|
+
stopped: () => {
|
|
73
|
+
stop = null;
|
|
74
|
+
button.setAttribute('aria-pressed', 'false');
|
|
75
|
+
button.focus();
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=tools.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/tools.ts"],"names":[],"mappings":"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"}
|