(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.
This fixes a weird regression where the hash would try to centerzoom the map,
but the map did not yet have dimensions, so the center would end up in the top-left.
- class the #sidebar itself as collapsed not the #id-container
- the #sidebar is the selection, so just use `selection` instead of
`var sidebar = d3_select('#sidebar');`
(which conflicts with the closure `sidebar()` function)
- have separate functions `expand` `collapse` `toggle` rather than a
`toggle(shouldCollapse)`
This was triggering a weird redraw which made the map slow and look wrong
The map will redraw again in a few milleseconds anyway.
This means that the the map will not stay on the center, but rather the
top-left corner, which kind of feels better anyway, as it doesn't move things
around as much.
- Makes the "Sidebar" toggle button permanent but removes the label
- Did some things to the "Save" button to make it the same width whether there
is a count or not (prevents the buttons from jumping when pressing undo/redo)
- Removes a lot of the floated col rules that aren't used much anymore
- Dragging the sidebar below a minimum size collapses it
- A button in the top toolbar lets you uncollapse the sidebar, complete with icon and tooltip
- Double-clicking the divider toggles the sidebar collapse
- Collapse-toggling is animated
- Selecting a feature or ending an add-feature mode auto-opens the sidebar
- Photoviewer UI has been moved from init.js to photoviewer.js
- The photoviewer now has a slight margin to set it away from the sidebar
- The undo/redo, save, and progress indicator controls are now floated to the right
- The save count has been redesigned to visually integrate with the save button
- When the sidebar is collapsed, the mode buttons are centered
- Full right-to-left layout support for all of the above