@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.
Files changed (118) hide show
  1. package/README.md +79 -11
  2. package/package.json +4 -4
  3. package/src/index.d.mts +2 -1
  4. package/src/index.d.ts +2 -1
  5. package/src/index.js +3 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +1 -0
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/answers.d.mts +17 -0
  10. package/src/lib/answers.d.ts +17 -0
  11. package/src/lib/answers.js +27 -0
  12. package/src/lib/answers.js.map +1 -0
  13. package/src/lib/answers.mjs +21 -0
  14. package/src/lib/answers.mjs.map +1 -0
  15. package/src/lib/area.js +2 -1
  16. package/src/lib/area.js.map +1 -1
  17. package/src/lib/area.mjs +3 -2
  18. package/src/lib/area.mjs.map +1 -1
  19. package/src/lib/card.d.mts +10 -2
  20. package/src/lib/card.d.ts +10 -2
  21. package/src/lib/card.js +13 -4
  22. package/src/lib/card.js.map +1 -1
  23. package/src/lib/card.mjs +13 -4
  24. package/src/lib/card.mjs.map +1 -1
  25. package/src/lib/form-map.d.mts +18 -0
  26. package/src/lib/form-map.d.ts +18 -0
  27. package/src/lib/form-map.js +586 -0
  28. package/src/lib/form-map.js.map +1 -0
  29. package/src/lib/form-map.mjs +583 -0
  30. package/src/lib/form-map.mjs.map +1 -0
  31. package/src/lib/heat.d.mts +25 -0
  32. package/src/lib/heat.d.ts +25 -0
  33. package/src/lib/heat.js +111 -0
  34. package/src/lib/heat.js.map +1 -0
  35. package/src/lib/heat.mjs +108 -0
  36. package/src/lib/heat.mjs.map +1 -0
  37. package/src/lib/labels.d.mts +33 -0
  38. package/src/lib/labels.d.ts +33 -0
  39. package/src/lib/labels.js +60 -1
  40. package/src/lib/labels.js.map +1 -1
  41. package/src/lib/labels.mjs +58 -0
  42. package/src/lib/labels.mjs.map +1 -1
  43. package/src/lib/list-view.js +168 -70
  44. package/src/lib/list-view.js.map +1 -1
  45. package/src/lib/list-view.mjs +162 -64
  46. package/src/lib/list-view.mjs.map +1 -1
  47. package/src/lib/map-core.d.mts +8 -0
  48. package/src/lib/map-core.d.ts +8 -0
  49. package/src/lib/map-core.js +57 -4
  50. package/src/lib/map-core.js.map +1 -1
  51. package/src/lib/map-core.mjs +56 -4
  52. package/src/lib/map-core.mjs.map +1 -1
  53. package/src/lib/marks.d.mts +34 -0
  54. package/src/lib/marks.d.ts +34 -0
  55. package/src/lib/marks.js +56 -0
  56. package/src/lib/marks.js.map +1 -0
  57. package/src/lib/marks.mjs +49 -0
  58. package/src/lib/marks.mjs.map +1 -0
  59. package/src/lib/measure.d.mts +15 -0
  60. package/src/lib/measure.d.ts +15 -0
  61. package/src/lib/measure.js +157 -0
  62. package/src/lib/measure.js.map +1 -0
  63. package/src/lib/measure.mjs +153 -0
  64. package/src/lib/measure.mjs.map +1 -0
  65. package/src/lib/pins.d.mts +2 -0
  66. package/src/lib/pins.d.ts +2 -0
  67. package/src/lib/pins.js +5 -1
  68. package/src/lib/pins.js.map +1 -1
  69. package/src/lib/pins.mjs +3 -1
  70. package/src/lib/pins.mjs.map +1 -1
  71. package/src/lib/place.js +3 -1
  72. package/src/lib/place.js.map +1 -1
  73. package/src/lib/place.mjs +4 -2
  74. package/src/lib/place.mjs.map +1 -1
  75. package/src/lib/providers.d.mts +43 -3
  76. package/src/lib/providers.d.ts +43 -3
  77. package/src/lib/providers.js +76 -67
  78. package/src/lib/providers.js.map +1 -1
  79. package/src/lib/providers.mjs +24 -15
  80. package/src/lib/providers.mjs.map +1 -1
  81. package/src/lib/reach.d.mts +25 -0
  82. package/src/lib/reach.d.ts +25 -0
  83. package/src/lib/reach.js +158 -0
  84. package/src/lib/reach.js.map +1 -0
  85. package/src/lib/reach.mjs +153 -0
  86. package/src/lib/reach.mjs.map +1 -0
  87. package/src/lib/regions.d.mts +137 -0
  88. package/src/lib/regions.d.ts +137 -0
  89. package/src/lib/regions.js +456 -0
  90. package/src/lib/regions.js.map +1 -0
  91. package/src/lib/regions.mjs +445 -0
  92. package/src/lib/regions.mjs.map +1 -0
  93. package/src/lib/route-line.d.mts +34 -0
  94. package/src/lib/route-line.d.ts +34 -0
  95. package/src/lib/route-line.js +53 -0
  96. package/src/lib/route-line.js.map +1 -0
  97. package/src/lib/route-line.mjs +47 -0
  98. package/src/lib/route-line.mjs.map +1 -0
  99. package/src/lib/routes.d.mts +40 -0
  100. package/src/lib/routes.d.ts +40 -0
  101. package/src/lib/routes.js +149 -0
  102. package/src/lib/routes.js.map +1 -0
  103. package/src/lib/routes.mjs +140 -0
  104. package/src/lib/routes.mjs.map +1 -0
  105. package/src/lib/settings.d.mts +13 -3
  106. package/src/lib/settings.d.ts +13 -3
  107. package/src/lib/styles.d.mts +10 -2
  108. package/src/lib/styles.d.ts +10 -2
  109. package/src/lib/styles.js +52 -3
  110. package/src/lib/styles.js.map +1 -1
  111. package/src/lib/styles.mjs +50 -2
  112. package/src/lib/styles.mjs.map +1 -1
  113. package/src/lib/tools.d.mts +27 -0
  114. package/src/lib/tools.d.ts +27 -0
  115. package/src/lib/tools.js +84 -0
  116. package/src/lib/tools.js.map +1 -0
  117. package/src/lib/tools.mjs +81 -0
  118. package/src/lib/tools.mjs.map +1 -0
