UNPKG

matrix-react-sdk

Version:
56 lines (53 loc) 6.12 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.parseGeoUri = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /* 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 parseGeoUri = uri => { function parse(s) { const ret = parseFloat(s); if (Number.isNaN(ret)) { return null; } else { return ret; } } const m = uri.match(/^\s*geo:(.*?)\s*$/); if (!m) return; const parts = m[1].split(";"); const coords = parts[0].split(","); let uncertainty = undefined; for (const param of parts.slice(1)) { const m = param.match(/u=(.*)/); if (m) uncertainty = parse(m[1]); } const latitude = parse(coords[0]); const longitude = parse(coords[1]); if (latitude === null || longitude === null) { return; } const geoCoords = { latitude: latitude, longitude: longitude, altitude: parse(coords[2]), accuracy: uncertainty, altitudeAccuracy: null, heading: null, speed: null }; return _objectSpread({ toJSON: () => geoCoords }, geoCoords); }; exports.parseGeoUri = parseGeoUri; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZUdlb1VyaSIsInVyaSIsInBhcnNlIiwicyIsInJldCIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJpc05hTiIsIm0iLCJtYXRjaCIsInBhcnRzIiwic3BsaXQiLCJjb29yZHMiLCJ1bmNlcnRhaW50eSIsInVuZGVmaW5lZCIsInBhcmFtIiwic2xpY2UiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImdlb0Nvb3JkcyIsImFsdGl0dWRlIiwiYWNjdXJhY3kiLCJhbHRpdHVkZUFjY3VyYWN5IiwiaGVhZGluZyIsInNwZWVkIiwiX29iamVjdFNwcmVhZCIsInRvSlNPTiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbG9jYXRpb24vcGFyc2VHZW9VcmkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuZXhwb3J0IGNvbnN0IHBhcnNlR2VvVXJpID0gKHVyaTogc3RyaW5nKTogR2VvbG9jYXRpb25Db29yZGluYXRlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgZnVuY3Rpb24gcGFyc2Uoczogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHJldCA9IHBhcnNlRmxvYXQocyk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4ocmV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbSA9IHVyaS5tYXRjaCgvXlxccypnZW86KC4qPylcXHMqJC8pO1xuICAgIGlmICghbSkgcmV0dXJuO1xuICAgIGNvbnN0IHBhcnRzID0gbVsxXS5zcGxpdChcIjtcIik7XG4gICAgY29uc3QgY29vcmRzID0gcGFydHNbMF0uc3BsaXQoXCIsXCIpO1xuICAgIGxldCB1bmNlcnRhaW50eTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcnRzLnNsaWNlKDEpKSB7XG4gICAgICAgIGNvbnN0IG0gPSBwYXJhbS5tYXRjaCgvdT0oLiopLyk7XG4gICAgICAgIGlmIChtKSB1bmNlcnRhaW50eSA9IHBhcnNlKG1bMV0pO1xuICAgIH1cbiAgICBjb25zdCBsYXRpdHVkZSA9IHBhcnNlKGNvb3Jkc1swXSk7XG4gICAgY29uc3QgbG9uZ2l0dWRlID0gcGFyc2UoY29vcmRzWzFdKTtcblxuICAgIGlmIChsYXRpdHVkZSA9PT0gbnVsbCB8fCBsb25naXR1ZGUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGdlb0Nvb3JkcyA9IHtcbiAgICAgICAgbGF0aXR1ZGU6IGxhdGl0dWRlISxcbiAgICAgICAgbG9uZ2l0dWRlOiBsb25naXR1ZGUhLFxuICAgICAgICBhbHRpdHVkZTogcGFyc2UoY29vcmRzWzJdKSxcbiAgICAgICAgYWNjdXJhY3k6IHVuY2VydGFpbnR5ISxcbiAgICAgICAgYWx0aXR1ZGVBY2N1cmFjeTogbnVsbCxcbiAgICAgICAgaGVhZGluZzogbnVsbCxcbiAgICAgICAgc3BlZWQ6IG51bGwsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHRvSlNPTjogKCkgPT4gZ2VvQ29vcmRzLFxuICAgICAgICAuLi5nZW9Db29yZHMsXG4gICAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFTyxNQUFNQSxXQUFXLEdBQUlDLEdBQVcsSUFBeUM7RUFDNUUsU0FBU0MsS0FBS0EsQ0FBQ0MsQ0FBUyxFQUFpQjtJQUNyQyxNQUFNQyxHQUFHLEdBQUdDLFVBQVUsQ0FBQ0YsQ0FBQyxDQUFDO0lBQ3pCLElBQUlHLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDSCxHQUFHLENBQUMsRUFBRTtNQUNuQixPQUFPLElBQUk7SUFDZixDQUFDLE1BQU07TUFDSCxPQUFPQSxHQUFHO0lBQ2Q7RUFDSjtFQUVBLE1BQU1JLENBQUMsR0FBR1AsR0FBRyxDQUFDUSxLQUFLLENBQUMsbUJBQW1CLENBQUM7RUFDeEMsSUFBSSxDQUFDRCxDQUFDLEVBQUU7RUFDUixNQUFNRSxLQUFLLEdBQUdGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUM3QixNQUFNQyxNQUFNLEdBQUdGLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUNsQyxJQUFJRSxXQUFzQyxHQUFHQyxTQUFTO0VBQ3RELEtBQUssTUFBTUMsS0FBSyxJQUFJTCxLQUFLLENBQUNNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNoQyxNQUFNUixDQUFDLEdBQUdPLEtBQUssQ0FBQ04sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUMvQixJQUFJRCxDQUFDLEVBQUVLLFdBQVcsR0FBR1gsS0FBSyxDQUFDTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDcEM7RUFDQSxNQUFNUyxRQUFRLEdBQUdmLEtBQUssQ0FBQ1UsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ2pDLE1BQU1NLFNBQVMsR0FBR2hCLEtBQUssQ0FBQ1UsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUlLLFFBQVEsS0FBSyxJQUFJLElBQUlDLFNBQVMsS0FBSyxJQUFJLEVBQUU7SUFDekM7RUFDSjtFQUVBLE1BQU1DLFNBQVMsR0FBRztJQUNkRixRQUFRLEVBQUVBLFFBQVM7SUFDbkJDLFNBQVMsRUFBRUEsU0FBVTtJQUNyQkUsUUFBUSxFQUFFbEIsS0FBSyxDQUFDVSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUJTLFFBQVEsRUFBRVIsV0FBWTtJQUN0QlMsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QkMsT0FBTyxFQUFFLElBQUk7SUFDYkMsS0FBSyxFQUFFO0VBQ1gsQ0FBQztFQUVELE9BQUFDLGFBQUE7SUFDSUMsTUFBTSxFQUFFQSxDQUFBLEtBQU1QO0VBQVMsR0FDcEJBLFNBQVM7QUFFcEIsQ0FBQztBQUFDUSxPQUFBLENBQUEzQixXQUFBLEdBQUFBLFdBQUEiLCJpZ25vcmVMaXN0IjpbXX0=