This is the documentation of version 0.62.0. Go to the latest version, 1.0.0-rc.5.
TomTom Maps for JavaScript
    Preparing search index...

    Type Alias PlacesModuleSerializableConfig

    PlacesModuleSerializableConfig: Omit<
        PlacesModuleConfig,
        "label"
        | "icon"
        | "evAvailability"
        | "connections"
        | "extraFeatureProps",
    > & {
        connections?: Omit<PlaceConnectionsConfig, "label">;
        evAvailability?: Omit<EVAvailabilityConfig, "formatText">;
        extraFeatureProps?: Record<string, FeaturePropValue>;
        icon?: Omit<PlaceIconConfig, "default" | "categoryIcons" | "mapping"> & {
            categoryIcons?: SerializableCustomImage<MapStylePOICategory>[];
            default?: Omit<DefaultPlaceIconConfig, "image"> & {
                image?: Omit<SerializableCustomImage, "id">;
            };
        };
        label?: Omit<PlaceLabelConfig, "title"> & {
            title?: Exclude<PlaceLabelConfig["title"], (place: Place) => string>;
        };
    }

    The part of a PlacesModuleConfig that survives JSON, for saving getConfig() and replaying it with applyConfig().

    It leaves out what JSON cannot carry, which a replay adds back in code:

    • label.title as a function — a MapLibre expression serializes.
    • connections.label, evAvailability.formatText and icon.mapping, all functions.
    • extraFeatureProps entries that are functions — fixed values serialize.
    • icon.default.image and icon.categoryIcons[].image as an HTMLImageElement — see SerializableCustomImage.
    const saved = JSON.stringify(places.getConfig());

    const state: PlacesModuleSerializableConfig = JSON.parse(saved);
    places.applyConfig({
    ...state,
    connections: { ...state.connections, label: (connection) => `${connection.distanceMeters} m` },
    });