{"version":3,"sources":["webpack://openseadragon-viewerinputhook/webpack/universalModuleDefinition","webpack://openseadragon-viewerinputhook/webpack/bootstrap","webpack://openseadragon-viewerinputhook/external \"openseadragon\"","webpack://openseadragon-viewerinputhook/./src/viewerinputhook.js"],"names":["OSD","options","$","this","viewer","viewerTrackers","hooks","viewer_outer","curHook","curTracker","push","handlerName","origHandler","hookHandler","tracker","_this","ret","event","OpenSeadragon","window"],"mappings":";CAAA,cACA,kDACA,2CACA,sCACA,4BACA,yBACA,qEAEA,sDARA,CASC,oBACD,O,YCNA,cAGA,QACA,oBAGA,YACA,IACA,KACA,YAUA,OANC,EAAD,iCAGA,OAGA,UAvBA,SAiFA,OArDC,EAAD,IAGA,MAGA,oBACA,UACA,2BAA0C,uBAK1C,gBACA,gDACA,4CAAwD,iBAExD,sCAAiD,YAQjD,kBAEA,GADA,cACA,aACA,qDACA,0BAGA,GAFA,OACA,mCAAyC,wBACzC,2DAAgH,aAAqB,UAArI,IACA,UAIA,gBACA,sBACA,WAA2B,kBAC3B,WAAiC,UAEjC,OADC,EAAD,WACA,GAIA,kBAAsD,kDAGtD,OAIA,S,cClFA,a,6BAAA,O,IAAA,gBCgBe,UAAC,cACf,IAAKA,EAAD,SAAJ,EAAoBA,gBACnB,MAAM,UAAN,sEAgID,OAjHAA,sCAA0C,YAGzC,OAFAC,EAAUA,GAAVA,IACAA,YACO,IAAIC,EAAX,gBAAO,IAcRA,kBAAoB,YACnB,IAAI,EAAJ,EAcA,KAZAD,EAAUA,GAAVA,IACAA,MAAgBA,SAAhBA,GAEAE,KAAKC,OAASH,UAAd,KACAE,KAAKE,eAAL,GACAF,KAAKG,MAAL,GAEIH,KAAJ,SACCA,KAAKE,eAAeD,OAASD,KAAKC,OAAlC,aACAD,KAAKE,eAAeE,aAAeJ,KAAKC,OAAxC,cAGII,EAAL,EAAkBA,EAAUP,QAA5B,WAA6D,CAC5D,oBAAWA,WAAP,QAAoD,CACvD,IAAKE,KAAL,OACC,MAAM,UAAN,+BAKD,aAHAM,EAAaN,KAAKE,eACjBJ,WADDQ,UAIC,MAAM,UACL,8BACCR,WAFF,cAMDQ,EAAaR,WAAbQ,QAGDN,KAAKG,MAAMI,KAAK,CAAC,QAAD,EAEfC,YAAaV,WAFE,QAGfW,YAAaH,EAAWR,WAHT,SAIfY,YAAaZ,WAAuBY,cAGpC,kBACA,IAAID,EAAJ,KACAE,KAAmB,YAClB,OAAOC,EAAP,cAAOA,QAHR,CAAD,OAQCd,WARD,QASCA,WATD,eAuBFC,0BAA4B,CAAC,WAAD,QAAsB,MAAtB,EAAgC,MAAhC,EAA0C,SAAW,GAEjFA,0CAA4C,gBAK3C,IAAIc,EAAJ,KAIA,OAHIJ,IAAgBK,EAApB,eACCD,SAEMC,EAAP,iBASDf,oCAAsC,WAAa,KAClD,EAAOC,KAAA,cAAuB,CAC7B,IAAIK,EAAUL,KAAKG,MAAnB,MACAE,UAAgBA,EAAhBA,aAAuCA,EAAvCA,YAGGL,KAAJ,gBACQA,KAAA,eAAP,cACOA,KAAA,eAAP,aACAA,KAAKC,OAAL,OAIKF,EAAP,gBAlIe,CAoIfgB,KAAiBC,OApIH,cAqIbA,OAAOA,qBAAuBA,OAAOA,sBArIvC,O","file":"openseadragon-viewerinputhook.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"openseadragon\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"openseadragon\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openseadragon-viewerinputhook\"] = factory(require(\"openseadragon\"));\n\telse\n\t\troot[\"openseadragon-viewerinputhook\"] = factory(root[\"openseadragon\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import OpenSeadragon from 'openseadragon';\n\n/**\n * @file openseadragon-viewerinputhook.js\n * @version 2.2.1\n * @author Mark Salsbery \n *\n */\n\n/**\n * @module openseadragon-viewerinputhook\n * @version 2.2.1\n * @requires module:openseadragon\n *\n */\n\nexport default (function (OSD, $) {\n\tif (!OSD.version || OSD.version.major < 1) {\n\t\tthrow new Error(\n\t\t\t'OpenSeadragonViewerInputHook requires OpenSeadragon version 1.0.0+'\n\t\t);\n\t}\n\n\t/**\n\t * Creates a new ViewerInputHook attached to the viewer.\n\t *\n\t * @method addViewerInputHook\n\t * @memberof external:\"OpenSeadragon.Viewer\"#\n\t * @param {Object} options\n\t * @param {Object[]} [options.hooks]\n\t * @returns {OpenSeadragonImaging.ViewerInputHook}\n\t *\n\t **/\n\tOSD.Viewer.prototype.addViewerInputHook = function (options) {\n\t\toptions = options || {};\n\t\toptions.viewer = this;\n\t\treturn new $.ViewerInputHook(options);\n\t};\n\n\t/**\n\t * Creates a new ViewerInputHook attached (optionally) to the viewer instance passed in the options parameter.\n\t *\n\t * @class ViewerInputHook\n\t * @classdesc Provides hooks into the OpenSeadragon viewer event pipeline.\n\t * @memberof OpenSeadragonImaging\n\t * @param {Object} options\n\t * @param {external:\"OpenSeadragon.Viewer\"} [options.viewer] - Reference to OpenSeadragon viewer to attach to.\n\t * @param {Object[]} options.hooks\n\t *\n\t **/\n\t$.ViewerInputHook = function (options) {\n\t\tvar curHook, curTracker;\n\n\t\toptions = options || {};\n\t\toptions.hooks = options.hooks || [];\n\n\t\tthis.viewer = options.viewer || null;\n\t\tthis.viewerTrackers = {};\n\t\tthis.hooks = [];\n\n\t\tif (this.viewer) {\n\t\t\tthis.viewerTrackers.viewer = this.viewer.innerTracker;\n\t\t\tthis.viewerTrackers.viewer_outer = this.viewer.outerTracker;\n\t\t}\n\n\t\tfor (curHook = 0; curHook < options.hooks.length; curHook++) {\n\t\t\tif (typeof options.hooks[curHook].tracker === 'string') {\n\t\t\t\tif (!this.viewer) {\n\t\t\t\t\tthrow new Error('A viewer must be specified.');\n\t\t\t\t}\n\t\t\t\tcurTracker = this.viewerTrackers[\n\t\t\t\t\toptions.hooks[curHook].tracker\n\t\t\t\t];\n\t\t\t\tif (curTracker === undefined) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Unknown tracker specified: ' +\n\t\t\t\t\t\t\toptions.hooks[curHook].tracker\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurTracker = options.hooks[curHook].tracker;\n\t\t\t}\n\n\t\t\tthis.hooks.push({\n\t\t\t\ttracker: curTracker,\n\t\t\t\thandlerName: options.hooks[curHook].handler,\n\t\t\t\torigHandler: curTracker[options.hooks[curHook].handler],\n\t\t\t\thookHandler: options.hooks[curHook].hookHandler\n\t\t\t});\n\n\t\t\t(function (_this, tracker, handler, hookHandler) {\n\t\t\t\tvar origHandler = tracker[handler];\n\t\t\t\ttracker[handler] = function (event) {\n\t\t\t\t\treturn _this._callHandlers(hookHandler, origHandler, event);\n\t\t\t\t};\n\t\t\t})(\n\t\t\t\tthis,\n\t\t\t\tcurTracker,\n\t\t\t\toptions.hooks[curHook].handler,\n\t\t\t\toptions.hooks[curHook].hookHandler\n\t\t\t);\n\t\t}\n\t};\n\n\t/**\n\t * ViewerInputHook version.\n\t * @member {Object} OpenSeadragonImaging.ViewerInputHook.version\n\t * @static\n\t * @property {String} versionStr - The version number as a string ('major.minor.revision').\n\t * @property {Number} major - The major version number.\n\t * @property {Number} minor - The minor version number.\n\t * @property {Number} revision - The revision number.\n\t */\n\t$.ViewerInputHook.version = {\"versionStr\":\"2.2.1\",\"major\":2,\"minor\":2,\"revision\":1};\n\n\t$.ViewerInputHook.prototype._callHandlers = function (\n\t\thookHandler,\n\t\torigHandler,\n\t\tevent\n\t) {\n\t\tvar ret = hookHandler(event);\n\t\tif (origHandler && !event.stopHandlers) {\n\t\t\tret = origHandler(event);\n\t\t}\n\t\treturn event.stopBubbling ? false : ret;\n\t};\n\n\t/**\n\t * Remove hooks and OpenSeadragon references. Call before\n\t * OpenSeadragon.Viewer.destroy().\n\t * @function OpenSeadragonImaging.ViewerInputHook.prototype#destroy\n\t * @since 2.2.0\n\t */\n\t$.ViewerInputHook.prototype.destroy = function () {\n\t\twhile (this.hooks.length > 0) {\n\t\t\tlet curHook = this.hooks.pop();\n\t\t\tcurHook.tracker[curHook.handlerName] = curHook.origHandler;\n\t\t}\n\n\t\tif (this.viewer) {\n\t\t\tdelete this.viewerTrackers.viewer;\n\t\t\tdelete this.viewerTrackers.viewer_outer;\n\t\t\tthis.viewer = null;\n\t\t}\n\t};\n\n\treturn $.ViewerInputHook;\n})(\n\tOpenSeadragon || window.OpenSeadragon,\n\t(window.OpenSeadragonImaging = window.OpenSeadragonImaging || {})\n);\n"],"sourceRoot":""}