matrix-react-sdk
Version:
SDK for matrix.org using React
70 lines (67 loc) • 12.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createMarker = exports.createMap = void 0;
var maplibregl = _interopRequireWildcard(require("maplibre-gl"));
var _logger = require("matrix-js-sdk/src/logger");
var _languageHandler = require("../../languageHandler");
var _findMapStyleUrl = require("./findMapStyleUrl");
var _LocationShareErrors = require("./LocationShareErrors");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const createMap = (client, interactive, bodyId, onError) => {
try {
const styleUrl = (0, _findMapStyleUrl.findMapStyleUrl)(client);
const map = new maplibregl.Map({
container: bodyId,
style: styleUrl,
zoom: 15,
interactive,
attributionControl: false,
locale: {
"AttributionControl.ToggleAttribution": (0, _languageHandler._t)("location_sharing|toggle_attribution"),
"AttributionControl.MapFeedback": (0, _languageHandler._t)("location_sharing|map_feedback"),
"FullscreenControl.Enter": (0, _languageHandler._t)("action|enter_fullscreen"),
"FullscreenControl.Exit": (0, _languageHandler._t)("action|exit_fullscreeen"),
"GeolocateControl.FindMyLocation": (0, _languageHandler._t)("location_sharing|find_my_location"),
"GeolocateControl.LocationNotAvailable": (0, _languageHandler._t)("location_sharing|location_not_available"),
"LogoControl.Title": (0, _languageHandler._t)("location_sharing|mapbox_logo"),
"NavigationControl.ResetBearing": (0, _languageHandler._t)("location_sharing|reset_bearing"),
"NavigationControl.ZoomIn": (0, _languageHandler._t)("action|zoom_in"),
"NavigationControl.ZoomOut": (0, _languageHandler._t)("action|zoom_out")
}
});
map.addControl(new maplibregl.AttributionControl(), "top-right");
map.on("error", e => {
_logger.logger.error("Failed to load map: check map_style_url in config.json has a valid URL and API key", e.error);
onError?.(new Error(_LocationShareErrors.LocationShareError.MapStyleUrlNotReachable));
});
return map;
} catch (e) {
_logger.logger.error("Failed to render map", e);
const errorMessage = e?.message;
if (errorMessage.includes("Failed to initialize WebGL")) throw new Error(_LocationShareErrors.LocationShareError.WebGLNotEnabled);
throw e;
}
};
exports.createMap = createMap;
const createMarker = (coords, element) => {
const marker = new maplibregl.Marker({
element,
anchor: "bottom",
offset: [0, -1]
}).setLngLat({
lon: coords.longitude,
lat: coords.latitude
});
return marker;
};
exports.createMarker = createMarker;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXBsaWJyZWdsIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2xvZ2dlciIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfZmluZE1hcFN0eWxlVXJsIiwiX0xvY2F0aW9uU2hhcmVFcnJvcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJjcmVhdGVNYXAiLCJjbGllbnQiLCJpbnRlcmFjdGl2ZSIsImJvZHlJZCIsIm9uRXJyb3IiLCJzdHlsZVVybCIsImZpbmRNYXBTdHlsZVVybCIsIm1hcCIsIk1hcCIsImNvbnRhaW5lciIsInN0eWxlIiwiem9vbSIsImF0dHJpYnV0aW9uQ29udHJvbCIsImxvY2FsZSIsIl90IiwiYWRkQ29udHJvbCIsIkF0dHJpYnV0aW9uQ29udHJvbCIsIm9uIiwibG9nZ2VyIiwiZXJyb3IiLCJFcnJvciIsIkxvY2F0aW9uU2hhcmVFcnJvciIsIk1hcFN0eWxlVXJsTm90UmVhY2hhYmxlIiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiV2ViR0xOb3RFbmFibGVkIiwiZXhwb3J0cyIsImNyZWF0ZU1hcmtlciIsImNvb3JkcyIsImVsZW1lbnQiLCJtYXJrZXIiLCJNYXJrZXIiLCJhbmNob3IiLCJvZmZzZXQiLCJzZXRMbmdMYXQiLCJsb24iLCJsb25naXR1ZGUiLCJsYXQiLCJsYXRpdHVkZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9sb2NhdGlvbi9tYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0ICogYXMgbWFwbGlicmVnbCBmcm9tIFwibWFwbGlicmUtZ2xcIjtcbmltcG9ydCB7IE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9sb2dnZXJcIjtcblxuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgeyBmaW5kTWFwU3R5bGVVcmwgfSBmcm9tIFwiLi9maW5kTWFwU3R5bGVVcmxcIjtcbmltcG9ydCB7IExvY2F0aW9uU2hhcmVFcnJvciB9IGZyb20gXCIuL0xvY2F0aW9uU2hhcmVFcnJvcnNcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hcCA9IChcbiAgICBjbGllbnQ6IE1hdHJpeENsaWVudCxcbiAgICBpbnRlcmFjdGl2ZTogYm9vbGVhbixcbiAgICBib2R5SWQ6IHN0cmluZyxcbiAgICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZCxcbik6IG1hcGxpYnJlZ2wuTWFwID0+IHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBzdHlsZVVybCA9IGZpbmRNYXBTdHlsZVVybChjbGllbnQpO1xuXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBtYXBsaWJyZWdsLk1hcCh7XG4gICAgICAgICAgICBjb250YWluZXI6IGJvZHlJZCxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZVVybCxcbiAgICAgICAgICAgIHpvb206IDE1LFxuICAgICAgICAgICAgaW50ZXJhY3RpdmUsXG4gICAgICAgICAgICBhdHRyaWJ1dGlvbkNvbnRyb2w6IGZhbHNlLFxuICAgICAgICAgICAgbG9jYWxlOiB7XG4gICAgICAgICAgICAgICAgXCJBdHRyaWJ1dGlvbkNvbnRyb2wuVG9nZ2xlQXR0cmlidXRpb25cIjogX3QoXCJsb2NhdGlvbl9zaGFyaW5nfHRvZ2dsZV9hdHRyaWJ1dGlvblwiKSxcbiAgICAgICAgICAgICAgICBcIkF0dHJpYnV0aW9uQ29udHJvbC5NYXBGZWVkYmFja1wiOiBfdChcImxvY2F0aW9uX3NoYXJpbmd8bWFwX2ZlZWRiYWNrXCIpLFxuICAgICAgICAgICAgICAgIFwiRnVsbHNjcmVlbkNvbnRyb2wuRW50ZXJcIjogX3QoXCJhY3Rpb258ZW50ZXJfZnVsbHNjcmVlblwiKSxcbiAgICAgICAgICAgICAgICBcIkZ1bGxzY3JlZW5Db250cm9sLkV4aXRcIjogX3QoXCJhY3Rpb258ZXhpdF9mdWxsc2NyZWVlblwiKSxcbiAgICAgICAgICAgICAgICBcIkdlb2xvY2F0ZUNvbnRyb2wuRmluZE15TG9jYXRpb25cIjogX3QoXCJsb2NhdGlvbl9zaGFyaW5nfGZpbmRfbXlfbG9jYXRpb25cIiksXG4gICAgICAgICAgICAgICAgXCJHZW9sb2NhdGVDb250cm9sLkxvY2F0aW9uTm90QXZhaWxhYmxlXCI6IF90KFwibG9jYXRpb25fc2hhcmluZ3xsb2NhdGlvbl9ub3RfYXZhaWxhYmxlXCIpLFxuICAgICAgICAgICAgICAgIFwiTG9nb0NvbnRyb2wuVGl0bGVcIjogX3QoXCJsb2NhdGlvbl9zaGFyaW5nfG1hcGJveF9sb2dvXCIpLFxuICAgICAgICAgICAgICAgIFwiTmF2aWdhdGlvbkNvbnRyb2wuUmVzZXRCZWFyaW5nXCI6IF90KFwibG9jYXRpb25fc2hhcmluZ3xyZXNldF9iZWFyaW5nXCIpLFxuICAgICAgICAgICAgICAgIFwiTmF2aWdhdGlvbkNvbnRyb2wuWm9vbUluXCI6IF90KFwiYWN0aW9ufHpvb21faW5cIiksXG4gICAgICAgICAgICAgICAgXCJOYXZpZ2F0aW9uQ29udHJvbC5ab29tT3V0XCI6IF90KFwiYWN0aW9ufHpvb21fb3V0XCIpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIG1hcC5hZGRDb250cm9sKG5ldyBtYXBsaWJyZWdsLkF0dHJpYnV0aW9uQ29udHJvbCgpLCBcInRvcC1yaWdodFwiKTtcblxuICAgICAgICBtYXAub24oXCJlcnJvclwiLCAoZSkgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiRmFpbGVkIHRvIGxvYWQgbWFwOiBjaGVjayBtYXBfc3R5bGVfdXJsIGluIGNvbmZpZy5qc29uIGhhcyBhIHZhbGlkIFVSTCBhbmQgQVBJIGtleVwiLCBlLmVycm9yKTtcbiAgICAgICAgICAgIG9uRXJyb3I/LihuZXcgRXJyb3IoTG9jYXRpb25TaGFyZUVycm9yLk1hcFN0eWxlVXJsTm90UmVhY2hhYmxlKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoXCJGYWlsZWQgdG8gcmVuZGVyIG1hcFwiLCBlKTtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gKGUgYXMgRXJyb3IpPy5tZXNzYWdlO1xuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKFwiRmFpbGVkIHRvIGluaXRpYWxpemUgV2ViR0xcIikpIHRocm93IG5ldyBFcnJvcihMb2NhdGlvblNoYXJlRXJyb3IuV2ViR0xOb3RFbmFibGVkKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFya2VyID0gKGNvb3JkczogR2VvbG9jYXRpb25Db29yZGluYXRlcywgZWxlbWVudDogSFRNTEVsZW1lbnQpOiBtYXBsaWJyZWdsLk1hcmtlciA9PiB7XG4gICAgY29uc3QgbWFya2VyID0gbmV3IG1hcGxpYnJlZ2wuTWFya2VyKHtcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgYW5jaG9yOiBcImJvdHRvbVwiLFxuICAgICAgICBvZmZzZXQ6IFswLCAtMV0sXG4gICAgfSkuc2V0TG5nTGF0KHsgbG9uOiBjb29yZHMubG9uZ2l0dWRlLCBsYXQ6IGNvb3Jkcy5sYXRpdHVkZSB9KTtcbiAgICByZXR1cm4gbWFya2VyO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBQUEsVUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsZ0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBSixPQUFBO0FBQTJELFNBQUFLLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsQ0FBQUgsT0FBQSxHQUFBTCxDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQWQzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVTyxNQUFNVyxTQUFTLEdBQUdBLENBQ3JCQyxNQUFvQixFQUNwQkMsV0FBb0IsRUFDcEJDLE1BQWMsRUFDZEMsT0FBZ0MsS0FDZjtFQUNqQixJQUFJO0lBQ0EsTUFBTUMsUUFBUSxHQUFHLElBQUFDLGdDQUFlLEVBQUNMLE1BQU0sQ0FBQztJQUV4QyxNQUFNTSxHQUFHLEdBQUcsSUFBSWxDLFVBQVUsQ0FBQ21DLEdBQUcsQ0FBQztNQUMzQkMsU0FBUyxFQUFFTixNQUFNO01BQ2pCTyxLQUFLLEVBQUVMLFFBQVE7TUFDZk0sSUFBSSxFQUFFLEVBQUU7TUFDUlQsV0FBVztNQUNYVSxrQkFBa0IsRUFBRSxLQUFLO01BQ3pCQyxNQUFNLEVBQUU7UUFDSixzQ0FBc0MsRUFBRSxJQUFBQyxtQkFBRSxFQUFDLHFDQUFxQyxDQUFDO1FBQ2pGLGdDQUFnQyxFQUFFLElBQUFBLG1CQUFFLEVBQUMsK0JBQStCLENBQUM7UUFDckUseUJBQXlCLEVBQUUsSUFBQUEsbUJBQUUsRUFBQyx5QkFBeUIsQ0FBQztRQUN4RCx3QkFBd0IsRUFBRSxJQUFBQSxtQkFBRSxFQUFDLHlCQUF5QixDQUFDO1FBQ3ZELGlDQUFpQyxFQUFFLElBQUFBLG1CQUFFLEVBQUMsbUNBQW1DLENBQUM7UUFDMUUsdUNBQXVDLEVBQUUsSUFBQUEsbUJBQUUsRUFBQyx5Q0FBeUMsQ0FBQztRQUN0RixtQkFBbUIsRUFBRSxJQUFBQSxtQkFBRSxFQUFDLDhCQUE4QixDQUFDO1FBQ3ZELGdDQUFnQyxFQUFFLElBQUFBLG1CQUFFLEVBQUMsZ0NBQWdDLENBQUM7UUFDdEUsMEJBQTBCLEVBQUUsSUFBQUEsbUJBQUUsRUFBQyxnQkFBZ0IsQ0FBQztRQUNoRCwyQkFBMkIsRUFBRSxJQUFBQSxtQkFBRSxFQUFDLGlCQUFpQjtNQUNyRDtJQUNKLENBQUMsQ0FBQztJQUNGUCxHQUFHLENBQUNRLFVBQVUsQ0FBQyxJQUFJMUMsVUFBVSxDQUFDMkMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUVoRVQsR0FBRyxDQUFDVSxFQUFFLENBQUMsT0FBTyxFQUFHcEMsQ0FBQyxJQUFLO01BQ25CcUMsY0FBTSxDQUFDQyxLQUFLLENBQUMsb0ZBQW9GLEVBQUV0QyxDQUFDLENBQUNzQyxLQUFLLENBQUM7TUFDM0dmLE9BQU8sR0FBRyxJQUFJZ0IsS0FBSyxDQUFDQyx1Q0FBa0IsQ0FBQ0MsdUJBQXVCLENBQUMsQ0FBQztJQUNwRSxDQUFDLENBQUM7SUFFRixPQUFPZixHQUFHO0VBQ2QsQ0FBQyxDQUFDLE9BQU8xQixDQUFDLEVBQUU7SUFDUnFDLGNBQU0sQ0FBQ0MsS0FBSyxDQUFDLHNCQUFzQixFQUFFdEMsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0wQyxZQUFZLEdBQUkxQyxDQUFDLEVBQVkyQyxPQUFPO0lBQzFDLElBQUlELFlBQVksQ0FBQ0UsUUFBUSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsTUFBTSxJQUFJTCxLQUFLLENBQUNDLHVDQUFrQixDQUFDSyxlQUFlLENBQUM7SUFDNUcsTUFBTTdDLENBQUM7RUFDWDtBQUNKLENBQUM7QUFBQzhDLE9BQUEsQ0FBQTNCLFNBQUEsR0FBQUEsU0FBQTtBQUVLLE1BQU00QixZQUFZLEdBQUdBLENBQUNDLE1BQThCLEVBQUVDLE9BQW9CLEtBQXdCO0VBQ3JHLE1BQU1DLE1BQU0sR0FBRyxJQUFJMUQsVUFBVSxDQUFDMkQsTUFBTSxDQUFDO0lBQ2pDRixPQUFPO0lBQ1BHLE1BQU0sRUFBRSxRQUFRO0lBQ2hCQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2xCLENBQUMsQ0FBQyxDQUFDQyxTQUFTLENBQUM7SUFBRUMsR0FBRyxFQUFFUCxNQUFNLENBQUNRLFNBQVM7SUFBRUMsR0FBRyxFQUFFVCxNQUFNLENBQUNVO0VBQVMsQ0FBQyxDQUFDO0VBQzdELE9BQU9SLE1BQU07QUFDakIsQ0FBQztBQUFDSixPQUFBLENBQUFDLFlBQUEsR0FBQUEsWUFBQSIsImlnbm9yZUxpc3QiOltdfQ==