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>
27 lines
569 B
JavaScript
27 lines
569 B
JavaScript
'use strict'
|
|
|
|
let Container = require('./container')
|
|
let list = require('./list')
|
|
|
|
class Rule extends Container {
|
|
get selectors() {
|
|
return list.comma(this.selector)
|
|
}
|
|
|
|
set selectors(values) {
|
|
let match = this.selector ? this.selector.match(/,\s*/) : null
|
|
let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')
|
|
this.selector = values.join(sep)
|
|
}
|
|
|
|
constructor(defaults) {
|
|
super(defaults)
|
|
this.type = 'rule'
|
|
if (!this.nodes) this.nodes = []
|
|
}
|
|
}
|
|
|
|
module.exports = Rule
|
|
Rule.default = Rule
|
|
|
|
Container.registerRule(Rule)
|