Update `text` functions to `html` to support inserting the `span` elements
Specify `html: false` for various instances where a `span` is not desired, e.g. `placeholder` and `title` attributes
Consolidate localization behavior and init to a coreLocalizer function and singleton
Explicitly support `en-US` locale
Rename coreData to coreFileFetcher and export a singleton rather than using a property of coreContext
Add `apiConnections` property of coreContext to simplify adding a source switcher
Replace some init functions with re-callable, promise-supporting `ensureLoaded` functions
Make coreContext itself load the UI if a container has been specified at init time
Fix code tests
- can't reliably use sinon.spy to tell whether a thing has been called,
so we listen for events instead and check server.requests()
- make sure to request the next page before dispatching `loadedImages` so
we can `server.respond()` to the request in the event handler if we want to
- also moves `localeDateString` in the openstreetcam service from parsing
code to display code, because it's very slow (we can just do this for the
images we look at, instead of all images we fetch)
Root cause was the `select` mode removing the "selected" class from all
elements upon `exit()`. Easy fix is to use a different class (here
"currentView") for street imagery elements.
Fixes:
- Selecting a bubble then enabling a second imagery layer removes the hovered and selected highlighting
- If multiple imagery layers are enabled and you select a bubble it only temporarily becomes highlighted
- If multiple imagery layers are enabled and a bubble is highlighted, hovering over another imagery layer's bubble will remove the selected and hovered highlighting
Basically these all came down to style updates resetting all layers for
cases other than when the viewport was changed (where doing so makes
sense because the selected bubble/sequence needs to update as a result).
See #5494
(closes#4297)
The previous approach split the viewport up by pixels, but each time the view
moved, the pixels would change, so it was not a stable selection of the
streetview data, and the markers would fight for position as the user moved
around.
This approach uses utilTiler to partition the view into stable tiles.
-Adds ability to resize OpenStreetCam and Bing Streetside layers
-Also slightly increases the width of the resize handles
-Also limits max resize so it won't go larger than the map
(closes#4526)
What we were doing before was d3.selecting the attribution line and
inserting the capture date into it. This was confusing the viewer
(which updates asynchronously) so that the sitelink would never update.
To make things easier, we'll just hide the viewer's built in attribution
and construct the attribution line the way we want it.