@m4l/gclick 0.33.0 → 0.34.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/components/DevicesPicker/slots/DevicesPickerSlots.d.ts +2 -2
- package/components/ReportsViewer/subcomponents/ReportsViewerTabStrip/slots/ReportsViewerTabStripSlots.d.ts +1 -1
- package/components/ReportsViewer/subcomponents/ReportsViewerTabStrip/slots/ReportsViewerTabStripSlots.d.ts.map +1 -1
- package/components/TimelineCardsViewer/presets/journey/JourneyTimeline.styles.d.ts +1 -1
- package/components/VideoTimeLineSelector/slots/VideoTimeLineSelectorSlots.d.ts +2 -2
- package/components/maps/components/GpsMap/contexts/MapContext/helpers/createViewportNavigationRuntime.d.ts +13 -0
- package/components/maps/components/GpsMap/contexts/MapContext/helpers/createViewportNavigationRuntime.d.ts.map +1 -0
- package/components/maps/components/GpsMap/contexts/MapContext/helpers/createViewportNavigationRuntime.js +96 -0
- package/components/maps/components/GpsMap/contexts/MapContext/helpers/helpers.d.ts +9 -0
- package/components/maps/components/GpsMap/contexts/MapContext/helpers/helpers.d.ts.map +1 -1
- package/components/maps/components/GpsMap/contexts/MapContext/index.d.ts +1 -1
- package/components/maps/components/GpsMap/contexts/MapContext/index.d.ts.map +1 -1
- package/components/maps/components/GpsMap/contexts/MapContext/store.d.ts.map +1 -1
- package/components/maps/components/GpsMap/contexts/MapContext/store.js +214 -189
- package/components/maps/components/GpsMap/contexts/MapContext/types.d.ts +36 -1
- package/components/maps/components/GpsMap/contexts/MapContext/types.d.ts.map +1 -1
- package/components/maps/components/GpsMap/dictionary.d.ts +10 -0
- package/components/maps/components/GpsMap/dictionary.d.ts.map +1 -1
- package/components/maps/components/GpsMap/dictionary.js +10 -0
- package/components/maps/components/GpsMap/featureRenders/MyPositionFeatureRender/MyPositionFeatureRender.d.ts +4 -0
- package/components/maps/components/GpsMap/featureRenders/MyPositionFeatureRender/MyPositionFeatureRender.d.ts.map +1 -0
- package/components/maps/components/GpsMap/featureRenders/MyPositionFeatureRender/MyPositionFeatureRender.js +56 -0
- package/components/maps/components/GpsMap/hooks/index.d.ts +1 -0
- package/components/maps/components/GpsMap/hooks/index.d.ts.map +1 -1
- package/components/maps/components/GpsMap/hooks/useMapCameraSignal.d.ts +4 -0
- package/components/maps/components/GpsMap/hooks/useMapCameraSignal.d.ts.map +1 -0
- package/components/maps/components/GpsMap/hooks/useMapCameraSignal.js +11 -0
- package/components/maps/components/GpsMap/index.d.ts +1 -0
- package/components/maps/components/GpsMap/index.d.ts.map +1 -1
- package/components/maps/components/GpsMap/slots/styled.d.ts +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/hooks/useControls.d.ts +5 -4
- package/components/maps/components/GpsMap/subcomponents/Controls/hooks/useControls.d.ts.map +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/hooks/useControls.js +9 -8
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/constants.d.ts +2 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/constants.d.ts.map +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/constants.js +24 -17
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/hooks/usePopupToolRuntime.d.ts.map +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/hooks/usePopupToolRuntime.js +43 -40
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MeasureTool/subcomponents/MyActions/MyActions.d.ts +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MeasureTool/subcomponents/MyActions/MyActions.d.ts.map +1 -1
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MeasureTool/subcomponents/MyActions/MyActions.js +26 -24
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/MyPositionTool.d.ts +3 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/MyPositionTool.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/MyPositionTool.js +38 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/constants.d.ts +12 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/constants.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/constants.js +39 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/createMyPositionSession.d.ts +4 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/createMyPositionSession.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/createMyPositionSession.js +128 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/labels.d.ts +4 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/labels.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/labels.js +10 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/types.d.ts +20 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/types.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/useMyPositionTool.d.ts +10 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/useMyPositionTool.d.ts.map +1 -0
- package/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/useMyPositionTool.js +39 -0
- package/components/maps/components/GpsMap/types.d.ts +1 -1
- package/components/maps/components/GpsMap/types.d.ts.map +1 -1
- package/index.js +303 -296
- package/package.json +1 -1
|
@@ -1,73 +1,76 @@
|
|
|
1
|
-
import { usePopupsStore as d, deepShallow as
|
|
2
|
-
import { useCallback as
|
|
3
|
-
import { useMap as
|
|
4
|
-
import { useScopedMapInteractionCapture as
|
|
5
|
-
|
|
1
|
+
import { usePopupsStore as d, deepShallow as T } from "@m4l/components";
|
|
2
|
+
import { useCallback as s, useMemo as v } from "react";
|
|
3
|
+
import { useMap as D } from "react-leaflet";
|
|
4
|
+
import { useScopedMapInteractionCapture as S } from "../../../../../hooks/useScopedMapInteractionCapture.js";
|
|
5
|
+
import { useMapStore as A } from "../../../../../hooks/useMapStore/index.js";
|
|
6
|
+
function k(b) {
|
|
6
7
|
const {
|
|
7
|
-
ToolComponent:
|
|
8
|
+
ToolComponent: l,
|
|
8
9
|
popupId: o,
|
|
9
|
-
iconUrl:
|
|
10
|
-
title:
|
|
10
|
+
iconUrl: m,
|
|
11
|
+
title: f,
|
|
11
12
|
defaultPosition: g,
|
|
12
|
-
openInteractionCapture:
|
|
13
|
-
} = b, r =
|
|
13
|
+
openInteractionCapture: p
|
|
14
|
+
} = b, r = D(), w = A((e) => e.mapActions.suspendViewportTool), { addPopup: I, bringPopupOnFront: a } = d((e) => e.popupsActions), { close: P, show: h } = d((e) => e.popupActions), { isHidden: t, isOpen: n } = d(
|
|
14
15
|
(e) => {
|
|
15
|
-
const O = e.popupsIds.filter((
|
|
16
|
+
const O = e.popupsIds.filter((M) => e.hashPopups[M].status === "init");
|
|
16
17
|
return {
|
|
17
18
|
isHidden: e.popupsIds.indexOf(o) > -1 && O.indexOf(o) === -1,
|
|
18
19
|
isOpen: O.indexOf(o) > -1
|
|
19
20
|
};
|
|
20
21
|
},
|
|
21
|
-
|
|
22
|
+
T
|
|
22
23
|
);
|
|
23
|
-
|
|
24
|
-
active: !!
|
|
25
|
-
channels:
|
|
26
|
-
enabled: !!
|
|
27
|
-
ownerId:
|
|
24
|
+
S({
|
|
25
|
+
active: !!p && n,
|
|
26
|
+
channels: p?.channels ?? [],
|
|
27
|
+
enabled: !!p,
|
|
28
|
+
ownerId: p?.ownerId ?? `${o}-popup`
|
|
28
29
|
});
|
|
29
|
-
const c =
|
|
30
|
+
const c = s((e) => {
|
|
30
31
|
r.dragging.enable(), e.stopPropagation(), document.removeEventListener("mouseup", c);
|
|
31
|
-
}, [r]),
|
|
32
|
+
}, [r]), x = s((e) => {
|
|
32
33
|
r.dragging.disable(), e.stopPropagation(), document.addEventListener("mouseup", c);
|
|
33
|
-
}, [r.dragging, c]), i =
|
|
34
|
-
if (
|
|
35
|
-
if (t) {
|
|
36
|
-
|
|
34
|
+
}, [r.dragging, c]), i = s(() => {
|
|
35
|
+
if (l) {
|
|
36
|
+
if (p?.channels.includes("viewport_control") && w(p.ownerId), t) {
|
|
37
|
+
h(o), a(o, !0);
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
39
40
|
if (n) {
|
|
40
|
-
|
|
41
|
+
a(o, !0);
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
I(
|
|
44
45
|
{
|
|
45
46
|
winType: "component",
|
|
46
47
|
popupId: o,
|
|
47
|
-
title:
|
|
48
|
-
iconUrl:
|
|
49
|
-
component:
|
|
50
|
-
onMouseDown:
|
|
48
|
+
title: f,
|
|
49
|
+
iconUrl: m,
|
|
50
|
+
component: l,
|
|
51
|
+
onMouseDown: x,
|
|
51
52
|
defaultPosition: g
|
|
52
53
|
},
|
|
53
54
|
{ closeOthers: !1 }
|
|
54
55
|
);
|
|
55
56
|
}
|
|
56
57
|
}, [
|
|
57
|
-
a,
|
|
58
|
-
I,
|
|
59
58
|
l,
|
|
59
|
+
I,
|
|
60
|
+
a,
|
|
60
61
|
g,
|
|
61
|
-
|
|
62
|
+
m,
|
|
62
63
|
t,
|
|
63
64
|
n,
|
|
64
|
-
C,
|
|
65
|
-
o,
|
|
66
65
|
x,
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
o,
|
|
67
|
+
h,
|
|
68
|
+
p,
|
|
69
|
+
w,
|
|
70
|
+
f
|
|
71
|
+
]), u = s(() => {
|
|
69
72
|
!n && !t || P(o);
|
|
70
|
-
}, [P, t, n, o]),
|
|
73
|
+
}, [P, t, n, o]), C = s(() => {
|
|
71
74
|
if (n || t) {
|
|
72
75
|
u();
|
|
73
76
|
return;
|
|
@@ -75,12 +78,12 @@ function L(b) {
|
|
|
75
78
|
i();
|
|
76
79
|
}, [u, t, n, i]);
|
|
77
80
|
return {
|
|
78
|
-
externalControllerContext:
|
|
81
|
+
externalControllerContext: v(() => ({
|
|
79
82
|
closeDefault: u,
|
|
80
83
|
isHidden: t,
|
|
81
84
|
isOpen: n,
|
|
82
85
|
openDefault: i,
|
|
83
|
-
toggleDefault:
|
|
86
|
+
toggleDefault: C,
|
|
84
87
|
toolId: o
|
|
85
88
|
}), [
|
|
86
89
|
u,
|
|
@@ -88,12 +91,12 @@ function L(b) {
|
|
|
88
91
|
n,
|
|
89
92
|
i,
|
|
90
93
|
o,
|
|
91
|
-
|
|
94
|
+
C
|
|
92
95
|
]),
|
|
93
96
|
isDisabled: t,
|
|
94
97
|
isToggled: n
|
|
95
98
|
};
|
|
96
99
|
}
|
|
97
100
|
export {
|
|
98
|
-
|
|
101
|
+
k as usePopupToolRuntime
|
|
99
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyActions.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MeasureTool/subcomponents/MyActions/MyActions.tsx"],"names":[],"mappings":"AAoBA;;GAEG;AACH,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"MyActions.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MeasureTool/subcomponents/MyActions/MyActions.tsx"],"names":[],"mappings":"AAoBA;;GAEG;AACH,wBAAgB,SAAS,qDAwDxB"}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useFormContext as
|
|
3
|
-
import { ActionsContainer as
|
|
4
|
-
import { useModuleDictionary as
|
|
5
|
-
import { MAP_DICCTIONARY as
|
|
6
|
-
import { MEASURE_TOOL_INTERACTION_OWNER_ID as
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { jsx as s } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { useFormContext as f, useWatch as C } from "react-hook-form";
|
|
3
|
+
import { ActionsContainer as _, Button as I } from "@m4l/components";
|
|
4
|
+
import { useModuleDictionary as R } from "@m4l/core";
|
|
5
|
+
import { MAP_DICCTIONARY as c } from "../../../../../../../../dictionary.js";
|
|
6
|
+
import { MEASURE_TOOL_INTERACTION_OWNER_ID as i, MEASURE_TOOL_REQUIRED_INTERACTION_CHANNELS as T } from "../../constants.js";
|
|
7
|
+
import { useMapStore as O } from "../../../../../../../../hooks/useMapStore/index.js";
|
|
8
|
+
import { useMapInteractionCapture as w } from "../../../../../../../../hooks/useMapInteractionCapture.js";
|
|
9
|
+
function x() {
|
|
10
|
+
const { control: l, setValue: o } = f(), { getLabel: n } = R(), { canSuspendViewportTool: u, suspendViewportTool: E } = O((d) => d.mapActions), t = C({
|
|
11
|
+
control: l,
|
|
11
12
|
name: ["statusEdition", "reInits"]
|
|
12
13
|
})[0], {
|
|
13
|
-
isAvailable:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
isAvailable: e,
|
|
15
|
+
getOwner: m,
|
|
16
|
+
releaseAllCapture: p,
|
|
17
|
+
requestCapture: A
|
|
18
|
+
} = w({
|
|
19
|
+
ownerId: i,
|
|
20
|
+
channels: T
|
|
21
|
+
}), r = m("map_click"), a = e || (r === void 0 || r === i) && u(i);
|
|
22
|
+
return /* @__PURE__ */ s(_, { children: /* @__PURE__ */ s(
|
|
23
|
+
I,
|
|
22
24
|
{
|
|
23
25
|
onClick: () => {
|
|
24
26
|
if (t === "initial") {
|
|
25
|
-
if (!
|
|
27
|
+
if (!e && a && E(i), !A())
|
|
26
28
|
return;
|
|
27
|
-
|
|
28
|
-
} else t === "draw" && (
|
|
29
|
+
o("statusEdition", "draw");
|
|
30
|
+
} else t === "draw" && (p(), o("statusEdition", "initial"));
|
|
29
31
|
},
|
|
30
32
|
disabled: t === "initial" && !a,
|
|
31
|
-
label: n(t === "initial" ?
|
|
33
|
+
label: n(t === "initial" ? c.LABEL_MEASURE_START : c.LABEL_MEASURE_CANCEL)
|
|
32
34
|
}
|
|
33
35
|
) });
|
|
34
36
|
}
|
|
35
37
|
export {
|
|
36
|
-
|
|
38
|
+
x as MyActions
|
|
37
39
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyPositionTool.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/MyPositionTool.tsx"],"names":[],"mappings":"AAMA,0EAA0E;AAC1E,wBAAgB,cAAc,qDAsB7B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsxs as l, Fragment as m, jsx as t } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { ActionsFocusOutlined as p } from "@m4l/icons";
|
|
3
|
+
import { CircularProgress as c, Snackbar as d } from "@mui/material";
|
|
4
|
+
import { ToggleIconButtonPopupToolStyled as g } from "../../../../../../slots/styled.js";
|
|
5
|
+
import { MY_POSITION_TOOL_ID as r } from "./constants.js";
|
|
6
|
+
import { useMyPositionTool as u } from "./useMyPositionTool.js";
|
|
7
|
+
function y() {
|
|
8
|
+
const { status: o, labels: i, toggle: a, notification: e, dismissNotification: s } = u(), n = o === "pending" ? i.loading : i.title;
|
|
9
|
+
return /* @__PURE__ */ l(m, { children: [
|
|
10
|
+
/* @__PURE__ */ t(
|
|
11
|
+
g,
|
|
12
|
+
{
|
|
13
|
+
role: "button",
|
|
14
|
+
isToggled: o === "active",
|
|
15
|
+
"aria-pressed": o === "active",
|
|
16
|
+
"aria-busy": o === "pending",
|
|
17
|
+
"aria-label": n,
|
|
18
|
+
tooltip: n,
|
|
19
|
+
icon: o === "pending" ? /* @__PURE__ */ t(c, { size: 18, color: "inherit" }) : /* @__PURE__ */ t(p, {}),
|
|
20
|
+
onToggle: a,
|
|
21
|
+
"data-map-tool-id": r,
|
|
22
|
+
dataTestId: `map-tool-${r}`
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ t(
|
|
26
|
+
d,
|
|
27
|
+
{
|
|
28
|
+
open: !!e,
|
|
29
|
+
message: e,
|
|
30
|
+
autoHideDuration: 6e3,
|
|
31
|
+
onClose: s
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
] });
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
y as MyPositionTool
|
|
38
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InteractionChannel } from '../../../../../../contexts/MapContext/types';
|
|
2
|
+
import { MyPositionLabels } from './types';
|
|
3
|
+
export declare const MY_POSITION_TOOL_ID = "myPositionTool";
|
|
4
|
+
export declare const MY_POSITION_LAYER_ID = "myPosition";
|
|
5
|
+
export declare const MY_POSITION_FEATURE_ID = "myPosition";
|
|
6
|
+
export declare const MY_POSITION_VIEWPORT_OWNER_ID = "myPositionTool";
|
|
7
|
+
export declare const MY_POSITION_CHANNELS: InteractionChannel[];
|
|
8
|
+
export declare const MY_POSITION_OPTIONS: PositionOptions;
|
|
9
|
+
export declare const MY_POSITION_MAX_ZOOM = 16;
|
|
10
|
+
export declare const MY_POSITION_LABEL_KEYS: Record<keyof MyPositionLabels, string>;
|
|
11
|
+
export declare const MY_POSITION_LABEL_FALLBACKS: MyPositionLabels;
|
|
12
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,6BAA6B,mBAAsB,CAAC;AACjE,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,EAAyB,CAAC;AAC/E,eAAO,MAAM,mBAAmB,EAAE,eAIjC,CAAC;AACF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,MAAM,CAWzE,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,gBAWzC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { MAP_DICCTIONARY as o } from "../../../../../../dictionary.js";
|
|
2
|
+
const e = "myPositionTool", i = "myPosition", n = "myPosition", _ = e, a = ["viewport_control"], I = {
|
|
3
|
+
enableHighAccuracy: !0,
|
|
4
|
+
timeout: 15e3,
|
|
5
|
+
maximumAge: 0
|
|
6
|
+
}, O = 16, s = {
|
|
7
|
+
title: o.LABEL_MY_POSITION,
|
|
8
|
+
layerName: o.LABEL_MY_POSITION_LAYER,
|
|
9
|
+
loading: o.LABEL_MY_POSITION_LOADING,
|
|
10
|
+
unsupported: o.LABEL_MY_POSITION_UNSUPPORTED,
|
|
11
|
+
insecure: o.LABEL_MY_POSITION_INSECURE,
|
|
12
|
+
denied: o.LABEL_MY_POSITION_DENIED,
|
|
13
|
+
unavailable: o.LABEL_MY_POSITION_UNAVAILABLE,
|
|
14
|
+
timeout: o.LABEL_MY_POSITION_TIMEOUT,
|
|
15
|
+
cameraBlocked: o.LABEL_MY_POSITION_CAMERA_BLOCKED,
|
|
16
|
+
layerConflict: o.LABEL_MY_POSITION_LAYER_CONFLICT
|
|
17
|
+
}, c = {
|
|
18
|
+
title: "My position",
|
|
19
|
+
layerName: "My position",
|
|
20
|
+
loading: "Finding your position… Click to cancel.",
|
|
21
|
+
unsupported: "Your browser does not support location services.",
|
|
22
|
+
insecure: "Your location requires a secure connection.",
|
|
23
|
+
denied: "Location access is blocked. Check your browser and system location settings.",
|
|
24
|
+
unavailable: "We could not determine your location. Check your system location settings and try again.",
|
|
25
|
+
timeout: "We could not obtain your location in time. Please try again.",
|
|
26
|
+
cameraBlocked: "Your location is available. Finish the active map tool to center the map.",
|
|
27
|
+
layerConflict: "Your position layer is already in use. Close the other position tool and try again."
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
a as MY_POSITION_CHANNELS,
|
|
31
|
+
n as MY_POSITION_FEATURE_ID,
|
|
32
|
+
c as MY_POSITION_LABEL_FALLBACKS,
|
|
33
|
+
s as MY_POSITION_LABEL_KEYS,
|
|
34
|
+
i as MY_POSITION_LAYER_ID,
|
|
35
|
+
O as MY_POSITION_MAX_ZOOM,
|
|
36
|
+
I as MY_POSITION_OPTIONS,
|
|
37
|
+
e as MY_POSITION_TOOL_ID,
|
|
38
|
+
_ as MY_POSITION_VIEWPORT_OWNER_ID
|
|
39
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MyPositionSession, MyPositionSessionOptions } from './types';
|
|
2
|
+
/** Own one cancellable browser-location session and its native map layer. */
|
|
3
|
+
export declare function createMyPositionSession(options: MyPositionSessionOptions): MyPositionSession;
|
|
4
|
+
//# sourceMappingURL=createMyPositionSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMyPositionSession.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/createMyPositionSession.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAE3E,6EAA6E;AAC7E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CA6N5F"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { latLng as x } from "leaflet";
|
|
2
|
+
import { MyPositionFeatureRender as V } from "../../../../../../featureRenders/MyPositionFeatureRender/MyPositionFeatureRender.js";
|
|
3
|
+
import { MY_POSITION_OPTIONS as k, MY_POSITION_LAYER_ID as c, MY_POSITION_FEATURE_ID as B, MY_POSITION_VIEWPORT_OWNER_ID as y, MY_POSITION_CHANNELS as C, MY_POSITION_MAX_ZOOM as D } from "./constants.js";
|
|
4
|
+
function z(L) {
|
|
5
|
+
const { store: S, onStatus: O, notify: o, getLayerName: T } = L, t = S.getState().mapActions;
|
|
6
|
+
let l = 0, i = !1, f, p, b = !1, g = !1, I = !1, M = 0, _ = 0, m, r, N;
|
|
7
|
+
function w() {
|
|
8
|
+
g = !1, t.releaseInteractionCapture(y, C);
|
|
9
|
+
}
|
|
10
|
+
function h() {
|
|
11
|
+
I = !1, M += 1, g && (t.cancelViewportAction(y), w());
|
|
12
|
+
}
|
|
13
|
+
function R() {
|
|
14
|
+
const e = r;
|
|
15
|
+
r = void 0, e !== void 0 && t.requestAutofollowResume(e);
|
|
16
|
+
}
|
|
17
|
+
function s() {
|
|
18
|
+
l += 1, i = !1, p !== void 0 && (f?.clearWatch(p), p = void 0), N?.(), N = void 0, r = void 0, h(), b && (t.removeLayer(c), b = !1), m = void 0, O("off");
|
|
19
|
+
}
|
|
20
|
+
function A() {
|
|
21
|
+
if (!m)
|
|
22
|
+
return;
|
|
23
|
+
h();
|
|
24
|
+
const e = ++M;
|
|
25
|
+
if (g = t.requestInteractionCapture(y, C), !g) {
|
|
26
|
+
o("cameraBlocked");
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const { latitude: u, longitude: a, accuracy: d } = m.coords, n = x(u, a).toBounds(Math.max(d * 2, 60)), v = t.moveToBounds({
|
|
30
|
+
southWest: { lat: Math.max(-90, n.getSouth()), lng: Math.max(-180, n.getWest()) },
|
|
31
|
+
northEast: { lat: Math.min(90, n.getNorth()), lng: Math.min(180, n.getEast()) }
|
|
32
|
+
}, {
|
|
33
|
+
ownerId: y,
|
|
34
|
+
maxZoom: D,
|
|
35
|
+
// Fly uses a cancellable animation frame instead of Leaflet's surviving CSS zoom timeout.
|
|
36
|
+
mode: "fly",
|
|
37
|
+
animate: !0,
|
|
38
|
+
duration: 0.3,
|
|
39
|
+
cameraSignal: "cancel-autofollow",
|
|
40
|
+
onCameraSignal: (P) => {
|
|
41
|
+
r = P.requestId;
|
|
42
|
+
},
|
|
43
|
+
/** Release only this focus generation so an older completion cannot release a newer capture. */
|
|
44
|
+
onSettled: () => {
|
|
45
|
+
M === e && w();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
!v.ok && v.status !== "noop" && (w(), o("cameraBlocked"));
|
|
49
|
+
}
|
|
50
|
+
function E(e, u) {
|
|
51
|
+
if (!i || u !== l)
|
|
52
|
+
return;
|
|
53
|
+
const { latitude: a, longitude: d, accuracy: n } = e.coords;
|
|
54
|
+
if (!Number.isFinite(a) || Math.abs(a) > 90 || !Number.isFinite(d) || Math.abs(d) > 180 || !Number.isFinite(n) || n < 0 || !Number.isFinite(e.timestamp)) {
|
|
55
|
+
s(), o("unavailable");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const v = !m;
|
|
59
|
+
if (!b) {
|
|
60
|
+
if (S.getState().hashLayers[c]) {
|
|
61
|
+
s(), o("layerConflict");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
t.addLayer({
|
|
65
|
+
layerId: c,
|
|
66
|
+
name: T(),
|
|
67
|
+
renderFeature: V,
|
|
68
|
+
visible: !0,
|
|
69
|
+
autoFocus: !1,
|
|
70
|
+
autoFocusAble: !1,
|
|
71
|
+
cluster: !1,
|
|
72
|
+
clusterAble: !1,
|
|
73
|
+
deleteAble: !1,
|
|
74
|
+
featureObservability: { enabled: !0, pickable: !0, magnetizable: !0, anchorStrategy: "geometry" },
|
|
75
|
+
geoJsonObject: { object: { type: "FeatureCollection", features: [] } }
|
|
76
|
+
}), b = !0, N = S.subscribe((P, Y) => {
|
|
77
|
+
Y.hashLayers[c]?.visible === !0 && P.hashLayers[c]?.visible === !1 && (h(), R());
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
m = e, t.setFeatureData(
|
|
81
|
+
c,
|
|
82
|
+
B,
|
|
83
|
+
{ type: "Point", coordinates: [d, a] },
|
|
84
|
+
{ accuracy: n, timestamp: e.timestamp }
|
|
85
|
+
), O("active"), v && I && _ === t.getViewportRevision() && A();
|
|
86
|
+
}
|
|
87
|
+
function F() {
|
|
88
|
+
if (i)
|
|
89
|
+
return;
|
|
90
|
+
if (!window.isSecureContext) {
|
|
91
|
+
o("insecure");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (f = navigator.geolocation, !f) {
|
|
95
|
+
o("unsupported");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
I = !0, _ = t.getViewportRevision(), i = !0;
|
|
99
|
+
const e = ++l;
|
|
100
|
+
O("pending");
|
|
101
|
+
try {
|
|
102
|
+
const u = f.watchPosition(
|
|
103
|
+
(a) => E(a, e),
|
|
104
|
+
(a) => {
|
|
105
|
+
!i || e !== l || (s(), o(a.code === 1 ? "denied" : a.code === 3 ? "timeout" : "unavailable"));
|
|
106
|
+
},
|
|
107
|
+
k
|
|
108
|
+
);
|
|
109
|
+
i && e === l ? p = u : f.clearWatch(u);
|
|
110
|
+
} catch {
|
|
111
|
+
s(), o("unavailable");
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function q() {
|
|
115
|
+
I = !0, _ = t.getViewportRevision(), i ? A() : F();
|
|
116
|
+
}
|
|
117
|
+
function W() {
|
|
118
|
+
if (i) {
|
|
119
|
+
const e = r;
|
|
120
|
+
s(), r = e, R();
|
|
121
|
+
} else
|
|
122
|
+
F();
|
|
123
|
+
}
|
|
124
|
+
return { start: F, stop: s, open: q, releaseCamera: h, toggle: W };
|
|
125
|
+
}
|
|
126
|
+
export {
|
|
127
|
+
z as createMyPositionSession
|
|
128
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MyPositionLabelResolver, MyPositionLabels } from './types';
|
|
2
|
+
/** Resolve map dictionary labels while older server dictionaries are rolling out. */
|
|
3
|
+
export declare function resolveMyPositionLabels(getLabel: MyPositionLabelResolver): MyPositionLabels;
|
|
4
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/labels.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,gBAAgB,CAO3F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MY_POSITION_LABEL_KEYS as i, MY_POSITION_LABEL_FALLBACKS as s } from "./constants.js";
|
|
2
|
+
function L(o) {
|
|
3
|
+
return Object.fromEntries(Object.entries(i).map(([r, e]) => {
|
|
4
|
+
const t = o(e).trim();
|
|
5
|
+
return [r, !t || t === e || t.startsWith("N_D:[") ? s[r] : t];
|
|
6
|
+
}));
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
L as resolveMyPositionLabels
|
|
10
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GetLabelType } from '@m4l/core';
|
|
2
|
+
import { MapStore } from '../../../../../../contexts/MapContext/store';
|
|
3
|
+
export type MyPositionStatus = 'off' | 'pending' | 'active';
|
|
4
|
+
export type MyPositionMessage = 'unsupported' | 'insecure' | 'denied' | 'unavailable' | 'timeout' | 'cameraBlocked' | 'layerConflict';
|
|
5
|
+
export type MyPositionLabels = Record<MyPositionMessage | 'title' | 'layerName' | 'loading', string>;
|
|
6
|
+
export type MyPositionSessionOptions = {
|
|
7
|
+
store: MapStore;
|
|
8
|
+
onStatus: (status: MyPositionStatus) => void;
|
|
9
|
+
notify: (message: MyPositionMessage) => void;
|
|
10
|
+
getLayerName: () => string;
|
|
11
|
+
};
|
|
12
|
+
export type MyPositionSession = {
|
|
13
|
+
start: () => void;
|
|
14
|
+
stop: () => void;
|
|
15
|
+
open: () => void;
|
|
16
|
+
releaseCamera: () => void;
|
|
17
|
+
toggle: () => void;
|
|
18
|
+
};
|
|
19
|
+
export type MyPositionLabelResolver = GetLabelType;
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AACtI,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;AACrG,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MyPositionStatus } from './types';
|
|
2
|
+
/** Connect a map-local browser session to dictionary labels, notifications and semantic tool commands. */
|
|
3
|
+
export declare function useMyPositionTool(): {
|
|
4
|
+
status: MyPositionStatus;
|
|
5
|
+
labels: import('./types').MyPositionLabels;
|
|
6
|
+
toggle: () => void;
|
|
7
|
+
notification: string | undefined;
|
|
8
|
+
dismissNotification: () => void;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useMyPositionTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMyPositionTool.d.ts","sourceRoot":"","sources":["../../../../../../../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/subcomponents/Controls/subcomponents/ButtonsToolsList/subcomponents/MyPositionTool/useMyPositionTool.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,0GAA0G;AAC1G,wBAAgB,iBAAiB;;;;;;EAgDhC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useModuleDictionary as S, HostToolsContext as b } from "@m4l/core";
|
|
2
|
+
import { useContext as m, useRef as I, useState as u, useMemo as f, useEffect as p, useCallback as g } from "react";
|
|
3
|
+
import { useRegisterMapToolController as O } from "../../../../../../hooks/useRegisterMapToolController.js";
|
|
4
|
+
import { useMapStore as _ } from "../../../../../../hooks/useMapStore/index.js";
|
|
5
|
+
import { MY_POSITION_LAYER_ID as d, MY_POSITION_TOOL_ID as x } from "./constants.js";
|
|
6
|
+
import { createMyPositionSession as P } from "./createMyPositionSession.js";
|
|
7
|
+
import { resolveMyPositionLabels as v } from "./labels.js";
|
|
8
|
+
import { MapContext as h } from "../../../../../../contexts/MapContext/MapContext.js";
|
|
9
|
+
function V() {
|
|
10
|
+
const { getLabel: y } = S(), a = m(b), i = m(h), l = _((n) => n.mapActions.setLayerName), t = v(y), e = I({ labels: t, hostTools: a });
|
|
11
|
+
e.current = { labels: t, hostTools: a };
|
|
12
|
+
const [s, M] = u("off"), [N, r] = u(), o = f(() => P({
|
|
13
|
+
store: i,
|
|
14
|
+
onStatus: M,
|
|
15
|
+
getLayerName: () => e.current.labels.layerName,
|
|
16
|
+
/** Use the host toast when available, otherwise keep a map-local notification. */
|
|
17
|
+
notify: (n) => {
|
|
18
|
+
const c = e.current.labels[n];
|
|
19
|
+
e.current.hostTools ? e.current.hostTools.toast({ title: c }, { type: "warning" }) : r(c);
|
|
20
|
+
}
|
|
21
|
+
}), [i]);
|
|
22
|
+
p(() => () => o.stop(), [o]), p(() => {
|
|
23
|
+
s === "active" && l(d, t.layerName);
|
|
24
|
+
}, [t.layerName, l, s]);
|
|
25
|
+
const T = f(() => ({
|
|
26
|
+
open: o.open,
|
|
27
|
+
close: o.releaseCamera,
|
|
28
|
+
suspendViewport: o.releaseCamera,
|
|
29
|
+
toggle: o.toggle
|
|
30
|
+
}), [o]);
|
|
31
|
+
O(x, T);
|
|
32
|
+
const C = g(() => r(void 0), []), L = g(() => {
|
|
33
|
+
r(void 0), o.toggle();
|
|
34
|
+
}, [o]);
|
|
35
|
+
return { status: s, labels: t, toggle: L, notification: N, dismissNotification: C };
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
V as useMyPositionTool
|
|
39
|
+
};
|
|
@@ -30,7 +30,7 @@ export type Point = {
|
|
|
30
30
|
};
|
|
31
31
|
export type MapToolPosition = Extract<L.ControlPosition, 'topright' | 'bottomright'>;
|
|
32
32
|
export type MapToolType = 'popup' | 'button';
|
|
33
|
-
export type MapToolControlCommand = 'open' | 'close' | 'toggle';
|
|
33
|
+
export type MapToolControlCommand = 'open' | 'close' | 'toggle' | 'suspendViewport';
|
|
34
34
|
export type MapToolControllerScope = 'default' | 'runtime';
|
|
35
35
|
export type MapToolController = Partial<Record<MapToolControlCommand, () => void>>;
|
|
36
36
|
export type MapToolExternalControllerContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,4FAA4F,CAAC;AACtI,OAAO,EAAE,uBAAuB,EAAE,MAAM,2FAA2F,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,MAAM,yFAAyF,CAAC;AACnI,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AACF,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,UAAU,GAAG,aAAa,CAAC,CAAC;AAErF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC7C,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/gclick/src/components/maps/components/GpsMap/types.ts"],"names":[],"mappings":"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"}
|