@@ -0,0 +1,25 @@
1
+ import type * as Leaflet from 'leaflet';
2
+ import type { LeafletModule } from './leaflet';
3
+ /**
4
+ * A heat map of a list's records: where they crowd glows, from the page's
5
+ * accent through its warning tone to its error tone, each record weighing one
6
+ * or its weight. Drawn on a canvas of its own over the map images and under
7
+ * the pins, again after each move; hidden while the map zooms. Loaded with
8
+ * the first map that has one.
9
+ */
10
+ export interface HeatPoint {
11
+ lat: number;
12
+ lng: number;
13
+ weight: number;
14
+ }
15
+ export interface HeatLayer {
16
+ /** The records to glow, and whether the heat map shows at all. */
17
+ draw(points: readonly HeatPoint[], shown: boolean): void;
18
+ destroy(): void;
19
+ }
20
+ export declare function drawHeat(options: {
21
+ map: Leaflet.Map;
22
+ L: LeafletModule;
23
+ document: Document;
24
+ colours: () => string[];
25
+ }): HeatLayer;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.drawHeat = drawHeat;
4
+ /** How far each record's glow reaches, in pixels, and how soft its edge is. */
5
+ const RADIUS = 22;
6
+ const BLUR = 16;
7
+ function drawHeat(options) {
8
+ const { map, L, document: doc } = options;
9
+ const canvas = doc.createElement('canvas');
10
+ canvas.className = 'fd-map-heat leaflet-zoom-hide';
11
+ canvas.setAttribute('aria-hidden', 'true');
12
+ canvas.style.position = 'absolute';
13
+ canvas.style.pointerEvents = 'none';
14
+ const pane = map.getPane('fd-heat') ?? map.createPane('fd-heat');
15
+ // Over the images, under the shapes (400) and the pins (600).
16
+ pane.style.zIndex = '350';
17
+ pane.style.pointerEvents = 'none';
18
+ pane.append(canvas);
19
+ let points = [];
20
+ let shown = false;
21
+ let palette = null;
22
+ let paletteOf = '';
23
+ // One record's glow, drawn once: a blurred disc to stamp at each place.
24
+ const stamp = doc.createElement('canvas');
25
+ const r = RADIUS + BLUR;
26
+ stamp.width = stamp.height = r * 2;
27
+ const stampContext = stamp.getContext('2d');
28
+ if (stampContext) {
29
+ stampContext.shadowOffsetX = stampContext.shadowOffsetY = r * 2;
30
+ stampContext.shadowBlur = BLUR;
31
+ stampContext.shadowColor = 'black';
32
+ stampContext.beginPath();
33
+ stampContext.arc(-r, -r, RADIUS, 0, Math.PI * 2);
34
+ stampContext.fill();
35
+ }
36
+ /** 256 colours, from none to the strongest, made from the page's tones as the canvas reads them. */
37
+ function makePalette(colours) {
38
+ const strip = doc.createElement('canvas');
39
+ strip.width = 256;
40
+ strip.height = 1;
41
+ const context = strip.getContext('2d');
42
+ if (!context)
43
+ return new Uint8ClampedArray(1024);
44
+ const gradient = context.createLinearGradient(0, 0, 256, 0);
45
+ colours.forEach((colour, i) => {
46
+ context.fillStyle = '#2563eb';
47
+ // A tone the canvas cannot read keeps the last it could.
48
+ context.fillStyle = colour;
49
+ gradient.addColorStop(0.25 + (0.75 * i) / Math.max(1, colours.length - 1), context.fillStyle);
50
+ });
51
+ context.fillStyle = gradient;
52
+ context.fillRect(0, 0, 256, 1);
53
+ return context.getImageData(0, 0, 256, 1).data;
54
+ }
55
+ function redraw() {
56
+ const size = map.getSize();
57
+ const ratio = doc.defaultView?.devicePixelRatio ?? 1;
58
+ L.DomUtil.setPosition(canvas, map.containerPointToLayerPoint([0, 0]));
59
+ canvas.style.width = `${size.x}px`;
60
+ canvas.style.height = `${size.y}px`;
61
+ canvas.width = Math.round(size.x * ratio);
62
+ canvas.height = Math.round(size.y * ratio);
63
+ canvas.hidden = !shown;
64
+ const context = canvas.getContext('2d', { willReadFrequently: true });
65
+ if (!context || !shown || !points.length)
66
+ return;
67
+ const colours = options.colours();
68
+ if (colours.join() !== paletteOf) {
69
+ palette = makePalette(colours);
70
+ paletteOf = colours.join();
71
+ }
72
+ context.setTransform(ratio, 0, 0, ratio, 0, 0);
73
+ const most = Math.max(...points.map((p) => p.weight), 1e-9);
74
+ const bounds = map.getBounds().pad(0.2);
75
+ for (const point of points) {
76
+ if (!bounds.contains([point.lat, point.lng]))
77
+ continue;
78
+ const at = map.latLngToContainerPoint([point.lat, point.lng]);
79
+ // Each adds a little: only many together, or the heaviest, glow strongest.
80
+ context.globalAlpha = Math.max(0.04, point.weight / most) * 0.22;
81
+ context.drawImage(stamp, at.x - r, at.y - r);
82
+ }
83
+ // Each pixel's strength becomes its colour.
84
+ const image = context.getImageData(0, 0, canvas.width, canvas.height);
85
+ const data = image.data;
86
+ for (let i = 3; i < data.length; i += 4) {
87
+ const strength = data[i];
88
+ if (!strength || !palette)
89
+ continue;
90
+ const j = strength * 4;
91
+ data[i - 3] = palette[j];
92
+ data[i - 2] = palette[j + 1];
93
+ data[i - 1] = palette[j + 2];
94
+ data[i] = Math.min(220, strength * 1.6);
95
+ }
96
+ context.putImageData(image, 0, 0);
97
+ }
98
+ map.on('moveend resize', redraw);
99
+ return {
100
+ draw(next, on) {
101
+ points = next;
102
+ shown = on;
103
+ redraw();
104
+ },
105
+ destroy() {
106
+ map.off('moveend resize', redraw);
107
+ canvas.remove();
108
+ },
109
+ };
110
+ }
111
+ //# sourceMappingURL=heat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heat.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/heat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /** How far each record's glow reaches, in pixels, and how soft its edge is. */
2
+ const RADIUS = 22;
3
+ const BLUR = 16;
4
+ export function drawHeat(options) {
5
+ const { map, L, document: doc } = options;
6
+ const canvas = doc.createElement('canvas');
7
+ canvas.className = 'fd-map-heat leaflet-zoom-hide';
8
+ canvas.setAttribute('aria-hidden', 'true');
9
+ canvas.style.position = 'absolute';
10
+ canvas.style.pointerEvents = 'none';
11
+ const pane = map.getPane('fd-heat') ?? map.createPane('fd-heat');
12
+ // Over the images, under the shapes (400) and the pins (600).
13
+ pane.style.zIndex = '350';
14
+ pane.style.pointerEvents = 'none';
15
+ pane.append(canvas);
16
+ let points = [];
17
+ let shown = false;
18
+ let palette = null;
19
+ let paletteOf = '';
20
+ // One record's glow, drawn once: a blurred disc to stamp at each place.
21
+ const stamp = doc.createElement('canvas');
22
+ const r = RADIUS + BLUR;
23
+ stamp.width = stamp.height = r * 2;
24
+ const stampContext = stamp.getContext('2d');
25
+ if (stampContext) {
26
+ stampContext.shadowOffsetX = stampContext.shadowOffsetY = r * 2;
27
+ stampContext.shadowBlur = BLUR;
28
+ stampContext.shadowColor = 'black';
29
+ stampContext.beginPath();
30
+ stampContext.arc(-r, -r, RADIUS, 0, Math.PI * 2);
31
+ stampContext.fill();
32
+ }
33
+ /** 256 colours, from none to the strongest, made from the page's tones as the canvas reads them. */
34
+ function makePalette(colours) {
35
+ const strip = doc.createElement('canvas');
36
+ strip.width = 256;
37
+ strip.height = 1;
38
+ const context = strip.getContext('2d');
39
+ if (!context)
40
+ return new Uint8ClampedArray(1024);
41
+ const gradient = context.createLinearGradient(0, 0, 256, 0);
42
+ colours.forEach((colour, i) => {
43
+ context.fillStyle = '#2563eb';
44
+ // A tone the canvas cannot read keeps the last it could.
45
+ context.fillStyle = colour;
46
+ gradient.addColorStop(0.25 + (0.75 * i) / Math.max(1, colours.length - 1), context.fillStyle);
47
+ });
48
+ context.fillStyle = gradient;
49
+ context.fillRect(0, 0, 256, 1);
50
+ return context.getImageData(0, 0, 256, 1).data;
51
+ }
52
+ function redraw() {
53
+ const size = map.getSize();
54
+ const ratio = doc.defaultView?.devicePixelRatio ?? 1;
55
+ L.DomUtil.setPosition(canvas, map.containerPointToLayerPoint([0, 0]));
56
+ canvas.style.width = `${size.x}px`;
57
+ canvas.style.height = `${size.y}px`;
58
+ canvas.width = Math.round(size.x * ratio);
59
+ canvas.height = Math.round(size.y * ratio);
60
+ canvas.hidden = !shown;
61
+ const context = canvas.getContext('2d', { willReadFrequently: true });
62
+ if (!context || !shown || !points.length)
63
+ return;
64
+ const colours = options.colours();
65
+ if (colours.join() !== paletteOf) {
66
+ palette = makePalette(colours);
67
+ paletteOf = colours.join();
68
+ }
69
+ context.setTransform(ratio, 0, 0, ratio, 0, 0);
70
+ const most = Math.max(...points.map((p) => p.weight), 1e-9);
71
+ const bounds = map.getBounds().pad(0.2);
72
+ for (const point of points) {
73
+ if (!bounds.contains([point.lat, point.lng]))
74
+ continue;
75
+ const at = map.latLngToContainerPoint([point.lat, point.lng]);
76
+ // Each adds a little: only many together, or the heaviest, glow strongest.
77
+ context.globalAlpha = Math.max(0.04, point.weight / most) * 0.22;
78
+ context.drawImage(stamp, at.x - r, at.y - r);
79
+ }
80
+ // Each pixel's strength becomes its colour.
81
+ const image = context.getImageData(0, 0, canvas.width, canvas.height);
82
+ const data = image.data;
83
+ for (let i = 3; i < data.length; i += 4) {
84
+ const strength = data[i];
85
+ if (!strength || !palette)
86
+ continue;
87
+ const j = strength * 4;
88
+ data[i - 3] = palette[j];
89
+ data[i - 2] = palette[j + 1];
90
+ data[i - 1] = palette[j + 2];
91
+ data[i] = Math.min(220, strength * 1.6);
92
+ }
93
+ context.putImageData(image, 0, 0);
94
+ }
95
+ map.on('moveend resize', redraw);
96
+ return {
97
+ draw(next, on) {
98
+ points = next;
99
+ shown = on;
100
+ redraw();
101
+ },
102
+ destroy() {
103
+ map.off('moveend resize', redraw);
104
+ canvas.remove();
105
+ },
106
+ };
107
+ }
108
+ //# sourceMappingURL=heat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heat.mjs","sourceRoot":"","sources":["../../../../../libs/map/src/lib/heat.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,18 @@ export interface MapLabels {
57
57
  /** The designer's setting naming the field a place's address is written into. */
