Files
PozzettiAndrea 7947ff3f23 Vendor viewer JS, drop comfy-3d-viewers
Vendor the viewer JavaScript into javascript/ and drop the
comfy-3d-viewers dependency. The viewers were previously copied into web/ at
every startup by prestartup_script.py, which made the served frontend depend on
a second package resolving at runtime.

Bundles are vendored as .mjs so ComfyUI's **/*.js auto-import glob skips them:
they are iframe-only and must never enter the shared main browser realm. Only
the widget entry points stay .js.

Also replace comfy_env.copy_files with a local helper. Its two extra features
(frame-derived source dir, silent no-op on a missing source) were unused here,
and the asset seeding now resolves the input directory through
folder_paths.get_input_directory() so it follows ComfyUI Desktop and
--input-directory instead of writing into the code tree.

comfy-test.toml moves to the current schema: [test.workflows] cuda (there is no
"gpu" key -- the accelerator is named by backend, and the old spelling parsed to
an empty list, so CUDA runners silently ran the full unfiltered set), an
explicit [test.platforms] platforms allowlist (per-platform booleans are no
longer supported), and the javascript level.

DisplayName becomes "DepthAnythingV3": the namespace enforced on
registerExtension names is derived from it, and the space in "Depth Anything
V3" made that prefix invalid.

