text: /*!
   * LMV v7.9.0
   * 
   * Copyright 2019 Bimfish, Inc.
   * All rights reserved.
   * 
   * This computer source code and related instructions and comments are the
   * unpublished confidential and proprietary information of Bimfish, Inc.
   * and are protected under Federal copyright and state trade secret law.
   * They may not be disclosed to, copied or used by any third party without
   * the prior written consent of Bimfish, Inc.
   * 
   * Bimfish Forge Viewer Usage Limitations:
   * 
   * The Bimfish Forge viewer can only be used to view files generated by
   * Bimfish Forge services. The Bimfish Forge Viewer JavaScript must be
   * delivered from an Bimfish hosted URL.
   */
  Bimfish.Extensions.AEC=function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s="./extensions/AEC/LibraryExports.js")}({"./node_modules/css-loader/index.js!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/CanvasBookmark/CanvasBookmark.css":
  /*!***************************************************************************************************************************!*\
    !*** ./node_modules/css-loader!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/CanvasBookmark/CanvasBookmark.css ***!
    \***************************************************************************************************************************/
  /*! no static exports found */function(n,e,t){(n.exports=t(/*! ../../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([n.i,"/*\nhttps://stackoverflow.com/questions/27900053/css-transition-with-visibility-not-working\n\nVisibility is an animatable property according to the spec, but transitions on visibility do not work gradually, as one might expect.\nInstead transitions on visibility delay hiding an element. On the other hand making an element visible works immediately.\nThis is as it is defined by the spec (in the case of the default timing function) and as it is implemented in the browsers.\n\n    ==> transition: visibility 0.7s, opacity 0.7s;\n*/\n.canvas-bookmark.adsk-button, .clustered-canvas-bookmark.adsk-button, .declustered-canvas-bookmark.adsk-button {\n  position: absolute;\n  left: 0px;\n  top: 0px;\n  border-style: none !important;\n  /* Avoid border on button-hover */\n  color: white;\n  margin: none;\n  padding: 0px;\n  transition: visibility 0.5s, opacity 0.5s;\n  opacity: 0;\n  visibility: hidden; }\n\n.canvas-bookmark.adsk-button {\n  width: 22px;\n  height: 22px; }\n\n.clustered-canvas-bookmark.adsk-button {\n  width: 29px;\n  height: 29px; }\n\n.declustered-canvas-bookmark.adsk-button {\n  width: 29px;\n  height: 29px;\n  color: lightgrey; }\n\n.canvas-bookmark.visible {\n  opacity: 1;\n  visibility: visible; }\n\n.clustered-canvas-bookmark.visible {\n  opacity: 1;\n  visibility: visible; }\n",""])},"./node_modules/css-loader/index.js!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/DropMe/DropMe.css":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/css-loader!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/DropMe/DropMe.css ***!
    \***********************************************************************************************************/
  /*! no static exports found */function(n,e,t){(n.exports=t(/*! ../../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([n.i,".camera-selector {\n  width: 0;\n  height: 0;\n  border-left: 50px solid transparent;\n  border-right: 50px solid transparent;\n  border-top: 100px solid #0696D7;\n  border-radius: 50%;\n  transform-origin: bottom center;\n  position: absolute;\n  opacity: 0.8;\n  pointer-events: none;\n  z-index: 1; }\n\n.camera-selector-position {\n  width: 20px;\n  height: 20px;\n  border-radius: 50%;\n  background-color: #0696D7;\n  position: absolute;\n  opacity: 0.8;\n  pointer-events: none;\n  z-index: 1;\n  transform: scale(1, 1);\n  transition: transform 3s ease-in; }\n\n.camera-selector-position--teleporting {\n  transform: scale(0, 0); }\n\n.camera-selector-background {\n  width: 200px;\n  height: 200px;\n  background-color: #0696D7;\n  opacity: 0.2;\n  position: absolute;\n  pointer-events: none;\n  z-index: 0;\n  transform: translate(-100px, -100px);\n  border-radius: 50%; }\n\n/* mimic issues UI guidance for now as it was the only extension, featuring guidance so far */\n.dropme-guidenace-ui {\n  display: flex;\n  position: absolute;\n  left: 50%;\n  top: 20px;\n  padding: 10px 20px;\n  transform: translate(-50%, 0);\n  align-items: center;\n  border: 1px solid #9ec8f6;\n  border-radius: 4px;\n  background-color: #edf5fd;\n  color: #039be5;\n  font-size: 12px;\n  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);\n  opacity: 1;\n  z-index: 999;\n  overflow-y: hidden; }\n",""])},"./node_modules/css-loader/index.js!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/Minimap3D/Minimap3D.css":
  /*!*****************************************************************************************************************!*\
    !*** ./node_modules/css-loader!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/Minimap3D/Minimap3D.css ***!
    \*****************************************************************************************************************/
  /*! no static exports found */function(n,e,t){(n.exports=t(/*! ../../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([n.i,'/*\nhttps://stackoverflow.com/questions/27900053/css-transition-with-visibility-not-working\n\nVisibility is an animatable property according to the spec, but transitions on visibility do not work gradually, as one might expect.\nInstead transitions on visibility delay hiding an element. On the other hand making an element visible works immediately.\nThis is as it is defined by the spec (in the case of the default timing function) and as it is implemented in the browsers.\n\n    ==> transition: visibility 0.7s, opacity 0.7s;\n*/\n.minimap3D {\n  width: 0px;\n  height: 0px;\n  right: 10px;\n  top: 10px;\n  position: absolute;\n  transition: visibility 0.7s, opacity 0.7s;\n  opacity: 0;\n  visibility: hidden;\n  background: rgba(255, 255, 255, 0.4);\n  /* For side-by-side mode: Make sure that text selection highlighting is disabled on Minimap. Otherwise, fast dragging of the player will\n       color the whole map in blue */\n  user-select: none; }\n\n.minimapScrollArea {\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  /* important for scrolling: the map image contains the whole map but is cropped to the visible area by the parent widget */\n  position: absolute;\n  /* Without this, \'overflow: hidden\' has no effect. */ }\n\n/* Show map left-aligned and without margin */\n.minimap3D.side-by-side {\n  right: 0px;\n  top: 0px;\n  box-sizing: border-box;\n  border-right: none;\n  border-left: solid 2px #979797; }\n\n.minimap3D.side-by-side.left-2d-view {\n  border-left: none;\n  border-right: solid 2px #979797;\n  left: 0px; }\n\n.minimap3D.visible {\n  opacity: 1;\n  visibility: visible; }\n\n/* Note that border changes require to update the anchor point in Minimap.js too */\n.player-widget {\n  width: 0px;\n  height: 0px;\n  position: absolute;\n  transition: opacity 0.7s;\n  opacity: 0;\n  z-index: 2; }\n\n.player-frustum {\n  border-left: 20px solid transparent;\n  border-right: 20px solid transparent;\n  border-top: 40px solid #3590e9;\n  border-radius: 50%;\n  opacity: 0.4;\n  width: 0px;\n  height: 0px;\n  position: absolute;\n  transform-origin: bottom center;\n  cursor: crosshair; }\n\n.player-frustum.touch {\n  border-left: 40px solid transparent;\n  border-right: 40px solid transparent;\n  border-top: 80px solid #3590e9; }\n\n.player-widget.visible {\n  opacity: 0.7; }\n\n.player-position-fill {\n  width: 10px;\n  height: 10px;\n  /* Move circle center to the tip of the frustum shape */\n  left: 15px;\n  /* = (playerFrustum.border-left - width/2)  */\n  top: 35px;\n  /* = (playerFrustum.border-top  - height/2) */\n  position: absolute;\n  border-radius: 50%;\n  background-color: #3590e9;\n  box-shadow: 0px 0px 0px 2px #fff; }\n\n.player-position-fill.touch {\n  /* Move circle center to the tip of the frustum shape */\n  left: 35px;\n  /* = (playerFrustum.border-left - width/2)  */\n  top: 75px;\n  /* = (playerFrustum.border-top  - height/2) */ }\n\n.player-position-hitarea {\n  position: absolute;\n  width: 15px;\n  height: 15px;\n  left: 5px;\n  /* player-position-fill.width/2 */\n  top: 5px;\n  /* player-position-fill.height/2 */\n  border-radius: 50px;\n  transform: translate(-50%, -50%);\n  cursor: grab; }\n\n.player-position-hitarea.touch {\n  width: 50px;\n  height: 50px; }\n\n/* Container for floor image + floor name */\n.mapContainer {\n  position: absolute;\n  left: 0px;\n  top: 0px;\n  opacity: 1; }\n\n.mapImage {\n  position: absolute;\n  left: 0px;\n  top: 0px;\n  pointer-events: none; }\n\n/* Display floor name at top left */\n.floorNameLabel {\n  z-index: 2;\n  position: absolute;\n  top: 0px;\n  left: 0px;\n  opacity: 0.99;\n  background-color: whitesmoke;\n  box-shadow: 1px 3px 10px 0 rgba(0, 0, 0, 0.5);\n  margin: 4px;\n  border-radius: 5px; }\n\n.floorNameLabel.dark {\n  margin-top: 10px;\n  left: 50%;\n  transform: translate(-50%);\n  border-radius: 28px;\n  background-color: rgba(50, 50, 50, 0.8); }\n\n.floorNameLabel.light {\n  margin-top: 10px;\n  left: 50%;\n  transform: translate(-50%);\n  border-radius: 28px;\n  background-color: rgba(255, 255, 255, 0.85);\n  box-shadow: none; }\n\n.floorText {\n  margin: 5px 5px 5px 5px;\n  color: black;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden; }\n\n.floorText.dark {\n  padding: 0px 15px;\n  color: #FFFFFF;\n  font-family: "Artifakt Element", Helvetica, Arial;\n  font-size: 14px; }\n\n.floorText.light {\n  padding: 0px 15px;\n  color: #000;\n  font-family: "Artifakt Element", Helvetica, Arial;\n  font-size: 14px; }\n\n/* Div with text and progressbar - replaces the map image if map computation is running */\n.minimap-placeholder {\n  left: 0px;\n  top: 0px;\n  position: absolute;\n  background-color: rgba(255, 255, 255, 0.5);\n  opacity: 1; }\n\n.minimap-progressWidget {\n  transform: translate(0, -50%);\n  left: 0px;\n  top: 50%;\n  position: relative;\n  height: fit-content;\n  width: calc(100% - 60px);\n  margin-left: 30px;\n  margin-right: 30px; }\n\n.minimap-progressText {\n  color: black;\n  text-align: left;\n  position: relative; }\n\n.minimap-progress {\n  z-index: 10;\n  width: 100%; }\n\n.map-button-bar {\n  z-Index: 2;\n  right: 0px;\n  top: 0px;\n  position: absolute;\n  right: 100%;\n  /* Dock left to mapWidget */\n  display: flex;\n  flex-direction: column;\n  background-color: whitesmoke;\n  box-shadow: 1px 3px 10px 0 rgba(0, 0, 0, 0.5);\n  margin-right: 4px;\n  margin-top: 0px;\n  /* Toolbar is vertically aligned to the upper mapWidget boundary. This is okay, because the mapWidget already has some margin from the canvas boundary. */\n  border-radius: 5px; }\n\n/* In side-by-side, the upper mapWidget edge is matched with the upper canvas edge. So, we add some marigin - otherwise the toolbar would be "glued" to the upper canvas edge. */\n.map-button-bar.side-by-side {\n  margin-top: 4px; }\n\n.map-button-bar.side-by-side.left-2d-view {\n  right: 0px; }\n\n.sheetmap-thumbnail {\n  position: absolute;\n  overflow: hidden; }\n',""])},"./node_modules/css-loader/index.js!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/ui/ListPanel.css":
  /*!**********************************************************************************************************!*\
    !*** ./node_modules/css-loader!./node_modules/sass-loader/dist/cjs.js!./extensions/AEC/ui/ListPanel.css ***!
    \**********************************************************************************************************/
  /*! no static exports found */function(n,e,t){(n.exports=t(/*! ../../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([n.i,'.list-panel {\n  width: 260px;\n  min-width: 260px;\n  height: 260px;\n  min-height: 260px;\n  top: 180px;\n  left: 220px;\n  border-color: transparent; }\n\n.list-panel .itemList {\n  width: 100%;\n  display: flex;\n  flex-direction: column; }\n\n.list-panel .listItem {\n  display: flex;\n  justify-content: space-between;\n  text-align: left;\n  line-height: 35px;\n  background-color: rgba(0, 0, 0, 0);\n  border-style: none;\n  font-family: "ArtifaktElement", "Helvetica Neue", "Segoe UI Semilight", sans-serif;\n  padding: 0 15px; }\n\n.adsk-viewing-viewer.dark-theme .listItem {\n  color: #f3f7fb; }\n\n.adsk-viewing-viewer.light-theme .list-panel .listItem:hover {\n  background-color: rgba(10, 19, 28, 0.2); }\n\n.adsk-viewing-viewer.dark-theme .list-panel .listItem:hover {\n  background-color: #4a555b; }\n\n.list-panel .listItem:focus {\n  outline: none; }\n\n.list-panel .listItem.selected {\n  color: deepskyblue;\n  border-style: none; }\n\n.list-panel .listItem .textContainer {\n  -webkit-mask-image: linear-gradient(to left, transparent, black 1em);\n  mask-image: linear-gradient(to left, transparent, black 1em);\n  white-space: nowrap;\n  overflow: hidden;\n  width: 100%; }\n\n.list-panel .listItem .icon {\n  width: 24px; }\n\n.list-panel .listItem.selected .icon::before {\n  content: \'\\2713\';\n  margin-left: 8px; }\n\n.list-panel-item-warning {\n  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDggOCc+PHBhdGggZmlsbD0nIzZiNzg3ZicgZD0nTTMuMDkgMGMtLjA2IDAtLjEuMDQtLjEzLjA5bC0yLjk0IDYuODFjLS4wMi4wNS0uMDMuMTMtLjAzLjE5di44MWMwIC4wNS4wNC4wOS4wOS4wOWg2LjgxYy4wNSAwIC4wOS0uMDQuMDktLjA5di0uODFjMC0uMDUtLjAxLS4xNC0uMDMtLjE5bC0yLjk0LTYuODFjLS4wMi0uMDUtLjA3LS4wOS0uMTMtLjA5aC0uODF6bS0uMDkgM2gxdjJoLTF2LTJ6bTAgM2gxdjFoLTF2LTF6JyAvPjwvc3ZnPg==");\n  width: 24px;\n  height: 24px;\n  margin-left: auto;\n  margin-top: auto;\n  margin-bottom: auto; }\n',""])},"./node_modules/style-loader/lib/addStyles.js":
  /*!****************************************************!*\
    !*** ./node_modules/style-loader/lib/addStyles.js ***!
    \****************************************************/
  /*! no static exports found */function(n,e,t){var i,o,r={},s=(i=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=i.apply(this,arguments)),o}),a=function(n,e){return e?e.querySelector(n):document.querySelector(n)},l=function(n){var e={};return function(n,t){if("function"==typeof n)return n();if(void 0===e[n]){var i=a.call(this,n,t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(n){i=null}e[n]=i}return e[n]}}(),p=null,d=0,c=[],u=t(/*! ./urls */"./node_modules/style-loader/lib/urls.js");function f(n,e){for(var t=0;t<n.length;t++){var i=n[t],o=r[i.id];if(o){o.refs++;for(var s=0;s<o.parts.length;s++)o.parts[s](i.parts[s]);for(;s<i.parts.length;s++)o.parts.push(y(i.parts[s],e))}else{var a=[];for(s=0;s<i.parts.length;s++)a.push(y(i.parts[s],e));r[i.id]={id:i.id,refs:1,parts:a}}}}function b(n,e){for(var t=[],i={},o=0;o<n.length;o++){var r=n[o],s=e.base?r[0]+e.base:r[0],a={css:r[1],media:r[2],sourceMap:r[3]};i[s]?i[s].parts.push(a):t.push(i[s]={id:s,parts:[a]})}return t}function h(n,e){var t=l(n.insertInto);if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var i=c[c.length-1];if("top"===n.insertAt)i?i.nextSibling?t.insertBefore(e,i.nextSibling):t.appendChild(e):t.insertBefore(e,t.firstChild),c.push(e);else if("bottom"===n.insertAt)t.appendChild(e);else{if("object"!=typeof n.insertAt||!n.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=l(n.insertAt.before,t);t.insertBefore(e,o)}}function m(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n);var e=c.indexOf(n);e>=0&&c.splice(e,1)}function g(n){var e=document.createElement("style");if(void 0===n.attrs.type&&(n.attrs.type="text/css"),void 0===n.attrs.nonce){var i=function(){0;return t.nc}();i&&(n.attrs.nonce=i)}return x(e,n.attrs),h(n,e),e}function x(n,e){Object.keys(e).forEach((function(t){n.setAttribute(t,e[t])}))}function y(n,e){var t,i,o,r;if(e.transform&&n.css){if(!(r="function"==typeof e.transform?e.transform(n.css):e.transform.default(n.css)))return function(){};n.css=r}if(e.singleton){var s=d++;t=p||(p=g(e)),i=k.bind(null,t,s,!1),o=k.bind(null,t,s,!0)}else n.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(n){var e=document.createElement("link");return void 0===n.attrs.type&&(n.attrs.type="text/css"),n.attrs.rel="stylesheet",x(e,n.attrs),h(n,e),e}(e),i=M.bind(null,t,e),o=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=g(e),i=j.bind(null,t),o=function(){m(t)});return i(n),function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap)return;i(n=e)}else o()}}n.exports=function(n,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=s()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var t=b(n,e);return f(t,e),function(n){for(var i=[],o=0;o<t.length;o++){var s=t[o];(a=r[s.id]).refs--,i.push(a)}n&&f(b(n,e),e);for(o=0;o<i.length;o++){var a;if(0===(a=i[o]).refs){for(var l=0;l<a.parts.length;l++)a.parts[l]();delete r[a.id]}}}};var v,w=(v=[],function(n,e){return v[n]=e,v.filter(Boolean).join("\n")});function k(n,e,t,i){var o=t?"":i.css;if(n.styleSheet)n.styleSheet.cssText=w(e,o);else{var r=document.createTextNode(o),s=n.childNodes;s[e]&&n.removeChild(s[e]),s.length?n.insertBefore(r,s[e]):n.appendChild(r)}}function j(n,e){var t=e.css,i=e.media;if(i&&n.setAttribute("media",i),n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}function M(n,e,t){var i=t.css,o=t.sourceMap,r=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||r)&&(i=u(i)),o&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var s=new Blob([i],{type:"text/css"}),a=n.href;n.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}},"./node_modules/style-loader/lib/urls.js":
  /*!***********************************************!*\
    !*** ./node_modules/style-loader/lib/urls.js ***!
    \***********************************************/
  /*! no static exports found */function(n,e){n.exports=function(n){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!n||"string"!=typeof n)return n;var t=e.protocol+"//"+e.host,i=t+e.pathname.replace(/\/[^\/]*$/,"/");return n.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(n,e){var o,r=e.trim().replace(/^"(.*)"$/,(function(n,e){return e})).replace(/^'(.*)'$/,(function(n,e){return e}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(r)?n:(o=0===r.indexOf("//")?r:0===r.indexOf("/")?t+r:i+r.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")}))}}});