Skip to content

Releases: openseadragon/openseadragon

v4.1.1

01 Apr 17:00
Compare
Choose a tag to compare

This is just a small patch release to fix IIIF issues downstream.

Fixed: Strange behavior if IIIF sizes were not in ascending order (#2416 @lutzhelm)

v4.1.0

25 May 20:57
Compare
Choose a tag to compare
  • NEW BEHAVIOR: When navigatorRotate is false, while the navigator image doesn't rotate, the red outline now does (#2356 @lcl45)
  • The viewer no longer emits canvas-key events for both keydown and keypress events; canvas-key is now just for keydown, and the new canvas-key-press is for keypress (#2270 @hrghauri)
  • You can now specify a priority when calling addHandler, to control when your event handler gets called relative to others (#2273 @Aiosa)
  • Added tileRetryMax and tileRetryDelay options, so the viewer can retry loading failed tiles (#2238 @Ughuuu @paaddyy, #2334 @Ughuuu @Titan21)
  • All of the viewers keyboard handling is now in response to keydown events (it used to be split between keydown and keypress) (#2291 @MohitBansal321)
  • Added canvas-focus and canvas-blur events to Viewer (#2301 @MohitBansal321)
  • You can now more easily add custom buttons to the viewer (#2306 @MohitBansal321)
  • The fitBounds function now takes zoom constraints into account (#2293 @pearcetm)
  • The viewer now has an after-resize event what happens after the viewport bounds have been updated, to complement the resize event which happens before (#2317 @pearcetm)
  • IIIFTileSource now uses resolution level dimensions provided in the info.json "sizes" field for more accurate tile requests (#2337 @ruven)
  • Added setAjaxHeaders method to Viewer and TiledImage (#2346 @uschmidt83)
  • Improved documentation (#2297 @KevinBritten)
  • Fixed: The tile-loaded event's completionCallback could be called more than once in some circumstances (#2282 @Aiosa, @pearcetm)
  • Fixed: Navigator display rectangle was off if the page had box-sizing: border-box (#2276 @ambujsahu81)
  • Fixed: Code that required identifying functions would fail for async functions (#2273 @Aiosa)
  • Fixed: Reference strip click detection was not accurate for long reference strips (#2280 @damonsson)
  • Fixed: Translation problems in some circumstances with cropping polygons enabled (#2316 @pearcetm)
  • Fixed: The navigator area rectangle would grow larger when you zoom in very far (#2318 @donotloveshampo)
  • Fixed: JSON with embedded XML was being incorrectly identified as XML (#2328 @craigberry)
  • Fixed: Touch/pinch rotate was not working properly on some platforms (#2324 @rsimon, @pearcetm)
  • Fixed: Navigator rotation didn't honor immediately parameter (#2333 @robertjcolley)
  • Fixed: The navigator didn't update for its new size in certain circumstances (#2347 @pearcetm)

v4.0.0

16 Dec 22:21
Compare
Choose a tag to compare
  • NEW BEHAVIOR: Setting the viewport rotation now animates by default (pass true for the new immediately parameter to disable) (#2136 @jonasengelmann)
  • NEW BEHAVIOR: The auto resize now takes both width and height into account when scaling the contents proportionally to the viewer (#2256 @pearcetm)
  • DEPRECATION: Don't access the viewport's degrees property directly anymore; instead use setRotation and getRotation (#2136 @jonasengelmann)
  • New gesture: Double-click and drag to zoom (on by default for touch) (#2225 @HamzaTatheer)
  • You can now provide a pivot point when rotating the viewport (#2233 #2253 @pearcetm)
  • Improved the constraints that keep the image in the viewer, specifically when zoomed out a lot (#2160 @joedf, #2246 @pearcetm)
  • You can now provide an element for the navigator (as an alternative to an ID) (#1303 @cameronbaney, #2166 #2175 @joedf)
  • Now supporting IIIF "id" and "identifier" in addition to "@id" (#2173 @ahankinson)
  • We now delegate tile fetching and caching to the TileSource, to allow for custom tile formats (#2148 @Aiosa)
  • Added support for dynamic URLs from tile sources (#2247 @JohnReagan)
  • The viewer now emits before-destroy and destroy events (#2239 @pearcetm)
  • Auto resize detection is now more efficient (#2256 @pearcetm)
  • Improved documentation (#2211 @shyamkumaryadav)
  • Fixed: Cropping tiled images with polygons was broken (#2183 @altert)
  • Fixed: Boundary constraints were wrong when the viewport was rotated (#2249 @pearcetm)
  • Fixed: IIIF tile sizes would be calculated wrong on rare occasions (#2206 @filak)
  • Fixed: Disabling buttons only changed their appearance, but they were still clickable (#2187 @pearcetm)
  • Fixed: ImageTileSource produced an error having to do with getTileHashKey (#2190 @Aiosa)
  • Fixed: On startup you would get an unnecessary "Viewer.buttons is deprecated" warning (#2201 @joedf, #2219 @jssullivan, #2212 @joedf)

v3.1.0

07 Jun 21:03
Compare
Choose a tag to compare
  • Added subPixelRoundingForTransparency Viewer option to address seams that can appear in semi-transparent images (#2075 @TanukiSharp)
  • Added Viewer.isAnimating() (#2075 @TanukiSharp)
  • Added isFullScreen method to Viewer (#2067 @JachiOnuoha)
  • Added option to include POST data when loading files via Ajax (#2072 @Aiosa)
  • Exposed TiledImage's private functions for better maintainability (#2134 @Aiosa)
  • Tile cache keys are now generated by the tile source, so it's easier to override them as needed (#2138 @Aiosa)
  • Pinch to zoom now zooms around the center of the pinch, rather than the center of the viewer (#2158 @cavenel)
  • Added fallback and deprecation warning for Viewer.buttons (which got changed to buttonGroup in 3.0.0) (#2153 @devbyjonah)
  • Fixed an issue where turning off panVertical or panHorizontal would not affect the panning keyboard combos (#2069 @JachiOnuoha)
  • Cleaned up console.logs so that errors and warnings use console.error and console.warn as appropriate (#2073 @Abhishek-90)
  • Improved documentation (#2067 @JachiOnuoha, #2112 @shyamkumaryadav, #2152 @joedf, #2155 @samwilson)
  • Fixed: Setting useCanvas to false would break the viewer (#2116 @rvv-bouvet)
  • Allow silencing multi-image warnings on viewport coordinate conversion functions (#2120 @claycoleman)
  • Fixed: Swiping fast multiple times made contact points in MouseTracker out of sync for touch events (#2121 @ronnymikalsen)
  • Made MouseTracker more robust in certain scenarios (#2134, #2147 @Aiosa)
  • Fixed an issue where full page mode wouldn't grow properly if you resized the window (#2100 @TanukiSharp)
  • Now if you pass an error handler into makeAjaxRequest, it doesn't report errors into the console (#2142 @Aiosa)
  • Fixed error caused by attaching MouseTracker to the page's document element (#2145 @tdiprima)
  • Fixed an issue that would sometimes cause problems with freeing up ImageTileSource memory (#2162 @pearcetm)

v3.0.0

15 Dec 19:37
Compare
Choose a tag to compare
  • BREAKING CHANGE: Dropped support for older browsers (IE < 11) (#1872 #1949 #1951 @msalsbery, #1950 @rmontroy)
  • BREAKING CHANGE: Removed deprecated OpenSeadragon.getEvent function (#1949 @msalsbery)
  • DEPRECATION: MouseTracker exitHandler deprecated for name change to leaveHandler for consistency with DOM event names (#1872 @msalsbery)
  • Now when "simple image" tile sources are removed from the viewer, they free the memory used by the pyramid they create (#1789 @TakumaKira)
  • Improvements to docs (#1814 @kenanchristian, #1872 @msalsbery, #1996 @tdiprima)
  • Better cleanup on destruction, to avoid memory leaks (#1832 @JoFrMueller)
  • Better handle destruction when navigator in custom location (#1884 @woodchuck)
  • Miscellaneous code cleanup (#1840 @msalsbery)
  • You can now specify tileSize for the Zoomify Tile Source (#1868 @abrlam)
  • Better use of IIIF "max" and "full" URL parameters (#1871 @MImranAsghar)
  • You can now specify the file format of the tiles in the Zoomify tile source (#1889 @abrlam)
  • Improved browser sniffing - detect EDGE and CHROMEEDGE browsers (#1872 @msalsbery)
  • Improved DOM event model feature detection (#1872 @msalsbery)
  • Added support for options parameter on addEvent()/removeEvent (to support passive option) (#1872 @msalsbery)
  • Added OpenSeadragon.eventIsCanceled() function for defaultPrevented detection on DOM events (#1872 @msalsbery)
  • MouseTracker: better PointerEvent model detection - removed use of deprecated window.navigator.pointerEnabled (#1872 @msalsbery)
  • MouseTracker: added overHandler/outHandler options for handling corresponding pointerover/pointerout events (#1872 @msalsbery)
  • MouseTracker: changed enterHandler/leaveHandler to use DOM pointerenter/pointerleave events instead of simulating using pointerover/pointerout (#1872 @msalsbery)
  • All internal uses of MouseTracker use pointerenter/pointerleave events instead of pointerover/pointerout events for more consistent pointer tracking (#1872 @msalsbery)
  • Fixed bug in Button class where two MouseTracker event handlers used an invalid "this" causing issues in some browsers (#1872 @msalsbery)
  • Added pointerType property to Viewer container-enter, container-exit, canvas-drag, canvas-drag-end, canvas-pinch events (#1872 @msalsbery)
  • MouseTracker: Fire dragEndHandler event even if release point same as initial contact point (#1872 @msalsbery)
  • MouseTracker: Pointer capture implemented with capture APIs where available. Only fallback to emulated capture on extremely old browsers (#1872 @msalsbery)
  • MouseTracker: Added preProcessEventHandler option to allow MouseTracker instances to control bubbling and default behavior of events on their associated element (#1872 @msalsbery)
  • MouseTracker: Improved handling of canceled events (#1872 @msalsbery)
  • MouseTracker: Improved releasing of tracked pointers on destroy()/stopTracking() (#1872 @msalsbery)
  • Updated Viewer, Button, Drawer, Navigator, ReferenceStrip DOM for proper DOM event handling (#1872 @msalsbery)
  • Added OpenSeadragon.setElementPointerEventsNone() for setting pointer-events:'none' on DOM elements (#1872 @msalsbery)
  • MouseTracker: added contextMenuHandler option for handling contextmenu events (#1872 @msalsbery)
  • Viewer: added a canvas-contextmenu event (#1872 @msalsbery)
  • Fixed simulated drag events in navigator tests (#1949 @msalsbery)
  • Added preventDefault option to MouseTracker.contextMenuHandler and Viewer 'canvas-contextmenu' event args (#1951 @msalsbery)
  • MouseTracker: Added preProcessEventHandler for keydown, keyup, keypress, focus, blur Events (#1951 @msalsbery)
  • Fixed preventDefaultAction functionality in viewer events (#1953 @msalsbery)
  • Added setImageFormatsSupported function (#1954 @pandaxtc)
  • Added dragToPan to the GestureSettings class, implemented in Viewer (#1956 @msalsbery)
  • Added preventDefault option to MouseTracker handlers: scrollHandler, keyDownHandler, keyUpHandler, keyHandler (#1957 @msalsbery)
  • Fixed test "Events: Viewer: preventDefaultAction in dblClickHandler". Fixes #1372 (#1960 @msalsbery)
  • ReferenceStrip: Fixed issue where its element was being removed from its parent element twice on destroy, causing an exception (#1958 @msalsbery)
  • ReferenceStrip: Made its element focusable for keyboard navigation (#1958 @msalsbery)
  • You can now flip individual images (not just the whole viewport) (#1903 @ali1234)
  • Accessibility: we now take the browser's zoom into account when choosing what detail level to draw (#1937 @ronnymikalsen)
  • Fixed a bug causing overlays to disappear in Sequence Mode (#1865 @gunmiosb)
  • Fixed a bug where the ajaxHeaders provided per-image were not being used for image requests (#1968 @maxshuty)
  • MouseTracker: Added workaround for WebKit Pointer Event Implicit Capture Bug (#1972 @msalsbery)
  • Removed test for move-leave (fly-over, no enter event)...not a valid, handleable event state, no longer supported (#1972 @msalsbery)
  • Added OpenSeadragon.setElementPointerEvents() for setting pointer-events to other values besides 'none' on DOM elements (#1972 @msalsbery)
  • Now ensuring the page body is display:block when in fullscreen (#1995 @thewilkybarkid)
  • Added a static method in OpenSeadragon to get an existing viewer (#2000 @HerCerM)
  • Now ensuring that the new item is already in the navigator when the "add-item" event fires (#2005 @RammasEchor)
  • Added keys to change image in sequence mode (j: previous, k: next) (#2007 @RammasEchor)
  • Fixed a bug where the navigator wouldn't pick up opacity/composite changes made while it is loading (#2018 @crydell)
  • Explicitly set passive:false for wheel event handlers to suppress console warnings. Fixes #1669 (#2043 @msalsbery)
  • Viewer's canvas-click events now include an originalTarget property so you can know which element received the click (#2037 @iangilman)
  • Added method for getting the size of an image in window coordinates (#2049 @superbland)
  • Added a setMaxLevel function to TileSource so you can change its maxLevel if needed (#2059, #2066 @kim-sanghoon)

v2.4.2

05 Mar 18:19
Compare
Choose a tag to compare
  • Add support for IIIF Image API 3.0 beta (#1764)
  • You can now crop an image with arbitrary polygons (#1772)
  • Improved support for using the Reference Strip in an OpenSeadragon Viewer inside a Web Component (#1676)
  • Added setWidth and setHeight methods to Navigator (#1686)
  • Improvements to docs (#1696, #1698, #1716, #1719)
  • Now passing Viewer AJAX configs down to ReferenceStrip thumbnails (#1701)
  • The ReferenceStrip now honors the useCanvas option from the Viewer (#1742)
  • Fixed: Navigator was still resizing after you explicitly set its width and height with navigatorWidth and navigatorHeight (#1686)
  • Fixed issues with touches on iOS 13 and iPad (#1754, #1756)
  • No longer throwing an exception on pages that have malformed URL parameters (#1758)
  • Fixed an issue with flipping the viewport on high pixel density screens (#1779)
  • Removed use of deprecated imageSmoothingEnabled prefixes (#1740)

v2.4.1

03 Jul 22:00
Compare
Choose a tag to compare
  • You can now turn off the default canvas image smoothing, if you want sharp pixels when zoomed in past 100% (#1507, #1593, #1595, #1647, #1648)
  • Fixed problem with navigator highlight rectangle when returning from full screen with a custom navigator location (#1515)
  • Added option to set rotation increment for nav buttons and keyboard (#1524)
  • Fixed issue with flipping and opacity with multi-image (#1549)
  • Removed vestigial button group label element that was causing issues for accessibility tools (#1560)
  • Fixed a bug causing Viewer.areControlsEnabled to throw an exception (#1562)
  • Added tileFormat option to IIIFTileSource so you can specify the tile format (#1625)
  • Now using canonical URIs more consistently in IIIF to make caching and processing time easier on the server side (#1625)
  • Added support for IIIF's new preferredFormats property (#1656)

v2.4.0

20 Jul 16:46
Compare
Choose a tag to compare
  • BREAKING CHANGE: Viewer's canvas-double-click event is now fired before it initiates the zoom (#1288)
  • You can now flip the viewport to get a mirror image of the original (#1441)
  • You can now prevent canvas-double-click events from zooming on a per-event basis (#1288)
  • Fixed: Opacity 0 images were causing unnecessary redraws (#1319)
  • The "page" event is now fired after the page index has been updated (#1330)
  • Added option pixelsPerArrowPress that sets the speed of arrow keys (#1364)
  • Improved IIIF options.maxLevel calculation (#1401)
  • Added canvas-key events, along with the ability to cancel key actions (#1414)
  • Added optional zoom in the middle of the image instead of pointer position (#1423)
  • Now supporting square edge tiles that are padded rather than cropped (#1426)
  • Fixed an issue causing the simple image tileSource to sometimes show duplicate copies (#1370)
  • Fixed an issue causing seams to appear in semi-transparent PNG tiled images (#1470)
  • Added visual customization options for the navigator (#1480)
  • You can now prevent canvas-drag events on the navigator (#1484)
  • You can now prevent canvas-click events on the navigator (#1416)
  • The navigator can now be restricted to just horizontal or just vertical panning (#1416)
  • Fixed DziTileSource so it doesn't load levels above maxLevel or below minLevel, if set (#1492)

v2.3.1

19 Sep 16:57
Compare
Choose a tag to compare
  • 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

14 Jul 23:33
Compare
Choose a tag to compare
  • 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)