Delete the 21 loose js/viewer/*.js modules -- they are already inside
viewer-bundle-vtk.mjs, so shipping them loose leaked the whole viewer into the
shared realm.
2026-08-22 19:44:03 +02:00

2 lines
115 KiB
JavaScript

/*! For license information please see viewer-bundle-vtk.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GeomPackViewer=t():e.GeomPackViewer=t()}(globalThis,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e,t,r){var n=Math.round(255*e),o=Math.round(255*t),i=Math.round(255*r);return"rgb(".concat(n,", ").concat(o,", ").concat(i,")")}function n(e){return 3===(e=e.replace(/^#/,"")).length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),[parseInt(e.substr(0,2),16)/255,parseInt(e.substr(2,2),16)/255,parseInt(e.substr(4,2),16)/255]}function o(e,t,r){var n=function(e){var t=Math.round(255*e).toString(16);return 1===t.length?"0"+t:t};return"#"+n(e)+n(t)+n(r)}e.r(t),e.d(t,{ActorManager:()=>Z,AxisIndicator:()=>xt,BaseViewer:()=>ir,BoundsUtils:()=>d,CameraController:()=>R,ColorUtils:()=>i,ControlTypes:()=>le,ControlsBar:()=>pe,DualLayoutMode:()=>Jr,DualViewer:()=>tn,FieldVisualization:()=>It,FormatTypes:()=>qe,GLTFLoader:()=>He,LoaderFactory:()=>ct,MessageHandler:()=>P,MessageTypes:()=>g,OBJLoader:()=>ke,Representation:()=>X,STLLoader:()=>me,ScreenshotCapture:()=>gt,SettingTypes:()=>te,SettingsPanel:()=>ie,StandardControls:()=>ue,StandardViewer:()=>Cr,TextureManager:()=>Ut,TexturedViewer:()=>Rr,VTPLoader:()=>_e,ViewerFactory:()=>sn,ViewerTypes:()=>an,combineBounds:()=>f,createDualViewer:()=>en,createMessageListener:()=>S,createStandardViewer:()=>Sr,createTexturedViewer:()=>Br,default:()=>cn,detectFormat:()=>Je,extractFilename:()=>C,getCenter:()=>c,getDimensions:()=>u,getLoaderConfig:()=>st,getMaxDimension:()=>l,hexToRgb:()=>n,isValidBounds:()=>p,loadMesh:()=>nt,loadMeshes:()=>it,requiresRenderer:()=>$e,rgbToHex:()=>o,rgbToString:()=>r,sendError:()=>m,sendMeshLoaded:()=>O,sendScreenshot:()=>w,sendToParent:()=>b,supportsFields:()=>et,supportsTextures:()=>Qe});const i={rgbToString:r,hexToRgb:n,rgbToHex:o};function a(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function c(e){return[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2]}function l(e){return Math.max(e[1]-e[0],e[3]-e[2],e[5]-e[4])}function u(e){return[e[1]-e[0],e[3]-e[2],e[5]-e[4]]}function f(e){if(!e||0===e.length)return[0,0,0,0,0,0];for(var t=function(e){if(Array.isArray(e))return s(e)}(o=e[0])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||a(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r=1;r<e.length;r++){var n=e[r];t[0]=Math.min(t[0],n[0]),t[1]=Math.max(t[1],n[1]),t[2]=Math.min(t[2],n[2]),t[3]=Math.max(t[3],n[3]),t[4]=Math.min(t[4],n[4]),t[5]=Math.max(t[5],n[5])}var o;return t}function p(e){if(!e||6!==e.length)return!1;var t,r=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=a(e))){t&&(e=t);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==t.return||t.return()}finally{if(s)throw o}}}}(e);try{for(r.s();!(t=r.n()).done;){var n=t.value;if(!Number.isFinite(n))return!1}}catch(e){r.e(e)}finally{r.f()}return e[1]>=e[0]&&e[3]>=e[2]&&e[5]>=e[4]}const d={getCenter:c,getMaxDimension:l,getDimensions:u,combineBounds:f,isValidBounds:p};function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function v(e,t,r){return(t=function(e){var t=function(e){if("object"!=h(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==h(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var g={LOAD_MESH:"LOAD_MESH",LOAD_DUAL_MESH:"LOAD_DUAL_MESH",MESH_LOADED:"MESH_LOADED",MESH_ERROR:"MESH_ERROR",SCREENSHOT:"SCREENSHOT"};function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};window.parent&&window.parent!==window&&window.parent.postMessage(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach(function(t){v(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({type:e},t),"*")}function m(e){var t=e instanceof Error?e.message:e;b(g.MESH_ERROR,{error:t})}function w(e){b(g.SCREENSHOT,{image:e,timestamp:Date.now()})}function O(){b(g.MESH_LOADED,{error:null})}function S(e){var t=function(t){var r=(t.data||{}).type;r&&e[r]&&e[r](t.data)};return window.addEventListener("message",t),function(){window.removeEventListener("message",t)}}function C(e){return new URLSearchParams(e.split("?")[1]||"").get("filename")||e.split("/").pop().split("?")[0]}const P={MessageTypes:g,sendToParent:b,sendError:m,sendScreenshot:w,sendMeshLoaded:O,createMessageListener:S,extractFilename:C};function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function k(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return E(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function x(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach(function(t){A(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function A(e,t,r){return(t=F(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function M(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,F(n.key),n)}}function F(e){var t=function(e){if("object"!=T(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=T(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==T(t)?t:t+""}var L={"+X":{offset:[1,0,0],viewUp:[0,0,1]},"-X":{offset:[-1,0,0],viewUp:[0,0,1]},"+Y":{offset:[0,1,0],viewUp:[0,0,1]},"-Y":{offset:[0,-1,0],viewUp:[0,0,1]},"+Z":{offset:[0,0,1],viewUp:[0,1,0]},"-Z":{offset:[0,0,-1],viewUp:[0,1,0]}},_={distanceMultiplier:2.5,initialViewOffset:[1,1,1],initialViewUp:[0,0,1]},B=function(){return e=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.renderer=t,this.renderWindow=r,this.config=x(x({},_),n),this.currentBounds=null},t=[{key:"getCamera",value:function(){return this.renderer.getActiveCamera()}},{key:"setBounds",value:function(e){this.currentBounds=e}},{key:"positionInitialCamera",value:function(e){this.currentBounds=e;var t=this.getCamera(),r=c(e),n=l(e)*this.config.distanceMultiplier,o=this.config.initialViewOffset,i=[r[0]+o[0]*n,r[1]+o[1]*n,r[2]+o[2]*n];t.setPosition.apply(t,i),t.setFocalPoint.apply(t,k(r)),t.setViewUp.apply(t,k(this.config.initialViewUp)),this.renderer.resetCamera(),this.renderWindow.render()}},{key:"setCameraView",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:null)||this.currentBounds;if(t){var r=L[e];if(r){var n=this.getCamera(),o=c(t),i=l(t)*this.config.distanceMultiplier,a=[o[0]+r.offset[0]*i,o[1]+r.offset[1]*i,o[2]+r.offset[2]*i];n.setPosition.apply(n,a),n.setFocalPoint.apply(n,k(o)),n.setViewUp.apply(n,k(r.viewUp)),this.renderer.resetCamera(),this.renderWindow.render()}else console.warn("[CameraController] Unknown view direction: ".concat(e))}else console.warn("[CameraController] No bounds available for setCameraView")}},{key:"resetCamera",value:function(){this.currentBounds?this.renderer.resetCamera(this.currentBounds):this.renderer.resetCamera(),this.renderWindow.render()}},{key:"resetClippingRange",value:function(){this.renderer.resetCameraClippingRange(),this.renderWindow.render()}},{key:"setParallelProjection",value:function(e){this.getCamera().setParallelProjection(e),this.renderWindow.render()}},{key:"getParallelProjection",value:function(){return this.getCamera().getParallelProjection()}},{key:"synchronizeFrom",value:function(e){var t=this.getCamera();t.setPosition.apply(t,k(e.getPosition())),t.setFocalPoint.apply(t,k(e.getFocalPoint())),t.setViewUp.apply(t,k(e.getViewUp())),t.setParallelProjection(e.getParallelProjection()),t.setClippingRange.apply(t,k(e.getClippingRange())),t.setParallelScale(e.getParallelScale()),t.setViewAngle(e.getViewAngle())}},{key:"getState",value:function(){var e=this.getCamera();return{position:e.getPosition(),focalPoint:e.getFocalPoint(),viewUp:e.getViewUp(),parallelProjection:e.getParallelProjection(),clippingRange:e.getClippingRange(),parallelScale:e.getParallelScale(),viewAngle:e.getViewAngle()}}},{key:"setState",value:function(e){var t=this.getCamera();e.position&&t.setPosition.apply(t,k(e.position)),e.focalPoint&&t.setFocalPoint.apply(t,k(e.focalPoint)),e.viewUp&&t.setViewUp.apply(t,k(e.viewUp)),void 0!==e.parallelProjection&&t.setParallelProjection(e.parallelProjection),e.clippingRange&&t.setClippingRange.apply(t,k(e.clippingRange)),void 0!==e.parallelScale&&t.setParallelScale(e.parallelScale),void 0!==e.viewAngle&&t.setViewAngle(e.viewAngle),this.renderWindow.render()}},{key:"focusOnPoint",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.getCamera(),o=n.getFocalPoint(),i=n.getPosition(),a=[i[0]-o[0],i[1]-o[1],i[2]-o[2]],s=Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2));s>0?(a[0]/=s,a[1]/=s,a[2]/=s):(a[0]=0,a[1]=0,a[2]=1),t=null!==r?r*this.config.distanceMultiplier:this.currentBounds?.3*l(this.currentBounds):10;var c=[e[0]+a[0]*t,e[1]+a[1]*t,e[2]+a[2]*t];n.setFocalPoint.apply(n,k(e)),n.setPosition.apply(n,c),this.renderer.resetCameraClippingRange(),this.renderWindow.render()}}],t&&M(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const R=B;function V(e){return V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V(e)}function I(e){return function(e){if(Array.isArray(e))return D(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return D(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function G(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?G(Object(r),!0).forEach(function(t){N(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):G(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function N(e,t,r){return(t=U(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function W(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,U(n.key),n)}}function U(e){var t=function(e){if("object"!=V(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=V(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==V(t)?t:t+""}var H={color:[1,1,1],edgeColor:[0,0,0],ambient:.4,diffuse:.8,specular:.3,specularPower:20,edgeVisibility:!1,lineWidth:1,pointSize:5,representation:2,opacity:1},X={POINTS:0,WIREFRAME:1,SURFACE:2},Y=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.renderWindow=t,this.actors=[],this.settings=z({},H)},t=[{key:"addActor",value:function(e){this.actors.push(e),this.configureActor(e,this.settings)}},{key:"removeActor",value:function(e){var t=this.actors.indexOf(e);t>-1&&this.actors.splice(t,1)}},{key:"clearActors",value:function(){this.actors=[]}},{key:"setActors",value:function(e){var t=this;this.actors=Array.isArray(e)?e:[e],this.actors.forEach(function(e){return t.configureActor(e,t.settings)})}},{key:"configureActor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=z(z({},this.settings),t),o=e.getProperty();if(o){if(r.color){var i="string"==typeof r.color?n(r.color):r.color;o.setColor.apply(o,I(i))}if(r.edgeColor){var a="string"==typeof r.edgeColor?n(r.edgeColor):r.edgeColor;o.setEdgeColor.apply(o,I(a))}void 0!==r.ambient&&o.setAmbient(r.ambient),void 0!==r.diffuse&&o.setDiffuse(r.diffuse),void 0!==r.specular&&o.setSpecular(r.specular),void 0!==r.specularPower&&o.setSpecularPower(r.specularPower),void 0!==r.edgeVisibility&&o.setEdgeVisibility(r.edgeVisibility),void 0!==r.lineWidth&&o.setLineWidth(r.lineWidth),void 0!==r.pointSize&&o.setPointSize(r.pointSize),void 0!==r.representation&&o.setRepresentation(r.representation),void 0!==r.opacity&&o.setOpacity(r.opacity)}else console.warn("[ActorManager] Actor has no property object")}},{key:"applySettings",value:function(e){var t=this,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.settings=z(z({},this.settings),e),this.actors.forEach(function(e){return t.configureActor(e,t.settings)}),r&&this.renderWindow.render()}},{key:"setEdgeVisibility",value:function(e){this.applySettings({edgeVisibility:e})}},{key:"setColor",value:function(e){this.applySettings({color:e})}},{key:"setOpacity",value:function(e){this.applySettings({opacity:e})}},{key:"setRepresentation",value:function(e){this.applySettings({representation:e})}},{key:"setLineWidth",value:function(e){this.applySettings({lineWidth:e})}},{key:"setPointSize",value:function(e){this.applySettings({pointSize:e})}},{key:"getSettings",value:function(){return z({},this.settings)}},{key:"applyPanelSettings",value:function(e){var t={};void 0!==e.meshColor&&(t.color=e.meshColor),void 0!==e.pointSize&&(t.pointSize=parseFloat(e.pointSize)),void 0!==e.edgeWidth&&(t.lineWidth=parseFloat(e.edgeWidth)),void 0!==e.representation&&(t.representation=parseInt(e.representation,10)),void 0!==e.opacity&&(t.opacity=parseFloat(e.opacity)),this.applySettings(t)}},{key:"configureForTexture",value:function(e){var t=e.getProperty(),r=e.getMapper();t&&("function"==typeof t.setMetallic&&t.setMetallic(0),"function"==typeof t.setRoughness&&t.setRoughness(1),"function"==typeof t.setInterpolation&&t.setInterpolation(2),"function"==typeof t.setRMTexture&&t.setRMTexture(null),"function"==typeof t.setMetallicRoughnessTexture&&t.setMetallicRoughnessTexture(null)),r&&(r.setScalarVisibility(!1),r.modified())}},{key:"setScalarVisibility",value:function(e,t){e&&(e.setScalarVisibility(t),e.modified())}}],t&&W(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const Z=Y;function K(e){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},K(e)}function q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function J(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach(function(t){$(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function $(e,t,r){return(t=ee(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Q(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ee(n.key),n)}}function ee(e){var t=function(e){if("object"!=K(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=K(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==K(t)?t:t+""}var te={NUMBER:"number",COLOR:"color",SELECT:"select",CHECKBOX:"checkbox"},re=[{id:"pointSize",label:"Point Size",type:te.NUMBER,min:1,max:20,step:1,default:5},{id:"meshColor",label:"Mesh Color",type:te.COLOR,default:"#ffffff"},{id:"edgeWidth",label:"Edge Width",type:te.NUMBER,min:1,max:10,step:1,default:1},{id:"representation",label:"Render Mode",type:te.SELECT,options:[{value:"2",label:"Surface"},{value:"1",label:"Wireframe"},{value:"0",label:"Points"}],default:"2"},{id:"parallelProjection",label:"Parallel Projection",type:te.CHECKBOX,default:!1},{id:"showAxisIndicator",label:"Show Axis Indicator",type:te.CHECKBOX,default:!1}],ne=[{id:"autoColorRange",label:"Auto Range",type:te.CHECKBOX,default:!0,section:"Colormap Range"},{id:"colormapMin",label:"Min",type:te.NUMBER,step:"any",placeholder:"Auto",default:"",section:"Colormap Range"},{id:"colormapMax",label:"Max",type:te.NUMBER,step:"any",placeholder:"Auto",default:"",section:"Colormap Range"}],oe=function(){return e=function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=r.container||document.body,this.onApply=r.onApply||function(){},this.enabledSettings=r.enabledSettings||null,this.includeColormapSettings=r.includeColormapSettings||!1,this.panelElement=null,this.overlayElement=null,this.currentValues={},this.settingsConfig=this._buildSettingsConfig(),this.settingsConfig.forEach(function(e){t.currentValues[e.id]=e.default})},(t=[{key:"_buildSettingsConfig",value:function(){var e=this,t=[].concat(re);return this.includeColormapSettings&&(t=t.concat(ne)),this.enabledSettings&&(t=t.filter(function(t){return e.enabledSettings.includes(t.id)})),t}},{key:"generateHTML",value:function(){var e=this,t=null,r='\n <div id="settingsOverlay"></div>\n <div id="settingsPanel">\n <h3>Appearance Settings</h3>\n ';return this.settingsConfig.forEach(function(n){n.section&&n.section!==t&&(t=n.section,r+='\n <div class="setting-row setting-section">\n <label class="setting-section-label">'.concat(n.section,":</label>\n </div>\n ")),r+=e._generateSettingRow(n)}),r+='\n <div class="button-row">\n <button id="applySettings">Apply</button>\n <button id="cancelSettings">Cancel</button>\n </div>\n </div>\n '}},{key:"_generateSettingRow",value:function(e){var t="";switch(e.type){case te.NUMBER:t='\n <input type="number" id="'.concat(e.id,'"\n ').concat(void 0!==e.min?'min="'.concat(e.min,'"'):"","\n ").concat(void 0!==e.max?'max="'.concat(e.max,'"'):"","\n ").concat(void 0!==e.step?'step="'.concat(e.step,'"'):"","\n ").concat(e.placeholder?'placeholder="'.concat(e.placeholder,'"'):"",'\n value="').concat(e.default,'">\n ');break;case te.COLOR:t='<input type="color" id="'.concat(e.id,'" value="').concat(e.default,'">');break;case te.SELECT:t='<select id="'.concat(e.id,'">'),e.options.forEach(function(r){var n=r.value===e.default?"selected":"";t+='<option value="'.concat(r.value,'" ').concat(n,">").concat(r.label,"</option>")}),t+="</select>";break;case te.CHECKBOX:var r=e.default?"checked":"";return'\n <div class="setting-row">\n <label>\n <input type="checkbox" id="'.concat(e.id,'" ').concat(r,"> ").concat(e.label,"\n </label>\n </div>\n ")}return'\n <div class="setting-row">\n <label>'.concat(e.label,":</label>\n ").concat(t,"\n </div>\n ")}},{key:"render",value:function(){var e=document.createElement("div");e.innerHTML=this.generateHTML(),this.overlayElement=e.querySelector("#settingsOverlay"),this.panelElement=e.querySelector("#settingsPanel"),this.container.appendChild(this.overlayElement),this.container.appendChild(this.panelElement),this._setupEventListeners()}},{key:"attachToExisting",value:function(e,t){this.panelElement=e,this.overlayElement=t,this._setupEventListeners()}},{key:"_setupEventListeners",value:function(){var e=this,t=this.panelElement.querySelector("#applySettings");t&&t.addEventListener("click",function(){return e._handleApply()});var r=this.panelElement.querySelector("#cancelSettings");r&&r.addEventListener("click",function(){return e.close()}),this.overlayElement&&this.overlayElement.addEventListener("click",function(){return e.close()})}},{key:"_handleApply",value:function(){var e=this.getValues();this.currentValues=J({},e),this.onApply(e),this.close()}},{key:"open",value:function(){this.setValues(this.currentValues),this.panelElement&&this.panelElement.classList.add("visible"),this.overlayElement&&this.overlayElement.classList.add("visible")}},{key:"close",value:function(){this.panelElement&&this.panelElement.classList.remove("visible"),this.overlayElement&&this.overlayElement.classList.remove("visible")}},{key:"getValues",value:function(){var e={};return this.settingsConfig.forEach(function(t){var r=document.getElementById(t.id);r&&(t.type===te.CHECKBOX?e[t.id]=r.checked:e[t.id]=r.value)}),e}},{key:"setValues",value:function(e){this.settingsConfig.forEach(function(t){var r=document.getElementById(t.id);r&&void 0!==e[t.id]&&(t.type===te.CHECKBOX?r.checked=e[t.id]:r.value=e[t.id])})}},{key:"updateCurrentValues",value:function(e){this.currentValues=J(J({},this.currentValues),e)}},{key:"getCurrentValues",value:function(){return J({},this.currentValues)}}])&&Q(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const ie=oe;function ae(e){return ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ae(e)}function se(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ce(n.key),n)}}function ce(e){var t=function(e){if("object"!=ae(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ae(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ae(t)?t:t+""}var le={BUTTON:"button",CHECKBOX:"checkbox",SELECT:"select",DIVIDER:"divider",LABEL:"label"},ue={settingsButton:{id:"settingsButton",type:le.BUTTON,label:"[Settings]",title:"Appearance Settings"},divider:{type:le.DIVIDER},edgesToggle:{id:"showEdges",type:le.CHECKBOX,label:"Edges"},cameraButtons:{type:"camera_group",buttons:["+X","-X","+Y","-Y","+Z","-Z"]},screenshotButton:{id:"screenshot",type:le.BUTTON,label:"Screenshot"},saveMeshButton:{id:"saveMesh",type:le.BUTTON,label:"Save Mesh",className:"save-button"},saveGLBButton:{id:"saveGLB",type:le.BUTTON,label:"Save GLB",className:"save-button"},resetCameraButton:{id:"resetCamera",type:le.BUTTON,label:"Reset Camera"},fieldSelector:{id:"fieldSelector",type:le.SELECT,label:"Field",wrapperClass:"field-label",hidden:!0},colormapSelector:{id:"colormapSelector",type:le.SELECT,label:"Colormap",wrapperClass:"colormap-label",hidden:!0}},fe=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=t.container,this.handlers=t.handlers||{},this.controls=t.controls||this._getDefaultControls(),this.elements={}},t=[{key:"_getDefaultControls",value:function(){return[ue.settingsButton,ue.divider,ue.edgesToggle,ue.divider,ue.cameraButtons,ue.divider,ue.fieldSelector,ue.colormapSelector,ue.screenshotButton,ue.saveMeshButton]}},{key:"generateHTML",value:function(){var e=this,t="";return this.controls.forEach(function(r){if(r)switch(r.type){case le.BUTTON:t+=e._generateButton(r);break;case le.CHECKBOX:t+=e._generateCheckbox(r);break;case le.SELECT:t+=e._generateSelect(r);break;case le.DIVIDER:t+='<span class="controls-divider"></span>';break;case le.LABEL:t+='<span class="controls-label">'.concat(r.text||"","</span>");break;case"camera_group":t+=e._generateCameraGroup(r);break;default:"string"==typeof r.html&&(t+=r.html)}}),t}},{key:"_generateButton",value:function(e){var t=e.className||"",r="settingsButton"===e.id?"width:32px;height:32px;padding:0;font-size:16px;":"",n=r?'style="'.concat(r,'"'):"",o=t?'class="'.concat(t,'"'):"";return'<button id="'.concat(e.id,'" ').concat(o," ").concat(n,' title="').concat(e.title||"",'">').concat(e.label,"</button>")}},{key:"_generateCheckbox",value:function(e){var t=e.checked?"checked":"";return'\n <label>\n <input type="checkbox" id="'.concat(e.id,'" ').concat(t,"> ").concat(e.label,"\n </label>\n ")}},{key:"_generateSelect",value:function(e){var t=e.wrapperClass||"",r=e.hidden?'style="display:none;"':"",n=(e.options||[]).map(function(e){return'<option value="'.concat(e.value,'" ').concat(e.selected?"selected":"",">").concat(e.label,"</option>")}).join("");return'\n <label id="'.concat(e.id,'Label" class="').concat(t,'" ').concat(r,">\n ").concat(e.label,':\n <select id="').concat(e.id,'">').concat(n,"</select>\n </label>\n ")}},{key:"_generateCameraGroup",value:function(e){return(e.buttons||["+X","-X","+Y","-Y","+Z","-Z"]).map(function(e){var t="view".concat(e.replace("+","Pos").replace("-","Neg"));return'<button id="'.concat(t,'">').concat(e,"</button>")}).join("")}},{key:"render",value:function(){this.container?(this.container.innerHTML=this.generateHTML(),this._cacheElements(),this._setupEventListeners()):console.warn("[ControlsBar] No container specified")}},{key:"_cacheElements",value:function(){var e=this;this.controls.forEach(function(t){t&&t.id&&(e.elements[t.id]=document.getElementById(t.id))}),["viewPosX","viewNegX","viewPosY","viewNegY","viewPosZ","viewNegZ"].forEach(function(t){var r=document.getElementById(t);r&&(e.elements[t]=r)})}},{key:"_setupEventListeners",value:function(){var e=this;Object.keys(this.handlers).forEach(function(t){var r=e.elements[t],n=e.handlers[t];r&&n&&("checkbox"===r.type?r.addEventListener("change",function(e){return n(e.target.checked,e)}):"SELECT"===r.tagName?r.addEventListener("change",function(e){return n(e.target.value,e)}):r.addEventListener("click",n))}),this.handlers.cameraView&&["+X","-X","+Y","-Y","+Z","-Z"].forEach(function(t){var r="view".concat(t.replace("+","Pos").replace("-","Neg")),n=e.elements[r];n&&n.addEventListener("click",function(){return e.handlers.cameraView(t)})})}},{key:"getElement",value:function(e){return this.elements[e]||document.getElementById(e)}},{key:"show",value:function(e){var t=document.getElementById("".concat(e,"Label"))||this.elements[e];t&&(t.style.display="flex")}},{key:"hide",value:function(e){var t=document.getElementById("".concat(e,"Label"))||this.elements[e];t&&(t.style.display="none")}},{key:"enable",value:function(e){var t=this.elements[e];t&&(t.disabled=!1)}},{key:"disable",value:function(e){var t=this.elements[e];t&&(t.disabled=!0)}},{key:"setButtonText",value:function(e,t){var r=this.elements[e];r&&(r.textContent=t)}},{key:"setButtonStyle",value:function(e,t){var r=this.elements[e];r&&Object.assign(r.style,t)}},{key:"populateSelect",value:function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this.elements[e]||document.getElementById(e);n&&"SELECT"===n.tagName&&(r&&(n.innerHTML=""),t.forEach(function(e){var t=document.createElement("option");t.value=e.value,t.textContent=e.label,e.selected&&(t.selected=!0),e.disabled&&(t.disabled=!0),n.appendChild(t)}))}},{key:"addHandler",value:function(e,t){this.handlers[e]=t;var r=this.elements[e];r&&("checkbox"===r.type?r.addEventListener("change",function(e){return t(e.target.checked,e)}):"SELECT"===r.tagName?r.addEventListener("change",function(e){return t(e.target.value,e)}):r.addEventListener("click",t))}}],t&&se(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const pe=fe;function de(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return he(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(he(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,he(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,he(f,"constructor",l),he(l,"constructor",c),c.displayName="GeneratorFunction",he(l,o,"GeneratorFunction"),he(f),he(f,o,"Generator"),he(f,n,function(){return this}),he(f,"toString",function(){return"[object Generator]"}),(de=function(){return{w:i,m:p}})()}function he(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}he=function(e,t,r,n){function i(t,r){he(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},he(e,t,r,n)}function ye(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function ve(e,t){return ge.apply(this,arguments)}function ge(){var e;return e=de().m(function e(t,r){var n,o,i,a,s;return de().w(function(e){for(;;)switch(e.n){case 0:if(n=r.IO.Geometry.vtkSTLReader,o=r.Filters.Core.vtkPolyDataNormals,(i=n.newInstance()).parseAsArrayBuffer(t),i.getOutputData()){e.n=1;break}throw new Error("Failed to parse STL data");case 1:return(a=o.newInstance()).setInputConnection(i.getOutputPort()),a.update(),s=a.getOutputData(),e.a(2,{polyData:s,reader:i,normalsFilter:a,outputPort:a.getOutputPort(),metadata:{format:"STL",numPoints:s.getNumberOfPoints(),numPolys:s.getNumberOfPolys(),bounds:s.getBounds()}})}},e)}),ge=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){ye(i,n,o,a,s,"next",e)}function s(e){ye(i,n,o,a,s,"throw",e)}a(void 0)})},ge.apply(this,arguments)}function be(e){return e.toLowerCase().includes(".stl")}const me={load:ve,canLoad:be,format:"STL"};function we(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return Oe(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(Oe(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Oe(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,Oe(f,"constructor",l),Oe(l,"constructor",c),c.displayName="GeneratorFunction",Oe(l,o,"GeneratorFunction"),Oe(f),Oe(f,o,"Generator"),Oe(f,n,function(){return this}),Oe(f,"toString",function(){return"[object Generator]"}),(we=function(){return{w:i,m:p}})()}function Oe(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Oe=function(e,t,r,n){function i(t,r){Oe(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},Oe(e,t,r,n)}function Se(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Ce(e,t){return Pe.apply(this,arguments)}function Pe(){var e;return e=we().m(function e(t,r){var n,o,i,a,s,c;return we().w(function(e){for(;;)switch(e.n){case 0:if(n=r.IO.Misc.vtkOBJReader,o=r.Filters.Core.vtkPolyDataNormals,i=n.newInstance(),a=(new TextDecoder).decode(t),i.parseAsText(a),i.getOutputData()){e.n=1;break}throw new Error("Failed to parse OBJ data");case 1:return(s=o.newInstance()).setInputConnection(i.getOutputPort()),s.update(),c=s.getOutputData(),e.a(2,{polyData:c,reader:i,normalsFilter:s,outputPort:s.getOutputPort(),metadata:{format:"OBJ",numPoints:c.getNumberOfPoints(),numPolys:c.getNumberOfPolys(),bounds:c.getBounds()}})}},e)}),Pe=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Se(i,n,o,a,s,"next",e)}function s(e){Se(i,n,o,a,s,"throw",e)}a(void 0)})},Pe.apply(this,arguments)}function Te(e){return e.toLowerCase().includes(".obj")}const ke={load:Ce,canLoad:Te,format:"OBJ"};function Ee(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return je(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(je(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,je(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,je(f,"constructor",l),je(l,"constructor",c),c.displayName="GeneratorFunction",je(l,o,"GeneratorFunction"),je(f),je(f,o,"Generator"),je(f,n,function(){return this}),je(f,"toString",function(){return"[object Generator]"}),(Ee=function(){return{w:i,m:p}})()}function je(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}je=function(e,t,r,n){function i(t,r){je(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},je(e,t,r,n)}function xe(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Ae(e){for(var t=e.getPointData(),r=e.getCellData(),n=[],o=[],i=0;i<t.getNumberOfArrays();i++){var a=t.getArray(i),s=a.getName(),c=a.getRange();n.push({name:s,type:"point",numComponents:a.getNumberOfComponents(),range:[c[0],c[1]]})}for(var l=0;l<r.getNumberOfArrays();l++){var u=r.getArray(l),f=u.getName(),p=u.getRange();o.push({name:f,type:"cell",numComponents:u.getNumberOfComponents(),range:[p[0],p[1]]})}return{pointFields:n,cellFields:o,hasFields:n.length>0||o.length>0}}function Me(e,t){return Fe.apply(this,arguments)}function Fe(){var e;return e=Ee().m(function e(t,r){var n,o,i,a,s,c,l;return Ee().w(function(e){for(;;)switch(e.n){case 0:if(n=r.IO.XML.vtkXMLPolyDataReader,o=r.Filters.Core.vtkPolyDataNormals,(i=n.newInstance()).parseAsArrayBuffer(t),a=i.getOutputData()){e.n=1;break}throw new Error("Failed to parse VTP data");case 1:return Ae(a),(s=o.newInstance()).setInputConnection(i.getOutputPort()),s.update(),c=s.getOutputData(),l=Ae(c),e.a(2,{polyData:c,reader:i,normalsFilter:s,outputPort:s.getOutputPort(),fields:l,metadata:{format:"VTP",numPoints:c.getNumberOfPoints(),numPolys:c.getNumberOfPolys(),bounds:c.getBounds(),pointFields:l.pointFields.map(function(e){return e.name}),cellFields:l.cellFields.map(function(e){return e.name}),hasFields:l.hasFields}})}},e)}),Fe=function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){xe(i,n,o,a,s,"next",e)}function s(e){xe(i,n,o,a,s,"throw",e)}a(void 0)})},Fe.apply(this,arguments)}function Le(e){return e.toLowerCase().includes(".vtp")}const _e={load:Me,canLoad:Le,format:"VTP"};function Be(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return Re(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(Re(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Re(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,Re(f,"constructor",l),Re(l,"constructor",c),c.displayName="GeneratorFunction",Re(l,o,"GeneratorFunction"),Re(f),Re(f,o,"Generator"),Re(f,n,function(){return this}),Re(f,"toString",function(){return"[object Generator]"}),(Be=function(){return{w:i,m:p}})()}function Re(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Re=function(e,t,r,n){function i(t,r){Re(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},Re(e,t,r,n)}function Ve(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Ie(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Ve(i,n,o,a,s,"next",e)}function s(e){Ve(i,n,o,a,s,"throw",e)}a(void 0)})}}function De(e){try{return void 0!==e.IO.Geometry.vtkGLTFImporter}catch(e){return!1}}function Ge(e,t,r){return ze.apply(this,arguments)}function ze(){return ze=Ie(Be().m(function e(t,r,n){var o,i,a,s,c,l,u,f,p,d,h,y,v,g,b,m=arguments;return Be().w(function(e){for(;;)switch(e.n){case 0:if(i=(o=m.length>3&&void 0!==m[3]?m[3]:{}).applyTextureFixes,a=void 0===i||i,s=o.twoSidedLighting,c=void 0===s||s,l=r.IO.Geometry.vtkGLTFImporter){e.n=1;break}throw new Error("GLTFImporter not available in this VTK.js version");case 1:return c&&n.setTwoSidedLighting&&n.setTwoSidedLighting(!0),(u=l.newInstance()).setRenderer(n),u.setUrl(t),e.n=2,new Promise(function(e,t){u.onReady(function(){e()}),u.loadData().catch(t)});case 2:return u.importActors(),f=u.getActors(),p=Array.from(f.values()),d=!1,h=!1,y=!1,a&&p.forEach(function(e,t){var r=e.getMapper(),n=e.getProperty(),o=null==r?void 0:r.getInputData();if(o&&o.getNumberOfPoints()>0){var i=o.getPointData(),a=null==i?void 0:i.getScalars();if(!a&&i)for(var s=i.getNumberOfArrays(),c=0;c<s;c++){var l=i.getArray(c);if(((null==l?void 0:l.getName())||"").toUpperCase().includes("COLOR")&&l.getNumberOfComponents()>=3){a=l,i.setScalars(l);break}}if(a&&a.getNumberOfComponents()>=3&&(y=!0,console.log("[GLTFLoader] Found vertex colors:",a.getName(),"components:",a.getNumberOfComponents())),n){"function"==typeof n.setRMTexture&&n.setRMTexture(null),"function"==typeof n.setMetallicRoughnessTexture&&n.setMetallicRoughnessTexture(null);var u=null;"function"==typeof n.getBaseColorTexture&&(u=n.getBaseColorTexture()),u||"function"!=typeof n.getDiffuseTexture||(u=n.getDiffuseTexture()),u||"function"!=typeof n.getTexture||(u=n.getTexture()),u&&(d=!0,e.addTexture(u)),void 0===n.getMetallic&&void 0===n.getRoughness||(h=!0),"function"==typeof n.setMetallic&&n.setMetallic(0),"function"==typeof n.setRoughness&&n.setRoughness(1),"function"==typeof n.setInterpolation&&n.setInterpolation(2)}r&&(console.log("[GLTFLoader] Configuring mapper - hasVertexColors:",y,"hasTexture:",d),y&&!d?(console.log("[GLTFLoader] Enabling vertex color rendering"),r.setScalarVisibility(!0),r.setScalarModeToUsePointData(),r.setColorModeToDirectScalars(),n&&(console.log("[GLTFLoader] Setting actor color to white"),n.setColor(1,1,1),"function"==typeof n.setBaseColorFactor&&(console.log("[GLTFLoader] Setting PBR baseColorFactor to white"),n.setBaseColorFactor([1,1,1,1])),"function"==typeof n.setDiffuseColor&&n.setDiffuseColor(1,1,1),"function"==typeof n.setAmbientColor&&n.setAmbientColor(1,1,1),"function"==typeof n.setAmbient&&n.setAmbient(.2),"function"==typeof n.setDiffuse&&n.setDiffuse(.8))):r.setScalarVisibility(!1),r.modified())}}),v=null,p.length>0&&(v=[1/0,-1/0,1/0,-1/0,1/0,-1/0],p.forEach(function(e){var t=e.getBounds();v[0]=Math.min(v[0],t[0]),v[1]=Math.max(v[1],t[1]),v[2]=Math.min(v[2],t[2]),v[3]=Math.max(v[3],t[3]),v[4]=Math.min(v[4],t[4]),v[5]=Math.max(v[5],t[5])})),g=0,b=0,p.forEach(function(e){var t=e.getMapper(),r=null==t?void 0:t.getInputData();r&&(g+=r.getNumberOfPoints(),b+=r.getNumberOfPolys())}),e.a(2,{actors:p,importer:u,bounds:v,hasTexture:d,hasVertexColors:y,metadata:{format:"GLTF",numActors:p.length,numPoints:g,numPolys:b,bounds:v,hasTexture:d,hasVertexColors:y,hasMaterial:h}})}},e)})),ze.apply(this,arguments)}function Ne(e,t){return We.apply(this,arguments)}function We(){return(We=Ie(Be().m(function e(t,r){var n,o,i;return Be().w(function(e){for(;;)switch(e.n){case 0:if(n=r.IO.Geometry.vtkGLTFImporter){e.n=1;break}throw new Error("GLTFImporter not available");case 1:return(o=n.newInstance()).parseAsArrayBuffer(t),e.n=2,o.update();case 2:if(i=o.getOutputData()){e.n=3;break}throw new Error("Failed to extract polydata from GLTF");case 3:return e.a(2,{polyData:i,importer:o,metadata:{format:"GLTF",numPoints:i.getNumberOfPoints(),numPolys:i.getNumberOfPolys(),bounds:i.getBounds()}})}},e)}))).apply(this,arguments)}function Ue(e){var t=e.toLowerCase();return t.includes(".glb")||t.includes(".gltf")}const He={load:Ge,loadSimple:Ne,canLoad:Ue,isSupported:De,format:"GLTF"};function Xe(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return Ye(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(Ye(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Ye(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,Ye(f,"constructor",l),Ye(l,"constructor",c),c.displayName="GeneratorFunction",Ye(l,o,"GeneratorFunction"),Ye(f),Ye(f,o,"Generator"),Ye(f,n,function(){return this}),Ye(f,"toString",function(){return"[object Generator]"}),(Xe=function(){return{w:i,m:p}})()}function Ye(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Ye=function(e,t,r,n){function i(t,r){Ye(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},Ye(e,t,r,n)}function Ze(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Ke(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Ze(i,n,o,a,s,"next",e)}function s(e){Ze(i,n,o,a,s,"throw",e)}a(void 0)})}}var qe={STL:"STL",OBJ:"OBJ",VTP:"VTP",GLTF:"GLTF",GLB:"GLB"};function Je(e){var t=e.toLowerCase();return t.includes(".stl")?qe.STL:t.includes(".obj")?qe.OBJ:t.includes(".vtp")?qe.VTP:t.includes(".glb")?qe.GLB:t.includes(".gltf")?qe.GLTF:null}function $e(e){return e===qe.GLTF||e===qe.GLB}function Qe(e){return e===qe.GLTF||e===qe.GLB}function et(e){return e===qe.VTP}function tt(e){return rt.apply(this,arguments)}function rt(){return(rt=Ke(Xe().m(function e(t){var r;return Xe().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,fetch(t);case 1:if((r=e.v).ok){e.n=2;break}throw new Error("HTTP ".concat(r.status,": ").concat(r.statusText));case 2:return e.a(2,r.arrayBuffer())}},e)}))).apply(this,arguments)}function nt(e,t){return ot.apply(this,arguments)}function ot(){return ot=Ke(Xe().m(function e(t,r){var n,o,i,a,s,c,l,u,f,p,d=arguments;return Xe().w(function(e){for(;;)switch(e.n){case 0:if(o=(n=d.length>2&&void 0!==d[2]?d[2]:{}).renderer,i=void 0===o?null:o,a=n.withTextures,s=void 0===a||a,c=n.twoSidedLighting,l=void 0===c||c,u=Je(t)){e.n=1;break}throw new Error("Unsupported file format: ".concat(t));case 1:if(console.log("[LoaderFactory] Loading ".concat(u," file:"),t),u!==qe.GLTF&&u!==qe.GLB||!s||!i){e.n=2;break}return e.a(2,Ge(t,r,i,{applyTextureFixes:!0,twoSidedLighting:l}));case 2:return e.n=3,tt(t);case 3:f=e.v,p=u,e.n=p===qe.STL?4:p===qe.OBJ?5:p===qe.VTP?6:p===qe.GLTF||p===qe.GLB?7:8;break;case 4:return e.a(2,ve(f,r));case 5:return e.a(2,Ce(f,r));case 6:return e.a(2,Me(f,r));case 7:return e.a(2,Ne(f,r));case 8:throw new Error("No loader available for format: ".concat(u));case 9:return e.a(2)}},e)})),ot.apply(this,arguments)}function it(e,t){return at.apply(this,arguments)}function at(){return at=Ke(Xe().m(function e(t,r){var n,o=arguments;return Xe().w(function(e){for(;;)if(0===e.n)return n=o.length>2&&void 0!==o[2]?o[2]:{},e.a(2,Promise.all(t.map(function(e){return nt(e,r,n)})))},e)})),at.apply(this,arguments)}function st(e){switch(e){case qe.STL:return{load:ve,canLoad:be,requiresRenderer:!1,supportsTextures:!1,supportsFields:!1};case qe.OBJ:return{load:Ce,canLoad:Te,requiresRenderer:!1,supportsTextures:!1,supportsFields:!1};case qe.VTP:return{load:Me,canLoad:Le,requiresRenderer:!1,supportsTextures:!1,supportsFields:!0};case qe.GLTF:case qe.GLB:return{load:Ge,loadSimple:Ne,canLoad:Ue,isSupported:De,requiresRenderer:!0,supportsTextures:!0,supportsFields:!1};default:return null}}const ct={loadMesh:nt,loadMeshes:it,detectFormat:Je,requiresRenderer:$e,supportsTextures:Qe,supportsFields:et,getLoaderConfig:st,FormatTypes:qe};function lt(e){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(e)}function ut(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return ft(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(ft(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,ft(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,ft(f,"constructor",l),ft(l,"constructor",c),c.displayName="GeneratorFunction",ft(l,o,"GeneratorFunction"),ft(f),ft(f,o,"Generator"),ft(f,n,function(){return this}),ft(f,"toString",function(){return"[object Generator]"}),(ut=function(){return{w:i,m:p}})()}function ft(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}ft=function(e,t,r,n){function i(t,r){ft(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},ft(e,t,r,n)}function pt(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function dt(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){pt(i,n,o,a,s,"next",e)}function s(e){pt(i,n,o,a,s,"throw",e)}a(void 0)})}}function ht(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,yt(n.key),n)}}function yt(e){var t=function(e){if("object"!=lt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=lt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==lt(t)?t:t+""}var vt=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.renderWindow=t},t=[{key:"capture",value:(a=dt(ut().m(function e(){var t;return ut().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.renderWindow.captureImages();case 1:return t=e.v,e.a(2,t[0])}},e,this)})),function(){return a.apply(this,arguments)})},{key:"captureAndSend",value:(i=dt(ut().m(function e(){var t;return ut().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,this.capture();case 1:w(e.v),console.log("[ScreenshotCapture] Screenshot captured and sent to parent"),e.n=3;break;case 2:throw e.p=2,t=e.v,console.error("[ScreenshotCapture] Error capturing screenshot:",t),t;case 3:return e.a(2)}},e,this,[[0,2]])})),function(){return i.apply(this,arguments)})},{key:"captureAndDownload",value:(o=dt(ut().m(function e(){var t,r,n,o,i=arguments;return ut().w(function(e){for(;;)switch(e.p=e.n){case 0:return t=i.length>0&&void 0!==i[0]?i[0]:"screenshot.png",e.p=1,e.n=2,this.capture();case 2:r=e.v,(n=document.createElement("a")).href=r,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),console.log("[ScreenshotCapture] Screenshot downloaded:",t),e.n=4;break;case 3:throw e.p=3,o=e.v,console.error("[ScreenshotCapture] Error downloading screenshot:",o),o;case 4:return e.a(2)}},e,this,[[1,3]])})),function(){return o.apply(this,arguments)})},{key:"captureAsBlob",value:(n=dt(ut().m(function e(){var t,r;return ut().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.capture();case 1:return t=e.v,e.n=2,fetch(t);case 2:return r=e.v,e.a(2,r.blob())}},e,this)})),function(){return n.apply(this,arguments)})}],r=[{key:"generateFilename",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"screenshot",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"png",r=(new Date).toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return"".concat(e,"_").concat(r,".").concat(t)}}],t&&ht(e.prototype,t),r&&ht(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r,n,o,i,a}();const gt=vt;function bt(e){return bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bt(e)}function mt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function wt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach(function(t){Ot(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Ot(e,t,r){return(t=Ct(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function St(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ct(n.key),n)}}function Ct(e){var t=function(e){if("object"!=bt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=bt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==bt(t)?t:t+""}var Pt="#ff5555",Tt="#55ff55",kt="#5555ff",Et={enabled:!1,corner:"BOTTOM_LEFT",viewportSize:.15,minPixelSize:100,maxPixelSize:300,faceColor:r(.5,.5,.5)},jt=function(){return e=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.vtk=t,this.interactor=r,this.config=wt(wt({},Et),n),this.vtkOrientationMarkerWidget=t.Interaction.Widgets.vtkOrientationMarkerWidget,this.vtkAnnotatedCubeActor=t.Rendering.Core.vtkAnnotatedCubeActor,this.widget=null,this.cubeActor=null,this.enabled=this.config.enabled,this._createWidget()},(t=[{key:"_createWidget",value:function(){this.cubeActor=this.vtkAnnotatedCubeActor.newInstance(),this.cubeActor.setDefaultStyle({text:"+X",fontStyle:"bold",fontFamily:"Arial",fontColor:"white",fontSizeScale:function(e){return e/2},faceColor:this.config.faceColor,faceRotation:0,edgeThickness:.1,edgeColor:"white",resolution:400}),this.cubeActor.setXPlusFaceProperty({text:"+X",faceColor:Pt}),this.cubeActor.setXMinusFaceProperty({text:"-X",faceColor:Pt}),this.cubeActor.setYPlusFaceProperty({text:"+Y",faceColor:Tt}),this.cubeActor.setYMinusFaceProperty({text:"-Y",faceColor:Tt}),this.cubeActor.setZPlusFaceProperty({text:"+Z",faceColor:kt}),this.cubeActor.setZMinusFaceProperty({text:"-Z",faceColor:kt}),this.widget=this.vtkOrientationMarkerWidget.newInstance({actor:this.cubeActor,interactor:this.interactor}),this._applyCornerConfig(),this.widget.setViewportSize(this.config.viewportSize),this.widget.setMinPixelSize(this.config.minPixelSize),this.widget.setMaxPixelSize(this.config.maxPixelSize),this.widget.setEnabled(this.enabled)}},{key:"_applyCornerConfig",value:function(){var e=this.vtkOrientationMarkerWidget.Corners,t={BOTTOM_LEFT:e.BOTTOM_LEFT,BOTTOM_RIGHT:e.BOTTOM_RIGHT,TOP_LEFT:e.TOP_LEFT,TOP_RIGHT:e.TOP_RIGHT}[this.config.corner]||e.BOTTOM_LEFT;this.widget.setViewportCorner(t)}},{key:"enable",value:function(){this.enabled=!0,this.widget&&this.widget.setEnabled(!0)}},{key:"disable",value:function(){this.enabled=!1,this.widget&&this.widget.setEnabled(!1)}},{key:"toggle",value:function(){return this.enabled?this.disable():this.enable(),this.enabled}},{key:"setEnabled",value:function(e){e?this.enable():this.disable()}},{key:"isEnabled",value:function(){return this.enabled}},{key:"setCorner",value:function(e){this.config.corner=e,this._applyCornerConfig()}},{key:"setViewportSize",value:function(e){this.config.viewportSize=e,this.widget&&this.widget.setViewportSize(e)}},{key:"setAxisColors",value:function(e){e.x&&(this.cubeActor.setXPlusFaceProperty({faceColor:e.x}),this.cubeActor.setXMinusFaceProperty({faceColor:e.x})),e.y&&(this.cubeActor.setYPlusFaceProperty({faceColor:e.y}),this.cubeActor.setYMinusFaceProperty({faceColor:e.y})),e.z&&(this.cubeActor.setZPlusFaceProperty({faceColor:e.z}),this.cubeActor.setZMinusFaceProperty({faceColor:e.z}))}},{key:"getWidget",value:function(){return this.widget}},{key:"getCubeActor",value:function(){return this.cubeActor}},{key:"destroy",value:function(){this.widget&&(this.widget.setEnabled(!1),this.widget.delete(),this.widget=null),this.cubeActor&&(this.cubeActor.delete(),this.cubeActor=null)}}])&&St(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const xt=jt;function At(e){return At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},At(e)}function Mt(e){return function(e){if(Array.isArray(e))return Lt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ft(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ft(e,t){if(e){if("string"==typeof e)return Lt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Lt(e,t):void 0}}function Lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _t(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Bt(n.key),n)}}function Bt(e){var t=function(e){if("object"!=At(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=At(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==At(t)?t:t+""}var Rt=["erdc_rainbow_bright","Cool to Warm","Viridis (matplotlib)","Plasma (matplotlib)","Inferno (matplotlib)","Magma (matplotlib)","jet","rainbow"],Vt=function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.vtk=t,this.renderWindow=r,this.vtkColorTransferFunction=t.Rendering.Core.vtkColorTransferFunction,this.vtkColorMaps=t.Rendering.Core.vtkColorTransferFunction.vtkColorMaps,this.currentField=null,this.currentColormap="erdc_rainbow_bright",this.autoRange=!0,this.manualRange=[0,1]},t=[{key:"extractFields",value:function(e){if(!e)return{pointFields:[],cellFields:[],allFields:[]};for(var t=["Attribute","vtkOriginalPointIds","vtkOriginalCellIds"],r=e.getPointData(),n=e.getCellData(),o=[],i=[],a=0;a<r.getNumberOfArrays();a++){var s=r.getArray(a),c=s.getName();if(!t.includes(c)){var l=s.getRange();o.push({name:c,displayName:"".concat(c," (vertex)"),type:"point",fullName:"point:".concat(c),numComponents:s.getNumberOfComponents(),range:[l[0],l[1]]})}}for(var u=0;u<n.getNumberOfArrays();u++){var f=n.getArray(u),p=f.getName();if(!t.includes(p)){var d=f.getRange();i.push({name:p,displayName:"".concat(p," (face)"),type:"cell",fullName:"cell:".concat(p),numComponents:f.getNumberOfComponents(),range:[d[0],d[1]]})}}var h=[].concat(o,i);return{pointFields:o,cellFields:i,allFields:h,hasFields:h.length>0}}},{key:"applyField",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n.range,i=void 0===o?null:o,a=n.colormap,s=void 0===a?this.currentColormap:a,c=n.render,l=void 0===c||c;if(r&&"none"!==r&&t){var u=r.startsWith("cell:"),f=u?r.substring(5):r.startsWith("point:")?r.substring(6):r,p=u?t.getCellData():t.getPointData(),d=p.getArrayByName(f);if(!d)return console.warn('[FieldVisualization] Field "'.concat(f,'" not found')),void this.disableScalarVisualization(e,l);var h=d.getRange(),y=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],c=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Ft(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(i||(this.autoRange?h:this.manualRange),2),v=y[0],g=y[1];if(Math.abs(g-v)<1e-10&&!i)return console.warn('[FieldVisualization] Field "'.concat(f,'" has zero-width range')),void this.disableScalarVisualization(e,l);p.setActiveScalars(f),e.setScalarVisibility(!0),u?e.setScalarModeToUseCellData():e.setScalarModeToUsePointData(),e.setScalarRange(v,g),this.applyColormap(e,s,v,g),this.currentField=r,this.currentColormap=s,e.update(),l&&this.renderWindow.render(),console.log('[FieldVisualization] Applied field "'.concat(f,'" with range [').concat(v.toFixed(3),", ").concat(g.toFixed(3),"]"))}else this.disableScalarVisualization(e,l)}},{key:"applyColormap",value:function(e,t,r,n){try{var o=this.vtkColorTransferFunction.newInstance(),i=this.vtkColorMaps.getPresetByName(t);i?(o.applyColorMap(i),o.setMappingRange(r,n),o.updateRange(),e.setLookupTable(o)):console.warn('[FieldVisualization] Colormap "'.concat(t,'" not found'))}catch(e){console.error("[FieldVisualization] Error applying colormap:",e)}}},{key:"disableScalarVisualization",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e&&e.setScalarVisibility(!1),this.currentField=null,t&&this.renderWindow.render()}},{key:"getColormapOptions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.vtkColorMaps.rgbPresetNames||[],r=[];return e?(Rt.forEach(function(e){t.includes(e)&&r.push({value:e,label:e,isPopular:!0})}),r.push({value:"",label:"----------",disabled:!0}),t.filter(function(e){return!Rt.includes(e)}).sort().forEach(function(e){r.push({value:e,label:e,isPopular:!1})})):t.sort().forEach(function(e){r.push({value:e,label:e,isPopular:Rt.includes(e)})}),r}},{key:"setAutoRange",value:function(e){this.autoRange=e}},{key:"setManualRange",value:function(e,t){this.manualRange=[e,t]}},{key:"calculateSynchronizedRange",value:function(e,t){var r=1/0,n=-1/0,o=t.startsWith("cell:"),i=o?t.substring(5):t.startsWith("point:")?t.substring(6):t;return e.forEach(function(e){if(e){var t=o?e.getCellData():e.getPointData(),a=null==t?void 0:t.getArrayByName(i);if(a){var s=a.getRange();r=Math.min(r,s[0]),n=Math.max(n,s[1])}}}),r===1/0||n===-1/0?[0,1]:[r,n]}},{key:"findCommonFields",value:function(e){var t=this;if(!e||0===e.length)return{commonPointFields:[],commonCellFields:[],commonAllFields:[]};for(var r=this.extractFields(e[0]),n=r.pointFields.map(function(e){return e.name}),o=r.cellFields.map(function(e){return e.name}),i=function(){var r=t.extractFields(e[a]),i=r.pointFields.map(function(e){return e.name}),s=r.cellFields.map(function(e){return e.name});n=n.filter(function(e){return i.includes(e)}),o=o.filter(function(e){return s.includes(e)})},a=1;a<e.length;a++)i();return{commonPointFields:n,commonCellFields:o,commonAllFields:[].concat(Mt(n),Mt(o))}}}],t&&_t(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const It=Vt;function Dt(e){return Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Dt(e)}function Gt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function zt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Nt(n.key),n)}}function Nt(e){var t=function(e){if("object"!=Dt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Dt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Dt(t)?t:t+""}var Wt=function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.vtk=t,this.renderWindow=r},t=[{key:"applyTextureFixes",value:function(e){var t=e.getProperty(),r=e.getMapper(),n={hasTexture:!1,hasMaterial:!1,textureType:null};if(!t)return n;"function"==typeof t.setRMTexture&&t.setRMTexture(null),"function"==typeof t.setMetallicRoughnessTexture&&t.setMetallicRoughnessTexture(null);var o=null;return"function"==typeof t.getBaseColorTexture&&(o=t.getBaseColorTexture())&&(n.textureType="baseColor"),o||"function"!=typeof t.getDiffuseTexture||(o=t.getDiffuseTexture())&&(n.textureType="diffuse"),o||"function"!=typeof t.getTexture||(o=t.getTexture())&&(n.textureType="generic"),o&&(n.hasTexture=!0,e.addTexture(o)),"function"!=typeof t.getMetallic&&"function"!=typeof t.getRoughness||(n.hasMaterial=!0),"function"==typeof t.setMetallic&&t.setMetallic(0),"function"==typeof t.setRoughness&&t.setRoughness(1),"function"==typeof t.setInterpolation&&t.setInterpolation(2),r&&(r.setScalarVisibility(!1),r.modified()),n}},{key:"applyTextureFixesMultiple",value:function(e){var t=this,r={hasTexture:!1,hasMaterial:!1,texturedActors:0};return e.forEach(function(e){var n=t.applyTextureFixes(e);n.hasTexture&&(r.hasTexture=!0,r.texturedActors++),n.hasMaterial&&(r.hasMaterial=!0)}),r}},{key:"configureRenderer",value:function(e){"function"==typeof e.setTwoSidedLighting&&e.setTwoSidedLighting(!0),"function"==typeof e.setUseShadows&&e.setUseShadows(!1)}},{key:"setActorColor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[1,1,1],r=e.getProperty(),n=e.getMapper();r&&r.setColor.apply(r,function(e){return function(e){if(Array.isArray(e))return Gt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Gt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Gt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t)),n&&n.setScalarVisibility(!1)}},{key:"getTextureInfo",value:function(e){var t=e.getProperty(),r={hasTexture:!1,hasMaterial:!1,textureType:null};return t?("function"==typeof t.getBaseColorTexture&&t.getBaseColorTexture()?(r.hasTexture=!0,r.textureType="baseColor"):"function"==typeof t.getDiffuseTexture&&t.getDiffuseTexture()?(r.hasTexture=!0,r.textureType="diffuse"):"function"==typeof t.getTexture&&t.getTexture()&&(r.hasTexture=!0,r.textureType="generic"),"function"!=typeof t.getMetallic&&"function"!=typeof t.getRoughness||(r.hasMaterial=!0),r):r}},{key:"isTextureSupported",value:function(){try{return void 0!==this.vtk.IO.Geometry.vtkGLTFImporter}catch(e){return!1}}}],t&&zt(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();const Ut=Wt;function Ht(e){return Ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ht(e)}function Xt(e){return function(e){if(Array.isArray(e))return Yt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Yt(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Yt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Zt(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return Kt(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(Kt(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Kt(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,Kt(f,"constructor",l),Kt(l,"constructor",c),c.displayName="GeneratorFunction",Kt(l,o,"GeneratorFunction"),Kt(f),Kt(f,o,"Generator"),Kt(f,n,function(){return this}),Kt(f,"toString",function(){return"[object Generator]"}),(Zt=function(){return{w:i,m:p}})()}function Kt(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Kt=function(e,t,r,n){function i(t,r){Kt(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},Kt(e,t,r,n)}function qt(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Jt(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){qt(i,n,o,a,s,"next",e)}function s(e){qt(i,n,o,a,s,"throw",e)}a(void 0)})}}function $t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Qt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$t(Object(r),!0).forEach(function(t){er(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$t(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function er(e,t,r){return(t=rr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function tr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,rr(n.key),n)}}function rr(e){var t=function(e){if("object"!=Ht(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Ht(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Ht(t)?t:t+""}var nr={backgroundColor:[.15,.15,.15],defaultMeshColor:[.6,.8,1],edgeColor:[.2,.2,.2],edgeWidth:1,showEdges:!1,cameraDistanceMultiplier:2.5,parallelProjection:!1,twoSidedLighting:!1,enableFields:!0,enableTextures:!1,enableScreenshot:!0,enableAxisIndicator:!1,enableSettings:!0,enableControls:!0,showLoadingOverlay:!0,showInfoOverlay:!0},or=function(){return e=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=t,this.config=Qt(Qt({},nr),r),this.vtk=null,this.renderWindow=null,this.renderer=null,this.interactor=null,this.openGLRenderWindow=null,this.cameraController=null,this.actorManager=null,this.settingsPanel=null,this.controlsBar=null,this.screenshotCapture=null,this.axisIndicator=null,this.fieldVisualization=null,this.textureManager=null,this.actors=[],this.polyDatas=[],this.currentFilename=null,this.isInitialized=!1,this.loadingOverlay=null,this.infoOverlay=null,this._messageCleanup=null},t=[{key:"initialize",value:(o=Jt(Zt().m(function e(){return Zt().w(function(e){for(;;)switch(e.n){case 0:if(!this.isInitialized){e.n=1;break}return console.warn("[BaseViewer] Already initialized"),e.a(2);case 1:if(this.vtk=window.vtk,this.vtk){e.n=2;break}throw new Error("VTK.js not loaded. Include vtk-gltf.js before initializing viewer.");case 2:this._createRenderingPipeline(),this._initializeFeatures(),this._createUI(),this._setupResizeHandler(),this._setupMessageListener(),this.isInitialized=!0,console.log("[BaseViewer] Initialized");case 3:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_createRenderingPipeline",value:function(){var e;this.renderWindow=this.vtk.Rendering.Core.vtkRenderWindow.newInstance(),this.renderer=this.vtk.Rendering.Core.vtkRenderer.newInstance(),(e=this.renderer).setBackground.apply(e,Xt(this.config.backgroundColor)),this.renderWindow.addRenderer(this.renderer),this.config.twoSidedLighting&&this.renderer.setTwoSidedLighting(!0),this.openGLRenderWindow=this.vtk.Rendering.OpenGL.vtkRenderWindow.newInstance(),this.openGLRenderWindow.setContainer(this.container),this.renderWindow.addView(this.openGLRenderWindow),this.interactor=this.vtk.Rendering.Core.vtkRenderWindowInteractor.newInstance(),this.interactor.setView(this.openGLRenderWindow),this.interactor.initialize(),this.interactor.bindEvents(this.container);var t=this.vtk.Interaction.Style.vtkInteractorStyleTrackballCamera.newInstance();this.interactor.setInteractorStyle(t);var r=this.container.getBoundingClientRect(),n=r.width,o=r.height;this.openGLRenderWindow.setSize(n,o)}},{key:"_initializeFeatures",value:function(){this.cameraController=new B(this.renderer,{distanceMultiplier:this.config.cameraDistanceMultiplier,parallelProjection:this.config.parallelProjection}),this.actorManager=new Y(this.vtk,{defaultColor:this.config.defaultMeshColor,edgeColor:this.config.edgeColor,edgeWidth:this.config.edgeWidth,showEdges:this.config.showEdges}),this.config.enableScreenshot&&(this.screenshotCapture=new vt(this.renderWindow)),this.config.enableAxisIndicator&&(this.axisIndicator=new jt(this.vtk,this.interactor,{enabled:!0})),this.config.enableFields&&(this.fieldVisualization=new Vt(this.vtk,this.renderWindow)),this.config.enableTextures&&(this.textureManager=new Wt(this.vtk,this.renderWindow))}},{key:"_createUI",value:function(){var e=this;this.config.showLoadingOverlay&&(this.loadingOverlay=this._createLoadingOverlay()),this.config.showInfoOverlay&&(this.infoOverlay=this._createInfoOverlay()),this.config.enableSettings&&this.config.settingsConfig&&(this.settingsPanel=new oe(this.config.settingsConfig),this.settingsPanel.onApply(function(t){return e._onSettingsApply(t)})),this.config.enableControls&&this.config.controlsConfig&&(this.controlsBar=new fe(this.config.controlsConfig),this._setupControlsHandlers())}},{key:"_createLoadingOverlay",value:function(){var e=document.createElement("div");return e.id="loading",e.className="loading",e.innerHTML='\n <div class="spinner"></div>\n <div class="loading-text">Loading mesh...</div>\n ',this.container.parentElement.appendChild(e),e}},{key:"_createInfoOverlay",value:function(){var e=document.createElement("div");return e.id="meshInfo",e.className="mesh-info",this.container.parentElement.appendChild(e),e}},{key:"_setupResizeHandler",value:function(){var e=this,t=new ResizeObserver(function(){var t=e.container.getBoundingClientRect(),r=t.width,n=t.height;r>0&&n>0&&(e.openGLRenderWindow.setSize(r,n),e.renderWindow.render())});t.observe(this.container),this._resizeObserver=t}},{key:"_setupMessageListener",value:function(){var e=this;this._messageCleanup=S(function(t){"loadMesh"===t.type&&t.url?e.loadMesh(t.url):"screenshot"===t.type&&e.captureScreenshot()})}},{key:"_setupControlsHandlers",value:function(){var e=this;this.controlsBar&&(this.controlsBar.onAction("camera-view",function(t){e.setCameraView(t)}),this.controlsBar.onAction("screenshot",function(){e.captureScreenshot()}),this.controlsBar.onAction("settings",function(){e.settingsPanel&&e.settingsPanel.open()}),this.controlsBar.onAction("edges-toggle",function(t){e.setEdgeVisibility(t)}))}},{key:"_onSettingsApply",value:function(e){var t;this.actorManager&&this.actorManager.applySettings(this.actors,e),e.backgroundColor&&(t=this.renderer).setBackground.apply(t,Xt(e.backgroundColor)),this.render()}},{key:"loadMesh",value:(n=Jt(Zt().m(function e(t){var r,n,o=this;return Zt().w(function(e){for(;;)switch(e.p=e.n){case 0:return this.showLoading(!0),e.p=1,this.clearScene(),e.n=2,nt(t,this.vtk,{renderer:this.renderer});case 2:return r=e.v,this.actors=r.actors,this.polyDatas=r.polyData?[r.polyData]:[],this.currentFilename=C(t),r.actors.forEach(function(e){o.renderer.addActor(e)}),this._configureLoadedActors(r),this._setupCameraForMesh(),this._updateInfoOverlay(r),this.showLoading(!1),O((this.currentFilename,r.format,r.actors.length,r.hasTexture,r.hasVertexColors,r.fields)),this.render(),e.a(2,r);case 3:throw e.p=3,n=e.v,console.error("[BaseViewer] Error loading mesh:",n),this.showLoading(!1),m(n.message),n;case 4:return e.a(2)}},e,this,[[1,3]])})),function(e){return n.apply(this,arguments)})},{key:"_configureLoadedActors",value:function(e){var t=this;this.config.enableTextures&&this.textureManager&&e.hasTexture?(this.textureManager.applyTextureFixesMultiple(this.actors),this.textureManager.configureRenderer(this.renderer)):e.hasVertexColors?this.actors.forEach(function(e){var r=e.getProperty();r&&t.config.showEdges&&(r.setEdgeVisibility(!0),t.config.edgeColor&&r.setEdgeColor.apply(r,Xt(t.config.edgeColor)))}):this.actorManager.configureActors(this.actors,{color:this.config.defaultMeshColor,showEdges:this.config.showEdges,edgeColor:this.config.edgeColor})}},{key:"_setupCameraForMesh",value:function(){if(0!==this.actors.length){for(var e=this.actors[0].getBounds(),t=1;t<this.actors.length;t++){var r=this.actors[t].getBounds();e=[Math.min(e[0],r[0]),Math.max(e[1],r[1]),Math.min(e[2],r[2]),Math.max(e[3],r[3]),Math.min(e[4],r[4]),Math.max(e[5],r[5])]}p(e)&&this.cameraController.positionInitialCamera(e)}}},{key:"_updateInfoOverlay",value:function(e){if(this.infoOverlay){var t=["File: ".concat(this.currentFilename)];if(e.polyData){var r=e.polyData.getNumberOfPoints(),n=e.polyData.getNumberOfCells();t.push("Points: ".concat(r.toLocaleString())),t.push("Cells: ".concat(n.toLocaleString()))}e.hasTexture&&t.push("Textured: Yes"),this.infoOverlay.innerHTML=t.join("<br>")}}},{key:"clearScene",value:function(){var e=this;this.actors.forEach(function(t){e.renderer.removeActor(t)}),this.actors=[],this.polyDatas=[]}},{key:"setCameraView",value:function(e){if(0!==this.actors.length){var t=this.actors[0].getBounds();this.cameraController.setCameraView(e,t),this.render()}}},{key:"setEdgeVisibility",value:function(e){var t=this;this.actors.forEach(function(r){t.actorManager.setEdgeVisibility(r,e)}),this.render()}},{key:"captureScreenshot",value:(r=Jt(Zt().m(function e(){return Zt().w(function(e){for(;;)switch(e.n){case 0:if(!this.screenshotCapture){e.n=1;break}return e.a(2,this.screenshotCapture.captureAndSend());case 1:return e.a(2)}},e,this)})),function(){return r.apply(this,arguments)})},{key:"showLoading",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Loading mesh...";if(this.loadingOverlay){this.loadingOverlay.style.display=e?"flex":"none";var r=this.loadingOverlay.querySelector(".loading-text");r&&(r.textContent=t)}}},{key:"render",value:function(){this.renderWindow.render()}},{key:"resize",value:function(e,t){this.openGLRenderWindow.setSize(e,t),this.render()}},{key:"getActors",value:function(){return this.actors}},{key:"getRenderer",value:function(){return this.renderer}},{key:"destroy",value:function(){this._messageCleanup&&this._messageCleanup(),this._resizeObserver&&this._resizeObserver.disconnect(),this.axisIndicator&&this.axisIndicator.destroy(),this.clearScene(),this.interactor&&this.interactor.unbindEvents(),this.openGLRenderWindow&&this.openGLRenderWindow.delete(),this.renderWindow&&this.renderWindow.delete(),this.loadingOverlay&&this.loadingOverlay.parentElement&&this.loadingOverlay.parentElement.removeChild(this.loadingOverlay),this.infoOverlay&&this.infoOverlay.parentElement&&this.infoOverlay.parentElement.removeChild(this.infoOverlay),console.log("[BaseViewer] Destroyed")}}],t&&tr(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r,n,o}();const ir=or;function ar(e){return ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ar(e)}function sr(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return cr(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(cr(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,cr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,cr(f,"constructor",l),cr(l,"constructor",c),c.displayName="GeneratorFunction",cr(l,o,"GeneratorFunction"),cr(f),cr(f,o,"Generator"),cr(f,n,function(){return this}),cr(f,"toString",function(){return"[object Generator]"}),(sr=function(){return{w:i,m:p}})()}function cr(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}cr=function(e,t,r,n){function i(t,r){cr(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},cr(e,t,r,n)}function lr(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function ur(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function fr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ur(Object(r),!0).forEach(function(t){pr(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ur(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function pr(e,t,r){return(t=hr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,hr(n.key),n)}}function hr(e){var t=function(e){if("object"!=ar(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=ar(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ar(t)?t:t+""}function yr(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(yr=function(){return!!e})()}function vr(e,t,r,n){var o=gr(br(1&n?e.prototype:e),t,r);return 2&n&&"function"==typeof o?function(e){return o.apply(r,e)}:o}function gr(){return gr="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var n=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=br(e)););return e}(e,t);if(n){var o=Object.getOwnPropertyDescriptor(n,t);return o.get?o.get.call(arguments.length<3?e:r):o.value}},gr.apply(null,arguments)}function br(e){return br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},br(e)}function mr(e,t){return mr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},mr(e,t)}var wr={cameraDistanceMultiplier:2.5,enableFields:!0,enableTextures:!1,enableScreenshot:!0,enableAxisIndicator:!1,enableSettings:!0,enableControls:!0,backgroundColor:[.15,.15,.15],defaultMeshColor:[.6,.8,1],showEdges:!1},Or=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,r){return t=br(t),function(e,t){if(t&&("object"==ar(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,yr()?Reflect.construct(t,r||[],br(e).constructor):t.apply(e,r))}(this,t,[e,fr(fr(fr({},wr),n),{},{settingsConfig:{title:"Settings",fields:[{type:te.COLOR,id:"meshColor",label:"Mesh Color",defaultValue:n.defaultMeshColor||wr.defaultMeshColor},{type:te.CHECKBOX,id:"showEdges",label:"Show Edges",defaultValue:n.showEdges||wr.showEdges},{type:te.COLOR,id:"edgeColor",label:"Edge Color",defaultValue:n.edgeColor||[.2,.2,.2]},{type:te.COLOR,id:"backgroundColor",label:"Background",defaultValue:n.backgroundColor||wr.backgroundColor}]},controlsConfig:{controls:[ue.CAMERA_VIEWS,ue.SCREENSHOT,ue.SETTINGS]}})])).currentField=null,r.currentColormap="erdc_rainbow_bright",r.availableFields=[],r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&mr(e,t)}(t,e),r=t,n=[{key:"loadMesh",value:function(){var e,r=(e=sr().m(function e(r){var n,o,i;return sr().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,vr(t,"loadMesh",this,3)([r]);case 1:return n=e.v,this.fieldVisualization&&this.polyDatas.length>0&&(o=this.fieldVisualization.extractFields(this.polyDatas[0]),this.availableFields=o.allFields,this.availableFields.length>0&&(null===(i=window.parent)||void 0===i||i.postMessage({type:"fieldsAvailable",fields:this.availableFields.map(function(e){return{name:e.fullName,displayName:e.displayName,type:e.type,range:e.range}})},"*"))),e.a(2,n)}},e,this)}),function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){lr(i,n,o,a,s,"next",e)}function s(e){lr(i,n,o,a,s,"throw",e)}a(void 0)})});return function(e){return r.apply(this,arguments)}}()},{key:"applyField",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.fieldVisualization&&0!==this.polyDatas.length){var n=null===(t=this.actors[0])||void 0===t?void 0:t.getMapper();n&&(this.fieldVisualization.applyField(n,this.polyDatas[0],e,{colormap:r.colormap||this.currentColormap,range:r.range,render:!0}),this.currentField=e,r.colormap&&(this.currentColormap=r.colormap))}else console.warn("[StandardViewer] Field visualization not available")}},{key:"setColormap",value:function(e){this.currentColormap=e,this.currentField&&this.applyField(this.currentField,{colormap:e})}},{key:"clearField",value:function(){if(this.actors.length>0){var e,t=this.actors[0].getMapper();t&&(null===(e=this.fieldVisualization)||void 0===e||e.disableScalarVisualization(t,!0))}this.currentField=null}},{key:"getColormapOptions",value:function(){var e;return(null===(e=this.fieldVisualization)||void 0===e?void 0:e.getColormapOptions())||[]}},{key:"getAvailableFields",value:function(){return this.availableFields}},{key:"_setupMessageListener",value:function(){var e=this;vr(t,"_setupMessageListener",this,3)([]),window.addEventListener("message",function(t){var r=t.data;if(r&&r.type)switch(r.type){case"setField":e.applyField(r.field,{colormap:r.colormap,range:r.range});break;case"setColormap":e.setColormap(r.colormap);break;case"clearField":e.clearField()}})}}],n&&dr(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(or);function Sr(e){var t=new Or(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return t.initialize(),t}const Cr=Or;function Pr(e){return Pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pr(e)}function Tr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function kr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Tr(Object(r),!0).forEach(function(t){Er(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tr(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Er(e,t,r){return(t=xr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function jr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,xr(n.key),n)}}function xr(e){var t=function(e){if("object"!=Pr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Pr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Pr(t)?t:t+""}function Ar(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ar=function(){return!!e})()}function Mr(e){return Mr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Mr(e)}function Fr(e,t){return Fr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Fr(e,t)}var Lr={cameraDistanceMultiplier:2,twoSidedLighting:!0,enableFields:!1,enableTextures:!0,enableScreenshot:!0,enableAxisIndicator:!1,enableSettings:!0,enableControls:!0,backgroundColor:[.15,.15,.15],defaultMeshColor:[1,1,1],showEdges:!1},_r=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,r){return t=Mr(t),function(e,t){if(t&&("object"==Pr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ar()?Reflect.construct(t,r||[],Mr(e).constructor):t.apply(e,r))}(this,t,[e,kr(kr(kr({},Lr),n),{},{settingsConfig:{title:"Settings",fields:[{type:te.COLOR,id:"backgroundColor",label:"Background",defaultValue:n.backgroundColor||Lr.backgroundColor},{type:te.CHECKBOX,id:"showEdges",label:"Show Edges",defaultValue:!1}]},controlsConfig:{controls:[ue.CAMERA_VIEWS,ue.SCREENSHOT,ue.SETTINGS]}})])).textureInfo=null,r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Fr(e,t)}(t,e),r=t,(n=[{key:"_configureLoadedActors",value:function(e){var t=this;this.textureManager&&e.actors.length>0&&(this.textureInfo=this.textureManager.applyTextureFixesMultiple(e.actors),this.textureManager.configureRenderer(this.renderer),console.log("[TexturedViewer] Texture info:",this.textureInfo),this.textureInfo.hasTexture||e.actors.forEach(function(e){t.textureManager.setActorColor(e,t.config.defaultMeshColor)}))}},{key:"_updateInfoOverlay",value:function(e){if(this.infoOverlay){var t=["File: ".concat(this.currentFilename)];e.actors&&t.push("Actors: ".concat(e.actors.length)),this.textureInfo&&(t.push("Textured: ".concat(this.textureInfo.hasTexture?"Yes":"No")),this.textureInfo.texturedActors>0&&t.push("Textured actors: ".concat(this.textureInfo.texturedActors))),this.infoOverlay.innerHTML=t.join("<br>")}}},{key:"getTextureInfo",value:function(){return this.textureInfo}},{key:"hasTextures",value:function(){var e;return(null===(e=this.textureInfo)||void 0===e?void 0:e.hasTexture)||!1}}])&&jr(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(or);function Br(e){var t=new _r(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return t.initialize(),t}const Rr=_r;function Vr(e){return Vr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vr(e)}function Ir(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],c=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Gr(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Dr(e){return function(e){if(Array.isArray(e))return zr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Gr(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gr(e,t){if(e){if("string"==typeof e)return zr(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?zr(e,t):void 0}}function zr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Nr(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return Wr(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(Wr(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Wr(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,Wr(f,"constructor",l),Wr(l,"constructor",c),c.displayName="GeneratorFunction",Wr(l,o,"GeneratorFunction"),Wr(f),Wr(f,o,"Generator"),Wr(f,n,function(){return this}),Wr(f,"toString",function(){return"[object Generator]"}),(Nr=function(){return{w:i,m:p}})()}function Wr(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}Wr=function(e,t,r,n){function i(t,r){Wr(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},Wr(e,t,r,n)}function Ur(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}function Hr(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Ur(i,n,o,a,s,"next",e)}function s(e){Ur(i,n,o,a,s,"throw",e)}a(void 0)})}}function Xr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Yr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xr(Object(r),!0).forEach(function(t){Zr(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xr(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function Zr(e,t,r){return(t=qr(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Kr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,qr(n.key),n)}}function qr(e){var t=function(e){if("object"!=Vr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=Vr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Vr(t)?t:t+""}var Jr={SIDE_BY_SIDE:"side-by-side",OVERLAY:"overlay",VERTICAL:"vertical"},$r={cameraDistanceMultiplier:2.5,layout:Jr.SIDE_BY_SIDE,syncCameras:!0,syncFields:!0,backgroundColor:[.15,.15,.15],defaultMeshColorA:[.6,.8,1],defaultMeshColorB:[.6,.8,1],showEdges:!1,enableFields:!0,enableTextures:!0},Qr=function(){return e=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.containerA=t,this.containerB=r,this.config=Yr(Yr({},$r),n),this.vtk=null,this.viewportA=null,this.viewportB=null,this.actorManager=null,this.fieldVisualization=null,this.layout=this.config.layout,this.syncCameras=this.config.syncCameras,this.syncFields=this.config.syncFields,this.isInitialized=!1,this._cameraObserver=null,this._isUpdatingCamera=!1,this._messageCleanup=null},t=[{key:"initialize",value:(o=Hr(Nr().m(function e(){return Nr().w(function(e){for(;;)switch(e.n){case 0:if(!this.isInitialized){e.n=1;break}return e.a(2);case 1:if(this.vtk=window.vtk,this.vtk){e.n=2;break}throw new Error("VTK.js not loaded");case 2:this.viewportA=this._createViewport(this.containerA,"A"),this.viewportB=this._createViewport(this.containerB,"B"),this.actorManager=new Y(this.vtk,{defaultColor:this.config.defaultMeshColorA}),this.fieldVisualization=new Vt(this.vtk,this.viewportA.renderWindow),this.syncCameras&&this._setupCameraSync(),this._setupResizeHandlers(),this._setupMessageListener(),this.isInitialized=!0,console.log("[DualViewer] Initialized");case 3:return e.a(2)}},e,this)})),function(){return o.apply(this,arguments)})},{key:"_createViewport",value:function(e,t){var r=this.vtk.Rendering.Core.vtkRenderWindow.newInstance(),n=this.vtk.Rendering.Core.vtkRenderer.newInstance();n.setBackground.apply(n,Dr(this.config.backgroundColor)),r.addRenderer(n);var o=this.vtk.Rendering.OpenGL.vtkRenderWindow.newInstance();o.setContainer(e),r.addView(o);var i=this.vtk.Rendering.Core.vtkRenderWindowInteractor.newInstance();i.setView(o),i.initialize(),i.bindEvents(e);var a=this.vtk.Interaction.Style.vtkInteractorStyleTrackballCamera.newInstance();i.setInteractorStyle(a);var s=e.getBoundingClientRect(),c=s.width,l=s.height;return o.setSize(c,l),{id:t,container:e,renderWindow:r,renderer:n,openGLRenderWindow:o,interactor:i,interactorStyle:a,cameraController:new B(n,{distanceMultiplier:this.config.cameraDistanceMultiplier}),textureManager:new Wt(this.vtk,r),actors:[],polyData:null,filename:null}}},{key:"_setupCameraSync",value:function(){var e=this,t=function(t,r){if(!e._isUpdatingCamera){e._isUpdatingCamera=!0;var n=t.renderer.getActiveCamera(),o=r.renderer.getActiveCamera();o.setPosition.apply(o,Dr(n.getPosition())),o.setFocalPoint.apply(o,Dr(n.getFocalPoint())),o.setViewUp.apply(o,Dr(n.getViewUp())),o.setParallelScale(n.getParallelScale()),r.renderWindow.render(),e._isUpdatingCamera=!1}},r=this.viewportA.renderer.getActiveCamera(),n=this.viewportB.renderer.getActiveCamera();r.onModified(function(){e.syncCameras&&t(e.viewportA,e.viewportB)}),n.onModified(function(){e.syncCameras&&t(e.viewportB,e.viewportA)})}},{key:"_setupResizeHandlers",value:function(){var e=this,t=function(e){var t=e.container.getBoundingClientRect(),r=t.width,n=t.height;r>0&&n>0&&(e.openGLRenderWindow.setSize(r,n),e.renderWindow.render())};this._resizeObserverA=new ResizeObserver(function(){return t(e.viewportA)}),this._resizeObserverB=new ResizeObserver(function(){return t(e.viewportB)}),this._resizeObserverA.observe(this.viewportA.container),this._resizeObserverB.observe(this.viewportB.container)}},{key:"_setupMessageListener",value:function(){var e=this;this._messageCleanup=S(function(t){switch(t.type){case"loadMeshA":e.loadMesh("A",t.url);break;case"loadMeshB":e.loadMesh("B",t.url);break;case"loadMesh":t.viewport?e.loadMesh(t.viewport,t.url):e.loadMesh("A",t.url);break;case"setLayout":e.setLayout(t.layout);break;case"setCameraSync":e.setCameraSync(t.enabled);break;case"setField":e.applyField(t.field,t.options);break;case"screenshot":e.captureScreenshot()}})}},{key:"loadMesh",value:(n=Hr(Nr().m(function e(t,r){var n,o,i,a,s=this;return Nr().w(function(e){for(;;)switch(e.p=e.n){case 0:return n="A"===t?this.viewportA:this.viewportB,o="A"===t?this.config.defaultMeshColorA:this.config.defaultMeshColorB,e.p=1,n.actors.forEach(function(e){return n.renderer.removeActor(e)}),n.actors=[],e.n=2,nt(r,this.vtk,{renderer:n.renderer});case 2:return i=e.v,n.actors=i.actors,n.polyData=i.polyData,n.filename=C(r),i.actors.forEach(function(e){n.renderer.addActor(e)}),i.hasTexture&&this.config.enableTextures?(n.textureManager.applyTextureFixesMultiple(i.actors),n.textureManager.configureRenderer(n.renderer)):i.hasVertexColors?i.actors.forEach(function(e){var t=e.getProperty();t&&s.config.showEdges&&t.setEdgeVisibility(!0)}):this.actorManager.configureActors(i.actors,{color:o,showEdges:this.config.showEdges}),this._positionCameraForViewport(n),n.renderWindow.render(),O((n.filename,i.format,i.hasTexture,i.hasVertexColors)),e.a(2,i);case 3:throw e.p=3,a=e.v,console.error("[DualViewer] Error loading mesh ".concat(t,":"),a),m("Failed to load mesh ".concat(t,": ").concat(a.message)),a;case 4:return e.a(2)}},e,this,[[1,3]])})),function(e,t){return n.apply(this,arguments)})},{key:"_positionCameraForViewport",value:function(e){if(0!==e.actors.length){for(var t=e.actors[0].getBounds(),r=1;r<e.actors.length;r++)t=f(t,e.actors[r].getBounds());p(t)&&e.cameraController.positionInitialCamera(t)}}},{key:"applyField",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.config.enableFields){var r=t.range;if(this.syncFields&&!r){var n=[this.viewportA.polyData,this.viewportB.polyData].filter(Boolean);n.length>0&&(r=this.fieldVisualization.calculateSynchronizedRange(n,e))}if(this.viewportA.polyData&&this.viewportA.actors.length>0){var o=this.viewportA.actors[0].getMapper();this.fieldVisualization.applyField(o,this.viewportA.polyData,e,Yr(Yr({},t),{},{range:r,render:!1}))}if(this.viewportB.polyData&&this.viewportB.actors.length>0){var i=this.viewportB.actors[0].getMapper();new Vt(this.vtk,this.viewportB.renderWindow).applyField(i,this.viewportB.polyData,e,Yr(Yr({},t),{},{range:r,render:!1}))}this.render()}}},{key:"setLayout",value:function(e){this.layout=e,console.log("[DualViewer] Layout set to: ".concat(e))}},{key:"setCameraSync",value:function(e){this.syncCameras=e,console.log("[DualViewer] Camera sync: ".concat(e))}},{key:"setFieldSync",value:function(e){this.syncFields=e}},{key:"setCameraView",value:function(e){var t=[].concat(Dr(this.viewportA.actors),Dr(this.viewportB.actors));if(0!==t.length){for(var r=t[0].getBounds(),n=1;n<t.length;n++)r=f(r,t[n].getBounds());this.viewportA.cameraController.setCameraView(e,r),this.syncCameras||this.viewportB.cameraController.setCameraView(e,r),this.render()}}},{key:"captureScreenshot",value:(r=Hr(Nr().m(function e(){var t,r,n,o,i,a,s;return Nr().w(function(e){for(;;)switch(e.n){case 0:return r=new vt(this.viewportA.renderWindow),n=new vt(this.viewportB.renderWindow),e.n=1,Promise.all([r.capture(),n.capture()]);case 1:return o=e.v,i=Ir(o,2),a=i[0],s=i[1],null===(t=window.parent)||void 0===t||t.postMessage({type:"screenshot",data:{viewportA:a,viewportB:s}},"*"),e.a(2,{viewportA:a,viewportB:s})}},e,this)})),function(){return r.apply(this,arguments)})},{key:"render",value:function(){this.viewportA.renderWindow.render(),this.viewportB.renderWindow.render()}},{key:"getViewport",value:function(e){return"A"===e?this.viewportA:this.viewportB}},{key:"destroy",value:function(){this._messageCleanup&&this._messageCleanup(),this._resizeObserverA&&this._resizeObserverA.disconnect(),this._resizeObserverB&&this._resizeObserverB.disconnect(),[this.viewportA,this.viewportB].forEach(function(e){e&&(e.actors.forEach(function(t){return e.renderer.removeActor(t)}),e.interactor.unbindEvents(),e.openGLRenderWindow.delete(),e.renderWindow.delete())}),console.log("[DualViewer] Destroyed")}}],t&&Kr(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r,n,o}();function en(e,t){var r=new Qr(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});return r.initialize(),r}const tn=Qr;function rn(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return nn(l,"_invoke",function(r,n,o){var i,s,c,l=0,u=o||[],f=!1,p={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,s=0,c=e,p.n=r,a}};function d(r,n){for(s=r,c=n,t=0;!f&&l&&!o&&t<u.length;t++){var o,i=u[t],d=p.p,h=i[2];r>3?(o=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(s=0,p.v=n,p.n=i[1]):d<h&&(o=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,p.n=h,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,u,h){if(l>1)throw TypeError("Generator is already running");for(f&&1===u&&d(u,h),s=u,c=h;(t=s<2?e:c)||!f;){i||(s?s<3?(s>1&&(p.n=-1),d(s,c)):p.n=c:p.v=c);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?c:r.call(n,p))!==a)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(nn(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,nn(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,nn(f,"constructor",l),nn(l,"constructor",c),c.displayName="GeneratorFunction",nn(l,o,"GeneratorFunction"),nn(f),nn(f,o,"Generator"),nn(f,n,function(){return this}),nn(f,"toString",function(){return"[object Generator]"}),(rn=function(){return{w:i,m:p}})()}function nn(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}nn=function(e,t,r,n){function i(t,r){nn(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},nn(e,t,r,n)}function on(e,t,r,n,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}var an={STANDARD:"standard",TEXTURED:"textured",DUAL:"dual"},sn={create:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};switch(console.log("[GeomPack Viewer] Creating ".concat(e," viewer")),e){case an.STANDARD:case"standard":return new Cr(t,r);case an.TEXTURED:case"textured":return new Rr(t,r);case an.DUAL:case"dual":if(Array.isArray(t))return new tn(t[0],t[1],r);if(r.containerB)return new tn(t,r.containerB,r);throw new Error("DualViewer requires two containers");default:return console.warn("[GeomPack Viewer] Unknown viewer type: ".concat(e,", falling back to standard")),new Cr(t,r)}},createAndInit:function(e,t){var r,n=arguments,o=this;return(r=rn().m(function r(){var i,a;return rn().w(function(r){for(;;)switch(r.n){case 0:return i=n.length>2&&void 0!==n[2]?n[2]:{},a=o.create(e,t,i),r.n=1,a.initialize();case 1:return r.a(2,a)}},r)}),function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){on(i,n,o,a,s,"next",e)}function s(e){on(i,n,o,a,s,"throw",e)}a(void 0)})})()}};const cn={ColorUtils:i,BoundsUtils:d,MessageHandler:P,CameraController:R,ActorManager:Z,Representation:X,BaseViewer:ir,SettingsPanel:ie,SettingTypes:te,ControlsBar:pe,ControlTypes:le,StandardControls:ue,LoaderFactory:ct,FormatTypes:qe,STLLoader:me,OBJLoader:ke,VTPLoader:_e,GLTFLoader:He,FieldVisualization:It,TextureManager:Ut,ScreenshotCapture:gt,AxisIndicator:xt,StandardViewer:Cr,TexturedViewer:Rr,DualViewer:tn,DualLayoutMode:Jr,ViewerTypes:an,createStandardViewer:Sr,createTexturedViewer:Br,createDualViewer:en,ViewerFactory:sn};return t})());