{"version":3,"file":"viewer3D.js","sources":["webpack://LMV/webpack/bootstrap","webpack://LMV/./extensions/DefaultTools/NavTools.js","webpack://LMV/./extensions/Explode/Explode.js","webpack://LMV/./extensions/Explode/ExplodeTool.js","webpack://LMV/./extensions/FullScreen/FullScreen.js","webpack://LMV/./extensions/FusionOrbit/FusionOrbit.css?f58a","webpack://LMV/./extensions/FusionOrbit/FusionOrbit.js","webpack://LMV/./extensions/FusionOrbit/FusionOrbitTool.js","webpack://LMV/./extensions/GoHome/GoHome.js","webpack://LMV/./extensions/ModelStructure/ModelStructure.js","webpack://LMV/./extensions/PropertiesManager/PropertiesManager.js","webpack://LMV/./extensions/ViewerSettings/ViewerSettings.js","webpack://LMV/./extensions/builtinExtensions.js","webpack://LMV/./extensions/externalExtensions.js","webpack://LMV/./extensions/registerExternalExtensions.js","webpack://LMV/./node_modules/clusterize.js/clusterize.js","webpack://LMV/./node_modules/core-js/internals/a-function.js","webpack://LMV/./node_modules/core-js/internals/a-possible-prototype.js","webpack://LMV/./node_modules/core-js/internals/add-to-unscopables.js","webpack://LMV/./node_modules/core-js/internals/advance-string-index.js","webpack://LMV/./node_modules/core-js/internals/an-instance.js","webpack://LMV/./node_modules/core-js/internals/an-object.js","webpack://LMV/./node_modules/core-js/internals/array-buffer-native.js","webpack://LMV/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://LMV/./node_modules/core-js/internals/array-buffer.js","webpack://LMV/./node_modules/core-js/internals/array-copy-within.js","webpack://LMV/./node_modules/core-js/internals/array-fill.js","webpack://LMV/./node_modules/core-js/internals/array-for-each.js","webpack://LMV/./node_modules/core-js/internals/array-from.js","webpack://LMV/./node_modules/core-js/internals/array-includes.js","webpack://LMV/./node_modules/core-js/internals/array-iteration.js","webpack://LMV/./node_modules/core-js/internals/array-last-index-of.js","webpack://LMV/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://LMV/./node_modules/core-js/internals/array-method-is-strict.js","webpack://LMV/./node_modules/core-js/internals/array-method-uses-to-length.js","webpack://LMV/./node_modules/core-js/internals/array-reduce.js","webpack://LMV/./node_modules/core-js/internals/array-species-create.js","webpack://LMV/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://LMV/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://LMV/./node_modules/core-js/internals/classof-raw.js","webpack://LMV/./node_modules/core-js/internals/classof.js","webpack://LMV/./node_modules/core-js/internals/collection-add-all.js","webpack://LMV/./node_modules/core-js/internals/collection-delete-all.js","webpack://LMV/./node_modules/core-js/internals/collection-from.js","webpack://LMV/./node_modules/core-js/internals/collection-of.js","webpack://LMV/./node_modules/core-js/internals/collection-strong.js","webpack://LMV/./node_modules/core-js/internals/collection-weak.js","webpack://LMV/./node_modules/core-js/internals/collection.js","webpack://LMV/./node_modules/core-js/internals/composite-key.js","webpack://LMV/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://LMV/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://LMV/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://LMV/./node_modules/core-js/internals/create-html.js","webpack://LMV/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://LMV/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://LMV/./node_modules/core-js/internals/create-property-descriptor.js","webpack://LMV/./node_modules/core-js/internals/create-property.js","webpack://LMV/./node_modules/core-js/internals/date-to-primitive.js","webpack://LMV/./node_modules/core-js/internals/define-iterator.js","webpack://LMV/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://LMV/./node_modules/core-js/internals/descriptors.js","webpack://LMV/./node_modules/core-js/internals/document-create-element.js","webpack://LMV/./node_modules/core-js/internals/dom-iterables.js","webpack://LMV/./node_modules/core-js/internals/engine-is-ios.js","webpack://LMV/./node_modules/core-js/internals/engine-user-agent.js","webpack://LMV/./node_modules/core-js/internals/engine-v8-version.js","webpack://LMV/./node_modules/core-js/internals/enum-bug-keys.js","webpack://LMV/./node_modules/core-js/internals/export.js","webpack://LMV/./node_modules/core-js/internals/fails.js","webpack://LMV/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://LMV/./node_modules/core-js/internals/flatten-into-array.js","webpack://LMV/./node_modules/core-js/internals/freezing.js","webpack://LMV/./node_modules/core-js/internals/function-bind-context.js","webpack://LMV/./node_modules/core-js/internals/function-bind.js","webpack://LMV/./node_modules/core-js/internals/get-built-in.js","webpack://LMV/./node_modules/core-js/internals/get-iterator-method.js","webpack://LMV/./node_modules/core-js/internals/get-iterator.js","webpack://LMV/./node_modules/core-js/internals/get-map-iterator.js","webpack://LMV/./node_modules/core-js/internals/get-set-iterator.js","webpack://LMV/./node_modules/core-js/internals/global.js","webpack://LMV/./node_modules/core-js/internals/has.js","webpack://LMV/./node_modules/core-js/internals/hidden-keys.js","webpack://LMV/./node_modules/core-js/internals/host-report-errors.js","webpack://LMV/./node_modules/core-js/internals/html.js","webpack://LMV/./node_modules/core-js/internals/ie8-dom-define.js","webpack://LMV/./node_modules/core-js/internals/ieee754.js","webpack://LMV/./node_modules/core-js/internals/indexed-object.js","webpack://LMV/./node_modules/core-js/internals/inherit-if-required.js","webpack://LMV/./node_modules/core-js/internals/inspect-source.js","webpack://LMV/./node_modules/core-js/internals/internal-metadata.js","webpack://LMV/./node_modules/core-js/internals/internal-state.js","webpack://LMV/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://LMV/./node_modules/core-js/internals/is-array.js","webpack://LMV/./node_modules/core-js/internals/is-forced.js","webpack://LMV/./node_modules/core-js/internals/is-integer.js","webpack://LMV/./node_modules/core-js/internals/is-object.js","webpack://LMV/./node_modules/core-js/internals/is-pure.js","webpack://LMV/./node_modules/core-js/internals/is-regexp.js","webpack://LMV/./node_modules/core-js/internals/iterate.js","webpack://LMV/./node_modules/core-js/internals/iterators-core.js","webpack://LMV/./node_modules/core-js/internals/iterators.js","webpack://LMV/./node_modules/core-js/internals/math-expm1.js","webpack://LMV/./node_modules/core-js/internals/math-fround.js","webpack://LMV/./node_modules/core-js/internals/math-log1p.js","webpack://LMV/./node_modules/core-js/internals/math-scale.js","webpack://LMV/./node_modules/core-js/internals/math-sign.js","webpack://LMV/./node_modules/core-js/internals/microtask.js","webpack://LMV/./node_modules/core-js/internals/native-promise-constructor.js","webpack://LMV/./node_modules/core-js/internals/native-symbol.js","webpack://LMV/./node_modules/core-js/internals/native-url.js","webpack://LMV/./node_modules/core-js/internals/native-weak-map.js","webpack://LMV/./node_modules/core-js/internals/new-promise-capability.js","webpack://LMV/./node_modules/core-js/internals/not-a-regexp.js","webpack://LMV/./node_modules/core-js/internals/number-is-finite.js","webpack://LMV/./node_modules/core-js/internals/number-parse-float.js","webpack://LMV/./node_modules/core-js/internals/number-parse-int.js","webpack://LMV/./node_modules/core-js/internals/object-assign.js","webpack://LMV/./node_modules/core-js/internals/object-create.js","webpack://LMV/./node_modules/core-js/internals/object-define-properties.js","webpack://LMV/./node_modules/core-js/internals/object-define-property.js","webpack://LMV/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://LMV/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://LMV/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://LMV/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://LMV/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://LMV/./node_modules/core-js/internals/object-keys-internal.js","webpack://LMV/./node_modules/core-js/internals/object-keys.js","webpack://LMV/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://LMV/./node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack://LMV/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://LMV/./node_modules/core-js/internals/object-to-array.js","webpack://LMV/./node_modules/core-js/internals/object-to-string.js","webpack://LMV/./node_modules/core-js/internals/own-keys.js","webpack://LMV/./node_modules/core-js/internals/path.js","webpack://LMV/./node_modules/core-js/internals/perform.js","webpack://LMV/./node_modules/core-js/internals/promise-resolve.js","webpack://LMV/./node_modules/core-js/internals/redefine-all.js","webpack://LMV/./node_modules/core-js/internals/redefine.js","webpack://LMV/./node_modules/core-js/internals/reflect-metadata.js","webpack://LMV/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://LMV/./node_modules/core-js/internals/regexp-exec.js","webpack://LMV/./node_modules/core-js/internals/regexp-flags.js","webpack://LMV/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://LMV/./node_modules/core-js/internals/require-object-coercible.js","webpack://LMV/./node_modules/core-js/internals/same-value-zero.js","webpack://LMV/./node_modules/core-js/internals/same-value.js","webpack://LMV/./node_modules/core-js/internals/set-global.js","webpack://LMV/./node_modules/core-js/internals/set-species.js","webpack://LMV/./node_modules/core-js/internals/set-to-string-tag.js","webpack://LMV/./node_modules/core-js/internals/shared-key.js","webpack://LMV/./node_modules/core-js/internals/shared-store.js","webpack://LMV/./node_modules/core-js/internals/shared.js","webpack://LMV/./node_modules/core-js/internals/species-constructor.js","webpack://LMV/./node_modules/core-js/internals/string-html-forced.js","webpack://LMV/./node_modules/core-js/internals/string-multibyte.js","webpack://LMV/./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://LMV/./node_modules/core-js/internals/string-pad.js","webpack://LMV/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://LMV/./node_modules/core-js/internals/string-repeat.js","webpack://LMV/./node_modules/core-js/internals/string-trim-forced.js","webpack://LMV/./node_modules/core-js/internals/string-trim.js","webpack://LMV/./node_modules/core-js/internals/task.js","webpack://LMV/./node_modules/core-js/internals/this-number-value.js","webpack://LMV/./node_modules/core-js/internals/to-absolute-index.js","webpack://LMV/./node_modules/core-js/internals/to-index.js","webpack://LMV/./node_modules/core-js/internals/to-indexed-object.js","webpack://LMV/./node_modules/core-js/internals/to-integer.js","webpack://LMV/./node_modules/core-js/internals/to-length.js","webpack://LMV/./node_modules/core-js/internals/to-object.js","webpack://LMV/./node_modules/core-js/internals/to-offset.js","webpack://LMV/./node_modules/core-js/internals/to-positive-integer.js","webpack://LMV/./node_modules/core-js/internals/to-primitive.js","webpack://LMV/./node_modules/core-js/internals/to-string-tag-support.js","webpack://LMV/./node_modules/core-js/internals/typed-array-constructor.js","webpack://LMV/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://LMV/./node_modules/core-js/internals/typed-array-from.js","webpack://LMV/./node_modules/core-js/internals/uid.js","webpack://LMV/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://LMV/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://LMV/./node_modules/core-js/internals/well-known-symbol.js","webpack://LMV/./node_modules/core-js/internals/whitespaces.js","webpack://LMV/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://LMV/./node_modules/core-js/modules/es.array.concat.js","webpack://LMV/./node_modules/core-js/modules/es.array.copy-within.js","webpack://LMV/./node_modules/core-js/modules/es.array.every.js","webpack://LMV/./node_modules/core-js/modules/es.array.fill.js","webpack://LMV/./node_modules/core-js/modules/es.array.filter.js","webpack://LMV/./node_modules/core-js/modules/es.array.find-index.js","webpack://LMV/./node_modules/core-js/modules/es.array.find.js","webpack://LMV/./node_modules/core-js/modules/es.array.flat-map.js","webpack://LMV/./node_modules/core-js/modules/es.array.flat.js","webpack://LMV/./node_modules/core-js/modules/es.array.for-each.js","webpack://LMV/./node_modules/core-js/modules/es.array.from.js","webpack://LMV/./node_modules/core-js/modules/es.array.includes.js","webpack://LMV/./node_modules/core-js/modules/es.array.index-of.js","webpack://LMV/./node_modules/core-js/modules/es.array.iterator.js","webpack://LMV/./node_modules/core-js/modules/es.array.join.js","webpack://LMV/./node_modules/core-js/modules/es.array.last-index-of.js","webpack://LMV/./node_modules/core-js/modules/es.array.map.js","webpack://LMV/./node_modules/core-js/modules/es.array.of.js","webpack://LMV/./node_modules/core-js/modules/es.array.reduce-right.js","webpack://LMV/./node_modules/core-js/modules/es.array.reduce.js","webpack://LMV/./node_modules/core-js/modules/es.array.slice.js","webpack://LMV/./node_modules/core-js/modules/es.array.some.js","webpack://LMV/./node_modules/core-js/modules/es.array.sort.js","webpack://LMV/./node_modules/core-js/modules/es.array.species.js","webpack://LMV/./node_modules/core-js/modules/es.array.splice.js","webpack://LMV/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://LMV/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://LMV/./node_modules/core-js/modules/es.date.to-primitive.js","webpack://LMV/./node_modules/core-js/modules/es.function.has-instance.js","webpack://LMV/./node_modules/core-js/modules/es.function.name.js","webpack://LMV/./node_modules/core-js/modules/es.global-this.js","webpack://LMV/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://LMV/./node_modules/core-js/modules/es.map.js","webpack://LMV/./node_modules/core-js/modules/es.math.acosh.js","webpack://LMV/./node_modules/core-js/modules/es.math.asinh.js","webpack://LMV/./node_modules/core-js/modules/es.math.atanh.js","webpack://LMV/./node_modules/core-js/modules/es.math.cbrt.js","webpack://LMV/./node_modules/core-js/modules/es.math.clz32.js","webpack://LMV/./node_modules/core-js/modules/es.math.cosh.js","webpack://LMV/./node_modules/core-js/modules/es.math.expm1.js","webpack://LMV/./node_modules/core-js/modules/es.math.fround.js","webpack://LMV/./node_modules/core-js/modules/es.math.hypot.js","webpack://LMV/./node_modules/core-js/modules/es.math.imul.js","webpack://LMV/./node_modules/core-js/modules/es.math.log10.js","webpack://LMV/./node_modules/core-js/modules/es.math.log1p.js","webpack://LMV/./node_modules/core-js/modules/es.math.log2.js","webpack://LMV/./node_modules/core-js/modules/es.math.sign.js","webpack://LMV/./node_modules/core-js/modules/es.math.sinh.js","webpack://LMV/./node_modules/core-js/modules/es.math.tanh.js","webpack://LMV/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://LMV/./node_modules/core-js/modules/es.math.trunc.js","webpack://LMV/./node_modules/core-js/modules/es.number.constructor.js","webpack://LMV/./node_modules/core-js/modules/es.number.epsilon.js","webpack://LMV/./node_modules/core-js/modules/es.number.is-finite.js","webpack://LMV/./node_modules/core-js/modules/es.number.is-integer.js","webpack://LMV/./node_modules/core-js/modules/es.number.is-nan.js","webpack://LMV/./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack://LMV/./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack://LMV/./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack://LMV/./node_modules/core-js/modules/es.number.parse-float.js","webpack://LMV/./node_modules/core-js/modules/es.number.parse-int.js","webpack://LMV/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://LMV/./node_modules/core-js/modules/es.object.assign.js","webpack://LMV/./node_modules/core-js/modules/es.object.define-getter.js","webpack://LMV/./node_modules/core-js/modules/es.object.define-setter.js","webpack://LMV/./node_modules/core-js/modules/es.object.entries.js","webpack://LMV/./node_modules/core-js/modules/es.object.freeze.js","webpack://LMV/./node_modules/core-js/modules/es.object.from-entries.js","webpack://LMV/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://LMV/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://LMV/./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack://LMV/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://LMV/./node_modules/core-js/modules/es.object.is-extensible.js","webpack://LMV/./node_modules/core-js/modules/es.object.is-frozen.js","webpack://LMV/./node_modules/core-js/modules/es.object.is-sealed.js","webpack://LMV/./node_modules/core-js/modules/es.object.is.js","webpack://LMV/./node_modules/core-js/modules/es.object.keys.js","webpack://LMV/./node_modules/core-js/modules/es.object.lookup-getter.js","webpack://LMV/./node_modules/core-js/modules/es.object.lookup-setter.js","webpack://LMV/./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack://LMV/./node_modules/core-js/modules/es.object.seal.js","webpack://LMV/./node_modules/core-js/modules/es.object.to-string.js","webpack://LMV/./node_modules/core-js/modules/es.object.values.js","webpack://LMV/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://LMV/./node_modules/core-js/modules/es.promise.finally.js","webpack://LMV/./node_modules/core-js/modules/es.promise.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.apply.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.construct.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.define-property.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.delete-property.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.get.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.has.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.own-keys.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack://LMV/./node_modules/core-js/modules/es.reflect.set.js","webpack://LMV/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://LMV/./node_modules/core-js/modules/es.regexp.exec.js","webpack://LMV/./node_modules/core-js/modules/es.regexp.flags.js","webpack://LMV/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://LMV/./node_modules/core-js/modules/es.set.js","webpack://LMV/./node_modules/core-js/modules/es.string.anchor.js","webpack://LMV/./node_modules/core-js/modules/es.string.big.js","webpack://LMV/./node_modules/core-js/modules/es.string.blink.js","webpack://LMV/./node_modules/core-js/modules/es.string.bold.js","webpack://LMV/./node_modules/core-js/modules/es.string.code-point-at.js","webpack://LMV/./node_modules/core-js/modules/es.string.ends-with.js","webpack://LMV/./node_modules/core-js/modules/es.string.fixed.js","webpack://LMV/./node_modules/core-js/modules/es.string.fontcolor.js","webpack://LMV/./node_modules/core-js/modules/es.string.fontsize.js","webpack://LMV/./node_modules/core-js/modules/es.string.from-code-point.js","webpack://LMV/./node_modules/core-js/modules/es.string.includes.js","webpack://LMV/./node_modules/core-js/modules/es.string.italics.js","webpack://LMV/./node_modules/core-js/modules/es.string.iterator.js","webpack://LMV/./node_modules/core-js/modules/es.string.link.js","webpack://LMV/./node_modules/core-js/modules/es.string.match-all.js","webpack://LMV/./node_modules/core-js/modules/es.string.match.js","webpack://LMV/./node_modules/core-js/modules/es.string.pad-end.js","webpack://LMV/./node_modules/core-js/modules/es.string.pad-start.js","webpack://LMV/./node_modules/core-js/modules/es.string.raw.js","webpack://LMV/./node_modules/core-js/modules/es.string.repeat.js","webpack://LMV/./node_modules/core-js/modules/es.string.replace.js","webpack://LMV/./node_modules/core-js/modules/es.string.search.js","webpack://LMV/./node_modules/core-js/modules/es.string.small.js","webpack://LMV/./node_modules/core-js/modules/es.string.split.js","webpack://LMV/./node_modules/core-js/modules/es.string.starts-with.js","webpack://LMV/./node_modules/core-js/modules/es.string.strike.js","webpack://LMV/./node_modules/core-js/modules/es.string.sub.js","webpack://LMV/./node_modules/core-js/modules/es.string.sup.js","webpack://LMV/./node_modules/core-js/modules/es.string.trim-end.js","webpack://LMV/./node_modules/core-js/modules/es.string.trim-start.js","webpack://LMV/./node_modules/core-js/modules/es.string.trim.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.description.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.has-instance.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.match.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.replace.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.search.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.species.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.split.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://LMV/./node_modules/core-js/modules/es.symbol.unscopables.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.every.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.find.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.from.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.join.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.map.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.of.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.set.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.some.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://LMV/./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack://LMV/./node_modules/core-js/modules/es.weak-map.js","webpack://LMV/./node_modules/core-js/modules/es.weak-set.js","webpack://LMV/./node_modules/core-js/modules/esnext.aggregate-error.js","webpack://LMV/./node_modules/core-js/modules/esnext.array.last-index.js","webpack://LMV/./node_modules/core-js/modules/esnext.array.last-item.js","webpack://LMV/./node_modules/core-js/modules/esnext.composite-key.js","webpack://LMV/./node_modules/core-js/modules/esnext.composite-symbol.js","webpack://LMV/./node_modules/core-js/modules/esnext.global-this.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.delete-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.every.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.filter.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.find-key.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.find.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.from.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.group-by.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.includes.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.key-by.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.key-of.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.map-keys.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.map-values.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.merge.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.of.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.reduce.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.some.js","webpack://LMV/./node_modules/core-js/modules/esnext.map.update.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.clamp.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.deg-per-rad.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.degrees.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.fscale.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.iaddh.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.imulh.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.isubh.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.rad-per-deg.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.radians.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.scale.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.seeded-prng.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.signbit.js","webpack://LMV/./node_modules/core-js/modules/esnext.math.umulh.js","webpack://LMV/./node_modules/core-js/modules/esnext.number.from-string.js","webpack://LMV/./node_modules/core-js/modules/esnext.observable.js","webpack://LMV/./node_modules/core-js/modules/esnext.promise.all-settled.js","webpack://LMV/./node_modules/core-js/modules/esnext.promise.any.js","webpack://LMV/./node_modules/core-js/modules/esnext.promise.try.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.define-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.delete-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.get-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.get-own-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.has-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.has-own-metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.reflect.metadata.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.add-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.delete-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.difference.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.every.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.filter.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.find.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.from.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.intersection.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.is-disjoint-from.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.is-subset-of.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.is-superset-of.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.join.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.map.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.of.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.reduce.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.some.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.symmetric-difference.js","webpack://LMV/./node_modules/core-js/modules/esnext.set.union.js","webpack://LMV/./node_modules/core-js/modules/esnext.string.at.js","webpack://LMV/./node_modules/core-js/modules/esnext.string.code-points.js","webpack://LMV/./node_modules/core-js/modules/esnext.string.match-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.string.replace-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.symbol.dispose.js","webpack://LMV/./node_modules/core-js/modules/esnext.symbol.observable.js","webpack://LMV/./node_modules/core-js/modules/esnext.symbol.pattern-match.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-map.delete-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-map.from.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-map.of.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-set.add-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-set.delete-all.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-set.from.js","webpack://LMV/./node_modules/core-js/modules/esnext.weak-set.of.js","webpack://LMV/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://LMV/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://LMV/./node_modules/core-js/modules/web.immediate.js","webpack://LMV/./node_modules/core-js/modules/web.queue-microtask.js","webpack://LMV/./node_modules/core-js/modules/web.url-search-params.js","webpack://LMV/./node_modules/core-js/modules/web.url.js","webpack://LMV/./node_modules/core-js/modules/web.url.to-json.js","webpack://LMV/./node_modules/pako/index.js","webpack://LMV/./node_modules/pako/lib/deflate.js","webpack://LMV/./node_modules/pako/lib/inflate.js","webpack://LMV/./node_modules/pako/lib/utils/common.js","webpack://LMV/./node_modules/pako/lib/utils/strings.js","webpack://LMV/./node_modules/pako/lib/zlib/adler32.js","webpack://LMV/./node_modules/pako/lib/zlib/constants.js","webpack://LMV/./node_modules/pako/lib/zlib/crc32.js","webpack://LMV/./node_modules/pako/lib/zlib/deflate.js","webpack://LMV/./node_modules/pako/lib/zlib/gzheader.js","webpack://LMV/./node_modules/pako/lib/zlib/inffast.js","webpack://LMV/./node_modules/pako/lib/zlib/inflate.js","webpack://LMV/./node_modules/pako/lib/zlib/inftrees.js","webpack://LMV/./node_modules/pako/lib/zlib/messages.js","webpack://LMV/./node_modules/pako/lib/zlib/trees.js","webpack://LMV/./node_modules/pako/lib/zlib/zstream.js","webpack://LMV/./node_modules/pend/index.js","webpack://LMV/./node_modules/process/browser.js","webpack://LMV/./node_modules/regenerator-runtime/runtime.js","webpack://LMV/./node_modules/setimmediate/setImmediate.js","webpack://LMV/./node_modules/timers-browserify/main.js","webpack://LMV/(webpack)/buildin/amd-options.js","webpack://LMV/(webpack)/buildin/global.js","webpack://LMV/(webpack)/buildin/module.js","webpack://LMV/./src/analytics/analyticsData.js","webpack://LMV/./src/analytics/index.js","webpack://LMV/./src/analytics/providers/interface.js","webpack://LMV/./src/analytics/providers/providersExtensions.js","webpack://LMV/./src/animation/Animation.js","webpack://LMV/./src/animation/AnimationHandler.js","webpack://LMV/./src/animation/InterpolationType.js","webpack://LMV/./src/animation/KeyFrameAnimator.js","webpack://LMV/./src/animation/type/AnnotationAnimation.js","webpack://LMV/./src/animation/type/CameraAnimation.js","webpack://LMV/./src/animation/type/MeshAnimation.js","webpack://LMV/./src/animation/type/PolylineAnimation.js","webpack://LMV/./src/animation/type/VisibilityAnimation.js","webpack://LMV/./src/application/AggregatedView.js","webpack://LMV/./src/application/CameraLS.js","webpack://LMV/./src/application/Document.js","webpack://LMV/./src/application/DynamicGlobalOffset.js","webpack://LMV/./src/application/EventDispatcher.js","webpack://LMV/./src/application/EventTypes.js","webpack://LMV/./src/application/EventUtils.js","webpack://LMV/./src/application/Extension.js","webpack://LMV/./src/application/ExtensionManager.js","webpack://LMV/./src/application/FileLoader.js","webpack://LMV/./src/application/FileLoaderManager.js","webpack://LMV/./src/application/ForgeLogoSpinner.js","webpack://LMV/./src/application/GlobalManager.js","webpack://LMV/./src/application/GlobalManagerMixin.js","webpack://LMV/./src/application/LightPresets.js","webpack://LMV/./src/application/LoadingSpinner.js","webpack://LMV/./src/application/LocalStorage.js","webpack://LMV/./src/application/Model.js","webpack://LMV/./src/application/ModelLayers.js","webpack://LMV/./src/application/ModelMemoryTracker.js","webpack://LMV/./src/application/OverlayManager.js","webpack://LMV/./src/application/PreferenceNames.js","webpack://LMV/./src/application/Preferences.js","webpack://LMV/./src/application/Profile.js","webpack://LMV/./src/application/ProfileManager.js","webpack://LMV/./src/application/ProfileSettings.js","webpack://LMV/./src/application/ProgressState.js","webpack://LMV/./src/application/ScreenModeDelegate.js","webpack://LMV/./src/application/ScreenShot.js","webpack://LMV/./src/application/Thumbnails.js","webpack://LMV/./src/application/Viewer3D.css?11ef","webpack://LMV/./src/application/Viewer3D.js","webpack://LMV/./src/application/Viewer3DImpl.js","webpack://LMV/./src/application/ViewerState.js","webpack://LMV/./src/application/bubble.js","webpack://LMV/./src/compat.js","webpack://LMV/./src/envinit.js","webpack://LMV/./src/file-loaders/lmvtk/common/InputStream.js","webpack://LMV/./src/file-loaders/lmvtk/common/StringUtils.js","webpack://LMV/./src/file-loaders/lmvtk/common/SvfPlacementUtils.js","webpack://LMV/./src/file-loaders/lmvtk/common/VertexBufferBuilder.js","webpack://LMV/./src/file-loaders/lmvtk/otg/HashStrings.js","webpack://LMV/./src/file-loaders/lmvtk/otg/Otg.js","webpack://LMV/./src/file-loaders/lmvtk/otg/OtgGeomCodec.js","webpack://LMV/./src/file-loaders/lmvtk/otg/OtgPriorityQueue.js","webpack://LMV/./src/file-loaders/lmvtk/otg/ProgressiveReadContext.js","webpack://LMV/./src/file-loaders/loader-extensions.js","webpack://LMV/./src/file-loaders/main/Empty2DModelLoader.js","webpack://LMV/./src/file-loaders/main/F2DLoader.js","webpack://LMV/./src/file-loaders/main/LeafletLoader.js","webpack://LMV/./src/file-loaders/main/OtgLoader.js","webpack://LMV/./src/file-loaders/main/OtgResourceCache.js","webpack://LMV/./src/file-loaders/main/PropDbLoader.js","webpack://LMV/./src/file-loaders/main/SvfLoader.js","webpack://LMV/./src/file-loaders/main/TextureLoader.js","webpack://LMV/./src/file-loaders/main/WorkerCreator.js","webpack://LMV/./src/file-loaders/main/WorkerCreatorWasm.js","webpack://LMV/./src/file-loaders/net/ErrorCodes.js","webpack://LMV/./src/file-loaders/net/Xhr.js","webpack://LMV/./src/file-loaders/net/endpoints.js","webpack://LMV/./src/globalization/i18init.js","webpack://LMV/./src/globalization/i18next.js","webpack://LMV/./src/globalization/langs.js","webpack://LMV/./src/globals.js","webpack://LMV/./src/gui/AlertBox.css?c6e8","webpack://LMV/./src/gui/AlertBox.js","webpack://LMV/./src/gui/CommonWidgets.css?6cd2","webpack://LMV/./src/gui/CommonWidgets.js","webpack://LMV/./src/gui/ContextMenu.css?2497","webpack://LMV/./src/gui/ContextMenu.js","webpack://LMV/./src/gui/DataTable.css?ac98","webpack://LMV/./src/gui/DataTable.js","webpack://LMV/./src/gui/DockingPanel.css?42f9","webpack://LMV/./src/gui/DockingPanel.js","webpack://LMV/./src/gui/ErrorHandler.js","webpack://LMV/./src/gui/GuiViewer3D.css?10b0","webpack://LMV/./src/gui/GuiViewer3D.js","webpack://LMV/./src/gui/GuiViewerToolbarConst.js","webpack://LMV/./src/gui/HudMessage.css?4131","webpack://LMV/./src/gui/HudMessage.js","webpack://LMV/./src/gui/LightPresetThumbnails.js","webpack://LMV/./src/gui/LoadingSpinner.css?94ff","webpack://LMV/./src/gui/LoadingSpinner.js","webpack://LMV/./src/gui/ModelStructurePanel.css?ccfc","webpack://LMV/./src/gui/ModelStructurePanel.js","webpack://LMV/./src/gui/ModelStructureTreeDelegate.css?7f42","webpack://LMV/./src/gui/ModelStructureTreeDelegate.js","webpack://LMV/./src/gui/ObjectContextMenu.js","webpack://LMV/./src/gui/Panel.css?8cf4","webpack://LMV/./src/gui/ProgressBar.css?2d92","webpack://LMV/./src/gui/ProgressBar.js","webpack://LMV/./src/gui/PropertyPanel.css?7367","webpack://LMV/./src/gui/PropertyPanel.js","webpack://LMV/./src/gui/RenderOptionsPanel.js","webpack://LMV/./src/gui/SettingsPanel.css?eb43","webpack://LMV/./src/gui/SettingsPanel.js","webpack://LMV/./src/gui/Tree.css?079e","webpack://LMV/./src/gui/Tree.js","webpack://LMV/./src/gui/TreeDelegate.js","webpack://LMV/./src/gui/TreeOnDemand.css?d983","webpack://LMV/./src/gui/TreeOnDemand.js","webpack://LMV/./src/gui/ViewerModelStructurePanel.css?62f0","webpack://LMV/./src/gui/ViewerModelStructurePanel.js","webpack://LMV/./src/gui/ViewerObjectContextMenu.js","webpack://LMV/./src/gui/ViewerPanelMixin.js","webpack://LMV/./src/gui/ViewerPropertyPanel.js","webpack://LMV/./src/gui/ViewerSettingsPanel.css?878e","webpack://LMV/./src/gui/ViewerSettingsPanel.js","webpack://LMV/./src/gui/browser/browser.css?c73c","webpack://LMV/./src/gui/browser/browser.js","webpack://LMV/./src/gui/controls/Button.css?5f69","webpack://LMV/./src/gui/controls/Button.js","webpack://LMV/./src/gui/controls/ComboButton.css?d95a","webpack://LMV/./src/gui/controls/ComboButton.js","webpack://LMV/./src/gui/controls/Control.css?ff5b","webpack://LMV/./src/gui/controls/Control.js","webpack://LMV/./src/gui/controls/ControlGroup.css?d802","webpack://LMV/./src/gui/controls/ControlGroup.js","webpack://LMV/./src/gui/controls/Filterbox.css?8938","webpack://LMV/./src/gui/controls/Filterbox.js","webpack://LMV/./src/gui/controls/RadioButtonGroup.js","webpack://LMV/./src/gui/controls/SearchEvents.js","webpack://LMV/./src/gui/controls/SearchResults.css?41e9","webpack://LMV/./src/gui/controls/SearchResults.js","webpack://LMV/./src/gui/controls/Searchbox.css?a17b","webpack://LMV/./src/gui/controls/Searchbox.js","webpack://LMV/./src/gui/icon-fonts/codes.css?7ff9","webpack://LMV/./src/gui/icon-fonts/header.css?2c0a","webpack://LMV/./src/gui/splitview-layout/SplitViewHorizontalHandler.js","webpack://LMV/./src/gui/splitview-layout/SplitViewLayout.js","webpack://LMV/./src/gui/splitview-layout/SplitViewLayout.scss?f4fe","webpack://LMV/./src/gui/splitview-layout/SplitViewResizeHandler.js","webpack://LMV/./src/gui/splitview-layout/SplitViewVerticalHandler.js","webpack://LMV/./src/gui/themes/AcsTheme.css?652e","webpack://LMV/./src/gui/themes/BimTheme.css?2f01","webpack://LMV/./src/gui/themes/DarkTheme.css?4e3f","webpack://LMV/./src/gui/themes/DarkThemeHyperlink.css?f7a2","webpack://LMV/./src/gui/themes/Fonts.css?a364","webpack://LMV/./src/gui/themes/LightTheme.css?7650","webpack://LMV/./src/gui/themes/LightThemeHyperlink.css?8498","webpack://LMV/./src/gui/toolbar/ToolBar.css?105b","webpack://LMV/./src/gui/toolbar/ToolBar.js","webpack://LMV/./src/index-css.js","webpack://LMV/./src/index.js","webpack://LMV/./src/leech-viewer/CrossViewerInteractionCommon.js","webpack://LMV/./src/leech-viewer/LeechViewer.js","webpack://LMV/./src/leech-viewer/LeechViewerRenderContext.js","webpack://LMV/./src/leech-viewer/MultiViewerFactory.js","webpack://LMV/./src/logger/Logger.js","webpack://LMV/./src/measurement/DisplayUnits.js","webpack://LMV/./src/measurement/MeasureCommon.js","webpack://LMV/./src/measurement/MeasureEvents.js","webpack://LMV/./src/measurement/Measurement.js","webpack://LMV/./src/measurement/MeasurementTypes.js","webpack://LMV/./src/measurement/PDFUtils.js","webpack://LMV/./src/measurement/SnapResult.js","webpack://LMV/./src/measurement/SnapTypes.js","webpack://LMV/./src/measurement/UnitFormatter.js","webpack://LMV/./src/measurement/UnitParser.js","webpack://LMV/./src/mobile/MobileCallbacks.js","webpack://LMV/./src/module-prefix.js","webpack://LMV/./src/module-suffix.js","webpack://LMV/./src/net/LiveReviewClient.js","webpack://LMV/./src/net/MessageClient.js","webpack://LMV/./src/resource-loader.js","webpack://LMV/./src/search/SearchManager.js","webpack://LMV/./src/search/providers/ModelPartsSearchProvider.js","webpack://LMV/./src/search/providers/PropertiesSearchProvider.js","webpack://LMV/./src/search/providers/SearchProviderInterface.js","webpack://LMV/./src/search/providers/TextSearchProvider.js","webpack://LMV/./src/tools/DefaultHandler.js","webpack://LMV/./src/tools/FovTool.js","webpack://LMV/./src/tools/GestureHandler.js","webpack://LMV/./src/tools/HotGestureTool.js","webpack://LMV/./src/tools/HotkeyManager.js","webpack://LMV/./src/tools/KeyCode.js","webpack://LMV/./src/tools/Navigation.js","webpack://LMV/./src/tools/OrbitDollyPanTool.js","webpack://LMV/./src/tools/SelectionType.js","webpack://LMV/./src/tools/Selector.js","webpack://LMV/./src/tools/ToolController.js","webpack://LMV/./src/tools/ToolInterface.js","webpack://LMV/./src/tools/UnifiedCamera.js","webpack://LMV/./src/tools/ViewingUtilities.js","webpack://LMV/./src/tools/VisibilityManager.js","webpack://LMV/./src/tools/WorldUpTool.js","webpack://LMV/./src/tools/autocam/Autocam.js","webpack://LMV/./src/tools/viewtransitions/ViewTransition.js","webpack://LMV/./src/wasm/Wasm.js","webpack://LMV/./src/wgs/globals.js","webpack://LMV/./src/wgs/render/BackgroundShader.js","webpack://LMV/./src/wgs/render/BasicShader.js","webpack://LMV/./src/wgs/render/BlendShader.js","webpack://LMV/./src/wgs/render/CelShader.js","webpack://LMV/./src/wgs/render/CopyShader.js","webpack://LMV/./src/wgs/render/DecodeEnvMap.js","webpack://LMV/./src/wgs/render/EdgeShader.js","webpack://LMV/./src/wgs/render/FXAAShader.js","webpack://LMV/./src/wgs/render/GaussianPass.js","webpack://LMV/./src/wgs/render/GroundFlags.js","webpack://LMV/./src/wgs/render/GroundReflection.js","webpack://LMV/./src/wgs/render/GroundShadow.js","webpack://LMV/./src/wgs/render/HalfFloat.js","webpack://LMV/./src/wgs/render/LineShader.js","webpack://LMV/./src/wgs/render/LineShaderSS.js","webpack://LMV/./src/wgs/render/LineStyleDef.js","webpack://LMV/./src/wgs/render/MaterialConverter.js","webpack://LMV/./src/wgs/render/MaterialConverterCommon.js","webpack://LMV/./src/wgs/render/MaterialManager.js","webpack://LMV/./src/wgs/render/NormalsShader.js","webpack://LMV/./src/wgs/render/PhongShader.js","webpack://LMV/./src/wgs/render/PrismUtil.js","webpack://LMV/./src/wgs/render/RenderContext.js","webpack://LMV/./src/wgs/render/RenderContextPostProcess.js","webpack://LMV/./src/wgs/render/SAOBlurShader.js","webpack://LMV/./src/wgs/render/SAOMinifyShader.js","webpack://LMV/./src/wgs/render/SAOShader.js","webpack://LMV/./src/wgs/render/ShaderChunks.js","webpack://LMV/./src/wgs/render/ShaderPass.js","webpack://LMV/./src/wgs/render/ShaderUtils.js","webpack://LMV/./src/wgs/render/ShadowMap.js","webpack://LMV/./src/wgs/render/SheetRenderContext.js","webpack://LMV/./src/wgs/render/WebGLProgram.js","webpack://LMV/./src/wgs/render/WebGLRenderer.js","webpack://LMV/./src/wgs/render/WebGLShader.js","webpack://LMV/./src/wgs/render/chunks/cutplanes.glsl","webpack://LMV/./src/wgs/render/chunks/decl_point_size.glsl","webpack://LMV/./src/wgs/render/chunks/depth_texture.glsl","webpack://LMV/./src/wgs/render/chunks/env_sample.glsl","webpack://LMV/./src/wgs/render/chunks/final_frag.glsl","webpack://LMV/./src/wgs/render/chunks/float3_average.glsl","webpack://LMV/./src/wgs/render/chunks/hatch_pattern.glsl","webpack://LMV/./src/wgs/render/chunks/hsv.glsl","webpack://LMV/./src/wgs/render/chunks/id_decl_frag.glsl","webpack://LMV/./src/wgs/render/chunks/id_decl_vert.glsl","webpack://LMV/./src/wgs/render/chunks/id_frag.glsl","webpack://LMV/./src/wgs/render/chunks/id_vert.glsl","webpack://LMV/./src/wgs/render/chunks/instancing_decl_vert.glsl","webpack://LMV/./src/wgs/render/chunks/line_decl_common.glsl","webpack://LMV/./src/wgs/render/chunks/normal_map.glsl","webpack://LMV/./src/wgs/render/chunks/ordered_dither.glsl","webpack://LMV/./src/wgs/render/chunks/pack_depth.glsl","webpack://LMV/./src/wgs/render/chunks/pack_normals.glsl","webpack://LMV/./src/wgs/render/chunks/point_size.glsl","webpack://LMV/./src/wgs/render/chunks/prism_glazing.glsl","webpack://LMV/./src/wgs/render/chunks/prism_transparency.glsl","webpack://LMV/./src/wgs/render/chunks/prism_wood.glsl","webpack://LMV/./src/wgs/render/chunks/shadowmap_decl_common.glsl","webpack://LMV/./src/wgs/render/chunks/shadowmap_decl_frag.glsl","webpack://LMV/./src/wgs/render/chunks/shadowmap_decl_vert.glsl","webpack://LMV/./src/wgs/render/chunks/shadowmap_vert.glsl","webpack://LMV/./src/wgs/render/chunks/theming_decl_frag.glsl","webpack://LMV/./src/wgs/render/chunks/theming_frag.glsl","webpack://LMV/./src/wgs/render/chunks/tonemap.glsl","webpack://LMV/./src/wgs/render/chunks/wide_lines_decl.glsl","webpack://LMV/./src/wgs/render/chunks/wide_lines_vert.glsl","webpack://LMV/./src/wgs/render/shaders/background_frag.glsl","webpack://LMV/./src/wgs/render/shaders/background_vert.glsl","webpack://LMV/./src/wgs/render/shaders/basic_frag.glsl","webpack://LMV/./src/wgs/render/shaders/basic_vert.glsl","webpack://LMV/./src/wgs/render/shaders/blend_frag.glsl","webpack://LMV/./src/wgs/render/shaders/cel_frag.glsl","webpack://LMV/./src/wgs/render/shaders/copy_frag.glsl","webpack://LMV/./src/wgs/render/shaders/edge_frag.glsl","webpack://LMV/./src/wgs/render/shaders/edge_vert.glsl","webpack://LMV/./src/wgs/render/shaders/fxaa_frag.glsl","webpack://LMV/./src/wgs/render/shaders/fxaa_vert.glsl","webpack://LMV/./src/wgs/render/shaders/gaussian_frag.glsl","webpack://LMV/./src/wgs/render/shaders/gaussian_vert.glsl","webpack://LMV/./src/wgs/render/shaders/groundreflection_draw_frag.glsl","webpack://LMV/./src/wgs/render/shaders/groundshadow_ao_frag.glsl","webpack://LMV/./src/wgs/render/shaders/groundshadow_blur_frag.glsl","webpack://LMV/./src/wgs/render/shaders/groundshadow_color_frag.glsl","webpack://LMV/./src/wgs/render/shaders/groundshadow_depth_frag.glsl","webpack://LMV/./src/wgs/render/shaders/groundshadow_depth_vert.glsl","webpack://LMV/./src/wgs/render/shaders/line_frag.glsl","webpack://LMV/./src/wgs/render/shaders/line_vert.glsl","webpack://LMV/./src/wgs/render/shaders/liness_frag.glsl","webpack://LMV/./src/wgs/render/shaders/liness_vert.glsl","webpack://LMV/./src/wgs/render/shaders/normals_frag.glsl","webpack://LMV/./src/wgs/render/shaders/normals_vert.glsl","webpack://LMV/./src/wgs/render/shaders/phong_frag.glsl","webpack://LMV/./src/wgs/render/shaders/phong_vert.glsl","webpack://LMV/./src/wgs/render/shaders/sao_blur_frag.glsl","webpack://LMV/./src/wgs/render/shaders/sao_frag.glsl","webpack://LMV/./src/wgs/render/shaders/sao_min_frag.glsl","webpack://LMV/./src/wgs/render/shaders/sao_minfirst_frag.glsl","webpack://LMV/./src/wgs/render/shaders/screen_quad_uv_vert.glsl","webpack://LMV/./src/wgs/render/shaders/screen_quad_vert.glsl","webpack://LMV/./src/wgs/render/shaders/shadowmap_frag.glsl","webpack://LMV/./src/wgs/render/shaders/shadowmap_ground_frag.glsl","webpack://LMV/./src/wgs/render/shaders/shadowmap_ground_vert.glsl","webpack://LMV/./src/wgs/render/shaders/shadowmap_vert.glsl","webpack://LMV/./src/wgs/render/shaders/sheet_render_frag.glsl","webpack://LMV/./src/wgs/render/shaders/sheet_render_vert.glsl","webpack://LMV/./src/wgs/scene/BVHBuilder.js","webpack://LMV/./src/wgs/scene/BufferGeometry.js","webpack://LMV/./src/wgs/scene/DeriveTopology.js","webpack://LMV/./src/wgs/scene/FragmentList.js","webpack://LMV/./src/wgs/scene/FrustumIntersector.js","webpack://LMV/./src/wgs/scene/GeometryList.js","webpack://LMV/./src/wgs/scene/InstanceTree.js","webpack://LMV/./src/wgs/scene/InstanceTreeStorage.js","webpack://LMV/./src/wgs/scene/IntArray.js","webpack://LMV/./src/wgs/scene/LmvBox3.js","webpack://LMV/./src/wgs/scene/LmvMatrix4.js","webpack://LMV/./src/wgs/scene/LmvVector3.js","webpack://LMV/./src/wgs/scene/MeshFlags.js","webpack://LMV/./src/wgs/scene/ModelExploder.js","webpack://LMV/./src/wgs/scene/ModelIteratorBVH.js","webpack://LMV/./src/wgs/scene/ModelIteratorLinear.js","webpack://LMV/./src/wgs/scene/RenderBatch.js","webpack://LMV/./src/wgs/scene/RenderFlags.js","webpack://LMV/./src/wgs/scene/RenderModel.js","webpack://LMV/./src/wgs/scene/RenderScene.js","webpack://LMV/./src/wgs/scene/ResetFlags.js","webpack://LMV/./src/wgs/scene/SceneMath.js","webpack://LMV/./src/wgs/scene/SelectionMode.js","webpack://LMV/./src/wgs/scene/SortedList.js","webpack://LMV/./src/wgs/scene/VBIntersector.js","webpack://LMV/./src/wgs/scene/VertexBufferReader.js","webpack://LMV/./src/wgs/scene/VertexBufferWriter.js","webpack://LMV/./src/wgs/scene/VertexEnumerator.js","webpack://LMV/./src/wgs/scene/consolidation/Consolidation.js","webpack://LMV/./src/wgs/scene/consolidation/ConsolidationIterator.js","webpack://LMV/./src/wgs/scene/consolidation/FragmentListConsolidation.js","webpack://LMV/./src/wgs/scene/consolidation/GeomMergeTask.js","webpack://LMV/./src/wgs/scene/consolidation/InstanceBufferBuilder.js","webpack://LMV/./src/wgs/scene/consolidation/ParallelGeomMerge.js","webpack://LMV/./src/wgs/scene/leaflet/ModelIteratorTexQuad.js","webpack://LMV/./src/wgs/scene/leaflet/TexQuadUtils.js","webpack://LMV/./src/wgs/scene/leaflet/TileCoords.js","webpack://LMV/./thirdparty/hammer/hammer.js","webpack://LMV/./thirdparty/lodash/lodash.custom.js","webpack://LMV/./thirdparty/resize-observer-polyfill/ResizeObserver.min.js","webpack://LMV/./thirdparty/three.js/DDSLoader.js","webpack://LMV/./thirdparty/three.js/three.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 = \"./src/index.js\");\n","\nimport { Extension } from \"../../src/application/Extension\";\nimport { TOOL_CHANGE_EVENT, NAVIGATION_MODE_CHANGED_EVENT, CAMERA_CHANGE_EVENT } from \"../../src/application/EventTypes\";\nimport { TOOLBAR } from \"../../src/gui/GuiViewerToolbarConst\";\nimport { ComboButton } from \"../../src/gui/controls/ComboButton\";\nimport { Button } from \"../../src/gui/controls/Button\";\nimport { FovTool } from \"../../src/tools/FovTool\";\nimport { WorldUpTool } from \"../../src/tools/WorldUpTool\";\nimport { i18n } from \"../../src/globalization/i18next\";\nimport { RadioButtonGroup } from \"../../src/gui/controls/RadioButtonGroup\";\nimport { isTouchDevice } from \"../../src/compat\";\nimport { HudMessage } from \"../../src/gui/HudMessage\";\n\n\nvar MODE_PAN = 'pan';\nvar MODE_DOLLY = 'dolly';\nvar MODE_FREE_ORBIT = 'freeorbit';\nvar MODE_ORBIT = 'orbit';\nvar MODE_FOV = 'fov'; // it's actually just an action.\nvar MODE_WORLD_UP = 'worldup';\nvar MODE_FIT_TO_VIEW = 'fittoview';\n\n/**\n * Adds toolbar buttons to Orbit, Pan and Dolly.\n * It also adds camera interaction buttons for Fit to View, Focal Length and Roll \n * \n * The extension id is: `Autodesk.DefaultTools.NavTools`\n * \n * @example\n * viewer.loadExtension('Autodesk.DefaultTools.NavTools')\n * \n * @memberof Autodesk.Viewing.Extensions\n * @alias Autodesk.Viewing.Extensions.NavToolsExtension\n * @see {@link Autodesk.Viewing.Extension} for common inherited methods.\n * @constructor\n */\nexport function NavToolsExtension(viewer, options) {\n Extension.call(this, viewer, options);\n this.name = 'navtools';\n this.modes = [MODE_PAN, MODE_DOLLY, MODE_FREE_ORBIT, MODE_ORBIT, MODE_FOV, MODE_WORLD_UP, MODE_FIT_TO_VIEW];\n this.onToolChanged = this.onToolChanged.bind(this);\n this.onNavigationModeChanged = this.onNavigationModeChanged.bind(this);\n this.navToolsConfig = options.navToolsConfig || {};\n}\n\nNavToolsExtension.prototype = Object.create(Extension.prototype);\nNavToolsExtension.prototype.constructor = NavToolsExtension;\n\nvar proto = NavToolsExtension.prototype;\n\nfunction createNavToggler(self, button, mode) {\n return function () {\n if (self.isActive(mode)) {\n self.deactivate();\n } else {\n self.activate(mode);\n }\n };\n}\n\nproto.load = function () {\n var viewer = this.viewer;\n\n // Register tools\n var fovtool = new FovTool(viewer);\n viewer.toolController.registerTool(fovtool);\n\n if (!this.navToolsConfig.isAECCameraControls) {\n var rolltool = new WorldUpTool(viewer.impl, viewer);\n viewer.toolController.registerTool(rolltool);\n }\n\n this.initFocalLengthOverlay();\n\n viewer.addEventListener(TOOL_CHANGE_EVENT, this.onToolChanged);\n viewer.addEventListener(NAVIGATION_MODE_CHANGED_EVENT, this.onNavigationModeChanged);\n\n return true;\n};\n\n// Ensure that toolbar is properly configured for 2d/3d\nproto.updateUI = function (is3d) {\n if (is3d !== this.is3d) {\n this._destroyUI();\n this._createUI(is3d);\n }\n};\n\nproto.onToolbarCreated = function (toolbar) {\n var is3d = !this.viewer.impl.is2d;\n this._createUI(is3d);\n};\n\nproto.navActionDisplayMode = function (action) {\n return this.viewer.navigation.isActionEnabled(action) ? 'block' : 'none';\n};\n\nproto._createUI = function (is3d)\n{\n // Adds the UI for the default navigation tools (orbit, pan, dolly, camera controls)\n var viewer = this.viewer;\n var toolbar = viewer.getToolbar();\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n if (is3d) {\n var orbitToolsButton = new ComboButton('toolbar-orbitTools');\n orbitToolsButton.setToolTip('Orbit');\n orbitToolsButton.setIcon(\"adsk-icon-orbit-constrained\");\n orbitToolsButton.setDisplay(this.navActionDisplayMode('orbit'));\n\n this.createOrbitSubmenu(orbitToolsButton);\n\n navTools.addControl(orbitToolsButton);\n navTools.orbittoolsbutton = orbitToolsButton;\n orbitToolsButton.setState(Button.State.ACTIVE);\n\n navTools.returnToDefault = function () {\n orbitToolsButton.setState(Button.State.ACTIVE);\n };\n }\n\n var panButton = new Button('toolbar-panTool');\n panButton.setToolTip('Pan');\n panButton.setIcon(\"adsk-icon-pan\");\n panButton.onClick = createNavToggler(this, panButton, MODE_PAN);\n panButton.setDisplay(this.navActionDisplayMode('pan'));\n\n navTools.addControl(panButton);\n navTools.panbutton = panButton;\n\n if (!is3d) {\n navTools.returnToDefault = function () {\n panButton.setState(Button.State.ACTIVE);\n };\n navTools.returnToDefault(); // Assume 'pan' is the default navigation tool.\n }\n\n var dollyButton = new Button('toolbar-zoomTool');\n dollyButton.setToolTip('Zoom');\n dollyButton.setIcon(\"adsk-icon-zoom\");\n dollyButton.onClick = createNavToggler(this, dollyButton, MODE_DOLLY);\n dollyButton.setDisplay(this.navActionDisplayMode('zoom'));\n\n navTools.addControl(dollyButton);\n navTools.dollybutton = dollyButton;\n\n if (this.navToolsConfig.isAECCameraControls) {\n // AEC applications such as Docs and Design Collaboration only have a need for Fit to View\n navTools.addControl(this.createFitViewButton(navTools));\n } else {\n var cameraButton = new ComboButton('toolbar-cameraSubmenuTool');\n cameraButton.setToolTip('Camera interactions');\n cameraButton.setIcon(\"adsk-icon-camera\");\n cameraButton.saveAsDefault();\n this.createCameraSubmenu(cameraButton, is3d);\n navTools.addControl(cameraButton);\n navTools.camerabutton = cameraButton;\n }\n\n // remember if we initialized for 3d or 2d\n this.is3d = is3d;\n};\n\nproto.createOrbitSubmenu = function (parentButton) {\n var viewer = this.viewer;\n var toolbar = viewer.getToolbar();\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n var freeOrbitButton = new Button('toolbar-freeOrbitTool');\n freeOrbitButton.setToolTip('Free orbit');\n freeOrbitButton.setIcon(\"adsk-icon-orbit-free\");\n freeOrbitButton.onClick = createNavToggler(this, freeOrbitButton, MODE_FREE_ORBIT);\n\n parentButton.addControl(freeOrbitButton);\n navTools.freeorbitbutton = freeOrbitButton;\n\n var orbitButton = new Button('toolbar-orbitTool');\n orbitButton.setToolTip('Orbit');\n orbitButton.setIcon(\"adsk-icon-orbit-constrained\");\n orbitButton.onClick = createNavToggler(this, orbitButton, MODE_ORBIT);\n\n parentButton.addControl(orbitButton);\n navTools.orbitbutton = orbitButton;\n\n parentButton.onClick = orbitButton.onClick; // default\n\n};\n\nproto.createFitViewButton = function (navTools, parentButton) {\n //options = { defaultTooltipValue : \"Fit to view (F)\" };\n var viewer = this.viewer;\n var fitToViewButton = new Button('toolbar-fitToViewTool');\n fitToViewButton.setToolTip('Fit to view');\n fitToViewButton.setIcon(\"adsk-icon-fit-to-view\");\n fitToViewButton.onClick = function (e) {\n viewer.impl.fitToView(viewer.impl.selector.getAggregateSelection());\n var analytics = Autodesk.Viewing.Private.analytics;\n analytics.track('viewer.fit_to_view', {\n from: 'UI' });\n\n var defaultNavToolName = viewer.getDefaultNavigationToolName();\n viewer.setActiveNavigationTool(defaultNavToolName);\n parentButton && parentButton.restoreDefault();\n };\n fitToViewButton.setDisplay(this.navActionDisplayMode('gotoview'));\n\n navTools.fittoviewbutton = fitToViewButton;\n\n return fitToViewButton;\n};\n\nproto.createCameraSubmenu = function (parentButton, is3d)\n{\n var self = this;\n var viewer = this.viewer;\n var toolbar = viewer.getToolbar();\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n if (isTouchDevice()) {\n var homeButton = new Button('toolbar-homeTool');\n homeButton.setToolTip('Home');\n homeButton.setIcon(\"adsk-icon-home\");\n homeButton.onClick = function () {\n viewer.navigation.setRequestHomeView(true);\n var defaultNavToolName = viewer.getDefaultNavigationToolName();\n self.activate(defaultNavToolName);\n parentButton.restoreDefault();\n };\n homeButton.setDisplay(this.navActionDisplayMode('gotoview'));\n\n parentButton.addControl(homeButton);\n navTools.homebutton = homeButton;\n }\n\n parentButton.addControl(this.createFitViewButton(navTools, parentButton));\n\n if (is3d) {\n //options.defaultTooltipValue = \"Focal length (Ctrl+Shift drag)\";\n var fovButton = new Button('toolbar-focalLengthTool');\n fovButton.setToolTip('Focal length');\n fovButton.setIcon(\"adsk-icon-fov\");\n fovButton.onClick = createNavToggler(this, fovButton, MODE_FOV);\n fovButton.setDisplay(this.navActionDisplayMode('fov'));\n\n parentButton.addControl(fovButton);\n navTools.fovbutton = fovButton;\n }\n\n //options.defaultTooltipValue = \"Roll (Alt+Shift drag)\";\n var rollButton = new Button('toolbar-rollTool');\n rollButton.setToolTip('Roll');\n rollButton.setIcon(\"adsk-icon-roll\");\n rollButton.onClick = createNavToggler(this, rollButton, MODE_WORLD_UP);\n rollButton.setDisplay(this.navActionDisplayMode('roll'));\n\n parentButton.addControl(rollButton);\n navTools.rollbutton = rollButton;\n};\n\nproto.onToolChanged = function (event) {\n\n if (event.toolName === \"fov\") {\n this.showFocalLengthOverlay(event.active);\n }\n\n // Special case for ALT-drag-release\n if (event.active) {\n switch (event.toolName) {\n case \"dolly\":\n this.handleAltRelease('dollybutton');\n break;\n case \"pan\":\n this.handleAltRelease('panbutton');\n break;\n case \"worldup\":\n this.handleAltRelease('rollbutton');\n break;\n case \"fov\":\n this.handleAltRelease('fovbutton');\n break;}\n\n }\n};\n\nproto.onNavigationModeChanged = function (event) {\n var defaultNavToolName = this.viewer.getDefaultNavigationToolName();\n if (defaultNavToolName === event.id) {\n var toolbar = this.viewer.getToolbar();\n if (!toolbar)\n return;\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n if (!navTools)\n return;\n navTools.returnToDefault && navTools.returnToDefault();\n }\n};\n\nproto.handleAltRelease = function (buttonName) {\n var toolbar = this.viewer.getToolbar();\n if (!toolbar)\n return;\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n var button = navTools && navTools[buttonName];\n button && button.setState(Button.State.ACTIVE);\n};\n\nproto.initFocalLengthOverlay = function () {\n\n var _document = this.getDocument();\n var container = this.focallength = _document.createElement(\"div\");\n\n container.classList.add(\"message-panel\");\n container.classList.add(\"docking-panel\");\n container.classList.add(\"focal-length\");\n container.classList.add(\"docking-panel-container-solid-color-b\");\n\n var table = _document.createElement(\"table\");\n var tbody = _document.createElement(\"tbody\");\n table.appendChild(tbody);\n\n container.appendChild(table);\n this.viewer.container.appendChild(container);\n\n var row = tbody.insertRow(-1);\n var cell = row.insertCell(0);\n cell.classList.add(\"name\");\n cell.setAttribute(\"data-i18n\", \"Focal Length\");\n cell.textContent = i18n.translate(\"Focal Length\");\n\n cell = row.insertCell(1);\n cell.classList.add(\"value\");\n cell.textContent = '';\n this.fovCell = cell;\n\n container.style.visibility = \"hidden\";\n};\n\nproto.showFocalLengthOverlay = function (state) {\n var self = this;\n var viewer = this.viewer;\n var myFocalLength = 0;\n\n function showFovHudMessage(yes) {\n if (yes) {\n // Display a hud messages.\n var messageSpecs = {\n \"msgTitleKey\": \"Orthographic View Set\",\n \"messageKey\": \"The view is set to Orthographic\",\n \"messageDefaultValue\": \"The view is set to Orthographic. Changing the focal length will switch to Perspective.\" };\n\n HudMessage.displayMessage(viewer.container, messageSpecs);\n } else\n {\n HudMessage.dismiss();\n }\n }\n\n function showFov(yes) {\n if (yes) updateFOV();\n\n if (self.focallength)\n self.focallength.style.visibility = yes ? \"visible\" : \"hidden\";\n }\n\n function updateFOV() {\n var camFocalLength = viewer.getFocalLength();\n if (myFocalLength !== camFocalLength)\n {\n myFocalLength = camFocalLength;\n self.fovCell.textContent = camFocalLength.toString() + \" mm\";\n }\n }\n\n function watchFOV(e) {\n updateFOV();\n // If camera changed to ORTHO and we are still in FOV mode\n // put up the warning message that the system will switch to perspective.\n //\n if (viewer.toolController.getActiveToolName() === \"fov\") {\n var camera = viewer.navigation.getCamera();\n var isOrtho = camera && !camera.isPerspective;\n\n showFov(!isOrtho);\n showFovHudMessage(isOrtho);\n }\n }\n var camera = viewer.navigation.getCamera();\n var isOrtho = camera && !camera.isPerspective;\n\n showFov(state && !isOrtho);\n showFovHudMessage(state && isOrtho);\n\n if (state) {\n viewer.addEventListener(CAMERA_CHANGE_EVENT, watchFOV);\n } else\n {\n viewer.removeEventListener(CAMERA_CHANGE_EVENT, watchFOV);\n }\n};\n\nproto.unload = function () {\n this._destroyUI();\n\n return true;\n};\n\nproto._destroyUI = function () {\n // Removes the UI created in createUI\n var viewer = this.viewer;\n var toolbar = viewer.getToolbar();\n\n if (!toolbar) {\n return true;\n }\n\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n if (!navTools) {\n return true;\n }\n\n function destroyComboButton(button) {\n if (button) {\n button.subMenu.removeEventListener(RadioButtonGroup.Event.ACTIVE_BUTTON_CHANGED, button.subMenuActiveButtonChangedHandler(navTools));\n navTools.removeControl(button.getId());\n button.onClick = null;\n }\n }\n\n function destroyButton(button) {\n if (button) {\n navTools.removeControl(button.getId());\n button.onClick = null;\n }\n }\n\n if (this.is3d) {\n destroyComboButton(navTools.orbittoolsbutton);\n navTools.orbittoolsbutton = null;\n\n destroyButton(navTools.orbitbutton);\n navTools.orbitbutton = null;\n\n destroyButton(navTools.freeorbitbutton);\n navTools.freeorbitbutton = null;\n\n destroyButton(navTools.fovbutton);\n navTools.fovbutton = null;\n }\n\n destroyButton(navTools.panbutton);\n navTools.panbutton = null;\n\n destroyButton(navTools.dollybutton);\n navTools.dollybutton = null;\n\n destroyComboButton(navTools.camerabutton);\n navTools.camerabutton = null;\n\n destroyButton(navTools.rollbutton);\n navTools.rollbutton = null;\n\n destroyButton(navTools.fittoviewbutton);\n navTools.fittoviewbutton = null;\n\n if (this.focallength) {\n viewer.container.removeChild(this.focallength);\n this.focallength = null;\n }\n\n // Remove Listeners\n viewer.removeEventListener(TOOL_CHANGE_EVENT, this.toolChangedHandler);\n this.toolChangedHandler = null;\n viewer.removeEventListener(NAVIGATION_MODE_CHANGED_EVENT, this.navChangedHandler);\n this.navChangedHandler = null;\n\n return true;\n};\n\n/**\n * Performs the corresponding button action.\n * @param {string} mode - one of the supported modes, see getModes().\n * \n * @memberof Autodesk.Viewing.Extensions.NavToolsExtension\n * @alias Autodesk.Viewing.Extensions.NavToolsExtension#activate\n */\nproto.activate = function (mode) {\n if (this.isActive(mode)) {\n return false;\n }\n if (mode === MODE_FIT_TO_VIEW) {\n this.viewer.impl.fitToView(this.viewer.impl.selector.getAggregateSelection());\n return true;\n }\n if (this.modes.indexOf(mode) != -1) {\n var defaultTool = this.viewer.getDefaultNavigationToolName();\n // NOTE: Dirty Hack\n // LMV-4998: Set the defaultTool to one of the NavTool if the default navigation tool is set by a different extension.\n if (this.modes.indexOf(defaultTool) === -1) {\n this.viewer.activateDefaultNavigationTools(this.viewer.model.is2d());\n }\n this.viewer.setActiveNavigationTool(mode);\n return true;\n }\n return false;\n};\n\n/**\n * Deactivates the current mode and activates the default viewer's navigation tool.\n * @returns {bool} true when deactivation is successful.\n * \n * @memberof Autodesk.Viewing.Extensions.NavToolsExtension\n * @alias Autodesk.Viewing.Extensions.NavToolsExtension#deactivate\n */\nproto.deactivate = function () {\n this.viewer.setActiveNavigationTool();\n return true;\n};\n\n/**\n * Checks whether a specific supported mode is currently active.\n * \n * @param {string} mode - one of the supported modes.\n * @returns {bool} true is the mode queried is currently active.\n * \n * @memberof Autodesk.Viewing.Extensions.NavToolsExtension\n * @alias Autodesk.Viewing.Extensions.NavToolsExtension#isActive\n */\nproto.isActive = function (mode) {\n var currMode = this.viewer.getActiveNavigationTool();\n return currMode === mode;\n};","\nimport { Extension } from \"../../src/application/Extension\";\nimport { ExplodeTool } from './ExplodeTool';\nimport { isIOSDevice, isIE11, isAndroidDevice } from \"../../src/compat\";\nimport { Button } from \"../../src/gui/controls/Button\";\nimport { stringToDOM } from \"../../src/globals\";\nimport { logger } from \"../../src/logger/Logger\";\nimport { EXPLODE_CHANGE_EVENT } from \"../../src/application/EventTypes\";\n\nvar avp = Autodesk.Viewing.Private;\n\n/**\n * \n * \n * Use its `activate()` method to enable the explode UI.\n * \n * The extension id is: `Autodesk.Explode`\n * \n * @example\n * viewer.loadExtension('Autodesk.Explode')\n * \n * @memberof Autodesk.Viewing.Extensions\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension\n * @see {@link Autodesk.Viewing.Extension} for common inherited methods.\n * @constructor\n */\nexport function ExplodeExtension(viewer, options) {\n Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.options = options;\n this.name = \"explode\";\n\n this.deactivate = this.deactivate.bind(this);\n this._onExplode = this._onExplode.bind(this);\n\n this.tool = null;\n\n // these below are all assinged in _createUI()\n this._slider = null;\n this._explodeButton = null;\n this._explodeSubmenu = null;\n this._tooltip = null;\n}\nExplodeExtension.prototype = Object.create(Extension.prototype);\nExplodeExtension.prototype.constructor = ExplodeExtension;\n\nvar proto = ExplodeExtension.prototype;\n\n/**\n * Adds an explode button to the toolbar. When pressed, a slider\n * will be shown which allows changing the model's explosion value.\n * \n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#load\n */\nproto.load = function () {\n this.tool = new ExplodeTool(this.viewer);\n this.viewer.toolController.registerTool(this.tool, this.setActive.bind(this));\n // No matter whether the UI initializes, the extension always loads.\n return true;\n};\n\n/**\n * Removes the explode button from the toolbar and deactivates the explode state.\n * \n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#unload\n */\nproto.unload = function () {\n\n this.deactivate();\n _destroyUI(this);\n\n this.viewer.toolController.deregisterTool(this.tool);\n this.tool = null;\n\n return true;\n};\n\n/**\n * Invoked by the viewer when the toolbar UI is available.\n *\n * @param {Autodesk.Viewing.UI.ToolBar} toolbar - toolbar instance.\n *\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#onToolbarCreated\n */\nproto.onToolbarCreated = function (toolbar) {\n _createUI(this, toolbar);\n};\n\n/**\n * Displays the explode UI.\n * \n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#activate\n */\nproto.activate = function () {\n if (this.isActive())\n return true;\n\n if (!this._explodeSubmenu)\n return false;\n\n this._explodeSubmenu.style.display = \"\";\n this._explodeButton.setState(Button.State.ACTIVE);\n this._tooltip.style.display = \"none\";\n\n // Sync slider with viewer's explode value\n var lmvExplodeValue = this.viewer.impl.getExplodeScale();\n this._slider.value = lmvExplodeValue;\n\n this.viewer.toolController.activateTool(\"explode\");\n\n // Update UI only when the event is fired\n this.viewer.addEventListener(EXPLODE_CHANGE_EVENT, this._onExplode);\n\n return true;\n};\n\n/**\n * Hides the explode UI and resets explode slider.\n * \n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#deactivate\n */\nproto.deactivate = function () {\n if (!this.isActive())\n return true;\n\n if (!this._explodeSubmenu)\n return true;\n\n this._explodeButton.setState(Button.State.INACTIVE);\n _hideSlider(this);\n\n this.viewer.toolController.deactivateTool(\"explode\"); // Resets the UI slider via event handler.\n\n // Update UI only when the event is fired\n this.viewer.removeEventListener(EXPLODE_CHANGE_EVENT, this._onExplode);\n\n return true;\n};\n\n/**\n * @returns {boolean} true is the explode UI is visible.\n *\n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#isActive\n */\nproto.isActive = function () {\n if (!this._explodeSubmenu)\n return false;\n return this._explodeSubmenu.style.display !== 'none';\n};\n\n/**\n * @returns {number} Between 0 and 1.\n *\n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#getScale\n */\nproto.getScale = function () {\n return this.viewer.getExplodeScale();\n};\n\n/**\n * Applies an explode operation.\n *\n * @param {number} value - Between 0 and 1.\n *\n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#setScale\n */\nproto.setScale = function (value) {\n return this.tool.setScale(value);\n};\n\n/**\n * Specifies the algorithm used for exploding models.\n * \n * @param {string} strategy - Either 'hierarchy' or 'radial'.\n *\n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#setStrategy\n */\nproto.setStrategy = function (strategy) {\n if (strategy !== this.getStrategy()) {\n this.viewer.prefs.set(avp.Prefs3D.EXPLODE_STRATEGY, strategy);\n }\n};\n\n/**\n * Returns an identifier for the algorithm used for exploding models.\n * \n * @returns {string} \n *\n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#getStrategy\n */\nproto.getStrategy = function () {\n return this.viewer.prefs.get(avp.Prefs3D.EXPLODE_STRATEGY);\n};\n\n/**\n * @private\n */\nproto._onExplode = function (event) {\n this._slider.value = event.scale;\n};\n\n/**\n * Enable / Disable the explode button & slider.\n * Doesn't affect the state of the explode scale itself.\n *\n * @param {boolean} enable - enable / disable the UI.\n * \n * @memberof Autodesk.Viewing.Extensions.ExplodeExtension\n * @alias Autodesk.Viewing.Extensions.ExplodeExtension#setUIEnabled\n */\nproto.setUIEnabled = function (enable) {\n if (this._explodeButton) {\n if (enable) {\n // Re-enable button\n this._explodeButton.setState(Autodesk.Viewing.UI.Button.State.INACTIVE);\n\n if (this._wasActive) {\n this.activate();\n }\n } else {\n this._wasActive = this.isActive();\n\n // We don't just use deactivate() because you want to keep the explode scale.\n _hideSlider(this);\n\n // Disable button\n this._explodeButton.setState(Autodesk.Viewing.UI.Button.State.DISABLED);\n }\n }\n};\n\n/**\n * Create toolbar button, explode slider and all other UI.\n *\n * @private\n */\nfunction _createUI(ext, toolbar) {\n\n var avu = Autodesk.Viewing.UI;\n var viewer = ext.viewer;\n\n var explodeButton = new Button('toolbar-explodeTool');\n explodeButton.setIcon(\"adsk-icon-explode\");\n explodeButton.setToolTip(\"Explode model\");\n viewer.modelTools.addControl(explodeButton);\n\n var htmlString = '
';\n var explodeSubmenu = stringToDOM(htmlString);\n\n var parentDom;\n var _document = ext.getDocument();\n if (isIOSDevice()) {\n // hack fix for iOS bug\n // range input not draggable when nested under button\n parentDom = _document.querySelector(\"#toolbar-explodeTool\").parentNode;\n explodeSubmenu.classList.add(\"ios\");\n } else\n if (isAndroidDevice()) {\n // hack fix for Android bug\n // range input not draggable when nested under button\n parentDom = _document.querySelector(\"#toolbar-explodeTool\").parentNode;\n explodeSubmenu.classList.add(\"android\");\n } else\n {\n parentDom = explodeButton.container;\n }\n parentDom.appendChild(explodeSubmenu);\n\n var slider = explodeSubmenu.querySelector(\".explode-slider\");\n slider.addEventListener(isIE11 ? \"change\" : \"input\", function (event) {\n ext.setScale(slider.value);\n });\n\n if (isIE11) {\n // In IE11, the input type=range has a weird default layout...\n slider.style['padding-top'] = '0';\n slider.style['padding-bottom'] = '0';\n slider.style['margin-top'] = '10px';\n }\n\n explodeSubmenu.onclick = function (event) {\n event.stopPropagation();\n };\n\n // hack to disable tooltip\n var tooltip = explodeButton.container.querySelector(\".adsk-control-tooltip\");\n\n explodeButton.onClick = function (event) {\n\n if (ext.isActive()) {\n ext.deactivate();\n } else {\n ext.activate();\n\n // Track tool change only when interacted by the end user.\n logger.track({ category: 'tool_changed', name: 'explode' });\n }\n };\n\n // Keep references\n ext._slider = slider;\n ext._explodeButton = explodeButton;\n ext._explodeSubmenu = explodeSubmenu;\n ext._tooltip = tooltip;\n\n // backwards compatibility references\n viewer.explodeSlider = slider;\n viewer.explodeSubmenu = explodeSubmenu;\n}\n\n/**\n * @param {Object} ext - The extension\n * @private\n */\nfunction _destroyUI(ext) {\n\n var viewer = ext.viewer;\n\n // early bail out if the UI hasn't actually been initialized.\n if (!ext._slider) {\n return;\n }\n\n if (ext._explodeButton) {\n ext._explodeButton.removeFromParent();\n }\n\n // Reset references\n ext._slider = null;\n ext._explodeButton = null;\n ext._explodeSubmenu = null;\n ext._tooltip = null;\n\n // Reset backwards compatibility references\n viewer.explodeSlider = null;\n viewer.explodeSubmenu = null;\n}\n\n/**\n * @param {Object} ext - The extension\n * @private\n */\nfunction _hideSlider(ext) {\n ext._slider.parentNode.style.display = \"none\";\n ext._tooltip.style.display = \"\";\n}","var av = Autodesk.Viewing;\nvar GlobalManagerMixin = av.GlobalManagerMixin;\n\nexport function ExplodeTool(viewer) {\n av.ToolInterface.call(this);\n\n this.names = ['explode'];\n this.viewer = viewer;\n this.setGlobalManager(this.viewer.globalManager);\n this.active = false;\n\n this.activate = function (name, viewer) {\n this.active = true;\n };\n\n this.deactivate = function () {\n this.setScale(0);\n this.active = false;\n };\n\n this.setScale = function (value) {\n return this.viewer.explode(value);\n };\n\n this.isActive = function () {\n return this.active;\n };\n}\n\nGlobalManagerMixin.call(ExplodeTool.prototype);","\nimport { Extension } from \"../../src/application/Extension\";\n\n\n/**\n * Use its `activate()` method to enter fullscreen mode.\n * It performs the same action as the toolbar's fullscreen button.\n * \n * The extension id is: `Autodesk.FullScreen`\n * \n * @example\n * viewer.loadExtension('Autodesk.FullScreen')\n * \n * @memberof Autodesk.Viewing.Extensions\n * @alias Autodesk.Viewing.Extensions.FullScreenExtension\n * @see {@link Autodesk.Viewing.Extension} for common inherited methods.\n * @constructor\n */\nexport function FullScreenExtension(viewer, options) {\n Extension.call(this, viewer, options);\n this.viewer = viewer;\n this.options = options;\n this.name = \"fullscreen\";\n}\nFullScreenExtension.prototype = Object.create(Extension.prototype);\nFullScreenExtension.prototype.constructor = FullScreenExtension;\n\nvar proto = FullScreenExtension.prototype;\n\n/**\n * Enters fullscreen mode.\n * \n * @memberof Autodesk.Viewing.Extensions.FullScreenExtension\n * @alias Autodesk.Viewing.Extensions.FullScreenExtension#activate\n */\nproto.activate = function () {\n if (!this.activeStatus) {\n this.viewer.nextScreenMode();\n this.activeStatus = true;\n }\n return true;\n};\n\n/**\n * Exits fullscreen mode.\n * \n * @memberof Autodesk.Viewing.Extensions.FullScreenExtension\n * @alias Autodesk.Viewing.Extensions.FullScreenExtension#deactivate\n */\nproto.deactivate = function () {\n if (this.activeStatus) {\n this.viewer.escapeScreenMode();\n this.activeStatus = false;\n }\n return true;\n};","// extracted by mini-css-extract-plugin","\nimport { Extension } from \"../../src/application/Extension\";\nimport { TOOLBAR } from \"../../src/gui/GuiViewerToolbarConst\";\nimport { Button } from \"../../src/gui/controls/Button\";\nimport { FusionOrbitTool } from \"./FusionOrbitTool\";\n\nimport \"./FusionOrbit.css\"; // IMPORTANT!!\n\n/**\n * Provides a customization to the orbit tool. \n * \n * The extension id is: `Autodesk.Viewing.FusionOrbit`\n * \n * @example\n * viewer.loadExtension('Autodesk.Viewing.FusionOrbit')\n * \n * @memberof Autodesk.Viewing.Extensions\n * @alias Autodesk.Viewing.Extensions.FusionOrbitExtension\n * @see {@link Autodesk.Viewing.Extension} for common inherited methods.\n * @constructor\n */\nexport function FusionOrbitExtension(viewer, options) {\n Extension.call(this, viewer, options);\n this.name = 'fusionorbit';\n this.modes = ['fusionorbit', 'fusionfreeorbit'];\n}\n\nFusionOrbitExtension.prototype = Object.create(Extension.prototype);\nFusionOrbitExtension.prototype.constructor = FusionOrbitExtension;\n\nvar proto = FusionOrbitExtension.prototype;\n\nproto.load = function () {\n var self = this;\n var viewer = this.viewer;\n\n this.tool = new FusionOrbitTool();\n this.tool.setViewer(viewer);\n viewer.toolController.registerTool(this.tool);\n\n return true;\n};\n\nproto.onToolbarCreated = function (toolbar)\n{\n var self = this;\n var viewer = this.viewer;\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n if (!navTools || !navTools.orbitbutton) {\n return;\n }\n\n // save button behaviors, before modifying them\n this.classicBehavior = {};\n this.classicBehavior.orbitOnClick = navTools.orbitbutton.onClick;\n this.classicBehavior.freeorbitOnClick = navTools.freeorbitbutton.onClick;\n this.classicBehavior.returnToDefault = navTools.returnToDefault;\n\n navTools.freeorbitbutton.onClick = function (e) {\n var state = navTools.freeorbitbutton.getState();\n if (state === Button.State.INACTIVE) {\n self.activate('fusionfreeorbit');\n navTools.freeorbitbutton.setState(Button.State.ACTIVE);\n } else if (state === Button.State.ACTIVE) {\n self.deactivate();\n navTools.freeorbitbutton.setState(Button.State.INACTIVE);\n }\n };\n\n navTools.orbitbutton.onClick = function (e) {\n var state = navTools.orbitbutton.getState();\n if (state === Button.State.INACTIVE) {\n self.activate('fusionorbit');\n navTools.orbitbutton.setState(Button.State.ACTIVE);\n } else if (state === Button.State.ACTIVE) {\n self.deactivate();\n }\n };\n\n navTools.returnToDefault = function () {\n if (navTools.orbittoolsbutton) {// can be null when switching sheets\n // clear active button\n navTools.orbittoolsbutton.setState(Button.State.ACTIVE);\n }\n };\n\n // set combo button\n navTools.orbittoolsbutton.setState(Button.State.INACTIVE);\n if (viewer.prefs.fusionOrbitConstrained) {\n navTools.orbittoolsbutton.onClick = navTools.orbitbutton.onClick;\n navTools.orbittoolsbutton.setIcon(navTools.orbitbutton.iconClass);\n viewer.setDefaultNavigationTool(\"orbit\");\n } else {\n navTools.orbittoolsbutton.onClick = navTools.freeorbitbutton.onClick;\n navTools.orbittoolsbutton.setIcon(navTools.freeorbitbutton.iconClass);\n viewer.setDefaultNavigationTool(\"freeorbit\");\n }\n\n // reset\n viewer.setActiveNavigationTool();\n navTools.returnToDefault && navTools.returnToDefault();\n};\n\nproto.unload = function () {\n\n var viewer = this.viewer;\n\n // restore LMV Classic button behaviors\n if (this.classicBehavior) {\n var toolbar = viewer.getToolbar();\n var navTools = toolbar.getControl(TOOLBAR.NAVTOOLSID);\n\n if (navTools) {\n if (navTools.orbitbutton)\n navTools.orbitbutton.onClick = this.classicBehavior.orbitOnClick;\n\n if (navTools.freeorbitbutton)\n navTools.freeorbitbutton.onClick = this.classicBehavior.freeorbitOnClick;\n\n navTools.returnToDefault = this.classicBehavior.returnToDefault;\n\n if (navTools.orbittoolsbutton) {// can be null when switching sheets\n if (navTools.orbitbutton)\n navTools.orbittoolsbutton.onClick = navTools.orbitbutton.onClick;else\n\n navTools.orbittoolsbutton.onClick = null;\n navTools.orbittoolsbutton.setIcon(\"adsk-icon-orbit-constrained\");\n navTools.orbittoolsbutton.setState(Button.State.ACTIVE);\n }\n }\n this.classicBehavior = null;\n }\n\n viewer.setActiveNavigationTool(\"orbit\");\n viewer.setDefaultNavigationTool(\"orbit\");\n\n // Deregister tool\n viewer.toolController.deregisterTool(this.tool);\n this.tool.setViewer(null);\n this.tool = null;\n\n return true;\n};\n\n/**\n * Activates the extension's tool.\n * \n * @param {string} [mode] - Either 'fusionorbit' (default) or 'fusionfreeorbit'. \n * \n * @memberof Autodesk.Viewing.Extensions.FusionOrbitExtension\n * @alias Autodesk.Viewing.Extensions.FusionOrbitExtension#activate\n */\nproto.activate = function (mode) {\n if (this.activeStatus && this.mode === mode) {\n return;\n }\n switch (mode) {\n default:\n case 'fusionorbit':\n this.viewer.setActiveNavigationTool(\"fusion orbit constrained\");\n this.mode = 'fusionorbit';\n break;\n case 'fusionfreeorbit':\n this.viewer.setActiveNavigationTool(\"fusion orbit\");\n this.mode = 'fusionfreeorbit';\n break;}\n\n this.activeStatus = true;\n return true;\n};\n\n/**\n * Deactivates the extension's tool.\n * \n * @memberof Autodesk.Viewing.Extensions.FusionOrbitExtension\n * @alias Autodesk.Viewing.Extensions.FusionOrbitExtension#deactivate\n */\nproto.deactivate = function () {\n if (this.activeStatus) {\n this.viewer.setActiveNavigationTool();\n this.activeStatus = false;\n }\n return true;\n};","\nimport { stringToDOM } from \"../../src/globals\";\nimport { isTouchDevice } from \"../../src/compat\";\nimport { Navigation } from \"../../src/tools/Navigation\";\n\nvar av = Autodesk.Viewing;\n\nvar html = [\n'