element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

7485.js.map (12205B)


      1 {"version":3,"file":"bundles/12c8185ea2689492c07b/7485.js","mappings":"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","sources":["webpack://element-web/./src/components/views/location/Marker.tsx","webpack://element-web/./src/components/views/location/SmartMarker.tsx","webpack://element-web/./src/utils/location/map.ts"],"sourcesContent":["/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type JSX, type ReactNode, type Ref, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { type RoomMember } from \"matrix-js-sdk/src/matrix\";\nimport LocationIcon from \"@vector-im/compound-design-tokens/assets/web/icons/location-pin-solid\";\n\nimport { getUserNameColorClass } from \"../../../utils/FormattingUtils\";\nimport MemberAvatar from \"../avatars/MemberAvatar\";\n\ninterface Props {\n    id?: string;\n    // renders MemberAvatar when provided\n    roomMember?: RoomMember;\n    // use member text color as background\n    useMemberColor?: boolean;\n    tooltip?: ReactNode;\n    ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * Wrap with tooltip handlers when\n * tooltip is truthy\n */\nconst OptionalTooltip: React.FC<{\n    tooltip?: ReactNode;\n    children: ReactNode;\n}> = ({ tooltip, children }) => {\n    const [isVisible, setIsVisible] = useState(false);\n    if (!tooltip) {\n        return <>{children}</>;\n    }\n\n    const show = (): void => setIsVisible(true);\n    const hide = (): void => setIsVisible(false);\n    const toggleVisibility = (e: React.MouseEvent<HTMLDivElement, MouseEvent>): void => {\n        // stop map from zooming in on click\n        e.stopPropagation();\n        setIsVisible(!isVisible);\n    };\n\n    return (\n        <div onMouseEnter={show} onClick={toggleVisibility} onMouseLeave={hide}>\n            {children}\n            {isVisible && tooltip}\n        </div>\n    );\n};\n\n/**\n * Generic location marker\n */\nconst Marker = ({ id, roomMember, useMemberColor, tooltip, ref }: Props): JSX.Element => {\n    const memberColorClass = useMemberColor && roomMember ? getUserNameColorClass(roomMember.userId) : \"\";\n    return (\n        <div\n            ref={ref}\n            id={id}\n            className={classNames(\"mx_Marker\", memberColorClass, {\n                mx_Marker_defaultColor: !memberColorClass,\n            })}\n        >\n            <OptionalTooltip tooltip={tooltip}>\n                <div className=\"mx_Marker_border\">\n                    {roomMember ? (\n                        <MemberAvatar\n                            member={roomMember}\n                            size=\"36px\"\n                            viewUserOnClick={false}\n                            // no mxid on hover when marker has tooltip\n                            hideTitle={!!tooltip}\n                        />\n                    ) : (\n                        <LocationIcon className=\"mx_Marker_icon\" />\n                    )}\n                </div>\n            </OptionalTooltip>\n        </div>\n    );\n};\n\nexport default Marker;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { type RoomMember } from \"matrix-js-sdk/src/matrix\";\n\nimport type * as maplibregl from \"maplibre-gl\";\nimport { parseGeoUri } from \"../../../utils/location\";\nimport { createMarker } from \"../../../utils/location/map\";\nimport Marker from \"./Marker\";\n\nconst useMapMarker = (\n    map: maplibregl.Map,\n    geoUri: string,\n): { marker?: maplibregl.Marker; onElementRef: (el: HTMLDivElement) => void } => {\n    const [marker, setMarker] = useState<maplibregl.Marker>();\n\n    const onElementRef = useCallback(\n        (element: HTMLDivElement) => {\n            if (marker || !element) {\n                return;\n            }\n            const coords = parseGeoUri(geoUri);\n            if (coords) {\n                const newMarker = createMarker(coords, element);\n                newMarker.addTo(map);\n                setMarker(newMarker);\n            }\n        },\n        [marker, geoUri, map],\n    );\n\n    useEffect(() => {\n        if (marker) {\n            const coords = parseGeoUri(geoUri);\n            if (coords) {\n                marker.setLngLat({ lon: coords.longitude, lat: coords.latitude });\n            }\n        }\n    }, [marker, geoUri]);\n\n    useEffect(\n        () => () => {\n            if (marker) {\n                marker.remove();\n            }\n        },\n        [marker],\n    );\n\n    return {\n        marker,\n        onElementRef,\n    };\n};\n\nexport interface SmartMarkerProps {\n    map: maplibregl.Map;\n    geoUri: string;\n    id?: string;\n    // renders MemberAvatar when provided\n    roomMember?: RoomMember;\n    // use member text color as background\n    useMemberColor?: boolean;\n    tooltip?: ReactNode;\n}\n\n/**\n * Generic location marker\n */\nconst SmartMarker: React.FC<SmartMarkerProps> = ({ id, map, geoUri, roomMember, useMemberColor, tooltip }) => {\n    const { onElementRef } = useMapMarker(map, geoUri);\n\n    return (\n        // maplibregl hijacks the Marker dom element\n        // and removes it from the dom when the maplibregl.Marker instance\n        // is removed\n        // wrap in a span so that react doesn't get confused\n        // when trying to unmount this component\n        <span>\n            <Marker\n                ref={onElementRef}\n                id={id}\n                roomMember={roomMember}\n                useMemberColor={useMemberColor}\n                tooltip={tooltip}\n            />\n        </span>\n    );\n};\n\nexport default SmartMarker;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport * as maplibregl from \"maplibre-gl\";\nimport { type MatrixClient } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport { _t } from \"../../languageHandler\";\nimport { findMapStyleUrl } from \"./findMapStyleUrl\";\nimport { LocationShareError } from \"./LocationShareErrors\";\n\nexport const createMap = (\n    client: MatrixClient,\n    interactive: boolean,\n    bodyId: string,\n    onError?: (error: Error) => void,\n): maplibregl.Map => {\n    try {\n        const styleUrl = findMapStyleUrl(client);\n\n        const map = new maplibregl.Map({\n            container: bodyId,\n            style: styleUrl,\n            zoom: 15,\n            interactive,\n            attributionControl: false,\n            locale: {\n                \"AttributionControl.ToggleAttribution\": _t(\"location_sharing|toggle_attribution\"),\n                \"AttributionControl.MapFeedback\": _t(\"location_sharing|map_feedback\"),\n                \"FullscreenControl.Enter\": _t(\"action|enter_fullscreen\"),\n                \"FullscreenControl.Exit\": _t(\"action|exit_fullscreeen\"),\n                \"GeolocateControl.FindMyLocation\": _t(\"location_sharing|find_my_location\"),\n                \"GeolocateControl.LocationNotAvailable\": _t(\"location_sharing|location_not_available\"),\n                \"LogoControl.Title\": _t(\"location_sharing|mapbox_logo\"),\n                \"NavigationControl.ResetBearing\": _t(\"location_sharing|reset_bearing\"),\n                \"NavigationControl.ZoomIn\": _t(\"action|zoom_in\"),\n                \"NavigationControl.ZoomOut\": _t(\"action|zoom_out\"),\n            },\n        });\n        map.addControl(new maplibregl.AttributionControl(), \"top-right\");\n\n        map.on(\"error\", (e) => {\n            logger.error(\"Failed to load map: check map_style_url in config.json has a valid URL and API key\", e.error);\n            onError?.(new Error(LocationShareError.MapStyleUrlNotReachable));\n        });\n\n        return map;\n    } catch (e) {\n        logger.error(\"Failed to render map\", e);\n        const errorMessage = (e as Error)?.message;\n        if (errorMessage.includes(\"Failed to initialize WebGL\")) throw new Error(LocationShareError.WebGLNotEnabled);\n        throw e;\n    }\n};\n\nexport const createMarker = (coords: GeolocationCoordinates, element: HTMLElement): maplibregl.Marker => {\n    const marker = new maplibregl.Marker({\n        element,\n        anchor: \"bottom\",\n        offset: [0, -1],\n    }).setLngLat({ lon: coords.longitude, lat: coords.latitude });\n    return marker;\n};\n"],"names":["OptionalTooltip","tooltip","children","isVisible","setIsVisible","useState","React","onMouseEnter","show","onClick","e","stopPropagation","onMouseLeave","hide","__WEBPACK_DEFAULT_EXPORT__","Marker","id","roomMember","useMemberColor","ref","memberColorClass","getUserNameColorClass","userId","className","classNames","mx_Marker_defaultColor","MemberAvatar","member","size","viewUserOnClick","hideTitle","LocationIcon","SmartMarker","map","geoUri","onElementRef","useMapMarker","marker","setMarker","useCallback","element","coords","parseGeoUri","newMarker","createMarker","addTo","useEffect","setLngLat","lon","longitude","lat","latitude","remove","maplibregl","anchor","offset","createMap","client","interactive","bodyId","onError","styleUrl","findMapStyleUrl","container","style","zoom","attributionControl","locale","_t","addControl","on","logger","error","Error","LocationShareError","MapStyleUrlNotReachable","message","includes","WebGLNotEnabled"],"sourceRoot":""}