58
58
  settingAddress: string;
59
59
  settingNowhere: string;
60
+ /** The tools under the zoom. */
61
+ satellite: string;
62
+ fullScreen: string;
63
+ leaveFullScreen: string;
64
+ measure: string;
65
+ measureHint: string;
66
+ /** A way measured: `{distance}` its length. */
67
+ measured: string;
68
+ /** An area of a map's shaded areas, with its number. */
69
+ areaValue: string;
70
+ /** The legend's step for areas with nothing to shade them. */
71
+ areasNone: string;
60
72
  }
61
73
  export declare const MAP_LABELS: Record<Locale, MapLabels>;
62
74
  /** The words a list's map shows, besides the maps' own: kept apart, so a form with only a place or an area never carries them. */
@@ -80,11 +92,32 @@ export interface ListMapLabels {
80
92
  /** The tools that draw an area on a list's map, and the search the area becomes. */
81
93
  drawArea: string;
82
94
  inDrawnArea: string;
95
+ /** A search for one shaded area's records: `{name}` the area. */
96
+ inRegion: string;
97
+ /** The tool that puts the records nearest the reader first. */
98
+ nearestFirst: string;
99
+ /** Said when the reader's place was not given: the records nearest the map's middle come first instead. */
100
+ nearestFromMiddle: string;
101
+ /** Said under a heat map. */
102
+ heatNote: string;
83
103
  }
