@planara/core 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -3866,4 +3866,4 @@ PERFORMANCE OF THIS SOFTWARE.
3866
3866
  ***************************************************************************** */var Io=function(i,e){return Io=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])},Io(i,e)};function la(i,e){Io(i,e);function t(){this.constructor=i}i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function g_(i,e,t,n){function r(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(u){try{l(n.next(u))}catch(f){o(f)}}function c(u){try{l(n.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):r(u.value).then(a,c)}l((n=n.apply(i,[])).next())})}function v_(i,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(u){return c([l,u])}}function c(l){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,r=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){t.label=l[1];break}if(l[0]===6&&t.label<s[1]){t.label=s[1],s=l;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(l);break}s[2]&&t.ops.pop(),t.trys.pop();continue}l=e.call(i,t)}catch(u){l=[6,u],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Ir(i){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&i[e],n=0;if(t)return t.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function $r(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var n=t.call(i),r,s=[],o;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return s}function qn(){for(var i=[],e=0;e<arguments.length;e++)i=i.concat($r(arguments[e]));return i}var Uo="injectionTokens";function x_(i){var e=Reflect.getMetadata("design:paramtypes",i)||[],t=Reflect.getOwnMetadata(Uo,i)||{};return Object.keys(t).forEach(function(n){e[+n]=t[n]}),e}function Mc(i,e){return function(t,n,r){var s=Reflect.getOwnMetadata(Uo,t)||{};s[r]=i,Reflect.defineMetadata(Uo,s,t)}}function yc(i){return!!i.useClass}function No(i){return!!i.useFactory}var Sc=(function(){function i(e){this.wrap=e,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return i.prototype.createProxy=function(e){var t=this,n={},r=!1,s,o=function(){return r||(s=e(t.wrap()),r=!0),s};return new Proxy(n,this.createHandler(o))},i.prototype.createHandler=function(e){var t={},n=function(r){t[r]=function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];s[0]=e();var a=Reflect[r];return a.apply(void 0,qn(s))}};return this.reflectMethods.forEach(n),t},i})();function mi(i){return typeof i=="string"||typeof i=="symbol"}function M_(i){return typeof i=="object"&&"token"in i&&"multiple"in i}function Nl(i){return typeof i=="object"&&"token"in i&&"transform"in i}function y_(i){return typeof i=="function"||i instanceof Sc}function Vr(i){return!!i.useToken}function Wr(i){return i.useValue!=null}function S_(i){return yc(i)||Wr(i)||Vr(i)||No(i)}var ca=(function(){function i(){this._registryMap=new Map}return i.prototype.entries=function(){return this._registryMap.entries()},i.prototype.getAll=function(e){return this.ensure(e),this._registryMap.get(e)},i.prototype.get=function(e){this.ensure(e);var t=this._registryMap.get(e);return t[t.length-1]||null},i.prototype.set=function(e,t){this.ensure(e),this._registryMap.get(e).push(t)},i.prototype.setAll=function(e,t){this._registryMap.set(e,t)},i.prototype.has=function(e){return this.ensure(e),this._registryMap.get(e).length>0},i.prototype.clear=function(){this._registryMap.clear()},i.prototype.ensure=function(e){this._registryMap.has(e)||this._registryMap.set(e,[])},i})(),E_=(function(i){la(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ca),Ur=(function(){function i(){this.scopedResolutions=new Map}return i})();function T_(i,e){if(i===null)return"at position #"+e;var t=i.split(",")[e].trim();return'"'+t+'" at position #'+e}function b_(i,e,t){return t===void 0&&(t=" "),qn([i],e.message.split(`
3867
3867
  `).map(function(n){return t+n})).join(`
3868
3868
  `)}function w_(i,e,t){var n=$r(i.toString().match(/constructor\(([\w, ]+)\)/)||[],2),r=n[1],s=r===void 0?null:r,o=T_(s,e);return b_("Cannot inject the dependency "+o+' of "'+i.name+'" constructor. Reason:',t)}function A_(i){if(typeof i.dispose!="function")return!1;var e=i.dispose;return!(e.length>0)}var R_=(function(i){la(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ca),C_=(function(i){la(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ca),P_=(function(){function i(){this.preResolution=new R_,this.postResolution=new C_}return i})(),Ec=new Map,D_=(function(){function i(e){this.parent=e,this._registry=new E_,this.interceptors=new P_,this.disposed=!1,this.disposables=new Set}return i.prototype.register=function(e,t,n){n===void 0&&(n={lifecycle:It.Transient}),this.ensureNotDisposed();var r;if(S_(t)?r=t:r={useClass:t},Vr(r))for(var s=[e],o=r;o!=null;){var a=o.useToken;if(s.includes(a))throw new Error("Token registration cycle detected! "+qn(s,[a]).join(" -> "));s.push(a);var c=this._registry.get(a);c&&Vr(c.provider)?o=c.provider:o=null}if((n.lifecycle===It.Singleton||n.lifecycle==It.ContainerScoped||n.lifecycle==It.ResolutionScoped)&&(Wr(r)||No(r)))throw new Error('Cannot use lifecycle "'+It[n.lifecycle]+'" with ValueProviders or FactoryProviders');return this._registry.set(e,{provider:r,options:n}),this},i.prototype.registerType=function(e,t){return this.ensureNotDisposed(),mi(t)?this.register(e,{useToken:t}):this.register(e,{useClass:t})},i.prototype.registerInstance=function(e,t){return this.ensureNotDisposed(),this.register(e,{useValue:t})},i.prototype.registerSingleton=function(e,t){if(this.ensureNotDisposed(),mi(e)){if(mi(t))return this.register(e,{useToken:t},{lifecycle:It.Singleton});if(t)return this.register(e,{useClass:t},{lifecycle:It.Singleton});throw new Error('Cannot register a type name as a singleton without a "to" token')}var n=e;return t&&!mi(t)&&(n=t),this.register(e,{useClass:n},{lifecycle:It.Singleton})},i.prototype.resolve=function(e,t,n){t===void 0&&(t=new Ur),n===void 0&&(n=!1),this.ensureNotDisposed();var r=this.getRegistration(e);if(!r&&mi(e)){if(n)return;throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"Single"),r){var s=this.resolveRegistration(r,t);return this.executePostResolutionInterceptor(e,s,"Single"),s}if(y_(e)){var s=this.construct(e,t);return this.executePostResolutionInterceptor(e,s,"Single"),s}throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},i.prototype.executePreResolutionInterceptor=function(e,t){var n,r;if(this.interceptors.preResolution.has(e)){var s=[];try{for(var o=Ir(this.interceptors.preResolution.getAll(e)),a=o.next();!a.done;a=o.next()){var c=a.value;c.options.frequency!="Once"&&s.push(c),c.callback(e,t)}}catch(l){n={error:l}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}this.interceptors.preResolution.setAll(e,s)}},i.prototype.executePostResolutionInterceptor=function(e,t,n){var r,s;if(this.interceptors.postResolution.has(e)){var o=[];try{for(var a=Ir(this.interceptors.postResolution.getAll(e)),c=a.next();!c.done;c=a.next()){var l=c.value;l.options.frequency!="Once"&&o.push(l),l.callback(e,t,n)}}catch(u){r={error:u}}finally{try{c&&!c.done&&(s=a.return)&&s.call(a)}finally{if(r)throw r.error}}this.interceptors.postResolution.setAll(e,o)}},i.prototype.resolveRegistration=function(e,t){if(this.ensureNotDisposed(),e.options.lifecycle===It.ResolutionScoped&&t.scopedResolutions.has(e))return t.scopedResolutions.get(e);var n=e.options.lifecycle===It.Singleton,r=e.options.lifecycle===It.ContainerScoped,s=n||r,o;return Wr(e.provider)?o=e.provider.useValue:Vr(e.provider)?o=s?e.instance||(e.instance=this.resolve(e.provider.useToken,t)):this.resolve(e.provider.useToken,t):yc(e.provider)?o=s?e.instance||(e.instance=this.construct(e.provider.useClass,t)):this.construct(e.provider.useClass,t):No(e.provider)?o=e.provider.useFactory(this):o=this.construct(e.provider,t),e.options.lifecycle===It.ResolutionScoped&&t.scopedResolutions.set(e,o),o},i.prototype.resolveAll=function(e,t,n){var r=this;t===void 0&&(t=new Ur),n===void 0&&(n=!1),this.ensureNotDisposed();var s=this.getAllRegistrations(e);if(!s&&mi(e)){if(n)return[];throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"All"),s){var o=s.map(function(c){return r.resolveRegistration(c,t)});return this.executePostResolutionInterceptor(e,o,"All"),o}var a=[this.construct(e,t)];return this.executePostResolutionInterceptor(e,a,"All"),a},i.prototype.isRegistered=function(e,t){return t===void 0&&(t=!1),this.ensureNotDisposed(),this._registry.has(e)||t&&(this.parent||!1)&&this.parent.isRegistered(e,!0)},i.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},i.prototype.clearInstances=function(){var e,t;this.ensureNotDisposed();try{for(var n=Ir(this._registry.entries()),r=n.next();!r.done;r=n.next()){var s=$r(r.value,2),o=s[0],a=s[1];this._registry.setAll(o,a.filter(function(c){return!Wr(c.provider)}).map(function(c){return c.instance=void 0,c}))}}catch(c){e={error:c}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},i.prototype.createChildContainer=function(){var e,t;this.ensureNotDisposed();var n=new i(this);try{for(var r=Ir(this._registry.entries()),s=r.next();!s.done;s=r.next()){var o=$r(s.value,2),a=o[0],c=o[1];c.some(function(l){var u=l.options;return u.lifecycle===It.ContainerScoped})&&n._registry.setAll(a,c.map(function(l){return l.options.lifecycle===It.ContainerScoped?{provider:l.provider,options:l.options}:l}))}}catch(l){e={error:l}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n},i.prototype.beforeResolution=function(e,t,n){n===void 0&&(n={frequency:"Always"}),this.interceptors.preResolution.set(e,{callback:t,options:n})},i.prototype.afterResolution=function(e,t,n){n===void 0&&(n={frequency:"Always"}),this.interceptors.postResolution.set(e,{callback:t,options:n})},i.prototype.dispose=function(){return g_(this,void 0,void 0,function(){var e;return v_(this,function(t){switch(t.label){case 0:return this.disposed=!0,e=[],this.disposables.forEach(function(n){var r=n.dispose();r&&e.push(r)}),[4,Promise.all(e)];case 1:return t.sent(),[2]}})})},i.prototype.getRegistration=function(e){return this.isRegistered(e)?this._registry.get(e):this.parent?this.parent.getRegistration(e):null},i.prototype.getAllRegistrations=function(e){return this.isRegistered(e)?this._registry.getAll(e):this.parent?this.parent.getAllRegistrations(e):null},i.prototype.construct=function(e,t){var n=this;if(e instanceof Sc)return e.createProxy(function(s){return n.resolve(s,t)});var r=(function(){var s=Ec.get(e);if(!s||s.length===0){if(e.length===0)return new e;throw new Error('TypeInfo not known for "'+e.name+'"')}var o=s.map(n.resolveParams(t,e));return new(e.bind.apply(e,qn([void 0],o)))})();return A_(r)&&this.disposables.add(r),r},i.prototype.resolveParams=function(e,t){var n=this;return function(r,s){var o,a,c;try{return M_(r)?Nl(r)?r.multiple?(o=n.resolve(r.transform)).transform.apply(o,qn([n.resolveAll(r.token,new Ur,r.isOptional)],r.transformArgs)):(a=n.resolve(r.transform)).transform.apply(a,qn([n.resolve(r.token,e,r.isOptional)],r.transformArgs)):r.multiple?n.resolveAll(r.token,new Ur,r.isOptional):n.resolve(r.token,e,r.isOptional):Nl(r)?(c=n.resolve(r.transform,e)).transform.apply(c,qn([n.resolve(r.token,e)],r.transformArgs)):n.resolve(r,e)}catch(l){throw new Error(w_(t,s,l))}}},i.prototype.ensureNotDisposed=function(){if(this.disposed)throw new Error("This container has been disposed, you cannot interact with a disposed container")},i})(),L_=new D_;function Ht(i,e){var t={token:i,multiple:!1,isOptional:e};return Mc(t)}function jt(i){return function(e){Ec.set(e,x_(e))}}function ha(i,e){var t={token:i,multiple:!0,isOptional:e};return Mc(t)}if(typeof Reflect>"u"||!Reflect.getMetadata)throw new Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);var Nr={exports:{}},Ol;function I_(){if(Ol)return Nr.exports;Ol=1;var i=typeof Reflect=="object"?Reflect:null,e=i&&typeof i.apply=="function"?i.apply:function(T,E,A){return Function.prototype.apply.call(T,E,A)},t;i&&typeof i.ownKeys=="function"?t=i.ownKeys:Object.getOwnPropertySymbols?t=function(T){return Object.getOwnPropertyNames(T).concat(Object.getOwnPropertySymbols(T))}:t=function(T){return Object.getOwnPropertyNames(T)};function n(_){console&&console.warn&&console.warn(_)}var r=Number.isNaN||function(T){return T!==T};function s(){s.init.call(this)}Nr.exports=s,Nr.exports.once=h,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(_){if(typeof _!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof _)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(_){if(typeof _!="number"||_<0||r(_))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+_+".");o=_}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(T){if(typeof T!="number"||T<0||r(T))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+T+".");return this._maxListeners=T,this};function c(_){return _._maxListeners===void 0?s.defaultMaxListeners:_._maxListeners}s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(T){for(var E=[],A=1;A<arguments.length;A++)E.push(arguments[A]);var C=T==="error",M=this._events;if(M!==void 0)C=C&&M.error===void 0;else if(!C)return!1;if(C){var x;if(E.length>0&&(x=E[0]),x instanceof Error)throw x;var N=new Error("Unhandled error."+(x?" ("+x.message+")":""));throw N.context=x,N}var z=M[T];if(z===void 0)return!1;if(typeof z=="function")e(z,this,E);else for(var q=z.length,j=g(z,q),A=0;A<q;++A)e(j[A],this,E);return!0};function l(_,T,E,A){var C,M,x;if(a(E),M=_._events,M===void 0?(M=_._events=Object.create(null),_._eventsCount=0):(M.newListener!==void 0&&(_.emit("newListener",T,E.listener?E.listener:E),M=_._events),x=M[T]),x===void 0)x=M[T]=E,++_._eventsCount;else if(typeof x=="function"?x=M[T]=A?[E,x]:[x,E]:A?x.unshift(E):x.push(E),C=c(_),C>0&&x.length>C&&!x.warned){x.warned=!0;var N=new Error("Possible EventEmitter memory leak detected. "+x.length+" "+String(T)+" listeners added. Use emitter.setMaxListeners() to increase limit");N.name="MaxListenersExceededWarning",N.emitter=_,N.type=T,N.count=x.length,n(N)}return _}s.prototype.addListener=function(T,E){return l(this,T,E,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(T,E){return l(this,T,E,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(_,T,E){var A={fired:!1,wrapFn:void 0,target:_,type:T,listener:E},C=u.bind(A);return C.listener=E,A.wrapFn=C,C}s.prototype.once=function(T,E){return a(E),this.on(T,f(this,T,E)),this},s.prototype.prependOnceListener=function(T,E){return a(E),this.prependListener(T,f(this,T,E)),this},s.prototype.removeListener=function(T,E){var A,C,M,x,N;if(a(E),C=this._events,C===void 0)return this;if(A=C[T],A===void 0)return this;if(A===E||A.listener===E)--this._eventsCount===0?this._events=Object.create(null):(delete C[T],C.removeListener&&this.emit("removeListener",T,A.listener||E));else if(typeof A!="function"){for(M=-1,x=A.length-1;x>=0;x--)if(A[x]===E||A[x].listener===E){N=A[x].listener,M=x;break}if(M<0)return this;M===0?A.shift():y(A,M),A.length===1&&(C[T]=A[0]),C.removeListener!==void 0&&this.emit("removeListener",T,N||E)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(T){var E,A,C;if(A=this._events,A===void 0)return this;if(A.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):A[T]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete A[T]),this;if(arguments.length===0){var M=Object.keys(A),x;for(C=0;C<M.length;++C)x=M[C],x!=="removeListener"&&this.removeAllListeners(x);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(E=A[T],typeof E=="function")this.removeListener(T,E);else if(E!==void 0)for(C=E.length-1;C>=0;C--)this.removeListener(T,E[C]);return this};function d(_,T,E){var A=_._events;if(A===void 0)return[];var C=A[T];return C===void 0?[]:typeof C=="function"?E?[C.listener||C]:[C]:E?p(C):g(C,C.length)}s.prototype.listeners=function(T){return d(this,T,!0)},s.prototype.rawListeners=function(T){return d(this,T,!1)},s.listenerCount=function(_,T){return typeof _.listenerCount=="function"?_.listenerCount(T):m.call(_,T)},s.prototype.listenerCount=m;function m(_){var T=this._events;if(T!==void 0){var E=T[_];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function g(_,T){for(var E=new Array(T),A=0;A<T;++A)E[A]=_[A];return E}function y(_,T){for(;T+1<_.length;T++)_[T]=_[T+1];_.pop()}function p(_){for(var T=new Array(_.length),E=0;E<T.length;++E)T[E]=_[E].listener||_[E];return T}function h(_,T){return new Promise(function(E,A){function C(x){_.removeListener(T,M),A(x)}function M(){typeof _.removeListener=="function"&&_.removeListener("error",C),E([].slice.call(arguments))}b(_,T,M,{once:!0}),T!=="error"&&w(_,C,{once:!0})})}function w(_,T,E){typeof _.on=="function"&&b(_,"error",T,E)}function b(_,T,E,A){if(typeof _.on=="function")A.once?_.once(T,E):_.on(T,E);else if(typeof _.addEventListener=="function")_.addEventListener(T,function C(M){A.once&&_.removeEventListener(T,C),E(M)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof _)}return Nr.exports}var U_=I_(),N_=Object.getOwnPropertyDescriptor,O_=(i,e,t,n)=>{for(var r=n>1?void 0:n?N_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};exports.EventBus=class{_emitter;constructor(){this._emitter=new U_.EventEmitter}emit(e,t){this._emitter.emit(e,t)}on(e,t){this._emitter.on(e,t)}off(e,t){this._emitter.off(e,t)}};exports.EventBus=O_([jt()],exports.EventBus);var vn=(i=>(i.SelectHover="select.hover",i.SelectClick="select.click",i.ToolSelect="tool.select",i))(vn||{});class F_{type;position;normal;uv;material;constructor(e){this.type=e.type,this.position=e.position,this.normal=e.normal??[],this.uv=e.uv??[],this.material=e.material}}var Tc=(i=>(i[i.Cube=0]="Cube",i[i.Sphere=1]="Sphere",i[i.Plane=2]="Plane",i[i.Cylinder=3]="Cylinder",i[i.Custom=4]="Custom",i))(Tc||{}),Wi=(i=>(i.Plane="plane",i.Wireframe="wireframe",i.Texture="texture",i))(Wi||{}),ns=(i=>(i.Mesh="mesh",i.Face="face",i.Edge="edge",i.Vertex="vertex",i))(ns||{}),Qn=(i=>(i.Translate="translate",i.Scale="scale",i.Rotate="rotate",i))(Qn||{}),B_=Object.getOwnPropertyDescriptor,z_=(i,e,t,n)=>{for(var r=n>1?void 0:n?B_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},Fl=(i,e)=>(t,n)=>e(t,n,i);exports.EditorRenderer=class extends oa{constructor(e,t){super(e),this._canvas=e,this._bus=t;const n=new lu(10,10);n.position.y=-.001,this.scene.add(n);const r=new a_(6);this.scene.add(r),this._orbit=new o_(this.camera,this.renderer.domElement),this._orbit.enableDamping=!0,this._orbit.dampingFactor=.05,this._raycaster=new uc,this._mouse=new Ue,this.scene.add(new nu(16777215,4473924,.6)),this._transform=new l_(this.camera,this.renderer.domElement),this._transformHelper=this._transform.getHelper(),this.scene.add(this._transformHelper)}_orbit;_transform;_transformHelper;_raycaster;_mouse;_isEventListenersAdded=!1;_lastHovered=null;update(){this._orbit.update()}addFigure(e){const t=super.addFigure(e),n=new Kh(t.geometry),r=new ta(n,new Ri({color:8947848,linewidth:1}));return t.add(r),this._isEventListenersAdded||this._initMouseListeners(),t}setTransformControlsMode(e){this._transform.setMode(e)}attachTransformControls(e){this._transform.attach(e)}detachTransformControls(){this._transform.detach()}_initMouseListeners(){this.canvas.addEventListener("mousemove",this._handleMouseMove,!1),this.canvas.addEventListener("click",this._handleMouseClick,!1),this.canvas.addEventListener("pointerdown",e=>this._transform.pointerDown(e)),this.canvas.addEventListener("pointermove",e=>this._transform.pointerMove(e)),this.canvas.addEventListener("pointerup",e=>this._transform.pointerUp(e)),this.canvas.addEventListener("pointerleave",()=>this._transform.pointerHover(null)),this._transform.addEventListener("dragging-changed",()=>{this._orbit.enabled=!this._transform.dragging}),this._isEventListenersAdded=!0}_handleMouseMove=e=>{this._processRaycastEvent(e,vn.SelectHover,!0)};_handleMouseClick=e=>{this._processRaycastEvent(e,vn.SelectClick,!1)};_processRaycastEvent(e,t,n){if(this._orbit.isInteracting||this._transform.dragging)return;const r=this._canvas.getBoundingClientRect();this._mouse.x=(e.clientX-r.left)/r.width*2-1,this._mouse.y=-((e.clientY-r.top)/r.height)*2+1,this._raycaster.setFromCamera(this._mouse,this.camera);const o=this._raycaster.intersectObjects(this.meshes,!1)[0]?.object??null;n?o!==this._lastHovered&&(this.meshes.forEach(a=>a.userData.isHit=!1),o&&(o.userData.isHit=!0),this._lastHovered=o,this._bus.emit(t,o?{mesh:o}:null)):this._bus.emit(t,o?{mesh:o}:null)}};exports.EditorRenderer=z_([jt(),Fl(0,Ht("Canvas")),Fl(1,Ht("EventBus"))],exports.EditorRenderer);class H_ extends oa{_orbit;constructor(e){super(e),this.camera.position.set(1,1,7),this.camera.lookAt(0,0,0),this._orbit=new xc(this.camera,this.canvas),this._orbit.target.set(0,0,0),this._orbit.minPolarAngle=Math.PI/2,this._orbit.maxPolarAngle=Math.PI/2,this._orbit.enableRotate=!0,this._orbit.enableZoom=!1,this._orbit.enablePan=!1}update(){this._orbit?.update()}}class k_{_positions=[];_normals=[];_uvs=[];_tmpPositions=[];_tmpNormals=[];_tmpUVs=[];load(e){const t=e.split(`
3869
- `);for(const r of t){if(!r.trim()||r.startsWith("#"))continue;const s=r.trim().split(/\s+/);switch(s[0]){case"v":this._tmpPositions.push(s.slice(1).map(Number));break;case"vn":this._tmpNormals.push(s.slice(1).map(Number));break;case"vt":this._tmpUVs.push(s.slice(1).map(Number));break;case"f":this.processFaceLine(s);break}}const n={type:Tc.Custom,position:this._positions,...this._normals.length>0&&{normal:this._normals},...this._uvs.length>0&&{uv:this._uvs}};return new F_(n)}processFaceLine(e){for(let t=1;t<e.length;t++){const n=e[t];if(!n)continue;const[r,s,o]=n.split("/"),a=r?parseInt(r,10):void 0,c=s?parseInt(s,10):void 0,l=o?parseInt(o,10):void 0;if(a!==void 0){const u=this._tmpPositions[a-1];u&&this._positions.push(...u)}if(c!==void 0){const u=this._tmpUVs[c-1];u&&this._uvs.push(...u)}if(l!==void 0){const u=this._tmpNormals[l-1];u&&this._normals.push(...u)}}}}var G_=Object.getOwnPropertyDescriptor,V_=(i,e,t,n)=>{for(var r=n>1?void 0:n?G_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},W_=(i,e)=>(t,n)=>e(t,n,i);let Oo=class{_currentMode=Wi.Plane;_handlers;constructor(i){this._handlers=new Map(i.map(e=>[e.mode,e]))}manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),i!==Wi.Plane&&this._handlers.get(i)?.handle(),this._currentMode=i)}destroy(){this._handlers&&this._handlers.clear(),this._currentMode=Wi.Plane}};Oo=V_([jt(),W_(0,ha("IDisplayHandler"))],Oo);var $i=(i=>(i.Hover="hover",i.Click="click",i))($i||{}),X_=Object.getOwnPropertyDescriptor,Y_=(i,e,t,n)=>{for(var r=n>1?void 0:n?X_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},Bl=(i,e)=>(t,n)=>e(t,n,i);let Fo=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._eventBus.on(vn.SelectHover,this._onHover),this._eventBus.on(vn.SelectClick,this._onClick)}_currentMode=ns.Mesh;_handlers;manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),this._currentMode=i)}_onHover=i=>{this._handlers.get(this._currentMode)?.handle(i,$i.Hover)};_onClick=i=>{const e=i?.mesh??null;this._eventBus.emit(vn.ToolSelect,{mode:this._currentMode,mesh:e}),this._handlers.get(this._currentMode)?.handle(i,$i.Click)};destroy(){this._handlers&&this._handlers.clear(),this._eventBus.off(vn.SelectHover,this._onHover)}};Fo=Y_([jt(),Bl(0,Ht("EventBus")),Bl(1,ha("ISelectHandler"))],Fo);var q_=Object.getOwnPropertyDescriptor,j_=(i,e,t,n)=>{for(var r=n>1?void 0:n?q_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},zl=(i,e)=>(t,n)=>e(t,n,i);let Bo=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._currentObject=null,this._eventBus.on(vn.ToolSelect,this._onSelect)}_currentTool=Qn.Translate;_handlers;_currentObject;manage(i){this._currentTool!==i&&(this._handlers.get(this._currentTool)?.rollback(),this._handlers.get(i)?.handle(),this._currentTool=i)}_onSelect=i=>{if(this._currentObject===i.mesh)return;const e=this._handlers.get(this._currentTool);if(this._currentObject=i.mesh,i.mesh===null){e?.rollback();return}e?.handle(this._currentObject)};destroy(){this._handlers&&this._handlers.clear(),this._currentTool=Qn.Translate}};Bo=j_([jt(),zl(0,Ht("EventBus")),zl(1,ha("IToolHandler"))],Bo);var Z_=Object.getOwnPropertyDescriptor,$_=(i,e,t,n)=>{for(var r=n>1?void 0:n?Z_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},K_=(i,e)=>(t,n)=>e(t,n,i);let zo=class{constructor(i){this._api=i}mode=Wi.Wireframe;_wireframes=[];handle(){const i=this._api.getMeshes();this._wireframes.length>0||(this._wireframes=i.map(e=>{const t=new Qh(e.geometry),n=new Ri({color:65535,linewidth:1}),r=new ta(t,n);return r.position.copy(e.position),r.rotation.copy(e.rotation),r.scale.copy(e.scale),e.add(r),r}),i.forEach(e=>{const t=e.material;t.visible=!1}))}rollback(){const i=this._api.getMeshes();for(const e of i){const t=this._wireframes.find(r=>r.parent===e);t&&(e.remove(t),t.geometry.dispose(),t.material.dispose());const n=e.material;n.visible=!0}this._wireframes=[]}destroy(){for(const i of this._wireframes)i.geometry.dispose(),i.material.dispose();this._wireframes=[]}};zo=$_([jt(),K_(0,Ht("RendererApi"))],zo);var Q_=Object.getOwnPropertyDescriptor,J_=(i,e,t,n)=>{for(var r=n>1?void 0:n?Q_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};let Ho=class{mode=ns.Mesh;_hoveredMesh=null;_selectedMesh=null;_hoverColor=16776960;_selectColor=16755200;_defaultColor=2236962;constructor(){}handle(i,e){if(e===$i.Hover){if(!i){this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._hoveredMesh=null;return}const{mesh:t}=i;this._hoveredMesh!==t&&(this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),t!==this._selectedMesh&&this._setEdgesColor(t,this._hoverColor),this._hoveredMesh=t)}else if(e===$i.Click){if(!i){this._selectedMesh&&(this._setEdgesColor(this._selectedMesh,this._defaultColor),this._selectedMesh=null);return}const{mesh:t}=i;this._selectedMesh&&this._selectedMesh!==t&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._setEdgesColor(t,this._selectColor),this._selectedMesh=t}}rollback(){this._hoveredMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._selectedMesh&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._hoveredMesh=null,this._selectedMesh=null}destroy(){this.rollback()}_setEdgesColor(i,e){i.children.forEach(t=>{t.type==="LineSegments"&&t.material.color.setHex(e)})}};Ho=J_([jt()],Ho);class ua{constructor(e){this.api=e}handle(e){this.api.setMode(this.mode),e?this.api.attach(e):this.api.detach()}rollback(){this.api.detach()}destroy(){this.rollback()}}var eg=Object.getOwnPropertyDescriptor,tg=(i,e,t,n)=>{for(var r=n>1?void 0:n?eg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ng=(i,e)=>(t,n)=>e(t,n,i);let ko=class extends ua{mode=Qn.Translate;constructor(i){super(i)}};ko=tg([jt(),ng(0,Ht("RendererApi"))],ko);var ig=Object.getOwnPropertyDescriptor,rg=(i,e,t,n)=>{for(var r=n>1?void 0:n?ig(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},sg=(i,e)=>(t,n)=>e(t,n,i);let Go=class extends ua{mode=Qn.Scale;constructor(i){super(i)}};Go=rg([jt(),sg(0,Ht("RendererApi"))],Go);var og=Object.getOwnPropertyDescriptor,ag=(i,e,t,n)=>{for(var r=n>1?void 0:n?og(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},lg=(i,e)=>(t,n)=>e(t,n,i);let Vo=class extends ua{mode=Qn.Rotate;constructor(i){super(i)}};Vo=ag([jt(),lg(0,Ht("RendererApi"))],Vo);var cg=Object.getOwnPropertyDescriptor,hg=(i,e,t,n)=>{for(var r=n>1?void 0:n?cg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ug=(i,e)=>(t,n)=>e(t,n,i);let Wo=class{constructor(i){this._renderer=i}addMesh(i){this._renderer.addMesh(i)}addMeshes(i){for(const e of i)this._renderer.addMesh(e)}removeMesh(i){this._renderer.removeMesh(i)}removeMeshes(i){for(const e of i)this._renderer.removeMesh(e)}getMeshes(){return this._renderer.getMeshes()}setMode(i){this._renderer.setTransformControlsMode(i)}attach(i){this._renderer.attachTransformControls(i)}detach(){this._renderer.detachTransformControls()}};Wo=hg([jt(),ug(0,Ht("EditorRenderer"))],Wo);var fg=Object.getOwnPropertyDescriptor,dg=(i,e,t,n)=>{for(var r=n>1?void 0:n?fg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},Or=(i,e)=>(t,n)=>e(t,n,i);exports.EditorHub=class{constructor(e,t,n,r){this._displayManager=e,this._selectManager=t,this._toolManager=n,this._renderer=r,this.setSelectMode(ns.Mesh),this.setToolMode(Qn.Translate)}setDisplayMode(e){this._displayManager.manage(e)}setSelectMode(e){this._selectManager.manage(e)}setToolMode(e){this._toolManager.manage(e)}resizeRenderer(){this._renderer.resize()}updateRenderer(){this._renderer.loop()}addFigure(e){this._renderer.addFigure(e)}destroy(){this._displayManager.destroy(),this._selectManager.destroy(),this._renderer.destroy()}};exports.EditorHub=dg([jt(),Or(0,Ht("IDisplayManager")),Or(1,Ht("ISelectManager")),Or(2,Ht("IToolManager")),Or(3,Ht("EditorRenderer"))],exports.EditorHub);let Hl=!1;const Rt=L_.createChildContainer();function pg(i){return Hl||(Rt.registerInstance("Canvas",i),Rt.registerSingleton("EventBus",exports.EventBus),Rt.registerSingleton("EditorRenderer",exports.EditorRenderer),Rt.registerSingleton("RendererApi",Wo),Rt.registerSingleton("IDisplayHandler",zo),Rt.registerSingleton("ISelectHandler",Ho),Rt.registerSingleton("IToolHandler",ko),Rt.registerSingleton("IToolHandler",Go),Rt.registerSingleton("IToolHandler",Vo),Rt.registerSingleton("IDisplayManager",Oo),Rt.registerSingleton("ISelectManager",Fo),Rt.registerSingleton("IToolManager",Bo),Rt.registerSingleton("EditorHub",exports.EditorHub),Hl=!0),Rt}function mg(i){return pg(i).resolve("EditorHub")}exports.EventTopics=vn;exports.ObjLoader=k_;exports.PreviewRenderer=H_;exports.Renderer=oa;exports.createAppHub=mg;
3869
+ `);for(const r of t){if(!r.trim()||r.startsWith("#"))continue;const s=r.trim().split(/\s+/);switch(s[0]){case"v":this._tmpPositions.push(s.slice(1).map(Number));break;case"vn":this._tmpNormals.push(s.slice(1).map(Number));break;case"vt":this._tmpUVs.push(s.slice(1).map(Number));break;case"f":this.processFaceLine(s);break}}const n={type:Tc.Custom,position:this._positions,...this._normals.length>0&&{normal:this._normals},...this._uvs.length>0&&{uv:this._uvs}};return new F_(n)}processFaceLine(e){for(let t=1;t<e.length;t++){const n=e[t];if(!n)continue;const[r,s,o]=n.split("/"),a=r?parseInt(r,10):void 0,c=s?parseInt(s,10):void 0,l=o?parseInt(o,10):void 0;if(a!==void 0){const u=this._tmpPositions[a-1];u&&this._positions.push(...u)}if(c!==void 0){const u=this._tmpUVs[c-1];u&&this._uvs.push(...u)}if(l!==void 0){const u=this._tmpNormals[l-1];u&&this._normals.push(...u)}}}}var G_=Object.getOwnPropertyDescriptor,V_=(i,e,t,n)=>{for(var r=n>1?void 0:n?G_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},W_=(i,e)=>(t,n)=>e(t,n,i);let Oo=class{_currentMode=Wi.Plane;_handlers;constructor(i){this._handlers=new Map(i.map(e=>[e.mode,e]))}manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),i!==Wi.Plane&&this._handlers.get(i)?.handle(),this._currentMode=i)}destroy(){this._handlers&&this._handlers.clear(),this._currentMode=Wi.Plane}};Oo=V_([jt(),W_(0,ha("IDisplayHandler"))],Oo);var $i=(i=>(i.Hover="hover",i.Click="click",i))($i||{}),X_=Object.getOwnPropertyDescriptor,Y_=(i,e,t,n)=>{for(var r=n>1?void 0:n?X_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},Bl=(i,e)=>(t,n)=>e(t,n,i);let Fo=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._eventBus.on(vn.SelectHover,this._onHover),this._eventBus.on(vn.SelectClick,this._onClick)}_currentMode=ns.Mesh;_handlers;manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),this._currentMode=i)}_onHover=i=>{this._handlers.get(this._currentMode)?.handle(i,$i.Hover)};_onClick=i=>{const e=i?.mesh??null;this._eventBus.emit(vn.ToolSelect,{mode:this._currentMode,mesh:e}),this._handlers.get(this._currentMode)?.handle(i,$i.Click)};destroy(){this._handlers&&this._handlers.clear(),this._eventBus.off(vn.SelectHover,this._onHover)}};Fo=Y_([jt(),Bl(0,Ht("EventBus")),Bl(1,ha("ISelectHandler"))],Fo);var q_=Object.getOwnPropertyDescriptor,j_=(i,e,t,n)=>{for(var r=n>1?void 0:n?q_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},zl=(i,e)=>(t,n)=>e(t,n,i);let Bo=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._currentObject=null,this._eventBus.on(vn.ToolSelect,this._onSelect)}_currentTool=Qn.Translate;_handlers;_currentObject;manage(i){this._currentTool!==i&&(this._handlers.get(this._currentTool)?.rollback(),this._handlers.get(i)?.handle(this._currentObject),this._currentTool=i)}_onSelect=i=>{if(this._currentObject===i.mesh)return;const e=this._handlers.get(this._currentTool);if(this._currentObject=i.mesh,i.mesh===null){e?.rollback();return}e?.handle(this._currentObject)};destroy(){this._handlers&&this._handlers.clear(),this._currentTool=Qn.Translate}};Bo=j_([jt(),zl(0,Ht("EventBus")),zl(1,ha("IToolHandler"))],Bo);var Z_=Object.getOwnPropertyDescriptor,$_=(i,e,t,n)=>{for(var r=n>1?void 0:n?Z_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},K_=(i,e)=>(t,n)=>e(t,n,i);let zo=class{constructor(i){this._api=i}mode=Wi.Wireframe;_wireframes=[];handle(){const i=this._api.getMeshes();this._wireframes.length>0||(this._wireframes=i.map(e=>{const t=new Qh(e.geometry),n=new Ri({color:65535,linewidth:1}),r=new ta(t,n);return r.position.copy(e.position),r.rotation.copy(e.rotation),r.scale.copy(e.scale),e.add(r),r}),i.forEach(e=>{const t=e.material;t.visible=!1}))}rollback(){const i=this._api.getMeshes();for(const e of i){const t=this._wireframes.find(r=>r.parent===e);t&&(e.remove(t),t.geometry.dispose(),t.material.dispose());const n=e.material;n.visible=!0}this._wireframes=[]}destroy(){for(const i of this._wireframes)i.geometry.dispose(),i.material.dispose();this._wireframes=[]}};zo=$_([jt(),K_(0,Ht("RendererApi"))],zo);var Q_=Object.getOwnPropertyDescriptor,J_=(i,e,t,n)=>{for(var r=n>1?void 0:n?Q_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};let Ho=class{mode=ns.Mesh;_hoveredMesh=null;_selectedMesh=null;_hoverColor=16776960;_selectColor=16755200;_defaultColor=2236962;constructor(){}handle(i,e){if(e===$i.Hover){if(!i){this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._hoveredMesh=null;return}const{mesh:t}=i;this._hoveredMesh!==t&&(this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),t!==this._selectedMesh&&this._setEdgesColor(t,this._hoverColor),this._hoveredMesh=t)}else if(e===$i.Click){if(!i){this._selectedMesh&&(this._setEdgesColor(this._selectedMesh,this._defaultColor),this._selectedMesh=null);return}const{mesh:t}=i;this._selectedMesh&&this._selectedMesh!==t&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._setEdgesColor(t,this._selectColor),this._selectedMesh=t}}rollback(){this._hoveredMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._selectedMesh&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._hoveredMesh=null,this._selectedMesh=null}destroy(){this.rollback()}_setEdgesColor(i,e){i.children.forEach(t=>{t.type==="LineSegments"&&t.material.color.setHex(e)})}};Ho=J_([jt()],Ho);class ua{constructor(e){this.api=e}handle(e){this.api.setMode(this.mode),e?this.api.attach(e):this.api.detach()}rollback(){this.api.detach()}destroy(){this.rollback()}}var eg=Object.getOwnPropertyDescriptor,tg=(i,e,t,n)=>{for(var r=n>1?void 0:n?eg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ng=(i,e)=>(t,n)=>e(t,n,i);let ko=class extends ua{mode=Qn.Translate;constructor(i){super(i)}};ko=tg([jt(),ng(0,Ht("RendererApi"))],ko);var ig=Object.getOwnPropertyDescriptor,rg=(i,e,t,n)=>{for(var r=n>1?void 0:n?ig(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},sg=(i,e)=>(t,n)=>e(t,n,i);let Go=class extends ua{mode=Qn.Scale;constructor(i){super(i)}};Go=rg([jt(),sg(0,Ht("RendererApi"))],Go);var og=Object.getOwnPropertyDescriptor,ag=(i,e,t,n)=>{for(var r=n>1?void 0:n?og(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},lg=(i,e)=>(t,n)=>e(t,n,i);let Vo=class extends ua{mode=Qn.Rotate;constructor(i){super(i)}};Vo=ag([jt(),lg(0,Ht("RendererApi"))],Vo);var cg=Object.getOwnPropertyDescriptor,hg=(i,e,t,n)=>{for(var r=n>1?void 0:n?cg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ug=(i,e)=>(t,n)=>e(t,n,i);let Wo=class{constructor(i){this._renderer=i}addMesh(i){this._renderer.addMesh(i)}addMeshes(i){for(const e of i)this._renderer.addMesh(e)}removeMesh(i){this._renderer.removeMesh(i)}removeMeshes(i){for(const e of i)this._renderer.removeMesh(e)}getMeshes(){return this._renderer.getMeshes()}setMode(i){this._renderer.setTransformControlsMode(i)}attach(i){this._renderer.attachTransformControls(i)}detach(){this._renderer.detachTransformControls()}};Wo=hg([jt(),ug(0,Ht("EditorRenderer"))],Wo);var fg=Object.getOwnPropertyDescriptor,dg=(i,e,t,n)=>{for(var r=n>1?void 0:n?fg(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},Or=(i,e)=>(t,n)=>e(t,n,i);exports.EditorHub=class{constructor(e,t,n,r){this._displayManager=e,this._selectManager=t,this._toolManager=n,this._renderer=r,this.setSelectMode(ns.Mesh),this.setToolMode(Qn.Translate)}setDisplayMode(e){this._displayManager.manage(e)}setSelectMode(e){this._selectManager.manage(e)}setToolMode(e){this._toolManager.manage(e)}resizeRenderer(){this._renderer.resize()}updateRenderer(){this._renderer.loop()}addFigure(e){this._renderer.addFigure(e)}destroy(){this._displayManager.destroy(),this._selectManager.destroy(),this._renderer.destroy()}};exports.EditorHub=dg([jt(),Or(0,Ht("IDisplayManager")),Or(1,Ht("ISelectManager")),Or(2,Ht("IToolManager")),Or(3,Ht("EditorRenderer"))],exports.EditorHub);let Hl=!1;const Rt=L_.createChildContainer();function pg(i){return Hl||(Rt.registerInstance("Canvas",i),Rt.registerSingleton("EventBus",exports.EventBus),Rt.registerSingleton("EditorRenderer",exports.EditorRenderer),Rt.registerSingleton("RendererApi",Wo),Rt.registerSingleton("IDisplayHandler",zo),Rt.registerSingleton("ISelectHandler",Ho),Rt.registerSingleton("IToolHandler",ko),Rt.registerSingleton("IToolHandler",Go),Rt.registerSingleton("IToolHandler",Vo),Rt.registerSingleton("IDisplayManager",Oo),Rt.registerSingleton("ISelectManager",Fo),Rt.registerSingleton("IToolManager",Bo),Rt.registerSingleton("EditorHub",exports.EditorHub),Hl=!0),Rt}function mg(i){return pg(i).resolve("EditorHub")}exports.EventTopics=vn;exports.ObjLoader=k_;exports.PreviewRenderer=H_;exports.Renderer=oa;exports.createAppHub=mg;
package/dist/index.es.js CHANGED
@@ -23014,7 +23014,7 @@ let Ho = class {
23014
23014
  /** Объект, с которым взаимодействует инструмент */
23015
23015
  _currentObject;
23016
23016
  manage(i) {
23017
- this._currentTool !== i && (this._handlers.get(this._currentTool)?.rollback(), this._handlers.get(i)?.handle(), this._currentTool = i);
23017
+ this._currentTool !== i && (this._handlers.get(this._currentTool)?.rollback(), this._handlers.get(i)?.handle(this._currentObject), this._currentTool = i);
23018
23018
  }
23019
23019
  _onSelect = (i) => {
23020
23020
  if (this._currentObject === i.mesh) return;
package/dist/index.umd.js CHANGED
@@ -3866,4 +3866,4 @@ void main() {
3866
3866
  ***************************************************************************** */var Zo=function(i,e){return Zo=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)n.hasOwnProperty(r)&&(t[r]=n[r])},Zo(i,e)};function Ko(i,e){Zo(i,e);function t(){this.constructor=i}i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function Lm(i,e,t,n){function r(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(u){try{l(n.next(u))}catch(f){o(f)}}function c(u){try{l(n.throw(u))}catch(f){o(f)}}function l(u){u.done?s(u.value):r(u.value).then(a,c)}l((n=n.apply(i,[])).next())})}function Im(i,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,r,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(u){return c([l,u])}}function c(l){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,r&&(s=l[0]&2?r.return:l[0]?r.throw||((s=r.return)&&s.call(r),0):r.next)&&!(s=s.call(r,l[1])).done)return s;switch(r=0,s&&(l=[l[0]&2,s.value]),l[0]){case 0:case 1:s=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,r=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){t.label=l[1];break}if(l[0]===6&&t.label<s[1]){t.label=s[1],s=l;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(l);break}s[2]&&t.ops.pop(),t.trys.pop();continue}l=e.call(i,t)}catch(u){l=[6,u],r=0}finally{n=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function $r(i){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&i[e],n=0;if(t)return t.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Zr(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var n=t.call(i),r,s=[],o;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)s.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return s}function Kn(){for(var i=[],e=0;e<arguments.length;e++)i=i.concat(Zr(arguments[e]));return i}var Qo="injectionTokens";function Um(i){var e=Reflect.getMetadata("design:paramtypes",i)||[],t=Reflect.getOwnMetadata(Qo,i)||{};return Object.keys(t).forEach(function(n){e[+n]=t[n]}),e}function cc(i,e){return function(t,n,r){var s=Reflect.getOwnMetadata(Qo,t)||{};s[r]=i,Reflect.defineMetadata(Qo,s,t)}}function hc(i){return!!i.useClass}function Jo(i){return!!i.useFactory}var uc=(function(){function i(e){this.wrap=e,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return i.prototype.createProxy=function(e){var t=this,n={},r=!1,s,o=function(){return r||(s=e(t.wrap()),r=!0),s};return new Proxy(n,this.createHandler(o))},i.prototype.createHandler=function(e){var t={},n=function(r){t[r]=function(){for(var s=[],o=0;o<arguments.length;o++)s[o]=arguments[o];s[0]=e();var a=Reflect[r];return a.apply(void 0,Kn(s))}};return this.reflectMethods.forEach(n),t},i})();function Pi(i){return typeof i=="string"||typeof i=="symbol"}function Nm(i){return typeof i=="object"&&"token"in i&&"multiple"in i}function fc(i){return typeof i=="object"&&"token"in i&&"transform"in i}function Om(i){return typeof i=="function"||i instanceof uc}function Kr(i){return!!i.useToken}function Qr(i){return i.useValue!=null}function Fm(i){return hc(i)||Qr(i)||Kr(i)||Jo(i)}var ea=(function(){function i(){this._registryMap=new Map}return i.prototype.entries=function(){return this._registryMap.entries()},i.prototype.getAll=function(e){return this.ensure(e),this._registryMap.get(e)},i.prototype.get=function(e){this.ensure(e);var t=this._registryMap.get(e);return t[t.length-1]||null},i.prototype.set=function(e,t){this.ensure(e),this._registryMap.get(e).push(t)},i.prototype.setAll=function(e,t){this._registryMap.set(e,t)},i.prototype.has=function(e){return this.ensure(e),this._registryMap.get(e).length>0},i.prototype.clear=function(){this._registryMap.clear()},i.prototype.ensure=function(e){this._registryMap.has(e)||this._registryMap.set(e,[])},i})(),Bm=(function(i){Ko(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ea),Jr=(function(){function i(){this.scopedResolutions=new Map}return i})();function zm(i,e){if(i===null)return"at position #"+e;var t=i.split(",")[e].trim();return'"'+t+'" at position #'+e}function Hm(i,e,t){return t===void 0&&(t=" "),Kn([i],e.message.split(`
3867
3867
  `).map(function(n){return t+n})).join(`
3868
3868
  `)}function km(i,e,t){var n=Zr(i.toString().match(/constructor\(([\w, ]+)\)/)||[],2),r=n[1],s=r===void 0?null:r,o=zm(s,e);return Hm("Cannot inject the dependency "+o+' of "'+i.name+'" constructor. Reason:',t)}function Gm(i){if(typeof i.dispose!="function")return!1;var e=i.dispose;return!(e.length>0)}var Vm=(function(i){Ko(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ea),Wm=(function(i){Ko(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return e})(ea),Xm=(function(){function i(){this.preResolution=new Vm,this.postResolution=new Wm}return i})(),dc=new Map,Ym=(function(){function i(e){this.parent=e,this._registry=new Bm,this.interceptors=new Xm,this.disposed=!1,this.disposables=new Set}return i.prototype.register=function(e,t,n){n===void 0&&(n={lifecycle:Nt.Transient}),this.ensureNotDisposed();var r;if(Fm(t)?r=t:r={useClass:t},Kr(r))for(var s=[e],o=r;o!=null;){var a=o.useToken;if(s.includes(a))throw new Error("Token registration cycle detected! "+Kn(s,[a]).join(" -> "));s.push(a);var c=this._registry.get(a);c&&Kr(c.provider)?o=c.provider:o=null}if((n.lifecycle===Nt.Singleton||n.lifecycle==Nt.ContainerScoped||n.lifecycle==Nt.ResolutionScoped)&&(Qr(r)||Jo(r)))throw new Error('Cannot use lifecycle "'+Nt[n.lifecycle]+'" with ValueProviders or FactoryProviders');return this._registry.set(e,{provider:r,options:n}),this},i.prototype.registerType=function(e,t){return this.ensureNotDisposed(),Pi(t)?this.register(e,{useToken:t}):this.register(e,{useClass:t})},i.prototype.registerInstance=function(e,t){return this.ensureNotDisposed(),this.register(e,{useValue:t})},i.prototype.registerSingleton=function(e,t){if(this.ensureNotDisposed(),Pi(e)){if(Pi(t))return this.register(e,{useToken:t},{lifecycle:Nt.Singleton});if(t)return this.register(e,{useClass:t},{lifecycle:Nt.Singleton});throw new Error('Cannot register a type name as a singleton without a "to" token')}var n=e;return t&&!Pi(t)&&(n=t),this.register(e,{useClass:n},{lifecycle:Nt.Singleton})},i.prototype.resolve=function(e,t,n){t===void 0&&(t=new Jr),n===void 0&&(n=!1),this.ensureNotDisposed();var r=this.getRegistration(e);if(!r&&Pi(e)){if(n)return;throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"Single"),r){var s=this.resolveRegistration(r,t);return this.executePostResolutionInterceptor(e,s,"Single"),s}if(Om(e)){var s=this.construct(e,t);return this.executePostResolutionInterceptor(e,s,"Single"),s}throw new Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},i.prototype.executePreResolutionInterceptor=function(e,t){var n,r;if(this.interceptors.preResolution.has(e)){var s=[];try{for(var o=$r(this.interceptors.preResolution.getAll(e)),a=o.next();!a.done;a=o.next()){var c=a.value;c.options.frequency!="Once"&&s.push(c),c.callback(e,t)}}catch(l){n={error:l}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}this.interceptors.preResolution.setAll(e,s)}},i.prototype.executePostResolutionInterceptor=function(e,t,n){var r,s;if(this.interceptors.postResolution.has(e)){var o=[];try{for(var a=$r(this.interceptors.postResolution.getAll(e)),c=a.next();!c.done;c=a.next()){var l=c.value;l.options.frequency!="Once"&&o.push(l),l.callback(e,t,n)}}catch(u){r={error:u}}finally{try{c&&!c.done&&(s=a.return)&&s.call(a)}finally{if(r)throw r.error}}this.interceptors.postResolution.setAll(e,o)}},i.prototype.resolveRegistration=function(e,t){if(this.ensureNotDisposed(),e.options.lifecycle===Nt.ResolutionScoped&&t.scopedResolutions.has(e))return t.scopedResolutions.get(e);var n=e.options.lifecycle===Nt.Singleton,r=e.options.lifecycle===Nt.ContainerScoped,s=n||r,o;return Qr(e.provider)?o=e.provider.useValue:Kr(e.provider)?o=s?e.instance||(e.instance=this.resolve(e.provider.useToken,t)):this.resolve(e.provider.useToken,t):hc(e.provider)?o=s?e.instance||(e.instance=this.construct(e.provider.useClass,t)):this.construct(e.provider.useClass,t):Jo(e.provider)?o=e.provider.useFactory(this):o=this.construct(e.provider,t),e.options.lifecycle===Nt.ResolutionScoped&&t.scopedResolutions.set(e,o),o},i.prototype.resolveAll=function(e,t,n){var r=this;t===void 0&&(t=new Jr),n===void 0&&(n=!1),this.ensureNotDisposed();var s=this.getAllRegistrations(e);if(!s&&Pi(e)){if(n)return[];throw new Error('Attempted to resolve unregistered dependency token: "'+e.toString()+'"')}if(this.executePreResolutionInterceptor(e,"All"),s){var o=s.map(function(c){return r.resolveRegistration(c,t)});return this.executePostResolutionInterceptor(e,o,"All"),o}var a=[this.construct(e,t)];return this.executePostResolutionInterceptor(e,a,"All"),a},i.prototype.isRegistered=function(e,t){return t===void 0&&(t=!1),this.ensureNotDisposed(),this._registry.has(e)||t&&(this.parent||!1)&&this.parent.isRegistered(e,!0)},i.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},i.prototype.clearInstances=function(){var e,t;this.ensureNotDisposed();try{for(var n=$r(this._registry.entries()),r=n.next();!r.done;r=n.next()){var s=Zr(r.value,2),o=s[0],a=s[1];this._registry.setAll(o,a.filter(function(c){return!Qr(c.provider)}).map(function(c){return c.instance=void 0,c}))}}catch(c){e={error:c}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},i.prototype.createChildContainer=function(){var e,t;this.ensureNotDisposed();var n=new i(this);try{for(var r=$r(this._registry.entries()),s=r.next();!s.done;s=r.next()){var o=Zr(s.value,2),a=o[0],c=o[1];c.some(function(l){var u=l.options;return u.lifecycle===Nt.ContainerScoped})&&n._registry.setAll(a,c.map(function(l){return l.options.lifecycle===Nt.ContainerScoped?{provider:l.provider,options:l.options}:l}))}}catch(l){e={error:l}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n},i.prototype.beforeResolution=function(e,t,n){n===void 0&&(n={frequency:"Always"}),this.interceptors.preResolution.set(e,{callback:t,options:n})},i.prototype.afterResolution=function(e,t,n){n===void 0&&(n={frequency:"Always"}),this.interceptors.postResolution.set(e,{callback:t,options:n})},i.prototype.dispose=function(){return Lm(this,void 0,void 0,function(){var e;return Im(this,function(t){switch(t.label){case 0:return this.disposed=!0,e=[],this.disposables.forEach(function(n){var r=n.dispose();r&&e.push(r)}),[4,Promise.all(e)];case 1:return t.sent(),[2]}})})},i.prototype.getRegistration=function(e){return this.isRegistered(e)?this._registry.get(e):this.parent?this.parent.getRegistration(e):null},i.prototype.getAllRegistrations=function(e){return this.isRegistered(e)?this._registry.getAll(e):this.parent?this.parent.getAllRegistrations(e):null},i.prototype.construct=function(e,t){var n=this;if(e instanceof uc)return e.createProxy(function(s){return n.resolve(s,t)});var r=(function(){var s=dc.get(e);if(!s||s.length===0){if(e.length===0)return new e;throw new Error('TypeInfo not known for "'+e.name+'"')}var o=s.map(n.resolveParams(t,e));return new(e.bind.apply(e,Kn([void 0],o)))})();return Gm(r)&&this.disposables.add(r),r},i.prototype.resolveParams=function(e,t){var n=this;return function(r,s){var o,a,c;try{return Nm(r)?fc(r)?r.multiple?(o=n.resolve(r.transform)).transform.apply(o,Kn([n.resolveAll(r.token,new Jr,r.isOptional)],r.transformArgs)):(a=n.resolve(r.transform)).transform.apply(a,Kn([n.resolve(r.token,e,r.isOptional)],r.transformArgs)):r.multiple?n.resolveAll(r.token,new Jr,r.isOptional):n.resolve(r.token,e,r.isOptional):fc(r)?(c=n.resolve(r.transform,e)).transform.apply(c,Kn([n.resolve(r.token,e)],r.transformArgs)):n.resolve(r,e)}catch(l){throw new Error(km(t,s,l))}}},i.prototype.ensureNotDisposed=function(){if(this.disposed)throw new Error("This container has been disposed, you cannot interact with a disposed container")},i})(),qm=new Ym;function zt(i,e){var t={token:i,multiple:!1,isOptional:e};return cc(t)}function Yt(i){return function(e){dc.set(e,Um(e))}}function ta(i,e){var t={token:i,multiple:!0,isOptional:e};return cc(t)}if(typeof Reflect>"u"||!Reflect.getMetadata)throw new Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);var es={exports:{}},pc;function jm(){if(pc)return es.exports;pc=1;var i=typeof Reflect=="object"?Reflect:null,e=i&&typeof i.apply=="function"?i.apply:function(T,E,A){return Function.prototype.apply.call(T,E,A)},t;i&&typeof i.ownKeys=="function"?t=i.ownKeys:Object.getOwnPropertySymbols?t=function(T){return Object.getOwnPropertyNames(T).concat(Object.getOwnPropertySymbols(T))}:t=function(T){return Object.getOwnPropertyNames(T)};function n(_){console&&console.warn&&console.warn(_)}var r=Number.isNaN||function(T){return T!==T};function s(){s.init.call(this)}es.exports=s,es.exports.once=h,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(_){if(typeof _!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof _)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(_){if(typeof _!="number"||_<0||r(_))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+_+".");o=_}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(T){if(typeof T!="number"||T<0||r(T))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+T+".");return this._maxListeners=T,this};function c(_){return _._maxListeners===void 0?s.defaultMaxListeners:_._maxListeners}s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(T){for(var E=[],A=1;A<arguments.length;A++)E.push(arguments[A]);var C=T==="error",M=this._events;if(M!==void 0)C=C&&M.error===void 0;else if(!C)return!1;if(C){var x;if(E.length>0&&(x=E[0]),x instanceof Error)throw x;var N=new Error("Unhandled error."+(x?" ("+x.message+")":""));throw N.context=x,N}var z=M[T];if(z===void 0)return!1;if(typeof z=="function")e(z,this,E);else for(var q=z.length,j=g(z,q),A=0;A<q;++A)e(j[A],this,E);return!0};function l(_,T,E,A){var C,M,x;if(a(E),M=_._events,M===void 0?(M=_._events=Object.create(null),_._eventsCount=0):(M.newListener!==void 0&&(_.emit("newListener",T,E.listener?E.listener:E),M=_._events),x=M[T]),x===void 0)x=M[T]=E,++_._eventsCount;else if(typeof x=="function"?x=M[T]=A?[E,x]:[x,E]:A?x.unshift(E):x.push(E),C=c(_),C>0&&x.length>C&&!x.warned){x.warned=!0;var N=new Error("Possible EventEmitter memory leak detected. "+x.length+" "+String(T)+" listeners added. Use emitter.setMaxListeners() to increase limit");N.name="MaxListenersExceededWarning",N.emitter=_,N.type=T,N.count=x.length,n(N)}return _}s.prototype.addListener=function(T,E){return l(this,T,E,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(T,E){return l(this,T,E,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(_,T,E){var A={fired:!1,wrapFn:void 0,target:_,type:T,listener:E},C=u.bind(A);return C.listener=E,A.wrapFn=C,C}s.prototype.once=function(T,E){return a(E),this.on(T,f(this,T,E)),this},s.prototype.prependOnceListener=function(T,E){return a(E),this.prependListener(T,f(this,T,E)),this},s.prototype.removeListener=function(T,E){var A,C,M,x,N;if(a(E),C=this._events,C===void 0)return this;if(A=C[T],A===void 0)return this;if(A===E||A.listener===E)--this._eventsCount===0?this._events=Object.create(null):(delete C[T],C.removeListener&&this.emit("removeListener",T,A.listener||E));else if(typeof A!="function"){for(M=-1,x=A.length-1;x>=0;x--)if(A[x]===E||A[x].listener===E){N=A[x].listener,M=x;break}if(M<0)return this;M===0?A.shift():y(A,M),A.length===1&&(C[T]=A[0]),C.removeListener!==void 0&&this.emit("removeListener",T,N||E)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(T){var E,A,C;if(A=this._events,A===void 0)return this;if(A.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):A[T]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete A[T]),this;if(arguments.length===0){var M=Object.keys(A),x;for(C=0;C<M.length;++C)x=M[C],x!=="removeListener"&&this.removeAllListeners(x);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(E=A[T],typeof E=="function")this.removeListener(T,E);else if(E!==void 0)for(C=E.length-1;C>=0;C--)this.removeListener(T,E[C]);return this};function d(_,T,E){var A=_._events;if(A===void 0)return[];var C=A[T];return C===void 0?[]:typeof C=="function"?E?[C.listener||C]:[C]:E?p(C):g(C,C.length)}s.prototype.listeners=function(T){return d(this,T,!0)},s.prototype.rawListeners=function(T){return d(this,T,!1)},s.listenerCount=function(_,T){return typeof _.listenerCount=="function"?_.listenerCount(T):m.call(_,T)},s.prototype.listenerCount=m;function m(_){var T=this._events;if(T!==void 0){var E=T[_];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function g(_,T){for(var E=new Array(T),A=0;A<T;++A)E[A]=_[A];return E}function y(_,T){for(;T+1<_.length;T++)_[T]=_[T+1];_.pop()}function p(_){for(var T=new Array(_.length),E=0;E<T.length;++E)T[E]=_[E].listener||_[E];return T}function h(_,T){return new Promise(function(E,A){function C(x){_.removeListener(T,M),A(x)}function M(){typeof _.removeListener=="function"&&_.removeListener("error",C),E([].slice.call(arguments))}b(_,T,M,{once:!0}),T!=="error"&&w(_,C,{once:!0})})}function w(_,T,E){typeof _.on=="function"&&b(_,"error",T,E)}function b(_,T,E,A){if(typeof _.on=="function")A.once?_.once(T,E):_.on(T,E);else if(typeof _.addEventListener=="function")_.addEventListener(T,function C(M){A.once&&_.removeEventListener(T,C),E(M)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof _)}return es.exports}var $m=jm(),Zm=Object.getOwnPropertyDescriptor,Km=(i,e,t,n)=>{for(var r=n>1?void 0:n?Zm(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};ht.EventBus=class{_emitter;constructor(){this._emitter=new $m.EventEmitter}emit(e,t){this._emitter.emit(e,t)}on(e,t){this._emitter.on(e,t)}off(e,t){this._emitter.off(e,t)}},ht.EventBus=Km([Yt()],ht.EventBus);var Mn=(i=>(i.SelectHover="select.hover",i.SelectClick="select.click",i.ToolSelect="tool.select",i))(Mn||{});class Qm{type;position;normal;uv;material;constructor(e){this.type=e.type,this.position=e.position,this.normal=e.normal??[],this.uv=e.uv??[],this.material=e.material}}var mc=(i=>(i[i.Cube=0]="Cube",i[i.Sphere=1]="Sphere",i[i.Plane=2]="Plane",i[i.Cylinder=3]="Cylinder",i[i.Custom=4]="Custom",i))(mc||{}),er=(i=>(i.Plane="plane",i.Wireframe="wireframe",i.Texture="texture",i))(er||{}),ts=(i=>(i.Mesh="mesh",i.Face="face",i.Edge="edge",i.Vertex="vertex",i))(ts||{}),Qn=(i=>(i.Translate="translate",i.Scale="scale",i.Rotate="rotate",i))(Qn||{}),Jm=Object.getOwnPropertyDescriptor,e_=(i,e,t,n)=>{for(var r=n>1?void 0:n?Jm(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},_c=(i,e)=>(t,n)=>e(t,n,i);ht.EditorRenderer=class extends Wo{constructor(e,t){super(e),this._canvas=e,this._bus=t;const n=new iu(10,10);n.position.y=-.001,this.scene.add(n);const r=new Sm(6);this.scene.add(r),this._orbit=new ym(this.camera,this.renderer.domElement),this._orbit.enableDamping=!0,this._orbit.dampingFactor=.05,this._raycaster=new vl,this._mouse=new Ie,this.scene.add(new Kh(16777215,4473924,.6)),this._transform=new Em(this.camera,this.renderer.domElement),this._transformHelper=this._transform.getHelper(),this.scene.add(this._transformHelper)}_orbit;_transform;_transformHelper;_raycaster;_mouse;_isEventListenersAdded=!1;_lastHovered=null;update(){this._orbit.update()}addFigure(e){const t=super.addFigure(e),n=new Yh(t.geometry),r=new Co(n,new bi({color:8947848,linewidth:1}));return t.add(r),this._isEventListenersAdded||this._initMouseListeners(),t}setTransformControlsMode(e){this._transform.setMode(e)}attachTransformControls(e){this._transform.attach(e)}detachTransformControls(){this._transform.detach()}_initMouseListeners(){this.canvas.addEventListener("mousemove",this._handleMouseMove,!1),this.canvas.addEventListener("click",this._handleMouseClick,!1),this.canvas.addEventListener("pointerdown",e=>this._transform.pointerDown(e)),this.canvas.addEventListener("pointermove",e=>this._transform.pointerMove(e)),this.canvas.addEventListener("pointerup",e=>this._transform.pointerUp(e)),this.canvas.addEventListener("pointerleave",()=>this._transform.pointerHover(null)),this._transform.addEventListener("dragging-changed",()=>{this._orbit.enabled=!this._transform.dragging}),this._isEventListenersAdded=!0}_handleMouseMove=e=>{this._processRaycastEvent(e,Mn.SelectHover,!0)};_handleMouseClick=e=>{this._processRaycastEvent(e,Mn.SelectClick,!1)};_processRaycastEvent(e,t,n){if(this._orbit.isInteracting||this._transform.dragging)return;const r=this._canvas.getBoundingClientRect();this._mouse.x=(e.clientX-r.left)/r.width*2-1,this._mouse.y=-((e.clientY-r.top)/r.height)*2+1,this._raycaster.setFromCamera(this._mouse,this.camera);const o=this._raycaster.intersectObjects(this.meshes,!1)[0]?.object??null;n?o!==this._lastHovered&&(this.meshes.forEach(a=>a.userData.isHit=!1),o&&(o.userData.isHit=!0),this._lastHovered=o,this._bus.emit(t,o?{mesh:o}:null)):this._bus.emit(t,o?{mesh:o}:null)}},ht.EditorRenderer=e_([Yt(),_c(0,zt("Canvas")),_c(1,zt("EventBus"))],ht.EditorRenderer);class t_ extends Wo{_orbit;constructor(e){super(e),this.camera.position.set(1,1,7),this.camera.lookAt(0,0,0),this._orbit=new tc(this.camera,this.canvas),this._orbit.target.set(0,0,0),this._orbit.minPolarAngle=Math.PI/2,this._orbit.maxPolarAngle=Math.PI/2,this._orbit.enableRotate=!0,this._orbit.enableZoom=!1,this._orbit.enablePan=!1}update(){this._orbit?.update()}}class n_{_positions=[];_normals=[];_uvs=[];_tmpPositions=[];_tmpNormals=[];_tmpUVs=[];load(e){const t=e.split(`
3869
- `);for(const r of t){if(!r.trim()||r.startsWith("#"))continue;const s=r.trim().split(/\s+/);switch(s[0]){case"v":this._tmpPositions.push(s.slice(1).map(Number));break;case"vn":this._tmpNormals.push(s.slice(1).map(Number));break;case"vt":this._tmpUVs.push(s.slice(1).map(Number));break;case"f":this.processFaceLine(s);break}}const n={type:mc.Custom,position:this._positions,...this._normals.length>0&&{normal:this._normals},...this._uvs.length>0&&{uv:this._uvs}};return new Qm(n)}processFaceLine(e){for(let t=1;t<e.length;t++){const n=e[t];if(!n)continue;const[r,s,o]=n.split("/"),a=r?parseInt(r,10):void 0,c=s?parseInt(s,10):void 0,l=o?parseInt(o,10):void 0;if(a!==void 0){const u=this._tmpPositions[a-1];u&&this._positions.push(...u)}if(c!==void 0){const u=this._tmpUVs[c-1];u&&this._uvs.push(...u)}if(l!==void 0){const u=this._tmpNormals[l-1];u&&this._normals.push(...u)}}}}var i_=Object.getOwnPropertyDescriptor,r_=(i,e,t,n)=>{for(var r=n>1?void 0:n?i_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},s_=(i,e)=>(t,n)=>e(t,n,i);let na=class{_currentMode=er.Plane;_handlers;constructor(i){this._handlers=new Map(i.map(e=>[e.mode,e]))}manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),i!==er.Plane&&this._handlers.get(i)?.handle(),this._currentMode=i)}destroy(){this._handlers&&this._handlers.clear(),this._currentMode=er.Plane}};na=r_([Yt(),s_(0,ta("IDisplayHandler"))],na);var tr=(i=>(i.Hover="hover",i.Click="click",i))(tr||{}),o_=Object.getOwnPropertyDescriptor,a_=(i,e,t,n)=>{for(var r=n>1?void 0:n?o_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},gc=(i,e)=>(t,n)=>e(t,n,i);let ia=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._eventBus.on(Mn.SelectHover,this._onHover),this._eventBus.on(Mn.SelectClick,this._onClick)}_currentMode=ts.Mesh;_handlers;manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),this._currentMode=i)}_onHover=i=>{this._handlers.get(this._currentMode)?.handle(i,tr.Hover)};_onClick=i=>{const e=i?.mesh??null;this._eventBus.emit(Mn.ToolSelect,{mode:this._currentMode,mesh:e}),this._handlers.get(this._currentMode)?.handle(i,tr.Click)};destroy(){this._handlers&&this._handlers.clear(),this._eventBus.off(Mn.SelectHover,this._onHover)}};ia=a_([Yt(),gc(0,zt("EventBus")),gc(1,ta("ISelectHandler"))],ia);var l_=Object.getOwnPropertyDescriptor,c_=(i,e,t,n)=>{for(var r=n>1?void 0:n?l_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},vc=(i,e)=>(t,n)=>e(t,n,i);let ra=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._currentObject=null,this._eventBus.on(Mn.ToolSelect,this._onSelect)}_currentTool=Qn.Translate;_handlers;_currentObject;manage(i){this._currentTool!==i&&(this._handlers.get(this._currentTool)?.rollback(),this._handlers.get(i)?.handle(),this._currentTool=i)}_onSelect=i=>{if(this._currentObject===i.mesh)return;const e=this._handlers.get(this._currentTool);if(this._currentObject=i.mesh,i.mesh===null){e?.rollback();return}e?.handle(this._currentObject)};destroy(){this._handlers&&this._handlers.clear(),this._currentTool=Qn.Translate}};ra=c_([Yt(),vc(0,zt("EventBus")),vc(1,ta("IToolHandler"))],ra);var h_=Object.getOwnPropertyDescriptor,u_=(i,e,t,n)=>{for(var r=n>1?void 0:n?h_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},f_=(i,e)=>(t,n)=>e(t,n,i);let sa=class{constructor(i){this._api=i}mode=er.Wireframe;_wireframes=[];handle(){const i=this._api.getMeshes();this._wireframes.length>0||(this._wireframes=i.map(e=>{const t=new qh(e.geometry),n=new bi({color:65535,linewidth:1}),r=new Co(t,n);return r.position.copy(e.position),r.rotation.copy(e.rotation),r.scale.copy(e.scale),e.add(r),r}),i.forEach(e=>{const t=e.material;t.visible=!1}))}rollback(){const i=this._api.getMeshes();for(const e of i){const t=this._wireframes.find(r=>r.parent===e);t&&(e.remove(t),t.geometry.dispose(),t.material.dispose());const n=e.material;n.visible=!0}this._wireframes=[]}destroy(){for(const i of this._wireframes)i.geometry.dispose(),i.material.dispose();this._wireframes=[]}};sa=u_([Yt(),f_(0,zt("RendererApi"))],sa);var d_=Object.getOwnPropertyDescriptor,p_=(i,e,t,n)=>{for(var r=n>1?void 0:n?d_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};let oa=class{mode=ts.Mesh;_hoveredMesh=null;_selectedMesh=null;_hoverColor=16776960;_selectColor=16755200;_defaultColor=2236962;constructor(){}handle(i,e){if(e===tr.Hover){if(!i){this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._hoveredMesh=null;return}const{mesh:t}=i;this._hoveredMesh!==t&&(this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),t!==this._selectedMesh&&this._setEdgesColor(t,this._hoverColor),this._hoveredMesh=t)}else if(e===tr.Click){if(!i){this._selectedMesh&&(this._setEdgesColor(this._selectedMesh,this._defaultColor),this._selectedMesh=null);return}const{mesh:t}=i;this._selectedMesh&&this._selectedMesh!==t&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._setEdgesColor(t,this._selectColor),this._selectedMesh=t}}rollback(){this._hoveredMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._selectedMesh&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._hoveredMesh=null,this._selectedMesh=null}destroy(){this.rollback()}_setEdgesColor(i,e){i.children.forEach(t=>{t.type==="LineSegments"&&t.material.color.setHex(e)})}};oa=p_([Yt()],oa);class aa{constructor(e){this.api=e}handle(e){this.api.setMode(this.mode),e?this.api.attach(e):this.api.detach()}rollback(){this.api.detach()}destroy(){this.rollback()}}var m_=Object.getOwnPropertyDescriptor,__=(i,e,t,n)=>{for(var r=n>1?void 0:n?m_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},g_=(i,e)=>(t,n)=>e(t,n,i);let la=class extends aa{mode=Qn.Translate;constructor(i){super(i)}};la=__([Yt(),g_(0,zt("RendererApi"))],la);var v_=Object.getOwnPropertyDescriptor,x_=(i,e,t,n)=>{for(var r=n>1?void 0:n?v_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},M_=(i,e)=>(t,n)=>e(t,n,i);let ca=class extends aa{mode=Qn.Scale;constructor(i){super(i)}};ca=x_([Yt(),M_(0,zt("RendererApi"))],ca);var y_=Object.getOwnPropertyDescriptor,S_=(i,e,t,n)=>{for(var r=n>1?void 0:n?y_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},E_=(i,e)=>(t,n)=>e(t,n,i);let ha=class extends aa{mode=Qn.Rotate;constructor(i){super(i)}};ha=S_([Yt(),E_(0,zt("RendererApi"))],ha);var T_=Object.getOwnPropertyDescriptor,b_=(i,e,t,n)=>{for(var r=n>1?void 0:n?T_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},w_=(i,e)=>(t,n)=>e(t,n,i);let ua=class{constructor(i){this._renderer=i}addMesh(i){this._renderer.addMesh(i)}addMeshes(i){for(const e of i)this._renderer.addMesh(e)}removeMesh(i){this._renderer.removeMesh(i)}removeMeshes(i){for(const e of i)this._renderer.removeMesh(e)}getMeshes(){return this._renderer.getMeshes()}setMode(i){this._renderer.setTransformControlsMode(i)}attach(i){this._renderer.attachTransformControls(i)}detach(){this._renderer.detachTransformControls()}};ua=b_([Yt(),w_(0,zt("EditorRenderer"))],ua);var A_=Object.getOwnPropertyDescriptor,R_=(i,e,t,n)=>{for(var r=n>1?void 0:n?A_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ns=(i,e)=>(t,n)=>e(t,n,i);ht.EditorHub=class{constructor(e,t,n,r){this._displayManager=e,this._selectManager=t,this._toolManager=n,this._renderer=r,this.setSelectMode(ts.Mesh),this.setToolMode(Qn.Translate)}setDisplayMode(e){this._displayManager.manage(e)}setSelectMode(e){this._selectManager.manage(e)}setToolMode(e){this._toolManager.manage(e)}resizeRenderer(){this._renderer.resize()}updateRenderer(){this._renderer.loop()}addFigure(e){this._renderer.addFigure(e)}destroy(){this._displayManager.destroy(),this._selectManager.destroy(),this._renderer.destroy()}},ht.EditorHub=R_([Yt(),ns(0,zt("IDisplayManager")),ns(1,zt("ISelectManager")),ns(2,zt("IToolManager")),ns(3,zt("EditorRenderer"))],ht.EditorHub);let xc=!1;const Ct=qm.createChildContainer();function C_(i){return xc||(Ct.registerInstance("Canvas",i),Ct.registerSingleton("EventBus",ht.EventBus),Ct.registerSingleton("EditorRenderer",ht.EditorRenderer),Ct.registerSingleton("RendererApi",ua),Ct.registerSingleton("IDisplayHandler",sa),Ct.registerSingleton("ISelectHandler",oa),Ct.registerSingleton("IToolHandler",la),Ct.registerSingleton("IToolHandler",ca),Ct.registerSingleton("IToolHandler",ha),Ct.registerSingleton("IDisplayManager",na),Ct.registerSingleton("ISelectManager",ia),Ct.registerSingleton("IToolManager",ra),Ct.registerSingleton("EditorHub",ht.EditorHub),xc=!0),Ct}function P_(i){return C_(i).resolve("EditorHub")}ht.EventTopics=Mn,ht.ObjLoader=n_,ht.PreviewRenderer=t_,ht.Renderer=Wo,ht.createAppHub=P_,Object.defineProperty(ht,Symbol.toStringTag,{value:"Module"})}));
3869
+ `);for(const r of t){if(!r.trim()||r.startsWith("#"))continue;const s=r.trim().split(/\s+/);switch(s[0]){case"v":this._tmpPositions.push(s.slice(1).map(Number));break;case"vn":this._tmpNormals.push(s.slice(1).map(Number));break;case"vt":this._tmpUVs.push(s.slice(1).map(Number));break;case"f":this.processFaceLine(s);break}}const n={type:mc.Custom,position:this._positions,...this._normals.length>0&&{normal:this._normals},...this._uvs.length>0&&{uv:this._uvs}};return new Qm(n)}processFaceLine(e){for(let t=1;t<e.length;t++){const n=e[t];if(!n)continue;const[r,s,o]=n.split("/"),a=r?parseInt(r,10):void 0,c=s?parseInt(s,10):void 0,l=o?parseInt(o,10):void 0;if(a!==void 0){const u=this._tmpPositions[a-1];u&&this._positions.push(...u)}if(c!==void 0){const u=this._tmpUVs[c-1];u&&this._uvs.push(...u)}if(l!==void 0){const u=this._tmpNormals[l-1];u&&this._normals.push(...u)}}}}var i_=Object.getOwnPropertyDescriptor,r_=(i,e,t,n)=>{for(var r=n>1?void 0:n?i_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},s_=(i,e)=>(t,n)=>e(t,n,i);let na=class{_currentMode=er.Plane;_handlers;constructor(i){this._handlers=new Map(i.map(e=>[e.mode,e]))}manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),i!==er.Plane&&this._handlers.get(i)?.handle(),this._currentMode=i)}destroy(){this._handlers&&this._handlers.clear(),this._currentMode=er.Plane}};na=r_([Yt(),s_(0,ta("IDisplayHandler"))],na);var tr=(i=>(i.Hover="hover",i.Click="click",i))(tr||{}),o_=Object.getOwnPropertyDescriptor,a_=(i,e,t,n)=>{for(var r=n>1?void 0:n?o_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},gc=(i,e)=>(t,n)=>e(t,n,i);let ia=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._eventBus.on(Mn.SelectHover,this._onHover),this._eventBus.on(Mn.SelectClick,this._onClick)}_currentMode=ts.Mesh;_handlers;manage(i){i!==this._currentMode&&(this._handlers.get(this._currentMode)?.rollback(),this._currentMode=i)}_onHover=i=>{this._handlers.get(this._currentMode)?.handle(i,tr.Hover)};_onClick=i=>{const e=i?.mesh??null;this._eventBus.emit(Mn.ToolSelect,{mode:this._currentMode,mesh:e}),this._handlers.get(this._currentMode)?.handle(i,tr.Click)};destroy(){this._handlers&&this._handlers.clear(),this._eventBus.off(Mn.SelectHover,this._onHover)}};ia=a_([Yt(),gc(0,zt("EventBus")),gc(1,ta("ISelectHandler"))],ia);var l_=Object.getOwnPropertyDescriptor,c_=(i,e,t,n)=>{for(var r=n>1?void 0:n?l_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},vc=(i,e)=>(t,n)=>e(t,n,i);let ra=class{constructor(i,e){this._eventBus=i,this._handlers=new Map(e.map(t=>[t.mode,t])),this._currentObject=null,this._eventBus.on(Mn.ToolSelect,this._onSelect)}_currentTool=Qn.Translate;_handlers;_currentObject;manage(i){this._currentTool!==i&&(this._handlers.get(this._currentTool)?.rollback(),this._handlers.get(i)?.handle(this._currentObject),this._currentTool=i)}_onSelect=i=>{if(this._currentObject===i.mesh)return;const e=this._handlers.get(this._currentTool);if(this._currentObject=i.mesh,i.mesh===null){e?.rollback();return}e?.handle(this._currentObject)};destroy(){this._handlers&&this._handlers.clear(),this._currentTool=Qn.Translate}};ra=c_([Yt(),vc(0,zt("EventBus")),vc(1,ta("IToolHandler"))],ra);var h_=Object.getOwnPropertyDescriptor,u_=(i,e,t,n)=>{for(var r=n>1?void 0:n?h_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},f_=(i,e)=>(t,n)=>e(t,n,i);let sa=class{constructor(i){this._api=i}mode=er.Wireframe;_wireframes=[];handle(){const i=this._api.getMeshes();this._wireframes.length>0||(this._wireframes=i.map(e=>{const t=new qh(e.geometry),n=new bi({color:65535,linewidth:1}),r=new Co(t,n);return r.position.copy(e.position),r.rotation.copy(e.rotation),r.scale.copy(e.scale),e.add(r),r}),i.forEach(e=>{const t=e.material;t.visible=!1}))}rollback(){const i=this._api.getMeshes();for(const e of i){const t=this._wireframes.find(r=>r.parent===e);t&&(e.remove(t),t.geometry.dispose(),t.material.dispose());const n=e.material;n.visible=!0}this._wireframes=[]}destroy(){for(const i of this._wireframes)i.geometry.dispose(),i.material.dispose();this._wireframes=[]}};sa=u_([Yt(),f_(0,zt("RendererApi"))],sa);var d_=Object.getOwnPropertyDescriptor,p_=(i,e,t,n)=>{for(var r=n>1?void 0:n?d_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r};let oa=class{mode=ts.Mesh;_hoveredMesh=null;_selectedMesh=null;_hoverColor=16776960;_selectColor=16755200;_defaultColor=2236962;constructor(){}handle(i,e){if(e===tr.Hover){if(!i){this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._hoveredMesh=null;return}const{mesh:t}=i;this._hoveredMesh!==t&&(this._hoveredMesh&&this._hoveredMesh!==this._selectedMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),t!==this._selectedMesh&&this._setEdgesColor(t,this._hoverColor),this._hoveredMesh=t)}else if(e===tr.Click){if(!i){this._selectedMesh&&(this._setEdgesColor(this._selectedMesh,this._defaultColor),this._selectedMesh=null);return}const{mesh:t}=i;this._selectedMesh&&this._selectedMesh!==t&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._setEdgesColor(t,this._selectColor),this._selectedMesh=t}}rollback(){this._hoveredMesh&&this._setEdgesColor(this._hoveredMesh,this._defaultColor),this._selectedMesh&&this._setEdgesColor(this._selectedMesh,this._defaultColor),this._hoveredMesh=null,this._selectedMesh=null}destroy(){this.rollback()}_setEdgesColor(i,e){i.children.forEach(t=>{t.type==="LineSegments"&&t.material.color.setHex(e)})}};oa=p_([Yt()],oa);class aa{constructor(e){this.api=e}handle(e){this.api.setMode(this.mode),e?this.api.attach(e):this.api.detach()}rollback(){this.api.detach()}destroy(){this.rollback()}}var m_=Object.getOwnPropertyDescriptor,__=(i,e,t,n)=>{for(var r=n>1?void 0:n?m_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},g_=(i,e)=>(t,n)=>e(t,n,i);let la=class extends aa{mode=Qn.Translate;constructor(i){super(i)}};la=__([Yt(),g_(0,zt("RendererApi"))],la);var v_=Object.getOwnPropertyDescriptor,x_=(i,e,t,n)=>{for(var r=n>1?void 0:n?v_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},M_=(i,e)=>(t,n)=>e(t,n,i);let ca=class extends aa{mode=Qn.Scale;constructor(i){super(i)}};ca=x_([Yt(),M_(0,zt("RendererApi"))],ca);var y_=Object.getOwnPropertyDescriptor,S_=(i,e,t,n)=>{for(var r=n>1?void 0:n?y_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},E_=(i,e)=>(t,n)=>e(t,n,i);let ha=class extends aa{mode=Qn.Rotate;constructor(i){super(i)}};ha=S_([Yt(),E_(0,zt("RendererApi"))],ha);var T_=Object.getOwnPropertyDescriptor,b_=(i,e,t,n)=>{for(var r=n>1?void 0:n?T_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},w_=(i,e)=>(t,n)=>e(t,n,i);let ua=class{constructor(i){this._renderer=i}addMesh(i){this._renderer.addMesh(i)}addMeshes(i){for(const e of i)this._renderer.addMesh(e)}removeMesh(i){this._renderer.removeMesh(i)}removeMeshes(i){for(const e of i)this._renderer.removeMesh(e)}getMeshes(){return this._renderer.getMeshes()}setMode(i){this._renderer.setTransformControlsMode(i)}attach(i){this._renderer.attachTransformControls(i)}detach(){this._renderer.detachTransformControls()}};ua=b_([Yt(),w_(0,zt("EditorRenderer"))],ua);var A_=Object.getOwnPropertyDescriptor,R_=(i,e,t,n)=>{for(var r=n>1?void 0:n?A_(e,t):e,s=i.length-1,o;s>=0;s--)(o=i[s])&&(r=o(r)||r);return r},ns=(i,e)=>(t,n)=>e(t,n,i);ht.EditorHub=class{constructor(e,t,n,r){this._displayManager=e,this._selectManager=t,this._toolManager=n,this._renderer=r,this.setSelectMode(ts.Mesh),this.setToolMode(Qn.Translate)}setDisplayMode(e){this._displayManager.manage(e)}setSelectMode(e){this._selectManager.manage(e)}setToolMode(e){this._toolManager.manage(e)}resizeRenderer(){this._renderer.resize()}updateRenderer(){this._renderer.loop()}addFigure(e){this._renderer.addFigure(e)}destroy(){this._displayManager.destroy(),this._selectManager.destroy(),this._renderer.destroy()}},ht.EditorHub=R_([Yt(),ns(0,zt("IDisplayManager")),ns(1,zt("ISelectManager")),ns(2,zt("IToolManager")),ns(3,zt("EditorRenderer"))],ht.EditorHub);let xc=!1;const Ct=qm.createChildContainer();function C_(i){return xc||(Ct.registerInstance("Canvas",i),Ct.registerSingleton("EventBus",ht.EventBus),Ct.registerSingleton("EditorRenderer",ht.EditorRenderer),Ct.registerSingleton("RendererApi",ua),Ct.registerSingleton("IDisplayHandler",sa),Ct.registerSingleton("ISelectHandler",oa),Ct.registerSingleton("IToolHandler",la),Ct.registerSingleton("IToolHandler",ca),Ct.registerSingleton("IToolHandler",ha),Ct.registerSingleton("IDisplayManager",na),Ct.registerSingleton("ISelectManager",ia),Ct.registerSingleton("IToolManager",ra),Ct.registerSingleton("EditorHub",ht.EditorHub),xc=!0),Ct}function P_(i){return C_(i).resolve("EditorHub")}ht.EventTopics=Mn,ht.ObjLoader=n_,ht.PreviewRenderer=t_,ht.Renderer=Wo,ht.createAppHub=P_,Object.defineProperty(ht,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planara/core",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"