Releases: openseadragon/openseadragon
Releases · openseadragon/openseadragon
v2.3.1
- Debug mode now uses different colors for different tiled images (customizable via debugGridColor) (#1271)
- Fixed a problem with preventDefaultAction for the canvas-drag event (#1278)
- Fixed an issue causing double images with certain aspect ratios (#1280)
- Fixed: placeholderFillStyle had no effect (#1286)
- Fixed seams that appear in wrap mode on Safari and Firefox (#1305
v2.3.0
- BREAKING CHANGE: Tile.distance has been removed (#1027)
- BREAKING CHANGE: Viewer's canvas-click event is now fired before it initiates the zoom (#1148)
- BREAKING CHANGE: Viewer's canvas-drag event is now fired before it pans (#1149)
- Added Zoomify tile source (#863)
- You can now set the rotation of individual tiled images (#1006)
- Added getFullyLoaded method and "fully-loaded-change" event to TiledImage to know when tiles are fully loaded (#837, #1073)
- You can now preload images without drawing them to the screen (#1071)
- Added support for commonjs (#984)
- Added an option to addTiledImage to change the crossOriginPolicy (#981)
- You can now load tiles via AJAX and custom AJAX request headers (#1055)
- Added ability to provide thumbnail URLs for reference strip (#1241)
- Improved panning constraints for constrainDuringPan (#1133 and #1245)
- You can now prevent canvas-click events from zooming on a per-event basis (#1148)
- You can now prevent canvas-drag events from panning on a per-event basis (#1149)
- The navigationControlAnchor option now works for custom toolbar as well (#1004)
- LegacyTileSource now allows any image URLs regardless of type (#1056)
- Enabled configuration of ImageLoader timeout (#1192)
- Viewer.open() now supports an initialPage argument for sequenceMode (#1196)
- New events for opacity and compositeOperation changes (#1203)
- Added support for setting debug mode after the Viewer object has been constructed (#1224)
- Added functions for dynamically adding and removing the reference strip in sequence mode (#1213)
- Better calculation for TileCache release cutoff (#1214)
- The navigator now picks up opacity and compositeOperation changes (#1203)
- Improved calculation for determining which level to load first (#1198)
- Added fix for supporting weird filenames that look like JSONs (#1189)
- Improved DziTileSource guessing of tilesUrl (#1074)
- The Viewer's tileSources option is now smarter about detecting JSON vs XML vs URL (#999)
- Better compression for our UI images (#1134)
- Optimization: Use the squared distance when comparing tiles (#1027)
- Now clamping pixel ratio density to a minimum of 1, fixing display issues on low density devices (#1200)
- More forgiving check for DZI schema (#1249)
- ImageTileSource now works in IE8 (#1041)
- Fixed CORS bug in IE 10 (#967)
- Fixed issue with tiles not appearing with wrapHorizontal/wrapVertical if you pan too far away from the origin (#987, #1066)
- Fixed: Initial tile load wasn't happening in parallel (#1014)
- Fixed problem with "sparse image" DZI files (#995)
- Fix IndexSizeError on IE and Edge that occurred under certain circumstances (e.g. multi-image with transparency) (#1035)
- Fixed error in IE8 when zooming in (due to edge smoothing) (#1064)
- Fixed issue with OpenSeadragon.version in the minified JavaScript (#1099)
- Fixed smoothTileEdgesMinZoom performance degradation on single-tile images (#1101)
- Fixed issue with tiles not appearing after rotation (#1102)
- Fixed: The navigator wasn't respecting the constrainDuringPan setting (#1104)
- Fixed an issue causing overlays to be mis-positioned in some circumstances (#1119)
- Fixed: ImageTileSource would sometimes produce a double image (#1123)
- Fixed: console.debug caused exceptions on IE10 (#1129)
- Fixed: the reference strip would leak memory when opening new sets of images (#1175)
- Fixed: zoomTo/zoomBy ignore refPoint if immediately is true (#1184)
- Fixed: IIPImageServer didn't work with the latest OSD release (#1199)
- Fixed: setItemIndex method not working with navigator inside "open" event (#1201)
- Fixed: The reference strip didn't show the initial page if it wasn't the first page (#1208)
- Fixed: Sometimes the image would stick to the mouse when right-clicking and left-clicking simultaneously (#1223)
- Fixed issue with transparent images sometimes disappearing on Safari (#1222)
- Fixed: One image failing to load could cause the others to never load (#1229)
- Fixed: Mouse up outside map will cause "canvas-drag" event to stick (#1133)
- Fixed more issues with tracking multiple pointers (#1244)
v2.2.1
v2.2.0
- BREAKING CHANGE: Viewport.homeBounds, Viewport.contentSize, Viewport.contentAspectX and
Viewport.contentAspectY have been removed. (#846) - BREAKING CHANGE: The Overlay.getBounds method now takes the viewport as parameter. (#896)
- DEPRECATION: Overlay.scales, Overlay.bounds and Overlay.position have been deprecated. (#896)
- Overlay.width !== null should be used to test whether the overlay scales horizontally
- Overlay.height !== null should be used to test whether the overlay scales vertically
- The Overlay.getBounds method should be used to get the bounds of the overlay in viewport coordinates
- Overlay.location replaces Overlay.position
- DEPRECATION: Viewport.setHomeBounds has been deprecated (#846)
- DEPRECATION: the Viewport constructor is now ignoring the contentSize option (#846)
- Tile edge smoothing at high zoom (#764)
- Fixed issue with reference strip popping up virtual keyboard on mobile devices (#779)
- Now supporting rotation in the Rect class (#782)
- Drag outside of iframe now works better, as long as both pages are on the same domain (#790)
- Coordinate conversion now takes rotation into account (#796)
- Support tile-less IIIF as per LegacyTileSource (#816)
- You can now give an empty string to the tabIndex option (#805)
- Fixed issue with rotation and clicking in the navigator (#807)
- Broadened the check for mime type in LegacyTileSource URLs to allow query strings (#819)
- Added globalCompositeOperation option for tiledImage, to allow for different transfer modes (#814)
- Added Viewer.addSimpleImage method for easily adding non-tiled images (#827)
- DziTileSource now works properly with DZI files that have no extension (#835)
- Fixed content clipping with rotation (#463, #567 and #833)
- Fixed navigator not being rotated when viewport rotation is set in constructor (#840)
- Fixed: Viewer.setMouseNavEnabled wasn't affecting all of the viewer's trackers (#845)
- Fixed: with scrollToZoom disabled, the viewer caused page scrolling to slow down (#858)
- Added Viewer.getOverlayById and Overlay.getBounds functions (#853)
- Tiled images with 0 opacity no longer load their tiles or do drawing calculations (#859)
- Fixed issue with edge smoothing with PNG tiles at high zoom (#860)
- Fixed: Images with transparency were clearing images layered below them (#861)
- Fixed issue causing HTML pages to jump unwantedly to the reference strip upon loading (#872)
- Added addOnceHandler method to EventSource (#887)
- Added TiledImage.fitBounds method (#888)
- Overlays can now be scaled in a single dimension by providing a point location and either width or height (#896)
- Added full rotation support to overlays (#729, #193)
- Viewport.goHome() now takes clipping into account (#910)
- Improved zoom to point (#923)
- Optimized sketch canvas clearing and blending for images with opacity or transfer modes (#927)
- Now taking rotation into account in viewport getBounds and fitBounds methods (#934)
- Added option to disable navigator auto-fade (#935)
- Fixed issue with maintaining viewport position with full screen (#940)
- Fixed an issue with simultaneous touch events (#930)
- Avoid loading clipped out tiles (#939)
- Improved precision for subtle moves with fitBounds (#939)
- Fixed an issue in viewer.addTiledImage with replace:true when viewer has navigator (#948)
v2.1.0
- BREAKING CHANGE: the tile does not hold a reference to its image anymore. Only the tile cache keep a reference to images.
- BREAKING CHANGE: TileSource.tileSize no longer exists; use TileSource.getTileWidth() and TileSource.getTileHeight() instead.
- DEPRECATION: let ImageRecord.getRenderedContext create the rendered context instead of using ImageRecord.setRenderedContext
- DEPRECATION: TileSource.getTileSize() is deprecated. Use TileSource.getTileWidth() and TileSource.getTileHeight() instead.
- Changed resize behaviour to prevent "snapping" to world bounds when constraints allow more space (#711)
- Added support for non-square tiles (#673)
- TileSource.Options objects can now optionally provide tileWidth/tileHeight instead of tileSize for non-square tile support.
- IIIFTileSources will now respect non-square tiles if available.
- Added new tile source for simple images: ImageTileSource (#760)
- Optimized adding large numbers of items to the world with collectionMode (#735)
- Registers as an AMD module where possible (#719)
- Added "tile-loaded" event on the viewer allowing to modify a tile before it is marked ready to be drawn (#659)
- Added "tile-unloaded" event on the viewer allowing to free up memory one has allocated on a tile (#659)
- Added 'tile-load-failed' event (#725)
- Added additional coordinates conversion methods to TiledImage (#662)
- Added
preserveImageSizeOnResize
option (#666) - Added collectionColumns as a configuration parameter (#680)
- Added option in addTiledImage to replace tiledImage at index (#706)
- Added autoRefigureSizes flag to World for optimizing mass rearrangements (#715)
- You can now change viewport margins after the viewer is created (#721)
- Added a patch to help slow down the scroll devices that fire too fast (#754)
- Fixed flickering tiles with useCanvas=false when no cache is used (#661)
- 'display: none' no longer gets reset on overlays during draw (#668)
- Better error reporting for tile load failures (#679)
- Added XDomainRequest as fallback method for ajax requests if XMLHttpRequest fails (for IE < 10) (#693)
- Now avoiding using eval when JSON.parse is available (#696)
- Rotation now works properly on retina display (#708)
- Fixed issue with tiledImages loading tiles at every level instead of just the best level (#728)
- Fixed placeholderFillStyle flicker (#727)
- Fix for Chrome (v45) issue that key is sometimes undefined outside of the for-in loop (#730)
- World.removeAll now cancels any in-flight image loads; same for Viewer.open and Viewer.close (#734)
- Fixed overlays position (use rounding instead of flooring and ceiling) (#741)
- Fixed issue with including overlays in your tileSources array when creating/opening in the viewer (#745)
- Fixed issue in iOS devices that would cause all touch events to fail after a Multitasking Gesture was triggered (#744)
- Fixed an issue with TiledImage setPosition/setWidth/setHeight not reliably triggering a redraw (#720)
- Fixed zooming in with plus key on a Swedish keyboard (#763)
v2.0.0
This is a major release with a number of breaking changes and deprecations (see below) and a major feature, true multi-image support:
http://openseadragon.github.io/examples/multi-image/
Please pay special attention to the breaking changes below if you had previously used the multi-image or multi-layer features of the previous versions of OpenSeadragon.
We've also added improved info on coordinate systems (even more important now with multi-image):
http://openseadragon.github.io/examples/viewport-coordinates/
...and published an SVG overlay plugin:
https://github.com/openseadragon/svg-overlay
Changelog:
- True multi-image mode (#450)
- BREAKING CHANGE: Passing an array for the tileSources option is no longer enough to trigger sequence mode; you have to set the sequenceMode option to true as well
- BREAKING CHANGE: Navigator no longer sends an open event when its viewer opens
- BREAKING CHANGE: Viewer.drawers and Viewer.drawersContainer no longer exist
- BREAKING CHANGE: A Viewer's Drawer and Viewport are now made once per Viewer and reused for every image that Viewer opens (rather than being recreated for every open); this means if you change Viewer options between opens, the behavior is different now.
- DEPRECATION: use Viewer.addTiledImage instead of Viewer.addLayer
- addTiledImage supports positioning config properties
- DEPRECATION: use World.getItemAt instead of Viewer.getLayerAtLevel
- DEPRECATION: use World.getIndexOfItem instead of Viewer.getLevelOfLayer
- DEPRECATION: use World.getItemCount instead of Viewer.getLayersCount
- DEPRECATION: use World.setItemIndex instead of Viewer.setLayerLevel
- DEPRECATION: use World.removeItem instead of Viewer.removeLayer
- DEPRECATION: use World.needsDraw instead of Drawer.needsUpdate
- DEPRECATION: use TileCache.numTilesLoaded instead of Drawer.numTilesLoaded
- DEPRECATION: use World.resetItems instead of Drawer.reset
- DEPRECATION: use Drawer.clear and World.draw instead of Drawer.update
- DEPRECATION: the layersAspectRatioEpsilon option is no longer necessary
- DEPRECATION: Viewer's add-layer event is now World's add-item event
- DEPRECATION: Viewer's layer-level-changed event is now World's item-index-change event
- DEPRECATION: Viewer's remove-layer event is now World's remove-item event
- DEPRECATION: Viewer's add-layer-failed event is now add-item-failed
- DEPRECATION: TileSourceCollection has been retired in favor of World
- DEPRECATION: collectionMode no longer draws outlines or reflections for items
- Drawer has been split into three classes:
- TiledImage, tile management and positioning for a single tiled image
- TileCache, tile caching for all images
- Drawer, tile drawing for all images
- New class: World, keeps track of multiple images in the scene
- Viewer now has world and tileCache properties
- Rect and Point now have clone functions
- New Viewport method for managing homeBounds as well as constraints: setHomeBounds
- Viewport.open supports positioning config properties
- For multi-image open, drawing isn't started until all tileSources have been opened
- You can specify a clip area for each image (only works on browsers that support the HTML5 canvas) (#594)
- Added placeholderFillStyle so image rectangles can be drawn even before their tiles load (#635)
- Ability to set opacity on individual TiledImages (#644)
- Margins option to push the home region in from the edges of the Viewer (#505)
- Rect and Point toString() functions are now consistent: rounding values to nearest hundredth
- Overlays appear in the DOM immediately on open or addOverlay (#507)
- imageLoaderLimit now works (#544)
- Turning off scrollToZoom in gestureSettings now allows scroll events to propagate
- You can now set a minZoomLevel that's greater than the home zoom level
- Added union() to OpenSeadragon.Rect
- Fixed an error in fitBounds if the new and old bounds were extremely close in size
- Added ajaxWithCredentials option (#543)
- Added viewport-change event for after the viewport changes but before it's drawn
- A spring's current value is now updated immediately on reset (#524)
- Fixed an error in fitBounds that occurred sometimes with immediately = true
- Added support for HDPI (retina) displays (#583)
- Corrected IIIF tile source to use canonical syntax (#586)
- Fixed x/y typo that caused horizontal reference strip to be rendered only relative to height (#595)
- Fixed Firefox 35 not able to open local files (#588)
- Fixed an issue with zero size viewers in IE8 (#609)
- Fixed: Cross Origin policy not working (#613)
- Optimized tile loading by clearing the queue on a re-draw when imageLoaderLimit is set (#616)
- Now animating zoom spring exponentially (#631)
- Added http://editorconfig.org/ config file (#637)
- Keyboard pan speed is now the same regardless of zoom level (#645)
v1.2.1
- Added preserveOverlays option (#561)
- Fixed: DZI tilesource was broken on IE8/IE9 (#563)
- Exposed secondary pointer button (middle, right, etc.) events from MouseTracker and through viewer (#479)
- MouseTracker - Improved IE 8 compatibility (#562)
- MouseTracker - Improved IE 9+ compatibility (#564)
- MouseTracker - Simulated touchenter/touchleave events now bubble to parent element MouseTrackers (#566)
- MouseTracker - Improved multitouch support in enter/exit event handlers (#566)
- MouseTracker - orphaned tracked touch pointers removed (fix for #539)
- MouseTracker - removed touchenter/touchleave event support since the events don't exist on any known platform and have been removed from the W3C specification (#566)
- Removed Viewer onContainerPress/onContainerRelease handlers (and the associated 'container-release' event ) that were never fired due to the canvas (child) element capturing the DOM events (#566)
- Added 'canvas-enter', 'canvas-exit', and 'canvas-press' events to Viewer (#566)
- ButtonGroup - removed obsolete MouseTracker event handlers (#566)
- MouseTracker - added keydown and keyup handlers (#568)
- Modifier keys ignored in keyboard navigation handlers (#503)
- Requesting keyboard focus when viewer is clicked (#537)
- Arrow key navigation fixed across platforms (#565)
- Removed textarea element from viewer DOM. Viewer.canvas now handles keyboard navigation (#569)
- Removed 'position' property from MouseTracker keyDownHandler/keyUpHandler/keyHandler functions (#573)
- Fixed pointer event model detection for IE 10 and IE 11 (#571)
- Added setMouseNavEnabled() support to Navigator (#572)
- MouseTracker now defaults to tracking on (#558)
- Removed Viewer focusHandler/onCanvasFocus (#577)
- Added tabIndex option to viewer (#577)
v1.2.0
- New combined IIIF TileSource for 1.0 through 2.0 (#441)
- BREAKING CHANGE: Removed IIIF1_1TileSource (now that IIIFTileSource supports all versions)
- Allowed TileSources to have dynamic tileSize via source.getTileSize(level) (#441)
- DEPRECATION: Use .getTileSize(level) instead of .tileSize
- Fix for IIPServer-style urls when using DZI (#413)
- Fix memory leak while destroying the viewer (#421)
- Added fitBoundsWithConstraints() to the viewport (#423)
- Fixed MouseTracker cross-browser issues with tracking pointers over and out of the tracked element (pull request #448, fix for #152, #404, #420, and #427)
- Fixed incorrect flick direction after image is rotated (#452)
- Debug mode now works with rotate images (#453)
- Now supporting dzi xml with namespaces (#462)
- You can now rotate the navigator along with the main viewer (#455)
- Viewport.setRotation now allows all rotation angles (#466)
- Pinch rotate is now available (defaults to off) (#468)
- Added option for home button to fill viewer (#474)
- Better handling of mid-update image loaded callbacks (#409)
- Tracked pointers are now cleaned up when Viewer.setMouseNavEnabled(false) is called (#518)
- Added explicit pointer capture for touch event model touchstart events (#552)
v1.1.1
v1.1.0
- BREAKING CHANGE: the openseadragon-canvas element now has two child divs. This means: (#298)
- The drawer element is no longer accessible via viewer.canvas.firstChild but via viewer.drawersContainer.firstChild or viewer.drawer.canvas.
- The overlays elements are no longer accessible via viewer.canvas.childNodes but via viewer.overlaysContainer.childNodes or viewer.currentOverlays[i].element.
- BREAKING CHANGE: Pseudo full screen mode on IE<11 using activex has been dropped. OpenSeadragon will run in full page if full screen mode is requested.
- BREAKING CHANGE: MouseTracker touch pinch gestures are no longer converted to scroll events. MouseTracker.pinchHandler should be used instead. (#369)
- DEPRECATION: overlay functions have been moved from Drawer to Viewer (#331)
- DEPRECATION: OpenSeadragon.cancelFullScreen has been renamed OpenSeadragon.exitFullScreen (#358)
- DEPRECATION: The 'isTouchEvent' property passed in MouseTracker events is deprecated and has been replaced with 'pointerType', which is a String value "mouse", "touch", "pen", etc. to support multiple simultaneous pointing devices (#369)
- DEPRECATION: The 'buttonDownAny' property passed in MouseTracker enter and exit events (enterHandler/exitHandler) is deprecated and has been replaced with 'buttons', which indicates the button(s) currently pressed (#369)
- DEPRECATION: The 'buttonDownAny' property passed in Viewer's 'container-enter' and 'container-exit' events is deprecated and has been replaced with 'buttons', which indicates the button(s) currently pressed (#369)
- Added layers support. Multiple images can now been displayed on top of each other with transparency via the Viewer.addLayer method (#298)
- Improved overlay functions (#331)
- Fixed: Nav button highlight states aren't quite aligned on Firefox (#303)
- Added ControlAnchor options for default controls (#304)
- Enabled basic cross-domain tile loading without tainting canvas (works in Chrome and Firefox) (#308)
- Added crossOriginPolicy drawer configuration to enable or disable CORS image requests (#364)
- Disabled CORS by default (#377)
- Added a ControlAnchor.ABSOLUTE enumeration. Enables absolute positioning of control elements in the viewer (#310)
- Added a 'navigator-scroll' event to Navigator. Fired when mousewheel events occur in the navigator (#310)
- Added a navigatorMaintainSizeRatio option. If set to true, the navigator minimap resizes when the viewer element is resized (#310)
- Added 'ABSOLUTE' as a navigatorPosition option, along with corresponding navigatorTop, navigatorLeft options. Allows the navigator minimap to be placed anywhere in the viewer (#310)
- Enhanced the navigatorTop, navigatorLeft, navigatorHeight, and navigatorWidth options to allow a number for pixel units or a string for other element units (%, em, etc.) (#310)
- Additional enhancements for IIIF support (#315)
- Fixed: Setting degrees in Viewer constructor has no effect (#336)
- Added pre-draw event for tiles to allow applications to alter the image (#348)
- Added optional Rotate Left/Right buttons to standard controls (#341)
- Added optimization for large numbers of overlays:
checkResize = false
option for OpenSeadragon.Overlay (#365) - Updated full screen API, adding support for Opera and IE11 and allowing keyboard input in Chrome (#358)
- Various fixes to bring OpenSeadragon into W3C compliance (#375)
- Added separate flags for turning off each of the nav buttons (#376)
- Added support for query parameters in DZI tileSource URL (#378)
- Enhanced MouseTracker for multi-touch (#369)
- Added support for tracking multiple touch-points on multiple/simultaneous pointing devices
- Added support for the W3C Pointer Events event model. Enables touch/multi-touch on IE10+
- Added a dragEndHandler event callback, called when a drag gesture ends
- Added a pinchHandler event callback, called as a pinch gesture (2 touch points) is occurring
- Added real-time velocity (speed and direction) tracking to drag operations. 'speed' and 'direction' values are passed in the dragHandler and dragEndHandler event data
- Enhanced Viewer for multi-touch (#369)
- Added pinch zoom with the new MouseTracker pinchHandler. The 'pan' and 'zoom' Viewer events can be used to detect changes resulting in pinch gestures
- Added a "canvas-pinch" event fired by the pinch event handler
- Added flick gesture with the new MouseTracker dragEndHandler
- Added a "canvas-drag-end" event fired by the drag-end event handler
- Added a GestureSettings class for per-device gesture options. Currently has settings to enable/disable zoom-on-scroll, zoom-on-pinch, zoom-on-click, and flick gesture settings.
- Added GestureSettings objects for mouse, touch, and pen devices to the Viewer options giving users the ability to customize gesture handling in the viewer
- Added velocity (speed and direction) properties to the "canvas-drag" event
- Added double-click gesture detection to MouseTracker with corresponding dblClickHandler event callback (#392)
- Added zoom on double-click feature to Viewer, with corresponding dblClickToZoom option added to the GestureSettings class (#392)
- Made it possible to run OpenSeadragon from local filesystem on some browsers (#379)