84
104
  export declare const LIST_MAP_LABELS: Record<Locale, ListMapLabels>;
105
+ /** The words a form's map shows, besides the maps' own and a list map's: kept apart, as theirs are. */
106
+ export interface FormMapLabels {
107
+ /** A map's name when its page gives none. */
108
+ map: string;
109
+ /** A place whose news is old: `{time}` is how long ago, in the page's language ("3 minutes ago"). */
110
+ lastSeen: string;
111
+ /** Back to following a place that moves, after the person moved the map away. */
112
+ follow: string;
113
+ routeFailed: string;
114
+ }
115
+ export declare const FORM_MAP_LABELS: Record<Locale, FormMapLabels>;
85
116
  /** The words for a page's language, with the app's own over them. */
86
117
  export declare function mapLabels(locale: Locale | undefined, own?: Partial<MapLabels>): MapLabels;
87
118
  /** A list's map's words for a page's language, the maps' own with them, and the app's own over both. */
88
119
  export declare function listMapLabels(locale: Locale | undefined, own?: Partial<MapLabels & ListMapLabels>): MapLabels & ListMapLabels;
89
120
  /** A word with its `{name}`s filled in. */
90
121
  export declare const fill: (words: string, values: Record<string, string | number>) => string;
122
+ /** A form's map's words for a page's language: the maps' own, a list map's (its pins and cards), its own, the app's over all. */
123
+ export declare function formMapLabels(locale: Locale | undefined, own?: Partial<MapLabels & ListMapLabels & FormMapLabels>): MapLabels & ListMapLabels & FormMapLabels;
@@ -57,6 +57,18 @@ export interface MapLabels {
57
57
  /** The designer's setting naming the field a place's address is written into. */
58
58
  settingAddress: string;
59
59
  settingNowhere: string;
60
+ /** The tools under the zoom. */
61
+ satellite: string;
62
+ fullScreen: string;
63
+ leaveFullScreen: string;
64
+ measure: string;
65
+ measureHint: string;
66
+ /** A way measured: `{distance}` its length. */
67
+ measured: string;
68
+ /** An area of a map's shaded areas, with its number. */
69
+ areaValue: string;
70
+ /** The legend's step for areas with nothing to shade them. */
71
+ areasNone: string;
60
72
  }
