(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("openseadragon"));
else if(typeof define === 'function' && define.amd)
define(["openseadragon"], factory);
else if(typeof exports === 'object')
exports["openseadragon-viewerinputhook"] = factory(require("openseadragon"));
else
root["openseadragon-viewerinputhook"] = factory(root["openseadragon"]);
})(window, function(__WEBPACK_EXTERNAL_MODULE_openseadragon__) {
return (function(modules) {
var installedModules = {};
function __webpack_require__(moduleId) {
if(installedModules[moduleId]) {
return installedModules[moduleId].exports;
}
var module = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {}
};
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
module.l = true;
return module.exports;
}
__webpack_require__.m = modules;
__webpack_require__.c = installedModules;
__webpack_require__.d = function(exports, name, getter) {
if(!__webpack_require__.o(exports, name)) {
Object.defineProperty(exports, name, { enumerable: true, get: getter });
}
};
__webpack_require__.r = function(exports) {
if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(exports, '__esModule', { value: true });
};
__webpack_require__.t = function(value, mode) {
if(mode & 1) value = __webpack_require__(value);
if(mode & 8) return value;
if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
var ns = Object.create(null);
__webpack_require__.r(ns);
Object.defineProperty(ns, 'default', { enumerable: true, value: value });
if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
return ns;
};
__webpack_require__.n = function(module) {
var getter = module && module.__esModule ?
function getDefault() { return module['default']; } :
function getModuleExports() { return module; };
__webpack_require__.d(getter, 'a', getter);
return getter;
};
__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
__webpack_require__.p = "";
return __webpack_require__(__webpack_require__.s = "./src/viewerinputhook.js");
})
({
"./src/viewerinputhook.js":
(function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
var openseadragon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( "openseadragon");
var openseadragon__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(openseadragon__WEBPACK_IMPORTED_MODULE_0__);
__webpack_exports__["default"] = ((function (OSD, $) {
if (!OSD.version || OSD.version.major < 1) {
throw new Error('OpenSeadragonViewerInputHook requires OpenSeadragon version 1.0.0+');
}
OSD.Viewer.prototype.addViewerInputHook = function (options) {
options = options || {};
options.viewer = this;
return new $.ViewerInputHook(options);
};
$.ViewerInputHook = function (options) {
var curHook, curTracker;
options = options || {};
options.hooks = options.hooks || [];
this.viewer = options.viewer || null;
this.viewerTrackers = {};
this.hooks = [];
if (this.viewer) {
this.viewerTrackers.viewer = this.viewer.innerTracker;
this.viewerTrackers.viewer_outer = this.viewer.outerTracker;
}
for (curHook = 0; curHook < options.hooks.length; curHook++) {
if (typeof options.hooks[curHook].tracker === 'string') {
if (!this.viewer) {
throw new Error('A viewer must be specified.');
}
curTracker = this.viewerTrackers[options.hooks[curHook].tracker];
if (curTracker === undefined) {
throw new Error('Unknown tracker specified: ' + options.hooks[curHook].tracker);
}
} else {
curTracker = options.hooks[curHook].tracker;
}
this.hooks.push({
tracker: curTracker,
handlerName: options.hooks[curHook].handler,
origHandler: curTracker[options.hooks[curHook].handler],
hookHandler: options.hooks[curHook].hookHandler
});
(function (_this, tracker, handler, hookHandler) {
var origHandler = tracker[handler];
tracker[handler] = function (event) {
return _this._callHandlers(hookHandler, origHandler, event);
};
})(this, curTracker, options.hooks[curHook].handler, options.hooks[curHook].hookHandler);
}
};
$.ViewerInputHook.version = {
"versionStr": "2.2.1",
"major": 2,
"minor": 2,
"revision": 1
};
$.ViewerInputHook.prototype._callHandlers = function (hookHandler, origHandler, event) {
var ret = hookHandler(event);
if (origHandler && !event.stopHandlers) {
ret = origHandler(event);
}
return event.stopBubbling ? false : ret;
};
$.ViewerInputHook.prototype.destroy = function () {
while (this.hooks.length > 0) {
var curHook = this.hooks.pop();
curHook.tracker[curHook.handlerName] = curHook.origHandler;
}
if (this.viewer) {
delete this.viewerTrackers.viewer;
delete this.viewerTrackers.viewer_outer;
this.viewer = null;
}
};
return $.ViewerInputHook;
})(openseadragon__WEBPACK_IMPORTED_MODULE_0___default.a || window.OpenSeadragon, window.OpenSeadragonImaging = window.OpenSeadragonImaging || {}));
}),
"openseadragon":
(function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_openseadragon__;
})
})["default"];
});