element-web-synapse01pim.gr.jp

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

8227.js.map (12196B)


      1 {"version":3,"file":"bundles/9cacd6575f4c8ee1aedb/8227.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","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","createMap","client","interactive","bodyId","onError","styleUrl","findMapStyleUrl","maplibregl","container","style","zoom","attributionControl","locale","_t","addControl","on","logger","error","Error","LocationShareError","MapStyleUrlNotReachable","message","includes","WebGLNotEnabled","anchor","offset"],"sourceRoot":""}