1export const state = {2 catalog: null,3 volume: null,4 world: null,5 lens: null,6 engine: null,7 projection: null,8 layers: null,9 sources: null,10 // One hide-set across every kind of collection, keyed by the numeric ids11 // the wire declares. Nothing downstream cares which kind an id names; it12 // only asks isCollectionHidden.13 hiddenCollections: new Set(),14 collapsedSections: new Set(),15 // Which area and path rows have their feature index unfolded in the legend.16 expandedCollections: new Set(),17 // The point-feature registry: one pin record per packed location, built by18 // buildFeatures. Shape features keep their own registry in zoneRecords19 // below -- that name (and highlightedZones, focusedZoneID with it) stays as20 // it is because the diagnostics snapshot and the parity baselines grew up21 // around the zone spelling, and the records it holds really are the zone22 // layers' to draw.23 features: [],24 featureByID: new Map(),25 selectedPin: null,26 selectedZone: null,27 hoveredPin: null,28 labelsHeld: false,29 gridEnabled: false,30 // Which cell system divides the world, by slug; geohash until chosen31 // otherwise, and reset with the world so no world boots into a system it32 // does not offer.33 gridSystem: "geohash",34 // Whether the reader is looking at the planet instead of the chart: only35 // a world that declares itself a sphere can turn this on.36 globeActive: false,37 // Whether the cells are drawn, which is a separate question from whether one38 // of them is holding the view to a place.39 subgridVisible: true,40 gridCell: "",41 zoneRecords: new Map(),42 highlightedZones: new Set(),43 focusedZoneID: null,44 // The reader's word over a collection's label policy, keyed by collection45 // id. Written by the legend's label toggle, read by the policy ladder.46 labelOverrides: new Map(),47 search: "",48 fitZoom: 0,49 zoneTitleCount: 0,50 eligibleLocations: 0,51 tileRun: 0,52 tileStats: { requested: 0, loaded: 0, errors: 0, peakPending: 0 },53 overviewRun: 0,54 overviewKey: "",55 overviewPointer: null,56 overviewDocked: false,57 dockFolded: true,58 // Whether the reader has put the panel away themselves. Until they have, it59 // comes out on its own the first time there is something in it to read.60 dockDismissed: false,61 renderedShard: 0,62 worldRun: 0,63 textByWorld: new Map(),64 restore: null,65 // Where the camera was standing before a panel sent it somewhere: the view66 // a jump from the dock or the legend borrowed, given back when the card it67 // was opened for is closed. Null whenever the reader is steering.68 cameraReturn: null,69 settling: false,70 styleCache: new Map(),71 markerIcons: new Map(),72};