61
73
  export declare const MAP_LABELS: Record<Locale, MapLabels>;
62
74
  /** The words a list's map shows, besides the maps' own: kept apart, so a form with only a place or an area never carries them. */
@@ -80,11 +92,32 @@ export interface ListMapLabels {
80
92
  /** The tools that draw an area on a list's map, and the search the area becomes. */
81
93
  drawArea: string;
82
94
  inDrawnArea: string;
95
+ /** A search for one shaded area's records: `{name}` the area. */
96
+ inRegion: string;
97
+ /** The tool that puts the records nearest the reader first. */
98
+ nearestFirst: string;
99
+ /** Said when the reader's place was not given: the records nearest the map's middle come first instead. */
100
+ nearestFromMiddle: string;
101
+ /** Said under a heat map. */
102
+ heatNote: string;
83
103
  }
84
104
  export declare const LIST_MAP_LABELS: Record<Locale, ListMapLabels>;
105
+ /** The words a form's map shows, besides the maps' own and a list map's: kept apart, as theirs are. */
106
+ export interface FormMapLabels {
107
+ /** A map's name when its page gives none. */
108
+ map: string;
109
+ /** A place whose news is old: `{time}` is how long ago, in the page's language ("3 minutes ago"). */
110
+ lastSeen: string;
111
+ /** Back to following a place that moves, after the person moved the map away. */
112
+ follow: string;
113
+ routeFailed: string;
114
+ }
115
+ export declare const FORM_MAP_LABELS: Record<Locale, FormMapLabels>;
85
116
  /** The words for a page's language, with the app's own over them. */
