Add progressive web app companion for cross-platform access
Vite + TypeScript PWA that mirrors the Android app's core features: - Pre-processed shelter data (build-time UTM33N→WGS84 conversion) - Leaflet map with shelter markers, user location, and offline tiles - Canvas compass arrow (ported from DirectionArrowView.kt) - IndexedDB shelter cache with 7-day staleness check - Service worker with CacheFirst tiles and precached app shell - i18n for en, nb, nn (ported from Android strings.xml) - iOS/Android compass handling with low-pass filter - Respects user map interaction (no auto-snap on pan/zoom) - Build revision cache-breaker for reliable SW updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
46365b713b
commit
e8428de775
12051 changed files with 1799735 additions and 0 deletions
52
pwa/node_modules/@babel/traverse/lib/path/comments.js
generated
vendored
Normal file
52
pwa/node_modules/@babel/traverse/lib/path/comments.js
generated
vendored
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.addComment = addComment;
|
||||
exports.addComments = addComments;
|
||||
exports.shareCommentsWithSiblings = shareCommentsWithSiblings;
|
||||
var _t = require("@babel/types");
|
||||
const {
|
||||
addComment: _addComment,
|
||||
addComments: _addComments
|
||||
} = _t;
|
||||
function shareCommentsWithSiblings() {
|
||||
if (typeof this.key === "string") return;
|
||||
const node = this.node;
|
||||
if (!node) return;
|
||||
const trailing = node.trailingComments;
|
||||
const leading = node.leadingComments;
|
||||
if (!trailing && !leading) return;
|
||||
const prev = this.getSibling(this.key - 1);
|
||||
const next = this.getSibling(this.key + 1);
|
||||
const hasPrev = Boolean(prev.node);
|
||||
const hasNext = Boolean(next.node);
|
||||
if (hasPrev) {
|
||||
if (leading) {
|
||||
prev.addComments("trailing", removeIfExisting(leading, prev.node.trailingComments));
|
||||
}
|
||||
if (trailing && !hasNext) prev.addComments("trailing", trailing);
|
||||
}
|
||||
if (hasNext) {
|
||||
if (trailing) {
|
||||
next.addComments("leading", removeIfExisting(trailing, next.node.leadingComments));
|
||||
}
|
||||
if (leading && !hasPrev) next.addComments("leading", leading);
|
||||
}
|
||||
}
|
||||
function removeIfExisting(list, toRemove) {
|
||||
if (!(toRemove != null && toRemove.length)) return list;
|
||||
const set = new Set(toRemove);
|
||||
return list.filter(el => {
|
||||
return !set.has(el);
|
||||
});
|
||||
}
|
||||
function addComment(type, content, line) {
|
||||
_addComment(this.node, type, content, line);
|
||||
}
|
||||
function addComments(type, comments) {
|
||||
_addComments(this.node, type, comments);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=comments.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue