UNPKG

x_ite

Version:

X_ITE X3D Browser, view and manipulate X3D, VRML, glTF and other 3D sources in HTML.

1,356 lines (1,274 loc) 1.74 MB
/* X_ITE v12.0.4 */ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-12.0.4")]; /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 13: /***/ (() => { /* (ignored) */ /***/ }), /***/ 254: /***/ ((module) => { "use strict"; module.exports = __X_ITE_X3D__ .jquery; /***/ }), /***/ 260: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { /*! dicom-parser - 1.8.12 - 2023-02-20 | (c) 2017 Chris Hafey | https://github.com/cornerstonejs/dicomParser */ (function webpackUniversalModuleDefinition(root, factory) { if(true) module.exports = factory(__webpack_require__(559)); else // removed by dead control flow {} })(this, function(__WEBPACK_EXTERNAL_MODULE_zlib__) { return /******/ (function(modules) { // webpackBootstrap /******/ function hotDisposeChunk(chunkId) { /******/ delete installedChunks[chunkId]; /******/ } /******/ var parentHotUpdateCallback = this["webpackHotUpdate"]; /******/ this["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars /******/ function webpackHotUpdateCallback(chunkId, moreModules) { /******/ hotAddUpdateChunk(chunkId, moreModules); /******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); /******/ } ; /******/ /******/ // eslint-disable-next-line no-unused-vars /******/ function hotDownloadUpdateChunk(chunkId) { /******/ var script = document.createElement("script"); /******/ script.charset = "utf-8"; /******/ script.src = __nested_webpack_require_28391__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js"; /******/ if (false) // removed by dead control flow {} /******/ document.head.appendChild(script); /******/ } /******/ /******/ // eslint-disable-next-line no-unused-vars /******/ function hotDownloadManifest(requestTimeout) { /******/ requestTimeout = requestTimeout || 10000; /******/ return new Promise(function(resolve, reject) { /******/ if (typeof XMLHttpRequest === "undefined") { /******/ return reject(new Error("No browser support")); /******/ } /******/ try { /******/ var request = new XMLHttpRequest(); /******/ var requestPath = __nested_webpack_require_28391__.p + "" + hotCurrentHash + ".hot-update.json"; /******/ request.open("GET", requestPath, true); /******/ request.timeout = requestTimeout; /******/ request.send(null); /******/ } catch (err) { /******/ return reject(err); /******/ } /******/ request.onreadystatechange = function() { /******/ if (request.readyState !== 4) return; /******/ if (request.status === 0) { /******/ // timeout /******/ reject( /******/ new Error("Manifest request to " + requestPath + " timed out.") /******/ ); /******/ } else if (request.status === 404) { /******/ // no update available /******/ resolve(); /******/ } else if (request.status !== 200 && request.status !== 304) { /******/ // other failure /******/ reject(new Error("Manifest request to " + requestPath + " failed.")); /******/ } else { /******/ // success /******/ try { /******/ var update = JSON.parse(request.responseText); /******/ } catch (e) { /******/ reject(e); /******/ return; /******/ } /******/ resolve(update); /******/ } /******/ }; /******/ }); /******/ } /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars /******/ var hotCurrentHash = "1c62e16b6d24be6b7eef"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; /******/ // eslint-disable-next-line no-unused-vars /******/ var hotCurrentParents = []; /******/ // eslint-disable-next-line no-unused-vars /******/ var hotCurrentParentsTemp = []; /******/ /******/ // eslint-disable-next-line no-unused-vars /******/ function hotCreateRequire(moduleId) { /******/ var me = installedModules[moduleId]; /******/ if (!me) return __nested_webpack_require_28391__; /******/ var fn = function(request) { /******/ if (me.hot.active) { /******/ if (installedModules[request]) { /******/ if (installedModules[request].parents.indexOf(moduleId) === -1) { /******/ installedModules[request].parents.push(moduleId); /******/ } /******/ } else { /******/ hotCurrentParents = [moduleId]; /******/ hotCurrentChildModule = request; /******/ } /******/ if (me.children.indexOf(request) === -1) { /******/ me.children.push(request); /******/ } /******/ } else { /******/ console.warn( /******/ "[HMR] unexpected require(" + /******/ request + /******/ ") from disposed module " + /******/ moduleId /******/ ); /******/ hotCurrentParents = []; /******/ } /******/ return __nested_webpack_require_28391__(request); /******/ }; /******/ var ObjectFactory = function ObjectFactory(name) { /******/ return { /******/ configurable: true, /******/ enumerable: true, /******/ get: function() { /******/ return __nested_webpack_require_28391__[name]; /******/ }, /******/ set: function(value) { /******/ __nested_webpack_require_28391__[name] = value; /******/ } /******/ }; /******/ }; /******/ for (var name in __nested_webpack_require_28391__) { /******/ if ( /******/ Object.prototype.hasOwnProperty.call(__nested_webpack_require_28391__, name) && /******/ name !== "e" && /******/ name !== "t" /******/ ) { /******/ Object.defineProperty(fn, name, ObjectFactory(name)); /******/ } /******/ } /******/ fn.e = function(chunkId) { /******/ if (hotStatus === "ready") hotSetStatus("prepare"); /******/ hotChunksLoading++; /******/ return __nested_webpack_require_28391__.e(chunkId).then(finishChunkLoading, function(err) { /******/ finishChunkLoading(); /******/ throw err; /******/ }); /******/ /******/ function finishChunkLoading() { /******/ hotChunksLoading--; /******/ if (hotStatus === "prepare") { /******/ if (!hotWaitingFilesMap[chunkId]) { /******/ hotEnsureUpdateChunk(chunkId); /******/ } /******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) { /******/ hotUpdateDownloaded(); /******/ } /******/ } /******/ } /******/ }; /******/ fn.t = function(value, mode) { /******/ if (mode & 1) value = fn(value); /******/ return __nested_webpack_require_28391__.t(value, mode & ~1); /******/ }; /******/ return fn; /******/ } /******/ /******/ // eslint-disable-next-line no-unused-vars /******/ function hotCreateModule(moduleId) { /******/ var hot = { /******/ // private stuff /******/ _acceptedDependencies: {}, /******/ _declinedDependencies: {}, /******/ _selfAccepted: false, /******/ _selfDeclined: false, /******/ _selfInvalidated: false, /******/ _disposeHandlers: [], /******/ _main: hotCurrentChildModule !== moduleId, /******/ /******/ // Module API /******/ active: true, /******/ accept: function(dep, callback) { /******/ if (dep === undefined) hot._selfAccepted = true; /******/ else if (typeof dep === "function") hot._selfAccepted = dep; /******/ else if (typeof dep === "object") /******/ for (var i = 0; i < dep.length; i++) /******/ hot._acceptedDependencies[dep[i]] = callback || function() {}; /******/ else hot._acceptedDependencies[dep] = callback || function() {}; /******/ }, /******/ decline: function(dep) { /******/ if (dep === undefined) hot._selfDeclined = true; /******/ else if (typeof dep === "object") /******/ for (var i = 0; i < dep.length; i++) /******/ hot._declinedDependencies[dep[i]] = true; /******/ else hot._declinedDependencies[dep] = true; /******/ }, /******/ dispose: function(callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ addDisposeHandler: function(callback) { /******/ hot._disposeHandlers.push(callback); /******/ }, /******/ removeDisposeHandler: function(callback) { /******/ var idx = hot._disposeHandlers.indexOf(callback); /******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); /******/ }, /******/ invalidate: function() { /******/ this._selfInvalidated = true; /******/ switch (hotStatus) { /******/ case "idle": /******/ hotUpdate = {}; /******/ hotUpdate[moduleId] = modules[moduleId]; /******/ hotSetStatus("ready"); /******/ break; /******/ case "ready": /******/ hotApplyInvalidatedModule(moduleId); /******/ break; /******/ case "prepare": /******/ case "check": /******/ case "dispose": /******/ case "apply": /******/ (hotQueuedInvalidatedModules = /******/ hotQueuedInvalidatedModules || []).push(moduleId); /******/ break; /******/ default: /******/ // ignore requests in error states /******/ break; /******/ } /******/ }, /******/ /******/ // Management API /******/ check: hotCheck, /******/ apply: hotApply, /******/ status: function(l) { /******/ if (!l) return hotStatus; /******/ hotStatusHandlers.push(l); /******/ }, /******/ addStatusHandler: function(l) { /******/ hotStatusHandlers.push(l); /******/ }, /******/ removeStatusHandler: function(l) { /******/ var idx = hotStatusHandlers.indexOf(l); /******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1); /******/ }, /******/ /******/ //inherit from previous dispose call /******/ data: hotCurrentModuleData[moduleId] /******/ }; /******/ hotCurrentChildModule = undefined; /******/ return hot; /******/ } /******/ /******/ var hotStatusHandlers = []; /******/ var hotStatus = "idle"; /******/ /******/ function hotSetStatus(newStatus) { /******/ hotStatus = newStatus; /******/ for (var i = 0; i < hotStatusHandlers.length; i++) /******/ hotStatusHandlers[i].call(null, newStatus); /******/ } /******/ /******/ // while downloading /******/ var hotWaitingFiles = 0; /******/ var hotChunksLoading = 0; /******/ var hotWaitingFilesMap = {}; /******/ var hotRequestedFilesMap = {}; /******/ var hotAvailableFilesMap = {}; /******/ var hotDeferred; /******/ /******/ // The update info /******/ var hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules; /******/ /******/ function toModuleId(id) { /******/ var isNumber = +id + "" === id; /******/ return isNumber ? +id : id; /******/ } /******/ /******/ function hotCheck(apply) { /******/ if (hotStatus !== "idle") { /******/ throw new Error("check() is only allowed in idle status"); /******/ } /******/ hotApplyOnUpdate = apply; /******/ hotSetStatus("check"); /******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) { /******/ if (!update) { /******/ hotSetStatus(hotApplyInvalidatedModules() ? "ready" : "idle"); /******/ return null; /******/ } /******/ hotRequestedFilesMap = {}; /******/ hotWaitingFilesMap = {}; /******/ hotAvailableFilesMap = update.c; /******/ hotUpdateNewHash = update.h; /******/ /******/ hotSetStatus("prepare"); /******/ var promise = new Promise(function(resolve, reject) { /******/ hotDeferred = { /******/ resolve: resolve, /******/ reject: reject /******/ }; /******/ }); /******/ hotUpdate = {}; /******/ var chunkId = "dicomParser"; /******/ // eslint-disable-next-line no-lone-blocks /******/ { /******/ hotEnsureUpdateChunk(chunkId); /******/ } /******/ if ( /******/ hotStatus === "prepare" && /******/ hotChunksLoading === 0 && /******/ hotWaitingFiles === 0 /******/ ) { /******/ hotUpdateDownloaded(); /******/ } /******/ return promise; /******/ }); /******/ } /******/ /******/ // eslint-disable-next-line no-unused-vars /******/ function hotAddUpdateChunk(chunkId, moreModules) { /******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) /******/ return; /******/ hotRequestedFilesMap[chunkId] = false; /******/ for (var moduleId in moreModules) { /******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { /******/ hotUpdate[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) { /******/ hotUpdateDownloaded(); /******/ } /******/ } /******/ /******/ function hotEnsureUpdateChunk(chunkId) { /******/ if (!hotAvailableFilesMap[chunkId]) { /******/ hotWaitingFilesMap[chunkId] = true; /******/ } else { /******/ hotRequestedFilesMap[chunkId] = true; /******/ hotWaitingFiles++; /******/ hotDownloadUpdateChunk(chunkId); /******/ } /******/ } /******/ /******/ function hotUpdateDownloaded() { /******/ hotSetStatus("ready"); /******/ var deferred = hotDeferred; /******/ hotDeferred = null; /******/ if (!deferred) return; /******/ if (hotApplyOnUpdate) { /******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to /******/ // avoid triggering uncaught exception warning in Chrome. /******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666 /******/ Promise.resolve() /******/ .then(function() { /******/ return hotApply(hotApplyOnUpdate); /******/ }) /******/ .then( /******/ function(result) { /******/ deferred.resolve(result); /******/ }, /******/ function(err) { /******/ deferred.reject(err); /******/ } /******/ ); /******/ } else { /******/ var outdatedModules = []; /******/ for (var id in hotUpdate) { /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { /******/ outdatedModules.push(toModuleId(id)); /******/ } /******/ } /******/ deferred.resolve(outdatedModules); /******/ } /******/ } /******/ /******/ function hotApply(options) { /******/ if (hotStatus !== "ready") /******/ throw new Error("apply() is only allowed in ready status"); /******/ options = options || {}; /******/ return hotApplyInternal(options); /******/ } /******/ /******/ function hotApplyInternal(options) { /******/ hotApplyInvalidatedModules(); /******/ /******/ var cb; /******/ var i; /******/ var j; /******/ var module; /******/ var moduleId; /******/ /******/ function getAffectedStuff(updateModuleId) { /******/ var outdatedModules = [updateModuleId]; /******/ var outdatedDependencies = {}; /******/ /******/ var queue = outdatedModules.map(function(id) { /******/ return { /******/ chain: [id], /******/ id: id /******/ }; /******/ }); /******/ while (queue.length > 0) { /******/ var queueItem = queue.pop(); /******/ var moduleId = queueItem.id; /******/ var chain = queueItem.chain; /******/ module = installedModules[moduleId]; /******/ if ( /******/ !module || /******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) /******/ ) /******/ continue; /******/ if (module.hot._selfDeclined) { /******/ return { /******/ type: "self-declined", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ if (module.hot._main) { /******/ return { /******/ type: "unaccepted", /******/ chain: chain, /******/ moduleId: moduleId /******/ }; /******/ } /******/ for (var i = 0; i < module.parents.length; i++) { /******/ var parentId = module.parents[i]; /******/ var parent = installedModules[parentId]; /******/ if (!parent) continue; /******/ if (parent.hot._declinedDependencies[moduleId]) { /******/ return { /******/ type: "declined", /******/ chain: chain.concat([parentId]), /******/ moduleId: moduleId, /******/ parentId: parentId /******/ }; /******/ } /******/ if (outdatedModules.indexOf(parentId) !== -1) continue; /******/ if (parent.hot._acceptedDependencies[moduleId]) { /******/ if (!outdatedDependencies[parentId]) /******/ outdatedDependencies[parentId] = []; /******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); /******/ continue; /******/ } /******/ delete outdatedDependencies[parentId]; /******/ outdatedModules.push(parentId); /******/ queue.push({ /******/ chain: chain.concat([parentId]), /******/ id: parentId /******/ }); /******/ } /******/ } /******/ /******/ return { /******/ type: "accepted", /******/ moduleId: updateModuleId, /******/ outdatedModules: outdatedModules, /******/ outdatedDependencies: outdatedDependencies /******/ }; /******/ } /******/ /******/ function addAllToSet(a, b) { /******/ for (var i = 0; i < b.length; i++) { /******/ var item = b[i]; /******/ if (a.indexOf(item) === -1) a.push(item); /******/ } /******/ } /******/ /******/ // at begin all updates modules are outdated /******/ // the "outdated" status can propagate to parents if they don't accept the children /******/ var outdatedDependencies = {}; /******/ var outdatedModules = []; /******/ var appliedUpdate = {}; /******/ /******/ var warnUnexpectedRequire = function warnUnexpectedRequire() { /******/ console.warn( /******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module" /******/ ); /******/ }; /******/ /******/ for (var id in hotUpdate) { /******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { /******/ moduleId = toModuleId(id); /******/ /** @type {TODO} */ /******/ var result; /******/ if (hotUpdate[id]) { /******/ result = getAffectedStuff(moduleId); /******/ } else { /******/ result = { /******/ type: "disposed", /******/ moduleId: id /******/ }; /******/ } /******/ /** @type {Error|false} */ /******/ var abortError = false; /******/ var doApply = false; /******/ var doDispose = false; /******/ var chainInfo = ""; /******/ if (result.chain) { /******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); /******/ } /******/ switch (result.type) { /******/ case "self-declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of self decline: " + /******/ result.moduleId + /******/ chainInfo /******/ ); /******/ break; /******/ case "declined": /******/ if (options.onDeclined) options.onDeclined(result); /******/ if (!options.ignoreDeclined) /******/ abortError = new Error( /******/ "Aborted because of declined dependency: " + /******/ result.moduleId + /******/ " in " + /******/ result.parentId + /******/ chainInfo /******/ ); /******/ break; /******/ case "unaccepted": /******/ if (options.onUnaccepted) options.onUnaccepted(result); /******/ if (!options.ignoreUnaccepted) /******/ abortError = new Error( /******/ "Aborted because " + moduleId + " is not accepted" + chainInfo /******/ ); /******/ break; /******/ case "accepted": /******/ if (options.onAccepted) options.onAccepted(result); /******/ doApply = true; /******/ break; /******/ case "disposed": /******/ if (options.onDisposed) options.onDisposed(result); /******/ doDispose = true; /******/ break; /******/ default: /******/ throw new Error("Unexception type " + result.type); /******/ } /******/ if (abortError) { /******/ hotSetStatus("abort"); /******/ return Promise.reject(abortError); /******/ } /******/ if (doApply) { /******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; /******/ addAllToSet(outdatedModules, result.outdatedModules); /******/ for (moduleId in result.outdatedDependencies) { /******/ if ( /******/ Object.prototype.hasOwnProperty.call( /******/ result.outdatedDependencies, /******/ moduleId /******/ ) /******/ ) { /******/ if (!outdatedDependencies[moduleId]) /******/ outdatedDependencies[moduleId] = []; /******/ addAllToSet( /******/ outdatedDependencies[moduleId], /******/ result.outdatedDependencies[moduleId] /******/ ); /******/ } /******/ } /******/ } /******/ if (doDispose) { /******/ addAllToSet(outdatedModules, [result.moduleId]); /******/ appliedUpdate[moduleId] = warnUnexpectedRequire; /******/ } /******/ } /******/ } /******/ /******/ // Store self accepted outdated modules to require them later by the module system /******/ var outdatedSelfAcceptedModules = []; /******/ for (i = 0; i < outdatedModules.length; i++) { /******/ moduleId = outdatedModules[i]; /******/ if ( /******/ installedModules[moduleId] && /******/ installedModules[moduleId].hot._selfAccepted && /******/ // removed self-accepted modules should not be required /******/ appliedUpdate[moduleId] !== warnUnexpectedRequire && /******/ // when called invalidate self-accepting is not possible /******/ !installedModules[moduleId].hot._selfInvalidated /******/ ) { /******/ outdatedSelfAcceptedModules.push({ /******/ module: moduleId, /******/ parents: installedModules[moduleId].parents.slice(), /******/ errorHandler: installedModules[moduleId].hot._selfAccepted /******/ }); /******/ } /******/ } /******/ /******/ // Now in "dispose" phase /******/ hotSetStatus("dispose"); /******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { /******/ if (hotAvailableFilesMap[chunkId] === false) { /******/ hotDisposeChunk(chunkId); /******/ } /******/ }); /******/ /******/ var idx; /******/ var queue = outdatedModules.slice(); /******/ while (queue.length > 0) { /******/ moduleId = queue.pop(); /******/ module = installedModules[moduleId]; /******/ if (!module) continue; /******/ /******/ var data = {}; /******/ /******/ // Call dispose handlers /******/ var disposeHandlers = module.hot._disposeHandlers; /******/ for (j = 0; j < disposeHandlers.length; j++) { /******/ cb = disposeHandlers[j]; /******/ cb(data); /******/ } /******/ hotCurrentModuleData[moduleId] = data; /******/ /******/ // disable module (this disables requires from this module) /******/ module.hot.active = false; /******/ /******/ // remove module from cache /******/ delete installedModules[moduleId]; /******/ /******/ // when disposing there is no need to call dispose handler /******/ delete outdatedDependencies[moduleId]; /******/ /******/ // remove "parents" references from all children /******/ for (j = 0; j < module.children.length; j++) { /******/ var child = installedModules[module.children[j]]; /******/ if (!child) continue; /******/ idx = child.parents.indexOf(moduleId); /******/ if (idx >= 0) { /******/ child.parents.splice(idx, 1); /******/ } /******/ } /******/ } /******/ /******/ // remove outdated dependency from module children /******/ var dependency; /******/ var moduleOutdatedDependencies; /******/ for (moduleId in outdatedDependencies) { /******/ if ( /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) /******/ ) { /******/ module = installedModules[moduleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; /******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { /******/ dependency = moduleOutdatedDependencies[j]; /******/ idx = module.children.indexOf(dependency); /******/ if (idx >= 0) module.children.splice(idx, 1); /******/ } /******/ } /******/ } /******/ } /******/ /******/ // Now in "apply" phase /******/ hotSetStatus("apply"); /******/ /******/ if (hotUpdateNewHash !== undefined) { /******/ hotCurrentHash = hotUpdateNewHash; /******/ hotUpdateNewHash = undefined; /******/ } /******/ hotUpdate = undefined; /******/ /******/ // insert new code /******/ for (moduleId in appliedUpdate) { /******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { /******/ modules[moduleId] = appliedUpdate[moduleId]; /******/ } /******/ } /******/ /******/ // call accept handlers /******/ var error = null; /******/ for (moduleId in outdatedDependencies) { /******/ if ( /******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) /******/ ) { /******/ module = installedModules[moduleId]; /******/ if (module) { /******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; /******/ var callbacks = []; /******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) { /******/ dependency = moduleOutdatedDependencies[i]; /******/ cb = module.hot._acceptedDependencies[dependency]; /******/ if (cb) { /******/ if (callbacks.indexOf(cb) !== -1) continue; /******/ callbacks.push(cb); /******/ } /******/ } /******/ for (i = 0; i < callbacks.length; i++) { /******/ cb = callbacks[i]; /******/ try { /******/ cb(moduleOutdatedDependencies); /******/ } catch (err) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "accept-errored", /******/ moduleId: moduleId, /******/ dependencyId: moduleOutdatedDependencies[i], /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ if (!error) error = err; /******/ } /******/ } /******/ } /******/ } /******/ } /******/ } /******/ /******/ // Load self accepted modules /******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) { /******/ var item = outdatedSelfAcceptedModules[i]; /******/ moduleId = item.module; /******/ hotCurrentParents = item.parents; /******/ hotCurrentChildModule = moduleId; /******/ try { /******/ __nested_webpack_require_28391__(moduleId); /******/ } catch (err) { /******/ if (typeof item.errorHandler === "function") { /******/ try { /******/ item.errorHandler(err); /******/ } catch (err2) { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-error-handler-errored", /******/ moduleId: moduleId, /******/ error: err2, /******/ originalError: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ if (!error) error = err2; /******/ } /******/ if (!error) error = err; /******/ } /******/ } else { /******/ if (options.onErrored) { /******/ options.onErrored({ /******/ type: "self-accept-errored", /******/ moduleId: moduleId, /******/ error: err /******/ }); /******/ } /******/ if (!options.ignoreErrored) { /******/ if (!error) error = err; /******/ } /******/ } /******/ } /******/ } /******/ /******/ // handle errors in accept handlers and self accepted module load /******/ if (error) { /******/ hotSetStatus("fail"); /******/ return Promise.reject(error); /******/ } /******/ /******/ if (hotQueuedInvalidatedModules) { /******/ return hotApplyInternal(options).then(function(list) { /******/ outdatedModules.forEach(function(moduleId) { /******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); /******/ }); /******/ return list; /******/ }); /******/ } /******/ /******/ hotSetStatus("idle"); /******/ return new Promise(function(resolve) { /******/ resolve(outdatedModules); /******/ }); /******/ } /******/ /******/ function hotApplyInvalidatedModules() { /******/ if (hotQueuedInvalidatedModules) { /******/ if (!hotUpdate) hotUpdate = {}; /******/ hotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule); /******/ hotQueuedInvalidatedModules = undefined; /******/ return true; /******/ } /******/ } /******/ /******/ function hotApplyInvalidatedModule(moduleId) { /******/ if (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId)) /******/ hotUpdate[moduleId] = modules[moduleId]; /******/ } /******/ /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __nested_webpack_require_28391__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {}, /******/ hot: hotCreateModule(moduleId), /******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), /******/ children: [] /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __nested_webpack_require_28391__.m = modules; /******/ /******/ // expose the module cache /******/ __nested_webpack_require_28391__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __nested_webpack_require_28391__.d = function(exports, name, getter) { /******/ if(!__nested_webpack_require_28391__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __nested_webpack_require_28391__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __nested_webpack_require_28391__.t = function(value, mode) { /******/ if(mode & 1) value = __nested_webpack_require_28391__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __nested_webpack_require_28391__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __nested_webpack_require_28391__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __nested_webpack_require_28391__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __nested_webpack_require_28391__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __nested_webpack_require_28391__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __nested_webpack_require_28391__.p = ""; /******/ /******/ // __webpack_hash__ /******/ __nested_webpack_require_28391__.h = function() { return hotCurrentHash; }; /******/ /******/ /******/ // Load entry module and return exports /******/ return hotCreateRequire("./index.js")(__nested_webpack_require_28391__.s = "./index.js"); /******/ }.bind({})) /************************************************************************/ /******/ ({ /***/ "./alloc.js": /*!******************!*\ !*** ./alloc.js ***! \******************/ /*! exports provided: default */ /***/ (function(module, __nested_webpack_exports__, __nested_webpack_require_32308__) { "use strict"; __nested_webpack_require_32308__.r(__nested_webpack_exports__); /* harmony export (binding) */ __nested_webpack_require_32308__.d(__nested_webpack_exports__, "default", function() { return alloc; }); /** * Creates a new byteArray of the same type (Uint8Array or Buffer) of the specified length. * @param byteArray the underlying byteArray (either Uint8Array or Buffer) * @param length number of bytes of the Byte Array * @returns {object} Uint8Array or Buffer depending on the type of byteArray */ function alloc(byteArray, length) { if (typeof Buffer !== 'undefined' && byteArray instanceof Buffer) { return Buffer.alloc(length); } else if (byteArray instanceof Uint8Array) { return new Uint8Array(length); } throw 'dicomParser.alloc: unknown type for byteArray'; } /***/ }), /***/ "./bigEndianByteArrayParser.js": /*!*************************************!*\ !*** ./bigEndianByteArrayParser.js ***! \*************************************/ /*! exports provided: default */ /***/ (function(module, __nested_webpack_exports__, __nested_webpack_require_33352__) { "use strict"; __nested_webpack_require_33352__.r(__nested_webpack_exports__); /** * Internal helper functions for parsing different types from a big-endian byte array */ /* harmony default export */ __nested_webpack_exports__["default"] = ({ /** * * Parses an unsigned int 16 from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed unsigned int 16 * @throws error if buffer overread would occur * @access private */ readUint16: function readUint16(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readUint16: position cannot be less than 0'; } if (position + 2 > byteArray.length) { throw 'bigEndianByteArrayParser.readUint16: attempt to read past end of buffer'; } return (byteArray[position] << 8) + byteArray[position + 1]; }, /** * * Parses a signed int 16 from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed signed int 16 * @throws error if buffer overread would occur * @access private */ readInt16: function readInt16(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readInt16: position cannot be less than 0'; } if (position + 2 > byteArray.length) { throw 'bigEndianByteArrayParser.readInt16: attempt to read past end of buffer'; } var int16 = (byteArray[position] << 8) + byteArray[position + 1]; // fix sign if (int16 & 0x8000) { int16 = int16 - 0xFFFF - 1; } return int16; }, /** * Parses an unsigned int 32 from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed unsigned int 32 * @throws error if buffer overread would occur * @access private */ readUint32: function readUint32(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readUint32: position cannot be less than 0'; } if (position + 4 > byteArray.length) { throw 'bigEndianByteArrayParser.readUint32: attempt to read past end of buffer'; } var uint32 = 256 * (256 * (256 * byteArray[position] + byteArray[position + 1]) + byteArray[position + 2]) + byteArray[position + 3]; return uint32; }, /** * Parses a signed int 32 from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed signed int 32 * @throws error if buffer overread would occur * @access private */ readInt32: function readInt32(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readInt32: position cannot be less than 0'; } if (position + 4 > byteArray.length) { throw 'bigEndianByteArrayParser.readInt32: attempt to read past end of buffer'; } var int32 = (byteArray[position] << 24) + (byteArray[position + 1] << 16) + (byteArray[position + 2] << 8) + byteArray[position + 3]; return int32; }, /** * Parses 32-bit float from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed 32-bit float * @throws error if buffer overread would occur * @access private */ readFloat: function readFloat(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readFloat: position cannot be less than 0'; } if (position + 4 > byteArray.length) { throw 'bigEndianByteArrayParser.readFloat: attempt to read past end of buffer'; } // I am sure there is a better way than this but this should be safe var byteArrayForParsingFloat = new Uint8Array(4); byteArrayForParsingFloat[3] = byteArray[position]; byteArrayForParsingFloat[2] = byteArray[position + 1]; byteArrayForParsingFloat[1] = byteArray[position + 2]; byteArrayForParsingFloat[0] = byteArray[position + 3]; var floatArray = new Float32Array(byteArrayForParsingFloat.buffer); return floatArray[0]; }, /** * Parses 64-bit float from a big-endian byte array * * @param byteArray the byte array to read from * @param position the position in the byte array to read from * @returns {*} the parsed 64-bit float * @throws error if buffer overread would occur * @access private */ readDouble: function readDouble(byteArray, position) { if (position < 0) { throw 'bigEndianByteArrayParser.readDouble: position cannot be less than 0'; } if (position + 8 > byteArray.length) { throw 'bigEndianByteArrayParser.readDouble: attempt to read past end of buffer'; } // I am sure there is a better way than this but this should be safe var byteArrayForParsingFloat = new Uint8Array(8); byteArrayForParsingFloat[7] = byteArray[position]; byteArrayForParsingFloat[6] = byteArray[position + 1]; byteArrayForParsingFloat[5] = byteArray[position + 2]; byteArrayForParsingFloat[4] = byteArray[position + 3]; byteArrayForParsingFloat[3] = byteArray[position + 4]; byteArrayForParsingFloat[2] = byteArray[position + 5]; byteArrayForParsingFloat[1] = byteArray[position + 6]; byteArrayForParsingFloat[0] = byteArray[position + 7]; var floatArray = new Float64Array(byteArrayForParsingFloat.buffer); return floatArray[0]; } }); /***/ }), /***/ "./byteArrayParser.js": /*!****************************!*\ !*** ./byteArrayParser.js ***! \****************************/ /*! exports provided: readFixedString */ /***/ (function(module, __nested_webpack_exports__, __nested_webpack_require_39316__) { "use strict"; __nested_webpack_require_39316__.r(__nested_webpack_exports__); /* harmony export (binding) */ __nested_webpack_require_39316__.d(__nested_webpack_exports__, "readFixedString", function() { return readFixedString; }); /** * Internal helper functions common to parsing byte arrays of any type */ /** * Reads a string of 8-bit characters from an array of bytes and advances * the position by length bytes. A null terminator will end the string * but will not affect advancement of the position. Trailing and leading * spaces are preserved (not trimmed) * @param byteArray the byteArray to read from * @param position the position in the byte array to read from * @param length the maximum number of bytes to parse * @returns {string} the parsed string * @throws error if buffer overread would occur * @access private */ function readFixedString(byteArray, position, length) { if (length < 0) { throw 'dicomParser.readFixedString - length cannot be less than 0'; } if (position + length > byteArray.length) { throw 'dicomParser.readFixedString: attempt to read past end of buffer'; } var result = ''; var _byte; for (var i = 0; i < length; i++) { _byte = byteArray[position + i]; if (_byte === 0) { position += length; return result; } result += String.fromCharCode(_byte); } return result; } /***/ }), /***/ "./byteStream.js": /*!***********************!*\ !*** ./byteStream.js ***! \***********************/ /*! exports provided: default */ /***/ (function(module, __nested_webpack_exports__, __nested_webpack_require_40882__) { "use strict"; __nested_webpack_require_40882__.r(__nested_webpack_exports__); /* harmony export (binding) */ __nested_webpack_require_40882__.d(__nested_webpack_exports__, "default", function() { return ByteStream; }); /* harmony import */ var _sharedCopy_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_40882__(/*! ./sharedCopy.js */ "./sharedCopy.js"); /* harmony import */ var _byteArrayParser_js__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_40882__(/*! ./byteArrayParser.js */ "./byteArrayParser.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } /** * * Internal helper class to assist with parsing. Supports reading from a byte * stream contained in a Uint8Array. Example usage: * * var byteArray = new Uint8Array(32); * var byteStream = new dicomParser.ByteStream(dicomParser.littleEndianByteArrayParser, byteArray); * * */ /** * Constructor for ByteStream objects. * @param byteArrayParser a parser for parsing the byte array * @param byteArray a Uint8Array containing the byte stream * @param position (optional) the position to start reading from. 0 if not specified * @constructor * @throws will throw an error if the byteArrayParser parameter is not present * @throws will throw an error if the byteArray parameter is not present or invalid * @throws will throw an error if the position parameter is not inside the byte array */ var ByteStream = /*#__PURE__*/function () { function ByteStream(byteArrayParser, byteArray, position) { _classCallCheck(this, ByteStream); if (byteArrayParser === undefined) { throw 'dicomParser.ByteStream: missing required parameter \'byteArrayParser\''; } if (byteArray === undefined) { throw 'dicomParser.ByteStream: missing required parameter \'byteArray\''; } if (byteArray instanceof Uint8Array === false && (typeof Buffer === 'undefined' || byteArray instanceof Buffer === false)) { throw 'dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer'; } if (position < 0) { throw 'dicomParser.ByteStream: parameter \'position\' cannot be less than 0'; } if (position >= byteArray.length) { throw 'dicomParser.ByteStream: parameter \'position\' cannot be greater than or equal to \'byteArray\' length'; } this.byteArrayParser = byteArrayParser; this.byteArray = byteArray; this.position = position ? position : 0; this.warnings = []; // array of string warnings encountered while parsing } /** * Safely seeks through the byte stream. Will throw an exception if an attempt * is made to seek outside of the byte array. * @param offset the number of bytes to add to the position * @throws error if seek would cause position to be outside of the byteArray */ _createClass(ByteStream, [{ key: "seek", value: function seek(offset) { if (this.position + offset < 0) { throw 'dicomParser.ByteStream.prototype.seek: cannot seek to position < 0'; } this.position += offset; } /** * Returns a new ByteStream object from the current position and of the requested number of bytes * @param numBytes the length of the byte array for the ByteStream to contain * @returns {dicomParser.ByteStream} * @throws error if buffer overread would occur */ }, { key: "readByteStream", value: function readByteStream(numBytes) { if (this.position + numBytes > this.byteArray.length) { throw 'dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread'; } var byteArrayView = Object(_sharedCopy_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this.byteArray, this.position, numBytes); this.position += numBytes; return new ByteStream(this.byteArrayParser, byteArrayView); } }, { key: "getSize", value: function getSize() { return this.byteArray.length; } /** * * Parses an unsigned int 16 from a byte array and advances * the position by 2 bytes * * @returns {*} the parsed unsigned int 16 * @throws error if buffer overread would occur */ }, { key: "readUint16", value: function readUint16() { var result = this.byteArrayParser.readUint16(this.byteArray, this.position); this.position += 2; return result; } /** * Parses an unsigned int 32 from a byte array and advances * the position by 2 bytes * * @returns {*} the parse unsigned int 32 * @throws error if buffer overread would occur */ }, { key: "readUint32", value: function readUint32() { var result = this.byteArrayParser.readUint32(this.byteArray, this.position); this.position += 4; return result; } /** * Reads a string of 8-bit characters from an array of bytes and advances * the position by length bytes. A null terminator will end the string * but will not effect advancement of the position. * @param length the maximum number of bytes to parse * @returns {string} the parsed string * @throws error if buffer overread would occur */ }, { key: "readFixedString", value: function readFixedString(length) { var result = Object(_byteArrayParser_js__WEBPACK_IMPORTED_MODULE_1__["readFixedString"])(this.byteArray, this.position, length); this.position += length; return result; } }]); return ByteStream; }(); /***/ }), /***/ "./dataSet.js": /*!********************!*\ !*** ./dataSet.js ***! \********************/ /*! exports provided: default */ /***/ (function(module, __nested_webpack_exports__, __nested_webpack_require_47263__) { "use strict"; __nested_webpack_require_47263__.r(__nested_webpack_exports__); /* harmony export (binding) */ __nested_webpack_require_47263__.d(__nested_webpack_exports__, "default", function() { return DataSet; }); /* harmony import */ var _byteArrayParser_js__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_47263__(/*! ./byteArrayParser.js */ "./byteArrayParser.js"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } /** * * The DataSet class encapsulates a collection of DICOM Elements and provides various functions * to access the data in those elements * * Rules for handling padded spaces: * DS = Strip leading and trailing spaces * DT = Strip trailing spaces * IS = Strip leading and trailing spaces * PN = Strip trailing spaces * TM = Strip trailing spaces * AE = Strip leading and trailing spaces * CS = Strip leading and trailing spaces * SH = Strip leading and trailing spaces * LO = Strip leading and trailing spaces * LT = Strip trailing spaces * ST = Strip trailing spaces * UT = Strip trailing spaces * */ function getByteArrayParser(element, defaultParser) { return element.parser !== undefined ? element.parser : defaultParser; } /** * Constructs a new D