element-web-synapse01pim.gr.jp

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

4441.js.map (53143B)


      1 {"version":3,"file":"bundles/12c8185ea2689492c07b/4441.js","mappings":"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","sources":["webpack://element-web/./src/components/views/beacon/BeaconMarker.tsx","webpack://element-web/./src/utils/beacon/bounds.ts","webpack://element-web/./src/components/views/beacon/ShareLatestLocation.tsx","webpack://element-web/./src/components/views/beacon/BeaconListItem.tsx","webpack://element-web/./src/components/views/beacon/DialogSidebar.tsx","webpack://element-web/./src/components/views/beacon/DialogOwnBeaconStatus.tsx","webpack://element-web/./src/components/views/beacon/BeaconStatusTooltip.tsx","webpack://element-web/./src/components/views/beacon/BeaconViewDialog.tsx","webpack://element-web/./src/utils/beacon/useLiveBeacons.ts","webpack://element-web/./src/components/views/location/Map.tsx","webpack://element-web/./src/utils/location/useMap.ts","webpack://element-web/./src/components/views/location/ZoomButtons.tsx","webpack://element-web/./src/utils/location/map.ts","webpack://element-web/javascript/node_modules/.pnpm/source-map-loader@5.0.0_webpack@5.108.4/node_modules/source-map-loader/dist/node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/minus.js","webpack://element-web/javascript/node_modules/.pnpm/source-map-loader@5.0.0_webpack@5.108.4/node_modules/source-map-loader/dist/node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/plus.js"],"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 ReactNode, useContext } from \"react\";\nimport { type Beacon, BeaconEvent, LocationAssetType } from \"matrix-js-sdk/src/matrix\";\n\nimport type * as maplibregl from \"maplibre-gl\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { useEventEmitterState } from \"../../../hooks/useEventEmitter\";\nimport { SmartMarker } from \"../location\";\n\ninterface Props {\n    map: maplibregl.Map;\n    beacon: Beacon;\n    tooltip?: ReactNode;\n}\n\n/**\n * Updates a map SmartMarker with latest location from given beacon\n */\nconst BeaconMarker: React.FC<Props> = ({ map, beacon, tooltip }) => {\n    const latestLocationState = useEventEmitterState(\n        beacon,\n        BeaconEvent.LocationUpdate,\n        () => beacon.latestLocationState,\n    );\n    const matrixClient = useContext(MatrixClientContext);\n    const room = matrixClient.getRoom(beacon.roomId);\n\n    if (!latestLocationState || !beacon.isLive) {\n        return null;\n    }\n\n    const geoUri = latestLocationState.uri || \"\";\n\n    const assetTypeIsSelf = beacon.beaconInfo?.assetType === LocationAssetType.Self;\n    const _member = room?.getMember(beacon.beaconInfoOwner);\n\n    const markerRoomMember = assetTypeIsSelf && _member ? _member : undefined;\n\n    return (\n        <SmartMarker\n            map={map}\n            id={beacon.identifier}\n            geoUri={geoUri}\n            roomMember={markerRoomMember}\n            tooltip={tooltip}\n            useMemberColor\n        />\n    );\n};\n\nexport default BeaconMarker;\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 { type Beacon } from \"matrix-js-sdk/src/matrix\";\n\nimport { filterBoolean } from \"../arrays\";\nimport { parseGeoUri } from \"../location\";\n\nexport type Bounds = {\n    north: number;\n    east: number;\n    west: number;\n    south: number;\n};\n\n/**\n * Get the geo bounds of given list of beacons\n *\n * Latitude:\n * equator: 0, North pole: 90, South pole -90\n * Longitude:\n * Prime Meridian (Greenwich): 0\n * east of Greenwich has a positive longitude, max 180\n * west of Greenwich has a negative longitude, min -180\n */\nexport const getBeaconBounds = (beacons: Beacon[]): Bounds | undefined => {\n    const coords = filterBoolean<GeolocationCoordinates>(\n        beacons.map((beacon) =>\n            !!beacon.latestLocationState?.uri ? parseGeoUri(beacon.latestLocationState.uri) : undefined,\n        ),\n    );\n\n    if (!coords.length) {\n        return;\n    }\n\n    // sort descending\n    const sortedByLat = [...coords].sort((left, right) => right.latitude - left.latitude);\n    const sortedByLong = [...coords].sort((left, right) => right.longitude - left.longitude);\n\n    if (sortedByLat.length < 1 || sortedByLong.length < 1) return;\n\n    return {\n        north: sortedByLat[0]!.latitude,\n        south: sortedByLat[sortedByLat.length - 1]!.latitude,\n        east: sortedByLong[0]!.longitude,\n        west: sortedByLong[sortedByLong.length - 1]!.longitude,\n    };\n};\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, { useEffect, useState } from \"react\";\nimport { type ContentHelpers } from \"matrix-js-sdk/src/matrix\";\nimport { Tooltip } from \"@vector-im/compound-web\";\nimport { PopOutIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { _t } from \"../../../languageHandler\";\nimport { makeMapSiteLink, parseGeoUri } from \"../../../utils/location\";\nimport CopyableText from \"../elements/CopyableText\";\n\ninterface Props {\n    latestLocationState?: ContentHelpers.BeaconLocationState;\n}\n\nconst ShareLatestLocation: React.FC<Props> = ({ latestLocationState }) => {\n    const [coords, setCoords] = useState<GeolocationCoordinates | undefined>();\n    useEffect(() => {\n        if (!latestLocationState?.uri) {\n            return;\n        }\n        const coords = parseGeoUri(latestLocationState.uri);\n        setCoords(coords);\n    }, [latestLocationState]);\n\n    if (!latestLocationState || !coords) {\n        return null;\n    }\n\n    const latLonString = `${coords.latitude},${coords.longitude}`;\n    const mapLink = makeMapSiteLink(coords);\n\n    return (\n        <>\n            <Tooltip label={_t(\"timeline|context_menu|open_in_osm\")}>\n                <a data-testid=\"open-location-in-osm\" href={mapLink} target=\"_blank\" rel=\"noreferrer noopener\">\n                    <PopOutIcon className=\"mx_ShareLatestLocation_icon\" />\n                </a>\n            </Tooltip>\n            <CopyableText className=\"mx_ShareLatestLocation_copy\" border={false} getTextToCopy={() => latLonString} />\n        </>\n    );\n};\n\nexport default ShareLatestLocation;\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 HTMLProps, useContext } from \"react\";\nimport { type Beacon, BeaconEvent, LocationAssetType } from \"matrix-js-sdk/src/matrix\";\nimport { humanizeTime } from \"@element-hq/web-shared-components\";\n\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { useEventEmitterState } from \"../../../hooks/useEventEmitter\";\nimport { preventDefaultWrapper } from \"../../../utils/NativeEventUtils\";\nimport { _t } from \"../../../languageHandler\";\nimport MemberAvatar from \"../avatars/MemberAvatar\";\nimport BeaconStatus from \"./BeaconStatus\";\nimport { BeaconDisplayStatus } from \"./displayStatus\";\nimport StyledLiveBeaconIcon from \"./StyledLiveBeaconIcon\";\nimport ShareLatestLocation from \"./ShareLatestLocation\";\n\ninterface Props {\n    beacon: Beacon;\n}\n\nconst BeaconListItem: React.FC<Props & HTMLProps<HTMLLIElement>> = ({ beacon, ...rest }) => {\n    const latestLocationState = useEventEmitterState(\n        beacon,\n        BeaconEvent.LocationUpdate,\n        () => beacon.latestLocationState,\n    );\n    const matrixClient = useContext(MatrixClientContext);\n    const room = matrixClient.getRoom(beacon.roomId);\n\n    if (!latestLocationState || !beacon.isLive || !room) {\n        return null;\n    }\n\n    const isSelfLocation = beacon.beaconInfo?.assetType === LocationAssetType.Self;\n    const beaconMember = isSelfLocation ? room.getMember(beacon.beaconInfoOwner) : null;\n\n    const humanizedUpdateTime = (latestLocationState.timestamp && humanizeTime(latestLocationState.timestamp)) || \"\";\n\n    return (\n        <li className=\"mx_BeaconListItem\" {...rest}>\n            {isSelfLocation ? (\n                <MemberAvatar className=\"mx_BeaconListItem_avatar\" member={beaconMember} size=\"32px\" />\n            ) : (\n                <StyledLiveBeaconIcon className=\"mx_BeaconListItem_avatarIcon\" />\n            )}\n            <div className=\"mx_BeaconListItem_info\">\n                <BeaconStatus\n                    className=\"mx_BeaconListItem_status\"\n                    beacon={beacon}\n                    label={beaconMember?.name || beacon.beaconInfo?.description || beacon.beaconInfoOwner}\n                    displayStatus={BeaconDisplayStatus.Active}\n                >\n                    {/* eat events from interactive share buttons\n                so parent click handlers are not triggered */}\n                    <div className=\"mx_BeaconListItem_interactions\" onClick={preventDefaultWrapper(() => {})}>\n                        <ShareLatestLocation latestLocationState={latestLocationState} />\n                    </div>\n                </BeaconStatus>\n                <span className=\"mx_BeaconListItem_lastUpdated\">\n                    {_t(\"location_sharing|live_update_time\", { humanizedUpdateTime })}\n                </span>\n            </div>\n        </li>\n    );\n};\n\nexport default BeaconListItem;\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 from \"react\";\nimport { type Beacon } from \"matrix-js-sdk/src/matrix\";\nimport CloseIcon from \"@vector-im/compound-design-tokens/assets/web/icons/close\";\n\nimport { _t } from \"../../../languageHandler\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport Heading from \"../typography/Heading\";\nimport BeaconListItem from \"./BeaconListItem\";\n\ninterface Props {\n    beacons: Beacon[];\n    requestClose: () => void;\n    onBeaconClick: (beacon: Beacon) => void;\n}\n\nconst DialogSidebar: React.FC<Props> = ({ beacons, onBeaconClick, requestClose }) => {\n    return (\n        <div className=\"mx_DialogSidebar\">\n            <div className=\"mx_DialogSidebar_header\">\n                <Heading size=\"4\">{_t(\"action|view_list\")}</Heading>\n                <AccessibleButton\n                    className=\"mx_DialogSidebar_closeButton\"\n                    onClick={requestClose}\n                    title={_t(\"location_sharing|close_sidebar\")}\n                    data-testid=\"dialog-sidebar-close\"\n                >\n                    <CloseIcon className=\"mx_DialogSidebar_closeButtonIcon\" height=\"24px\" width=\"24px\" />\n                </AccessibleButton>\n            </div>\n            {beacons?.length ? (\n                <ol className=\"mx_DialogSidebar_list\">\n                    {beacons.map((beacon) => (\n                        <BeaconListItem key={beacon.identifier} beacon={beacon} onClick={() => onBeaconClick(beacon)} />\n                    ))}\n                </ol>\n            ) : (\n                <div className=\"mx_DialogSidebar_noResults\">{_t(\"location_sharing|live_locations_empty\")}</div>\n            )}\n        </div>\n    );\n};\n\nexport default DialogSidebar;\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, { useContext } from \"react\";\nimport { type Room, type Beacon, LocationAssetType } from \"matrix-js-sdk/src/matrix\";\n\nimport { OwnBeaconStore, OwnBeaconStoreEvent } from \"../../../stores/OwnBeaconStore\";\nimport { useEventEmitterState } from \"../../../hooks/useEventEmitter\";\nimport OwnBeaconStatus from \"./OwnBeaconStatus\";\nimport { BeaconDisplayStatus } from \"./displayStatus\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport MemberAvatar from \"../avatars/MemberAvatar\";\nimport StyledLiveBeaconIcon from \"./StyledLiveBeaconIcon\";\n\ninterface Props {\n    roomId: Room[\"roomId\"];\n}\n\nconst useOwnBeacon = (roomId: Room[\"roomId\"]): Beacon | undefined => {\n    const ownBeacon = useEventEmitterState(OwnBeaconStore.instance, OwnBeaconStoreEvent.LivenessChange, () => {\n        const [ownBeaconId] = OwnBeaconStore.instance.getLiveBeaconIds(roomId);\n        return OwnBeaconStore.instance.getBeaconById(ownBeaconId);\n    });\n\n    return ownBeacon;\n};\n\nconst DialogOwnBeaconStatus: React.FC<Props> = ({ roomId }) => {\n    const beacon = useOwnBeacon(roomId);\n\n    const matrixClient = useContext(MatrixClientContext);\n    const room = matrixClient.getRoom(roomId);\n\n    if (!beacon?.isLive || !room) {\n        return null;\n    }\n\n    const isSelfLocation = beacon.beaconInfo?.assetType === LocationAssetType.Self;\n    const beaconMember = isSelfLocation ? room.getMember(beacon.beaconInfoOwner) : null;\n\n    return (\n        <div className=\"mx_DialogOwnBeaconStatus\">\n            {isSelfLocation ? (\n                <MemberAvatar className=\"mx_DialogOwnBeaconStatus_avatar\" member={beaconMember} size=\"32px\" />\n            ) : (\n                <StyledLiveBeaconIcon className=\"mx_DialogOwnBeaconStatus_avatarIcon\" />\n            )}\n            <OwnBeaconStatus\n                className=\"mx_DialogOwnBeaconStatus_status\"\n                beacon={beacon}\n                displayStatus={BeaconDisplayStatus.Active}\n            />\n        </div>\n    );\n};\n\nexport default DialogOwnBeaconStatus;\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, { useContext } from \"react\";\nimport { type Beacon, LocationAssetType } from \"matrix-js-sdk/src/matrix\";\n\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport BeaconStatus from \"./BeaconStatus\";\nimport { BeaconDisplayStatus } from \"./displayStatus\";\nimport ShareLatestLocation from \"./ShareLatestLocation\";\n\ninterface Props {\n    beacon: Beacon;\n}\n\nconst useBeaconName = (beacon: Beacon): string | undefined => {\n    const matrixClient = useContext(MatrixClientContext);\n\n    if (beacon.beaconInfo?.assetType !== LocationAssetType.Self) {\n        return beacon.beaconInfo?.description;\n    }\n    const room = matrixClient.getRoom(beacon.roomId);\n    const member = room?.getMember(beacon.beaconInfoOwner);\n\n    return member?.rawDisplayName || beacon.beaconInfoOwner;\n};\n\nconst BeaconStatusTooltip: React.FC<Props> = ({ beacon }) => {\n    const label = useBeaconName(beacon);\n\n    return (\n        <div className=\"mx_BeaconStatusTooltip\">\n            <BeaconStatus\n                beacon={beacon}\n                label={label}\n                displayStatus={BeaconDisplayStatus.Active}\n                displayLiveTimeRemaining\n                className=\"mx_BeaconStatusTooltip_inner\"\n            >\n                <ShareLatestLocation latestLocationState={beacon.latestLocationState} />\n            </BeaconStatus>\n        </div>\n    );\n};\n\nexport default BeaconStatusTooltip;\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, { useState, useEffect } from \"react\";\nimport { type MatrixClient, type Beacon, type Room } from \"matrix-js-sdk/src/matrix\";\n\nimport type * as maplibregl from \"maplibre-gl\";\nimport { Icon as LiveLocationIcon } from \"../../../../res/img/location/live-location.svg\";\nimport { useLiveBeacons } from \"../../../utils/beacon/useLiveBeacons\";\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport BaseDialog from \"../dialogs/BaseDialog\";\nimport Map from \"../location/Map\";\nimport ZoomButtons from \"../location/ZoomButtons\";\nimport BeaconMarker from \"./BeaconMarker\";\nimport { type Bounds, getBeaconBounds } from \"../../../utils/beacon/bounds\";\nimport { getGeoUri } from \"../../../utils/beacon\";\nimport { _t } from \"../../../languageHandler\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport DialogSidebar from \"./DialogSidebar\";\nimport DialogOwnBeaconStatus from \"./DialogOwnBeaconStatus\";\nimport BeaconStatusTooltip from \"./BeaconStatusTooltip\";\nimport MapFallback from \"../location/MapFallback\";\nimport { MapError } from \"../location/MapError\";\nimport { type LocationShareError } from \"../../../utils/location\";\n\nexport interface IProps {\n    roomId: Room[\"roomId\"];\n    matrixClient: MatrixClient;\n    // open the map centered on this beacon's location\n    initialFocusedBeacon?: Beacon;\n    onFinished(this: void): void;\n}\n\n// track the 'focused time' as ts\n// to make it possible to refocus the same beacon\n// as the beacon location may change\n// or the map may move around\ninterface FocusedBeaconState {\n    ts: number;\n    beacon?: Beacon;\n}\n\nconst getBoundsCenter = (bounds?: Bounds): string | undefined => {\n    if (!bounds) {\n        return;\n    }\n    return getGeoUri({\n        latitude: (bounds.north + bounds.south) / 2,\n        longitude: (bounds.east + bounds.west) / 2,\n        timestamp: Date.now(),\n    });\n};\n\nconst useMapPosition = (\n    liveBeacons: Beacon[],\n    { beacon, ts }: FocusedBeaconState,\n): {\n    bounds?: Bounds;\n    centerGeoUri?: string;\n} => {\n    const [bounds, setBounds] = useState<Bounds | undefined>(getBeaconBounds(liveBeacons));\n    const [centerGeoUri, setCenterGeoUri] = useState<string | undefined>(\n        beacon?.latestLocationState?.uri || getBoundsCenter(bounds),\n    );\n\n    useEffect(() => {\n        if (\n            // this check ignores the first initial focused beacon state\n            // as centering logic on map zooms to show everything\n            // instead of focusing down\n            ts !== 0 &&\n            // only set focus to a known location\n            beacon?.latestLocationState?.uri\n        ) {\n            // append custom `mxTs` parameter to geoUri\n            // so map is triggered to refocus on this uri\n            // event if it was previously the center geouri\n            // but the map have moved/zoomed\n            setCenterGeoUri(`${beacon?.latestLocationState?.uri};mxTs=${Date.now()}`);\n            setBounds(getBeaconBounds([beacon]));\n        }\n    }, [beacon, ts]);\n\n    return { bounds, centerGeoUri };\n};\n\n/**\n * Dialog to view live beacons maximised\n */\nconst BeaconViewDialog: React.FC<IProps> = ({ initialFocusedBeacon, roomId, matrixClient, onFinished }) => {\n    const liveBeacons = useLiveBeacons(roomId, matrixClient);\n    const [focusedBeaconState, setFocusedBeaconState] = useState<FocusedBeaconState>({\n        beacon: initialFocusedBeacon,\n        ts: 0,\n    });\n\n    const [isSidebarOpen, setSidebarOpen] = useState(false);\n\n    const { bounds, centerGeoUri } = useMapPosition(liveBeacons, focusedBeaconState);\n\n    const [mapDisplayError, setMapDisplayError] = useState<unknown>();\n\n    // automatically open the sidebar if there is no map to see\n    useEffect(() => {\n        if (mapDisplayError) {\n            setSidebarOpen(true);\n        }\n    }, [mapDisplayError]);\n\n    const onBeaconListItemClick = (beacon: Beacon): void => {\n        setFocusedBeaconState({ beacon, ts: Date.now() });\n    };\n\n    const hasOwnBeacon =\n        liveBeacons.filter((beacon) => beacon?.beaconInfoOwner === matrixClient.getUserId()).length > 0;\n\n    return (\n        <BaseDialog className=\"mx_BeaconViewDialog\" onFinished={onFinished} fixedWidth={false}>\n            <MatrixClientContext.Provider value={matrixClient}>\n                {centerGeoUri && !mapDisplayError && (\n                    <Map\n                        id=\"mx_BeaconViewDialog\"\n                        bounds={bounds}\n                        centerGeoUri={centerGeoUri}\n                        interactive\n                        onError={setMapDisplayError}\n                        className=\"mx_BeaconViewDialog_map\"\n                        allowGeolocate={!hasOwnBeacon}\n                    >\n                        {({ map }: { map: maplibregl.Map }) => (\n                            <>\n                                {liveBeacons.map((beacon) => (\n                                    <BeaconMarker\n                                        key={beacon.identifier}\n                                        map={map}\n                                        beacon={beacon}\n                                        tooltip={<BeaconStatusTooltip beacon={beacon} />}\n                                    />\n                                ))}\n                                <ZoomButtons map={map} />\n                            </>\n                        )}\n                    </Map>\n                )}\n                {mapDisplayError instanceof Error && (\n                    <MapError error={mapDisplayError.message as LocationShareError} isMinimised />\n                )}\n                {!centerGeoUri && !mapDisplayError && (\n                    <MapFallback data-testid=\"beacon-view-dialog-map-fallback\" className=\"mx_BeaconViewDialog_map\">\n                        <span className=\"mx_BeaconViewDialog_mapFallbackMessage\">\n                            {_t(\"location_sharing|live_locations_empty\")}\n                        </span>\n                        <AccessibleButton\n                            kind=\"primary\"\n                            onClick={onFinished}\n                            data-testid=\"beacon-view-dialog-fallback-close\"\n                        >\n                            {_t(\"action|close\")}\n                        </AccessibleButton>\n                    </MapFallback>\n                )}\n                {isSidebarOpen ? (\n                    <DialogSidebar\n                        beacons={liveBeacons}\n                        onBeaconClick={onBeaconListItemClick}\n                        requestClose={() => setSidebarOpen(false)}\n                    />\n                ) : (\n                    <AccessibleButton\n                        kind=\"primary\"\n                        onClick={() => setSidebarOpen(true)}\n                        data-testid=\"beacon-view-dialog-open-sidebar\"\n                        className=\"mx_BeaconViewDialog_viewListButton\"\n                    >\n                        <LiveLocationIcon height={12} />\n                        &nbsp;\n                        {_t(\"action|view_list\")}\n                    </AccessibleButton>\n                )}\n                <DialogOwnBeaconStatus roomId={roomId} />\n            </MatrixClientContext.Provider>\n        </BaseDialog>\n    );\n};\n\nexport default BeaconViewDialog;\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 { type Beacon, type Room, RoomStateEvent, type MatrixClient } from \"matrix-js-sdk/src/matrix\";\n\nimport { useEventEmitterState } from \"../../hooks/useEventEmitter\";\n\n/**\n * Returns an array of all live beacon ids for a given room\n *\n * Beacons are removed from array when they become inactive\n */\nexport const useLiveBeacons = (roomId: Room[\"roomId\"], matrixClient: MatrixClient): Beacon[] => {\n    const room = matrixClient.getRoom(roomId);\n\n    const liveBeacons = useEventEmitterState(\n        room?.currentState,\n        RoomStateEvent.BeaconLiveness,\n        () =>\n            room?.currentState?.liveBeaconIds.map(\n                (beaconIdentifier) => room.currentState.beacons.get(beaconIdentifier)!,\n            ) || [],\n    );\n\n    return liveBeacons;\n};\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, useContext, useEffect, useState } from \"react\";\nimport classNames from \"classnames\";\nimport * as maplibregl from \"maplibre-gl\";\nimport { ClientEvent, type IClientWellKnown } from \"matrix-js-sdk/src/matrix\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\n\nimport MatrixClientContext from \"../../../contexts/MatrixClientContext\";\nimport { useEventEmitterState } from \"../../../hooks/useEventEmitter\";\nimport { parseGeoUri, positionFailureMessage } from \"../../../utils/location\";\nimport { tileServerFromWellKnown } from \"../../../utils/WellKnownUtils\";\nimport { useMap } from \"../../../utils/location/useMap\";\nimport { type Bounds } from \"../../../utils/beacon/bounds\";\nimport Modal from \"../../../Modal\";\nimport ErrorDialog from \"../dialogs/ErrorDialog\";\nimport { _t } from \"../../../languageHandler\";\n\nconst useMapWithStyle = ({\n    id,\n    centerGeoUri,\n    onError,\n    interactive,\n    bounds,\n    allowGeolocate,\n}: {\n    id: string;\n    centerGeoUri?: string;\n    onError?(this: void, error: Error): void;\n    interactive?: boolean;\n    bounds?: Bounds;\n    allowGeolocate?: boolean;\n}): {\n    map: maplibregl.Map | undefined;\n    bodyId: string;\n} => {\n    const bodyId = `mx_Map_${id}`;\n\n    // style config\n    const context = useContext(MatrixClientContext);\n    const mapStyleUrl = useEventEmitterState(\n        context,\n        ClientEvent.ClientWellKnown,\n        (clientWellKnown: IClientWellKnown) => tileServerFromWellKnown(clientWellKnown)?.[\"map_style_url\"],\n    );\n\n    const map = useMap({ interactive, bodyId, onError });\n\n    useEffect(() => {\n        if (mapStyleUrl && map) {\n            map.setStyle(mapStyleUrl);\n        }\n    }, [mapStyleUrl, map]);\n\n    useEffect(() => {\n        if (map && centerGeoUri) {\n            try {\n                const coords = parseGeoUri(centerGeoUri);\n                if (!coords) {\n                    throw new Error(\"Invalid geo URI\");\n                }\n                map.setCenter({ lon: coords.longitude, lat: coords.latitude });\n            } catch (e) {\n                logger.error(\"Could not set map center\", e);\n            }\n        }\n    }, [map, centerGeoUri]);\n\n    useEffect(() => {\n        if (map && bounds) {\n            try {\n                const lngLatBounds = new maplibregl.LngLatBounds(\n                    [bounds.west, bounds.south],\n                    [bounds.east, bounds.north],\n                );\n                map.fitBounds(lngLatBounds, { padding: 100, maxZoom: 15 });\n            } catch (e) {\n                logger.error(\"Invalid map bounds\", e);\n            }\n        }\n    }, [map, bounds]);\n\n    const [geolocate, setGeolocate] = useState<maplibregl.GeolocateControl | null>(null);\n\n    useEffect(() => {\n        if (!map) {\n            return;\n        }\n        if (allowGeolocate && !geolocate) {\n            const geolocate = new maplibregl.GeolocateControl({\n                positionOptions: {\n                    enableHighAccuracy: true,\n                },\n                trackUserLocation: false,\n            });\n            setGeolocate(geolocate);\n            map.addControl(geolocate);\n        }\n        if (!allowGeolocate && geolocate) {\n            map.removeControl(geolocate);\n            setGeolocate(null);\n        }\n    }, [map, geolocate, allowGeolocate]);\n\n    useEffect(() => {\n        if (geolocate) {\n            geolocate.on(\"error\", onGeolocateError);\n            return () => {\n                geolocate.off(\"error\", onGeolocateError);\n            };\n        }\n    }, [geolocate]);\n\n    return {\n        map,\n        bodyId,\n    };\n};\n\nconst onGeolocateError = (e: GeolocationPositionError): void => {\n    logger.error(\"Could not fetch location\", e);\n    Modal.createDialog(ErrorDialog, {\n        title: _t(\"location_sharing|error_fetch_location\"),\n        description: positionFailureMessage(e.code) ?? \"\",\n    });\n};\n\nexport interface MapProps {\n    id: string;\n    interactive?: boolean;\n    /**\n     * set map center to geoUri coords\n     * Center will only be set to valid geoUri\n     * this prop is only simply diffed by useEffect, so to trigger *recentering* of the same geoUri\n     * append the uri with a var not used by the geoUri spec\n     * eg a timestamp: `geo:54,42;mxTs=123`\n     */\n    centerGeoUri?: string;\n    bounds?: Bounds;\n    className?: string;\n    allowGeolocate?: boolean;\n    onClick?: () => void;\n    onError?: (error: Error) => void;\n    children?: (renderProps: { map: maplibregl.Map }) => ReactNode;\n}\n\nconst MapComponent: React.FC<MapProps> = ({\n    bounds,\n    centerGeoUri,\n    children,\n    className,\n    allowGeolocate,\n    id,\n    interactive,\n    onError,\n    onClick,\n}) => {\n    const { map, bodyId } = useMapWithStyle({ centerGeoUri, onError, id, interactive, bounds, allowGeolocate });\n\n    const onMapClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent>): void => {\n        // Eat click events when clicking the attribution button\n        const target = event.target as Element;\n        if (target.classList.contains(\"maplibregl-ctrl-attrib-button\")) {\n            return;\n        }\n\n        onClick?.();\n    };\n\n    return (\n        <div className={classNames(\"mx_Map\", className)} id={bodyId} onClick={onMapClick}>\n            {!!children && !!map && children({ map })}\n        </div>\n    );\n};\n\nexport default MapComponent;\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 { useEffect, useState } from \"react\";\n\nimport type { Map as MapLibreMap } from \"maplibre-gl\";\nimport { createMap } from \"./map\";\nimport { useMatrixClientContext } from \"../../contexts/MatrixClientContext\";\n\ninterface UseMapProps {\n    bodyId: string;\n    onError?: (error: Error) => void;\n    interactive?: boolean;\n}\n\n/**\n * Create a map instance\n * Add listeners for errors\n * Make sure `onError` has a stable reference\n * As map is recreated on changes to it\n */\nexport const useMap = ({ interactive, bodyId, onError }: UseMapProps): MapLibreMap | undefined => {\n    const cli = useMatrixClientContext();\n    const [map, setMap] = useState<MapLibreMap>();\n\n    useEffect(\n        () => {\n            let map: MapLibreMap | undefined;\n            try {\n                map = createMap(cli, !!interactive, bodyId, onError);\n                setMap(map);\n            } catch (error) {\n                console.error(\"Error encountered in useMap\", error);\n                if (error instanceof Error) {\n                    onError?.(error);\n                }\n            }\n            return () => {\n                if (map) {\n                    map.remove();\n                    setMap(undefined);\n                }\n            };\n        },\n        // map is excluded as a dependency\n        [cli, interactive, bodyId, onError],\n    );\n\n    return map;\n};\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 from \"react\";\nimport { PlusIcon, MinusIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport type * as maplibregl from \"maplibre-gl\";\nimport { _t } from \"../../../languageHandler\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\n\ninterface Props {\n    map: maplibregl.Map;\n}\n\nconst ZoomButtons: React.FC<Props> = ({ map }) => {\n    const onZoomIn = (): void => {\n        map.zoomIn();\n    };\n\n    const onZoomOut = (): void => {\n        map.zoomOut();\n    };\n\n    return (\n        <div className=\"mx_ZoomButtons\">\n            <AccessibleButton\n                onClick={onZoomIn}\n                data-testid=\"map-zoom-in-button\"\n                title={_t(\"action|zoom_in\")}\n                className=\"mx_ZoomButtons_button\"\n            >\n                <PlusIcon className=\"mx_ZoomButtons_icon\" />\n            </AccessibleButton>\n            <AccessibleButton\n                onClick={onZoomOut}\n                data-testid=\"map-zoom-out-button\"\n                title={_t(\"action|zoom_out\")}\n                className=\"mx_ZoomButtons_button\"\n            >\n                <MinusIcon className=\"mx_ZoomButtons_icon\" />\n            </AccessibleButton>\n        </div>\n    );\n};\n\nexport default ZoomButtons;\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","import { forwardRef } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction MinusIcon(props, ref) {\n  return /*#__PURE__*/_jsx(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: /*#__PURE__*/_jsx(\"path\", {\n      d: \"M6 13a.97.97 0 0 1-.713-.287A.97.97 0 0 1 5 12q0-.424.287-.713A.97.97 0 0 1 6 11h12q.424 0 .712.287.288.288.288.713 0 .424-.288.713A.97.97 0 0 1 18 13z\"\n    })\n  });\n}\n;\nMinusIcon.displayName = \"MinusIcon\";\nexport default forwardRef(MinusIcon);","import { forwardRef } from \"react\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction PlusIcon(props, ref) {\n  return /*#__PURE__*/_jsx(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: \"1em\",\n    height: \"1em\",\n    fill: \"currentColor\",\n    viewBox: \"0 0 24 24\",\n    ref: ref,\n    ...props,\n    children: /*#__PURE__*/_jsx(\"path\", {\n      d: \"M11 13H6a.97.97 0 0 1-.713-.287A.97.97 0 0 1 5 12q0-.424.287-.713A.97.97 0 0 1 6 11h5V6q0-.424.287-.713A.97.97 0 0 1 12 5q.424 0 .713.287Q13 5.576 13 6v5h5q.424 0 .712.287.288.288.288.713 0 .424-.288.713A.97.97 0 0 1 18 13h-5v5q0 .424-.287.712A.97.97 0 0 1 12 19a.97.97 0 0 1-.713-.288A.97.97 0 0 1 11 18z\"\n    })\n  });\n}\n;\nPlusIcon.displayName = \"PlusIcon\";\nexport default forwardRef(PlusIcon);"],"names":["beacon_BeaconMarker","BeaconMarker","map","beacon","tooltip","_beacon$beaconInfo","latestLocationState","useEventEmitterState","BeaconEvent","LocationUpdate","room","useContext","MatrixClientContext","getRoom","roomId","isLive","geoUri","uri","assetTypeIsSelf","beaconInfo","assetType","LocationAssetType","Self","_member","getMember","beaconInfoOwner","markerRoomMember","undefined","React","SmartMarker","id","identifier","roomMember","useMemberColor","getBeaconBounds","beacons","coords","filterBoolean","_beacon$latestLocatio","parseGeoUri","length","sortedByLat","sort","left","right","latitude","sortedByLong","longitude","north","south","east","west","beacon_ShareLatestLocation","ShareLatestLocation","setCoords","useState","useEffect","latLonString","mapLink","makeMapSiteLink","Tooltip","label","_t","href","target","rel","PopOutIcon","className","CopyableText","border","getTextToCopy","beacon_BeaconListItem","_ref","_beacon$beaconInfo2","rest","_objectWithoutProperties","_excluded","isSelfLocation","beaconMember","humanizedUpdateTime","timestamp","humanizeTime","_extends","MemberAvatar","member","size","StyledLiveBeaconIcon","BeaconStatus","name","description","displayStatus","BeaconDisplayStatus","Active","onClick","preventDefaultWrapper","beacon_DialogSidebar","DialogSidebar","onBeaconClick","requestClose","Heading","AccessibleButton","title","CloseIcon","height","width","BeaconListItem","key","beacon_DialogOwnBeaconStatus","DialogOwnBeaconStatus","OwnBeaconStore","instance","OwnBeaconStoreEvent","LivenessChange","ownBeaconId","getLiveBeaconIds","getBeaconById","useOwnBeacon","OwnBeaconStatus","beacon_BeaconStatusTooltip","BeaconStatusTooltip","matrixClient","rawDisplayName","useBeaconName","displayLiveTimeRemaining","getBoundsCenter","bounds","getGeoUri","Date","now","beacon_BeaconViewDialog","BeaconViewDialog","initialFocusedBeacon","onFinished","liveBeacons","useLiveBeacons","currentState","RoomStateEvent","BeaconLiveness","_room$currentState","liveBeaconIds","beaconIdentifier","get","focusedBeaconState","setFocusedBeaconState","ts","isSidebarOpen","setSidebarOpen","centerGeoUri","useMapPosition","setBounds","setCenterGeoUri","_beacon$latestLocatio2","_beacon$latestLocatio3","mapDisplayError","setMapDisplayError","hasOwnBeacon","filter","getUserId","BaseDialog","fixedWidth","Provider","value","Map","interactive","onError","allowGeolocate","ZoomButtons","Error","MapError","error","message","isMinimised","MapFallback","kind","LiveLocationIcon","useMapWithStyle","bodyId","context","mapStyleUrl","ClientEvent","ClientWellKnown","clientWellKnown","_tileServerFromWellKn","tileServerFromWellKnown","useMap","cli","useMatrixClientContext","setMap","createMap","console","remove","setStyle","setCenter","lon","lat","e","logger","lngLatBounds","maplibregl","fitBounds","padding","maxZoom","geolocate","setGeolocate","positionOptions","enableHighAccuracy","trackUserLocation","addControl","removeControl","on","onGeolocateError","off","_positionFailureMessa","Modal","createDialog","ErrorDialog","positionFailureMessage","code","MapComponent","children","classNames","event","classList","contains","__WEBPACK_DEFAULT_EXPORT__","onZoomIn","zoomIn","PlusIcon","onZoomOut","zoomOut","MinusIcon","createMarker","element","anchor","offset","setLngLat","client","styleUrl","findMapStyleUrl","container","style","zoom","attributionControl","locale","LocationShareError","MapStyleUrlNotReachable","includes","WebGLNotEnabled","props","ref","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsx","xmlns","fill","viewBox","d","displayName","react__WEBPACK_IMPORTED_MODULE_0__","forwardRef"],"sourceRoot":""}