@fabriquerdemain/map-react 1.0.0 → 1.0.2

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.
@@ -18,8 +18,12 @@ export interface FiltersProps {
18
18
  }>;
19
19
  /** Villes disponibles */
20
20
  cities?: string[];
21
- /** Types disponibles (si dealTypes n'est pas fourni) */
22
- types?: string[];
21
+ /** Types disponibles (tableau d'objets ou de strings) */
22
+ types?: Array<{
23
+ value: string;
24
+ label: string;
25
+ color?: string;
26
+ }> | string[];
23
27
  /** État actuel des filtres */
24
28
  value: FilterState;
25
29
  /** Callback appelé quand les filtres changent */
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../src/components/Filters.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAsB,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAG9B,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,iEAAiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,yBAAyB;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChE,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,8BAA8B;IAC9B,KAAK,EAAE,WAAW,CAAA;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACxC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAgL1C,CAAA;AAID,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../src/components/Filters.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAsB,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAG9B,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/B,iEAAiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,yBAAyB;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChE,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,EAAE,CAAA;IAC1E,8BAA8B;IAC9B,KAAK,EAAE,WAAW,CAAA;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACxC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAqL1C,CAAA;AAID,eAAe,OAAO,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,yEAoSf,CAAA;AAID,eAAe,GAAG,CAAA"}
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,yEAiTf,CAAA;AAID,eAAe,GAAG,CAAA"}
@@ -13,7 +13,11 @@ export interface UseMapFiltersReturn {
13
13
  /** Villes disponibles (extraites des marqueurs) */
14
14
  availableCities: string[];
15
15
  /** Types disponibles (extraits des marqueurs) */
16
- availableTypes: string[];
16
+ availableTypes: Array<{
17
+ value: string;
18
+ label: string;
19
+ color?: string;
20
+ }>;
17
21
  /** Définir un filtre */
18
22
  setFilter: (key: keyof FilterState, value: string) => void;
19
23
  /** Réinitialiser tous les filtres */
@@ -1 +1 @@
1
- {"version":3,"file":"useMapFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useMapFilters.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnE,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAA;IACpB,wBAAwB;IACxB,eAAe,EAAE,SAAS,EAAE,CAAA;IAC5B,kDAAkD;IAClD,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,mDAAmD;IACnD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,wBAAwB;IACxB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,qCAAqC;IACrC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAA;CACtB;AASD,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,mBAAmB,CA6GvE"}
1
+ {"version":3,"file":"useMapFilters.d.ts","sourceRoot":"","sources":["../../src/hooks/useMapFilters.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnE,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAA;IACpB,wBAAwB;IACxB,eAAe,EAAE,SAAS,EAAE,CAAA;IAC5B,kDAAkD;IAClD,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,mDAAmD;IACnD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,iDAAiD;IACjD,cAAc,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvE,wBAAwB;IACxB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,qCAAqC;IACrC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAA;CACtB;AASD,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAoHvE"}
@@ -11582,6 +11582,7 @@ const Map$1 = forwardRef(
11582
11582
  const markersLayerRef = useRef(null);
11583
11583
  const markerMapRef = useRef(new globalThis.Map());
11584
11584
  const tileLayerRef = useRef(null);
11585
+ const hasFitBoundsRef = useRef(false);
11585
11586
  const [currentTileSource, setCurrentTileSource] = useState(
11586
11587
  "ign"
11587
11588
  );
@@ -11731,11 +11732,21 @@ const Map$1 = forwardRef(
11731
11732
  markersLayerRef.current.addLayer(marker);
11732
11733
  markerMapRef.current.set(markerData.id, marker);
11733
11734
  });
11734
- if (config.fitBoundsOnLoad && markers.length > 0) {
11735
+ if (config.fitBoundsOnLoad && markers.length > 0 && !hasFitBoundsRef.current) {
11735
11736
  const group = L$1.featureGroup(
11736
11737
  markers.map((m) => L$1.marker([m.lat, m.lng]))
11737
11738
  );
11738
11739
  (_a = mapRef.current) == null ? void 0 : _a.fitBounds(group.getBounds(), { padding: [50, 50] });
11740
+ hasFitBoundsRef.current = true;
11741
+ setTimeout(() => {
11742
+ if (mapRef.current) {
11743
+ const center = mapRef.current.getCenter();
11744
+ const shouldUseIgn = isInFrance(center.lat, center.lng);
11745
+ if (!shouldUseIgn) {
11746
+ setCurrentTileSource("osm");
11747
+ }
11748
+ }
11749
+ }, 100);
11739
11750
  }
11740
11751
  }, [
11741
11752
  markers,
@@ -12076,7 +12087,12 @@ const Filters = ({
12076
12087
  value: key,
12077
12088
  label: dt.label,
12078
12089
  color: dt.color
12079
- })) : types.map((t) => ({ value: t, label: t }));
12090
+ })) : types.map((t) => {
12091
+ if (typeof t === "string") {
12092
+ return { value: t, label: t };
12093
+ }
12094
+ return t;
12095
+ });
12080
12096
  return /* @__PURE__ */ jsxs(
12081
12097
  "div",
12082
12098
  {
@@ -12253,13 +12269,17 @@ function useMapFilters(markers) {
12253
12269
  return Array.from(cities).sort();
12254
12270
  }, [markers]);
12255
12271
  const availableTypes = useMemo(() => {
12256
- const types = /* @__PURE__ */ new Set();
12272
+ const typesMap = /* @__PURE__ */ new Map();
12257
12273
  markers.forEach((m) => {
12258
12274
  if (m.type) {
12259
- types.add(m.type);
12275
+ typesMap.set(m.type, {
12276
+ value: m.type,
12277
+ label: m.typeLabel || m.type,
12278
+ color: m.typeColor
12279
+ });
12260
12280
  }
12261
12281
  });
12262
- return Array.from(types).sort();
12282
+ return Array.from(typesMap.values()).sort((a, b) => a.label.localeCompare(b.label));
12263
12283
  }, [markers]);
12264
12284
  const totalCount = markers.length;
12265
12285
  const filteredCount = filteredMarkers.length;