diff --git a/application/assets/css/leaflet.css b/application/assets/css/leaflet.css index 1fa2a42..151a4c7 100644 --- a/application/assets/css/leaflet.css +++ b/application/assets/css/leaflet.css @@ -399,7 +399,7 @@ svg.leaflet-image-layer.leaflet-interactive path { /* Default icon URLs */ .leaflet-default-icon-path { - background-image: url("./marker-icon.png"); + background-image: url("marker-icon.png"); } /* attribution and scale controls */ diff --git a/application/assets/css/main.css b/application/assets/css/main.css index 5abb570..d502301 100644 --- a/application/assets/css/main.css +++ b/application/assets/css/main.css @@ -106,9 +106,14 @@ label { } article img { - max-width: 90vw; + width: 100%; height: auto; display: block; + padding: 10px; +} + +#chat { + padding: 40px 0 40px 0; } img[src=""] { @@ -388,6 +393,10 @@ div#intro img { min-width: 100vw; } +#app { + max-width: 500px; +} + /*/////////////////////////// ///TOAST////////////////*/ @@ -661,6 +670,9 @@ article { margin: 0 0 10px 0; padding: 3px; width: 100%; + position: relative; + max-width: 400px; + overflow: hidden; } article div.user-date { @@ -677,15 +689,10 @@ article img { } article .message-map { width: 100%; - min-width: 100%; - max-height: 100px; -} -article .map-component { - width: 100%; - min-width: 100%; - height: 100px; - max-height: 100px; - overflow: hidden; + height: 150px; + position: relative; + background: url("map.png"); + background-size: cover; } [id*="page-"] { @@ -786,10 +793,6 @@ article.me div.message-main { padding: 5px 5px 5px 5px; } -article div.message-main:empty { - display: none; -} - article.image { background-color: none; } @@ -966,8 +969,8 @@ div#message-input input { @media screen and (min-width: 1500px) and (max-width: 3000px) { #app { - min-width: 100%; - max-width: 100%; + min-width: 400px; + max-width: 400px; overflow: scroll; padding: 50px 0 0 0; } diff --git a/application/assets/css/map.png b/application/assets/css/map.png new file mode 100644 index 0000000..df90399 Binary files /dev/null and b/application/assets/css/map.png differ diff --git a/application/assets/js/helper.js b/application/assets/js/helper.js index e3fb49e..6a5adf5 100644 --- a/application/assets/js/helper.js +++ b/application/assets/js/helper.js @@ -112,21 +112,20 @@ export const geolocation = function ( }; let error = function (error) { - console.log(error.code); + alert("Current location not available"); switch (error.code) { case error.PERMISSION_DENIED: - side_toaster("Location not provided", 2000); + side_toaster("Location not provided", 5000); break; case error.POSITION_UNAVAILABLE: - side_toaster("Current location not available", 2000); + side_toaster("Current location not available", 5000); break; case error.TIMEOUT: - case 3: - side_toaster("Current location not available", 2000); + side_toaster("Current location not available", 5000); break; default: - side_toaster("Current location not available", 2000); + side_toaster("Current location not available", 5000); break; } @@ -151,15 +150,15 @@ export const geolocation = function ( error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0, + timeout: 20000, + maximumAge: 1000, } ); } else { navigator.geolocation.getCurrentPosition(showPosition, error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0, + timeout: 20000, + maximumAge: 1000, }); } } else { diff --git a/application/index.js b/application/index.js index ad70a9b..da1a4e0 100644 --- a/application/index.js +++ b/application/index.js @@ -257,14 +257,6 @@ function setupConnectionEvents(conn) { document.querySelector(".loading-spinner").style.display = "none"; remove_no_user_online(); - //add user - - try { - setupConnectionEvents(data.userId); - } catch (e) { - console.log(error); - } - if ( data.type == "image" || data.type == "text" || @@ -337,7 +329,7 @@ function setupConnectionEvents(conn) { gps: data.content, }); } - + //to do not stable if (data.type == "gps_live") { let existingMsg = chat_data.find((item) => item.type === "gps_live"); let f = JSON.parse(data.content); @@ -402,11 +394,11 @@ function setupConnectionEvents(conn) { }); conn.on("disconnected", () => { - // conn.reconnect(); - + /* side_toaster(`User has been disconnected`, 1000); connectedPeers = connectedPeers.filter((c) => c !== userId); updateConnections(); + */ }); // Event handler for connection errors @@ -855,8 +847,7 @@ let create_peer = function () { foreground: "black", level: "H", padding: 5, - size: 200, - // value: settings.custom_peer_id, + size: 1000, value: settings.invite_url + "#!/intro?id=" + settings.custom_peer_id, }); @@ -981,42 +972,41 @@ var AudioComponent = { }, }; -//map +// MapComponent var MapComponent = { oncreate: function (vnode) { var mapContainer = vnode.dom; var lat = vnode.attrs.lat; var lng = vnode.attrs.lng; + // Create the map instance let map_box = L.map(mapContainer, { keyboard: false, zoomControl: false, - }).setView([lat, lng], 10); - L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { - attribution: - '© OpenStreetMap contributors', - }).addTo(map_box); + }).setView([lat, lng], 7); + + let myMarker = L.marker([lat, lng]).addTo(map_box); + //myMarker._icon.classList.add("myMarker"); + myMarker.options.shadowSize = [0, 0]; + // Hide the leaflet control container setTimeout(() => { document.querySelector(".leaflet-control-container").style.display = "none"; }, 5); - setTimeout(() => { - map_box.setView([lat, lng], 10); - }, 5000); - - const myMarker = L.marker([lat, lng]).addTo(map_box); - - myMarker._icon.classList.add("myMarker"); - vnode.state.map = map_box; // Store the map instance in the vnode state + + // Ensure map is properly resized when container size changes + window.addEventListener("resize", function () { + map_box.invalidateSize(); + }); }, onremove: function (vnode) { vnode.state.map.remove(); // Clean up the map instance when the component is removed }, view: function () { - return m("div", { class: "map-component" }); + return m("div", { class: "map-component", style: { height: "100%" } }); }, }; @@ -1082,7 +1072,7 @@ function MoveMap(direction) { } // Initialize the map and define the setup -function map_function() { +function map_function(lat, lng, id) { map = L.map("map-container", { keyboard: true, zoomControl: false, @@ -1096,26 +1086,41 @@ function map_function() { document.querySelector(".leaflet-control-container").style.display = "none"; }, 5000); - const myMarker = L.marker([51.5, -0.09]) - .addTo(map) - .bindPopup("It's me") - .openPopup(); - myMarker._icon.classList.add("myMarker"); - let once = false; // Define 'once' outside the callback to persist its state + let myMarker; // Define 'myMarker' outside the callback to persist its state let geolocation_callback = function (e) { - myMarker.setLatLng([e.coords.latitude, e.coords.longitude]); - status.userMarkers[0] = myMarker; - - if (!once) { - map.setView([e.coords.latitude, e.coords.longitude]); - once = true; // Set 'once' to true after the first execution + if (!myMarker) { + // Create the marker only once + myMarker = L.marker([e.coords.latitude, e.coords.longitude]) + .addTo(map) + .bindPopup("It's me") + .openPopup(); + myMarker._icon.classList.add("myMarker"); + status.userMarkers[0] = myMarker; + + if (!once) { + // Set the view only once + map.setView([e.coords.latitude, e.coords.longitude]); + once = true; // Set 'once' to true after the first execution + } + } else { + // Update the marker's position + myMarker.setLatLng([e.coords.latitude, e.coords.longitude]); } }; - geolocation(geolocation_callback, true, false); + geolocation(geolocation_callback, false, true); + + if (lat && lng) { + let m = L.marker([lat, lng]).addTo(map).bindPopup(id).openPopup(); + setTimeout(() => { + map.setView([lat, lng]); + status.userMarkers[1] = m; + }, 3000); + } + /* // Function to update or add markers function updateMarkers(status) { if (status.users_geolocation) { @@ -1138,14 +1143,13 @@ function map_function() { status.userMarkers[userId] = marker; // Store marker in the object with userId as key } }); - } else { } } setTimeout(() => { updateMarkers(status); }, 5000); - +*/ map.on("zoomend", function () { let zoom_level = map.getZoom(); console.log(zoom_level); @@ -1183,8 +1187,6 @@ function map_function() { } else { step = 20; } - - console.log(step); }); } @@ -1675,6 +1677,14 @@ var options = { oncreate: () => { top_bar("", "", ""); + bottom_bar( + "", + "", + "" + ); + + setTabindex(); + if (status.notKaiOS) top_bar("", "", ""); }, @@ -1718,14 +1728,11 @@ var options = { setTabindex(); }, 500), class: "item", + id: "button-add-user", style: { display: status.userOnline ? "" : "none" }, onfocus: () => { - bottom_bar( - "", - "", - "" - ); + bottom_bar("", "", ""); }, onclick: function () { if (status.current_user_id !== "" && status.user_nickname !== "") @@ -1743,11 +1750,7 @@ var options = { { class: "item", onfocus: () => { - bottom_bar( - "", - "", - "" - ); + bottom_bar("", "", ""); }, style: { display: status.userOnline ? "" : "none" }, @@ -1761,7 +1764,7 @@ var options = { }, "share location" ), - + /* m( "button", { @@ -1788,7 +1791,7 @@ var options = { onclick: function () { if (status.userOnline) { if (status.geolcation_autoupdate) { - geolocation(geolocation_autoupdate_callback, false, true); + geolocation(geolocation_autoupdate_callback, true, true); status.geolocation_autoupdate = false; document.getElementById( "sharing-live-geolocation" @@ -1798,6 +1801,7 @@ var options = { document.getElementById( "sharing-live-geolocation" ).innerText = "share live location"; + status.geolocation_autoupdate = true; } } else { side_toaster("no user online", 3000); @@ -1806,7 +1810,7 @@ var options = { }, "start live location" ), - +*/ m( "button", { @@ -1962,6 +1966,7 @@ var open_peer_menu = { { class: "flex justify-content-center algin-item-start page", oncreate: () => { + status.addressbook_in_focus = ""; bottom_bar( "", "", @@ -2146,27 +2151,41 @@ var chat = { ]), chat_data.map(function (item, index) { //own message + let ff = { lat: "", lng: "" }; + if (item.type == "gps" || item.type == "gps_live") { + let n = JSON.parse(item.gps); + ff.lat = n.lat; + ff.lng = n.lng; + } + let nickname = "me"; if (item.nickname != settings.nickname) { nickname = item.nickname; } - let f; - if (item.type == "gps") { - f = JSON.parse(item.gps); - } return m( "article", { - class: " item " + nickname + " " + item.type, + class: "item " + nickname + " " + item.type, tabindex: index, "data-type": item.type, "data-user-id": item.userId, "data-user-nickname": item.nickname, + "data-lat": ff.lat, + "data-lng": ff.lng, onclick: () => { if (item.type == "gps" || item.type == "gps_live") { - m.route.set("/map_view"); + let f = JSON.parse(item.gps); + + m.route.set( + "/map_view?lat=" + + f.lat + + "&lng=" + + f.lng + + "&id=" + + item.nickname + ); } }, @@ -2186,16 +2205,6 @@ var chat = { ); } - if (item.type == "gps_live") { - status.current_article_type = "gps_live"; - - bottom_bar( - "", - "", - "" - ); - } - if (item.type == "gps") { status.current_article_type = "gps"; @@ -2256,14 +2265,10 @@ var chat = { : null, item.type === "gps" - ? m( - "div", - { - class: "message-map", - }, - - m(MapComponent, { lat: f.lat, lng: f.lng }) - ) + ? m("div", { + class: "message-map", + oncreate: (vnode) => {}, + }) : null, item.type === "audio" @@ -2280,6 +2285,14 @@ var chat = { m("div", { class: "flex message-head" }, [ m("div", time_parse(item.datetime)), m("div", { class: "nickname" }, nickname), + m( + "div", + { + class: "type", + style: { display: item.type == "gps" ? "" : "none" }, + }, + " Location" + ), ]), ] ); @@ -2294,16 +2307,22 @@ let map_view = { class: "width-100 height-100", id: "map-container", - oncreate: () => { + + oncreate: (vnode) => { bottom_bar( "", "", "" ); + const params = new URLSearchParams(m.route.get().split("?")[1]); + const lat = parseFloat(params.get("lat")); + const lng = parseFloat(params.get("lng")); + const id = params.get("id"); - top_bar("", "", ""); + map_function(lat, lng, id); - map_function(); + if (status.notKaiOS) + top_bar("", "", ""); }, }); }, @@ -2532,7 +2551,8 @@ document.addEventListener("DOMContentLoaded", function (e) { m.route.get() == "/settings_page" || m.route.get() == "/scan" || m.route.get() == "/open_peer_menu" || - m.route.get() == "/about" + m.route.get() == "/about" || + route.startsWith("/map_view") ) { status.action = ""; m.route.set("/start"); @@ -2548,6 +2568,11 @@ document.addEventListener("DOMContentLoaded", function (e) { m.route.set("/about"); } + if (m.route.get() == "/about_page") { + status.action = ""; + m.route.set("/about"); + } + if (m.route.get() == "/map_view") { status.action = ""; m.route.set("/options"); @@ -2657,7 +2682,7 @@ document.addEventListener("DOMContentLoaded", function (e) { write(); } - if (route == "/map_view") { + if (route.startsWith("/map_view")) { MoveMap("up"); } else { nav(-1); @@ -2690,17 +2715,17 @@ document.addEventListener("DOMContentLoaded", function (e) { }); } - if (route == "/map_view") { + if (route.startsWith("/map_view")) { ZoomMap("out"); } if (route == "/open_peer_menu") { if (status.addressbook_in_focus == "") { - let prp = prompt("Enter the chat id"); - if (prp != null) { + let prp = prompt("Enter the chat ID"); + if (prp !== null && prp !== "") { connect_to_peer(prp); } else { - history.back(); + m.route.set("/open_peer_menu"); } } else { delete_addressbook_item(status.addressbook_in_focus); @@ -2747,7 +2772,7 @@ document.addEventListener("DOMContentLoaded", function (e) { } } - if (route == "/map_view") { + if (route.startsWith("/map_view")) { ZoomMap("in"); } @@ -2788,7 +2813,10 @@ document.addEventListener("DOMContentLoaded", function (e) { document.activeElement.children[0].focus(); } - if (m.route.get() == "/options") { + if ( + m.route.get() == "/options" && + document.activeElement.id == "button-add-user" + ) { if (status.current_user_id !== "" && status.user_nickname !== "") addUserToAddressBook( status.current_user_id, @@ -2804,7 +2832,7 @@ document.addEventListener("DOMContentLoaded", function (e) { if (route == "/open_peer_menu") { connect_to_peer(document.activeElement.getAttribute("data-id")); } - if (route == "/map_view") { + if (route.startsWith("/map_view")) { // Ensure users_geolocation_count is within bounds if ( users_geolocation_count == @@ -2854,7 +2882,14 @@ document.addEventListener("DOMContentLoaded", function (e) { } if (status.current_article_type == "gps") { - m.route.set("/map_view"); + m.route.set( + "/map_view?lat=" + + document.activeElement.getAttribute("data-lat") + + "&lng=" + + document.activeElement.getAttribute("data-lng") + + "&id=" + + document.activeElement.getAttribute("data-user-nickname") + ); } if (status.current_article_type == "image") { let filename = document.activeElement @@ -2906,7 +2941,7 @@ document.addEventListener("DOMContentLoaded", function (e) { m.route.get() == "/scan" || m.route.get() == "/open_peer_menu" || m.route.get() == "/about" || - m.route.get() == "/map_view" + route.startsWith("/map_view") ) { evt.preventDefault(); status.action = ""; @@ -2931,7 +2966,7 @@ document.addEventListener("DOMContentLoaded", function (e) { m.route.set("/about"); } - if (m.route.get() == "/map_view") { + if (route.startsWith("/map_view")) { evt.preventDefault(); status.action = ""; m.route.set("/chat?id=") + status.ownPeerId; diff --git a/application/manifest.webmanifest b/application/manifest.webmanifest index 3aaad10..73f5691 100644 --- a/application/manifest.webmanifest +++ b/application/manifest.webmanifest @@ -53,7 +53,7 @@ ], "b2g_features": { - "version": "0.3122", + "version": "0.3130", "id": "flop", "subtitle": "flop p2p messenger app", "core": true, diff --git a/package-lock.json b/package-lock.json index 608d6f4..0bb4a80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,6 @@ "leaflet": "^1.9.4", "linkifyjs": "^3.0.5", "localforage": "^1.10.0", - "minidenticons": "^1.0.3", "mithril": "^2.0.4", "qrious": "^4.0.2", "url-search-params-polyfill": "^8.1.1", @@ -59,9 +58,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.24.7.tgz", - "integrity": "sha512-8dfPprJgV4O14WTx+AQyEA+opgUKPrsIXX/MdL50J1n06EQJ6m1T+CdsJe0qEC0B/Xl85i+Un5KVAxd/PACX9A==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.24.8.tgz", + "integrity": "sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -101,30 +100,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -140,12 +139,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.24.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -180,14 +179,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -196,15 +195,15 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", - "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", + "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", "@babel/helper-replace-supers": "^7.24.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", @@ -289,13 +288,13 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", - "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -315,9 +314,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", @@ -346,9 +345,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -427,9 +426,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -445,9 +444,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "engines": { "node": ">=6.9.0" @@ -469,13 +468,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "dev": true, "dependencies": { "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -497,9 +496,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -933,16 +932,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", - "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", + "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-replace-supers": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" @@ -971,12 +970,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", - "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1176,13 +1175,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", - "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1340,12 +1339,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", - "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1533,12 +1532,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", - "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1611,15 +1610,15 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", - "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", + "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", @@ -1650,9 +1649,9 @@ "@babel/plugin-transform-block-scoping": "^7.24.7", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", "@babel/plugin-transform-dynamic-import": "^7.24.7", @@ -1665,7 +1664,7 @@ "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-modules-systemjs": "^7.24.7", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", @@ -1675,7 +1674,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -1686,7 +1685,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -1695,7 +1694,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1726,9 +1725,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1758,19 +1757,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", + "@babel/generator": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", "@babel/helper-hoist-variables": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1779,12 +1778,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -1825,9 +1824,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -2275,9 +2274,9 @@ } }, "node_modules/@parcel/core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2500,9 +2499,9 @@ } }, "node_modules/@parcel/node-resolver-core/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2710,9 +2709,9 @@ } }, "node_modules/@parcel/package-manager/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3196,9 +3195,9 @@ } }, "node_modules/@parcel/transformer-babel/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3256,9 +3255,9 @@ } }, "node_modules/@parcel/transformer-html/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3317,9 +3316,9 @@ } }, "node_modules/@parcel/transformer-js/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3371,9 +3370,9 @@ } }, "node_modules/@parcel/transformer-postcss/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3406,9 +3405,9 @@ } }, "node_modules/@parcel/transformer-posthtml/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3478,9 +3477,9 @@ } }, "node_modules/@parcel/transformer-svg/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3914,14 +3913,14 @@ } }, "node_modules/@swc/core": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.28.tgz", - "integrity": "sha512-muCdNIqOTURUgYeyyOLYE3ShL8SZO6dw6bhRm6dCvxWzCZOncPc5fB0kjcPXTML+9KJoHL7ks5xg+vsQK+v6ig==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.0.tgz", + "integrity": "sha512-d4vMzH6ICllDwlPuhset2h8gu/USHdbyfJim+2hQEdxC0UONtfpmu38XBgNqRjStrji1Q5M10jfeUZL3cu1i8g==", "dev": true, "hasInstallScript": true, "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.8" + "@swc/types": "^0.1.9" }, "engines": { "node": ">=10" @@ -3931,16 +3930,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.5.28", - "@swc/core-darwin-x64": "1.5.28", - "@swc/core-linux-arm-gnueabihf": "1.5.28", - "@swc/core-linux-arm64-gnu": "1.5.28", - "@swc/core-linux-arm64-musl": "1.5.28", - "@swc/core-linux-x64-gnu": "1.5.28", - "@swc/core-linux-x64-musl": "1.5.28", - "@swc/core-win32-arm64-msvc": "1.5.28", - "@swc/core-win32-ia32-msvc": "1.5.28", - "@swc/core-win32-x64-msvc": "1.5.28" + "@swc/core-darwin-arm64": "1.7.0", + "@swc/core-darwin-x64": "1.7.0", + "@swc/core-linux-arm-gnueabihf": "1.7.0", + "@swc/core-linux-arm64-gnu": "1.7.0", + "@swc/core-linux-arm64-musl": "1.7.0", + "@swc/core-linux-x64-gnu": "1.7.0", + "@swc/core-linux-x64-musl": "1.7.0", + "@swc/core-win32-arm64-msvc": "1.7.0", + "@swc/core-win32-ia32-msvc": "1.7.0", + "@swc/core-win32-x64-msvc": "1.7.0" }, "peerDependencies": { "@swc/helpers": "*" @@ -3952,9 +3951,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.28.tgz", - "integrity": "sha512-sP6g63ybzIdOWNDbn51tyHN8EMt7Mb4RMeHQEsXB7wQfDvzhpWB+AbfK6Gs3Q8fwP/pmWIrWW9csKOc1K2Mmkg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.0.tgz", + "integrity": "sha512-2ylhM7f0HwUwLrFYZAe/dse8PCbPsYcJS3Dt7Q8NT3PUn7vy6QOMxNcOPPuDrnmaXqQQO3oxdmRapguTxaat9g==", "cpu": [ "arm64" ], @@ -3968,9 +3967,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.28.tgz", - "integrity": "sha512-Bd/agp/g7QocQG5AuorOzSC78t8OzeN+pCN/QvJj1CvPhvppjJw6e1vAbOR8vO2vvGi2pvtf3polrYQStJtSiA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.0.tgz", + "integrity": "sha512-SgVnN4gT1Rb9YfTkp4FCUITqSs7Yj0uB2SUciu5CV3HuGvS5YXCUzh+KrwpLFtx8NIgivISKcNnb41mJi98X8Q==", "cpu": [ "x64" ], @@ -3984,9 +3983,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.28.tgz", - "integrity": "sha512-Wr3TwPGIveS9/OBWm0r9VAL8wkCR0zQn46J8K01uYCmVhUNK3Muxjs0vQBZaOrGu94mqbj9OXY+gB3W7aDvGdA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.0.tgz", + "integrity": "sha512-+Z9Dayart1iKJQEJJ9N/KS4z5EdXJE3WPFikY0jonKTo4Dd8RuyVz5yLvqcIMeVdz/SwximATaL6iJXw7hZS9A==", "cpu": [ "arm" ], @@ -4000,9 +3999,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.28.tgz", - "integrity": "sha512-8G1ZwVTuLgTAVTMPD+M97eU6WeiRIlGHwKZ5fiJHPBcz1xqIC7jQcEh7XBkobkYoU5OILotls3gzjRt8CMNyDQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.0.tgz", + "integrity": "sha512-UnLrCiZ1EI4shznJn0xP6DLgsXUSwtfsdgHhGYCrvbgVBBve3S9iFgVFEB3SPl7Q/TdowNbrN4zHU0oChfiNfw==", "cpu": [ "arm64" ], @@ -4016,9 +4015,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.28.tgz", - "integrity": "sha512-0Ajdzb5Fzvz+XUbN5ESeHAz9aHHSYiQcm+vmsDi0TtPHmsalfnqEPZmnK0zPALPJPLQP2dDo4hELeDg3/c3xgA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.0.tgz", + "integrity": "sha512-H724UANA+ptsfwKRr9mnaDa9cb5fw0oFysiGKTgb3DMYcgk3Od0jMTnXVPFSVpo7FlmyxeC9K8ueUPBOoOK6XA==", "cpu": [ "arm64" ], @@ -4032,9 +4031,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.28.tgz", - "integrity": "sha512-ueQ9VejnQUM2Pt+vT0IAKoF4vYBWUP6n1KHGdILpoGe3LuafQrqu7RoyQ15C7/AYii7hAeNhTFdf6gLbg8cjFg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.0.tgz", + "integrity": "sha512-SY3HA0K0Dpqt1HIfMLGpwL4hd4UaL2xHP5oZXPlRQPhUDZrbb4PbI3ZJnh66c63eL4ZR8EJ+HRFI0Alx5p69Zw==", "cpu": [ "x64" ], @@ -4048,9 +4047,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.28.tgz", - "integrity": "sha512-G5th8Mg0az8CbY4GQt9/m5hg2Y0kGIwvQBeVACuLQB6q2Y4txzdiTpjmFqUUhEvvl7Klyx1IHvNhfXs3zpt7PA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.0.tgz", + "integrity": "sha512-cEJ2ebtV1v/5Ilb55E05J6F5SrHKQWzUttIhR5Mkayyo+yvPslcpByuFC3D+J7X1ebziTOBpWuMpUdjLfh3SMQ==", "cpu": [ "x64" ], @@ -4064,9 +4063,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.28.tgz", - "integrity": "sha512-JezwCGavZ7CkNXx4yInI4kpb71L0zxzxA9BFlmnsGKEEjVQcKc3hFpmIzfFVs+eotlBUwDNb0+Yo9m6Cb7lllA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.0.tgz", + "integrity": "sha512-ecQOOmzEssz+m0pR4xDYCGuvn3E/l0nQ3tk5jp1NA1lsAy4bMV0YbYCHjptYvWL/UjhIerIp3IlCJ8x5DodSog==", "cpu": [ "arm64" ], @@ -4080,9 +4079,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.28.tgz", - "integrity": "sha512-q8tW5J4RkOkl7vYShnWS//VAb2Ngolfm9WOMaF2GRJUr2Y/Xeb/+cNjdsNOqea2BzW049D5vdP7XPmir3/zUZw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.0.tgz", + "integrity": "sha512-gz81seZkRn3zMnVOc7L5k6F4vQC82gIxmHiL+GedK+A37XI/X26AASU3zxvORnqQbwQYXQ+AEVckxBmFlz3v2g==", "cpu": [ "ia32" ], @@ -4096,9 +4095,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.28.tgz", - "integrity": "sha512-jap6EiB3wG1YE1hyhNr9KLPpH4PGm+5tVMfN0l7fgKtV0ikgpcEN/YF94tru+z5m2HovqYW009+Evq9dcVGmpg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.0.tgz", + "integrity": "sha512-b5Fd1xEOw9uqBpj2lqsaR4Iq9UhiL84hNDcEsi6DQA7Y1l85waQAslTbS0E4/pJ1PISAs0jW0zIGLco1eaWBOg==", "cpu": [ "x64" ], @@ -4118,18 +4117,18 @@ "dev": true }, "node_modules/@swc/helpers": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.11.tgz", - "integrity": "sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", + "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", "dev": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@swc/types": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.8.tgz", - "integrity": "sha512-RNFA3+7OJFNYY78x0FYwi1Ow+iF1eF5WvmfY1nXPOEH4R2p/D4Cr1vzje7dNAI2aLFqpv8Wyz4oKSWqIZArpQA==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", "dev": true, "dependencies": { "@swc/counter": "^0.1.3" @@ -4278,9 +4277,9 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -4427,9 +4426,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "dev": true, "funding": [ { @@ -4446,10 +4445,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4517,9 +4516,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001632", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", - "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", "dev": true, "funding": [ { @@ -4984,15 +4983,15 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.799", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.799.tgz", - "integrity": "sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz", + "integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==", "dev": true }, "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz", + "integrity": "sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==", "dev": true, "dependencies": { "bn.js": "^4.11.9", @@ -5482,12 +5481,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5990,14 +5992,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/minidenticons": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/minidenticons/-/minidenticons-1.0.4.tgz", - "integrity": "sha512-TeXLFS/vloiyjmUp4bD6FnZY3kkddY9WAPnI3BtfZi2AGBTFTsdcP+NHJ+f8eIkYROpvlOB9DhTt29m+sggWdw==", - "engines": { - "node": ">=13.2.0" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -6039,9 +6033,9 @@ "dev": true }, "node_modules/msgpackr": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.2.tgz", - "integrity": "sha512-L60rsPynBvNE+8BWipKKZ9jHcSGbtyJYIwjRq0VrIvQ08cRjntGXJYW/tmciZ2IHWIY8WEW32Qa2xbh5+SKBZA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", "dev": true, "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -6095,13 +6089,10 @@ } }, "node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "dev": true, - "engines": { - "node": "^16 || ^18 || >= 20" - } + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true }, "node_modules/node-gyp-build-optional-packages": { "version": "5.1.1", @@ -6127,9 +6118,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/normalize-path": { @@ -7026,9 +7017,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { diff --git a/package.json b/package.json index ebe82df..b127990 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "leaflet": "^1.9.4", "linkifyjs": "^3.0.5", "localforage": "^1.10.0", - "minidenticons": "^1.0.3", "mithril": "^2.0.4", "qrious": "^4.0.2", "url-search-params-polyfill": "^8.1.1", diff --git a/webpage/assets/assets/css/grid.css b/webpage/assets/assets/css/grid.css deleted file mode 100644 index d0de6f7..0000000 --- a/webpage/assets/assets/css/grid.css +++ /dev/null @@ -1,582 +0,0 @@ -/* G R I D */ - -.grid-col-1 { - min-width: 10px; - max-width: 10px; -} - -.grid-col-2 { - min-width: 20px; - max-width: 20px; -} - -.grid-col-3 { - min-width: 30px; - max-width: 30px; -} - -.grid-col-4 { - min-width: 40px; - max-width: 40px; -} - -.grid-col-5 { - min-width: 50px; - max-width: 50px; -} - -.grid-col-6 { - min-width: 60px; - max-width: 60px; -} - -.grid-col-7 { - min-width: 70px; - max-width: 70px; -} - -.grid-col-8 { - min-width: 80px; - max-width: 80px; -} - -.grid-col-9 { - min-width: 90px; - max-width: 90px; -} - -.grid-col-10 { - min-width: 100px; - max-width: 100px; -} - -.grid-col-11 { - min-width: 110px; - max-width: 110px; -} - -.grid-col-12 { - min-width: 120px; - max-width: 120px; -} - -.grid-col-13 { - min-width: 130px; - max-width: 130px; -} - -.grid-col-14 { - min-width: 140px; - max-width: 140px; -} - -.grid-col-15 { - min-width: 150px; - max-width: 150px; -} - -.grid-col-16 { - min-width: 160px; - max-width: 160px; -} - -.grid-col-17 { - min-width: 170px; - max-width: 170px; -} - -.grid-col-18 { - min-width: 180px; - max-width: 180px; -} - -.grid-col-19 { - min-width: 190px; - max-width: 190px; -} - -.grid-col-20 { - min-width: 200px; - max-width: 200px; -} - -.grid-col-21 { - min-width: 210px; - max-width: 210px; -} - -.grid-col-22 { - min-width: 220px; - max-width: 220px; -} - -.grid-col-23 { - min-width: 230px; - max-width: 230px; -} - -.grid-col-24 { - min-width: 240px; - max-width: 240px; -} - -.grid-col-25 { - min-width: 250px; - max-width: 250px; -} - -.grid-col-26 { - min-width: 260px; - max-width: 260px; -} - -.grid-col-27 { - min-width: 270px; - max-width: 270px; -} - -.grid-col-28 { - min-width: 280px; - max-width: 280px; -} - -.grid-col-29 { - min-width: 290px; - max-width: 290px; -} - -.grid-col-30 { - min-width: 300px; - max-width: 300px; -} - -.grid-col-31 { - min-width: 310px; - max-width: 310px; -} - -.grid-col-32 { - min-width: 320px; - max-width: 320px; -} - -.grid-col-33 { - min-width: 330px; - max-width: 330px; -} - -.grid-col-34 { - min-width: 340px; - max-width: 340px; -} - -.grid-col-35 { - min-width: 350px; - max-width: 350px; -} - -.grid-col-36 { - min-width: 360px; - max-width: 360px; -} - -.grid-col-37 { - min-width: 370px; - max-width: 370px; -} - -.grid-col-38 { - min-width: 380px; - max-width: 380px; -} - -.grid-col-39 { - min-width: 390px; - max-width: 390px; -} - -.grid-col-40 { - min-width: 400px; - max-width: 400px; -} - -.grid-col-41 { - min-width: 410px; - max-width: 410px; -} - -.grid-col-42 { - min-width: 420px; - max-width: 420px; -} - -.grid-col-43 { - min-width: 430px; - max-width: 430px; -} - -.grid-col-44 { - min-width: 440px; - max-width: 440px; -} - -.grid-col-45 { - min-width: 450px; - max-width: 450px; -} - -.grid-col-46 { - min-width: 460px; - max-width: 460px; -} - -.grid-col-47 { - min-width: 470px; - max-width: 470px; -} - -.grid-col-48 { - min-width: 480px; - max-width: 480px; -} - -.grid-col-49 { - min-width: 490px; - max-width: 490px; -} - -.grid-col-50 { - min-width: 500px; - max-width: 500px; -} - -.grid-col-51 { - min-width: 510px; - max-width: 510px; -} - -.grid-col-52 { - min-width: 520px; - max-width: 520px; -} - -.grid-col-53 { - min-width: 530px; - max-width: 530px; -} - -.grid-col-54 { - min-width: 540px; - max-width: 540px; -} - -.grid-col-55 { - min-width: 550px; - max-width: 550px; -} - -.grid-col-56 { - min-width: 560px; - max-width: 560px; -} - -.grid-col-57 { - min-width: 570px; - max-width: 570px; -} - -.grid-col-58 { - min-width: 580px; - max-width: 580px; -} - -.grid-col-59 { - min-width: 590px; - max-width: 590px; -} - -.grid-col-60 { - min-width: 600px; - max-width: 600px; -} - -.grid-col-61 { - min-width: 610px; - max-width: 610px; -} - -.grid-col-62 { - min-width: 620px; - max-width: 620px; -} - -.grid-col-63 { - min-width: 630px; - max-width: 630px; -} - -.grid-col-64 { - min-width: 640px; - max-width: 640px; -} - -.grid-col-65 { - min-width: 650px; - max-width: 650px; -} - -.grid-col-66 { - min-width: 660px; - max-width: 660px; -} - -.grid-col-67 { - min-width: 670px; - max-width: 670px; -} - -.grid-col-68 { - min-width: 680px; - max-width: 680px; -} - -.grid-col-69 { - min-width: 690px; - max-width: 690px; -} - -.grid-col-70 { - min-width: 700px; - max-width: 700px; -} - -.grid-col-71 { - min-width: 710px; - max-width: 710px; -} - -.grid-col-72 { - min-width: 720px; - max-width: 720px; -} - -.grid-col-73 { - min-width: 730px; - max-width: 730px; -} - -.grid-col-74 { - min-width: 740px; - max-width: 740px; -} - -.grid-col-75 { - min-width: 750px; - max-width: 750px; -} - -.grid-col-76 { - min-width: 760px; - max-width: 760px; -} - -.grid-col-77 { - min-width: 770px; - max-width: 770px; -} - -.grid-col-78 { - min-width: 780px; - max-width: 780px; -} - -.grid-col-79 { - min-width: 790px; - max-width: 790px; -} - -.grid-col-80 { - min-width: 800px; - max-width: 800px; -} - -.grid-col-81 { - min-width: 810px; - max-width: 810px; -} - -.grid-col-82 { - min-width: 820px; - max-width: 820px; -} - -.grid-col-83 { - min-width: 830px; - max-width: 830px; -} - -.grid-col-84 { - min-width: 840px; - max-width: 840px; -} - -.grid-col-85 { - min-width: 850px; - max-width: 850px; -} - -.grid-col-86 { - min-width: 860px; - max-width: 860px; -} - -.grid-col-87 { - min-width: 870px; - max-width: 870px; -} - -.grid-col-88 { - min-width: 880px; - max-width: 880px; -} - -.grid-col-88 { - min-width: 880px; - max-width: 880px; -} - -.grid-col-89 { - min-width: 890px; - max-width: 890px; -} - -.grid-col-90 { - min-width: 900px; - max-width: 900px; -} - -.grid-col-91 { - min-width: 910px; - max-width: 910px; -} - -.grid-col-92 { - min-width: 920px; - max-width: 920px; -} - -.grid-col-93 { - min-width: 930px; - max-width: 930px; -} - -.grid-col-94 { - min-width: 940px; - max-width: 940px; -} - -.grid-col-95 { - min-width: 950px; - max-width: 950px; -} - -.grid-col-96 { - min-width: 960px; - max-width: 960px; -} - -.text-center { - text-align: center; -} - -.flex { - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} - -.flex-column { - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; -} - -.justify-content-start { - -webkit-align-items: flex-start; - align-items: flex-start; -} - -.justify-content-end { - -webkit-justify-content: flex-end; - justify-content: flex-end; -} - -.algin-item-start { - -webkit-align-items: flex-start; - align-items: flex-start; -} - -.algin-item-end { - -webkit-align-items: flex-end; - align-items: flex-end; -} - -.align-item-center { - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} - -.justify-content-spacebetween { - -webkit-justify-content: space-between; - justify-content: space-between; -} - -.justify-content-spacearound { - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - -webkit-align-content: space-around; - -ms-flex-line-pack: distribute; - align-content: space-around; -} - -.justify-content-center { - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} - -.width-100 { - min-width: 100vw; - max-width: 100vw; -} - -.width-90 { - min-width: 90vw; - max-width: 90vw; -} - -.height-100 { - min-height: 100vh; -} - -.width-50 { - min-width: 50%; -} - -.width-30 { - min-width: 30%; - max-width: 30%; -} - -.center { - transform: translate(50%, -0%); -} - -.block { - display: block; -} diff --git a/webpage/assets/assets/css/images/end.png b/webpage/assets/assets/css/images/end.png deleted file mode 100644 index 1aa52d7..0000000 Binary files a/webpage/assets/assets/css/images/end.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/flag.png b/webpage/assets/assets/css/images/flag.png deleted file mode 100644 index 7ea8679..0000000 Binary files a/webpage/assets/assets/css/images/flag.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/marker-icon-2x.png b/webpage/assets/assets/css/images/marker-icon-2x.png deleted file mode 100644 index 88f9e50..0000000 Binary files a/webpage/assets/assets/css/images/marker-icon-2x.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/marker-icon.png b/webpage/assets/assets/css/images/marker-icon.png deleted file mode 100644 index 950edf2..0000000 Binary files a/webpage/assets/assets/css/images/marker-icon.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/marker-shadow.png b/webpage/assets/assets/css/images/marker-shadow.png deleted file mode 100644 index 9fd2979..0000000 Binary files a/webpage/assets/assets/css/images/marker-shadow.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/public-transport.png b/webpage/assets/assets/css/images/public-transport.png deleted file mode 100644 index 950edf2..0000000 Binary files a/webpage/assets/assets/css/images/public-transport.png and /dev/null differ diff --git a/webpage/assets/assets/css/images/start.png b/webpage/assets/assets/css/images/start.png deleted file mode 100644 index 46d29e7..0000000 Binary files a/webpage/assets/assets/css/images/start.png and /dev/null differ diff --git a/webpage/assets/assets/css/leaflet.css b/webpage/assets/assets/css/leaflet.css deleted file mode 100644 index 1fa2a42..0000000 --- a/webpage/assets/assets/css/leaflet.css +++ /dev/null @@ -1,641 +0,0 @@ -/* required styles */ - -.leaflet-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-container, -.leaflet-pane > svg, -.leaflet-pane > canvas, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; -} -.leaflet-container { - overflow: hidden; -} -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; -} -/* Prevents IE11 from highlighting tiles in blue */ -.leaflet-tile::selection { - background: transparent; -} -/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ -.leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; -} -/* hack that prevents hw layers "stretching" when loading new tiles */ -.leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; -} -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; -} -/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ -/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container .leaflet-overlay-pane svg, -.leaflet-container .leaflet-marker-pane img, -.leaflet-container .leaflet-shadow-pane img, -.leaflet-container .leaflet-tile-pane img, -.leaflet-container img.leaflet-image-layer, -.leaflet-container .leaflet-tile { - max-width: none !important; - max-height: none !important; -} - -.leaflet-container.leaflet-touch-zoom { - -ms-touch-action: pan-x pan-y; - touch-action: pan-x pan-y; -} -.leaflet-container.leaflet-touch-drag { - -ms-touch-action: pinch-zoom; - /* Fallback for FF which doesn't support pinch-zoom */ - touch-action: none; - touch-action: pinch-zoom; -} -.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - -ms-touch-action: none; - touch-action: none; -} -.leaflet-container { - -webkit-tap-highlight-color: transparent; -} -.leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); -} -.leaflet-tile { - filter: inherit; - visibility: hidden; -} -.leaflet-tile-loaded { - visibility: inherit; -} -.leaflet-zoom-box { - width: 0; - height: 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 800; -} -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; -} - -.leaflet-pane { - z-index: 400; -} - -.leaflet-tile-pane { - z-index: 200; -} -.leaflet-overlay-pane { - z-index: 400; -} -.leaflet-shadow-pane { - z-index: 500; -} -.leaflet-marker-pane { - z-index: 600; -} -.leaflet-tooltip-pane { - z-index: 650; -} -.leaflet-popup-pane { - z-index: 700; -} - -.leaflet-map-pane canvas { - z-index: 100; -} -.leaflet-map-pane svg { - z-index: 200; -} - -.leaflet-vml-shape { - width: 1px; - height: 1px; -} -.lvml { - behavior: url("#default#VML"); - display: inline-block; - position: absolute; -} - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; -} -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; -} -.leaflet-top { - top: 0; -} -.leaflet-right { - right: 0; -} -.leaflet-bottom { - bottom: 0; -} -.leaflet-left { - left: 0; -} -.leaflet-control { - float: left; - clear: both; -} -.leaflet-right .leaflet-control { - float: right; -} -.leaflet-top .leaflet-control { - margin-top: 10px; -} -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; -} -.leaflet-left .leaflet-control { - margin-left: 10px; -} -.leaflet-right .leaflet-control { - margin-right: 10px; -} - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-tile { - will-change: opacity; -} -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; -} -.leaflet-zoom-animated { - -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; -} -.leaflet-zoom-anim .leaflet-zoom-animated { - will-change: transform; -} -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1); - transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); -} -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile { - -webkit-transition: none; - -moz-transition: none; - transition: none; -} - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; -} - -/* cursors */ - -.leaflet-interactive { - cursor: pointer; -} -.leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - cursor: grab; -} -.leaflet-crosshair, -.leaflet-crosshair .leaflet-interactive { - cursor: crosshair; -} -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; -} -.leaflet-dragging .leaflet-grab, -.leaflet-dragging .leaflet-grab .leaflet-interactive, -.leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; -} - -/* marker & overlays interactivity */ -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-image-layer, -.leaflet-pane > svg path, -.leaflet-tile-container { - pointer-events: none; -} - -.leaflet-marker-icon.leaflet-interactive, -.leaflet-image-layer.leaflet-interactive, -.leaflet-pane > svg path.leaflet-interactive, -svg.leaflet-image-layer.leaflet-interactive path { - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; -} - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline: 0; -} -.leaflet-container a { - color: #0078a8; -} -.leaflet-container a.leaflet-active { - outline: 2px solid orange; -} -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255, 255, 255, 0.5); -} - -/* general typography */ -.leaflet-container { - font: 12px / 1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; -} - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); - border-radius: 4px; -} -.leaflet-bar a, -.leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; -} -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; -} -.leaflet-bar a:hover { - background-color: #f4f4f4; -} -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; -} -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; -} - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; -} -.leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; -} -.leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; -} - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px "Lucida Console", Monaco, monospace; - text-indent: 1px; -} - -.leaflet-touch .leaflet-control-zoom-in, -.leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; -} - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); - background: #fff; - border-radius: 5px; -} - -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; -} -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; -} -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; -} -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; -} -.leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; -} -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; -} -.leaflet-control-layers label { - display: block; -} -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; -} - -/* Default icon URLs */ -.leaflet-default-icon-path { - background-image: url("./marker-icon.png"); -} - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; -} -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; -} -.leaflet-control-attribution a { - text-decoration: none; -} -.leaflet-control-attribution a:hover { - text-decoration: underline; -} -.leaflet-container .leaflet-control-attribution, -.leaflet-container .leaflet-control-scale { - font-size: 11px; -} -.leaflet-left .leaflet-control-scale { - margin-left: 5px; -} -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; -} -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); -} -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; -} -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; -} - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; -} -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0, 0, 0, 0.2); - background-clip: padding-box; -} - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; -} -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; -} -.leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; -} -.leaflet-popup-content p { - margin: 18px 0; -} -.leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-left: -20px; - overflow: hidden; - pointer-events: none; -} -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); -} -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); -} -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - border: none; - text-align: center; - width: 18px; - height: 14px; - font: 16px / 14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; -} -.leaflet-container a.leaflet-popup-close-button:hover { - color: #999; -} -.leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; -} - -.leaflet-oldie .leaflet-popup-content-wrapper { - -ms-zoom: 1; -} -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); -} -.leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; -} - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; -} - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; -} - -/* Tooltip */ -/* Base styles for the element that has a tooltip */ -.leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); -} -.leaflet-tooltip.leaflet-clickable { - cursor: pointer; - pointer-events: auto; -} -.leaflet-tooltip-top:before, -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; -} - -/* Directions */ - -.leaflet-tooltip-bottom { - margin-top: 6px; -} -.leaflet-tooltip-top { - margin-top: -6px; -} -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; -} -.leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; -} -.leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; -} -.leaflet-tooltip-left { - margin-left: -6px; -} -.leaflet-tooltip-right { - margin-left: 6px; -} -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; -} -.leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; -} -.leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; -} diff --git a/webpage/assets/assets/css/main.css b/webpage/assets/assets/css/main.css deleted file mode 100644 index 5abb570..0000000 --- a/webpage/assets/assets/css/main.css +++ /dev/null @@ -1,1087 +0,0 @@ -/*GENERAL*/ - -:root { - --color-one: black; - --color-two: yellow; - --color-three: silver; - --color-four: rgb(190, 185, 185); - --color-five: rgba(214, 225, 228, 0.322); - --color-seven: rgba(101, 216, 24, 0.288); - --color-eight: rgba(47, 82, 196, 0.188); -} - -@font-face { - font-family: "Roboto"; - src: url("../fonts/Roboto-Regular.ttf"); -} - -*, -*:before, -*:after { - border: 0px; - padding: 0px; - margin: 0px; - box-sizing: border-box; - - /* Careful, this breaks the word wherever it is without a hyphen */ - overflow-wrap: break-word; - word-wrap: break-word; - scroll-behavior: smooth; - /* Adds a hyphen where the word breaks */ - -webkit-hyphens: auto; - -ms-hyphens: auto; - -moz-hyphens: auto; - hyphens: auto; -} - -::-webkit-scrollbar { - display: none !important; -} - -:focus { - outline: none; -} - -::-moz-focus-inner { - border: 0; -} - -.debug { - outline: 1px solid red; -} - -html, -body { - font-family: "Roboto" !important; - font-weight: 400; - position: relative; - margin: 0px; - padding: 0px; - font-size: 1rem; - line-height: 1.4rem; - max-height: 100%; - max-width: 100%; - height: 100%; - width: 100%; - max-width: 100vw; - overflow: hidden; - background: white; -} - -video { - min-height: 100vh; - min-width: 100vw; -} - -#app { - position: relative; - height: 100%; - - width: 100%; -} - -#wrapper { - min-width: 100%; - display: flex; - justify-content: center; - align-items: flex-start; - overflow: scroll; -} - -h1 { - font-size: 1rem; -} - -h2 { - font-size: 1.1rem; - width: 100%; -} - -h3 { - font-size: 1rem; -} - -label { - font-weight: bold; -} - -article img { - max-width: 90vw; - height: auto; - display: block; -} - -img[src=""] { - display: none; -} - -img[src=" "] { - display: none; -} - -button { - font-size: 1rem; - background: rgb(255, 255, 255); - min-width: 93%; - max-width: 90%; - - padding: 5px; - margin: 0px 0 15px 5px; - color: black; - border-radius: 1px; - border: 2px solid gray; - font-weight: 700; - min-height: 40px; - font-family: "Roboto" !important; -} -button:focus { - background: orange; - border: 0px solid gray; -} - -button:hover { - background: orange; - border: 0px solid gray; -} - -a.button-style { - font-size: 1rem; - background: rgb(255, 255, 255); - width: 95%; - padding: 5px; - margin: 10px 0 15px 0px; - color: black; - border-radius: 1px; - border: 2px solid gray; - font-weight: 700; - min-height: 40px; - font-family: "Roboto" !important; - display: block; - text-align: center; -} -a.button-style:focus { - background: orange; - border: 0px solid gray; -} - -a { - text-decoration: none; -} - -select { - width: 95%; - padding: 10px; - margin: 10px 5% 0px 5%; - - /* styling */ - background-color: white; - border: thin solid rgb(56, 56, 66); - border-radius: 4px; - font: inherit; - line-height: 1.5em; - text-align: center; - - /* reset */ - - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-appearance: none; - -moz-appearance: none; -} - -textarea { - height: 30px; - width: 95%; - padding: 3px; - border: 1px solid silver; -} - -input { - width: 95%; - height: 30px; - padding: 3px; - border: 2px solid silver; - border-radius: 4px; - margin: 0 0 0 10px; -} - -label { - display: block; - min-width: 100%; - margin: 0 0 10px 0; - text-align: center; -} -.input-parent { - min-width: 100%; - padding: 10px; - margin: 0 0 20px 0; -} - -.input-parent:focus { - background: orange; -} -div#intro { - position: fixed; - background: black; - z-index: 100000; - min-width: 100vw; - height: 100%; - left: 0; - top: 0; - animation-name: intro; - animation-duration: 1s; - animation-delay: 8s; - animation-iteration-count: 1; - animation-fill-mode: forwards; -} - -div#intro img { - width: 120px; - height: auto; - position: absolute; - top: 50px; - left: 50%; - margin-left: -60px; - animation-name: intro_img; - animation-duration: 4s; - animation-delay: 0s; - animation-iteration-count: 1; - animation-fill-mode: forwards; -} - -#intro #version-box { - position: absolute; - bottom: 50px; - height: 40px; -} - -#intro #version-box kbd { - border: 2px solid pink; - box-shadow: 2px 2px pink; - font-size: 0.6em; - line-height: 0.85em; - display: block; - font-weight: 600; - letter-spacing: 0.05em; - padding: 3px 5px; - white-space: nowrap; - color: white; - width: fit-content; - height: 20px; -} - -@keyframes intro_img { - 0% { - filter: hue-rotate(-0.25turn); - } - 20% { - filter: hue-rotate(-2.25turn); - } - - 40% { - filter: hue-rotate(-0.65turn); - } - - 60% { - filter: hue-rotate(-0.35turn); - } - - 100% { - filter: hue-rotate(-1.65turn); - } -} - -@keyframes intro { - from { - display: block; - opacity: 100; - } - to { - display: none; - opacity: 0; - } -} - -/*sound anomation*/ - -.playing { - background: rgba(255, 255, 255, 0.1); - width: 4rem; - height: 4rem; - border-radius: 0.3rem; - display: flex; - justify-content: space-between; - align-items: flex-end; - padding: 0.5rem; - box-sizing: border-box; - position: fixed; - top: 50%; - right: calc(50%-2rem); - z-index: 1000; - opacity: 0; -} - -.playing__bar { - display: inline-block; - background: white; - width: 30%; - height: 100%; - animation: up-and-down 1.3s ease infinite alternate; -} - -.playing__bar1 { - height: 60%; - background: red; -} - -.playing__bar2 { - height: 30%; - animation-delay: -2.2s; - background: blue; -} - -.playing__bar3 { - height: 75%; - animation-delay: -3.7s; - background: rgb(29, 165, 59); -} - -@keyframes up-and-down { - 10% { - height: 30%; - } - - 30% { - height: 100%; - } - - 60% { - height: 50%; - } - - 80% { - height: 75%; - } - - 100% { - height: 60%; - } -} - -#KaiOSAd { - height: 200px; - width: 240px; -} - -#KaiOSAds-Wrapper { - padding: 0px; -} - -#KaiOSAds-Wrapper iframe { - width: 240px; -} - -.page { - padding: 10px; - max-width: 100vw; - min-width: 100vw; -} - -/*/////////////////////////// -///TOAST////////////////*/ - -div#toast { - position: fixed; - height: auto; - overflow: none; - background: black; - color: white; - z-index: 10; - min-width: 100%; - padding: 5px; - top: 0px; - - transition: all 0.5s ease-in-out; - transform-origin: left top; - transform: translate(0px, -100px); -} - -div#side-toast { - position: fixed; - height: auto; - overflow: none; - background: orange; - color: white; - z-index: 10; - padding: 8px; - top: 70vh; - border-bottom-right-radius: 15px; - border-top-right-radius: 15px; - - transition: all 0.5s ease-in-out; - transform-origin: left top; - opacity: 0; - max-width: 100vw; -} - -div#side-toast img { - width: 60px; -} - -div.nickname { - font-weight: bold; -} -/*/ ////////////////////////// -///VIEWS////////////////*/ - -div#options { - display: none; - position: absolute; - z-index: 4; - top: 0; - display: none; - padding: 5px; - height: 92vh; - overflow: hidden; - padding: 10px 0 0 0; -} - -div#options div#import-text { - padding: 10px; - font-weight: bold; - margin: 0 0 20px 0; - text-align: center; - display: none; -} - -div#map-container { - width: 100%; - position: fixed; - overflow: hidden; - margin: 0px 0 0 0; - top: 0; - left: 0; - z-index: 0; -} - -img.myMarker { - filter: hue-rotate(120deg); -} - -div#description { - margin: 50px 0px 50px 0; -} - -div#description div { - margin: 0 10px 10px 0; -} - -div#description h2 { - margin: 0 0px 20px 0; -} - -div#description div img { - max-width: 30px; - margin: 0 10px 0px 0; -} - -/*///////////////// -///BOTTOM BAR//// -////////////////*/ - -div#bottom-bar { - position: fixed; - z-index: 2000; - bottom: 30px; - left: 0px; - height: 18px; - z-index: 6; - background: none; - min-width: 100vw; - - display: flex; - justify-content: center; /* Horizontally center all child elements */ - align-items: center; /* Vertically center all child elements */ -} - -div#bottom-bar div#inner { - position: relative; -} - -div#bottom-bar div { - background: none; - color: white; - padding: 2px; - font-size: 0.8rem; -} - -div#bottom-bar div.button-center img { - width: 30px; -} - -div#bottom-bar div.button-left { - background: none; - color: white; - padding: 2px; - width: 32%; - display: flex; - justify-content: flex-start; -} - -div#bottom-bar div.button-left:hover img { - width: 35px; -} - -div#bottom-bar div.button-left img { - width: 30px; -} - -div#bottom-bar div.button-right img { - width: 30px; -} - -div#bottom-bar div.button-right { - background: none; - color: white; - padding: 2px; - width: 32%; - display: flex; - justify-content: flex-end; -} - -div#bottom-bar div.button-right:hover img { - width: 35px; -} - -div#bottom-bar div.button-center { - display: flex; /* Enable flexbox for the button-center div */ - justify-content: center; /* Horizontally center the image */ - align-items: center; /* Vertically center the image */ - background: none; - color: white; - padding: 2px; - width: 32%; -} - -div#bottom-bar div.button-center img { - width: 30px; -} - -div#bottom-bar div.button-center:hover img { - width: 35px; -} - -/*/ //////////////// -///TOP-BAR///////*/ - -div#top-bar { - position: fixed; - z-index: 2000; - top: 0px; - left: 0px; - height: 18px; - z-index: 6; - background: none; - min-width: 100vw; - - display: flex; - justify-content: center; /* Horizontally center all child elements */ - align-items: center; /* Vertically center all child elements */ -} - -div#top-bar div#inner { - position: relative; -} - -div#top-bar div { - background: none; - color: white; - padding: 2px; - font-size: 0.8rem; -} - -div#top-bar div.button-center img { - width: 30px; -} - -div#top-bar div.button-left { - background: none; - color: white; - padding: 2px; - width: 32%; - display: flex; - justify-content: flex-start; -} - -div#top-bar div.button-left:hover img { - width: 35px; -} - -div#top-bar div.button-left img { - width: 30px; -} - -div#top-bar div.button-right img { - width: 30px; -} - -div#top-bar div.button-right { - background: none; - color: white; - padding: 2px; - width: 32%; - display: flex; - justify-content: flex-end; -} - -div#top-bar div.button-right:hover img { - max-width: 30px; -} - -div#top-bar div.button-center { - display: flex; /* Enable flexbox for the button-center div */ - justify-content: center; /* Horizontally center the image */ - align-items: center; /* Vertically center the image */ - background: none; - color: white; - padding: 2px; - width: 32%; -} - -div#top-bar div.button-center img { - width: 30px; -} - -div#top-bar div.button-center:hover img { - width: 30px; -} - -article { - margin: 0 0 10px 0; - padding: 3px; - width: 100%; -} - -article div.user-date { - font-size: 0.8rem; - margin: 0 0 5px 0; -} - -article div.user-date span { - font-weight: bold; -} - -article img { - width: 100%; -} -article .message-map { - width: 100%; - min-width: 100%; - max-height: 100px; -} -article .map-component { - width: 100%; - min-width: 100%; - height: 100px; - max-height: 100px; - overflow: hidden; -} - -[id*="page-"] { - padding: 5px; -} - -.loading-spinner { - display: none; - position: fixed; - width: 80px; - height: 80px; - top: 50%; - left: 50%; - margin-left: -40px; - margin-top: -40px; - - z-index: 5000000000000; -} -.loading-spinner div { - box-sizing: border-box; - display: block; - position: absolute; - width: 64px; - height: 64px; - margin: 8px; - border: 8px solid rgb(126, 11, 11); - border-radius: 50%; - animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; - border-color: rgb(238, 27, 27) transparent transparent transparent; -} -.loading-spinner div:nth-child(1) { - animation-delay: -0.45s; -} -.loading-spinner div:nth-child(2) { - animation-delay: -0.3s; -} -.loading-spinner div:nth-child(3) { - animation-delay: -0.15s; -} - -@keyframes lds-ring { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -/* - SETTINGS - */ - -#about-text { - margin: 15px 0 0 0; -} - -div#top { - position: fixed; - top: 0; -} - -div.text { - padding: 20px; -} - -#chat { - background: white; -} -article { - padding: 10px; -} - -article.nickname { - color: blue; -} - -article div.message-head { - font-size: 0.7rem; - color: gray; - background: none; - padding: 3px; -} - -article div.message-main { - background: pink; - border-radius: 7px; - padding: 5px 5px 5px 5px; -} - -article div.message-main:empty { - display: none; -} - -article.me div.message-main { - background: rgba(167, 172, 164, 0.288); - border-radius: 7px; - padding: 5px 5px 5px 5px; -} - -article div.message-main:empty { - display: none; -} - -article.image { - background-color: none; -} - -article:focus { - background: rgba(180, 199, 168, 0.34) !important; -} - -article div.message-head div:nth-child(2) { - margin: 0 0 0 20px; -} - -div#message-input { - position: fixed; - z-index: 5; - background: none; - height: 40px; - padding: 5px; - bottom: 35px; - max-width: 99vw !important; - min-width: 99vw !important; - display: none; -} - -div#message-input input { - margin: 0 auto; - border: 2px solid silver; - border-radius: 10px; - width: 100%; -} - -#start { - max-width: 700px; - padding: 10px; - min-height: 50vh; -} - -#start p { - overflow-y: auto; - max-width: 700px; -} - -#start p:focus { - background: none; -} - -#start img { - width: 40%; - display: block; - margin: 10px 0 0px 0; - padding: 0 0 20px 0; -} - -#start .button-create-peer { - margin: 5px 0 150px 0; -} - -#open-peer-menu { - padding: 10px; -} - -#addressbook button:last-child { - margin-bottom: 50px; -} - -@media screen and (min-width: 400px) and (max-width: 2000px) { - #app { - min-width: 400px; - max-width: 400px; - - overflow: scroll; - padding: 50px 0 0 0; - } - - article { - min-width: 400px; - max-width: 400px !important; - display: block; - overflow: hidden; - } - - article img { - width: 100%; - } - - #wrapper { - min-width: 100%; - display: flex; - justify-content: center; - align-items: flex-start; - overflow: scroll; - } - - .page { - min-width: 100%; - max-width: 100%; - overflow: scroll; - } - .not-desktop { - display: none !important; - } - - div#bottom-bar { - margin: 0 0 20px 0; - } - - div#bottom-bar div.button-left img { - width: 50px; - } - - div#bottom-bar div.button-right img { - width: 50px; - } - - div#bottom-bar div.button-center img { - width: 50px; - } - - div#top-bar { - margin: 0 0 20px 0; - } - - div#top-bar div.button-left img { - width: 50px; - } - - div#top-bar div.button-right img { - width: 50px; - } - - div#top-bar div.button-center img { - width: 50px; - } - - html, - body { - font-family: "Roboto" !important; - font-weight: 400; - position: relative; - margin: 0px; - padding: 0px; - font-size: 1.2rem; - line-height: 1.4rem; - max-height: 100%; - max-width: 100%; - height: 100%; - width: 100%; - max-width: 100vw; - overflow: scroll; - background: white; - } - - div#message-input { - position: fixed; - z-index: 5; - background: none; - height: 40px; - padding: 5px; - bottom: 65px; - max-width: 99vw !important; - min-width: 99vw !important; - display: none; - } - - div#intro img { - top: 150px; - } - - article .map-component { - width: 100vw; - height: 200px; - } -} - -@media screen and (min-width: 1500px) and (max-width: 3000px) { - #app { - min-width: 100%; - max-width: 100%; - overflow: scroll; - padding: 50px 0 0 0; - } - - article { - min-width: 400px; - max-width: 400px !important; - overflow: hidden; - } - - article img { - width: 100%; - } - - #wrapper { - min-width: 100%; - display: flex; - justify-content: center; - align-items: flex-start; - overflow: scroll; - } - - .page { - min-width: 50%; - max-width: 50%; - overflow: scroll; - } - .not-desktop { - display: none !important; - } - - div#bottom-bar { - margin: 0 0 20px 0; - } - - div#bottom-bar div.button-left img { - width: 50px; - } - - div#bottom-bar div.button-right img { - width: 50px; - } - - div#bottom-bar div.button-center img { - width: 50px; - } - - div#bottom-bar div.button-left:hover img { - width: 50px; - } - - div#bottom-bar div.button-right:hover img { - width: 50px; - } - - div#bottom-bar div.button-center:hover img { - width: 50px; - } - - div#top-bar div.button-left img { - width: 50px; - } - - div#top-bar div.button-right img { - width: 50px; - } - - div#top-bar div.button-center img { - width: 50px; - } - - div#top-bar div.button-left:hover img { - width: 50px; - } - - div#top-bar div.button-right:hover img { - width: 50px; - } - - div#top-bar div.button-center:hover img { - width: 50px; - } - - html, - body { - font-family: "Roboto" !important; - font-weight: 400; - position: relative; - margin: 0px; - padding: 0px; - font-size: 1.2rem; - line-height: 1.4rem; - max-height: 100%; - max-width: 100%; - height: 100%; - width: 100%; - max-width: 100vw; - overflow: scroll; - background: white; - } - - div#message-input { - position: fixed; - z-index: 5; - background: none; - height: 40px; - padding: 5px; - bottom: 65px; - max-width: 99vw !important; - min-width: 99vw !important; - display: none; - } - - div#intro img { - top: 150px; - } -} diff --git a/webpage/assets/assets/css/marker-icon.png b/webpage/assets/assets/css/marker-icon.png deleted file mode 100644 index 950edf2..0000000 Binary files a/webpage/assets/assets/css/marker-icon.png and /dev/null differ diff --git a/webpage/assets/assets/css/qr-reader.css b/webpage/assets/assets/css/qr-reader.css deleted file mode 100644 index d78d4a1..0000000 --- a/webpage/assets/assets/css/qr-reader.css +++ /dev/null @@ -1,62 +0,0 @@ -div#qr-screen { - top: 0; - left: 0; - position: fixed; - z-index: 200000; - display: block; - height: 100vh; - width: 100vw; - z-index: 2000000000000; - display: none; -} - -#video { - position: absolute; - top: 0; - left: 0; - height: 100%; - width: 100%; - object-fit: cover; -} - -#corner-nw, -#corner-no, -#corner-so, -#corner-sw { - border: #fff 6px solid; - height: 30px; - position: fixed; - width: 30px; -} - -#corner-nw { - border-bottom: 0; - border-right: 0; - border-top-left-radius: 20px; - left: 20px; - top: 20px; -} - -#corner-no { - border-bottom: 0; - border-left: 0; - border-top-right-radius: 20px; - right: 20px; - top: 20px; -} - -#corner-so { - border-bottom-right-radius: 20px; - border-left: 0; - border-top: 0; - bottom: 20px; - right: 20px; -} - -#corner-sw { - border-bottom-left-radius: 20px; - border-right: 0; - border-top: 0; - bottom: 20px; - left: 20px; -} diff --git a/webpage/assets/assets/fonts/Roboto-Regular.ttf b/webpage/assets/assets/fonts/Roboto-Regular.ttf deleted file mode 100644 index ddf4bfa..0000000 Binary files a/webpage/assets/assets/fonts/Roboto-Regular.ttf and /dev/null differ diff --git a/webpage/assets/assets/icons/apple-touch-icon.png b/webpage/assets/assets/icons/apple-touch-icon.png deleted file mode 100644 index 32d448b..0000000 Binary files a/webpage/assets/assets/icons/apple-touch-icon.png and /dev/null differ diff --git a/webpage/assets/assets/icons/favicon.ico b/webpage/assets/assets/icons/favicon.ico deleted file mode 100644 index 023df61..0000000 Binary files a/webpage/assets/assets/icons/favicon.ico and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-112-112.png b/webpage/assets/assets/icons/icon-112-112.png deleted file mode 100644 index c3df68f..0000000 Binary files a/webpage/assets/assets/icons/icon-112-112.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-112-112.svg b/webpage/assets/assets/icons/icon-112-112.svg deleted file mode 100644 index 46c08d7..0000000 --- a/webpage/assets/assets/icons/icon-112-112.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml - -flopflopflopflopflopflop diff --git a/webpage/assets/assets/icons/icon-192-maskable.png b/webpage/assets/assets/icons/icon-192-maskable.png deleted file mode 100644 index e3e6d04..0000000 Binary files a/webpage/assets/assets/icons/icon-192-maskable.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-192.png b/webpage/assets/assets/icons/icon-192.png deleted file mode 100644 index 03c48b1..0000000 Binary files a/webpage/assets/assets/icons/icon-192.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-512-maskable.png b/webpage/assets/assets/icons/icon-512-maskable.png deleted file mode 100644 index 13babc0..0000000 Binary files a/webpage/assets/assets/icons/icon-512-maskable.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-512.png b/webpage/assets/assets/icons/icon-512.png deleted file mode 100644 index 83f6fa2..0000000 Binary files a/webpage/assets/assets/icons/icon-512.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-56-56.png b/webpage/assets/assets/icons/icon-56-56.png deleted file mode 100644 index 0431e9f..0000000 Binary files a/webpage/assets/assets/icons/icon-56-56.png and /dev/null differ diff --git a/webpage/assets/assets/icons/icon-56-56.svg b/webpage/assets/assets/icons/icon-56-56.svg deleted file mode 100644 index 11e4da5..0000000 --- a/webpage/assets/assets/icons/icon-56-56.svg +++ /dev/null @@ -1,149 +0,0 @@ - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml - -flopflopflopflopflopflop diff --git a/webpage/assets/assets/icons/intro.svg b/webpage/assets/assets/icons/intro.svg deleted file mode 100644 index b729021..0000000 --- a/webpage/assets/assets/icons/intro.svg +++ /dev/null @@ -1,231 +0,0 @@ - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml - -flopflopflopflopflopflop diff --git a/webpage/assets/assets/image/back.svg b/webpage/assets/assets/image/back.svg deleted file mode 100644 index efd6c47..0000000 --- a/webpage/assets/assets/image/back.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/call.svg b/webpage/assets/assets/image/call.svg deleted file mode 100644 index e6e00d1..0000000 --- a/webpage/assets/assets/image/call.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/cancel.svg b/webpage/assets/assets/image/cancel.svg deleted file mode 100644 index 5ba0a7e..0000000 --- a/webpage/assets/assets/image/cancel.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - diff --git a/webpage/assets/assets/image/cute-monster.png b/webpage/assets/assets/image/cute-monster.png deleted file mode 100644 index b6e6d30..0000000 Binary files a/webpage/assets/assets/image/cute-monster.png and /dev/null differ diff --git a/webpage/assets/assets/image/delete.svg b/webpage/assets/assets/image/delete.svg deleted file mode 100644 index 634159e..0000000 --- a/webpage/assets/assets/image/delete.svg +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/eye.svg b/webpage/assets/assets/image/eye.svg deleted file mode 100644 index b063ae8..0000000 --- a/webpage/assets/assets/image/eye.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/id.svg b/webpage/assets/assets/image/id.svg deleted file mode 100644 index ed0db5c..0000000 --- a/webpage/assets/assets/image/id.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - # - diff --git a/webpage/assets/assets/image/image.svg b/webpage/assets/assets/image/image.svg deleted file mode 100644 index 08a3e83..0000000 --- a/webpage/assets/assets/image/image.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/link.svg b/webpage/assets/assets/image/link.svg deleted file mode 100644 index 11a4482..0000000 --- a/webpage/assets/assets/image/link.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - diff --git a/webpage/assets/assets/image/logo.svg b/webpage/assets/assets/image/logo.svg deleted file mode 100644 index 7a3c917..0000000 --- a/webpage/assets/assets/image/logo.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon image/svg+xml - -flopflopflopflopflopflop diff --git a/webpage/assets/assets/image/minus.svg b/webpage/assets/assets/image/minus.svg deleted file mode 100644 index d61b6a7..0000000 --- a/webpage/assets/assets/image/minus.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - _ - - - diff --git a/webpage/assets/assets/image/monster.svg b/webpage/assets/assets/image/monster.svg deleted file mode 100644 index 23a45e2..0000000 --- a/webpage/assets/assets/image/monster.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - diff --git a/webpage/assets/assets/image/no-monster.svg b/webpage/assets/assets/image/no-monster.svg deleted file mode 100644 index 878295a..0000000 --- a/webpage/assets/assets/image/no-monster.svg +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/option.svg b/webpage/assets/assets/image/option.svg deleted file mode 100644 index de07fd7..0000000 --- a/webpage/assets/assets/image/option.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/pencil.svg b/webpage/assets/assets/image/pencil.svg deleted file mode 100644 index 88ecb3c..0000000 --- a/webpage/assets/assets/image/pencil.svg +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/person.svg b/webpage/assets/assets/image/person.svg deleted file mode 100644 index d3df7a1..0000000 --- a/webpage/assets/assets/image/person.svg +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/play.svg b/webpage/assets/assets/image/play.svg deleted file mode 100644 index a714d7a..0000000 --- a/webpage/assets/assets/image/play.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/plus.svg b/webpage/assets/assets/image/plus.svg deleted file mode 100644 index 5d5b041..0000000 --- a/webpage/assets/assets/image/plus.svg +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - + - - - diff --git a/webpage/assets/assets/image/qr.svg b/webpage/assets/assets/image/qr.svg deleted file mode 100644 index 18d5984..0000000 --- a/webpage/assets/assets/image/qr.svg +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/record-live.svg b/webpage/assets/assets/image/record-live.svg deleted file mode 100644 index 172c280..0000000 --- a/webpage/assets/assets/image/record-live.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - diff --git a/webpage/assets/assets/image/record.svg b/webpage/assets/assets/image/record.svg deleted file mode 100644 index 8564864..0000000 --- a/webpage/assets/assets/image/record.svg +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - diff --git a/webpage/assets/assets/image/save.svg b/webpage/assets/assets/image/save.svg deleted file mode 100644 index 6b56d15..0000000 --- a/webpage/assets/assets/image/save.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/webpage/assets/assets/image/select.svg b/webpage/assets/assets/image/select.svg deleted file mode 100644 index f6d9b55..0000000 --- a/webpage/assets/assets/image/select.svg +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - diff --git a/webpage/assets/assets/image/send.svg b/webpage/assets/assets/image/send.svg deleted file mode 100644 index 49fec78..0000000 --- a/webpage/assets/assets/image/send.svg +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - diff --git a/webpage/assets/assets/js/helper.js b/webpage/assets/assets/js/helper.js deleted file mode 100644 index e3fb49e..0000000 --- a/webpage/assets/assets/js/helper.js +++ /dev/null @@ -1,841 +0,0 @@ -"use strict"; - -import { status } from "../../index.js"; - -export const month = [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December", -]; - -export let setTabindex = () => { - let visibleElements = document.querySelectorAll( - '.item:not([style*="display: none"])' - ); - - visibleElements.forEach((element, index) => { - if (getComputedStyle(element).display !== "none") { - element.setAttribute("tabindex", index); - } else { - element.removeAttribute("tabindex"); - } - }); -}; - -export let load_ads = function () { - var js = document.createElement("script"); - js.type = "text/javascript"; - js.src = "assets/js/kaiads.v5.min.js"; - - js.onload = function () { - getKaiAd({ - publisher: "4408b6fa-4e1d-438f-af4d-f3be2fa97208", - app: "flop", - slot: "flop", - test: 0, - timeout: 10000, - h: 120, - w: 240, - container: document.getElementById("KaiOSads-Wrapper"), - onerror: (err) => console.error("Error:", err), - onready: (ad) => { - // user clicked the ad - ad.on("click", () => console.log("click event")); - - // user closed the ad (currently only with fullscreen) - ad.on("close", () => console.log("close event")); - - // the ad succesfully displayed - ad.on("display", () => { - setTabindex(); - }); - - // Ad is ready to be displayed - // calling 'display' will display the ad - ad.call("display", { - navClass: "item", - tabindex: 2, - display: "block", - }); - }, - }); - }; - document.head.appendChild(js); -}; - -export function generateRandomString(length) { - const characters = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - let result = ""; - - for (let i = 0; i < length; i++) { - const randomIndex = Math.floor(Math.random() * characters.length); - result += characters.charAt(randomIndex); - } - - return result; -} - -//polyfill -if (window.NodeList && !NodeList.prototype.forEach) { - NodeList.prototype.forEach = Array.prototype.forEach; -} - -let watchId = null; // Variable to store the watch ID globally - -export const geolocation = function ( - callback, - autoupdate = false, - stopUpdate = false -) { - let n = document.getElementById("side-toast"); - if (n) { - n.style.transform = "translate(0vw,0px)"; - n.innerHTML = "Determining position..."; - } - - let showPosition = function (position) { - callback(position, autoupdate); - if (n) { - n.style.transform = "translate(-100vw,0px)"; - n.innerHTML = ""; - } - }; - - let error = function (error) { - console.log(error.code); - - switch (error.code) { - case error.PERMISSION_DENIED: - side_toaster("Location not provided", 2000); - break; - case error.POSITION_UNAVAILABLE: - side_toaster("Current location not available", 2000); - break; - case error.TIMEOUT: - case 3: - side_toaster("Current location not available", 2000); - break; - default: - side_toaster("Current location not available", 2000); - break; - } - - if (n) { - n.style.transform = "translate(-100vw,0px)"; - n.innerHTML = ""; - } - }; - - if (stopUpdate && window.watchId !== undefined) { - navigator.geolocation.clearWatch(window.watchId); - window.watchId = null; - if (n) { - n.style.transform = "translate(-100vw,0px)"; - n.innerHTML = ""; - } - } else { - if (navigator.geolocation) { - if (autoupdate) { - window.watchId = navigator.geolocation.watchPosition( - showPosition, - error, - { - enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0, - } - ); - } else { - navigator.geolocation.getCurrentPosition(showPosition, error, { - enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0, - }); - } - } else { - side_toaster("Geolocation is not supported by this browser.", 2000); - if (n) { - n.style.transform = "translate(-100vw,0px)"; - n.innerHTML = ""; - } - } - } -}; - -export let clipboard = function () { - try { - let text = window.location.origin + "/#!/intro?id=" + status.current_room; - - let input = document.createElement("input"); - input.setAttribute("value", text); - document.body.appendChild(input); - input.select(); - let result = document.execCommand("copy"); - document.body.removeChild(input); - side_toaster( - "You can now open an app of your choice and invite a person to chat, the address that leads to the chat room is in your clipboard", - 3000 - ); - - return result; // Returns true if the copy was successful, false otherwise - } catch (error) { - console.error("Failed to copy text: ", error); - return false; // Returns false if an error occurred - } -}; - -export function share(url) { - return new Promise((resolve) => { - try { - var activity = new MozActivity({ - name: "share", - data: { - type: "url", - url: url, - }, - }); - - activity.onsuccess = function () { - resolve(true); - }; - - activity.onerror = function () { - console.log("The activity encountered an error: " + this.error); - resolve(false); - }; - } catch (e) { - // Handle the case where MozActivity is not available - } - - if ("b2g" in navigator) { - let activity = new WebActivity("share", { - type: "url", - url: url, - }); - activity.start().then( - () => { - console.log("WebActivity successful"); - resolve(true); - }, - (err) => { - console.log(err); - resolve(false); - } - ); - } - - if (status.notKaiOS) { - let success = clipboard(); - if (success) { - console.log("Text copied to clipboard successfully."); - resolve(true); - } else { - console.log("Failed to copy text to clipboard."); - resolve(false); - } - } - - if (status.os !== "unknow") { - if (navigator.share) { - navigator - .share({ - title: "Flop P2P-Messenger", - text: "Flop P2P-Messenger", - url: url, - }) - .then(() => { - console.log("Successful share"); - resolve(true); - }) - .catch((error) => { - console.log("Error sharing", error); - resolve(false); - }); - } else { - console.log("Share not supported on this browser, do it the old way."); - resolve(false); - } - } - }); -} - -export function detectMobileOS() { - const userAgent = navigator.userAgent || navigator.vendor || window.opera; - - // iOS detection - if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { - return "iOS"; - } - - // Android detection - if (/android/i.test(userAgent)) { - return "Android"; - } - - if ("b2g" in navigator || "b2g" in navigator) { - // return "KaiOS"; - } - - // Other mobile OS or not a mobile device - return false; -} - -export function open(url) { - try { - var activity = new MozActivity({ - name: "view", - data: { - type: "url", - url: url, - }, - }); - - activity.onsuccess = function () {}; - - activity.onerror = function () { - console.log("The activity encounter en error: " + this.error); - }; - } catch (e) {} - - if ("b2g" in navigator) { - let activity = new WebActivity("view", { - type: "url", - url: url, - }); - activity.start().then( - (rv) => { - console.log("Results passed back from activity handler:"); - console.log(rv); - }, - (err) => { - console.log(err); - } - ); - } -} - -export var sms = (n) => { - const smsLink = document.createElement("a"); - - smsLink.href = "sms:" + n; - smsLink.textContent = ""; - document.body.appendChild(smsLink); - smsLink.addEventListener("click", function () {}); - smsLink.click(); - document.body.removeChild(smsLink); -}; - -export var email = (n) => { - var email = ""; - var subject = ""; - var emailBody = n; - - const smsLink = document.createElement("a"); - smsLink.href = - "mailto:" + email + "?subject=" + subject + "&body=" + emailBody; - smsLink.textContent = ""; - document.body.appendChild(smsLink); - smsLink.addEventListener("click", function () {}); - smsLink.click(); - document.body.removeChild(smsLink); -}; - -//check if internet connection -function check_iconnection() { - function updateOfflineStatus() { - toaster("Your Browser is offline", 15000); - return false; - } - - window.addEventListener("offline", updateOfflineStatus); -} - -function delete_file(filename) { - var sdcard = navigator.getDeviceStorages("sdcard"); - var request = sdcard[1].delete(filename); - - request.onsuccess = function () { - //toaster("File deleted", 2000); - }; - - request.onerror = function () { - //toaster("Unable to delete the file: " + this.error, 2000); - }; -} - -function get_file(filename) { - var sdcard = navigator.getDeviceStorages("sdcard"); - var request = sdcard[1].get(filename); - - request.onsuccess = function () { - var file = this.result; - //alert("Get the file: " + file.name); - }; - - request.onerror = function () { - //alert("Unable to get the file: " + this.error); - }; -} - -function write_file(data, filename) { - var sdcard = navigator.getDeviceStorages("sdcard"); - var file = new Blob([data], { - type: "text/plain", - }); - var request = sdcard[1].addNamed(file, filename); - - request.onsuccess = function () { - var name = this.result; - //toaster('File "' + name + '" successfully wrote on the sdcard storage area', 2000); - }; - - // An error typically occur if a file with the same name already exist - request.onerror = function () { - toaster("Unable to write the file: " + this.error, 2000); - }; -} - -export let sort_array = function (arr, item_key, type) { - if (type == "date") { - arr.sort((a, b) => { - let da = new Date(a[item_key]), - db = new Date(b[item_key]); - return da - db; - }); - } - - //sort by number - if (type == "number") { - arr.sort((a, b) => { - return b[item_key] - a[item_key]; - }); - } - //sort by string - if (type == "string") { - arr.sort((a, b) => { - let fa = a[item_key].toLowerCase(), - fb = b[item_key].toLowerCase(); - - if (fa < fb) { - return -1; - } - if (fa > fb) { - return 1; - } - return 0; - }); - } -}; - -let uid = function () { - function _p8(s) { - var p = (Math.random().toString(16) + "000000000").substr(2, 8); - return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; - } - return "greg@" + _p8() + _p8(true) + _p8(true) + _p8(); -}; - -let notification = ""; -let notify = function (param_title, param_text, param_silent) { - var options = { - body: param_text, - silent: param_silent, - requireInteraction: false, - //actions: [{ action: "test", title: "test" }], - }; - - // Let's check whether notification permissions have already been granted - if (Notification.permission === "granted") { - // If it's okay let's create a notification - notification = new Notification(param_title, options); - } - - // Otherwise, we need to ask the user for permission - if (Notification.permission !== "denied") { - Notification.requestPermission().then(function (permission) { - // If the user accepts, let's create a notification - if (permission === "granted") { - notification = new Notification(param_title, options); - } - }); - } -}; - -//https://notifications.spec.whatwg.org/#dictdef-notificationaction - -export let pushLocalNotification = function (title, body) { - window.Notification.requestPermission().then((result) => { - var notification = new window.Notification(title, { - body: body, - //requireInteraction: true, - }); - - notification.onerror = function (err) { - console.log(err); - }; - notification.onclick = function (event) { - if (window.navigator.mozApps) { - var request = window.navigator.mozApps.getSelf(); - request.onsuccess = function () { - if (request.result) { - notification.close(); - request.result.launch(); - } - }; - } else { - window.open(document.location.origin, "_blank"); - } - }; - notification.onshow = function () { - // notification.close(); - }; - }); -}; -if (navigator.mozSetMessageHandler) { - navigator.mozSetMessageHandler("alarm", function (message) { - pushLocalNotification("Greg", message.data.note); - }); -} - -export function validate(url) { - var pattern = - /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; - if (pattern.test(url)) { - return true; - } - return false; -} - -export let getManifest = function (callback) { - if (navigator.mozApps) { - let self = navigator.mozApps.getSelf(); - self.onsuccess = function () { - callback(self.result); - }; - self.onerror = function () {}; - } else { - fetch("/manifest.webmanifest") - .then((r) => r.json()) - .then((parsedResponse) => callback(parsedResponse)); - } -}; - -//top toaster -let queue = []; -let timeout; -export let toaster = function (text, time) { - queue.push({ text: text, time: time }); - if (queue.length === 1) { - toast_q(text, time); - } -}; - -let toast_q = function (text, time) { - var x = document.querySelector("div#toast"); - x.innerHTML = queue[0].text; - - x.style.transform = "translate(0px, 0px)"; - - timeout = setTimeout(function () { - timeout = null; - x.style.transform = "translate(0px, -100px)"; - queue = queue.slice(1); - if (queue.length > 0) { - setTimeout(() => { - toast_q(text, time); - }, 1000); - } - }, time); -}; - -//side toaster - -let queue_st = []; -export let side_toaster = function (text, time) { - queue_st.push({ text: text, time: time }); - if (queue_st.length === 1) { - toast_qq(text, time); - } -}; - -let toast_qq = function (text, time) { - var x = document.querySelector("div#side-toast"); - x.style.opacity = "100"; - x.innerHTML = queue_st[0].text; - - x.style.transform = "translate(0vh, 0vw)"; - - timeout = setTimeout(function () { - x.style.transform = "translate(-100vw,0px)"; - queue_st = queue.slice(1); - if (queue_st.length > 0) { - setTimeout(() => { - toast_qq(text, time); - }, 1000); - } - }, time); -}; - -//bottom bar -export let bottom_bar = function (left, center, right) { - document.querySelector("div#bottom-bar div.button-left").innerHTML = left; - document.querySelector("div#bottom-bar div.button-center").innerHTML = center; - document.querySelector("div#bottom-bar div.button-right").innerHTML = right; - - if (left == "" && center == "" && right == "") { - document.querySelector("div#bottom-bar").style.display = "none"; - } else { - document.querySelector("div#bottom-bar").style.display = "block"; - } -}; - -//top bar -export let top_bar = function (left, center, right) { - document.querySelector("div#top-bar div.button-left").innerHTML = left; - document.querySelector("div#top-bar div.button-center").innerHTML = center; - document.querySelector("div#top-bar div.button-right").innerHTML = right; - if (left == "" && center == "" && right == "") { - document.querySelector("div#top-bar").style.display = "none"; - } else { - document.querySelector("div#top-bar").style.display = "block"; - } -}; - -let lock; -let screenlock = function (stat) { - if (typeof window.navigator.requestWakeLock === "undefined") { - return false; - } - if (stat == "lock") { - lock = window.navigator.requestWakeLock("screen"); - lock.onsuccess = function () {}; - lock.onerror = function () { - alert("An error occurred: " + this.error.name); - }; - } - - if (stat == "unlock") { - if (lock.topic == "screen") { - lock.unlock(); - } - } -}; - -//pick image -export let pick_image = function (callback) { - try { - let pick = new MozActivity({ - name: "pick", - data: { - type: ["image/png", "image/jpg", "image/jpeg"], - }, - }); - - pick.onsuccess = function (e) { - console.log("success" + this.result); - callback(this.result); - }; - - pick.onerror = function () { - console.log("The activity encounter en error: " + this.error); - }; - } catch (e) { - console.log(e); - } - - if ("b2g" in navigator) { - let pick = new WebActivity("pick", { - type: "image/*", - }); - - pick.start().then( - (rv) => { - callback(rv); - }, - (err) => { - console.log(err); - } - ); - } - if (status.notKaiOS) { - const fileInput = document.createElement("input"); - fileInput.type = "file"; - fileInput.accept = "image/*"; - fileInput.style.display = "none"; - document.body.appendChild(fileInput); - - fileInput.click(); - - fileInput.addEventListener("change", function (event) { - const file = event.target.files[0]; - - if (file) { - callback({ - blob: file, - filename: file.name, - filetype: file.type, - }); - } - }); - } -}; - -//delete file -export function deleteFile(storage, path, notification) { - let sdcard = navigator.getDeviceStorages("sdcard"); - - let requestDel = sdcard[storage].delete(path); - - requestDel.onsuccess = function () { - if (notification == "notification") { - helper.toaster( - 'File "' + name + '" successfully deleted frome the sdcard storage area' - ); - } - }; - - requestDel.onerror = function () { - helper.toaster("Unable to delete the file: " + this.error); - }; -} - -export let downloadFile = function (filename, data, callback) { - if (status.notKaiOS) { - const imgSrc = data; - - // Create a link element - const a = document.createElement("a"); - a.href = imgSrc; - a.download = filename; - - // Append the link to the body - document.body.appendChild(a); - - // Programmatically click the link to trigger the download - a.click(); - - // Remove the link from the document - document.body.removeChild(a); - } else { - let sdcard = ""; - - try { - sdcard = navigator.getDeviceStorage("sdcard"); - } catch (e) {} - - if ("b2g" in navigator) { - try { - sdcard = navigator.b2g.getDeviceStorage("sdcard"); - } catch (e) {} - } - - fetch(data) - .then((res) => res.blob()) - .then((blob) => { - let request = sdcard.addNamed(blob, filename); - request.onsuccess = function () { - side_toaster("file downloaded", 2000); - }; - - request.onerror = function () { - side_toaster( - "Unable to download the file, the file probably already exists.", - 4000 - ); - }; - }) - .catch((error) => { - side_toaster("Unable to download the file", 2000); - }); - } -}; - -export function createAudioRecorder() { - let mediaRecorder; - let recordedChunks = []; - let isInitialized = false; - let stream; - - async function init() { - try { - stream = await navigator.mediaDevices.getUserMedia({ audio: true }); - mediaRecorder = new MediaRecorder(stream, { mimeType: "audio/webm" }); - - mediaRecorder.ondataavailable = (event) => { - console.log(event); - - if (event.data.size > 0) { - recordedChunks.push(event.data); - console.log(event.data); - } - }; - - mediaRecorder.addEventListener("error", (event) => { - console.error(`Error recording stream: ${event.error.name}`); - }); - - isInitialized = true; // Set the flag to true when initialization is complete - } catch (error) { - console.error("Error accessing media devices.", error); - } - } - - async function startRecording() { - if (!isInitialized) { - await init(); // Ensure initialization is complete before starting recording - } - recordedChunks = []; // Clear any previous recordings - mediaRecorder.start(); - } - - function stopRecording() { - return new Promise((resolve) => { - mediaRecorder.onstop = () => { - let mimeType = ""; - - if (MediaRecorder.isTypeSupported("audio/webm; codecs=opus")) { - mimeType = "audio/webm; codecs=opus"; - } else if (MediaRecorder.isTypeSupported("audio/ogg; codecs=opus")) { - mimeType = "audio/ogg; codecs=opus"; - } else if (MediaRecorder.isTypeSupported("audio/mpeg")) { - mimeType = "audio/mpeg"; - } else { - console.warn("No supported MIME type found for audio recording."); - } - - const blob = new Blob(recordedChunks, { type: mimeType }); - - recordedChunks = []; - resolve(blob); - }; - mediaRecorder.stop(); - }); - } - - function cleanup() { - if (stream) { - stream.getTracks().forEach((track) => track.stop()); - } - mediaRecorder = null; - recordedChunks = []; - stream = null; - isInitialized = false; - } - - // Return an object with the methods to start and stop recording - return { - startRecording, - stopRecording, - cleanup, - }; -} diff --git a/webpage/assets/assets/js/kaiads.v5.min.js b/webpage/assets/assets/js/kaiads.v5.min.js deleted file mode 100644 index 228f6db..0000000 --- a/webpage/assets/assets/js/kaiads.v5.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @license - * You may not use this file except in compliance with the KaiAds SDK Agreement. - * You may obtain a copy of the KaiAds SDK Agreement at - * https://www.kaiostech.com/sdk-agreement/ - */ -var a0_0x23b3=['toString','mozApps','object','reject','flags','appId','data-','notInterested','link[rel=\x22manifest\x22]','getBoundingClientRect','prototype','getApp','REJECTED','timeout','hidden','reportThisAdAs','manifest','construct','&o=','tabindex','head','json','name','addEventListener','split','Set','ArrowDown','acceptOnScreenPercent','getSelf','indexOf','display','vfsAdId','set','children','parse','UNKNOWN_API_CALLED','onerror','constructor','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','args','destroy','string','AppsManager','websocket','createElement','call','&s=','Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','kaiads-options-overlay','concat','get','navClass','updateUrl','join','dataset','ignoreKeys','__proto__','fullscreen','DOCBODY_NOT_READY','has','getPrototypeOf','data','Enter','manifestURL','innerHeight','replace','AD_IFRAME_GONE','setAttribute','LOADING','inappropriate','secrettoken','Arguments','ready','___API___postOpenWin','post','closed','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','div','onsuccess','ACTIVE','href','next','location','adConfig','classList','container','overflow','/manifest.webmanifest','options-header','.localhost','push','undefined','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','textContent','reportReason','meta[name=\x22theme-color\x22]','option','wrap','function','event','1.5.0','onLine','hostname','click','select','slotId','isArray','iframe','stringify','create','error','innerText','iterator','userAgent','ONREADY_FUNC_MISSING','add','test','keydownhandler','contentWindow','AD_REQ_TIMED_OUT','width','/static/v3/frame.html?','auto','meta','\x0a\x20\x20\x20\x20.kaiads-options-overlay\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20rgba(0,\x200,\x200,\x20.9);\x0a\x20\x20\x20\x20\x20\x20z-index:\x2099999;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.kaiads-options-container\x20{\x0a\x20\x20\x20\x20\x20\x20font-family:\x20\x22Open\x20Sans\x22;\x0a\x20\x20\x20\x20\x20\x20background-color:\x20white;\x0a\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20right:\x200;\x0a\x20\x20\x20\x20\x20\x20bottom:\x200;\x0a\x20\x20\x20\x20\x20\x20z-index:\x2099999;\x0a\x20\x20\x20\x20\x20\x20margin-bottom:\x202rem;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.kaiads-options-container\x20.options-header\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20#ccc;\x0a\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x205px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.kaiads-options-container\x20.options-footer\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20#ccc;\x0a\x20\x20\x20\x20\x20\x20text-align:\x20center;\x0a\x20\x20\x20\x20\x20\x20padding:\x205px;\x0a\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.kaiads-options-container\x20.option\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20block;\x0a\x20\x20\x20\x20\x20\x20padding:\x200.5rem;\x0a\x20\x20\x20\x20\x20\x20cursor:\x20none;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.kaiads-options-container\x20.option:focus\x20{\x0a\x20\x20\x20\x20\x20\x20background-color:\x20#8000ff;\x0a\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20}\x0a\x20\x20','cssText',';\x20samesite=strict','publisherId','options-footer','@babel/helpers\x20-\x20typeof','nextSibling','querySelector','onloadend','listeners','bind','@@iterator','no\x20app\x20manger','theme-color','previousSibling','initiallyHideAd','result','getOwnPropertyNames','stopPropagation','recordSuccess','source','target','done','toLowerCase','recordFailure','isFullscreen','onready','misleading','key','frame','NOT_INTERESTED','[native\x20code]','banner','0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','catch','INAPPROPRIATE','ttl','innerWidth','state','top','blacklistCache','INVOKE_API_FAILED','origin','code','NOT_SET','focus','assign','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','remove','height','getElementsByTagName','-1000%','blur','appendChild','valueOf','body','item','filter','keydown','onloadstart','then','SEEN_MUTIPLE_TIMES','left','relative','activeElement','___API___','removeEventListener','apply','background','length','cookie','BLACKLISTED','ArrowUp','localhost','forEach','style','bottom','symbol','preventDefault',';\x20max-age=','transparent','PREV_SUCCESS','success','postMessage','seenMultipleTimes'];(function(_0x496b9b,_0x23b381){var _0x54e6f7=function(_0x54c153){while(--_0x54c153){_0x496b9b['push'](_0x496b9b['shift']());}};_0x54e6f7(++_0x23b381);}(a0_0x23b3,0x198));var a0_0x54e6=function(_0x496b9b,_0x23b381){_0x496b9b=_0x496b9b-0x0;var _0x54e6f7=a0_0x23b3[_0x496b9b];return _0x54e6f7;};'use strict';function _toConsumableArray(_0x45099e){return _arrayWithoutHoles(_0x45099e)||_iterableToArray(_0x45099e)||_unsupportedIterableToArray(_0x45099e)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError(a0_0x54e6('0x56'));}function _iterableToArray(_0x50d0ae){if(typeof Symbol!==a0_0x54e6('0x65')&&_0x50d0ae[Symbol[a0_0x54e6('0x7a')]]!=null||_0x50d0ae[a0_0x54e6('0x91')]!=null)return Array['from'](_0x50d0ae);}function _arrayWithoutHoles(_0x2a6bc8){if(Array[a0_0x54e6('0x74')](_0x2a6bc8))return _arrayLikeToArray(_0x2a6bc8);}function _slicedToArray(_0x29bcae,_0x5158f1){return _arrayWithHoles(_0x29bcae)||_iterableToArrayLimit(_0x29bcae,_0x5158f1)||_unsupportedIterableToArray(_0x29bcae,_0x5158f1)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError(a0_0x54e6('0x39'));}function _unsupportedIterableToArray(_0x57a0ac,_0x41e53a){if(!_0x57a0ac)return;if(typeof _0x57a0ac===a0_0x54e6('0x33'))return _arrayLikeToArray(_0x57a0ac,_0x41e53a);var _0x270632=Object[a0_0x54e6('0x14')][a0_0x54e6('0xa')][a0_0x54e6('0x37')](_0x57a0ac)['slice'](0x8,-0x1);if(_0x270632==='Object'&&_0x57a0ac[a0_0x54e6('0x2f')])_0x270632=_0x57a0ac[a0_0x54e6('0x2f')][a0_0x54e6('0x20')];if(_0x270632==='Map'||_0x270632===a0_0x54e6('0x23'))return Array['from'](_0x57a0ac);if(_0x270632===a0_0x54e6('0x51')||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x270632))return _arrayLikeToArray(_0x57a0ac,_0x41e53a);}function _arrayLikeToArray(_0x40ae1e,_0x38402d){if(_0x38402d==null||_0x38402d>_0x40ae1e[a0_0x54e6('0xcb')])_0x38402d=_0x40ae1e[a0_0x54e6('0xcb')];for(var _0x577cd9=0x0,_0x122b64=new Array(_0x38402d);_0x577cd9<_0x38402d;_0x577cd9++){_0x122b64[_0x577cd9]=_0x40ae1e[_0x577cd9];}return _0x122b64;}function _iterableToArrayLimit(_0x2d7d98,_0x528aba){var _0x3b2a65=_0x2d7d98&&(typeof Symbol!=='undefined'&&_0x2d7d98[Symbol['iterator']]||_0x2d7d98[a0_0x54e6('0x91')]);if(_0x3b2a65==null)return;var _0x42e716=[],_0x22b2b3=!![],_0x5d529a=![],_0x4c894a,_0x5e7821;try{for(_0x3b2a65=_0x3b2a65[a0_0x54e6('0x37')](_0x2d7d98);!(_0x22b2b3=(_0x4c894a=_0x3b2a65[a0_0x54e6('0x5b')]())[a0_0x54e6('0x9c')]);_0x22b2b3=!![]){_0x42e716[a0_0x54e6('0x64')](_0x4c894a['value']);if(_0x528aba&&_0x42e716['length']===_0x528aba)break;}}catch(_0x3ca646){_0x5d529a=!![],_0x5e7821=_0x3ca646;}finally{try{if(!_0x22b2b3&&_0x3b2a65['return']!=null)_0x3b2a65['return']();}finally{if(_0x5d529a)throw _0x5e7821;}}return _0x42e716;}function _arrayWithHoles(_0x4dd46e){if(Array['isArray'](_0x4dd46e))return _0x4dd46e;}function _typeof(_0x2885de){a0_0x54e6('0x8b');return typeof Symbol===a0_0x54e6('0x6c')&&typeof Symbol['iterator']===a0_0x54e6('0x2')?_typeof=function _0x22d23f(_0x33ce22){return typeof _0x33ce22;}:_typeof=function _0x386e12(_0x321714){return _0x321714&&typeof Symbol===a0_0x54e6('0x6c')&&_0x321714['constructor']===Symbol&&_0x321714!==Symbol[a0_0x54e6('0x14')]?a0_0x54e6('0x2'):typeof _0x321714;},_typeof(_0x2885de);}function _classCallCheck(_0xc5918d,_0x195da6){if(!(_0xc5918d instanceof _0x195da6))throw new TypeError(a0_0x54e6('0x66'));}function _inherits(_0x45ad70,_0x348ea9){if(typeof _0x348ea9!=='function'&&_0x348ea9!==null)throw new TypeError(a0_0x54e6('0xb5'));_0x45ad70['prototype']=Object[a0_0x54e6('0x77')](_0x348ea9&&_0x348ea9['prototype'],{'constructor':{'value':_0x45ad70,'writable':!![],'configurable':!![]}});if(_0x348ea9)_setPrototypeOf(_0x45ad70,_0x348ea9);}function _createSuper(_0x174a2b){var _0x3e727e=_isNativeReflectConstruct();return function _0x4df351(){var _0x35c407=_getPrototypeOf(_0x174a2b),_0x3c03a5;if(_0x3e727e){var _0x446ea7=_getPrototypeOf(this)['constructor'];_0x3c03a5=Reflect[a0_0x54e6('0x1b')](_0x35c407,arguments,_0x446ea7);}else _0x3c03a5=_0x35c407[a0_0x54e6('0xc9')](this,arguments);return _possibleConstructorReturn(this,_0x3c03a5);};}function _possibleConstructorReturn(_0x30f401,_0x439998){if(_0x439998&&(_typeof(_0x439998)===a0_0x54e6('0xc')||typeof _0x439998==='function'))return _0x439998;return _assertThisInitialized(_0x30f401);}function _assertThisInitialized(_0x1af641){if(_0x1af641===void 0x0)throw new ReferenceError(a0_0x54e6('0x30'));return _0x1af641;}function _wrapNativeSuper(_0x4890f){var _0x134b04=typeof Map===a0_0x54e6('0x6c')?new Map():undefined;return _wrapNativeSuper=function _0x1f377d(_0x1b73d9){if(_0x1b73d9===null||!_isNativeFunction(_0x1b73d9))return _0x1b73d9;if(typeof _0x1b73d9!==a0_0x54e6('0x6c'))throw new TypeError(a0_0x54e6('0xb5'));if(typeof _0x134b04!=='undefined'){if(_0x134b04[a0_0x54e6('0x45')](_0x1b73d9))return _0x134b04[a0_0x54e6('0x3c')](_0x1b73d9);_0x134b04[a0_0x54e6('0x2a')](_0x1b73d9,_0x2aa108);}function _0x2aa108(){return _construct(_0x1b73d9,arguments,_getPrototypeOf(this)['constructor']);}return _0x2aa108[a0_0x54e6('0x14')]=Object[a0_0x54e6('0x77')](_0x1b73d9[a0_0x54e6('0x14')],{'constructor':{'value':_0x2aa108,'enumerable':![],'writable':!![],'configurable':!![]}}),_setPrototypeOf(_0x2aa108,_0x1b73d9);},_wrapNativeSuper(_0x4890f);}function _construct(_0x468cb2,_0x511fc2,_0x561e2c){return _isNativeReflectConstruct()?_construct=Reflect[a0_0x54e6('0x1b')]:_construct=function _0xc24ab1(_0x5504f8,_0x2b9425,_0x390be6){var _0x42307a=[null];_0x42307a[a0_0x54e6('0x64')][a0_0x54e6('0xc9')](_0x42307a,_0x2b9425);var _0x399a6f=Function['bind'][a0_0x54e6('0xc9')](_0x5504f8,_0x42307a),_0x33e1cf=new _0x399a6f();if(_0x390be6)_setPrototypeOf(_0x33e1cf,_0x390be6[a0_0x54e6('0x14')]);return _0x33e1cf;},_construct['apply'](null,arguments);}function _isNativeReflectConstruct(){if(typeof Reflect===a0_0x54e6('0x65')||!Reflect[a0_0x54e6('0x1b')])return![];if(Reflect['construct']['sham'])return![];if(typeof Proxy===a0_0x54e6('0x6c'))return!![];try{return Boolean[a0_0x54e6('0x14')][a0_0x54e6('0xbc')][a0_0x54e6('0x37')](Reflect[a0_0x54e6('0x1b')](Boolean,[],function(){})),!![];}catch(_0xd10111){return![];}}function _isNativeFunction(_0x30e0ee){return Function['toString'][a0_0x54e6('0x37')](_0x30e0ee)['indexOf'](a0_0x54e6('0xa5'))!==-0x1;}function _setPrototypeOf(_0x165ce8,_0x50aab4){return _setPrototypeOf=Object['setPrototypeOf']||function _0x6bf620(_0x136aee,_0x2322a3){return _0x136aee[a0_0x54e6('0x42')]=_0x2322a3,_0x136aee;},_setPrototypeOf(_0x165ce8,_0x50aab4);}function _getPrototypeOf(_0x288d9b){return _getPrototypeOf=Object['setPrototypeOf']?Object[a0_0x54e6('0x46')]:function _0x292765(_0x5a55b2){return _0x5a55b2[a0_0x54e6('0x42')]||Object[a0_0x54e6('0x46')](_0x5a55b2);},_getPrototypeOf(_0x288d9b);}var getKaiAd=function(){var _0x586c4c=a0_0x54e6('0x6e'),_0x1fa76a={'DOCBODY_NOT_READY':0x1,'ONREADY_FUNC_MISSING':0x2,'AD_DIMEN_TOO_SMALL':0x3,'AD_IFRAME_GONE':0x4,'AD_REQ_TIMED_OUT':0x5,'SERVER_SAID_NO_AD':0x6,'FREQ_CAPPING':0x7,'MISSING_W_H':0x8,'BAD_SERVER_RESPONSE':0x9,'INVOKE_API_FAILED':0xb,'CANNOT_PROCESS_RESPONSE':0xd,'NO_SERVER_RESPONSE':0xe,'INVALID_TEST_PARAM':0xf,'DISPLAY_CALLED_MULTIPLE_TIMES':0x10,'CANNOT_FETCH_SETTINGS':0x11,'UNKNOWN_API_CALLED':0x12,'SDK_CANNOT_LOAD':0x13,'UNSUPPORTED_SDK_VER':0x14,'BLACKLISTED':0x15},_0x351bd1=0x64,_0x383725=function(_0x14d6bd){_inherits(_0x2de367,_0x14d6bd);var _0x323b3a=_createSuper(_0x2de367);function _0x2de367(_0xeed458){var _0xa0da87;return _classCallCheck(this,_0x2de367),_0xa0da87=_0x323b3a[a0_0x54e6('0x37')](this,_0xeed458),_0xa0da87[a0_0x54e6('0xb1')]=_0xeed458,_0xa0da87;}return _0x2de367;}(_wrapNativeSuper(Error)),_0x274fa4=function _0x5b621f(){var _0x33e3f9=new WeakSet();return function(_0x297532,_0x31d526){if(_typeof(_0x31d526)===a0_0x54e6('0xc')&&_0x31d526!==null){if(_0x33e3f9[a0_0x54e6('0x45')](_0x31d526))return;_0x33e3f9[a0_0x54e6('0x7d')](_0x31d526);}return _0x31d526;};},_0x248878=function _0x160f50(_0x234811){return _0x234811[a0_0x54e6('0x4b')](/[A-Z]/g,function(_0xe8805d){return'-'['concat'](_0xe8805d[a0_0x54e6('0x9d')]());});},_0x16e040=function _0x28311f(_0xca54c3,_0x1f23a4){var _0x2ca3a8=a0_0x54e6('0x10')[a0_0x54e6('0x3b')](_0x248878(_0xca54c3));return document[a0_0x54e6('0x8d')]('['['concat'](_0x2ca3a8,'=\x22')[a0_0x54e6('0x3b')](_0x1f23a4,'\x22]'));},_0x37c069='https://ssp.kaiads.com',_0x486a7f=_0x37c069+a0_0x54e6('0x83'),_0x49ad15=new WeakMap(),_0x5641f1=0xea60,_0x15505b={},_0xfccb70=function _0x5cca2b(){return document[a0_0x54e6('0xbd')];},_0x26ec46=function _0x5a6be9(){var _0x3a136e=crypto['getRandomValues'](new Uint16Array(0x20)),_0x389773=a0_0x54e6('0xa7'),_0x29b6f8=_0x389773[a0_0x54e6('0xcb')];return[]['map'][a0_0x54e6('0x37')](_0x3a136e,function(_0x2ea60d){return _0x389773[_0x2ea60d%_0x29b6f8];})[a0_0x54e6('0x3f')]('');},_0x2dd102=_0x26ec46(),_0x14f451=document[a0_0x54e6('0x8d')](a0_0x54e6('0x12')),_0x49fce9=null,_0x4e745f=/kaios/gi[a0_0x54e6('0x7e')](window['navigator'][a0_0x54e6('0x7b')])&&window[a0_0x54e6('0x5c')][a0_0x54e6('0x70')]['endsWith'](a0_0x54e6('0x63'));if(_0x4e745f){var _0x476e50=new lib_session['Session']();_0x476e50['open'](a0_0x54e6('0x35'),a0_0x54e6('0xcf'),a0_0x54e6('0x50'),{'onsessionconnected':function _0x25cc1b(){lib_apps[a0_0x54e6('0x34')][a0_0x54e6('0x3c')](_0x476e50)[a0_0x54e6('0xc2')](function(_0x36e958){_0x49fce9=_0x36e958;})[a0_0x54e6('0xa8')](function(_0x57dc10){});},'onsessiondisconnected':function _0x55870e(){_0x49fce9=null;}},!![]);}var _0x585419={'LOADING':0x1,'READY':0x2,'REJECTED':0x3};function _0xe1530c(_0x541d0e){var _0x2510dd=document['createElement']('style');_0x2510dd[a0_0x54e6('0x67')]=_0x541d0e,document[a0_0x54e6('0x1e')][a0_0x54e6('0xbb')](_0x2510dd);}_0xe1530c(a0_0x54e6('0x86'));var _0x335f97=function _0x404622(_0x644ffd){var _0x82f14e={};_0x82f14e[a0_0x54e6('0x5d')]=_0x644ffd,_0x82f14e['id']=_0x26ec46(),_0x82f14e[a0_0x54e6('0x41')]=[],_0x82f14e['listeners']={},_0x82f14e[a0_0x54e6('0xac')]=null;function _0x5707cd(_0x1f20da){if(_0x82f14e[a0_0x54e6('0xac')]===_0x1f20da)return;_0x1f20da===_0x585419['LOADING']&&typeof _0x644ffd[a0_0x54e6('0xc1')]===a0_0x54e6('0x6c')&&_0x644ffd[a0_0x54e6('0xc1')](),_0x82f14e[a0_0x54e6('0xac')]===_0x585419[a0_0x54e6('0x4e')]&&_0x1f20da!==_0x585419[a0_0x54e6('0x4e')]&&typeof _0x644ffd[a0_0x54e6('0x8e')]===a0_0x54e6('0x6c')&&_0x644ffd[a0_0x54e6('0x8e')](),_0x82f14e['state']=_0x1f20da;}return _0x82f14e[a0_0x54e6('0xd')]=function(_0x1bd858){_0x5707cd(_0x585419[a0_0x54e6('0x16')]);var _0x26a5d2=_0x82f14e[a0_0x54e6('0x5d')]['onerror']||console['error'];_0x26a5d2(_0x1bd858),_0x82f14e[a0_0x54e6('0x32')]();},_0x82f14e[a0_0x54e6('0x32')]=function(){var _0x2be5c6=_0x16e040(_0x2dd102,_0x82f14e['id']);_0x2be5c6&&_0x2be5c6[a0_0x54e6('0xb6')](),_0x15505b[a0_0x54e6('0x29')]===_0x82f14e['id']&&(_0x15505b[a0_0x54e6('0x29')]=null),clearTimeout(_0x82f14e['timeout']);},_0x82f14e['ready']=function(){var _0xf86712=arguments[a0_0x54e6('0xcb')]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:{};clearTimeout(_0x82f14e['timeout']),_0x5707cd(_0x585419['READY']),_0x82f14e[a0_0x54e6('0x5d')][a0_0x54e6('0xa0')](Object[a0_0x54e6('0xb4')]({},_0xf86712,{'call':function _0x3954f7(_0x121765,_0x257906){_0x82f14e['post'](_0x121765,_0x257906);},'on':function _0x2c15c3(_0x447074,_0x7830c){!_0x82f14e['listeners'][_0x447074]&&(_0x82f14e[a0_0x54e6('0x8f')][_0x447074]=[]),_0x82f14e[a0_0x54e6('0x8f')][_0x447074][a0_0x54e6('0x64')](_0x7830c);}}));},_0x82f14e['post']=function(_0x269268){if(!_0x82f14e['frame']||!_0x82f14e[a0_0x54e6('0xa3')][a0_0x54e6('0x80')])_0x82f14e[a0_0x54e6('0xd')](_0x1fa76a[a0_0x54e6('0x4c')]);else{var _0x5c3bb3={};_0x5c3bb3['id']=_0x82f14e['id'],_0x5c3bb3[a0_0x54e6('0x6d')]=_0x269268;for(var _0x546871=arguments[a0_0x54e6('0xcb')],_0x104a23=new Array(_0x546871>0x1?_0x546871-0x1:0x0),_0x4f27b1=0x1;_0x4f27b1<_0x546871;_0x4f27b1++){_0x104a23[_0x4f27b1-0x1]=arguments[_0x4f27b1];}_0x5c3bb3['args']=_0x104a23,_0x82f14e[a0_0x54e6('0xa3')][a0_0x54e6('0x80')][a0_0x54e6('0x8')](JSON[a0_0x54e6('0x76')](_0x5c3bb3,_0x274fa4()),_0x37c069);}},_0x82f14e[a0_0x54e6('0x17')]=function(){return _0x82f14e['adConfig'][a0_0x54e6('0x17')]=_0x82f14e[a0_0x54e6('0x5d')][a0_0x54e6('0x17')]||_0x5641f1,setTimeout(function(){_0x82f14e['reject'](_0x1fa76a[a0_0x54e6('0x81')]);},_0x82f14e['adConfig'][a0_0x54e6('0x17')]);}(),_0x82f14e[a0_0x54e6('0x5f')]=function(){var _0x1f7df0=_0x82f14e[a0_0x54e6('0x5d')][a0_0x54e6('0x5f')];return!_0x1f7df0&&(_0x1f7df0=_0xfccb70(),_0x82f14e[a0_0x54e6('0x9f')]=_0x82f14e['adConfig'][a0_0x54e6('0x9f')]=0x1),_0x1f7df0;}(),_0x82f14e[a0_0x54e6('0xa3')]=function(){var _0x4e3f02=encodeURIComponent(document[a0_0x54e6('0x5c')][a0_0x54e6('0xb0')]),_0x100e1c=''['concat'](_0x486a7f,'i=')[a0_0x54e6('0x3b')](_0x82f14e['id'],a0_0x54e6('0x38'))[a0_0x54e6('0x3b')](_0x2dd102,a0_0x54e6('0x1c'))['concat'](_0x4e3f02),_0x1c0f76=document[a0_0x54e6('0x36')](a0_0x54e6('0x75'));_0x1c0f76['setAttribute']('src',_0x100e1c);var _0x3be1c9=document[a0_0x54e6('0x36')](a0_0x54e6('0x57'));return _0x3be1c9[a0_0x54e6('0x40')][_0x2dd102]=_0x82f14e['id'],_0x3be1c9['style']['position']='absolute',_0x3be1c9['style'][a0_0x54e6('0xc4')]=a0_0x54e6('0xb9'),_0x3be1c9[a0_0x54e6('0x0')]['top']='0px',_0x82f14e['wrap']=_0x3be1c9,!_0x82f14e[a0_0x54e6('0x9f')]&&(_0x3be1c9[a0_0x54e6('0x21')](a0_0x54e6('0xb3'),function(_0x2b8bf2){return _0x82f14e[a0_0x54e6('0x54')](a0_0x54e6('0xb3'));}),_0x3be1c9[a0_0x54e6('0x21')](a0_0x54e6('0xba'),function(_0x3adb21){return _0x82f14e[a0_0x54e6('0x54')]('blur');})),_0x3be1c9[a0_0x54e6('0xbb')](_0x1c0f76),_0x82f14e['container'][a0_0x54e6('0xbb')](_0x3be1c9),_0x1c0f76;}(),_0x5707cd(_0x585419[a0_0x54e6('0x4e')]),_0x82f14e;},_0x422df5=function _0x3ad3b1(_0x389184,_0x347ce0){var _0xa684db=document[a0_0x54e6('0x1e')]['querySelectorAll'](a0_0x54e6('0x69')),_0x468a1b=Array['from'](_0xa684db),_0x1aaed4=document[a0_0x54e6('0x1e')]['removeChild'][a0_0x54e6('0x90')](document[a0_0x54e6('0x1e')]),_0x56c3fa=document[a0_0x54e6('0x1e')]['appendChild'][a0_0x54e6('0x90')](document[a0_0x54e6('0x1e')]);_0x468a1b[a0_0x54e6('0xd0')](_0x1aaed4);var _0x3ca0b1=document['createElement'](a0_0x54e6('0x85'));_0x3ca0b1[a0_0x54e6('0x4d')](a0_0x54e6('0x20'),a0_0x54e6('0x93')),_0x3ca0b1[a0_0x54e6('0x4d')]('content',a0_0x54e6('0x5')),document[a0_0x54e6('0x1e')][a0_0x54e6('0xbb')](_0x3ca0b1),_0x347ce0(),document[a0_0x54e6('0x1e')]['removeChild'](_0x3ca0b1),_0x468a1b['forEach'](_0x56c3fa);},_0x588f51=function _0x1abfa9(_0x3c7a2e){return{'___API___postGetSettings':function _0x576cfb(_0x39bb70){_0x3c7a2e[a0_0x54e6('0x54')](_0x39bb70,a0_0x54e6('0x7'),_0x3c7a2e[a0_0x54e6('0x5d')]);},'___API___postGetManifestURL':function _0x22352b(_0xd33dd7){if(navigator['mozApps'])navigator[a0_0x54e6('0xb')][a0_0x54e6('0x26')]()[a0_0x54e6('0x58')]=function(_0x1ff403){_0x3c7a2e[a0_0x54e6('0x54')](_0xd33dd7,'success',_0x1ff403[a0_0x54e6('0x9b')][a0_0x54e6('0x96')][a0_0x54e6('0x49')]);};else{if(_0x4e745f)_0x49fce9?_0x49fce9[a0_0x54e6('0x15')](window['location'][a0_0x54e6('0xb0')]+a0_0x54e6('0x61'))[a0_0x54e6('0xc2')](function(_0xfee2dd){_0x3c7a2e['post'](_0xd33dd7,a0_0x54e6('0x7'),_0xfee2dd[a0_0x54e6('0x3e')]);}):console[a0_0x54e6('0x78')](a0_0x54e6('0x92'));else _0x14f451&&_0x3c7a2e[a0_0x54e6('0x54')](_0xd33dd7,'success',''+new URL(_0x14f451[a0_0x54e6('0x5a')],window[a0_0x54e6('0x5c')][a0_0x54e6('0x5a')]));}},'___API___postGetManifest':function _0x500a4b(_0x3499ea){if(navigator[a0_0x54e6('0xb')])navigator[a0_0x54e6('0xb')][a0_0x54e6('0x26')]()[a0_0x54e6('0x58')]=function(_0x1d4026){var _0x779712=Object[a0_0x54e6('0x46')](_0x1d4026[a0_0x54e6('0x9b')]['result']),_0x217b7a=Object[a0_0x54e6('0x97')](_0x779712),_0xad157e=JSON[a0_0x54e6('0x76')](_0x1d4026[a0_0x54e6('0x9b')][a0_0x54e6('0x96')],_0x217b7a);_0x3c7a2e[a0_0x54e6('0x54')](_0x3499ea,'success',_0xad157e,_0x1d4026[a0_0x54e6('0x9b')][a0_0x54e6('0x96')][a0_0x54e6('0x1a')]);};else{var _0x1336f9;if(_0x4e745f)_0x1336f9=window[a0_0x54e6('0x5c')][a0_0x54e6('0xb0')]+a0_0x54e6('0x61');else _0x14f451&&(_0x1336f9=_0x14f451[a0_0x54e6('0x5a')]);_0x1336f9&&fetch(_0x1336f9)['then'](function(_0x5bdb08){return _0x5bdb08[a0_0x54e6('0x1f')]();})[a0_0x54e6('0xc2')](function(_0xdd880){return _0x3c7a2e[a0_0x54e6('0x54')](_0x3499ea,a0_0x54e6('0x7'),'',_0xdd880);});}},'___API___postGetFullscreenDimension':function _0x49af4a(_0x3e967b){_0x3c7a2e[a0_0x54e6('0x54')](_0x3e967b,a0_0x54e6('0x7'),window['innerHeight'],window[a0_0x54e6('0xab')]);},'___API___postGetOrigin':function _0x1804c6(_0x1405bf){_0x3c7a2e[a0_0x54e6('0x54')](_0x1405bf,a0_0x54e6('0x7'),document[a0_0x54e6('0x5c')][a0_0x54e6('0x5a')],document['location'][a0_0x54e6('0xb0')]);},'___API___postError':function _0x401d7a(_0x44cba5){_0x3c7a2e[a0_0x54e6('0x5d')]['onerror'](_0x44cba5);},'___API___postReject':function _0x3a5819(_0x361601){_0x3c7a2e[a0_0x54e6('0xd')](_0x361601),clearTimeout(_0x3c7a2e['timeout']);},'___API___postGetVisibility':function _0x3335e3(_0x4c3c66){var _0xb15356=arguments[a0_0x54e6('0xcb')]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:{};if(_0xb15356[a0_0x54e6('0x25')]&&_0x15505b['vfsAdId']&&_0x15505b['vfsAdId']!==_0x3c7a2e['id']){_0x3c7a2e[a0_0x54e6('0x54')](_0x4c3c66,0x0);return;}var _0x2bc8e5=_0x3c7a2e['frame'][a0_0x54e6('0x13')]();_0x3c7a2e[a0_0x54e6('0x54')](_0x4c3c66,_0x2bc8e5[a0_0x54e6('0xad')],_0x2bc8e5[a0_0x54e6('0xc4')],_0x2bc8e5['right'],_0x2bc8e5[a0_0x54e6('0x1')],_0x2bc8e5[a0_0x54e6('0x82')],_0x2bc8e5[a0_0x54e6('0xb7')],window['innerWidth'],window[a0_0x54e6('0x4a')]);},'___API___postDestroyAd':function _0x2e867e(_0x58ef97){_0x3c7a2e['container'][a0_0x54e6('0x0')][a0_0x54e6('0x60')]=a0_0x54e6('0x84'),_0x3c7a2e[a0_0x54e6('0x32')]();},'___API___postOpenWin':function _0x3704aa(_0xad6803,_0x4ace23){var _0x36cc66=window['open'](_0x4ace23),_0x3bda84=setInterval(function(){_0x36cc66[a0_0x54e6('0x55')]&&(_0x3c7a2e['post'](_0xad6803,a0_0x54e6('0x7')),clearInterval(_0x3bda84));},_0x351bd1);},'___API___postOpenWinWithThemeColorWorkaround':function _0x1ef4a4(_0x15137a,_0x246ea3){_0x422df5(_0x15137a,function(){_0x1abfa9(_0x3c7a2e)[a0_0x54e6('0x53')](_0x15137a,_0x246ea3);});},'___API___postAssignLocation':function _0xe21882(_0x244997,_0xf43d4b){window[a0_0x54e6('0x5c')]=_0xf43d4b;},'___API___postAssignLocationWithThemeColorWorkaround':function _0x419611(_0x143264,_0x45f02d){_0x422df5(_0x143264,function(){window[a0_0x54e6('0x5c')]=_0x45f02d;});},'___API___postDisplayFullscreenAd':function _0x2bffeb(_0x321bb6,_0xf9aa1c,_0x1e149e){_0x15505b[a0_0x54e6('0x29')]=_0xf9aa1c,_0x3c7a2e['container'][a0_0x54e6('0x0')]['position']=a0_0x54e6('0xc5'),_0x3c7a2e['wrap'][a0_0x54e6('0x4d')](a0_0x54e6('0x1d'),0x0),_0x3c7a2e[a0_0x54e6('0x6b')]['style'][a0_0x54e6('0x87')]=_0x1e149e,_0x3c7a2e[a0_0x54e6('0xa3')]['style'][a0_0x54e6('0x87')]=_0x1e149e,_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')][a0_0x54e6('0x60')]=a0_0x54e6('0x18');},'___API___postDisplayBannerAd':function _0x347da6(_0x28451f,_0x345381,_0x39a302,_0x57c5ad,_0x5cdab4,_0x4c6caf){_0x3c7a2e[a0_0x54e6('0x6b')][a0_0x54e6('0x4d')](a0_0x54e6('0x1d'),_0x345381[a0_0x54e6('0x1d')]||0x0),_0x3c7a2e[a0_0x54e6('0x6b')][a0_0x54e6('0x5e')][a0_0x54e6('0x7d')](_0x345381[a0_0x54e6('0x3d')]||''),_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')][a0_0x54e6('0x28')]=_0x345381['display'],_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')][a0_0x54e6('0xca')]=_0x57c5ad,_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')]['position']=a0_0x54e6('0xc5'),_0x3c7a2e['wrap'][a0_0x54e6('0x0')]['cssText']=_0x39a302,_0x3c7a2e['frame'][a0_0x54e6('0x0')][a0_0x54e6('0x87')]=_0x39a302,_0x5cdab4&&(_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')]['width']=_0x5cdab4+'px'),_0x4c6caf&&(_0x3c7a2e[a0_0x54e6('0x5f')][a0_0x54e6('0x0')]['height']=_0x4c6caf+'px');},'___API___postSetIgnoreKeys':function _0x4acdfa(_0x193d8d,_0x41554e,_0x1018d3,_0x15a20e){_0x3c7a2e[a0_0x54e6('0x41')]=_0x41554e,_0x1018d3&&_0x3c7a2e[a0_0x54e6('0x52')](_0x15a20e);},'___API___postAdFocus':function _0x7a5e21(_0x322983){_0x3c7a2e[a0_0x54e6('0x6b')][a0_0x54e6('0xb3')]();},'___API___postMaskGlobalFSListeners':function _0x188e4a(){_0x3c7a2e[a0_0x54e6('0x6b')]['keydownhandler']=function(_0x28f0be){if(_0x3c7a2e[a0_0x54e6('0x41')]['indexOf'](_0x28f0be[a0_0x54e6('0xa2')])>=0x0)return;_0x28f0be[a0_0x54e6('0x3')](),_0x28f0be[a0_0x54e6('0x98')](),_0x3c7a2e[a0_0x54e6('0x54')](a0_0x54e6('0xc0'),_0x28f0be[a0_0x54e6('0xa2')],-0x1);},_0x3c7a2e['wrap'][a0_0x54e6('0x21')]('keydown',_0x3c7a2e[a0_0x54e6('0x6b')][a0_0x54e6('0x7f')]);},'___API___postGetSDKVersion':function _0x374ff5(_0x5b0e4b){_0x3c7a2e['post'](_0x5b0e4b,'success',_0x586c4c);},'___API___postShowReportAdMenu':function _0x4ef236(_0x46af06,_0x4fa634,_0x36ed9c){var _0x4b0a03=document[a0_0x54e6('0x36')](a0_0x54e6('0x57'));_0x4b0a03[a0_0x54e6('0x5e')][a0_0x54e6('0x7d')](a0_0x54e6('0x3a')),_0x4b0a03[a0_0x54e6('0x4d')]('tabindex',-0x1);var _0x316152=document[a0_0x54e6('0x36')](a0_0x54e6('0x57'));_0x316152['classList'][a0_0x54e6('0x7d')]('kaiads-options-container'),_0x316152[a0_0x54e6('0x4d')](a0_0x54e6('0x1d'),-0x1);var _0x33d9b2=document[a0_0x54e6('0x36')](a0_0x54e6('0x57'));_0x33d9b2[a0_0x54e6('0x79')]=_0x36ed9c[a0_0x54e6('0x19')],_0x33d9b2[a0_0x54e6('0x5e')][a0_0x54e6('0x7d')](a0_0x54e6('0x62')),_0x316152[a0_0x54e6('0xbb')](_0x33d9b2);var _0x293d03=document[a0_0x54e6('0x36')](a0_0x54e6('0x57')),_0x18b64d=[[_0x36ed9c[a0_0x54e6('0x4f')],a0_0x54e6('0xa9')],[_0x36ed9c[a0_0x54e6('0x11')],a0_0x54e6('0xa4')],[_0x36ed9c[a0_0x54e6('0x9')],a0_0x54e6('0xc3')],[_0x36ed9c[a0_0x54e6('0xa1')],'MISLEADING']];_0x18b64d[a0_0x54e6('0xd0')](function(_0x2ed365,_0x12bfa4){var _0x258e9d=_slicedToArray(_0x2ed365,0x2),_0x1e8450=_0x258e9d[0x0],_0x45ca83=_0x258e9d[0x1],_0x531b0d=document[a0_0x54e6('0x36')]('a');_0x531b0d[a0_0x54e6('0x4d')](a0_0x54e6('0x1d'),_0x12bfa4),_0x531b0d[a0_0x54e6('0x5e')]['add'](a0_0x54e6('0x6a')),_0x531b0d[a0_0x54e6('0x79')]=_0x1e8450,_0x531b0d[a0_0x54e6('0x40')][a0_0x54e6('0x68')]=_0x45ca83,_0x293d03[a0_0x54e6('0xbb')](_0x531b0d),_0x531b0d[a0_0x54e6('0x21')]('mouseover',_0x489cef);}),_0x293d03['addEventListener']('click',_0x3b5c70),_0x316152['addEventListener'](a0_0x54e6('0xc0'),_0x3d735d),_0x4b0a03[a0_0x54e6('0x21')](a0_0x54e6('0xc0'),_0x3d735d),document['body']['appendChild'](_0x4b0a03),_0x316152[a0_0x54e6('0xbb')](_0x293d03),document[a0_0x54e6('0xbd')][a0_0x54e6('0xbb')](_0x316152),_0x293d03[a0_0x54e6('0x2b')][a0_0x54e6('0xbe')](0x0)['focus']();var _0x2b9128=document['createElement'](a0_0x54e6('0x57'));_0x2b9128[a0_0x54e6('0x79')]=_0x36ed9c[a0_0x54e6('0x72')]['toUpperCase'](),_0x2b9128['classList'][a0_0x54e6('0x7d')](a0_0x54e6('0x8a')),_0x316152[a0_0x54e6('0xbb')](_0x2b9128);function _0x489cef(_0x1d95dd){var _0x2f3d0e=_0x1d95dd[a0_0x54e6('0x9b')]||_0x1d95dd['srcElement'];_0x2f3d0e['focus']();}function _0x3b5c70(_0x17e522){_0x5b9b23(_0x17e522[a0_0x54e6('0x9b')][a0_0x54e6('0x40')]['reportReason']);}function _0x3d735d(_0xe94f6f){_0xe94f6f[a0_0x54e6('0x98')]();var _0x19370e=null;switch(_0xe94f6f['key']){case a0_0x54e6('0x48'):document[a0_0x54e6('0xc6')][a0_0x54e6('0x71')]();break;case'Backspace':_0xe94f6f[a0_0x54e6('0x3')](),_0x5b9b23();break;case a0_0x54e6('0x24'):_0x19370e=document[a0_0x54e6('0xc6')][a0_0x54e6('0x8c')];break;case a0_0x54e6('0xce'):_0x19370e=document['activeElement'][a0_0x54e6('0x94')];break;default:break;}_0x19370e&&_0x19370e['focus']();}function _0x5b9b23(_0x4a11a6){_0x316152[a0_0x54e6('0xc8')](a0_0x54e6('0xc0'),_0x3d735d),_0x293d03[a0_0x54e6('0xc8')]('click',_0x3b5c70),_0x4b0a03['removeEventListener'](a0_0x54e6('0xc0'),_0x3d735d),_0x4b0a03[a0_0x54e6('0xb6')](),_0x316152[a0_0x54e6('0xb6')](),_0x3c7a2e['post'](_0x46af06,a0_0x54e6('0x7'),_0x4a11a6);}}};},_0x41bf2a=function _0x3f9c1d(_0x11aae8){if(!_0x11aae8||!_0x11aae8[a0_0x54e6('0xb0')]||_0x11aae8['origin']!==_0x37c069)return;var _0x2592d4=_0x49ad15[a0_0x54e6('0x3c')](_0x11aae8[a0_0x54e6('0x9a')]),_0x2a486f=JSON[a0_0x54e6('0x2c')](_0x11aae8[a0_0x54e6('0x47')]);if(!_0x2592d4||_0x2592d4['id']!==_0x2a486f['id'])return;if(_0x2a486f['event']&&_0x2a486f[a0_0x54e6('0x6d')][a0_0x54e6('0x27')](a0_0x54e6('0xc7'))===0x0){var _0x1796f4=_0x588f51(_0x2592d4)[_0x2a486f[a0_0x54e6('0x6d')]];if(_0x1796f4)try{_0x1796f4['call'][a0_0x54e6('0xc9')](_0x1796f4,[_0x2592d4][a0_0x54e6('0x3b')](_toConsumableArray(_0x2a486f[a0_0x54e6('0x31')]),[_0x2a486f[a0_0x54e6('0xe')]]));}catch(_0x27c2e7){_0x2592d4[a0_0x54e6('0x54')](_0x2a486f[a0_0x54e6('0x6d')],'error',_0x1fa76a[a0_0x54e6('0xaf')]);}else _0x2592d4['adConfig']['onerror'](_0x1fa76a[a0_0x54e6('0x2d')]);}_0x2592d4[a0_0x54e6('0x8f')][_0x2a486f['event']]&&_0x2592d4[a0_0x54e6('0x8f')][_0x2a486f['event']][a0_0x54e6('0xd0')](function(_0x53170e){return _0x53170e(_0x2a486f[a0_0x54e6('0x31')]);});};function _0x32aaa4(){var _0x41e92e=arguments[a0_0x54e6('0xcb')]>0x0&&arguments[0x0]!==undefined?arguments[0x0]:document['activeElement'];if(!_0x41e92e||!_0x41e92e[a0_0x54e6('0x40')][_0x2dd102])return;var _0x3d8261=_0x41e92e[a0_0x54e6('0xb8')](a0_0x54e6('0x75'));return _0x3d8261[a0_0x54e6('0xcb')]>0x0?_0x3d8261[0x0]:null;}var _0x2bcf09=function _0x231f9a(_0x29c344){var _0x1b169=_0x15505b['vfsAdId']?_0x16e040(_0x2dd102,_0x15505b[a0_0x54e6('0x29')]):null,_0x35ec29=_0x1b169?_0x32aaa4(_0x1b169):_0x32aaa4();if(!_0x35ec29)return;var _0x4385d8=_0x49ad15[a0_0x54e6('0x3c')](_0x35ec29[a0_0x54e6('0x80')]);if(!_0x4385d8||_0x4385d8['ignoreKeys'][a0_0x54e6('0x27')](_0x29c344['key'])>-0x1)return;_0x4385d8[a0_0x54e6('0x54')](a0_0x54e6('0xc0'),_0x29c344['key'],-0x1),_0x29c344[a0_0x54e6('0x3')](),_0x29c344['stopPropagation']();};window[a0_0x54e6('0x21')]('message',_0x41bf2a),window[a0_0x54e6('0x21')](a0_0x54e6('0xc0'),_0x2bcf09);var _0x184182=function _0x2beca1(){},_0x16392d=function _0x82191b(_0x18e8c1){return _0x18e8c1;},_0x282098=function _0x4a1a7f(){for(var _0x370b2d=arguments['length'],_0x526552=new Array(_0x370b2d),_0x2f73d5=0x0;_0x2f73d5<_0x370b2d;_0x2f73d5++){_0x526552[_0x2f73d5]=arguments[_0x2f73d5];}return _0x526552['reduce'](function(_0x1a08c0,_0x4d4f9e){return function(){return _0x1a08c0(_0x4d4f9e[a0_0x54e6('0xc9')](void 0x0,arguments));};});},_0x1672eb=function _0x29a4ca(_0x30254a){var _0x1ee5c7=[a0_0x54e6('0xae'),_0x30254a[a0_0x54e6('0xf')],_0x30254a[a0_0x54e6('0x89')],_0x30254a[a0_0x54e6('0x73')],_0x30254a[a0_0x54e6('0x5f')]?a0_0x54e6('0xa6'):a0_0x54e6('0x43'),_0x30254a['w'],_0x30254a['h']][a0_0x54e6('0xbf')](Boolean);return _0x1ee5c7[a0_0x54e6('0x3f')](':');},_0x141264={'NOT_SET':0x1,'ACTIVE':0x2,'PREV_SUCCESS':0x3},_0x39e81f=function _0x18a81c(_0x3b460d){try{return document['cookie'][a0_0x54e6('0x22')](';\x20')['find'](function(_0x49ef67){return _0x49ef67['startsWith'](_0x3b460d);})[a0_0x54e6('0x22')]('=')[0x1];}catch(_0x494ab8){return null;}},_0x2c9994=function _0x2f48cd(_0x257f86){var _0x4aa151=arguments[a0_0x54e6('0xcb')]>0x1&&arguments[0x1]!==undefined?arguments[0x1]:0x0,_0x4cc516=function _0x4c7822(_0x3828da){var _0x4c77c1=_0x3828da?'1':'0',_0x26d278=_0x3828da?_0x4aa151:0x7fffffff;document[a0_0x54e6('0xcc')]=''[a0_0x54e6('0x3b')](_0x257f86,'=')['concat'](_0x4c77c1,a0_0x54e6('0x4'))['concat'](_0x26d278,a0_0x54e6('0x88'));},_0x27937b=function _0x4b10f8(){switch(_0x39e81f(_0x257f86)){case'0':return _0x141264[a0_0x54e6('0x6')];case'1':return _0x141264[a0_0x54e6('0x59')];default:return _0x141264[a0_0x54e6('0xb2')];}};return{'getState':_0x27937b,'recordSuccess':function _0x34dbf7(){return _0x4cc516(![]);},'recordFailure':function _0xa6343b(){return _0x4cc516(!![]);}};},_0x544b0b=function _0x40a1b8(_0x40a0bf){var _0xf85450=_0x1672eb(_0x40a0bf),_0x2640cd=_0x2c9994(_0xf85450,_0x40a0bf[a0_0x54e6('0xae')][a0_0x54e6('0xaa')]),_0x5d71cc=_0x2640cd['getState']();if(_0x5d71cc===_0x141264['ACTIVE'])throw new _0x383725(_0x1fa76a['BLACKLISTED']);var _0x338d44=function _0x3a3204(_0x4dc8c6){return Object[a0_0x54e6('0xb4')]({},_0x4dc8c6,{'onready':_0x184182,'onloadstart':_0x184182,'onloadend':_0x184182});},_0x269a67=function _0x4b5937(_0x55dc81){return Object['assign']({},_0x55dc81,{'onready':function _0x268203(){_0x2640cd[a0_0x54e6('0x99')](),_0x55dc81[a0_0x54e6('0xa0')][a0_0x54e6('0xc9')](_0x55dc81,arguments);},'onerror':function _0x48b994(_0x32f74a){_0x32f74a===_0x1fa76a[a0_0x54e6('0xcd')]&&_0x2640cd[a0_0x54e6('0x9e')]();if(typeof _0x55dc81['onerror']===a0_0x54e6('0x6c')){for(var _0x1b4a2a=arguments[a0_0x54e6('0xcb')],_0xe1e1cf=new Array(_0x1b4a2a>0x1?_0x1b4a2a-0x1:0x0),_0x56f5f0=0x1;_0x56f5f0<_0x1b4a2a;_0x56f5f0++){_0xe1e1cf[_0x56f5f0-0x1]=arguments[_0x56f5f0];}_0x55dc81[a0_0x54e6('0x2e')][a0_0x54e6('0xc9')](_0x55dc81,[_0x32f74a][a0_0x54e6('0x3b')](_0xe1e1cf));}}});},_0x1a97c5=_0x40a0bf['blacklistCache'][a0_0x54e6('0x95')]&&_0x5d71cc!==_0x141264[a0_0x54e6('0x6')];return _0x282098(_0x269a67,_0x1a97c5?_0x338d44:_0x16392d)(_0x40a0bf);},_0xc2551f=function _0x19736d(_0x16be4a,_0x45f0e3){var _0x3ca3b6=_0x335f97(_0x16be4a);return _0x49ad15['set'](_0x3ca3b6[a0_0x54e6('0xa3')][a0_0x54e6('0x80')],_0x3ca3b6),{'destroy':_0x3ca3b6[a0_0x54e6('0x32')]};};return function(_0x285e35){try{if(!_0xfccb70())throw new _0x383725(_0x1fa76a[a0_0x54e6('0x44')]);if(!_0x285e35[a0_0x54e6('0xa0')])throw new _0x383725(_0x1fa76a[a0_0x54e6('0x7c')]);if(!window['navigator'][a0_0x54e6('0x6f')])throw new _0x383725(_0x1fa76a['SDK_CANNOT_LOAD']);return _0x282098(_0xc2551f,_0x285e35[a0_0x54e6('0xae')]?_0x544b0b:_0x16392d)(_0x285e35);}catch(_0x44efa0){if(_0x44efa0 instanceof _0x383725){var _0x34fdc6=_0x285e35[a0_0x54e6('0x2e')]||console[a0_0x54e6('0x78')];_0x34fdc6(_0x44efa0['code']);return;}throw _0x44efa0;}};}(); -//# sourceMappingURL=ads-sdk.js.map -"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_createClass=function(){function i(e,t){for(var n=0;n{function e(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}function t(e){return e&&e.__esModule?e.default:e}class n{constructor(){this.chunkedMTU=16300,this._dataCount=1,this.chunk=e=>{let t=[],n=e.byteLength,r=Math.ceil(n/this.chunkedMTU),i=0,o=0;for(;o0){let e=new Uint8Array(this._pieces);this._parts.push(e),this._pieces=[]}}toArrayBuffer(){let e=[];for(let t of this._parts)e.push(t);return function(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e){let e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);n.set(e,r),r+=t.byteLength}return n}(e).buffer}constructor(){this.encoder=new TextEncoder,this._pieces=[],this._parts=[]}}function i(e){return new s(e).unpack()}function o(e){let t=new a,n=t.pack(e);return n instanceof Promise?n.then(()=>t.getBuffer()):t.getBuffer()}class s{unpack(){let e;let t=this.unpack_uint8();if(t<128)return t;if((224^t)<32)return(224^t)-32;if((e=160^t)<=15)return this.unpack_raw(e);if((e=176^t)<=15)return this.unpack_string(e);if((e=144^t)<=15)return this.unpack_array(e);if((e=128^t)<=15)return this.unpack_map(e);switch(t){case 192:return null;case 193:case 212:case 213:case 214:case 215:return;case 194:return!1;case 195:return!0;case 202:return this.unpack_float();case 203:return this.unpack_double();case 204:return this.unpack_uint8();case 205:return this.unpack_uint16();case 206:return this.unpack_uint32();case 207:return this.unpack_uint64();case 208:return this.unpack_int8();case 209:return this.unpack_int16();case 210:return this.unpack_int32();case 211:return this.unpack_int64();case 216:return e=this.unpack_uint16(),this.unpack_string(e);case 217:return e=this.unpack_uint32(),this.unpack_string(e);case 218:return e=this.unpack_uint16(),this.unpack_raw(e);case 219:return e=this.unpack_uint32(),this.unpack_raw(e);case 220:return e=this.unpack_uint16(),this.unpack_array(e);case 221:return e=this.unpack_uint32(),this.unpack_array(e);case 222:return e=this.unpack_uint16(),this.unpack_map(e);case 223:return e=this.unpack_uint32(),this.unpack_map(e)}}unpack_uint8(){let e=255&this.dataView[this.index];return this.index++,e}unpack_uint16(){let e=this.read(2),t=(255&e[0])*256+(255&e[1]);return this.index+=2,t}unpack_uint32(){let e=this.read(4),t=((256*e[0]+e[1])*256+e[2])*256+e[3];return this.index+=4,t}unpack_uint64(){let e=this.read(8),t=((((((256*e[0]+e[1])*256+e[2])*256+e[3])*256+e[4])*256+e[5])*256+e[6])*256+e[7];return this.index+=8,t}unpack_int8(){let e=this.unpack_uint8();return e<128?e:e-256}unpack_int16(){let e=this.unpack_uint16();return e<32768?e:e-65536}unpack_int32(){let e=this.unpack_uint32();return e<2147483648?e:e-4294967296}unpack_int64(){let e=this.unpack_uint64();return e<0x7fffffffffffffff?e:e-18446744073709552e3}unpack_raw(e){if(this.length>31?1:-1)*(8388607&e|8388608)*2**((e>>23&255)-127-23)}unpack_double(){let e=this.unpack_uint32(),t=this.unpack_uint32(),n=(e>>20&2047)-1023;return(0==e>>31?1:-1)*((1048575&e|1048576)*2**(n-20)+t*2**(n-52))}read(e){let t=this.index;if(t+e<=this.length)return this.dataView.subarray(t,t+e);throw Error("BinaryPackFailure: read index out of range")}constructor(e){this.index=0,this.dataBuffer=e,this.dataView=new Uint8Array(this.dataBuffer),this.length=this.dataBuffer.byteLength}}class a{getBuffer(){return this._bufferBuilder.toArrayBuffer()}pack(e){if("string"==typeof e)this.pack_string(e);else if("number"==typeof e)Math.floor(e)===e?this.pack_integer(e):this.pack_double(e);else if("boolean"==typeof e)!0===e?this._bufferBuilder.append(195):!1===e&&this._bufferBuilder.append(194);else if(void 0===e)this._bufferBuilder.append(192);else if("object"==typeof e){if(null===e)this._bufferBuilder.append(192);else{let t=e.constructor;if(e instanceof Array){let t=this.pack_array(e);if(t instanceof Promise)return t.then(()=>this._bufferBuilder.flush())}else if(e instanceof ArrayBuffer)this.pack_bin(new Uint8Array(e));else if("BYTES_PER_ELEMENT"in e)this.pack_bin(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));else if(e instanceof Date)this.pack_string(e.toString());else if(e instanceof Blob)return e.arrayBuffer().then(e=>{this.pack_bin(new Uint8Array(e)),this._bufferBuilder.flush()});else if(t==Object||t.toString().startsWith("class")){let t=this.pack_object(e);if(t instanceof Promise)return t.then(()=>this._bufferBuilder.flush())}else throw Error(`Type "${t.toString()}" not yet supported`)}}else throw Error(`Type "${typeof e}" not yet supported`);this._bufferBuilder.flush()}pack_bin(e){let t=e.length;if(t<=15)this.pack_uint8(160+t);else if(t<=65535)this._bufferBuilder.append(218),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(219),this.pack_uint32(t);else throw Error("Invalid length");this._bufferBuilder.append_buffer(e)}pack_string(e){let t=this._textEncoder.encode(e),n=t.length;if(n<=15)this.pack_uint8(176+n);else if(n<=65535)this._bufferBuilder.append(216),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(217),this.pack_uint32(n);else throw Error("Invalid length");this._bufferBuilder.append_buffer(t)}pack_array(e){let t=e.length;if(t<=15)this.pack_uint8(144+t);else if(t<=65535)this._bufferBuilder.append(220),this.pack_uint16(t);else if(t<=4294967295)this._bufferBuilder.append(221),this.pack_uint32(t);else throw Error("Invalid length");let n=r=>{if(rn(r+1)):n(r+1)}};return n(0)}pack_integer(e){if(e>=-32&&e<=127)this._bufferBuilder.append(255&e);else if(e>=0&&e<=255)this._bufferBuilder.append(204),this.pack_uint8(e);else if(e>=-128&&e<=127)this._bufferBuilder.append(208),this.pack_int8(e);else if(e>=0&&e<=65535)this._bufferBuilder.append(205),this.pack_uint16(e);else if(e>=-32768&&e<=32767)this._bufferBuilder.append(209),this.pack_int16(e);else if(e>=0&&e<=4294967295)this._bufferBuilder.append(206),this.pack_uint32(e);else if(e>=-2147483648&&e<=2147483647)this._bufferBuilder.append(210),this.pack_int32(e);else if(e>=-0x8000000000000000&&e<=0x7fffffffffffffff)this._bufferBuilder.append(211),this.pack_int64(e);else if(e>=0&&e<=18446744073709552e3)this._bufferBuilder.append(207),this.pack_uint64(e);else throw Error("Invalid integer")}pack_double(e){let t=0;e<0&&(t=1,e=-e);let n=Math.floor(Math.log(e)/Math.LN2),r=Math.floor((e/2**n-1)*4503599627370496),i=t<<31|n+1023<<20|r/4294967296&1048575;this._bufferBuilder.append(203),this.pack_int32(i),this.pack_int32(r%4294967296)}pack_object(e){let t=Object.keys(e),n=t.length;if(n<=15)this.pack_uint8(128+n);else if(n<=65535)this._bufferBuilder.append(222),this.pack_uint16(n);else if(n<=4294967295)this._bufferBuilder.append(223),this.pack_uint32(n);else throw Error("Invalid length");let r=n=>{if(nr(n+1))}return r(n+1)}};return r(0)}pack_uint8(e){this._bufferBuilder.append(e)}pack_uint16(e){this._bufferBuilder.append(e>>8),this._bufferBuilder.append(255&e)}pack_uint32(e){let t=4294967295&e;this._bufferBuilder.append((4278190080&t)>>>24),this._bufferBuilder.append((16711680&t)>>>16),this._bufferBuilder.append((65280&t)>>>8),this._bufferBuilder.append(255&t)}pack_uint64(e){let t=e/4294967296,n=e%4294967296;this._bufferBuilder.append((4278190080&t)>>>24),this._bufferBuilder.append((16711680&t)>>>16),this._bufferBuilder.append((65280&t)>>>8),this._bufferBuilder.append(255&t),this._bufferBuilder.append((4278190080&n)>>>24),this._bufferBuilder.append((16711680&n)>>>16),this._bufferBuilder.append((65280&n)>>>8),this._bufferBuilder.append(255&n)}pack_int8(e){this._bufferBuilder.append(255&e)}pack_int16(e){this._bufferBuilder.append((65280&e)>>8),this._bufferBuilder.append(255&e)}pack_int32(e){this._bufferBuilder.append(e>>>24&255),this._bufferBuilder.append((16711680&e)>>>16),this._bufferBuilder.append((65280&e)>>>8),this._bufferBuilder.append(255&e)}pack_int64(e){let t=Math.floor(e/4294967296),n=e%4294967296;this._bufferBuilder.append((4278190080&t)>>>24),this._bufferBuilder.append((16711680&t)>>>16),this._bufferBuilder.append((65280&t)>>>8),this._bufferBuilder.append(255&t),this._bufferBuilder.append((4278190080&n)>>>24),this._bufferBuilder.append((16711680&n)>>>16),this._bufferBuilder.append((65280&n)>>>8),this._bufferBuilder.append(255&n)}constructor(){this._bufferBuilder=new r,this._textEncoder=new TextEncoder}}let c=!0,l=!0;function p(e,t,n){let r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)}function d(e,t,n){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,i=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return i.apply(this,arguments);let o=e=>{let t=n(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),i.apply(this,[e,o])};let o=r.removeEventListener;r.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t]||!this._eventMap[t].has(n))return o.apply(this,arguments);let r=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,o.apply(this,[e,r])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function h(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(c=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function u(e){return"boolean"!=typeof e?Error("Argument type: "+typeof e+". Please use a boolean."):(l=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function f(){"object"!=typeof window||c||"undefined"==typeof console||"function"!=typeof console.log||console.log.apply(console,arguments)}function m(e,t){l&&console.warn(e+" is deprecated, please use "+t+" instead.")}function g(e){return"[object Object]"===Object.prototype.toString.call(e)}function y(e,t,n){let r=n?"outbound-rtp":"inbound-rtp",i=new Map;if(null===t)return i;let o=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&o.push(e)}),o.forEach(t=>{e.forEach(n=>{n.type===r&&n.trackId===t.id&&function e(t,n,r){!n||r.has(n.id)||(r.set(n.id,n),Object.keys(n).forEach(i=>{i.endsWith("Id")?e(t,t.get(n[i]),r):i.endsWith("Ids")&&n[i].forEach(n=>{e(t,t.get(n),r)})}))}(e,n,i)})}),i}var _,C,v,b,k,S,T,R,w,P,E,D,x,I,M,O,j={};function L(e,t){let n=e&&e.navigator;if(!n.mediaDevices)return;let r=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;let t={};return Object.keys(e).forEach(n=>{if("require"===n||"advanced"===n||"mediaSource"===n)return;let r="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==r.exact&&"number"==typeof r.exact&&(r.min=r.max=r.exact);let i=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==r.ideal){t.optional=t.optional||[];let e={};"number"==typeof r.ideal?(e[i("min",n)]=r.ideal,t.optional.push(e),(e={})[i("max",n)]=r.ideal):e[i("",n)]=r.ideal,t.optional.push(e)}void 0!==r.exact&&"number"!=typeof r.exact?(t.mandatory=t.mandatory||{},t.mandatory[i("",n)]=r.exact):["min","max"].forEach(e=>{void 0!==r[e]&&(t.mandatory=t.mandatory||{},t.mandatory[i(e,n)]=r[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},i=function(e,i){if(t.version>=61)return i(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){let t=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=r(e.audio)}if(e&&"object"==typeof e.video){let o=e.video.facingMode;o=o&&("object"==typeof o?o:{ideal:o});let s=t.version<66;if(o&&("user"===o.exact||"environment"===o.exact||"user"===o.ideal||"environment"===o.ideal)&&!(n.mediaDevices.getSupportedConstraints&&n.mediaDevices.getSupportedConstraints().facingMode&&!s)){let t;if(delete e.video.facingMode,"environment"===o.exact||"environment"===o.ideal?t=["back","rear"]:("user"===o.exact||"user"===o.ideal)&&(t=["front"]),t)return n.mediaDevices.enumerateDevices().then(n=>{let s=(n=n.filter(e=>"videoinput"===e.kind)).find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!s&&n.length&&t.includes("back")&&(s=n[n.length-1]),s&&(e.video.deviceId=o.exact?{exact:s.deviceId}:{ideal:s.deviceId}),e.video=r(e.video),f("chrome: "+JSON.stringify(e)),i(e)})}e.video=r(e.video)}return f("chrome: "+JSON.stringify(e)),i(e)},o=function(e){return t.version>=64?e:{name:({PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"})[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(n.getUserMedia=(function(e,t,r){i(e,e=>{n.webkitGetUserMedia(e,t,e=>{r&&r(o(e))})})}).bind(n),n.mediaDevices.getUserMedia){let e=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(t){return i(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(o(e))))}}}function A(e,t){if((!e.navigator.mediaDevices||!("getDisplayMedia"in e.navigator.mediaDevices))&&e.navigator.mediaDevices){if("function"!=typeof t){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}e.navigator.mediaDevices.getDisplayMedia=function(n){return t(n).then(t=>{let r=n.video&&n.video.width,i=n.video&&n.video.height,o=n.video&&n.video.frameRate;return n.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxFrameRate:o||3}},r&&(n.video.mandatory.maxWidth=r),i&&(n.video.mandatory.maxHeight=i),e.navigator.mediaDevices.getUserMedia(n)})}}}function B(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function F(e){if("object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype)d(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e));else{Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.track.id):{track:n.track};let i=new Event("track");i.track=n.track,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)}),t.stream.getTracks().forEach(n=>{let r;r=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.id):{track:n};let i=new Event("track");i.track=n,i.receiver=r,i.transceiver={receiver:r},i.streams=[t.stream],this.dispatchEvent(i)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}}function U(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){let i=n.apply(this,arguments);return i||(i=t(this,e),this._senders.push(i)),i};let r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){r.apply(this,arguments);let t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach(e=>{let t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function z(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[e,n,r]=arguments;if(arguments.length>0&&"function"==typeof e)return t.apply(this,arguments);if(0===t.length&&(0==arguments.length||"function"!=typeof e))return t.apply(this,[]);let i=function(e){let t={};return e.result().forEach(e=>{let n={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(t=>{n[t]=e.stat(t)}),t[n.id]=n}),t},o=function(e){return new Map(Object.keys(e).map(t=>[t,e[t]]))};return arguments.length>=2?t.apply(this,[function(e){n(o(i(e)))},e]):new Promise((e,n)=>{t.apply(this,[function(t){e(o(i(t)))},n])}).then(n,r)}}function N(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>y(t,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),d(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){let e=this;return this._pc.getStats().then(t=>y(t,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let e,t,n;let r=arguments[0];return(this.getSenders().forEach(t=>{t.track===r&&(e?n=!0:e=t)}),this.getReceivers().forEach(e=>(e.track===r&&(t?n=!0:t=e),e.track===r)),n||e&&t)?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):e?e.getStats():t?t.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function $(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let r=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?-1===this._shimmedLocalStreams[n.id].indexOf(r)&&this._shimmedLocalStreams[n.id].push(r):this._shimmedLocalStreams[n.id]=[n,r],r};let n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});let t=this.getSenders();n.apply(this,arguments);let r=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(r)};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};let i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{let n=this._shimmedLocalStreams[t].indexOf(e);-1!==n&&this._shimmedLocalStreams[t].splice(n,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),i.apply(this,arguments)}}function J(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return $(e);let n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};let r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){let n=new e.MediaStream(t.getTracks());this._streams[t.id]=n,this._reverseStreams[n.id]=t,t=n}r.apply(this,[t])};let i=e.RTCPeerConnection.prototype.removeStream;function o(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(RegExp(i.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let r=[].slice.call(arguments,1);if(1!==r.length||!r[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(e=>e.track===t))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let i=this._streams[n.id];if(i)i.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let r=new e.MediaStream([t]);this._streams[n.id]=r,this._reverseStreams[r.id]=n,this.addStream(r)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){let e=arguments,t=arguments.length&&"function"==typeof arguments[0];return t?n.apply(this,[t=>{let n=o(this,t);e[0].apply(null,[n])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):n.apply(this,arguments).then(e=>o(this,e))}})[t]});let s=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e,t;let n;return arguments.length&&arguments[0].type&&(arguments[0]=(e=this,t=arguments[0],n=t.sdp,Object.keys(e._reverseStreams||[]).forEach(t=>{let r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(RegExp(r.id,"g"),i.id)}),new RTCSessionDescription({type:t.type,sdp:n}))),s.apply(this,arguments)};let a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let e=a.get.apply(this);return""===e.type?e:o(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){let t;if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{},Object.keys(this._streams).forEach(n=>{this._streams[n].getTracks().find(t=>e.track===t)&&(t=this._streams[n])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function V(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}})[t]})}function G(e,t){d(e,"negotiationneeded",e=>{let n=e.target;if(!(t.version<72)&&(!n.getConfiguration||"plan-b"!==n.getConfiguration().sdpSemantics)||"stable"===n.signalingState)return e})}e(j,"shimMediaStream",()=>B),e(j,"shimOnTrack",()=>F),e(j,"shimGetSendersWithDtmf",()=>U),e(j,"shimGetStats",()=>z),e(j,"shimSenderReceiverGetStats",()=>N),e(j,"shimAddTrackRemoveTrackWithNative",()=>$),e(j,"shimAddTrackRemoveTrack",()=>J),e(j,"shimPeerConnection",()=>V),e(j,"fixNegotiationNeeded",()=>G),e(j,"shimGetUserMedia",()=>L),e(j,"shimGetDisplayMedia",()=>A);var W={};function H(e,t){let n=e&&e.navigator,r=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,r){m("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(e).then(t,r)},!(t.version>55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){let e=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},t=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(n){return"object"==typeof n&&"object"==typeof n.audio&&(e((n=JSON.parse(JSON.stringify(n))).audio,"autoGainControl","mozAutoGainControl"),e(n.audio,"noiseSuppression","mozNoiseSuppression")),t(n)},r&&r.prototype.getSettings){let t=r.prototype.getSettings;r.prototype.getSettings=function(){let n=t.apply(this,arguments);return e(n,"mozAutoGainControl","autoGainControl"),e(n,"mozNoiseSuppression","noiseSuppression"),n}}if(r&&r.prototype.applyConstraints){let t=r.prototype.applyConstraints;r.prototype.applyConstraints=function(n){return"audio"===this.kind&&"object"==typeof n&&(e(n=JSON.parse(JSON.stringify(n)),"autoGainControl","mozAutoGainControl"),e(n,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[n])}}}}function Y(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||!e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(n){if(!(n&&n.video)){let e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===n.video?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n)})}function K(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function X(e,t){if("object"!=typeof e||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){let n=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=({[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}})[t]});let n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[e,i,o]=arguments;return r.apply(this,[e||null]).then(e=>{if(t.version<53&&!i)try{e.forEach(e=>{e.type=n[e.type]||e.type})}catch(t){if("TypeError"!==t.name)throw t;e.forEach((t,r)=>{e.set(r,Object.assign({},t,{type:n[t.type]||t.type}))})}return e}).then(i,o)}}function q(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});let n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){let e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Q(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),d(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Z(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){m("removeStream","removeTrack"),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function ee(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function et(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]);let n=(e=[...e]).length>0;n&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw RangeError("max_framerate must be >= 0.0")});let r=t.apply(this,arguments);if(n){let{sender:t}=r,n=t.getParameters();"encodings"in n&&(1!==n.encodings.length||0!==Object.keys(n.encodings[0]).length)||(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return r})}function en(e){if(!("object"==typeof e&&e.RTCRtpSender))return;let t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){let e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function er(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function ei(e){if(!("object"==typeof e&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}e(W,"shimOnTrack",()=>K),e(W,"shimPeerConnection",()=>X),e(W,"shimSenderGetStats",()=>q),e(W,"shimReceiverGetStats",()=>Q),e(W,"shimRemoveStream",()=>Z),e(W,"shimRTCDataChannel",()=>ee),e(W,"shimAddTransceiver",()=>et),e(W,"shimGetParameters",()=>en),e(W,"shimCreateOffer",()=>er),e(W,"shimCreateAnswer",()=>ei),e(W,"shimGetUserMedia",()=>H),e(W,"shimGetDisplayMedia",()=>Y);var eo={};function es(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(n=>t.call(this,n,e)),e.getVideoTracks().forEach(n=>t.call(this,n,e))},e.RTCPeerConnection.prototype.addTrack=function(e,...n){return n&&n.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);let t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);let n=e.getTracks();this.getSenders().forEach(e=>{n.includes(e.track)&&this.removeTrack(e)})})}}function ea(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);let t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);let n=new Event("addstream");n.stream=t,e.dispatchEvent(n)})}),t.apply(e,arguments)}}}function ec(e){if("object"!=typeof e||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,n=t.createOffer,r=t.createAnswer,i=t.setLocalDescription,o=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){let r=arguments.length>=2?arguments[2]:arguments[0],i=n.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){let n=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[n]);return t?(i.then(e,t),Promise.resolve()):i};let a=function(e,t,n){let r=i.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r};t.setLocalDescription=a,a=function(e,t,n){let r=o.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.setRemoteDescription=a,a=function(e,t,n){let r=s.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.addIceCandidate=a}function el(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let e=t.mediaDevices,n=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>n(ep(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=(function(e,n,r){t.mediaDevices.getUserMedia(e).then(n,r)}).bind(t))}function ep(e){return e&&void 0!==e.video?Object.assign({},e,{video:function e(t){return g(t)?Object.keys(t).reduce(function(n,r){let i=g(t[r]),o=i?e(t[r]):t[r],s=i&&!Object.keys(o).length;return void 0===o||s?n:Object.assign(n,{[r]:o})},{}):t}(e.video)}):e}function ed(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){let t=[];for(let n=0;nt.generateCertificate})}function eh(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function eu(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);let t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);let n=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&n?"sendrecv"===n.direction?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":"recvonly"===n.direction&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):!0!==e.offerToReceiveVideo||n||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function ef(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}e(eo,"shimLocalStreamsAPI",()=>es),e(eo,"shimRemoteStreamsAPI",()=>ea),e(eo,"shimCallbacksAPI",()=>ec),e(eo,"shimGetUserMedia",()=>el),e(eo,"shimConstraints",()=>ep),e(eo,"shimRTCIceServerUrls",()=>ed),e(eo,"shimTrackEventTransceiver",()=>eh),e(eo,"shimCreateOfferLegacy",()=>eu),e(eo,"shimAudioContext",()=>ef);var em={};e(em,"shimRTCIceCandidate",()=>e_),e(em,"shimRTCIceCandidateRelayProtocol",()=>eC),e(em,"shimMaxMessageSize",()=>ev),e(em,"shimSendThrowTypeError",()=>eb),e(em,"shimConnectionState",()=>ek),e(em,"removeExtmapAllowMixed",()=>eS),e(em,"shimAddIceCandidateNullOrEmpty",()=>eT),e(em,"shimParameterlessSetLocalDescription",()=>eR);var eg={};let ey={};function e_(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let n=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){let r=new n(e),i=t(eg).parseCandidate(e.candidate);for(let e in i)e in r||Object.defineProperty(r,e,{value:i[e]});return r.toJSON=function(){return{candidate:r.candidate,sdpMid:r.sdpMid,sdpMLineIndex:r.sdpMLineIndex,usernameFragment:r.usernameFragment}},r}return new n(e)},e.RTCIceCandidate.prototype=n.prototype,d(e,"icecandidate",t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t))}function eC(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||d(e,"icecandidate",e=>{if(e.candidate){let n=t(eg).parseCandidate(e.candidate.candidate);"relay"===n.type&&(e.candidate.relayProtocol=({0:"tls",1:"tcp",2:"udp"})[n.priority>>24])}return e})}function ev(e,n){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});let r=function(e){if(!e||!e.sdp)return!1;let n=t(eg).splitSections(e.sdp);return n.shift(),n.some(e=>{let n=t(eg).parseMLine(e);return n&&"application"===n.kind&&-1!==n.protocol.indexOf("SCTP")})},i=function(e){let t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return -1;let n=parseInt(t[1],10);return n!=n?-1:n},o=function(e){let t=65536;return"firefox"===n.browser&&(t=n.version<57?-1===e?16384:2147483637:n.version<60?57===n.version?65535:65536:2147483637),t},s=function(e,r){let i=65536;"firefox"===n.browser&&57===n.version&&(i=65535);let o=t(eg).matchPrefix(e.sdp,"a=max-message-size:");return o.length>0?i=parseInt(o[0].substring(19),10):"firefox"===n.browser&&-1!==r&&(i=2147483637),i},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===n.browser&&n.version>=76){let{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(r(arguments[0])){let e;let t=i(arguments[0]),n=o(t),r=s(arguments[0],t);e=0===n&&0===r?Number.POSITIVE_INFINITY:0===n||0===r?Math.max(n,r):Math.min(n,r);let a={};Object.defineProperty(a,"maxMessageSize",{get:()=>e}),this._sctp=a}return a.apply(this,arguments)}}function eb(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){let n=e.send;e.send=function(){let r=arguments[0],i=r.length||r.size||r.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}let n=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let e=n.apply(this,arguments);return t(e,this),e},d(e,"datachannel",e=>(t(e.channel,e.target),e))}function ek(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return({completed:"connected",checking:"connecting"})[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(e=>{let n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{let t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;let n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}function eS(e,t){if(!e.RTCPeerConnection||"chrome"===t.browser&&t.version>=71||"safari"===t.browser&&t.version>=605)return;let n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){let n=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}}function eT(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function eR(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(!(e={type:e.type,sdp:e.sdp}).type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}return e.sdp||"offer"!==e.type&&"answer"!==e.type?n.apply(this,[e]):("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>n.apply(this,[e]))})}ey.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},ey.localCName=ey.generateIdentifier(),ey.splitLines=function(e){return e.trim().split("\n").map(e=>e.trim())},ey.splitSections=function(e){return e.split("\nm=").map((e,t)=>(t>0?"m="+e:e).trim()+"\r\n")},ey.getDescription=function(e){let t=ey.splitSections(e);return t&&t[0]},ey.getMediaSections=function(e){let t=ey.splitSections(e);return t.shift(),t},ey.matchPrefix=function(e,t){return ey.splitLines(e).filter(e=>0===e.indexOf(t))},ey.parseCandidate=function(e){let t;let n={foundation:(t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" "))[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},ey.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},ey.parseFmtp=function(e){let t;let n={},r=e.substring(e.indexOf(" ")+1).split(";");for(let e=0;e{void 0!==e.parameters[t]?r.push(t+"="+e.parameters[t]):r.push(t)}),t+="a=fmtp:"+n+" "+r.join(";")+"\r\n"}return t},ey.parseRtcpFb=function(e){let t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},ey.writeRtcpFb=function(e){let t="",n=e.payloadType;return void 0!==e.preferredPayloadType&&(n=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+="a=rtcp-fb:"+n+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"}),t},ey.parseSsrcMedia=function(e){let t=e.indexOf(" "),n={ssrc:parseInt(e.substring(7,t),10)},r=e.indexOf(":",t);return r>-1?(n.attribute=e.substring(t+1,r),n.value=e.substring(r+1)):n.attribute=e.substring(t+1),n},ey.parseSsrcGroup=function(e){let t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},ey.getMid=function(e){let t=ey.matchPrefix(e,"a=mid:")[0];if(t)return t.substring(6)},ey.parseFingerprint=function(e){let t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},ey.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:ey.matchPrefix(e+t,"a=fingerprint:").map(ey.parseFingerprint)}},ey.writeDtlsParameters=function(e,t){let n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(e=>{n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},ey.parseCryptoLine=function(e){let t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},ey.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?ey.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},ey.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;let t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},ey.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},ey.getCryptoParameters=function(e,t){return ey.matchPrefix(e+t,"a=crypto:").map(ey.parseCryptoLine)},ey.getIceParameters=function(e,t){let n=ey.matchPrefix(e+t,"a=ice-ufrag:")[0],r=ey.matchPrefix(e+t,"a=ice-pwd:")[0];return n&&r?{usernameFragment:n.substring(12),password:r.substring(10)}:null},ey.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},ey.parseRtpParameters=function(e){let t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=ey.splitLines(e)[0].split(" ");t.profile=n[2];for(let r=3;r{t.headerExtensions.push(ey.parseExtmap(e))});let r=ey.matchPrefix(e,"a=rtcp-fb:* ").map(ey.parseRtcpFb);return t.codecs.forEach(e=>{r.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),t},ey.writeRtpDescription=function(e,t){let n="";n+="m="+e+" "+(t.codecs.length>0?"9":"0")+" "+(t.profile||"UDP/TLS/RTP/SAVPF")+" "+t.codecs.map(e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType).join(" ")+"\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(e=>{n+=ey.writeRtpMap(e)+ey.writeFmtp(e)+ey.writeRtcpFb(e)});let r=0;return t.codecs.forEach(e=>{e.maxptime>r&&(r=e.maxptime)}),r>0&&(n+="a=maxptime:"+r+"\r\n"),t.headerExtensions&&t.headerExtensions.forEach(e=>{n+=ey.writeExtmap(e)}),n},ey.parseRtpEncodingParameters=function(e){let t;let n=[],r=ey.parseRtpParameters(e),i=-1!==r.fecMechanisms.indexOf("RED"),o=-1!==r.fecMechanisms.indexOf("ULPFEC"),s=ey.matchPrefix(e,"a=ssrc:").map(e=>ey.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute),a=s.length>0&&s[0].ssrc,c=ey.matchPrefix(e,"a=ssrc-group:FID").map(e=>e.substring(17).split(" ").map(e=>parseInt(e,10)));c.length>0&&c[0].length>1&&c[0][0]===a&&(t=c[0][1]),r.codecs.forEach(e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let r={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&t&&(r.rtx={ssrc:t}),n.push(r),i&&((r=JSON.parse(JSON.stringify(r))).fec={ssrc:a,mechanism:o?"red+ulpfec":"red"},n.push(r))}}),0===n.length&&a&&n.push({ssrc:a});let l=ey.matchPrefix(e,"b=");return l.length&&(l=0===l[0].indexOf("b=TIAS:")?parseInt(l[0].substring(7),10):0===l[0].indexOf("b=AS:")?950*parseInt(l[0].substring(5),10)-16e3:void 0,n.forEach(e=>{e.maxBitrate=l})),n},ey.parseRtcpParameters=function(e){let t={},n=ey.matchPrefix(e,"a=ssrc:").map(e=>ey.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute)[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);let r=ey.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=r.length>0,t.compound=0===r.length;let i=ey.matchPrefix(e,"a=rtcp-mux");return t.mux=i.length>0,t},ey.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},ey.parseMsid=function(e){let t;let n=ey.matchPrefix(e,"a=msid:");if(1===n.length)return{stream:(t=n[0].substring(7).split(" "))[0],track:t[1]};let r=ey.matchPrefix(e,"a=ssrc:").map(e=>ey.parseSsrcMedia(e)).filter(e=>"msid"===e.attribute);if(r.length>0)return{stream:(t=r[0].value.split(" "))[0],track:t[1]}},ey.parseSctpDescription=function(e){let t;let n=ey.parseMLine(e),r=ey.matchPrefix(e,"a=max-message-size:");r.length>0&&(t=parseInt(r[0].substring(19),10)),isNaN(t)&&(t=65536);let i=ey.matchPrefix(e,"a=sctp-port:");if(i.length>0)return{port:parseInt(i[0].substring(12),10),protocol:n.fmt,maxMessageSize:t};let o=ey.matchPrefix(e,"a=sctpmap:");if(o.length>0){let e=o[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:t}}},ey.writeSctpDescription=function(e,t){let n=[];return n="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&n.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),n.join("")},ey.generateSessionId=function(){return Math.random().toString().substr(2,22)},ey.writeSessionBoilerplate=function(e,t,n){return"v=0\r\no="+(n||"thisisadapterortc")+" "+(e||ey.generateSessionId())+" "+(void 0!==t?t:2)+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},ey.getDirection=function(e,t){let n=ey.splitLines(e);for(let e=0;e=this.minChromeVersion:"firefox"===e?t>=this.minFirefoxVersion:"safari"===e&&!this.isIOS&&t>=this.minSafariVersion)}getBrowser(){return eP.browserDetails.browser}getVersion(){return eP.browserDetails.version||0}isUnifiedPlanSupported(){let e;let t=this.getBrowser(),n=eP.browserDetails.version||0;if("chrome"===t&&n=this.minFirefoxVersion)return!0;if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let r=!1;try{(e=new RTCPeerConnection).addTransceiver("audio"),r=!0}catch(e){}finally{e&&e.close()}return r}toString(){return`Supports: - browser:${this.getBrowser()} - version:${this.getVersion()} - isIOS:${this.isIOS} - isWebRTCSupported:${this.isWebRTCSupported()} - isBrowserSupported:${this.isBrowserSupported()} - isUnifiedPlanSupported:${this.isUnifiedPlanSupported()}`}constructor(){this.isIOS=["iPad","iPhone","iPod"].includes(navigator.platform),this.supportedBrowsers=["firefox","chrome","safari"],this.minFirefoxVersion=59,this.minChromeVersion=72,this.minSafariVersion=605}},eD=e=>!e||/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/.test(e),ex=()=>Math.random().toString(36).slice(2),eI={iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:["turn:eu-0.turn.peerjs.com:3478","turn:us-0.turn.peerjs.com:3478"],username:"peerjs",credential:"peerjsp"}],sdpSemantics:"unified-plan"},eM=new class extends n{noop(){}blobToArrayBuffer(e,t){let n=new FileReader;return n.onload=function(e){e.target&&t(e.target.result)},n.readAsArrayBuffer(e),n}binaryStringToArrayBuffer(e){let t=new Uint8Array(e.length);for(let n=0;n=3&&this._print(3,...e)}warn(...e){this._logLevel>=2&&this._print(2,...e)}error(...e){this._logLevel>=1&&this._print(1,...e)}setLogFunction(e){this._print=e}_print(e,...t){let n=["PeerJS: ",...t];for(let e in n)n[e]instanceof Error&&(n[e]="("+n[e].name+") "+n[e].message);e>=3?console.log(...n):e>=2?console.warn("WARNING",...n):e>=1&&console.error("ERROR",...n)}constructor(){this._logLevel=0}},ej={},eL=Object.prototype.hasOwnProperty,eA="~";function eB(){}function eF(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function eU(e,t,n,r,i){if("function"!=typeof n)throw TypeError("The listener must be a function");var o=new eF(n,r||e,i),s=eA?eA+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function ez(e,t){0==--e._eventsCount?e._events=new eB:delete e._events[t]}function eN(){this._events=new eB,this._eventsCount=0}Object.create&&(eB.prototype=Object.create(null),new eB().__proto__||(eA=!1)),eN.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)eL.call(e,t)&&n.push(eA?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},eN.prototype.listeners=function(e){var t=eA?eA+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=Array(i);r","afrokick ","ericz ","Jairo ","Jonas Gloning <34194370+jonasgloning@users.noreply.github.com>","Jairo Caro-Accino Viciana ","Carlos Caballero ","hc ","Muhammad Asif ","PrashoonB ","Harsh Bardhan Mishra <47351025+HarshCasper@users.noreply.github.com>","akotynski ","lmb ","Jairooo ","Moritz Stückler ","Simon ","Denis Lukov ","Philipp Hancke ","Hans Oksendahl ","Jess ","khankuan ","DUODVK ","XiZhao ","Matthias Lohr ","=frank tree <=frnktrb@googlemail.com>","Andre Eckardt ","Chris Cowan ","Alex Chuev ","alxnull ","Yemel Jardi ","Ben Parnell ","Benny Lichtner ","fresheneesz ","bob.barstead@exaptive.com ","chandika ","emersion ","Christopher Van ","eddieherm ","Eduardo Pinho ","Evandro Zanatta ","Gardner Bickford ","Gian Luca ","PatrickJS ","jonnyf ","Hizkia Felix ","Hristo Oskov ","Isaac Madwed ","Ilya Konanykhin ","jasonbarry ","Jonathan Burke ","Josh Hamit ","Jordan Austin ","Joel Wetzell ","xizhao ","Alberto Torres ","Jonathan Mayol ","Jefferson Felix ","Rolf Erik Lekang ","Kevin Mai-Husan Chia ","Pepijn de Vos ","JooYoung ","Tobias Speicher ","Steve Blaurock ","Kyrylo Shegeda ","Diwank Singh Tomer ","Sören Balko ","Arpit Solanki ","Yuki Ito ","Artur Zayats "],"funding":{"type":"opencollective","url":"https://opencollective.com/peer"},"collective":{"type":"opencollective","url":"https://opencollective.com/peer"},"files":["dist/*"],"sideEffects":["lib/global.ts","lib/supports.ts"],"main":"dist/bundler.cjs","module":"dist/bundler.mjs","browser-minified":"dist/peerjs.min.js","browser-unminified":"dist/peerjs.js","browser-minified-cbor":"dist/serializer.cbor.mjs","browser-minified-msgpack":"dist/serializer.msgpack.mjs","types":"dist/types.d.ts","engines":{"node":">= 14"},"targets":{"types":{"source":"lib/exports.ts"},"main":{"source":"lib/exports.ts","sourceMap":{"inlineSources":true}},"module":{"source":"lib/exports.ts","includeNodeModules":["eventemitter3"],"sourceMap":{"inlineSources":true}},"browser-minified":{"context":"browser","outputFormat":"global","optimize":true,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 80, safari >= 15"},"source":"lib/global.ts"},"browser-unminified":{"context":"browser","outputFormat":"global","optimize":false,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 80, safari >= 15"},"source":"lib/global.ts"},"browser-minified-cbor":{"context":"browser","outputFormat":"esmodule","isLibrary":true,"optimize":true,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 102, safari >= 15"},"source":"lib/dataconnection/StreamConnection/Cbor.ts"},"browser-minified-msgpack":{"context":"browser","outputFormat":"esmodule","isLibrary":true,"optimize":true,"engines":{"browsers":"chrome >= 83, edge >= 83, firefox >= 102, safari >= 15"},"source":"lib/dataconnection/StreamConnection/MsgPack.ts"}},"scripts":{"contributors":"git-authors-cli --print=false && prettier --write package.json && git add package.json package-lock.json && git commit -m \\"chore(contributors): update and sort contributors list\\"","check":"tsc --noEmit && tsc -p e2e/tsconfig.json --noEmit","watch":"parcel watch","build":"rm -rf dist && parcel build","prepublishOnly":"npm run build","test":"jest","test:watch":"jest --watch","coverage":"jest --coverage --collectCoverageFrom=\\"./lib/**\\"","format":"prettier --write .","format:check":"prettier --check .","semantic-release":"semantic-release","e2e":"wdio run e2e/wdio.local.conf.ts","e2e:bstack":"wdio run e2e/wdio.bstack.conf.ts"},"devDependencies":{"@parcel/config-default":"^2.9.3","@parcel/packager-ts":"^2.9.3","@parcel/transformer-typescript-tsc":"^2.9.3","@parcel/transformer-typescript-types":"^2.9.3","@semantic-release/changelog":"^6.0.1","@semantic-release/git":"^10.0.1","@swc/core":"^1.3.27","@swc/jest":"^0.2.24","@types/jasmine":"^4.3.4","@wdio/browserstack-service":"^8.11.2","@wdio/cli":"^8.11.2","@wdio/globals":"^8.11.2","@wdio/jasmine-framework":"^8.11.2","@wdio/local-runner":"^8.11.2","@wdio/spec-reporter":"^8.11.2","@wdio/types":"^8.10.4","http-server":"^14.1.1","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","mock-socket":"^9.0.0","parcel":"^2.9.3","prettier":"^3.0.0","semantic-release":"^21.0.0","ts-node":"^10.9.1","typescript":"^5.0.0","wdio-geckodriver-service":"^5.0.1"},"dependencies":{"@msgpack/msgpack":"^2.8.0","cbor-x":"1.5.4","eventemitter3":"^4.0.7","peerjs-js-binarypack":"^2.1.0","webrtc-adapter":"^8.0.0"},"alias":{"process":false,"buffer":false}}');class eJ extends ej.EventEmitter{start(e,t){this._id=e;let n=`${this._baseUrl}&id=${e}&token=${t}`;!this._socket&&this._disconnected&&(this._socket=new WebSocket(n+"&version="+e$.version),this._disconnected=!1,this._socket.onmessage=e=>{let t;try{t=JSON.parse(e.data),eO.log("Server message received:",t)}catch(t){eO.log("Invalid server message",e.data);return}this.emit(M.Message,t)},this._socket.onclose=e=>{this._disconnected||(eO.log("Socket closed.",e),this._cleanup(),this._disconnected=!0,this.emit(M.Disconnected))},this._socket.onopen=()=>{this._disconnected||(this._sendQueuedMessages(),eO.log("Socket open"),this._scheduleHeartbeat())})}_scheduleHeartbeat(){this._wsPingTimer=setTimeout(()=>{this._sendHeartbeat()},this.pingInterval)}_sendHeartbeat(){if(!this._wsOpen()){eO.log("Cannot send heartbeat, because socket closed");return}let e=JSON.stringify({type:O.Heartbeat});this._socket.send(e),this._scheduleHeartbeat()}_wsOpen(){return!!this._socket&&1===this._socket.readyState}_sendQueuedMessages(){let e=[...this._messagesQueue];for(let t of(this._messagesQueue=[],e))this.send(t)}send(e){if(this._disconnected)return;if(!this._id){this._messagesQueue.push(e);return}if(!e.type){this.emit(M.Error,"Invalid message");return}if(!this._wsOpen())return;let t=JSON.stringify(e);this._socket.send(t)}close(){this._disconnected||(this._cleanup(),this._disconnected=!0)}_cleanup(){this._socket&&(this._socket.onopen=this._socket.onmessage=this._socket.onclose=null,this._socket.close(),this._socket=void 0),clearTimeout(this._wsPingTimer)}constructor(e,t,n,r,i,o=5e3){super(),this.pingInterval=o,this._disconnected=!0,this._messagesQueue=[],this._baseUrl=(e?"wss://":"ws://")+t+":"+n+r+"peerjs?key="+i}}class eV{startConnection(e){let t=this._startPeerConnection();if(this.connection.peerConnection=t,this.connection.type===P.Media&&e._stream&&this._addTracksToConnection(e._stream,t),e.originator){let n=this.connection,r={ordered:!!e.reliable},i=t.createDataChannel(n.label,r);n._initializeDataChannel(i),this._makeOffer()}else this.handleSDP("OFFER",e.sdp)}_startPeerConnection(){eO.log("Creating RTCPeerConnection.");let e=new RTCPeerConnection(this.connection.provider.options.config);return this._setupListeners(e),e}_setupListeners(e){let t=this.connection.peer,n=this.connection.connectionId,r=this.connection.type,i=this.connection.provider;eO.log("Listening for ICE candidates."),e.onicecandidate=e=>{e.candidate&&e.candidate.candidate&&(eO.log(`Received ICE candidates for ${t}:`,e.candidate),i.socket.send({type:O.Candidate,payload:{candidate:e.candidate,type:r,connectionId:n},dst:t}))},e.oniceconnectionstatechange=()=>{switch(e.iceConnectionState){case"failed":eO.log("iceConnectionState is failed, closing connections to "+t),this.connection.emitError(D.NegotiationFailed,"Negotiation of connection to "+t+" failed."),this.connection.close();break;case"closed":eO.log("iceConnectionState is closed, closing connections to "+t),this.connection.emitError(D.ConnectionClosed,"Connection to "+t+" closed."),this.connection.close();break;case"disconnected":eO.log("iceConnectionState changed to disconnected on the connection with "+t);break;case"completed":e.onicecandidate=()=>{}}this.connection.emit("iceStateChanged",e.iceConnectionState)},eO.log("Listening for data channel"),e.ondatachannel=e=>{eO.log("Received data channel");let r=e.channel;i.getConnection(t,n)._initializeDataChannel(r)},eO.log("Listening for remote stream"),e.ontrack=e=>{eO.log("Received remote stream");let r=e.streams[0],o=i.getConnection(t,n);o.type===P.Media&&this._addStreamToMediaConnection(r,o)}}cleanup(){eO.log("Cleaning up PeerConnection to "+this.connection.peer);let e=this.connection.peerConnection;if(!e)return;this.connection.peerConnection=null,e.onicecandidate=e.oniceconnectionstatechange=e.ondatachannel=e.ontrack=()=>{};let t="closed"!==e.signalingState,n=!1,r=this.connection.dataChannel;r&&(n=!!r.readyState&&"closed"!==r.readyState),(t||n)&&e.close()}async _makeOffer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createOffer(this.connection.options.constraints);eO.log("Created offer."),this.connection.options.sdpTransform&&"function"==typeof this.connection.options.sdpTransform&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),eO.log("Set localDescription:",n,`for:${this.connection.peer}`);let r={sdp:n,type:this.connection.type,connectionId:this.connection.connectionId,metadata:this.connection.metadata};if(this.connection.type===P.Data){let e=this.connection;r={...r,label:e.label,reliable:e.reliable,serialization:e.serialization}}t.socket.send({type:O.Offer,payload:r,dst:this.connection.peer})}catch(e){"OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer"!=e&&(t.emitError(E.WebRTC,e),eO.log("Failed to setLocalDescription, ",e))}}catch(e){t.emitError(E.WebRTC,e),eO.log("Failed to createOffer, ",e)}}async _makeAnswer(){let e=this.connection.peerConnection,t=this.connection.provider;try{let n=await e.createAnswer();eO.log("Created answer."),this.connection.options.sdpTransform&&"function"==typeof this.connection.options.sdpTransform&&(n.sdp=this.connection.options.sdpTransform(n.sdp)||n.sdp);try{await e.setLocalDescription(n),eO.log("Set localDescription:",n,`for:${this.connection.peer}`),t.socket.send({type:O.Answer,payload:{sdp:n,type:this.connection.type,connectionId:this.connection.connectionId},dst:this.connection.peer})}catch(e){t.emitError(E.WebRTC,e),eO.log("Failed to setLocalDescription, ",e)}}catch(e){t.emitError(E.WebRTC,e),eO.log("Failed to create answer, ",e)}}async handleSDP(e,t){t=new RTCSessionDescription(t);let n=this.connection.peerConnection,r=this.connection.provider;eO.log("Setting remote description",t);try{await n.setRemoteDescription(t),eO.log(`Set remoteDescription:${e} for:${this.connection.peer}`),"OFFER"===e&&await this._makeAnswer()}catch(e){r.emitError(E.WebRTC,e),eO.log("Failed to setRemoteDescription, ",e)}}async handleCandidate(e){eO.log("handleCandidate:",e);try{await this.connection.peerConnection.addIceCandidate(e),eO.log(`Added ICE candidate for:${this.connection.peer}`)}catch(e){this.connection.provider.emitError(E.WebRTC,e),eO.log("Failed to handleCandidate, ",e)}}_addTracksToConnection(e,t){if(eO.log(`add tracks from stream ${e.id} to peer connection`),!t.addTrack)return eO.error("Your browser does't support RTCPeerConnection#addTrack. Ignored.");e.getTracks().forEach(n=>{t.addTrack(n,e)})}_addStreamToMediaConnection(e,t){eO.log(`add stream ${e.id} to media connection ${t.connectionId}`),t.addStream(e)}constructor(e){this.connection=e}}class eG extends ej.EventEmitter{emitError(e,t){eO.error("Error:",t),this.emit("error",new eW(`${e}`,t))}}class eW extends Error{constructor(e,t){"string"==typeof t?super(t):(super(),Object.assign(this,t)),this.type=e}}class eH extends eG{get open(){return this._open}constructor(e,t,n){super(),this.peer=e,this.provider=t,this.options=n,this._open=!1,this.metadata=n.metadata}}class eY extends eH{get type(){return P.Media}get localStream(){return this._localStream}get remoteStream(){return this._remoteStream}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{eO.log(`DC#${this.connectionId} dc connection success`),this.emit("willCloseOnRemote")},this.dataChannel.onclose=()=>{eO.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}addStream(e){eO.log("Receiving stream",e),this._remoteStream=e,super.emit("stream",e)}handleMessage(e){let t=e.type,n=e.payload;switch(e.type){case O.Answer:this._negotiator.handleSDP(t,n.sdp),this._open=!0;break;case O.Candidate:this._negotiator.handleCandidate(n.candidate);break;default:eO.warn(`Unrecognized message type:${t} from peer:${this.peer}`)}}answer(e,t={}){if(this._localStream){eO.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?");return}for(let n of(this._localStream=e,t&&t.sdpTransform&&(this.options.sdpTransform=t.sdpTransform),this._negotiator.startConnection({...this.options._payload,_stream:e}),this.provider._getMessages(this.connectionId)))this.handleMessage(n);this._open=!0}close(){this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this._localStream=null,this._remoteStream=null,this.provider&&(this.provider._removeConnection(this),this.provider=null),this.options&&this.options._stream&&(this.options._stream=null),this.open&&(this._open=!1,super.emit("close"))}constructor(e,t,n){super(e,t,n),this._localStream=this.options._stream,this.connectionId=this.options.connectionId||eY.ID_PREFIX+eM.randomToken(),this._negotiator=new eV(this),this._localStream&&this._negotiator.startConnection({_stream:this._localStream,originator:!0})}}eY.ID_PREFIX="mc_";class eK{_buildRequest(e){let t=this._options.secure?"https":"http",{host:n,port:r,path:i,key:o}=this._options,s=new URL(`${t}://${n}:${r}${i}${o}/${e}`);return s.searchParams.set("ts",`${Date.now()}${Math.random()}`),s.searchParams.set("version",e$.version),fetch(s.href,{referrerPolicy:this._options.referrerPolicy})}async retrieveId(){try{let e=await this._buildRequest("id");if(200!==e.status)throw Error(`Error. Status:${e.status}`);return e.text()}catch(t){eO.error("Error retrieving ID",t);let e="";throw"/"===this._options.path&&this._options.host!==eM.CLOUD_HOST&&(e=" If you passed in a `path` to your self-hosted PeerServer, you'll also need to pass in that same path when creating a new Peer."),Error("Could not get an ID from the server."+e)}}async listAllPeers(){try{let e=await this._buildRequest("peers");if(200!==e.status){if(401===e.status){let e="";throw e=this._options.host===eM.CLOUD_HOST?"It looks like you're using the cloud server. You can email team@peerjs.com to enable peer listing for your API key.":"You need to enable `allow_discovery` on your self-hosted PeerServer to use this feature.",Error("It doesn't look like you have permission to list peers IDs. "+e)}throw Error(`Error. Status:${e.status}`)}return e.json()}catch(e){throw eO.error("Error retrieving list peers",e),Error("Could not get list peers from the server."+e)}}constructor(e){this._options=e}}class eX extends eH{get type(){return P.Data}_initializeDataChannel(e){this.dataChannel=e,this.dataChannel.onopen=()=>{eO.log(`DC#${this.connectionId} dc connection success`),this._open=!0,this.emit("open")},this.dataChannel.onmessage=e=>{eO.log(`DC#${this.connectionId} dc onmessage:`,e.data)},this.dataChannel.onclose=()=>{eO.log(`DC#${this.connectionId} dc closed for:`,this.peer),this.close()}}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._negotiator&&(this._negotiator.cleanup(),this._negotiator=null),this.provider&&(this.provider._removeConnection(this),this.provider=null),this.dataChannel&&(this.dataChannel.onopen=null,this.dataChannel.onmessage=null,this.dataChannel.onclose=null,this.dataChannel=null),this.open&&(this._open=!1,super.emit("close"))}send(e,t=!1){if(!this.open){this.emitError(x.NotOpenYet,"Connection is not open. You should listen for the `open` event before sending messages.");return}return this._send(e,t)}async handleMessage(e){let t=e.payload;switch(e.type){case O.Answer:await this._negotiator.handleSDP(e.type,t.sdp);break;case O.Candidate:await this._negotiator.handleCandidate(t.candidate);break;default:eO.warn("Unrecognized message type:",e.type,"from peer:",this.peer)}}constructor(e,t,n){super(e,t,n),this.connectionId=this.options.connectionId||eX.ID_PREFIX+ex(),this.label=this.options.label||this.connectionId,this.reliable=!!this.options.reliable,this._negotiator=new eV(this),this._negotiator.startConnection(this.options._payload||{originator:!0,reliable:this.reliable})}}eX.ID_PREFIX="dc_",eX.MAX_BUFFERED_AMOUNT=8388608;class eq extends eX{get bufferSize(){return this._bufferSize}_initializeDataChannel(e){super._initializeDataChannel(e),this.dataChannel.binaryType="arraybuffer",this.dataChannel.addEventListener("message",e=>this._handleDataMessage(e))}_bufferedSend(e){(this._buffering||!this._trySend(e))&&(this._buffer.push(e),this._bufferSize=this._buffer.length)}_trySend(e){if(!this.open)return!1;if(this.dataChannel.bufferedAmount>eX.MAX_BUFFERED_AMOUNT)return this._buffering=!0,setTimeout(()=>{this._buffering=!1,this._tryBuffer()},50),!1;try{this.dataChannel.send(e)}catch(e){return eO.error(`DC#:${this.connectionId} Error when sending:`,e),this._buffering=!0,this.close(),!1}return!0}_tryBuffer(){if(!this.open||0===this._buffer.length)return;let e=this._buffer[0];this._trySend(e)&&(this._buffer.shift(),this._bufferSize=this._buffer.length,this._tryBuffer())}close(e){if(e?.flush){this.send({__peerData:{type:"close"}});return}this._buffer=[],this._bufferSize=0,super.close()}constructor(...e){super(...e),this._buffer=[],this._bufferSize=0,this._buffering=!1}}class eQ extends eq{close(e){super.close(e),this._chunkedData={}}_handleDataMessage({data:e}){let t=i(e),n=t.__peerData;if(n){if("close"===n.type){this.close();return}this._handleChunk(t);return}this.emit("data",t)}_handleChunk(e){let t=e.__peerData,n=this._chunkedData[t]||{data:[],count:0,total:e.total};if(n.data[e.n]=new Uint8Array(e.data),n.count++,this._chunkedData[t]=n,n.total===n.count){delete this._chunkedData[t];let e=function(e){let t=0;for(let n of e)t+=n.byteLength;let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.byteLength;return n}(n.data);this._handleDataMessage({data:e})}}_send(e,t){let n=o(e);if(n instanceof Promise)return this._send_blob(n);if(!t&&n.byteLength>this.chunker.chunkedMTU){this._sendChunks(n);return}this._bufferedSend(n)}async _send_blob(e){let t=await e;if(t.byteLength>this.chunker.chunkedMTU){this._sendChunks(t);return}this._bufferedSend(t)}_sendChunks(e){let t=this.chunker.chunk(e);for(let e of(eO.log(`DC#${this.connectionId} Try to send ${t.length} chunks...`),t))this.send(e,!0)}constructor(e,t,r){super(e,t,r),this.chunker=new n,this.serialization=I.Binary,this._chunkedData={}}}class eZ extends eq{_handleDataMessage({data:e}){super.emit("data",e)}_send(e,t){this._bufferedSend(e)}constructor(...e){super(...e),this.serialization=I.None}}class e0 extends eq{_handleDataMessage({data:e}){let t=this.parse(this.decoder.decode(e)),n=t.__peerData;if(n&&"close"===n.type){this.close();return}this.emit("data",t)}_send(e,t){let n=this.encoder.encode(this.stringify(e));if(n.byteLength>=eM.chunkedMTU){this.emitError(x.MessageToBig,"Message too big for JSON channel");return}this._bufferedSend(n)}constructor(...e){super(...e),this.serialization=I.JSON,this.encoder=new TextEncoder,this.decoder=new TextDecoder,this.stringify=JSON.stringify,this.parse=JSON.parse}}class e1 extends eG{get id(){return this._id}get options(){return this._options}get open(){return this._open}get socket(){return this._socket}get connections(){let e=Object.create(null);for(let[t,n]of this._connections)e[t]=n;return e}get destroyed(){return this._destroyed}get disconnected(){return this._disconnected}_createServerConnection(){let e=new eJ(this._options.secure,this._options.host,this._options.port,this._options.path,this._options.key,this._options.pingInterval);return e.on(M.Message,e=>{this._handleMessage(e)}),e.on(M.Error,e=>{this._abort(E.SocketError,e)}),e.on(M.Disconnected,()=>{this.disconnected||(this.emitError(E.Network,"Lost connection to server."),this.disconnect())}),e.on(M.Close,()=>{this.disconnected||this._abort(E.SocketClosed,"Underlying socket is already closed.")}),e}_initialize(e){this._id=e,this.socket.start(e,this._options.token)}_handleMessage(e){let t=e.type,n=e.payload,r=e.src;switch(t){case O.Open:this._lastServerId=this.id,this._open=!0,this.emit("open",this.id);break;case O.Error:this._abort(E.ServerError,n.msg);break;case O.IdTaken:this._abort(E.UnavailableID,`ID "${this.id}" is taken`);break;case O.InvalidKey:this._abort(E.InvalidKey,`API KEY "${this._options.key}" is invalid`);break;case O.Leave:eO.log(`Received leave message from ${r}`),this._cleanupPeer(r),this._connections.delete(r);break;case O.Expire:this.emitError(E.PeerUnavailable,`Could not connect to peer ${r}`);break;case O.Offer:{let e=n.connectionId,t=this.getConnection(r,e);if(t&&(t.close(),eO.warn(`Offer received for existing Connection ID:${e}`)),n.type===P.Media){let i=new eY(r,this,{connectionId:e,_payload:n,metadata:n.metadata});t=i,this._addConnection(r,t),this.emit("call",i)}else if(n.type===P.Data){let i=new this._serializers[n.serialization](r,this,{connectionId:e,_payload:n,metadata:n.metadata,label:n.label,serialization:n.serialization,reliable:n.reliable});t=i,this._addConnection(r,t),this.emit("connection",i)}else{eO.warn(`Received malformed connection type:${n.type}`);return}for(let n of this._getMessages(e))t.handleMessage(n);break}default:{if(!n){eO.warn(`You received a malformed message from ${r} of type ${t}`);return}let i=n.connectionId,o=this.getConnection(r,i);o&&o.peerConnection?o.handleMessage(e):i?this._storeMessage(i,e):eO.warn("You received an unrecognized message:",e)}}}_storeMessage(e,t){this._lostMessages.has(e)||this._lostMessages.set(e,[]),this._lostMessages.get(e).push(t)}_getMessages(e){let t=this._lostMessages.get(e);return t?(this._lostMessages.delete(e),t):[]}connect(e,t={}){if(t={serialization:"default",...t},this.disconnected){eO.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect, or call reconnect on this peer if you believe its ID to still be available."),this.emitError(E.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}let n=new this._serializers[t.serialization](e,this,t);return this._addConnection(e,n),n}call(e,t,n={}){if(this.disconnected){eO.warn("You cannot connect to a new Peer because you called .disconnect() on this Peer and ended your connection with the server. You can create a new Peer to reconnect."),this.emitError(E.Disconnected,"Cannot connect to new Peer after disconnecting from server.");return}if(!t){eO.error("To call a peer, you must provide a stream from your browser's `getUserMedia`.");return}let r=new eY(e,this,{...n,_stream:t});return this._addConnection(e,r),r}_addConnection(e,t){eO.log(`add connection ${t.type}:${t.connectionId} to peerId:${e}`),this._connections.has(e)||this._connections.set(e,[]),this._connections.get(e).push(t)}_removeConnection(e){let t=this._connections.get(e.peer);if(t){let n=t.indexOf(e);-1!==n&&t.splice(n,1)}this._lostMessages.delete(e.connectionId)}getConnection(e,t){let n=this._connections.get(e);if(!n)return null;for(let e of n)if(e.connectionId===t)return e;return null}_delayedAbort(e,t){setTimeout(()=>{this._abort(e,t)},0)}_abort(e,t){eO.error("Aborting!"),this.emitError(e,t),this._lastServerId?this.disconnect():this.destroy()}destroy(){this.destroyed||(eO.log(`Destroy peer with ID:${this.id}`),this.disconnect(),this._cleanup(),this._destroyed=!0,this.emit("close"))}_cleanup(){for(let e of this._connections.keys())this._cleanupPeer(e),this._connections.delete(e);this.socket.removeAllListeners()}_cleanupPeer(e){let t=this._connections.get(e);if(t)for(let e of t)e.close()}disconnect(){if(this.disconnected)return;let e=this.id;eO.log(`Disconnect peer with ID:${e}`),this._disconnected=!0,this._open=!1,this.socket.close(),this._lastServerId=e,this._id=null,this.emit("disconnected",e)}reconnect(){if(this.disconnected&&!this.destroyed)eO.log(`Attempting reconnection to server with ID ${this._lastServerId}`),this._disconnected=!1,this._initialize(this._lastServerId);else if(this.destroyed)throw Error("This peer cannot reconnect to the server. It has already been destroyed.");else if(this.disconnected||this.open)throw Error(`Peer ${this.id} cannot reconnect because it is not disconnected from the server!`);else eO.error("In a hurry? We're still trying to make the initial connection!")}listAllPeers(e=e=>{}){this._api.listAllPeers().then(t=>e(t)).catch(e=>this._abort(E.ServerError,e))}constructor(e,t){let n;if(super(),this._serializers={raw:eZ,json:e0,binary:eQ,"binary-utf8":eQ,default:eQ},this._id=null,this._lastServerId=null,this._destroyed=!1,this._disconnected=!1,this._open=!1,this._connections=new Map,this._lostMessages=new Map,e&&e.constructor==Object?t=e:e&&(n=e.toString()),t={debug:0,host:eM.CLOUD_HOST,port:eM.CLOUD_PORT,path:"/",key:e1.DEFAULT_KEY,token:eM.randomToken(),config:eM.defaultConfig,referrerPolicy:"strict-origin-when-cross-origin",serializers:{},...t},this._options=t,this._serializers={...this._serializers,...this.options.serializers},"/"===this._options.host&&(this._options.host=window.location.hostname),this._options.path&&("/"!==this._options.path[0]&&(this._options.path="/"+this._options.path),"/"!==this._options.path[this._options.path.length-1]&&(this._options.path+="/")),void 0===this._options.secure&&this._options.host!==eM.CLOUD_HOST?this._options.secure=eM.isSecure():this._options.host==eM.CLOUD_HOST&&(this._options.secure=!0),this._options.logFunction&&eO.setLogFunction(this._options.logFunction),eO.logLevel=this._options.debug||0,this._api=new eK(t),this._socket=this._createServerConnection(),!eM.supports.audioVideo&&!eM.supports.data){this._delayedAbort(E.BrowserIncompatible,"The current browser does not support WebRTC");return}if(n&&!eM.validateId(n)){this._delayedAbort(E.InvalidID,`ID "${n}" is invalid`);return}n?this._initialize(n):this._api.retrieveId().then(e=>this._initialize(e)).catch(e=>this._abort(E.ServerError,e))}}e1.DEFAULT_KEY="peerjs",window.peerjs={Peer:e1,util:eM},window.Peer=e1})(); -//# sourceMappingURL=peerjs.min.js.map diff --git a/webpage/assets/assets/js/scan.js b/webpage/assets/assets/js/scan.js deleted file mode 100644 index af3678e..0000000 --- a/webpage/assets/assets/js/scan.js +++ /dev/null @@ -1,85 +0,0 @@ -import jsQR from "jsqr"; - -let mediaStream; -let video; - -export let stop_scan = function (callback) { - document.getElementById("qr-screen").style.display = "none"; - - if (mediaStream) { - mediaStream.getTracks().forEach(function (track) { - track.stop(); - }); - mediaStream = null; - } - - if (callback) { - document.getElementById("qr-screen").style.display = "none"; - callback(); - } -}; - -export let start_scan = function (callback) { - document.getElementById("qr-screen").style.display = "block"; - - if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - navigator.mediaDevices - .getUserMedia({ - audio: false, - video: { - facingMode: "environment", - }, - }) - .then(function (stream) { - mediaStream = stream; // Assign the stream to mediaStream variable - - video = document.getElementsByTagName("video")[0]; - - video.muted = true; - video.playsInline = true; // Important for iOS - video.autoplay = true; - - video.srcObject = stream; - - video.onloadedmetadata = function () { - video.play(); - - const barcodeCanvas = document.createElement("canvas"); - const barcodeContext = barcodeCanvas.getContext("2d"); - - const intv = setInterval(() => { - barcodeCanvas.width = video.videoWidth; - barcodeCanvas.height = video.videoHeight; - barcodeContext.drawImage( - video, - 0, - 0, - video.videoWidth, - video.videoHeight - ); - - const imageData = barcodeContext.getImageData( - 0, - 0, - video.videoWidth, - video.videoHeight - ); - const idd = imageData.data; - - const code = jsQR(idd, video.videoWidth, video.videoHeight); - - if (code) { - clearInterval(intv); - stop_scan(); - callback(code.data); - } - }, 1000); - }; - }) - .catch(function (err) { - alert("The following error occurred: " + err.name); - }); - } else { - alert("getUserMedia not supported"); - } -}; diff --git a/webpage/index.e4d7bbe7.css b/webpage/index.02d14a0f.css similarity index 98% rename from webpage/index.e4d7bbe7.css rename to webpage/index.02d14a0f.css index b360f98..4039965 100644 --- a/webpage/index.e4d7bbe7.css +++ b/webpage/index.02d14a0f.css @@ -94,11 +94,16 @@ label { } article img { - max-width: 90vw; + width: 100%; height: auto; + padding: 10px; display: block; } +#chat { + padding: 40px 0; +} + img[src=""], img[src=" "] { display: none; } @@ -370,6 +375,10 @@ div#intro img { padding: 10px; } +#app { + max-width: 500px; +} + div#toast { overflow: none; color: #fff; @@ -605,8 +614,11 @@ div#top-bar div.button-center img, div#top-bar div.button-center:hover img { article { width: 100%; + max-width: 400px; margin: 0 0 10px; padding: 3px; + position: relative; + overflow: hidden; } article div.user-date { @@ -623,17 +635,10 @@ article img { } article .message-map { + background: url("map.25bf3a08.png") 0 0 / cover; width: 100%; - min-width: 100%; - max-height: 100px; -} - -article .map-component { - width: 100%; - min-width: 100%; - height: 100px; - max-height: 100px; - overflow: hidden; + height: 150px; + position: relative; } [id*="page-"] { @@ -728,6 +733,10 @@ article div.message-main { padding: 5px; } +article div.message-main:empty { + display: none; +} + article.me div.message-main { background: #a7aca449; -moz-border-radius: 7px; @@ -735,10 +744,6 @@ article.me div.message-main { padding: 5px; } -article div.message-main:empty { - display: none; -} - article.image { background-color: none; } @@ -898,8 +903,8 @@ div#message-input input { @media screen and (width >= 1500px) and (width <= 3000px) { #app { - min-width: 100%; - max-width: 100%; + min-width: 400px; + max-width: 400px; padding: 50px 0 0; overflow: scroll; } diff --git a/webpage/index.138a9186.js b/webpage/index.c154ce9f.js similarity index 99% rename from webpage/index.138a9186.js rename to webpage/index.c154ce9f.js index 3da7dfc..7973fb7 100644 --- a/webpage/index.138a9186.js +++ b/webpage/index.c154ce9f.js @@ -2005,7 +2005,7 @@ function $bdca4d8f0452b8e7$var$asyncGeneratorStep(gen, resolve, reject, _next, _ if (info.done) resolve(value); else Promise.resolve(value).then(_next, _throw); } -function $bdca4d8f0452b8e7$export$7c398597f8905a1(fn) { +function $bdca4d8f0452b8e7$export$71511d61b312f219(fn) { return function() { var self = this, args = arguments; return new Promise(function(resolve, reject) { @@ -2035,7 +2035,7 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol */ function $4cfdb3add9285597$export$5f0017c582d45a2d(obj) { +***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol */ function $4cfdb3add9285597$export$71511d61b312f219(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } @@ -2129,10 +2129,10 @@ function $95fedd77f81839f7$export$d831c04e792af3d(thisArg, initializers, value) return useValue ? value : void 0; } function $95fedd77f81839f7$export$6a2a36740a146cb8(x) { - return (typeof x === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(x)) === "symbol" ? x : "".concat(x); + return (typeof x === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(x)) === "symbol" ? x : "".concat(x); } function $95fedd77f81839f7$export$d1a06452d3489bc7(f, name, prefix) { - if ((typeof name === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(name)) === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + if ((typeof name === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(name)) === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name @@ -2644,20 +2644,19 @@ var $6d3f4b507512327e$export$33d904bed5c25b69 = function geolocation(callback) { } }; var error = function error(_error) { - console.log(_error.code); + alert("Current location not available"); switch(_error.code){ case _error.PERMISSION_DENIED: - $6d3f4b507512327e$export$6593825dc0f3a767("Location not provided", 2000); + $6d3f4b507512327e$export$6593825dc0f3a767("Location not provided", 5000); break; case _error.POSITION_UNAVAILABLE: - $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 2000); + $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 5000); break; case _error.TIMEOUT: - case 3: - $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 2000); + $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 5000); break; default: - $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 2000); + $6d3f4b507512327e$export$6593825dc0f3a767("Current location not available", 5000); break; } if (n) { @@ -2675,13 +2674,13 @@ var $6d3f4b507512327e$export$33d904bed5c25b69 = function geolocation(callback) { } else if (navigator.geolocation) { if (autoupdate) window.watchId = navigator.geolocation.watchPosition(showPosition, error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0 + timeout: 20000, + maximumAge: 1000 }); else navigator.geolocation.getCurrentPosition(showPosition, error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0 + timeout: 20000, + maximumAge: 1000 }); } else { $6d3f4b507512327e$export$6593825dc0f3a767("Geolocation is not supported by this browser.", 2000); @@ -3135,7 +3134,7 @@ function $6d3f4b507512327e$export$637fd9537164f29b() { return _init.apply(this, arguments); } function _init() { - _init = (0, $bdca4d8f0452b8e7$export$7c398597f8905a1)(function() { + _init = (0, $bdca4d8f0452b8e7$export$71511d61b312f219)(function() { var error; return (0, $95fedd77f81839f7$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ @@ -3192,7 +3191,7 @@ function $6d3f4b507512327e$export$637fd9537164f29b() { return _startRecording.apply(this, arguments); } function _startRecording() { - _startRecording = (0, $bdca4d8f0452b8e7$export$7c398597f8905a1)(function() { + _startRecording = (0, $bdca4d8f0452b8e7$export$71511d61b312f219)(function() { return (0, $95fedd77f81839f7$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ case 0: @@ -14990,10 +14989,10 @@ var $f09be4829256f6d5$exports = {}; 4: [ function(_dereq_, module1, exports) { "use strict"; - var _typeof = typeof Symbol === "function" && (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(Symbol.iterator) === "symbol" ? function _typeof(obj) { - return typeof obj === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(obj); + var _typeof = typeof Symbol === "function" && (0, $4cfdb3add9285597$export$71511d61b312f219)(Symbol.iterator) === "symbol" ? function _typeof(obj) { + return typeof obj === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(obj); } : function(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(obj); + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(obj); }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); @@ -21256,7 +21255,7 @@ var $194554b49bf11e1e$export$2e2bcd8739ae039 = $194554b49bf11e1e$var$v4; * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. - */ /* eslint-env node */ function $c96c38d675a75115$export$1e71eb4bef00f6b0(obj, key, value) { + */ /* eslint-env node */ function $c96c38d675a75115$export$71511d61b312f219(obj, key, value) { if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, @@ -21326,12 +21325,12 @@ function $ecbc82f8e2fc2f44$export$1f48841962b828b1(window1, eventNameToWrap, wra }); } function $ecbc82f8e2fc2f44$export$afbfee8cc06fd3e4(bool) { - if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(bool)) + ". Please use a boolean."); + if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(bool)) + ". Please use a boolean."); $ecbc82f8e2fc2f44$var$logDisabled_ = bool; return bool ? "adapter.js logging disabled" : "adapter.js logging enabled"; } function $ecbc82f8e2fc2f44$export$51516be4b019e41e(bool) { - if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(bool)) + ". Please use a boolean."); + if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(bool)) + ". Please use a boolean."); $ecbc82f8e2fc2f44$var$deprecationWarnings_ = !bool; return "adapter.js deprecation warnings " + (bool ? "disabled" : "enabled"); } @@ -21402,7 +21401,7 @@ function $ecbc82f8e2fc2f44$export$15384eac40dc88c8(data) { var value = isObj ? $ecbc82f8e2fc2f44$export$15384eac40dc88c8(data[key]) : data[key]; var isEmptyObject = isObj && !Object.keys(value).length; if (value === undefined || isEmptyObject) return accumulator; - return Object.assign(accumulator, (0, $c96c38d675a75115$export$1e71eb4bef00f6b0)({}, key, value)); + return Object.assign(accumulator, (0, $c96c38d675a75115$export$71511d61b312f219)({}, key, value)); }, {}); } function $ecbc82f8e2fc2f44$export$571b373e75babb58(stats, base, resultSet) { @@ -22040,7 +22039,7 @@ function $c83c9d2c0bca1d6e$export$9588259fcf4ebc91(window, browserDetails) { "createAnswer" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $c96c38d675a75115$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $c96c38d675a75115$export$71511d61b312f219)({}, method, function() { var _this = this; var args = arguments; var isLegacyCall = arguments.length && typeof arguments[0] === "function"; @@ -22115,7 +22114,7 @@ function $c83c9d2c0bca1d6e$export$852a08dda9a55ea7(window, browserDetails) { "addIceCandidate" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $c96c38d675a75115$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $c96c38d675a75115$export$71511d61b312f219)({}, method, function() { arguments[0] = new (method === "addIceCandidate" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]); return nativeMethod.apply(this, arguments); }); @@ -22154,12 +22153,12 @@ $parcel$export($69fa72c68315eefd$exports, "shimGetDisplayMedia", function () { r * that can be found in the LICENSE file in the root of the source * tree. */ /* eslint-env node */ -function $f76c296ed2fab950$export$e6256bf45c68d561(arr) { +function $f76c296ed2fab950$export$71511d61b312f219(arr) { if (Array.isArray(arr)) return arr; } -function $d4d0fa0b930ea205$export$2fd15edff6687200(arr, i) { +function $d4d0fa0b930ea205$export$71511d61b312f219(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; @@ -22185,52 +22184,52 @@ function $d4d0fa0b930ea205$export$2fd15edff6687200(arr, i) { } -function $a857e8ed28e4994b$export$60dbc22abd7da546() { +function $a857e8ed28e4994b$export$71511d61b312f219() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function $67440b47eae652c8$export$79e617b1955a2616(arr, len) { +function $67440b47eae652c8$export$71511d61b312f219(arr, len) { if (len == null || len > arr.length) len = arr.length; for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; return arr2; } -function $3899c414e8c0a384$export$a5be06335b3a083c(o, minLen) { +function $3899c414e8c0a384$export$71511d61b312f219(o, minLen) { if (!o) return; - if (typeof o === "string") return (0, $67440b47eae652c8$export$79e617b1955a2616)(o, minLen); + if (typeof o === "string") return (0, $67440b47eae652c8$export$71511d61b312f219)(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0, $67440b47eae652c8$export$79e617b1955a2616)(o, minLen); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0, $67440b47eae652c8$export$71511d61b312f219)(o, minLen); } -function $13b9422e3d1c1523$export$fdf2a89c76341bbf(arr, i) { - return (0, $f76c296ed2fab950$export$e6256bf45c68d561)(arr) || (0, $d4d0fa0b930ea205$export$2fd15edff6687200)(arr, i) || (0, $3899c414e8c0a384$export$a5be06335b3a083c)(arr, i) || (0, $a857e8ed28e4994b$export$60dbc22abd7da546)(); +function $13b9422e3d1c1523$export$71511d61b312f219(arr, i) { + return (0, $f76c296ed2fab950$export$71511d61b312f219)(arr) || (0, $d4d0fa0b930ea205$export$71511d61b312f219)(arr, i) || (0, $3899c414e8c0a384$export$71511d61b312f219)(arr, i) || (0, $a857e8ed28e4994b$export$71511d61b312f219)(); } -function $3d26cc3e6f094fde$export$7e0947b5ad3404e2(arr) { - if (Array.isArray(arr)) return (0, $67440b47eae652c8$export$79e617b1955a2616)(arr); +function $3d26cc3e6f094fde$export$71511d61b312f219(arr) { + if (Array.isArray(arr)) return (0, $67440b47eae652c8$export$71511d61b312f219)(arr); } -function $682837897e59553e$export$1eb58a6e75231000(iter) { +function $682837897e59553e$export$71511d61b312f219(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function $56c83c6767c8811f$export$e6f3c4780d19eb2b() { +function $56c83c6767c8811f$export$71511d61b312f219() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function $4c7c66606cd92a42$export$1b5e630bc3aea29f(arr) { - return (0, $3d26cc3e6f094fde$export$7e0947b5ad3404e2)(arr) || (0, $682837897e59553e$export$1eb58a6e75231000)(arr) || (0, $3899c414e8c0a384$export$a5be06335b3a083c)(arr) || (0, $56c83c6767c8811f$export$e6f3c4780d19eb2b)(); +function $4c7c66606cd92a42$export$71511d61b312f219(arr) { + return (0, $3d26cc3e6f094fde$export$71511d61b312f219)(arr) || (0, $682837897e59553e$export$71511d61b312f219)(arr) || (0, $3899c414e8c0a384$export$71511d61b312f219)(arr) || (0, $56c83c6767c8811f$export$71511d61b312f219)(); } @@ -22341,7 +22340,7 @@ function $69fa72c68315eefd$export$852a08dda9a55ea7(window, browserDetails) { "addIceCandidate" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $c96c38d675a75115$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $c96c38d675a75115$export$71511d61b312f219)({}, method, function() { arguments[0] = new (method === "addIceCandidate" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]); return nativeMethod.apply(this, arguments); }); @@ -22356,7 +22355,7 @@ function $69fa72c68315eefd$export$852a08dda9a55ea7(window, browserDetails) { }; var nativeGetStats = window.RTCPeerConnection.prototype.getStats; window.RTCPeerConnection.prototype.getStats = function getStats() { - var _arguments = (0, $13b9422e3d1c1523$export$fdf2a89c76341bbf)(arguments, 3), selector = _arguments[0], onSucc = _arguments[1], onErr = _arguments[2]; + var _arguments = (0, $13b9422e3d1c1523$export$71511d61b312f219)(arguments, 3), selector = _arguments[0], onSucc = _arguments[1], onErr = _arguments[2]; return nativeGetStats.apply(this, [ selector || null ]).then(function(stats) { @@ -22447,7 +22446,7 @@ function $69fa72c68315eefd$export$70c77533b6e9908d(window) { // WebIDL input coercion and validation var sendEncodings = arguments[1] && arguments[1].sendEncodings; if (sendEncodings === undefined) sendEncodings = []; - sendEncodings = (0, $4c7c66606cd92a42$export$1b5e630bc3aea29f)(sendEncodings); + sendEncodings = (0, $4c7c66606cd92a42$export$71511d61b312f219)(sendEncodings); var shouldPerformCheck = sendEncodings.length > 0; if (shouldPerformCheck) // If sendEncodings params are provided, validate grammar sendEncodings.forEach(function(encodingParam) { @@ -24272,7 +24271,7 @@ var $0cfc99b2164fd73d$exports = {}; // attach listener (without syntactic sugar now) _on: function _on(type, fn, context, _once) { if (typeof fn !== "function") { - console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(fn))); + console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(fn))); return; } // check if fn already there @@ -24302,7 +24301,7 @@ var $0cfc99b2164fd73d$exports = {}; return; } if (typeof fn !== "function") { - console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$5f0017c582d45a2d)(fn))); + console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $4cfdb3add9285597$export$71511d61b312f219)(fn))); return; } // find fn and remove it @@ -34611,7 +34610,6 @@ var $78f2cb3ec8734e95$var$delete_addressbook_item = function(userIdToDelete) { }); (0, (/*@__PURE__*/$parcel$interopDefault($f09be4829256f6d5$exports))).setItem("addressbook", $78f2cb3ec8734e95$var$addressbook).then(function(e) { (0, $6d3f4b507512327e$export$6593825dc0f3a767)("deleted", 3000); - console.log(e); (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).redraw(); })["catch"](function(error) { console.error("Error saving address book:", error); @@ -34672,14 +34670,7 @@ function $78f2cb3ec8734e95$var$setupConnectionEvents(conn) { conn.on("data", function(data) { document.querySelector(".loading-spinner").style.display = "none"; $78f2cb3ec8734e95$var$remove_no_user_online(); - //add user - /* - try { - setupConnectionEvents(data.userId); - } catch (e) { - console.log(error); - } - */ if (data.type == "image" || data.type == "text" || data.type == "gps_live" || data.type == "gps" || data.type == "audio") { + if (data.type == "image" || data.type == "text" || data.type == "gps_live" || data.type == "gps" || data.type == "audio") { if (data.type == "image") { if (!$78f2cb3ec8734e95$export$471f7ae5c4103ae1.visibility) (0, $6d3f4b507512327e$export$75525525b38ea7b3)("flop", "new message"); $78f2cb3ec8734e95$var$chat_data.push({ @@ -34737,6 +34728,7 @@ function $78f2cb3ec8734e95$var$setupConnectionEvents(conn) { gps: data.content }); } + //to do not stable if (data.type == "gps_live") { var existingMsg = $78f2cb3ec8734e95$var$chat_data.find(function(item) { return item.type === "gps_live"; @@ -34786,13 +34778,11 @@ function $78f2cb3ec8734e95$var$setupConnectionEvents(conn) { $78f2cb3ec8734e95$var$updateConnections(); }); conn.on("disconnected", function() { - // conn.reconnect(); - (0, $6d3f4b507512327e$export$6593825dc0f3a767)("User has been disconnected", 1000); - $78f2cb3ec8734e95$var$connectedPeers = $78f2cb3ec8734e95$var$connectedPeers.filter(function(c) { - return c !== userId; - }); - $78f2cb3ec8734e95$var$updateConnections(); - }); + /* + side_toaster(`User has been disconnected`, 1000); + connectedPeers = connectedPeers.filter((c) => c !== userId); + updateConnections(); + */ }); // Event handler for connection errors conn.on("error", function() { (0, $6d3f4b507512327e$export$6593825dc0f3a767)("User has been disconnected", 1000); @@ -34832,7 +34822,7 @@ function $78f2cb3ec8734e95$var$getIceServers() { } function $78f2cb3ec8734e95$var$_getIceServers() { $78f2cb3ec8734e95$var$_getIceServers = //load ICE Server - (0, $bdca4d8f0452b8e7$export$7c398597f8905a1)(function() { + (0, $bdca4d8f0452b8e7$export$71511d61b312f219)(function() { var response, a, error; return (0, $95fedd77f81839f7$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ @@ -35191,8 +35181,7 @@ var $78f2cb3ec8734e95$var$create_peer = function create_peer() { foreground: "black", level: "H", padding: 5, - size: 200, - // value: settings.custom_peer_id, + size: 1000, value: $78f2cb3ec8734e95$export$a5a6e0b888b2c992.invite_url + "#!/intro?id=" + $78f2cb3ec8734e95$export$a5a6e0b888b2c992.custom_peer_id }); // Define the elements to be added @@ -35279,44 +35268,48 @@ var $78f2cb3ec8734e95$var$AudioComponent = { ]); } }; -//map +// MapComponent var $78f2cb3ec8734e95$var$MapComponent = { oncreate: function oncreate(vnode) { var mapContainer = vnode.dom; var lat = vnode.attrs.lat; var lng = vnode.attrs.lng; + // Create the map instance var map_box = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).map(mapContainer, { keyboard: false, zoomControl: false }).setView([ lat, lng - ], 10); - (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { - attribution: '© OpenStreetMap contributors' - }).addTo(map_box); - setTimeout(function() { - document.querySelector(".leaflet-control-container").style.display = "none"; - }, 5); - setTimeout(function() { - map_box.setView([ - lat, - lng - ], 10); - }, 5000); + ], 7); var myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).marker([ lat, lng ]).addTo(map_box); - myMarker._icon.classList.add("myMarker"); + //myMarker._icon.classList.add("myMarker"); + myMarker.options.shadowSize = [ + 0, + 0 + ]; + // Hide the leaflet control container + setTimeout(function() { + document.querySelector(".leaflet-control-container").style.display = "none"; + }, 5); vnode.state.map = map_box; // Store the map instance in the vnode state + // Ensure map is properly resized when container size changes + window.addEventListener("resize", function() { + map_box.invalidateSize(); + }); }, onremove: function onremove(vnode) { vnode.state.map.remove(); // Clean up the map instance when the component is removed }, view: function view() { return (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { - "class": "map-component" + "class": "map-component", + style: { + height: "100%" + } }); } }; @@ -35368,7 +35361,7 @@ function $78f2cb3ec8734e95$var$MoveMap(direction) { $78f2cb3ec8734e95$var$map.panTo(new (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).LatLng($78f2cb3ec8734e95$var$mainmarker.current_lat, $78f2cb3ec8734e95$var$mainmarker.current_lng)); } // Initialize the map and define the setup -function $78f2cb3ec8734e95$var$map_function() { +function $78f2cb3ec8734e95$var$map_function(lat, lng, id) { $78f2cb3ec8734e95$var$map = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).map("map-container", { keyboard: true, zoomControl: false @@ -35382,55 +35375,75 @@ function $78f2cb3ec8734e95$var$map_function() { setTimeout(function() { document.querySelector(".leaflet-control-container").style.display = "none"; }, 5000); - var myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).marker([ - 51.5, - -0.09 - ]).addTo($78f2cb3ec8734e95$var$map).bindPopup("It's me").openPopup(); - myMarker._icon.classList.add("myMarker"); var once = false; // Define 'once' outside the callback to persist its state + var myMarker; // Define 'myMarker' outside the callback to persist its state var geolocation_callback = function geolocation_callback(e) { + if (!myMarker) { + // Create the marker only once + myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).marker([ + e.coords.latitude, + e.coords.longitude + ]).addTo($78f2cb3ec8734e95$var$map).bindPopup("It's me").openPopup(); + myMarker._icon.classList.add("myMarker"); + $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userMarkers[0] = myMarker; + if (!once) { + // Set the view only once + $78f2cb3ec8734e95$var$map.setView([ + e.coords.latitude, + e.coords.longitude + ]); + once = true; // Set 'once' to true after the first execution + } + } else // Update the marker's position myMarker.setLatLng([ e.coords.latitude, e.coords.longitude ]); - $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userMarkers[0] = myMarker; - if (!once) { + }; + (0, $6d3f4b507512327e$export$33d904bed5c25b69)(geolocation_callback, false, true); + if (lat && lng) { + var _$m = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).marker([ + lat, + lng + ]).addTo($78f2cb3ec8734e95$var$map).bindPopup(id).openPopup(); + setTimeout(function() { $78f2cb3ec8734e95$var$map.setView([ - e.coords.latitude, - e.coords.longitude + lat, + lng ]); - once = true; // Set 'once' to true after the first execution - } - }; - (0, $6d3f4b507512327e$export$33d904bed5c25b69)(geolocation_callback, true, false); - // Function to update or add markers - function updateMarkers(status) { - if (status.users_geolocation) { - var usersGeolocation = status.users_geolocation; - status.userMarkers = status.userMarkers || {}; // Ensure userMarkers is initialized as an object - usersGeolocation.forEach(function(user) { - var userId = user.userId, gps = user.gps; - var _JSON_parse = JSON.parse(gps), lat = _JSON_parse.lat, lng = _JSON_parse.lng; // Parse the gps string - if (status.userMarkers[userId]) // Update marker position - status.userMarkers[userId].setLatLng([ - lat, - lng - ]); - else { - // Create new marker - var marker = (0, (/*@__PURE__*/$parcel$interopDefault($0cfc99b2164fd73d$exports))).marker([ - lat, - lng - ]).addTo($78f2cb3ec8734e95$var$map).bindPopup(userId).openPopup(); - status.userMarkers[userId] = marker; // Store marker in the object with userId as key - } - }); + $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userMarkers[1] = _$m; + }, 3000); + } + /* + // Function to update or add markers + function updateMarkers(status) { + if (status.users_geolocation) { + const usersGeolocation = status.users_geolocation; + status.userMarkers = status.userMarkers || {}; // Ensure userMarkers is initialized as an object + + usersGeolocation.forEach((user) => { + const { userId, gps } = user; + const { lat, lng } = JSON.parse(gps); // Parse the gps string + + if (status.userMarkers[userId]) { + // Update marker position + status.userMarkers[userId].setLatLng([lat, lng]); + } else { + // Create new marker + const marker = L.marker([lat, lng]) + .addTo(map) + .bindPopup(userId) + .openPopup(); + status.userMarkers[userId] = marker; // Store marker in the object with userId as key } + }); } - setTimeout(function() { - updateMarkers($78f2cb3ec8734e95$export$471f7ae5c4103ae1); - }, 5000); - $78f2cb3ec8734e95$var$map.on("zoomend", function() { + } + + setTimeout(() => { + updateMarkers(status); + }, 5000); +*/ $78f2cb3ec8734e95$var$map.on("zoomend", function() { var zoom_level = $78f2cb3ec8734e95$var$map.getZoom(); console.log(zoom_level); if (zoom_level > 16) $78f2cb3ec8734e95$var$step = 0.0005; @@ -35449,7 +35462,6 @@ function $78f2cb3ec8734e95$var$map_function() { else if (zoom_level > 3) $78f2cb3ec8734e95$var$step = 4.5; else if (zoom_level > 2) $78f2cb3ec8734e95$var$step = 8; else $78f2cb3ec8734e95$var$step = 20; - console.log($78f2cb3ec8734e95$var$step); }); } var $78f2cb3ec8734e95$var$root = document.getElementById("app"); @@ -35743,6 +35755,8 @@ var $78f2cb3ec8734e95$var$options = { "class": "flex justify-content-center algin-item-start page", oncreate: function() { (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); + (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); + (0, $6d3f4b507512327e$export$6c04b58eee2a9a32)(); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); } }, [ @@ -35773,11 +35787,12 @@ var $78f2cb3ec8734e95$var$options = { }, 500); }, "class": "item", + id: "button-add-user", style: { display: $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline ? "" : "none" }, onfocus: function() { - (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); + (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); }, onclick: function onclick() { if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_id !== "" && $78f2cb3ec8734e95$export$471f7ae5c4103ae1.user_nickname !== "") $78f2cb3ec8734e95$var$addUserToAddressBook($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_id, $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_nickname); @@ -35786,7 +35801,7 @@ var $78f2cb3ec8734e95$var$options = { (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("button", { "class": "item", onfocus: function() { - (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); + (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); }, style: { display: $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline ? "" : "none" @@ -35796,33 +35811,53 @@ var $78f2cb3ec8734e95$var$options = { else (0, $6d3f4b507512327e$export$6593825dc0f3a767)("no user online", 3000); } }, "share location"), - (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("button", { - "class": "item", - id: "sharing-live-geolocation", - oncreate: function() { - if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.geolcation_autoupdate) document.getElementById("sharing-live-geolocation").innerText = "stop sharing live location"; - else document.getElementById("sharing-live-geolocation").innerText = "share live location"; - }, - onfocus: function() { - (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); - }, - style: { - display: $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline ? "" : "none" - }, - onclick: function onclick() { - if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline) { - if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.geolcation_autoupdate) { - (0, $6d3f4b507512327e$export$33d904bed5c25b69)($78f2cb3ec8734e95$var$geolocation_autoupdate_callback, false, true); - $78f2cb3ec8734e95$export$471f7ae5c4103ae1.geolocation_autoupdate = false; - document.getElementById("sharing-live-geolocation").innerText = "share live location"; - } else { - (0, $6d3f4b507512327e$export$33d904bed5c25b69)($78f2cb3ec8734e95$var$geolocation_autoupdate_callback, true, false); - document.getElementById("sharing-live-geolocation").innerText = "share live location"; - } - } else (0, $6d3f4b507512327e$export$6593825dc0f3a767)("no user online", 3000); + /* + m( + "button", + { + class: "item", + id: "sharing-live-geolocation", + oncreate: () => { + if (status.geolcation_autoupdate) { + document.getElementById("sharing-live-geolocation").innerText = + "stop sharing live location"; + } else { + document.getElementById("sharing-live-geolocation").innerText = + "share live location"; + } + }, + onfocus: () => { + bottom_bar( + "", + "", + "" + ); + }, + style: { display: status.userOnline ? "" : "none" }, + + onclick: function () { + if (status.userOnline) { + if (status.geolcation_autoupdate) { + geolocation(geolocation_autoupdate_callback, true, true); + status.geolocation_autoupdate = false; + document.getElementById( + "sharing-live-geolocation" + ).innerText = "share live location"; + } else { + geolocation(geolocation_autoupdate_callback, true, false); + document.getElementById( + "sharing-live-geolocation" + ).innerText = "share live location"; + status.geolocation_autoupdate = true; } - }, "start live location"), - (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("button", { + } else { + side_toaster("no user online", 3000); + } + }, + }, + "start live location" + ), +*/ (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("button", { "class": "item share-id-button", oninit: function(param) { var dom = param.dom; @@ -35876,7 +35911,7 @@ var $78f2cb3ec8734e95$var$start = { document.querySelector("#start p").focus(); vnode.dom.focus(); } - }, (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).trust("flop is a webRTC chat app with which you can communicate directly with someone (p2p). You can currently exchange text, images and your position with your chat partner. To create a peer, press enter.

")), + }, (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).trust("flop is a webRTC chat app with which you can communicate directly with someone (p2p). You can currently exchange text, images, audio and your position with your chat partner. To create a peer, press enter.

")), (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("button", { tabIndex: 1, "class": "item", @@ -35923,6 +35958,7 @@ var $78f2cb3ec8734e95$var$open_peer_menu = { return (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { "class": "flex justify-content-center algin-item-start page", oncreate: function() { + $78f2cb3ec8734e95$export$471f7ae5c4103ae1.addressbook_in_focus = ""; (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS == true) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); } @@ -35995,7 +36031,6 @@ var $78f2cb3ec8734e95$var$chat = { if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS && $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline > 0) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS && $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline == 0) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); if (!$78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS && $78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline == 0) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); - console.log($78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline); } }, 3000); } @@ -36018,18 +36053,30 @@ var $78f2cb3ec8734e95$var$chat = { }) ]), $78f2cb3ec8734e95$var$chat_data.map(function(item, index) { //own message + var ff = { + lat: "", + lng: "" + }; + if (item.type == "gps" || item.type == "gps_live") { + var n = JSON.parse(item.gps); + ff.lat = n.lat; + ff.lng = n.lng; + } var nickname = "me"; if (item.nickname != $78f2cb3ec8734e95$export$a5a6e0b888b2c992.nickname) nickname = item.nickname; - var f; - if (item.type == "gps") f = JSON.parse(item.gps); return (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("article", { - "class": " item " + nickname + " " + item.type, + "class": "item " + nickname + " " + item.type, tabindex: index, "data-type": item.type, "data-user-id": item.userId, "data-user-nickname": item.nickname, + "data-lat": ff.lat, + "data-lng": ff.lng, onclick: function() { - if (item.type == "gps" || item.type == "gps_live") (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/map_view"); + if (item.type == "gps" || item.type == "gps_live") { + var f = JSON.parse(item.gps); + (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/map_view?lat=" + f.lat + "&lng=" + f.lng + "&id=" + item.nickname); + } }, onfocus: function() { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_id = document.activeElement.getAttribute("data-user-id"); @@ -36039,10 +36086,6 @@ var $78f2cb3ec8734e95$var$chat = { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type = "link"; (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); } - if (item.type == "gps_live") { - $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type = "gps_live"; - (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); - } if (item.type == "gps") { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type = "gps"; (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); @@ -36071,11 +36114,9 @@ var $78f2cb3ec8734e95$var$chat = { "data-filename": item.filename }) : null, item.type === "gps" ? (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { - "class": "message-map" - }, (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))($78f2cb3ec8734e95$var$MapComponent, { - lat: f.lat, - lng: f.lng - })) : null, + "class": "message-map", + oncreate: function(vnode) {} + }) : null, item.type === "audio" ? (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { "class": "audioplayer" }, (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))($78f2cb3ec8734e95$var$AudioComponent, { @@ -36087,7 +36128,13 @@ var $78f2cb3ec8734e95$var$chat = { (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", $78f2cb3ec8734e95$var$time_parse(item.datetime)), (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { "class": "nickname" - }, nickname) + }, nickname), + (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { + "class": "type", + style: { + display: item.type == "gps" ? "" : "none" + } + }, " Location") ]) ]); })); @@ -36098,10 +36145,14 @@ var $78f2cb3ec8734e95$var$map_view = { return (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports)))("div", { "class": "width-100 height-100", id: "map-container", - oncreate: function() { + oncreate: function(vnode) { (0, $6d3f4b507512327e$export$247be4ede8e3a24a)("", "", ""); - (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); - $78f2cb3ec8734e95$var$map_function(); + var params = new URLSearchParams((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get().split("?")[1]); + var lat = parseFloat(params.get("lat")); + var lng = parseFloat(params.get("lng")); + var id = params.get("id"); + $78f2cb3ec8734e95$var$map_function(lat, lng, id); + if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS) (0, $6d3f4b507512327e$export$7ce2ea7c45ae9a07)("", "", ""); } }); } @@ -36260,7 +36311,7 @@ document.addEventListener("DOMContentLoaded", function(e) { //top bar document.querySelector("#top-bar div div.button-right").addEventListener("click", function(event) { var route = (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get(); - if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/about") { + if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/about" || route.startsWith("/map_view")) { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/start"); } @@ -36272,6 +36323,10 @@ document.addEventListener("DOMContentLoaded", function(e) { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/about"); } + if ((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/about_page") { + $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; + (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/about"); + } if ((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/map_view") { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/options"); @@ -36346,7 +36401,7 @@ document.addEventListener("DOMContentLoaded", function(e) { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action; $78f2cb3ec8734e95$var$write(); } - if (route == "/map_view") $78f2cb3ec8734e95$var$MoveMap("up"); + if (route.startsWith("/map_view")) $78f2cb3ec8734e95$var$MoveMap("up"); else nav(-1); break; case "ArrowDown": @@ -36363,13 +36418,12 @@ document.addEventListener("DOMContentLoaded", function(e) { document.querySelector(".playing").style.opacity = "0"; $78f2cb3ec8734e95$var$write(); }); - if (route == "/map_view") $78f2cb3ec8734e95$var$ZoomMap("out"); + if (route.startsWith("/map_view")) $78f2cb3ec8734e95$var$ZoomMap("out"); if (route == "/open_peer_menu") { - console.log($78f2cb3ec8734e95$export$471f7ae5c4103ae1.addressbook_in_focus); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.addressbook_in_focus == "") { - var prp = prompt("Enter the chat id"); - if (prp != null) $78f2cb3ec8734e95$var$connect_to_peer(prp); - else history.back(); + var prp = prompt("Enter the chat ID"); + if (prp !== null && prp !== "") $78f2cb3ec8734e95$var$connect_to_peer(prp); + else (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/open_peer_menu"); } else $78f2cb3ec8734e95$var$delete_addressbook_item($78f2cb3ec8734e95$export$471f7ae5c4103ae1.addressbook_in_focus); } break; @@ -36394,7 +36448,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.userOnline > 0) $78f2cb3ec8734e95$var$write(); else (0, $6d3f4b507512327e$export$6593825dc0f3a767)("no user online", 3000); } - if (route == "/map_view") $78f2cb3ec8734e95$var$ZoomMap("in"); + if (route.startsWith("/map_view")) $78f2cb3ec8734e95$var$ZoomMap("in"); if (route == "/start") (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/open_peer_menu"); if (route == "/open_peer_menu") { (0, $da5c51e5866985e6$export$be96fe42679d1b7e)($78f2cb3ec8734e95$var$scan_callback); @@ -36415,7 +36469,7 @@ document.addEventListener("DOMContentLoaded", function(e) { } if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.notKaiOS) route.startsWith($78f2cb3ec8734e95$export$471f7ae5c4103ae1.action == "write"); if (document.activeElement.classList.contains("input-parent")) document.activeElement.children[0].focus(); - if ((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/options") { + if ((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/options" && document.activeElement.id == "button-add-user") { if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_id !== "" && $78f2cb3ec8734e95$export$471f7ae5c4103ae1.user_nickname !== "") $78f2cb3ec8734e95$var$addUserToAddressBook($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_id, $78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_user_nickname); } if (route == "/start") { @@ -36424,7 +36478,7 @@ document.addEventListener("DOMContentLoaded", function(e) { } //addressbook open peer if (route == "/open_peer_menu") $78f2cb3ec8734e95$var$connect_to_peer(document.activeElement.getAttribute("data-id")); - if (route == "/map_view") { + if (route.startsWith("/map_view")) { // Ensure users_geolocation_count is within bounds if (users_geolocation_count == Object.keys($78f2cb3ec8734e95$export$471f7ae5c4103ae1.userMarkers).length - 1) users_geolocation_count = 0; else users_geolocation_count++; @@ -36445,7 +36499,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if (playPauseButton) playPauseButton.click(); }); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type == "gps_live") (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/map_view"); - if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type == "gps") (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/map_view"); + if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type == "gps") (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/map_view?lat=" + document.activeElement.getAttribute("data-lat") + "&lng=" + document.activeElement.getAttribute("data-lng") + "&id=" + document.activeElement.getAttribute("data-user-nickname")); if ($78f2cb3ec8734e95$export$471f7ae5c4103ae1.current_article_type == "image") { var filename = document.activeElement.querySelector("img").getAttribute("data-filename"); var data = document.activeElement.querySelector("img").getAttribute("src"); @@ -36469,7 +36523,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if (evt.key === "Backspace" && (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() != "/start") evt.preventDefault(); if (evt.key == "Enter" && route == "/chat") evt.preventDefault(); if (evt.key === "Backspace") { - if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/about" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/map_view") { + if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/about" || route.startsWith("/map_view")) { evt.preventDefault(); $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/start"); @@ -36489,7 +36543,7 @@ document.addEventListener("DOMContentLoaded", function(e) { $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/about"); } - if ((0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.get() == "/map_view") { + if (route.startsWith("/map_view")) { evt.preventDefault(); $78f2cb3ec8734e95$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($5648d4b0c5d9d32d$exports))).route.set("/chat?id="), $78f2cb3ec8734e95$export$471f7ae5c4103ae1.ownPeerId; diff --git a/webpage/index.a01817a1.js b/webpage/index.e03f882d.js similarity index 99% rename from webpage/index.a01817a1.js rename to webpage/index.e03f882d.js index 9201194..9b69c64 100644 --- a/webpage/index.a01817a1.js +++ b/webpage/index.e03f882d.js @@ -2006,7 +2006,7 @@ function $ba0748fc6d85beab$var$asyncGeneratorStep(gen, resolve, reject, _next, _ if (info.done) resolve(value); else Promise.resolve(value).then(_next, _throw); } -function $ba0748fc6d85beab$export$7c398597f8905a1(fn) { +function $ba0748fc6d85beab$export$71511d61b312f219(fn) { return function() { var self = this, args = arguments; return new Promise(function(resolve, reject) { @@ -2036,7 +2036,7 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol */ function $7bd6d9ddf4a378c5$export$5f0017c582d45a2d(obj) { +***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol */ function $7bd6d9ddf4a378c5$export$71511d61b312f219(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } @@ -2130,10 +2130,10 @@ function $04f2fd83a0b0b7f9$export$d831c04e792af3d(thisArg, initializers, value) return useValue ? value : void 0; } function $04f2fd83a0b0b7f9$export$6a2a36740a146cb8(x) { - return (typeof x === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(x)) === "symbol" ? x : "".concat(x); + return (typeof x === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(x)) === "symbol" ? x : "".concat(x); } function $04f2fd83a0b0b7f9$export$d1a06452d3489bc7(f, name, prefix) { - if ((typeof name === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(name)) === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + if ((typeof name === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(name)) === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name @@ -2645,20 +2645,19 @@ var $162001cafa2b40fd$export$33d904bed5c25b69 = function geolocation(callback) { } }; var error = function error(error) { - console.log(error.code); + alert("Current location not available"); switch(error.code){ case error.PERMISSION_DENIED: - $162001cafa2b40fd$export$6593825dc0f3a767("Location not provided", 2000); + $162001cafa2b40fd$export$6593825dc0f3a767("Location not provided", 5000); break; case error.POSITION_UNAVAILABLE: - $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 2000); + $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 5000); break; case error.TIMEOUT: - case 3: - $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 2000); + $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 5000); break; default: - $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 2000); + $162001cafa2b40fd$export$6593825dc0f3a767("Current location not available", 5000); break; } if (n) { @@ -2676,13 +2675,13 @@ var $162001cafa2b40fd$export$33d904bed5c25b69 = function geolocation(callback) { } else if (navigator.geolocation) { if (autoupdate) window.watchId = navigator.geolocation.watchPosition(showPosition, error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0 + timeout: 20000, + maximumAge: 1000 }); else navigator.geolocation.getCurrentPosition(showPosition, error, { enableHighAccuracy: true, - timeout: 40000, - maximumAge: 0 + timeout: 20000, + maximumAge: 1000 }); } else { $162001cafa2b40fd$export$6593825dc0f3a767("Geolocation is not supported by this browser.", 2000); @@ -3136,7 +3135,7 @@ function $162001cafa2b40fd$export$637fd9537164f29b() { return _init.apply(this, arguments); } function _init() { - _init = (0, $ba0748fc6d85beab$export$7c398597f8905a1)(function() { + _init = (0, $ba0748fc6d85beab$export$71511d61b312f219)(function() { var error; return (0, $04f2fd83a0b0b7f9$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ @@ -3193,7 +3192,7 @@ function $162001cafa2b40fd$export$637fd9537164f29b() { return _startRecording.apply(this, arguments); } function _startRecording() { - _startRecording = (0, $ba0748fc6d85beab$export$7c398597f8905a1)(function() { + _startRecording = (0, $ba0748fc6d85beab$export$71511d61b312f219)(function() { return (0, $04f2fd83a0b0b7f9$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ case 0: @@ -14991,10 +14990,10 @@ var $9fbe31c6ff058869$exports = {}; 4: [ function(_dereq_, module1, exports) { "use strict"; - var _typeof = typeof Symbol === "function" && (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(Symbol.iterator) === "symbol" ? function _typeof(obj) { - return typeof obj === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(obj); + var _typeof = typeof Symbol === "function" && (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(Symbol.iterator) === "symbol" ? function _typeof(obj) { + return typeof obj === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(obj); } : function(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(obj); + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(obj); }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); @@ -21257,7 +21256,7 @@ var $6995a202bee889c8$export$2e2bcd8739ae039 = $6995a202bee889c8$var$v4; * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. - */ /* eslint-env node */ function $ca7b5bc57a9adfd0$export$1e71eb4bef00f6b0(obj, key, value) { + */ /* eslint-env node */ function $ca7b5bc57a9adfd0$export$71511d61b312f219(obj, key, value) { if (key in obj) Object.defineProperty(obj, key, { value: value, enumerable: true, @@ -21327,12 +21326,12 @@ function $8ec7d4c1b33e5d30$export$1f48841962b828b1(window1, eventNameToWrap, wra }); } function $8ec7d4c1b33e5d30$export$afbfee8cc06fd3e4(bool) { - if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(bool)) + ". Please use a boolean."); + if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(bool)) + ". Please use a boolean."); $8ec7d4c1b33e5d30$var$logDisabled_ = bool; return bool ? "adapter.js logging disabled" : "adapter.js logging enabled"; } function $8ec7d4c1b33e5d30$export$51516be4b019e41e(bool) { - if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(bool)) + ". Please use a boolean."); + if (typeof bool !== "boolean") return new Error("Argument type: " + (typeof bool === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(bool)) + ". Please use a boolean."); $8ec7d4c1b33e5d30$var$deprecationWarnings_ = !bool; return "adapter.js deprecation warnings " + (bool ? "disabled" : "enabled"); } @@ -21403,7 +21402,7 @@ function $8ec7d4c1b33e5d30$export$15384eac40dc88c8(data) { var value = isObj ? $8ec7d4c1b33e5d30$export$15384eac40dc88c8(data[key]) : data[key]; var isEmptyObject = isObj && !Object.keys(value).length; if (value === undefined || isEmptyObject) return accumulator; - return Object.assign(accumulator, (0, $ca7b5bc57a9adfd0$export$1e71eb4bef00f6b0)({}, key, value)); + return Object.assign(accumulator, (0, $ca7b5bc57a9adfd0$export$71511d61b312f219)({}, key, value)); }, {}); } function $8ec7d4c1b33e5d30$export$571b373e75babb58(stats, base, resultSet) { @@ -22041,7 +22040,7 @@ function $13e030d5bc326ad3$export$9588259fcf4ebc91(window, browserDetails) { "createAnswer" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $ca7b5bc57a9adfd0$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $ca7b5bc57a9adfd0$export$71511d61b312f219)({}, method, function() { var _this = this; var args = arguments; var isLegacyCall = arguments.length && typeof arguments[0] === "function"; @@ -22116,7 +22115,7 @@ function $13e030d5bc326ad3$export$852a08dda9a55ea7(window, browserDetails) { "addIceCandidate" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $ca7b5bc57a9adfd0$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $ca7b5bc57a9adfd0$export$71511d61b312f219)({}, method, function() { arguments[0] = new (method === "addIceCandidate" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]); return nativeMethod.apply(this, arguments); }); @@ -22155,12 +22154,12 @@ $parcel$export($fe2ad74ba0077acb$exports, "shimGetDisplayMedia", function () { r * that can be found in the LICENSE file in the root of the source * tree. */ /* eslint-env node */ -function $77a89769c0981dfc$export$e6256bf45c68d561(arr) { +function $77a89769c0981dfc$export$71511d61b312f219(arr) { if (Array.isArray(arr)) return arr; } -function $654ff405d6bc2163$export$2fd15edff6687200(arr, i) { +function $654ff405d6bc2163$export$71511d61b312f219(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; @@ -22186,52 +22185,52 @@ function $654ff405d6bc2163$export$2fd15edff6687200(arr, i) { } -function $5e28bf0636117a29$export$60dbc22abd7da546() { +function $5e28bf0636117a29$export$71511d61b312f219() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function $adff3c4e0c1171cc$export$79e617b1955a2616(arr, len) { +function $adff3c4e0c1171cc$export$71511d61b312f219(arr, len) { if (len == null || len > arr.length) len = arr.length; for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i]; return arr2; } -function $51a6752bab5162a4$export$a5be06335b3a083c(o, minLen) { +function $51a6752bab5162a4$export$71511d61b312f219(o, minLen) { if (!o) return; - if (typeof o === "string") return (0, $adff3c4e0c1171cc$export$79e617b1955a2616)(o, minLen); + if (typeof o === "string") return (0, $adff3c4e0c1171cc$export$71511d61b312f219)(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0, $adff3c4e0c1171cc$export$79e617b1955a2616)(o, minLen); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0, $adff3c4e0c1171cc$export$71511d61b312f219)(o, minLen); } -function $c26877c109f33d6d$export$fdf2a89c76341bbf(arr, i) { - return (0, $77a89769c0981dfc$export$e6256bf45c68d561)(arr) || (0, $654ff405d6bc2163$export$2fd15edff6687200)(arr, i) || (0, $51a6752bab5162a4$export$a5be06335b3a083c)(arr, i) || (0, $5e28bf0636117a29$export$60dbc22abd7da546)(); +function $c26877c109f33d6d$export$71511d61b312f219(arr, i) { + return (0, $77a89769c0981dfc$export$71511d61b312f219)(arr) || (0, $654ff405d6bc2163$export$71511d61b312f219)(arr, i) || (0, $51a6752bab5162a4$export$71511d61b312f219)(arr, i) || (0, $5e28bf0636117a29$export$71511d61b312f219)(); } -function $103ec1b33d0c31a4$export$7e0947b5ad3404e2(arr) { - if (Array.isArray(arr)) return (0, $adff3c4e0c1171cc$export$79e617b1955a2616)(arr); +function $103ec1b33d0c31a4$export$71511d61b312f219(arr) { + if (Array.isArray(arr)) return (0, $adff3c4e0c1171cc$export$71511d61b312f219)(arr); } -function $fdb1565f2fa1c9a2$export$1eb58a6e75231000(iter) { +function $fdb1565f2fa1c9a2$export$71511d61b312f219(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function $89e35634fd357221$export$e6f3c4780d19eb2b() { +function $89e35634fd357221$export$71511d61b312f219() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function $bff51d46f29b3217$export$1b5e630bc3aea29f(arr) { - return (0, $103ec1b33d0c31a4$export$7e0947b5ad3404e2)(arr) || (0, $fdb1565f2fa1c9a2$export$1eb58a6e75231000)(arr) || (0, $51a6752bab5162a4$export$a5be06335b3a083c)(arr) || (0, $89e35634fd357221$export$e6f3c4780d19eb2b)(); +function $bff51d46f29b3217$export$71511d61b312f219(arr) { + return (0, $103ec1b33d0c31a4$export$71511d61b312f219)(arr) || (0, $fdb1565f2fa1c9a2$export$71511d61b312f219)(arr) || (0, $51a6752bab5162a4$export$71511d61b312f219)(arr) || (0, $89e35634fd357221$export$71511d61b312f219)(); } @@ -22342,7 +22341,7 @@ function $fe2ad74ba0077acb$export$852a08dda9a55ea7(window, browserDetails) { "addIceCandidate" ].forEach(function(method) { var nativeMethod = window.RTCPeerConnection.prototype[method]; - var methodObj = (0, $ca7b5bc57a9adfd0$export$1e71eb4bef00f6b0)({}, method, function() { + var methodObj = (0, $ca7b5bc57a9adfd0$export$71511d61b312f219)({}, method, function() { arguments[0] = new (method === "addIceCandidate" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]); return nativeMethod.apply(this, arguments); }); @@ -22357,7 +22356,7 @@ function $fe2ad74ba0077acb$export$852a08dda9a55ea7(window, browserDetails) { }; var nativeGetStats = window.RTCPeerConnection.prototype.getStats; window.RTCPeerConnection.prototype.getStats = function getStats() { - var _arguments = (0, $c26877c109f33d6d$export$fdf2a89c76341bbf)(arguments, 3), selector = _arguments[0], onSucc = _arguments[1], onErr = _arguments[2]; + var _arguments = (0, $c26877c109f33d6d$export$71511d61b312f219)(arguments, 3), selector = _arguments[0], onSucc = _arguments[1], onErr = _arguments[2]; return nativeGetStats.apply(this, [ selector || null ]).then(function(stats) { @@ -22448,7 +22447,7 @@ function $fe2ad74ba0077acb$export$70c77533b6e9908d(window) { // WebIDL input coercion and validation var sendEncodings = arguments[1] && arguments[1].sendEncodings; if (sendEncodings === undefined) sendEncodings = []; - sendEncodings = (0, $bff51d46f29b3217$export$1b5e630bc3aea29f)(sendEncodings); + sendEncodings = (0, $bff51d46f29b3217$export$71511d61b312f219)(sendEncodings); var shouldPerformCheck = sendEncodings.length > 0; if (shouldPerformCheck) // If sendEncodings params are provided, validate grammar sendEncodings.forEach(function(encodingParam) { @@ -24273,7 +24272,7 @@ var $6e11092d7331cd03$exports = {}; // attach listener (without syntactic sugar now) _on: function _on(type, fn, context, _once) { if (typeof fn !== "function") { - console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(fn))); + console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(fn))); return; } // check if fn already there @@ -24303,7 +24302,7 @@ var $6e11092d7331cd03$exports = {}; return; } if (typeof fn !== "function") { - console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$5f0017c582d45a2d)(fn))); + console.warn("wrong listener type: " + (typeof fn === "undefined" ? "undefined" : (0, $7bd6d9ddf4a378c5$export$71511d61b312f219)(fn))); return; } // find fn and remove it @@ -34612,7 +34611,6 @@ var $17d11d58618cc814$var$delete_addressbook_item = function(userIdToDelete) { }); (0, (/*@__PURE__*/$parcel$interopDefault($9fbe31c6ff058869$exports))).setItem("addressbook", $17d11d58618cc814$var$addressbook).then(function(e) { (0, $162001cafa2b40fd$export$6593825dc0f3a767)("deleted", 3000); - console.log(e); (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).redraw(); }).catch(function(error) { console.error("Error saving address book:", error); @@ -34673,14 +34671,7 @@ function $17d11d58618cc814$var$setupConnectionEvents(conn) { conn.on("data", function(data) { document.querySelector(".loading-spinner").style.display = "none"; $17d11d58618cc814$var$remove_no_user_online(); - //add user - /* - try { - setupConnectionEvents(data.userId); - } catch (e) { - console.log(error); - } - */ if (data.type == "image" || data.type == "text" || data.type == "gps_live" || data.type == "gps" || data.type == "audio") { + if (data.type == "image" || data.type == "text" || data.type == "gps_live" || data.type == "gps" || data.type == "audio") { if (data.type == "image") { if (!$17d11d58618cc814$export$471f7ae5c4103ae1.visibility) (0, $162001cafa2b40fd$export$75525525b38ea7b3)("flop", "new message"); $17d11d58618cc814$var$chat_data.push({ @@ -34738,6 +34729,7 @@ function $17d11d58618cc814$var$setupConnectionEvents(conn) { gps: data.content }); } + //to do not stable if (data.type == "gps_live") { var existingMsg = $17d11d58618cc814$var$chat_data.find(function(item) { return item.type === "gps_live"; @@ -34787,13 +34779,11 @@ function $17d11d58618cc814$var$setupConnectionEvents(conn) { $17d11d58618cc814$var$updateConnections(); }); conn.on("disconnected", function() { - // conn.reconnect(); - (0, $162001cafa2b40fd$export$6593825dc0f3a767)("User has been disconnected", 1000); - $17d11d58618cc814$var$connectedPeers = $17d11d58618cc814$var$connectedPeers.filter(function(c) { - return c !== userId; - }); - $17d11d58618cc814$var$updateConnections(); - }); + /* + side_toaster(`User has been disconnected`, 1000); + connectedPeers = connectedPeers.filter((c) => c !== userId); + updateConnections(); + */ }); // Event handler for connection errors conn.on("error", function() { (0, $162001cafa2b40fd$export$6593825dc0f3a767)("User has been disconnected", 1000); @@ -34833,7 +34823,7 @@ function $17d11d58618cc814$var$getIceServers() { } function $17d11d58618cc814$var$_getIceServers() { $17d11d58618cc814$var$_getIceServers = //load ICE Server - (0, $ba0748fc6d85beab$export$7c398597f8905a1)(function() { + (0, $ba0748fc6d85beab$export$71511d61b312f219)(function() { var response, a, error; return (0, $04f2fd83a0b0b7f9$export$67ebef60e6f28a6)(this, function(_state) { switch(_state.label){ @@ -35192,8 +35182,7 @@ var $17d11d58618cc814$var$create_peer = function create_peer() { foreground: "black", level: "H", padding: 5, - size: 200, - // value: settings.custom_peer_id, + size: 1000, value: $17d11d58618cc814$export$a5a6e0b888b2c992.invite_url + "#!/intro?id=" + $17d11d58618cc814$export$a5a6e0b888b2c992.custom_peer_id }); // Define the elements to be added @@ -35280,44 +35269,48 @@ var $17d11d58618cc814$var$AudioComponent = { ]); } }; -//map +// MapComponent var $17d11d58618cc814$var$MapComponent = { oncreate: function oncreate(vnode) { var mapContainer = vnode.dom; var lat = vnode.attrs.lat; var lng = vnode.attrs.lng; + // Create the map instance var map_box = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).map(mapContainer, { keyboard: false, zoomControl: false }).setView([ lat, lng - ], 10); - (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { - attribution: '© OpenStreetMap contributors' - }).addTo(map_box); - setTimeout(function() { - document.querySelector(".leaflet-control-container").style.display = "none"; - }, 5); - setTimeout(function() { - map_box.setView([ - lat, - lng - ], 10); - }, 5000); + ], 7); var myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).marker([ lat, lng ]).addTo(map_box); - myMarker._icon.classList.add("myMarker"); + //myMarker._icon.classList.add("myMarker"); + myMarker.options.shadowSize = [ + 0, + 0 + ]; + // Hide the leaflet control container + setTimeout(function() { + document.querySelector(".leaflet-control-container").style.display = "none"; + }, 5); vnode.state.map = map_box; // Store the map instance in the vnode state + // Ensure map is properly resized when container size changes + window.addEventListener("resize", function() { + map_box.invalidateSize(); + }); }, onremove: function onremove(vnode) { vnode.state.map.remove(); // Clean up the map instance when the component is removed }, view: function view() { return (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { - class: "map-component" + class: "map-component", + style: { + height: "100%" + } }); } }; @@ -35369,7 +35362,7 @@ function $17d11d58618cc814$var$MoveMap(direction) { $17d11d58618cc814$var$map.panTo(new (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).LatLng($17d11d58618cc814$var$mainmarker.current_lat, $17d11d58618cc814$var$mainmarker.current_lng)); } // Initialize the map and define the setup -function $17d11d58618cc814$var$map_function() { +function $17d11d58618cc814$var$map_function(lat, lng, id) { $17d11d58618cc814$var$map = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).map("map-container", { keyboard: true, zoomControl: false @@ -35383,55 +35376,75 @@ function $17d11d58618cc814$var$map_function() { setTimeout(function() { document.querySelector(".leaflet-control-container").style.display = "none"; }, 5000); - var myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).marker([ - 51.5, - -0.09 - ]).addTo($17d11d58618cc814$var$map).bindPopup("It's me").openPopup(); - myMarker._icon.classList.add("myMarker"); var once = false; // Define 'once' outside the callback to persist its state + var myMarker; // Define 'myMarker' outside the callback to persist its state var geolocation_callback = function geolocation_callback(e) { + if (!myMarker) { + // Create the marker only once + myMarker = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).marker([ + e.coords.latitude, + e.coords.longitude + ]).addTo($17d11d58618cc814$var$map).bindPopup("It's me").openPopup(); + myMarker._icon.classList.add("myMarker"); + $17d11d58618cc814$export$471f7ae5c4103ae1.userMarkers[0] = myMarker; + if (!once) { + // Set the view only once + $17d11d58618cc814$var$map.setView([ + e.coords.latitude, + e.coords.longitude + ]); + once = true; // Set 'once' to true after the first execution + } + } else // Update the marker's position myMarker.setLatLng([ e.coords.latitude, e.coords.longitude ]); - $17d11d58618cc814$export$471f7ae5c4103ae1.userMarkers[0] = myMarker; - if (!once) { + }; + (0, $162001cafa2b40fd$export$33d904bed5c25b69)(geolocation_callback, false, true); + if (lat && lng) { + var _$m = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).marker([ + lat, + lng + ]).addTo($17d11d58618cc814$var$map).bindPopup(id).openPopup(); + setTimeout(function() { $17d11d58618cc814$var$map.setView([ - e.coords.latitude, - e.coords.longitude + lat, + lng ]); - once = true; // Set 'once' to true after the first execution - } - }; - (0, $162001cafa2b40fd$export$33d904bed5c25b69)(geolocation_callback, true, false); - // Function to update or add markers - function updateMarkers(status) { - if (status.users_geolocation) { - var usersGeolocation = status.users_geolocation; - status.userMarkers = status.userMarkers || {}; // Ensure userMarkers is initialized as an object - usersGeolocation.forEach(function(user) { - var userId = user.userId, gps = user.gps; - var _JSON_parse = JSON.parse(gps), lat = _JSON_parse.lat, lng = _JSON_parse.lng; // Parse the gps string - if (status.userMarkers[userId]) // Update marker position - status.userMarkers[userId].setLatLng([ - lat, - lng - ]); - else { - // Create new marker - var marker = (0, (/*@__PURE__*/$parcel$interopDefault($6e11092d7331cd03$exports))).marker([ - lat, - lng - ]).addTo($17d11d58618cc814$var$map).bindPopup(userId).openPopup(); - status.userMarkers[userId] = marker; // Store marker in the object with userId as key - } - }); + $17d11d58618cc814$export$471f7ae5c4103ae1.userMarkers[1] = _$m; + }, 3000); + } + /* + // Function to update or add markers + function updateMarkers(status) { + if (status.users_geolocation) { + const usersGeolocation = status.users_geolocation; + status.userMarkers = status.userMarkers || {}; // Ensure userMarkers is initialized as an object + + usersGeolocation.forEach((user) => { + const { userId, gps } = user; + const { lat, lng } = JSON.parse(gps); // Parse the gps string + + if (status.userMarkers[userId]) { + // Update marker position + status.userMarkers[userId].setLatLng([lat, lng]); + } else { + // Create new marker + const marker = L.marker([lat, lng]) + .addTo(map) + .bindPopup(userId) + .openPopup(); + status.userMarkers[userId] = marker; // Store marker in the object with userId as key } + }); } - setTimeout(function() { - updateMarkers($17d11d58618cc814$export$471f7ae5c4103ae1); - }, 5000); - $17d11d58618cc814$var$map.on("zoomend", function() { + } + + setTimeout(() => { + updateMarkers(status); + }, 5000); +*/ $17d11d58618cc814$var$map.on("zoomend", function() { var zoom_level = $17d11d58618cc814$var$map.getZoom(); console.log(zoom_level); if (zoom_level > 16) $17d11d58618cc814$var$step = 0.0005; @@ -35450,7 +35463,6 @@ function $17d11d58618cc814$var$map_function() { else if (zoom_level > 3) $17d11d58618cc814$var$step = 4.5; else if (zoom_level > 2) $17d11d58618cc814$var$step = 8; else $17d11d58618cc814$var$step = 20; - console.log($17d11d58618cc814$var$step); }); } var $17d11d58618cc814$var$root = document.getElementById("app"); @@ -35744,6 +35756,8 @@ var $17d11d58618cc814$var$options = { class: "flex justify-content-center algin-item-start page", oncreate: function() { (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); + (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); + (0, $162001cafa2b40fd$export$6c04b58eee2a9a32)(); if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); } }, [ @@ -35774,11 +35788,12 @@ var $17d11d58618cc814$var$options = { }, 500); }, class: "item", + id: "button-add-user", style: { display: $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline ? "" : "none" }, onfocus: function() { - (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); + (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); }, onclick: function onclick() { if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_user_id !== "" && $17d11d58618cc814$export$471f7ae5c4103ae1.user_nickname !== "") $17d11d58618cc814$var$addUserToAddressBook($17d11d58618cc814$export$471f7ae5c4103ae1.current_user_id, $17d11d58618cc814$export$471f7ae5c4103ae1.current_user_nickname); @@ -35787,7 +35802,7 @@ var $17d11d58618cc814$var$options = { (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("button", { class: "item", onfocus: function() { - (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); + (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); }, style: { display: $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline ? "" : "none" @@ -35797,33 +35812,53 @@ var $17d11d58618cc814$var$options = { else (0, $162001cafa2b40fd$export$6593825dc0f3a767)("no user online", 3000); } }, "share location"), - (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("button", { - class: "item", - id: "sharing-live-geolocation", - oncreate: function() { - if ($17d11d58618cc814$export$471f7ae5c4103ae1.geolcation_autoupdate) document.getElementById("sharing-live-geolocation").innerText = "stop sharing live location"; - else document.getElementById("sharing-live-geolocation").innerText = "share live location"; - }, - onfocus: function() { - (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); - }, - style: { - display: $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline ? "" : "none" - }, - onclick: function onclick() { - if ($17d11d58618cc814$export$471f7ae5c4103ae1.userOnline) { - if ($17d11d58618cc814$export$471f7ae5c4103ae1.geolcation_autoupdate) { - (0, $162001cafa2b40fd$export$33d904bed5c25b69)($17d11d58618cc814$var$geolocation_autoupdate_callback, false, true); - $17d11d58618cc814$export$471f7ae5c4103ae1.geolocation_autoupdate = false; - document.getElementById("sharing-live-geolocation").innerText = "share live location"; - } else { - (0, $162001cafa2b40fd$export$33d904bed5c25b69)($17d11d58618cc814$var$geolocation_autoupdate_callback, true, false); - document.getElementById("sharing-live-geolocation").innerText = "share live location"; - } - } else (0, $162001cafa2b40fd$export$6593825dc0f3a767)("no user online", 3000); + /* + m( + "button", + { + class: "item", + id: "sharing-live-geolocation", + oncreate: () => { + if (status.geolcation_autoupdate) { + document.getElementById("sharing-live-geolocation").innerText = + "stop sharing live location"; + } else { + document.getElementById("sharing-live-geolocation").innerText = + "share live location"; + } + }, + onfocus: () => { + bottom_bar( + "", + "", + "" + ); + }, + style: { display: status.userOnline ? "" : "none" }, + + onclick: function () { + if (status.userOnline) { + if (status.geolcation_autoupdate) { + geolocation(geolocation_autoupdate_callback, true, true); + status.geolocation_autoupdate = false; + document.getElementById( + "sharing-live-geolocation" + ).innerText = "share live location"; + } else { + geolocation(geolocation_autoupdate_callback, true, false); + document.getElementById( + "sharing-live-geolocation" + ).innerText = "share live location"; + status.geolocation_autoupdate = true; } - }, "start live location"), - (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("button", { + } else { + side_toaster("no user online", 3000); + } + }, + }, + "start live location" + ), +*/ (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("button", { class: "item share-id-button", oninit: function(param) { var dom = param.dom; @@ -35877,7 +35912,7 @@ var $17d11d58618cc814$var$start = { document.querySelector("#start p").focus(); vnode.dom.focus(); } - }, (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).trust("flop is a webRTC chat app with which you can communicate directly with someone (p2p). You can currently exchange text, images and your position with your chat partner. To create a peer, press enter.

")), + }, (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).trust("flop is a webRTC chat app with which you can communicate directly with someone (p2p). You can currently exchange text, images, audio and your position with your chat partner. To create a peer, press enter.

")), (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("button", { tabIndex: 1, class: "item", @@ -35924,6 +35959,7 @@ var $17d11d58618cc814$var$open_peer_menu = { return (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { class: "flex justify-content-center algin-item-start page", oncreate: function() { + $17d11d58618cc814$export$471f7ae5c4103ae1.addressbook_in_focus = ""; (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS == true) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); } @@ -35996,7 +36032,6 @@ var $17d11d58618cc814$var$chat = { if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS && $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline > 0) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS && $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline == 0) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); if (!$17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS && $17d11d58618cc814$export$471f7ae5c4103ae1.userOnline == 0) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); - console.log($17d11d58618cc814$export$471f7ae5c4103ae1.userOnline); } }, 3000); } @@ -36019,18 +36054,30 @@ var $17d11d58618cc814$var$chat = { }) ]), $17d11d58618cc814$var$chat_data.map(function(item, index) { //own message + var ff = { + lat: "", + lng: "" + }; + if (item.type == "gps" || item.type == "gps_live") { + var n = JSON.parse(item.gps); + ff.lat = n.lat; + ff.lng = n.lng; + } var nickname = "me"; if (item.nickname != $17d11d58618cc814$export$a5a6e0b888b2c992.nickname) nickname = item.nickname; - var f; - if (item.type == "gps") f = JSON.parse(item.gps); return (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("article", { - class: " item " + nickname + " " + item.type, + class: "item " + nickname + " " + item.type, tabindex: index, "data-type": item.type, "data-user-id": item.userId, "data-user-nickname": item.nickname, + "data-lat": ff.lat, + "data-lng": ff.lng, onclick: function() { - if (item.type == "gps" || item.type == "gps_live") (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/map_view"); + if (item.type == "gps" || item.type == "gps_live") { + var f = JSON.parse(item.gps); + (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/map_view?lat=" + f.lat + "&lng=" + f.lng + "&id=" + item.nickname); + } }, onfocus: function() { $17d11d58618cc814$export$471f7ae5c4103ae1.current_user_id = document.activeElement.getAttribute("data-user-id"); @@ -36040,10 +36087,6 @@ var $17d11d58618cc814$var$chat = { $17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type = "link"; (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); } - if (item.type == "gps_live") { - $17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type = "gps_live"; - (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); - } if (item.type == "gps") { $17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type = "gps"; (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); @@ -36072,11 +36115,9 @@ var $17d11d58618cc814$var$chat = { "data-filename": item.filename }) : null, item.type === "gps" ? (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { - class: "message-map" - }, (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))($17d11d58618cc814$var$MapComponent, { - lat: f.lat, - lng: f.lng - })) : null, + class: "message-map", + oncreate: function(vnode) {} + }) : null, item.type === "audio" ? (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { class: "audioplayer" }, (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))($17d11d58618cc814$var$AudioComponent, { @@ -36088,7 +36129,13 @@ var $17d11d58618cc814$var$chat = { (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", $17d11d58618cc814$var$time_parse(item.datetime)), (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { class: "nickname" - }, nickname) + }, nickname), + (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { + class: "type", + style: { + display: item.type == "gps" ? "" : "none" + } + }, " Location") ]) ]); })); @@ -36099,10 +36146,14 @@ var $17d11d58618cc814$var$map_view = { return (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports)))("div", { class: "width-100 height-100", id: "map-container", - oncreate: function() { + oncreate: function(vnode) { (0, $162001cafa2b40fd$export$247be4ede8e3a24a)("", "", ""); - (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); - $17d11d58618cc814$var$map_function(); + var params = new URLSearchParams((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get().split("?")[1]); + var lat = parseFloat(params.get("lat")); + var lng = parseFloat(params.get("lng")); + var id = params.get("id"); + $17d11d58618cc814$var$map_function(lat, lng, id); + if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS) (0, $162001cafa2b40fd$export$7ce2ea7c45ae9a07)("", "", ""); } }); } @@ -36261,7 +36312,7 @@ document.addEventListener("DOMContentLoaded", function(e) { //top bar document.querySelector("#top-bar div div.button-right").addEventListener("click", function(event) { var route = (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get(); - if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/about") { + if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/about" || route.startsWith("/map_view")) { $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/start"); } @@ -36273,6 +36324,10 @@ document.addEventListener("DOMContentLoaded", function(e) { $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/about"); } + if ((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/about_page") { + $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; + (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/about"); + } if ((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/map_view") { $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/options"); @@ -36347,7 +36402,7 @@ document.addEventListener("DOMContentLoaded", function(e) { $17d11d58618cc814$export$471f7ae5c4103ae1.action; $17d11d58618cc814$var$write(); } - if (route == "/map_view") $17d11d58618cc814$var$MoveMap("up"); + if (route.startsWith("/map_view")) $17d11d58618cc814$var$MoveMap("up"); else nav(-1); break; case "ArrowDown": @@ -36364,13 +36419,12 @@ document.addEventListener("DOMContentLoaded", function(e) { document.querySelector(".playing").style.opacity = "0"; $17d11d58618cc814$var$write(); }); - if (route == "/map_view") $17d11d58618cc814$var$ZoomMap("out"); + if (route.startsWith("/map_view")) $17d11d58618cc814$var$ZoomMap("out"); if (route == "/open_peer_menu") { - console.log($17d11d58618cc814$export$471f7ae5c4103ae1.addressbook_in_focus); if ($17d11d58618cc814$export$471f7ae5c4103ae1.addressbook_in_focus == "") { - var prp = prompt("Enter the chat id"); - if (prp != null) $17d11d58618cc814$var$connect_to_peer(prp); - else history.back(); + var prp = prompt("Enter the chat ID"); + if (prp !== null && prp !== "") $17d11d58618cc814$var$connect_to_peer(prp); + else (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/open_peer_menu"); } else $17d11d58618cc814$var$delete_addressbook_item($17d11d58618cc814$export$471f7ae5c4103ae1.addressbook_in_focus); } break; @@ -36395,7 +36449,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if ($17d11d58618cc814$export$471f7ae5c4103ae1.userOnline > 0) $17d11d58618cc814$var$write(); else (0, $162001cafa2b40fd$export$6593825dc0f3a767)("no user online", 3000); } - if (route == "/map_view") $17d11d58618cc814$var$ZoomMap("in"); + if (route.startsWith("/map_view")) $17d11d58618cc814$var$ZoomMap("in"); if (route == "/start") (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/open_peer_menu"); if (route == "/open_peer_menu") { (0, $2b0cc46421a6d3fe$export$be96fe42679d1b7e)($17d11d58618cc814$var$scan_callback); @@ -36416,7 +36470,7 @@ document.addEventListener("DOMContentLoaded", function(e) { } if ($17d11d58618cc814$export$471f7ae5c4103ae1.notKaiOS) route.startsWith($17d11d58618cc814$export$471f7ae5c4103ae1.action == "write"); if (document.activeElement.classList.contains("input-parent")) document.activeElement.children[0].focus(); - if ((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/options") { + if ((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/options" && document.activeElement.id == "button-add-user") { if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_user_id !== "" && $17d11d58618cc814$export$471f7ae5c4103ae1.user_nickname !== "") $17d11d58618cc814$var$addUserToAddressBook($17d11d58618cc814$export$471f7ae5c4103ae1.current_user_id, $17d11d58618cc814$export$471f7ae5c4103ae1.current_user_nickname); } if (route == "/start") { @@ -36425,7 +36479,7 @@ document.addEventListener("DOMContentLoaded", function(e) { } //addressbook open peer if (route == "/open_peer_menu") $17d11d58618cc814$var$connect_to_peer(document.activeElement.getAttribute("data-id")); - if (route == "/map_view") { + if (route.startsWith("/map_view")) { // Ensure users_geolocation_count is within bounds if (users_geolocation_count == Object.keys($17d11d58618cc814$export$471f7ae5c4103ae1.userMarkers).length - 1) users_geolocation_count = 0; else users_geolocation_count++; @@ -36446,7 +36500,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if (playPauseButton) playPauseButton.click(); }); if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type == "gps_live") (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/map_view"); - if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type == "gps") (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/map_view"); + if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type == "gps") (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/map_view?lat=" + document.activeElement.getAttribute("data-lat") + "&lng=" + document.activeElement.getAttribute("data-lng") + "&id=" + document.activeElement.getAttribute("data-user-nickname")); if ($17d11d58618cc814$export$471f7ae5c4103ae1.current_article_type == "image") { var filename = document.activeElement.querySelector("img").getAttribute("data-filename"); var data = document.activeElement.querySelector("img").getAttribute("src"); @@ -36470,7 +36524,7 @@ document.addEventListener("DOMContentLoaded", function(e) { if (evt.key === "Backspace" && (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() != "/start") evt.preventDefault(); if (evt.key == "Enter" && route == "/chat") evt.preventDefault(); if (evt.key === "Backspace") { - if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/about" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/map_view") { + if (route.startsWith("/chat") || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/settings_page" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/scan" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/open_peer_menu" || (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/about" || route.startsWith("/map_view")) { evt.preventDefault(); $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/start"); @@ -36490,7 +36544,7 @@ document.addEventListener("DOMContentLoaded", function(e) { $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/about"); } - if ((0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.get() == "/map_view") { + if (route.startsWith("/map_view")) { evt.preventDefault(); $17d11d58618cc814$export$471f7ae5c4103ae1.action = ""; (0, (/*@__PURE__*/$parcel$interopDefault($fa8308bd2c5b6d7e$exports))).route.set("/chat?id="), $17d11d58618cc814$export$471f7ae5c4103ae1.ownPeerId; diff --git a/webpage/index.html b/webpage/index.html index 1a71d0c..dcdeba3 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -1,7 +1,7 @@ - + flop @@ -12,7 +12,7 @@ - + @@ -81,7 +81,7 @@ - + diff --git a/webpage/index.runtime.c8f73e5d.js b/webpage/index.runtime.703dc016.js similarity index 98% rename from webpage/index.runtime.c8f73e5d.js rename to webpage/index.runtime.703dc016.js index cfb2105..dc363e3 100644 --- a/webpage/index.runtime.c8f73e5d.js +++ b/webpage/index.runtime.703dc016.js @@ -113,6 +113,6 @@ $75789591d051542a$export$5a759dc7a1cfb72a = $75789591d051542a$var$getOrigin; var $3049cb4c663c28c4$exports = {}; -(parcelRequire("8d3OX")).register((parcelRequire("a5ik5")).getBundleURL("5PBxX"), JSON.parse('["5PBxX","index.138a9186.js","2qxSZ","sw.js"]')); +(parcelRequire("8d3OX")).register((parcelRequire("a5ik5")).getBundleURL("5PBxX"), JSON.parse('["5PBxX","index.c154ce9f.js","2qxSZ","sw.js"]')); diff --git a/webpage/index.runtime.66be2a98.js b/webpage/index.runtime.a6e213d7.js similarity index 98% rename from webpage/index.runtime.66be2a98.js rename to webpage/index.runtime.a6e213d7.js index 5817821..f8bf62a 100644 --- a/webpage/index.runtime.66be2a98.js +++ b/webpage/index.runtime.a6e213d7.js @@ -114,6 +114,6 @@ $06479aad94a8f866$export$5a759dc7a1cfb72a = $06479aad94a8f866$var$getOrigin; var $7feabcc09eb4afac$exports = {}; -(parcelRequire("kDffi")).register((parcelRequire("xqsiy")).getBundleURL("2D5Ur"), JSON.parse('["2D5Ur","index.a01817a1.js","2qxSZ","sw.js"]')); +(parcelRequire("kDffi")).register((parcelRequire("xqsiy")).getBundleURL("2D5Ur"), JSON.parse('["2D5Ur","index.e03f882d.js","2qxSZ","sw.js"]')); })(); diff --git a/webpage/manifest.webmanifest b/webpage/manifest.webmanifest index 3aaad10..73f5691 100644 --- a/webpage/manifest.webmanifest +++ b/webpage/manifest.webmanifest @@ -53,7 +53,7 @@ ], "b2g_features": { - "version": "0.3122", + "version": "0.3130", "id": "flop", "subtitle": "flop p2p messenger app", "core": true, diff --git a/webpage/map.25bf3a08.png b/webpage/map.25bf3a08.png new file mode 100644 index 0000000..df90399 Binary files /dev/null and b/webpage/map.25bf3a08.png differ diff --git a/webpage/sw.js b/webpage/sw.js index 8d9f471..c2367f9 100644 --- a/webpage/sw.js +++ b/webpage/sw.js @@ -16,7 +16,7 @@ function $parcel$interopDefault(a) { : {}; var $251eca785eba5f41$exports = {}; var $a127a5eee4f62b96$exports = {}; -function $a4759881d837f160$export$5f0017c582d45a2d(obj) { +function $a4759881d837f160$export$71511d61b312f219(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } @@ -329,10 +329,10 @@ function $a4759881d837f160$export$5f0017c582d45a2d(obj) { 4: [ function(_dereq_, module1, exports) { "use strict"; - var _typeof = typeof Symbol === "function" && (0, $a4759881d837f160$export$5f0017c582d45a2d)(Symbol.iterator) === "symbol" ? function _typeof(obj) { - return typeof obj === "undefined" ? "undefined" : (0, $a4759881d837f160$export$5f0017c582d45a2d)(obj); + var _typeof = typeof Symbol === "function" && (0, $a4759881d837f160$export$71511d61b312f219)(Symbol.iterator) === "symbol" ? function _typeof(obj) { + return typeof obj === "undefined" ? "undefined" : (0, $a4759881d837f160$export$71511d61b312f219)(obj); } : function(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $a4759881d837f160$export$5f0017c582d45a2d)(obj); + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, $a4759881d837f160$export$71511d61b312f219)(obj); }; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");