@fabriquerdemain/map-react 1.0.1 → 1.0.4
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/dist/components/DetailPanel.d.ts +4 -0
- package/dist/components/DetailPanel.d.ts.map +1 -1
- package/dist/components/Map.d.ts.map +1 -1
- package/dist/repcartes-map-react.js +25 -3
- package/dist/repcartes-map-react.js.map +1 -1
- package/dist/repcartes-map-react.umd.cjs +25 -3
- package/dist/repcartes-map-react.umd.cjs.map +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,10 @@ export interface DetailPanelProps {
|
|
|
10
10
|
marker?: MapMarker | null;
|
|
11
11
|
/** Configuration du panneau */
|
|
12
12
|
config?: Partial<DetailPanelConfig>;
|
|
13
|
+
/** Mode d'affichage : 'full' (toutes les infos) ou 'minimal' (placeholder) */
|
|
14
|
+
mode?: 'full' | 'minimal';
|
|
15
|
+
/** Message à afficher en mode minimal */
|
|
16
|
+
placeholderMessage?: string;
|
|
13
17
|
/** Toujours afficher le panneau même sans marqueur */
|
|
14
18
|
alwaysVisible?: boolean;
|
|
15
19
|
/** Callback appelé quand on ferme le panneau */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailPanel.d.ts","sourceRoot":"","sources":["../../src/components/DetailPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzE,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACnC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7E,0DAA0D;IAC1D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+SlD,CAAA;AA4BD,eAAe,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"DetailPanel.d.ts","sourceRoot":"","sources":["../../src/components/DetailPanel.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzE,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACnC,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,yDAAyD;IACzD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7E,0DAA0D;IAC1D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+SlD,CAAA;AA4BD,eAAe,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../src/components/Map.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAON,MAAM,OAAO,CAAA;AACd,OAAO,CAAC,MAAM,SAAS,CAAA;AACvB,OAAO,0BAA0B,CAAA;AACjC,OAAO,8CAA8C,CAAA;AACrD,OAAO,sDAAsD,CAAA;AAC7D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAQ5E,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;IACrB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC3D,iDAAiD;IACjD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC5C,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAA;IAC9B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,MAAM;IACrB,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,iCAAiC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IACtC,oCAAoC;IACpC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAA;CAC3B;AAgBD,eAAO,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["../../src/components/Map.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAON,MAAM,OAAO,CAAA;AACd,OAAO,CAAC,MAAM,SAAS,CAAA;AACvB,OAAO,0BAA0B,CAAA;AACjC,OAAO,8CAA8C,CAAA;AACrD,OAAO,sDAAsD,CAAA;AAC7D,OAAO,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAQ5E,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;IACrB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC3C,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAC3D,iDAAiD;IACjD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IAC5C,2CAA2C;IAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAA;IAC9B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,MAAM;IACrB,8BAA8B;IAC9B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,iCAAiC;IACjC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAA;IACtC,oCAAoC;IACpC,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAA;CAC3B;AAgBD,eAAO,MAAM,GAAG,yEAmUf,CAAA;AAID,eAAe,GAAG,CAAA"}
|
|
@@ -11486,6 +11486,8 @@ const DEFAULT_MAP_CONFIG = {
|
|
|
11486
11486
|
fitBoundsOnLoad: true,
|
|
11487
11487
|
fitBoundsPadding: 50,
|
|
11488
11488
|
showPopup: true,
|
|
11489
|
+
popupMode: "full",
|
|
11490
|
+
popupPlaceholder: "Détails bientôt disponibles",
|
|
11489
11491
|
showPopupTitle: true,
|
|
11490
11492
|
showPopupSubtitle: true,
|
|
11491
11493
|
showPopupAddress: true,
|
|
@@ -11583,9 +11585,14 @@ const Map$1 = forwardRef(
|
|
|
11583
11585
|
const markerMapRef = useRef(new globalThis.Map());
|
|
11584
11586
|
const tileLayerRef = useRef(null);
|
|
11585
11587
|
const hasFitBoundsRef = useRef(false);
|
|
11586
|
-
const
|
|
11588
|
+
const currentTileSourceRef = useRef("ign");
|
|
11589
|
+
const [currentTileSource, setCurrentTileSourceState] = useState(
|
|
11587
11590
|
"ign"
|
|
11588
11591
|
);
|
|
11592
|
+
const setCurrentTileSource = useCallback((source) => {
|
|
11593
|
+
currentTileSourceRef.current = source;
|
|
11594
|
+
setCurrentTileSourceState(source);
|
|
11595
|
+
}, []);
|
|
11589
11596
|
const config = { ...DEFAULT_MAP_CONFIG, ...configProp };
|
|
11590
11597
|
const createColoredIcon = useCallback(
|
|
11591
11598
|
(color = "#F95E3C") => {
|
|
@@ -11612,6 +11619,17 @@ const Map$1 = forwardRef(
|
|
|
11612
11619
|
const buildPopupContent = useCallback(
|
|
11613
11620
|
(marker) => {
|
|
11614
11621
|
let html = '<div class="repcartes-popup">';
|
|
11622
|
+
if (config.popupMode === "minimal") {
|
|
11623
|
+
if (marker.subtitle) {
|
|
11624
|
+
html += `<p style="margin: 0 0 4px 0; font-size: 12px; color: #666; display: flex; align-items: center; gap: 4px;">
|
|
11625
|
+
<span style="font-size: 14px;">📍</span>
|
|
11626
|
+
${marker.subtitle}
|
|
11627
|
+
</p>`;
|
|
11628
|
+
}
|
|
11629
|
+
html += `<p style="margin: 0; font-size: 11px; color: #999; font-style: italic;">${config.popupPlaceholder}</p>`;
|
|
11630
|
+
html += "</div>";
|
|
11631
|
+
return html;
|
|
11632
|
+
}
|
|
11615
11633
|
if (config.showPopupTitle && marker.title) {
|
|
11616
11634
|
html += `<h3 style="margin: 0 0 8px 0; font-size: 14px; font-weight: 600;">${marker.title}</h3>`;
|
|
11617
11635
|
}
|
|
@@ -11678,9 +11696,9 @@ const Map$1 = forwardRef(
|
|
|
11678
11696
|
});
|
|
11679
11697
|
const center = map.getCenter();
|
|
11680
11698
|
const shouldUseIgn = isInFrance(center.lat, center.lng);
|
|
11681
|
-
if (shouldUseIgn &&
|
|
11699
|
+
if (shouldUseIgn && currentTileSourceRef.current !== "ign") {
|
|
11682
11700
|
setCurrentTileSource("ign");
|
|
11683
|
-
} else if (!shouldUseIgn &&
|
|
11701
|
+
} else if (!shouldUseIgn && currentTileSourceRef.current !== "osm") {
|
|
11684
11702
|
setCurrentTileSource("osm");
|
|
11685
11703
|
}
|
|
11686
11704
|
});
|
|
@@ -11732,6 +11750,10 @@ const Map$1 = forwardRef(
|
|
|
11732
11750
|
markersLayerRef.current.addLayer(marker);
|
|
11733
11751
|
markerMapRef.current.set(markerData.id, marker);
|
|
11734
11752
|
});
|
|
11753
|
+
const hasInternationalMarkers = markers.some((m) => !isInFrance(m.lat, m.lng));
|
|
11754
|
+
if (hasInternationalMarkers && currentTileSource === "ign") {
|
|
11755
|
+
setCurrentTileSource("osm");
|
|
11756
|
+
}
|
|
11735
11757
|
if (config.fitBoundsOnLoad && markers.length > 0 && !hasFitBoundsRef.current) {
|
|
11736
11758
|
const group = L$1.featureGroup(
|
|
11737
11759
|
markers.map((m) => L$1.marker([m.lat, m.lng]))
|