86
117
  export declare function mapLabels(locale: Locale | undefined, own?: Partial<MapLabels>): MapLabels;
87
118
  /** A list's map's words for a page's language, the maps' own with them, and the app's own over both. */
88
119
  export declare function listMapLabels(locale: Locale | undefined, own?: Partial<MapLabels & ListMapLabels>): MapLabels & ListMapLabels;
89
120
  /** A word with its `{name}`s filled in. */
90
121
  export declare const fill: (words: string, values: Record<string, string | number>) => string;
122
+ /** A form's map's words for a page's language: the maps' own, a list map's (its pins and cards), its own, the app's over all. */
123
+ export declare function formMapLabels(locale: Locale | undefined, own?: Partial<MapLabels & ListMapLabels & FormMapLabels>): MapLabels & ListMapLabels & FormMapLabels;
package/src/lib/labels.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fill = exports.LIST_MAP_LABELS = exports.MAP_LABELS = void 0;
3
+ exports.fill = exports.FORM_MAP_LABELS = exports.LIST_MAP_LABELS = exports.MAP_LABELS = void 0;
4
4
  exports.mapLabels = mapLabels;
5
5
  exports.listMapLabels = listMapLabels;
6
+ exports.formMapLabels = formMapLabels;
6
7
  exports.MAP_LABELS = {
7
8
  en: {
8
9
  mapOf: '{label}, map',
@@ -58,6 +59,14 @@ exports.MAP_LABELS = {
58
59
  settingShapes: 'Shapes',
59
60
  settingAddress: 'Address goes into',
60
61
  settingNowhere: 'Nowhere',
62
+ satellite: 'Satellite',
63
+ fullScreen: 'Full screen',
64
+ leaveFullScreen: 'Leave full screen',
65
+ measure: 'Measure a distance',
66
+ measureHint: 'Click points along the way; double-click or press Enter to finish. Escape clears.',
67
+ measured: 'The way measures {distance}.',
68
+ areaValue: '{name}: {value}',
69
+ areasNone: 'None',
61
70
  },
62
71
  ar: {
63
72
  mapOf: '{label}، خريطة',
@@ -113,6 +122,14 @@ exports.MAP_LABELS = {
113
122
  settingShapes: 'الأشكال',
114
123
  settingAddress: 'يُكتب العنوان في',
115
124
  settingNowhere: 'لا مكان',
125
+ satellite: 'القمر الصناعي',
126
+ fullScreen: 'ملء الشاشة',
127
+ leaveFullScreen: 'الخروج من ملء الشاشة',
128
+ measure: 'قِس مسافة',
129
+ measureHint: 'انقر نقاطًا على طول الطريق؛ انقر مرتين أو اضغط Enter للإنهاء، ويمسح Escape القياس.',
130
+ measured: 'يبلغ الطريق {distance}.',
131
+ areaValue: '{name}: {value}',
132
+ areasNone: 'لا شيء',
116
133
  },
117
134
  fr: {
118
135
  mapOf: '{label}, carte',
@@ -168,6 +185,14 @@ exports.MAP_LABELS = {
168
185
  settingShapes: 'Formes',
169
186
  settingAddress: 'L’adresse va dans',
170
187
  settingNowhere: 'Nulle part',
188
+ satellite: 'Satellite',
189
+ fullScreen: 'Plein écran',
190
+ leaveFullScreen: 'Quitter le plein écran',
191
+ measure: 'Mesurer une distance',
192
+ measureHint: 'Cliquez des points le long du trajet ; double-cliquez ou appuyez sur Entrée pour terminer. Échap efface.',
193
+ measured: 'Le trajet mesure {distance}.',
194
+ areaValue: '{name} : {value}',
195
+ areasNone: 'Aucun',
171
196
  },
172
197
  de: {
173
198
  mapOf: '{label}, Karte',
@@ -223,6 +248,14 @@ exports.MAP_LABELS = {
223
248
  settingShapes: 'Formen',
224
249
  settingAddress: 'Adresse kommt in',
225
250
  settingNowhere: 'Nirgends',
251
+ satellite: 'Satellit',
252
+ fullScreen: 'Vollbild',
253
+ leaveFullScreen: 'Vollbild verlassen',
254
+ measure: 'Entfernung messen',
255
+ measureHint: 'Punkte entlang des Weges anklicken; Doppelklick oder Eingabe beendet, Escape löscht.',
256
+ measured: 'Der Weg misst {distance}.',
257
+ areaValue: '{name}: {value}',
258
+ areasNone: 'Keine',
226
259
  },
227
260
  };
228
261
  exports.LIST_MAP_LABELS = {
@@ -240,6 +273,10 @@ exports.LIST_MAP_LABELS = {
240
273
  mapFailed: 'The map could not load the records.',
241
274
  drawArea: 'Draw an area to search in',
242
275
  inDrawnArea: 'In the area drawn',
276
+ inRegion: 'In {name}',
277
+ nearestFirst: 'Nearest first',
278
+ nearestFromMiddle: 'Nearest the middle of the map first: your place was not given.',
279
+ heatNote: 'A heat map from afar: zoom in to the streets to see each one.',
243
280
  },
244
281
  ar: {
245
282
  pinKeys: 'ينتقل Tab بين الدبابيس. يفتح Enter بطاقة الدبوس، ويغلقها Escape.',
@@ -255,6 +292,10 @@ exports.LIST_MAP_LABELS = {
255
292
  mapFailed: 'تعذّر تحميل السجلات على الخريطة.',
256
293
  drawArea: 'ارسم منطقة للبحث فيها',
257
294
  inDrawnArea: 'في المنطقة المرسومة',
295
+ inRegion: 'في {name}',
296
+ nearestFirst: 'الأقرب أولًا',
297
+ nearestFromMiddle: 'الأقرب إلى منتصف الخريطة أولًا: لم يُعطَ موقعك.',
298
+ heatNote: 'خريطة حرارية من بعيد: قرّب إلى الشوارع لترى كلًّا منها.',
258
299
  },
259
300
  fr: {
260
301
  pinKeys: 'Tab parcourt les épingles. Entrée ouvre la fiche d’une épingle, Échap la ferme.',
@@ -270,6 +311,10 @@ exports.LIST_MAP_LABELS = {
270
311
  mapFailed: 'La carte n’a pas pu charger les enregistrements.',
271
312
  drawArea: 'Tracer une zone où chercher',
272
313
  inDrawnArea: 'Dans la zone tracée',
314
+ inRegion: 'À {name}',
315
+ nearestFirst: 'Les plus proches d’abord',
316
+ nearestFromMiddle: 'Les plus proches du centre de la carte d’abord : votre position n’a pas été donnée.',
317
+ heatNote: 'Une carte de chaleur vue de loin : zoomez jusqu’aux rues pour voir chacun.',
273
318
  },
274
319
  de: {
275
320
  pinKeys: 'Tab springt von Nadel zu Nadel. Eingabe öffnet die Karte einer Nadel, Escape schließt sie.',
@@ -285,8 +330,18 @@ exports.LIST_MAP_LABELS = {
285
330
  mapFailed: 'Die Karte konnte die Datensätze nicht laden.',
286
331
  drawArea: 'Ein Gebiet zum Suchen zeichnen',
287
332
  inDrawnArea: 'Im gezeichneten Gebiet',
333
+ inRegion: 'In {name}',
334
+ nearestFirst: 'Nächste zuerst',
335
+ nearestFromMiddle: 'Die der Kartenmitte nächsten zuerst: Ihr Standort wurde nicht freigegeben.',
336
+ heatNote: 'Eine Heatmap aus der Ferne: bis zu den Straßen zoomen, um jeden zu sehen.',
288
337
  },
289
338
  };
339
+ exports.FORM_MAP_LABELS = {
340
+ en: { map: 'Map', lastSeen: 'Last seen {time}', follow: 'Follow', routeFailed: 'The way could not be found.' },
341
+ ar: { map: 'خريطة', lastSeen: 'آخر ظهور {time}', follow: 'تتبّع', routeFailed: 'تعذّر إيجاد الطريق.' },
342
+ fr: { map: 'Carte', lastSeen: 'Vu pour la dernière fois {time}', follow: 'Suivre', routeFailed: 'Le trajet est introuvable.' },
343
+ de: { map: 'Karte', lastSeen: 'Zuletzt gesehen {time}', follow: 'Folgen', routeFailed: 'Der Weg wurde nicht gefunden.' },
344
+ };
290
345
  /** The words for a page's language, with the app's own over them. */
291
346
  function mapLabels(locale, own) {
292
347
  return { ...exports.MAP_LABELS[locale ?? 'en'], ...own };
@@ -298,4 +353,8 @@ function listMapLabels(locale, own) {
298
353
  /** A word with its `{name}`s filled in. */
299
354
  const fill = (words, values) => words.replace(/\{(\w+)\}/g, (all, key) => (key in values ? String(values[key]) : all));
300
355
  exports.fill = fill;
356
+ /** A form's map's words for a page's language: the maps' own, a list map's (its pins and cards), its own, the app's over all. */
357
+ function formMapLabels(locale, own) {
358
+ return { ...exports.MAP_LABELS[locale ?? 'en'], ...exports.LIST_MAP_LABELS[locale ?? 'en'], ...exports.FORM_MAP_LABELS[locale ?? 'en'], ...own };
359
+ }
301
360
  //# sourceMappingURL=labels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/labels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../../libs/map/src/lib/labels.ts"],"names":[],"mappings":"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"}