-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path8fdb3922f00c5527abec.worker.js.map
1 lines (1 loc) · 64 KB
/
8fdb3922f00c5527abec.worker.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/webworker-promise/lib/register.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/vtk.js/Sources/Rendering/Core/ImageMapper/Constants.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/gl-matrix/esm/common.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/gl-matrix/esm/vec3.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/vtk.js/Sources/Filters/General/PaintFilter/PaintFilter.worker.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/webworker-promise/lib/tiny-emitter.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_createClass","defineProperties","target","props","length","descriptor","configurable","writable","Constructor","protoProps","staticProps","_get","receiver","Function","desc","getOwnPropertyDescriptor","undefined","parent","getPrototypeOf","_typeof","iterator","obj","constructor","_toConsumableArray","arr","Array","isArray","arr2","from","_classCallCheck","instance","TypeError","TinyEmitter","MESSAGE_RESULT","MESSAGE_EVENT","RESULT_ERROR","RESULT_SUCCESS","DEFAULT_HANDLER","isPromise","then","catch","TransferableResponse","payload","transferable","this","fn","handlers","sendPostMessage","self","postMessage","server","_TinyEmitter","WorkerRegister","ReferenceError","_possibleConstructorReturn","__proto__","apply","arguments","subClass","superClass","setPrototypeOf","_inherits","eventName","_len","args","_key","_get2","_len2","_key2","concat","handler","run","messageId","handlerName","onSuccess","result","sendResult","onError","e","message","stack","runFn","Error","sendEvent","success","addEventListener","_ref","data","emitLocally","SlicingMode","NONE","I","J","K","X","Y","Z","EPSILON","ARRAY_TYPE","Float32Array","RANDOM","Math","random","PI","out","clone","a","x","y","z","hypot","fromValues","copy","set","add","b","subtract","multiply","divide","ceil","floor","min","max","round","scaleAndAdd","scale","distance","squaredDistance","squaredLength","negate","inverse","normalize","len","sqrt","dot","cross","ax","ay","az","bx","by","bz","lerp","hermite","factorTimes2","factor1","factor2","factor3","factor4","bezier","inverseFactor","inverseFactorTimesTwo","zScale","cos","sin","transformMat4","w","transformMat3","transformQuat","q","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","rotateX","rotateY","rotateZ","angle","tempA","tempB","cosine","acos","zero","str","exactEquals","a0","a1","a2","b0","b1","b2","abs","vec","sub","mul","div","dist","sqrDist","sqrLen","forEach","stride","offset","count","arg","globals","buffer","dimensions","prevPoint","slicingMode","handlePaintEllipse","center","scale3","yStride","zStride","zmin","zmax","dz","ymin","ymax","dy","xmin","xmax","index","fill","operation","bufferType","bufferSize","point","radius","delta","inc","step","thresh","pt","ii","point1","point2","x1","y1","z1","x2","y2","z2","xstart","xend","ystart","yend","zstart","zend","jStride","kStride","k","j","triangleList","triangleCount","point0","subarray","v1","v2","step1","numStep1","step2","numStep2","u","maxV","v","response","__listeners","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","err","return","_this","once","off","on","push","filter","h"],"mappings":"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","file":"8fdb3922f00c5527abec.worker.js","sourcesContent":[" \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 = 10);\n","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TinyEmitter = require('./tiny-emitter');\n\nvar MESSAGE_RESULT = 0;\nvar MESSAGE_EVENT = 1;\n\nvar RESULT_ERROR = 0;\nvar RESULT_SUCCESS = 1;\n\nvar DEFAULT_HANDLER = 'main';\n\nvar isPromise = function isPromise(o) {\n return (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object' && typeof o.then === 'function' && typeof o.catch === 'function';\n};\n\nfunction RegisterPromise(fn) {\n var handlers = _defineProperty({}, DEFAULT_HANDLER, fn);\n var sendPostMessage = self.postMessage.bind(self);\n\n var server = new (function (_TinyEmitter) {\n _inherits(WorkerRegister, _TinyEmitter);\n\n function WorkerRegister() {\n _classCallCheck(this, WorkerRegister);\n\n return _possibleConstructorReturn(this, (WorkerRegister.__proto__ || Object.getPrototypeOf(WorkerRegister)).apply(this, arguments));\n }\n\n _createClass(WorkerRegister, [{\n key: 'emit',\n value: function emit(eventName) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n sendPostMessage({ eventName: eventName, args: args });\n return this;\n }\n }, {\n key: 'emitLocally',\n value: function emitLocally(eventName) {\n var _get2;\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_get2 = _get(WorkerRegister.prototype.__proto__ || Object.getPrototypeOf(WorkerRegister.prototype), 'emit', this)).call.apply(_get2, [this, eventName].concat(args));\n }\n }, {\n key: 'operation',\n value: function operation(name, handler) {\n handlers[name] = handler;\n return this;\n }\n }]);\n\n return WorkerRegister;\n }(TinyEmitter))();\n\n var run = function run(messageId, payload, handlerName) {\n\n var onSuccess = function onSuccess(result) {\n if (result && result instanceof TransferableResponse) {\n sendResult(messageId, RESULT_SUCCESS, result.payload, result.transferable);\n } else {\n sendResult(messageId, RESULT_SUCCESS, result);\n }\n };\n\n var onError = function onError(e) {\n sendResult(messageId, RESULT_ERROR, {\n message: e.message,\n stack: e.stack\n });\n };\n\n try {\n var result = runFn(messageId, payload, handlerName);\n if (isPromise(result)) {\n result.then(onSuccess).catch(onError);\n } else {\n onSuccess(result);\n }\n } catch (e) {\n onError(e);\n }\n };\n\n var runFn = function runFn(messageId, payload, handlerName) {\n var handler = handlers[handlerName || DEFAULT_HANDLER];\n if (!handler) throw new Error('Not found handler for this request');\n\n return handler(payload, sendEvent.bind(null, messageId));\n };\n\n var sendResult = function sendResult(messageId, success, payload) {\n var transferable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n sendPostMessage([MESSAGE_RESULT, messageId, success, payload], transferable);\n };\n\n var sendEvent = function sendEvent(messageId, eventName, payload) {\n if (!eventName) throw new Error('eventName is required');\n\n if (typeof eventName !== 'string') throw new Error('eventName should be string');\n\n sendPostMessage([MESSAGE_EVENT, messageId, eventName, payload]);\n };\n\n self.addEventListener('message', function (_ref) {\n var data = _ref.data;\n\n if (Array.isArray(data)) {\n run.apply(undefined, _toConsumableArray(data));\n } else if (data && data.eventName) {\n server.emitLocally.apply(server, [data.eventName].concat(_toConsumableArray(data.args)));\n }\n });\n\n return server;\n}\n\nvar TransferableResponse = function TransferableResponse(payload, transferable) {\n _classCallCheck(this, TransferableResponse);\n\n this.payload = payload;\n this.transferable = transferable;\n};\n\nmodule.exports = RegisterPromise;\nmodule.exports.TransferableResponse = TransferableResponse;","export const SlicingMode = {\n NONE: -1,\n I: 0,\n J: 1,\n K: 2,\n X: 3,\n Y: 4,\n Z: 5,\n};\n\nexport default {\n SlicingMode,\n};\n","/**\r\n * Common utilities\r\n * @module glMatrix\r\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\r\n * Sets the type of array used when creating new vectors and matrices\r\n *\r\n * @param {Type} type Array type, such as Float32Array or Array\r\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\r\n * Convert Degree To Radian\r\n *\r\n * @param {Number} a Angle in Degrees\r\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\r\n * Tests whether or not the arguments have approximately the same value, within an absolute\r\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\r\n * than or equal to 1.0, and a relative tolerance is used for larger values)\r\n *\r\n * @param {Number} a The first number to test.\r\n * @param {Number} b The second number to test.\r\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {vec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {vec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the first operand\r\n * @param {vec3} b the second operand\r\n * @param {vec3} c the third operand\r\n * @param {vec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {mat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {vec3} a the vector to transform\r\n * @param {quat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, c) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(c) - p[2] * Math.sin(c);\n r[2] = p[1] * Math.sin(c) + p[2] * Math.cos(c); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, c) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(c) + p[0] * Math.cos(c);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(c) - p[0] * Math.sin(c); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {vec3} a The vec3 point to rotate\r\n * @param {vec3} b The origin of the rotation\r\n * @param {Number} c The angle of rotation\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, c) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(c) - p[1] * Math.sin(c);\n r[1] = p[0] * Math.sin(c) + p[1] * Math.cos(c);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {vec3} a The first operand\r\n * @param {vec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var tempA = fromValues(a[0], a[1], a[2]);\n var tempB = fromValues(b[0], b[1], b[2]);\n normalize(tempA, tempA);\n normalize(tempB, tempB);\n var cosine = dot(tempA, tempB);\n\n if (cosine > 1.0) {\n return 0;\n } else if (cosine < -1.0) {\n return Math.PI;\n } else {\n return Math.acos(cosine);\n }\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {vec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')';\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {vec3} a The first vector.\r\n * @param {vec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import registerWebworker from 'webworker-promise/lib/register';\n\nimport { SlicingMode } from 'vtk.js/Sources/Rendering/Core/ImageMapper/Constants';\nimport { vec3 } from 'gl-matrix';\n\nconst globals = {\n // single-component labelmap\n buffer: null,\n dimensions: [0, 0, 0],\n prevPoint: null,\n slicingMode: null,\n};\n\n// --------------------------------------------------------------------------\n\nfunction handlePaintRectangle({ point1, point2 }) {\n const [x1, y1, z1] = point1;\n const [x2, y2, z2] = point2;\n\n const xstart = Math.max(Math.min(x1, x2), 0);\n const xend = Math.min(Math.max(x1, x2), globals.dimensions[0] - 1);\n if (xstart <= xend) {\n const ystart = Math.max(Math.min(y1, y2), 0);\n const yend = Math.min(Math.max(y1, y2), globals.dimensions[1] - 1);\n const zstart = Math.max(Math.min(z1, z2), 0);\n const zend = Math.min(Math.max(z1, z2), globals.dimensions[2] - 1);\n\n const jStride = globals.dimensions[0];\n const kStride = globals.dimensions[0] * globals.dimensions[1];\n\n for (let k = zstart; k <= zend; k++) {\n for (let j = ystart; j <= yend; j++) {\n const index = j * jStride + k * kStride;\n globals.buffer.fill(1, index + xstart, index + xend + 1);\n }\n }\n }\n}\n\n// --------------------------------------------------------------------------\n\nfunction handlePaintEllipse({ center, scale3 }) {\n const yStride = globals.dimensions[0];\n const zStride = globals.dimensions[0] * globals.dimensions[1];\n\n const zmin = Math.round(Math.max(center[2] - scale3[2], 0));\n const zmax = Math.round(\n Math.min(center[2] + scale3[2], globals.dimensions[2] - 1)\n );\n\n for (let z = zmin; z <= zmax; z++) {\n const dz = (center[2] - z) / scale3[2];\n const ay = scale3[1] * Math.sqrt(1 - dz * dz);\n\n const ymin = Math.round(Math.max(center[1] - ay, 0));\n const ymax = Math.round(\n Math.min(center[1] + ay, globals.dimensions[1] - 1)\n );\n\n for (let y = ymin; y <= ymax; y++) {\n const dy = (center[1] - y) / scale3[1];\n const ax = scale3[0] * Math.sqrt(1 - dy * dy - dz * dz);\n\n const xmin = Math.round(Math.max(center[0] - ax, 0));\n const xmax = Math.round(\n Math.min(center[0] + ax, globals.dimensions[0] - 1)\n );\n if (xmin <= xmax) {\n const index = y * yStride + z * zStride;\n globals.buffer.fill(1, index + xmin, index + xmax + 1);\n }\n }\n }\n}\n\n// --------------------------------------------------------------------------\n\nfunction handlePaint({ point, radius }) {\n if (!globals.prevPoint) {\n globals.prevPoint = point;\n }\n\n if (\n globals.slicingMode === SlicingMode.X ||\n globals.slicingMode === SlicingMode.I\n ) {\n radius[0] = 0.25;\n } else if (\n globals.slicingMode === SlicingMode.Y ||\n globals.slicingMode === SlicingMode.J\n ) {\n radius[1] = 0.25;\n } else if (\n globals.slicingMode === SlicingMode.Z ||\n globals.slicingMode === SlicingMode.K\n ) {\n radius[2] = 0.25;\n }\n\n // DDA params\n const delta = [\n point[0] - globals.prevPoint[0],\n point[1] - globals.prevPoint[1],\n point[2] - globals.prevPoint[2],\n ];\n const inc = [1, 1, 1];\n for (let i = 0; i < 3; i++) {\n if (delta[i] < 0) {\n delta[i] = -delta[i];\n inc[i] = -1;\n }\n }\n const step = Math.max(...delta);\n\n // DDA\n const thresh = [step, step, step];\n const pt = [...globals.prevPoint];\n for (let s = 0; s <= step; s++) {\n handlePaintEllipse({ center: pt, scale3: radius });\n\n for (let ii = 0; ii < 3; ii++) {\n thresh[ii] -= delta[ii];\n if (thresh[ii] <= 0) {\n thresh[ii] += step;\n pt[ii] += inc[ii];\n }\n }\n }\n\n globals.prevPoint = point;\n}\n\n// --------------------------------------------------------------------------\n\nfunction handlePaintTriangles({ triangleList }) {\n // debugger;\n\n const triangleCount = Math.floor(triangleList.length / 9);\n\n for (let i = 0; i < triangleCount; i++) {\n const point0 = triangleList.subarray(9 * i + 0, 9 * i + 3);\n const point1 = triangleList.subarray(9 * i + 3, 9 * i + 6);\n const point2 = triangleList.subarray(9 * i + 6, 9 * i + 9);\n\n const v1 = [0, 0, 0];\n const v2 = [0, 0, 0];\n\n vec3.subtract(v1, point1, point0);\n vec3.subtract(v2, point2, point0);\n\n const step1 = [0, 0, 0];\n const numStep1 =\n 2 * Math.max(Math.abs(v1[0]), Math.abs(v1[1]), Math.abs(v1[2]));\n vec3.scale(step1, v1, 1 / numStep1);\n\n const step2 = [0, 0, 0];\n const numStep2 =\n 2 * Math.max(Math.abs(v2[0]), Math.abs(v2[1]), Math.abs(v2[2]));\n vec3.scale(step2, v2, 1 / numStep2);\n\n const jStride = globals.dimensions[0];\n const kStride = globals.dimensions[0] * globals.dimensions[1];\n\n for (let u = 0; u <= numStep1 + 1; u++) {\n const maxV = numStep2 - u * (numStep2 / numStep1);\n for (let v = 0; v <= maxV + 1; v++) {\n const point = [...point0];\n vec3.scaleAndAdd(point, point, step1, u);\n vec3.scaleAndAdd(point, point, step2, v);\n\n point[0] = Math.floor(point[0]);\n point[1] = Math.floor(point[1]);\n point[2] = Math.floor(point[2]);\n\n if (\n point[0] >= 0 &&\n point[0] < globals.dimensions[0] &&\n point[1] >= 0 &&\n point[1] < globals.dimensions[1] &&\n point[2] >= 0 &&\n point[2] < globals.dimensions[2]\n ) {\n globals.buffer[\n point[0] + jStride * point[1] + kStride * point[2]\n ] = 1;\n }\n }\n }\n }\n}\n\n// --------------------------------------------------------------------------\n\nregisterWebworker()\n .operation('start', ({ bufferType, dimensions, slicingMode }) => {\n if (!globals.buffer) {\n const bufferSize = dimensions[0] * dimensions[1] * dimensions[2];\n /* eslint-disable-next-line */\n globals.buffer = new self[bufferType](bufferSize);\n globals.dimensions = dimensions;\n globals.prevPoint = null;\n globals.slicingMode = slicingMode;\n }\n })\n .operation('paint', handlePaint)\n .operation('paintRectangle', handlePaintRectangle)\n .operation('paintEllipse', handlePaintEllipse)\n .operation('paintTriangles', handlePaintTriangles)\n .operation('end', () => {\n const response = new registerWebworker.TransferableResponse(\n globals.buffer.buffer,\n [globals.buffer.buffer]\n );\n globals.buffer = null;\n return response;\n });\n","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TinyEmitter = function () {\n function TinyEmitter() {\n _classCallCheck(this, TinyEmitter);\n\n Object.defineProperty(this, '__listeners', {\n value: {},\n enumerable: false,\n writable: false\n });\n }\n\n _createClass(TinyEmitter, [{\n key: 'emit',\n value: function emit(eventName) {\n if (!this.__listeners[eventName]) return this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.__listeners[eventName][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n handler.apply(undefined, args);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return this;\n }\n }, {\n key: 'once',\n value: function once(eventName, handler) {\n var _this = this;\n\n var once = function once() {\n _this.off(eventName, once);\n handler.apply(undefined, arguments);\n };\n\n return this.on(eventName, once);\n }\n }, {\n key: 'on',\n value: function on(eventName, handler) {\n if (!this.__listeners[eventName]) this.__listeners[eventName] = [];\n\n this.__listeners[eventName].push(handler);\n\n return this;\n }\n }, {\n key: 'off',\n value: function off(eventName, handler) {\n if (handler) this.__listeners[eventName] = this.__listeners[eventName].filter(function (h) {\n return h !== handler;\n });else this.__listeners[eventName] = [];\n\n return this;\n }\n }]);\n\n return TinyEmitter;\n}();\n\nmodule.exports = TinyEmitter;"],"sourceRoot":""}