PageSourceSearch

https://mekari.com/wp-content/themes/mekari-wp-core/parts/masthead-9/js/unicornStudio.umd.js?ver=1789616185

js mekari.com collected 2026-09-24 09:24:23 UTC 120,700 bytes, 1 lines download raw bytes

1!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).UnicornStudio={})}(this,function(e){"use strict";var t=Object.defineProperty,i=(e,i,s)=>((e,i,s)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[i]=s)(e,"symbol"!=typeof i?i+"":i,s),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},a={exports:{}};!function(e,t){function i(e,t,s){return i="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,i){var s=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e}(e,t);if(s){var a=Object.getOwnPropertyDescriptor(s,t);return a.get?a.get.call(i):a.value}},i(e,t,s||e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function r(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var i,s=n(e);if(t){var a=n(this).constructor;i=Reflect.construct(s,arguments,a)}else i=s.apply(this,arguments);return function(e,t){if(t&&("object"===p(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)}(this,i)}}function n(e){return(n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(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 l(e,t){if(e){if("string"==typeof e)return u(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,s=new Array(t);i<t;i++)s[i]=e[i];return s}function h(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)}return i}function c(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?h(Object(i),!0).forEach(function(t){d(e,t,i[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):h(Object(i)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))})}return e}function d(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t,i){return t&&function(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}(e.prototype,t),e}function p(e){return(p="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})(e)}var g,v;g=s,v=function(e){var t=new Uint8Array([0,0,0,0]),s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),u=function(){function e(t){var i,s,a,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f(this,e),this.curtains=t,this.gl=null==t?void 0:t.gl,this.type="Texture",this.userData={},this.shouldUpdate=!1,this._samplerName=n.sampler||"uTexture",this._source=n.source||null,this._copiedFrom=null,this._videoFrameCallbackID=null,this._videoFrameCallback=null,this._videoFallbackRAF=null,this._size={width:1,height:1}
1,this._globalParameters=this.gl?(a=this.gl,r=n.floatingPoint,a instanceof WebGL2RenderingContext?"half-float"===r?{internalFormat:a.RGBA16F,format:a.RGBA,type:a.HALF_FLOAT}:"float"===r?{internalFormat:a.RGBA32F,format:a.RGBA,type:a.FLOAT}:{internalFormat:a.RGBA8,format:a.RGBA,type:a.UNSIGNED_BYTE}:{internalFormat:a.RGBA,format:a.RGBA,type:a.UNSIGNED_BYTE}):{internalFormat:0,format:0,type:0},this._sampler={texture:this.gl?this.gl.createTexture():null},this._premultiplyAlpha=null===(i=null!==(s=n.premultipliedAlpha)&&void 0!==s?s:n.premultiplyAlpha)||void 0===i||i,this.gl&&this._sampler.texture&&this._initState(),n.fromTexture?this.copy(n.fromTexture):this._source?this.setSource(this._source):this._uploadFallback()}return m(e,[{key:"_bind",value:function(){this.gl.bindTexture(this.gl.TEXTURE_2D,this._sampler.texture)}},{key:"_initState",value:function(){var e=this.gl;this._bind(),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha?1:0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.bindTexture(e.TEXTURE_2D,null)}},{key:"_uploadFallback",value:function(){if(this.gl&&this._sampler.texture&&!this._copiedFrom){var e=this.gl;this._bind(),this._globalParameters.type===e.UNSIGNED_BYTE?e.texImage2D(e.TEXTURE_2D,0,this._globalParameters.internalFormat,1,1,0,this._globalParameters.format,this._globalParameters.type,t):e.texImage2D(e.TEXTURE_2D,0,this._globalParameters.internalFormat,1,1,0,this._globalParameters.format,this._globalParameters.type,null),e.bindTexture(e.TEXTURE_2D,null)}}},{key:"_scheduleVideoRender",value:function(){this.curtains&&!this._copiedFrom&&(this.shouldUpdate=!0,"function"==typeof this.curtains.requestRender?this.curtains.requestRender():"function"==typeof this.curtains.render&&this.curtains.render())}},{key:"_stopVideoFrameUpdates",value:function(){var e=this._source;e&&e instanceof HTMLVideoElement&&(null!==this._videoFrameCallbackID&&"function"==typeof e.cancelVideoFrameCallback&&e.cancelVideoFrameCallback(this._videoFrameCallbackID),this._videoFrameCallbackID=null,this._videoFrameCallback=null,null!==this._videoFallbackRAF&&(cancelAnimationFrame(this._videoFallbackRAF),this._videoFallbackRAF=null))}},{key:"_startVideoFrameUpdates",value:function(){var e=this,t=this._source;t&&t instanceof HTMLVideoElement&&!this._copiedFrom&&(this._stopVideoFrameUpdates(),"function"==typeof t.requestVideoFrameCallback?(this._videoFrameCallback=function(){e._scheduleVideoRender(),e._videoFrameCallbackID=t.requestVideoFrameCallback(e._videoFrameCallback)},this._videoFrameCallbackID=t.requestVideoFrameCallback(this._videoFrameCallback)):this._videoFallbackRAF=requestAnimationFrame(function i(){e._source===t?(!t.paused&&!t.ended&&t.readyState>=t.HAVE_CURRENT_DATA&&e._scheduleVideoRender(),e._videoFallbackRAF=requestAnimationFrame(i)):e._videoFallbackRAF=null}))}},{key:"_uploadSource",value:function(e){if(this.gl&&this._sampler.texture&&!this._copiedFrom){var t=this.gl,i=e.videoWidth||e.naturalWidth||e.width||1,s=e.videoHeight||e.naturalHeight||e.height||1;this._size={width:i,height:s},this._bind(),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,1),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha?1:0),t instanceof WebGL2RenderingContext?t.texImage2D(t.TEXTURE_2D,0,this._globalParameters.internalFormat,this._globalParameters.format,this._globalParameters.type,e):t.texImage2D(t.TEXTURE_2D,0,this._globalParameters.format,this._globalParameters.format,this._globalParameters.type,e),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,0),t.bindTexture(t.TEXTURE_2D,null)}}},{key:"setSource",value:function(e){return this._stopVideoFrameUpdates(),this._source=e,this._copiedFrom=null,this._uploadSource(e),e instanceof HTMLVideoElement&&this._startVideoFrameUpdates(),this}},{key:"copy",value:function(e){return e?(this._stopVideoFrameUpdates(),this._copiedFrom=e,this._sampler.texture=e._sampler.texture,this._size=c({},e._size),this._globalParameters=e._globalParameters,this):this}},{key:"update",value:function(){this._source&&!this._copiedFrom&&this._uploadSource(this._source)}},{key:"needUpdate",value:function(){this._copiedFrom||(this.update(),this.curtains&&"function"==typeof this.curtains.requestRender?this.curtains.requestRender():this.curtains&&"function"==typeof this.curtains.render&&this.curtains.render())}},{key:"remove",value:function(){this._stopVideoFrameUpdates(),this.gl&&this._sampler.texture&&!this._copiedFrom&&this.gl.deleteTexture(this._sampler.texture)}}]),e}(),h=function(){function e(t){var i,s,a,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f(this,e),this.curtains=t,this.gl=null==t?void 0:t.gl,this.type="RenderTarget",this.userData={},this._depth=!!o.depth,this._clear=void 0===o.clear||!!o.clear;var l=(null==t||null===(i=t.canvas)||void 0===i?void 0:i.width)||1,h=(null==t||null===(s=t.canvas)||void 0===s?void 0:s.height)||1;this._scaleWithCanvas=void 0===o.scaleWithCanvas||!!o.scaleWithCanvas,this._widthScale=void 0!==o.maxWidth&&l>0?o.maxWidth/l:null,this._heightScale=void 0!==o.maxHeight&&h>0?o.maxHeight/h:null,this._baseMaxSize={width:Math.max(1,Math.round(o.maxWidth||l)),height:Math.max(1,Math.round(o.maxHeight||h))},this._minSize={width:Math.max(1,Math.round(o.minWidth||1)),height:Math.max(1,Math.round(o.minHeight||1))},this._maxSize={width:this._baseMaxSize.width,height:this._baseMaxSize.height},this._size={width:this._baseMaxSize.width,height:this._baseMaxSize.height},this._setSize(),this._frameBuffer=null,this._depthBuffer=null;var c=(null===(a=o.texturesOptions)||void 0===a?void 0:a.sampler)||"uTexture",d=o.texturesOptions&&o.texturesOptions.floatingPoint;this.textures=[new u(t,{sampler:c,premultiplyAlpha:null===(r=null===(n=o.texturesOptions)||void 0===n?void 0:n.premultiplyAlpha)||void 0===r||r,floatingPoint:d})],null!=t&&t.renderTargets&&!t.renderTargets.includes(this)&&t.renderTargets.push(this)}return m(e,[{key:"_setSize",value:function(){var e,t,i=1*((null===this.curtains||void 0===this.curtains||null===(e=this.curtains.canvas)||void 0===e?void 0:e.width)||1),s=1*((null===this.curtains||void 0===this.curtains||null===(t=this.curtains.canvas)||void 0===t?void 0:t.height)||1),a=this._baseMaxSize.width,r=this._baseMaxSize.height;this._scaleWithCanvas&&(null!==this._widthScale&&(a=Math.max(1,Math.round(i*this._widthScale))),null!==this._heightScale&&(r=Math.max(1,Math.round(s*this._heightScale)))),this._maxSize={width:a,height:r},this._size={width:Math.min(this._maxSize.width,Math.max(this._minSize.width,i)),height:Math.min(this._maxSize.height,Math.max(this._minSize.height,s))}}},{key:"_initRenderTarget",value:function(){if(this.gl){var e=this.gl;this._setSize(),this._frameBuffer||(this._frameBuffer=e.createFramebuffer());var t=this.getTexture();t&&(e.bindFramebuffer(e.FRAMEBUFFER,this._frameBuffer),e.bindTexture(e.TEXTURE_2D,t._sampler.texture),e.texImage2D(e.TEXTURE_2D,0,t._globalParameters.internalFormat,this._size.width,this._size.height,0,t._globalParameters.format,t._globalParameters.type,null),t._size=c({},this._size),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t._sampler.texture,0),this._depth&&(this._depthBuffer||(this._depthBuffer=e.createRenderbuffer()),e.bindRenderbuffer(e.RENDERBUFFER,this._depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,this._size.width,this._size.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this._depthBuffer),e.bindRenderbuffer(e.RENDERBUFFER,null)),e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null))}}},{key:"resize",value:function(){if(this.gl){var e=this._size.width,t=this._size.height;if(this._setSize(),e!==this._size.width||t!==this._size.height||!this._frameBuffer)if(this._frameBuffer){var i=this.getTexture();if(i){var s=this.gl;s.bindFramebuffer(s.FRAMEBUFFER,this._frameBuffer),s.bindTexture(s.TEXTURE_2D,i._sampler.texture),s.texImage2D(s.TEXTURE_2D,0,i._globalParameters.internalFormat,this._size.width,this._size.height,0,i._globalParameters.format,i._globalParameters.type,null),i._size=c({},this._size),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,i._sampler.texture,0),this._depth&&(this._depthBuffer||(this._depthBuffer=s.createRenderbuffer()),s.bindRenderbuffer(s.RENDERBUFFER,this._depthBuffer),s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT16,this._size.width,this._size.height),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,this._depthBuffer),s.bindRenderbuffer(s.RENDERBUFFER,null)),s.bindTexture(s.TEXTURE_2D,null),s.bindFramebuffer(s.FRAMEBUFFER,null)}}else this._initRenderTarget()}}},{key:"getTexture",value:function(){return this.textures[0]||null}},{key:"remove",value:function(){var e,t=this;this.gl&&(this._depthBuffer&&(this.gl.deleteRenderbuffer(this._depthBuffer),this._depthBuffer=null),this._frameBuffer&&(this.gl.deleteFramebuffer(this._frameBuffer),this._frameBuffer=null),this.textures.forEac
1h(function(e){return e.remove()}),null!==(e=this.curtains)&&void 0!==e&&e.renderTargets&&(this.curtains.renderTargets=this.curtains.renderTargets.filter(function(e){return e!==t})))}}]),e}(),d=function(){function e(){var t,i,s,a=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,e),this.type="Curtains",this.options=c({},r),this.container=(s=r.container)?"string"==typeof s?document.querySelector(s):s:null,this.canvas=document.createElement("canvas"),this.canvas.style.display="block",this.canvas.style.width="100%",this.canvas.style.height="100%",this.container&&!this.container.contains(this.canvas)&&this.container.appendChild(this.canvas);var n={alpha:!0,antialias:null!==(t=r.antialias)&&void 0!==t&&t,premultipliedAlpha:null===(i=r.premultipliedAlpha)||void 0===i||i,preserveDrawingBuffer:!1};this.gl=this.canvas.getContext("webgl2",n)||this.canvas.getContext("webgl",n),this.gl instanceof WebGL2RenderingContext?(this.gl.getExtension("EXT_color_buffer_float"),this.gl.getExtension("OES_texture_float_linear")):(this.gl.getExtension("OES_texture_half_float"),this.gl.getExtension("OES_texture_half_float_linear"),this.gl.getExtension("OES_texture_float"),this.gl.getExtension("OES_texture_float_linear")),this.planes=[],this.renderTargets=[],this.pixelRatio=r.pixelRatio||1,this.renderingScale=r.renderingScale||1,this._renderRequestID=null,this._errorCallbacks=[],this._contextLostCallbacks=[],this._contextRestoredCallbacks=[];var o={currentProgramID:null,currentGeometryID:null,forceBufferUpdate:!1,depthTest:null,blending:null,cullFace:null,frameBufferID:null,activeTexture:null,flipY:null,premultiplyAlpha:null};this.renderer={gl:this.gl,premultipliedAlpha:n.premultipliedAlpha,state:o,nextRender:{execute:function(){}},setDepthTest:function(e){a.gl&&(e&&!o.depthTest?(o.depthTest=e,a.gl.enable(a.gl.DEPTH_TEST)):!e&&o.depthTest&&(o.depthTest=e,a.gl.disable(a.gl.DEPTH_TEST)))},setDepthFunc:function(){a.gl&&a.gl.depthFunc(a.gl.LEQUAL)},setBlending:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];a.gl&&(e&&!o.blending?(o.blending=e,a.gl.enable(a.gl.BLEND)):!e&&o.blending&&(o.blending=e,a.gl.disable(a.gl.BLEND)))},setBlendFunc:function(){a.gl&&(a.gl.enable(a.gl.BLEND),this.premultipliedAlpha?a.gl.blendFuncSeparate(a.gl.ONE,a.gl.ONE_MINUS_SRC_ALPHA,a.gl.ONE,a.gl.ONE_MINUS_SRC_ALPHA):a.gl.blendFuncSeparate(a.gl.SRC_ALPHA,a.gl.ONE_MINUS_SRC_ALPHA,a.gl.ONE,a.gl.ONE_MINUS_SRC_ALPHA))},setFaceCulling:function(e){if(a.gl&&o.cullFace!==e)if(o.cullFace=e,"none"===e)a.gl.disable(a.gl.CULL_FACE);else{var t="front"===e?a.gl.FRONT:a.gl.BACK;a.gl.enable(a.gl.CULL_FACE),a.gl.cullFace(t)}},useProgram:function(e){if(a.gl&&e){var t=void 0!==e.id?e.id:e,i=e.program||e;null!==o.currentProgramID&&o.currentProgramID===t||(a.gl.useProgram(i),o.currentProgramID=t)}},bindFrameBuffer:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(a.gl){e&&t&&!e._frameBuffer&&e._initRenderTarget();var i=e?void 0!==e.index?e.index:e._frameBuffer:null;i!==o.frameBufferID&&(a.gl.bindFramebuffer(a.gl.FRAMEBUFFER,e?e._frameBuffer:null),o.frameBufferID=i)}}},this.renderer.setBlendFunc(),this.renderer.setDepthFunc(),this.renderer.setDepthTest(!1),this._onContextLost=function(e){e.preventDefault(),a._contextLostCallbacks.forEach(function(t){return t(e)})},this._onContextRestored=function(){a._contextRestoredCallbacks.forEach(function(e){return e()})},this.canvas.addEventListener("webglcontextlost",this._onContextLost,!1),this.canvas.addEventListener("webglcontextrestored",this._onContextRestored,!1),this.resize()}return m(e,[{key:"_emitError",value:function(e){this._errorCallbacks.forEach(function(t){return t(e)})}},{key:"onError",value:function(e){return"function"==typeof e&&this._errorCallbacks.push(e),this}},{key:"onContextLost",value:function(e){return"function"==typeof e&&this._contextLostCallbacks.push(e),this}},{key:"onContextRestored",value:function(e){return"function"==typeof e&&this._contextRestoredCallbacks.push(e),this}},{key:"restoreContext",value:function(){return this}},{key:"createRenderTarget",value:function(){return new h(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}},{key:"requestRender",value:function(){var e=this;this.gl&&null===this._renderRequestID&&(this._renderRequestID=requestAnimationFrame(function(){e._renderRequestID=null,e.render()}))}},{key:"resize",value:function(){if(this.container){var e=Math.max(1,Math.round(this.container.clientWidth*this.pixelRatio*this.renderingScale)),t=Math.max(1,Math.round(this.container.clientHeight*this.pixelRatio*this.renderingScale));this.canvas.width=e,this.canvas.height=t,this.gl&&this.gl.viewport(0,0,e,t),this.renderTargets.slice().forEac
1h(function(e){e&&"function"==typeof e.resize&&e.resize()})}}},{key:"render",value:function(){if(this.gl){this.renderer.nextRender.execute();var e=this.gl;e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT);var t=o(this.planes).filter(function(e){return!1!==e.visible}).sort(function(e,t){return(e.renderOrder||0)-(t.renderOrder||0)}),i=t.filter(function(e){return"PingPongPlane"===e.type}),s=t.filter(function(e){return"PingPongPlane"!==e.type});e.disable(e.DEPTH_TEST),e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),i.forEach(function(e){!1!==e._canDraw&&e._render()}),s.forEach(function(e){!1!==e._canDraw&&e._render()})}}},{key:"dispose",value:function(){null!==this._renderRequestID&&(cancelAnimationFrame(this._renderRequestID),this._renderRequestID=null),this.planes.slice().forEach(function(e){return e.remove()}),this.renderTargets.slice().forEach(function(e){return e.remove()}),this.canvas&&(this.canvas.removeEventListener("webglcontextlost",this._onContextLost),this.canvas.removeEventListener("webglcontextrestored",this._onContextRestored)),this.planes=[],this.renderTargets=[]}}]),e}();function g(e,t,i){var s=e.createShader(t);if(e.shaderSource(s,i),e.compileShader(s),!e.getShaderParameter(s,e.COMPILE_STATUS)){var a=e.getShaderInfoLog(s)||"Unknown shader compile error";throw e.deleteShader(s),new Error(a)}return s}var v=function(){function e(t,i){var s=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f(this,e),this.type="Plane",this.curtains=t,this.gl=null==t?void 0:t.gl,this.htmlElement=i||(null==t?void 0:t.container)||null,this.userData={},this.visible=!0,this.renderOrder=0,this.target=null,this._canDraw=!0,this.textures=[],this.videos=[],this.uniforms=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return Object.keys(e).forEach(function(i){t[i]=c({},e[i])}),t}(a.uniforms),this._readyCallbacks=[],this._renderCallbacks=[],this._afterRenderCallbacks=[],this._uniformLocations=new Map,this._vertexShader=a.vertexShader||"\nattribute vec3 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nvarying vec2 vTextureCoord;
1\n\nvoid main() {\n    gl_Position = vec4(aVertexPosition, 1.0);\n    vTextureCoord = aTextureCoord;\n}\n",this._fragmentShader=a.fragmentShader||"\nprecision mediump float;\n\nuniform sampler2D uTexture;\nvarying vec2 vTextureCoord;\n\nvoid main() {\n    gl_FragColor = texture2D(uTexture, vTextureCoord);\n}\n",this._geometry=null,this._program=null,this._positionLocation=-1,this._uvLocation=-1,this._mvMatrixLocation=null,this._pMatrixLocation=null,this._init(a),null==t||t.planes.push(this),requestAnimationFrame(function(){s._readyCallbacks.forEach(function(e){return e(s)})})}return m(e,[{key:"_init",value:function(e){if(this.gl)try{this._program=function(e,t,i){var s=g(e,e.VERTEX_SHADER,t),a=g(e,e.FRAGMENT_SHADER,i),r=e.createProgram();if(e.attachShader(r,s),e.attachShader(r,a),e.linkProgram(r),e.deleteShader(s),e.deleteShader(a),!e.getProgramParameter(r,e.LINK_STATUS)){var n=e.getProgramInfoLog(r)||"Unknown program link error";throw e.deleteProgram(r),new Error(n)}return r}(this.gl,this._vertexShader,this._fragmentShader),this._positionLocation=this.gl.getAttribLocation(this._program,"aVertexPosition"),this._uvLocation=this.gl.getAttribLocation(this._program,"aTextureCoord"),this._geometry=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,s=Math.max(1,Math.floor(t)),a=Math.max(1,Math.floor(i)),r=(s+1)*(a+1),n=new Float32Array(3*r),o=new Float32Array(2*r),l=0,u=0,h=0;h<=a;h++)for(var c=h/a,d=1-2*c,f=0;f<=s;f++){var m=f/s,p=2*m-1;n[l++]=p,n[l++]=d,n[l++]=0,o[u++]=m,o[u++]=1-c}for(var g=s*a*6,v=r>65535,x=v?new Uint32Array(g):new Uint16Array(g),y=0,b=0;b<a;b++)for(var _=0;_<s;_++){var T=b*(s+1)+_,P=T+1,E=(b+1)*(s+1)+_,w=E+1;x[y++]=T,x[y++]=E,x[y++]=P,x[y++]=P,x[y++]=E,x[y++]=w}var M=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,M),e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW);var R=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,R),e.bufferData(e.ARRAY_BUFFER,o,e.STATIC_DRAW);var F=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,F),e.bufferData(e.ELEMENT_ARRAY_BUFFER,x,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),{positionBuffer:M,uvBuffer:R,indexBuffer:F,indexCount:g,indexType:v?e.UNSIGNED_INT:e.UNSIGNED_SHORT}}(this.gl,e.widthSegments,e.heightSegments),this._mvMatrixLocation=this.gl.getUniformLocation(this._program,"uMVMatrix"),this._pMatrixLocation=this.gl.getUniformLocation(this._program,"uPMatrix"),this._texMatrixLocation=this.gl.getUniformLocation(this._program,"uTextureMatrix")}catch(s){var t,i;null===(t=this.curtains)||void 0===t||null===(i=t._emitError)||void 0===i||i.call(t,s),this._canDraw=!1}}},{key:"_bindAttributes",value:function(){var e=this.gl,t=this._geometry;t&&(this._positionLocation>=0&&(e.bindBuffer(e.ARRAY_BUFFER,t.positionBuffer),e.enableVertexAttribArray(this._positionLocation),e.vertexAttribPointer(this._positionLocation,3,e.FLOAT,!1,0,0)),this._uvLocation>=0&&(e.bindBuffer(e.ARRAY_BUFFER,t.uvBuffer),e.enableVertexAttribArray(this._uvLocation),e.vertexAttribPointer(this._uvLocation,2,e.FLOAT,!1,0,0)),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer))}},{key:"_bindUniforms",value:function(){var e=this;if(this._program){var t=this.gl;t.useProgram(this._program),Object.keys(this.uniforms).forEach(function(i){var s=e.uniforms[i];if(s){var a=e._uniformLocations.get(i);void 0===a&&(a=t.getUniformLocation(e._program,s.name||i),e._uniformLocations.set(i,a)),function(e,t,i,s){if(null!=t&&null!=s){var a=s&&"object"===p(s)&&"x"in s&&"y"in s,r=a&&"z"in s;switch(i){case"1f":e.uniform1f(t,Number(s));break;case"2f":e.uniform2f(t,a?s.x:s[0],a?s.y:s[1]);break;case"3f":e.uniform3f(t,r?s.x:s[0],r?s.y:s[1],r?s.z:s[2]);break;case"4f":e.uniform4f(t,s[0],s[1],s[2],s[3]);break;case"1i":e.uniform1i(t,Number(s));break;case"2i":e.uniform2i(t,s[0],s[1]);break;case"3i":e.uniform3i(t,s[0],s[1],s[2]);break;case"4i":e.uniform4i(t,s[0],s[1],s[2],s[3]);break;case"1fv":e.uniform1fv(t,s);break;case"2fv":e.uniform2fv(t,s);break;case"3fv":e.uniform3fv(t,s);break;case"4fv":e.uniform4fv(t,s);break;case"mat3":e.uniformMatrix3fv(t,!1,s);break;case"mat4":e.uniformMatrix4fv(t,!1,s);break;default:r?e.uniform3f(t,s.x,s.y,s.z):a?e.uniform2f(t,s.x,s.y):Array.isArray(s)||ArrayBuffer.isView(s)?16===s.length?e.uniformMatrix4fv(t,!1,s):9===s.length?e.uniformMatrix3fv(t,!1,s):4===s.length?e.uniform4fv(t,s):3===s.length?e.uniform3fv(t,s):2===s.length?e.uniform2fv(t,s):1===s.length&&e.uniform1f(t,s[0]):e.uniform1f(t,Number(s))}}}(t,a,s.type,s.value)}})}}},{key:"_bindTextures",value:function(){var e,t=this.gl,i=0,s=function(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=l(e))||t){i&&(e=i);var s=0,a=function(){};return{s:a,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:a}}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 r,n=!0,o=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return n=e.done,e},e:function(e){o=!0,r=e},f:function(){try{n||null==i.return||i.return()}finally{if(o)throw r}}}}(this.textures);try{for(s.s();!(e=s.n()).done;){var a,r=e.value;if(null!=r&&null!==(a=r._sampler)&&void 0!==a&&a.texture){r.shouldUpdate&&r.update(
1);var n=t.getUniformLocation(this._program,r._samplerName);null!=n&&(t.activeTexture(t.TEXTURE0+i),t.bindTexture(t.TEXTURE_2D,r._sampler.texture),t.uniform1i(n,i),i++)}}}catch(o){s.e(o)}finally{s.f()}}},{key:"_prepareRenderTarget",value:function(e){var t,i;if(!e||!this.gl)return this.curtains.renderer.bindFrameBuffer(null),void this.gl.viewport(0,0,this.curtains.canvas.width,this.curtains.canvas.height);this.curtains.renderer.bindFrameBuffer(e,!0);var s=(null===(t=e._size)||void 0===t?void 0:t.width)||this.curtains.canvas.width,a=(null===(i=e._size)||void 0===i?void 0:i.height)||this.curtains.canvas.height;this.gl.viewport(0,0,s,a),!1!==e._clear&&(this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT|(e._depth?this.gl.DEPTH_BUFFER_BIT:0)))}},{key:"_render",value:function(){var e=this;this.gl&&this._program&&this._geometry&&(this._renderCallbacks.forEach(function(t){return t(e)}),this._prepareRenderTarget(this.target),this.gl.useProgram(this._program),this._mvMatrixLocation&&this.gl.uniformMatrix4fv(this._mvMatrixLocation,!1,s),this._pMatrixLocation&&this.gl.uniformMatrix4fv(this._pMatrixLocation,!1,s),this._texMatrixLocation&&this.gl.uniformMatrix4fv(this._texMatrixLocation,!1,s),this._bindAttributes(),this._bindUniforms(),this._bindTextures(),this.gl.drawElements(this.gl.TRIANGLES,this._geometry.indexCount,this._geometry.indexType,0),this.curtains.renderer.bindFrameBuffer(null),this.gl.viewport(0,0,this.curtains.canvas.width,this.curtains.canvas.height),this._afterRenderCallbacks.forEach(function(t){return t(e)}))}},{key:"onReady",value:function(e){return"function"==typeof e&&this._readyCallbacks.push(e),this}},{key:"onRender",value:function(e){return"function"==typeof e&&this._renderCallbacks.push(e),this}},{key:"onAfterRender",value:function(e){return"function"==typeof e&&this._afterRenderCallbacks.push(e),this}},{key:"setRenderOrder",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.renderOrder=e,this}},{key:"setRenderTarget",value:function(e){var t;return this.target=e,e&&null!==(t=this.curtains)&&void 0!==t&&t.renderTargets&&!this.curtains.renderTargets.includes(e)&&this.curtains.renderTargets.push(e),this}},{key:"createTexture",value:function(){var e,t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=i.sampler||"uTexture",a=this.textures.find(function(e){return e._samplerName===s});if(a&&i.fromTexture)return a.copy(i.fromTexture),a;var r=new u(this.curtains,{sampler:s,premultipliedAlpha:null===(e=null!==(t=i.premultipliedAlpha)&&void 0!==t?t:i.premultiplyAlpha)||void 0===e||e,fromTexture:i.fromTexture});if(a){var n=this.textures.indexOf(a);return this.textures[n]=r,r}return this.textures.push(r),r}},{key:"addTexture",value:function(e){if(!e)return null;var t=e._samplerName||"uTexture",i=this.textures.findIndex(function(e){return e._samplerName===t});return i>=0?this.textures[i]=e:this.textures.push(e),e}},{key:"loadCanvas",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;try{var a,r,n=new u(this.curtains,{sampler:t.sampler||"uTexture",source:e,premultipliedAlpha:null===(a=null!==(r=t.premultipliedAlpha)&&void 0!==r?r:t.premultiplyAlpha)||void 0===a||a});return n.shouldUpdate=!0,this.addTexture(n),"function"==typeof i&&i(n),n}catch(o){return"function"==typeof s&&s(o),null}}},{key:"loadVideo",value:function(e){var t,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;e instanceof HTMLVideoElement?t=e:((t=document.createElement("video")).crossOrigin="anonymous",t.preload="auto",t.muted=!0,t.setAttribute("playsinline",""),t.src=e);var n=function(){try{var e,n,o=new u(i.curtains,{sampler:s.sampler||"uVideoTexture",source:t,premultipliedAlpha:null===(e=null!==(n=s.premultipliedAlpha)&&void 0!==n?n:s.premultiplyAlpha)||void 0===e||e});o.shouldUpdate=!0,i.addTexture(o),i.videos.push(t),"function"==typeof a&&a(o)}catch(l){"function"==typeof r&&r(l)}};return t.readyState>=2?n():(t.addEventListener("loadeddata",n,{once:!0}),t.addEventListener("error",function(e){"function"==typeof r&&r(e)},{once:!0}),e instanceof HTMLVideoElement||t.load()),t}},{key:"remove",value:function(){var e,t=this;
1this.gl&&(this.textures.forEach(function(e){return e.remove()}),this._geometry&&(this.gl.deleteBuffer(this._geometry.positionBuffer),this.gl.deleteBuffer(this._geometry.uvBuffer),this.gl.deleteBuffer(this._geometry.indexBuffer)),this._program&&this.gl.deleteProgram(this._program),null!==(e=this.curtains)&&void 0!==e&&e.planes&&(this.curtains.planes=this.curtains.planes.filter(function(e){return e!==t})))}}]),e}(),x=function(){function e(t){f(this,e),this.curtains=t,this.cache=new Map}return m(e,[{key:"loadImage",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0;if(!e)return"function"==typeof a&&a(new Error("Missing image src")),null;var r=this.cache.get(e),n=function(e){var a,r,n=new u(t.curtains,{sampler:i.sampler||"uTexture",source:e,premultipliedAlpha:null===(a=null!==(r=i.premultipliedAlpha)&&void 0!==r?r:i.premultiplyAlpha)||void 0===a||a});"function"==typeof s&&s(n)};if(null!=r&&r.loaded&&r.image)return n(r.image),r.image;var o=(null==r?void 0:r.image)||new Image;o.crossOrigin="anonymous";var l=r||{image:o,loaded:!1};this.cache.set(e,l);var h=function(){l.loaded=!0,n(o)};return o.complete&&o.naturalWidth>0?(h(),o):(o.addEventListener("load",h,{once:!0}),o.addEventListener("error",function(e){"function"==typeof a&&a(e)},{once:!0}),o.src||(o.src=e),o)}},{key:"loadCanvas",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;try{var a,r,n=new u(this.curtains,{sampler:t.sampler||"uTexture",source:e,premultipliedAlpha:null===(a=null!==(r=t.premultipliedAlpha)&&void 0!==r?r:t.premultiplyAlpha)||void 0===a||a});return n.shouldUpdate=!0,"function"==typeof i&&i(n),n}catch(o){return"function"==typeof s&&s(o),null}}}]),e}(),y=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;f(this,e),this.type="Vec2",this._x=Number.isFinite(t)?t:0,this._y=Number.isFinite(i)?i:0}return m(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=Number.isFinite(e)?e:this._x}},{key:"y",get:function(){return this._y},set:function(e){this._y=Number.isFinite(e)?e:this._y}},{key:"equals",value:function(e){return!!e&&this._x===e.x&&this._y===e.y}}]),e}(),b=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;f(this,e),this.type="Vec3",this._x=Number.isFinite(t)?t:0,this._y=Number.isFinite(i)?i:0,this._z=Number.isFinite(s)?s:0}return m(e,[{key:"x",get:function(){return this._x},set:function(e){this._x=Number.isFinite(e)?e:this._x}},{key:"y",get:function(){return this._y},set:function(e){this._y=Number.isFinite(e)?e:this._y}},{key:"z",get:function(){return this._z},set:function(e){this._z=Number.isFinite(e)?e:this._z}}]),e}(),_=function(e){!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}}),t&&a(e,t)}(s,e);var t=r(s);function s(e,i){var a,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};f(this,s),(a=t.call(this,e,i,r)).type="PingPongPlane";var n=Object.assign({},r.texturesOptions,{sampler:r.sampler||"uPingPongTexture"});return void 0===n.premultiplyAlpha&&void 0===n.premultipliedAlpha&&(n.premultiplyAlpha=!0),a._targets=[new h(e,{clear:!1,maxWidth:e.canvas.width,maxHeight:e.canvas.height,texturesOptions:n}),new h(e,{clear:!1,maxWidth:e.canvas.width,maxHeight:e.canvas.height,texturesOptions:n})],a._readIndex=0,a._sampler=r.sampler||"uPingPongTexture",a.createTexture({sampler:a._sampler,fromTexture:a._targets[a._readIndex].getTexture()}),a.setRenderTarget(a._targets[a._readIndex]),a}return m(s,[{key:"getTexture",value:function(){return this.textures.find(function(e){return e._samplerName===this._sampler},this)||this._targets[this._readIndex].getTexture()}},{key:"_render",value:function(){var e=0===this._readIndex?1:0;this.setRenderTarget(this._targets[e]),i(n(s.prototype),"_render",this).call(this),this._readIndex=e;var t=this._targets[this._readIndex].getTexture(),a=this.textures.find(function(e){return e._samplerName===this._sampler},this);a&&t&&a.copy(t)}}
1,{key:"remove",value:function(){this._targets.forEach(function(e){return e.remove()}),i(n(s.prototype),"remove",this).call(this)}}]),s}(v);e.Curtains=d,e.PingPongPlane=_,e.Plane=v,e.RenderTarget=h,e.TextureLoader=x,e.Vec2=y,e.Vec3=b,Object.defineProperty(e,"__esModule",{value:!0})},"object"===p(t)?v(t):v((g="undefined"!=typeof globalThis?globalThis:g||self).window=g.window||{})}(0,a.exports);var r=a.exports;let n,o,l,u,h=!1,c=window.innerHeight||document.documentElement.clientHeight,d=window.innerWidth||document.documentElement.clientWidth,f=window.scrollY||window.pageYOffset,m=0,p=0,g=0,v=0,x=null;const y=.001,b=["relative","fixed","auto"];let _="2.1.3";function T(e){return window.atob(e)}function P(){return"id-"+Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}function E(e){const t={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>1-(1-e)*(1-e),easeInOutQuad:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2,easeInCubic:e=>e*e*e,easeOutCubic:e=>1-Math.pow(1-e,3),easeInOutCubic:e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,easeInQuart:e=>e**4,easeOutQuart:e=>1-Math.pow(1-e,4),easeInOutQuart:e=>e<.5?8*e**4:1-Math.pow(-2*e+2,4)/2,easeInQuint:e=>e**5,easeOutQuint:e=>1-Math.pow(1-e,5),easeInOutQuint:e=>e<.5?16*e**5:1-Math.pow(-2*e+2,5)/2,easeOutElastic:e=>{const t=2*Math.PI/3;return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin((10*e-.75)*t)+1},easeInElastic:e=>{const t=2*Math.PI/3;return 0===e?0:1===e?1:-Math.pow(2,10*e-10)*Math.sin((10*e-10.75)*t)},easeInOutElastic:e=>{const t=2*Math.PI/4.5;return 0===e?0:1===e?1:e<.5?-Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*t)/2:Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*t)/2+1},easeOutSpringSoft:e=>0===e||1===e?e:1-Math.exp(-5*e)*Math.cos(3*e*Math.PI),easeOutSpring:e=>0===e||1===e?e:1-Math.exp(-6*e)*Math.cos(4.5*e*Math.PI),easeInSpring:e=>{if(0===e||1===e)return e;const t=1-e;return Math.exp(-6*t)*Math.cos(4.5*t*Math.PI)},easeInOutSpring:e=>{if(0===e||1===e)return e;if(e<.5){const t=1-2*e;return Math.exp(-6*t)*Math.cos(4.5*t*Math.PI)/2}const t=2*e-1;return 1-Math.exp(-6*t)*Math.cos(4.5*t*Math.PI)/2},easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInCirc:e=>1-Math.sqrt(1-e**2),easeOutCirc:e=>Math.sqrt(1-Math.pow(e-1,2)),easeInOutCirc:e=>e<.5?(1-Math.sqrt(1-(2*e)**2))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2,easeInExpo:e=>0===e?0:Math.pow(2,10*e-10),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2,easeInBack:e=>{const t=1.70158;return(t+1)*e*e*e-t*e*e},easeOutBack:e=>{const t=1.70158;return 1+(t+1)*Math.pow(e-1,3)+t*Math.pow(e-1,2)},easeInOutBack:e=>{const t=2.5949095;return e<.5?Math.pow(2*e,2)*(7.189819*e-t)/2:(Math.pow(2*e-2,2)*((t+1)*(2*e-2)+t)+2)/2}};if("string"==typeof e&&(e.includes("=>")||e.includes("function")));else if(t[e])return t[e];return t.easeInOutQuad}function w(e){return e&&"string"==typeof e&&(e=JSON.parse(e)),Object.values(e)}function M(e,t,i){for(let s=0;s<i;s++)e=(e+t)/2;return+((e+t)/2).toFixed(4)}function R(e,t,i,s,a){return{value:e+(i=(i+(t-e)*(.05+.35*(1-Math.max(0,Math.min(1,s??0)))))*(.5+.32*a)),velocity:i}}void 0!==document.hidden?(n="hidden",o="visibilitychange"):void 0!==document.msHidden?(n="msHidden",o="msvisibilitychange"):void 0!==document.webkitHidden&&(n="webkitHidden",o="webkitvisibilitychange");let F=null;function I(){return null===F&&(F=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)),F}function S(e,t){return e.getAttribute(t)}function k(e){var t,i,s;if(void 0!==e.local.isDynamicCache)return e.local.isDynamicCache;if(e.isFlattened){const a=e.states&&[...e.states.appear,...e.states.scroll,...e.states.hover,...e.states.mousemove].length>0,r=Array.isArray(null==(t=e.data)?void 0:t.timeUniforms)&&e.data.timeUniforms.some(e=>!1!==(null==e?void 0:e.animating)&&Math.abs(Number((null==e?void 0:e.speed)??0))>1e-5),n=!!(null==(i=e.data)?void 0:i.hasMouseTracking),o=!!(null==(s=e.data)?void 0:s.hasVideoSublayers),l=Array.isArray(e.sublayers)&&e.sublayers.some(e=>!!e&&("video"===e.type||("effect"===e.layerType||"model"===e.layerType)&&!!e.animating)),u=a||r||n||o||l;return e.local.isDynamicCache=u,u}const a=["trackMouse","axisTilt","trackMouseMove","rotationTracking","lightTracking"].some(t=>e.hasOwnProperty(t)&&0!==e[t]),r=e.states&&[...e.states.appear,...e.states.scroll,...e.states.hover,...e.states.mousemove].length>0,n=("effect"===e.layerType||e.isModel)&&(e.animating||e.usesPingPong),o="video"===e.type,l=a||r||n||o;return e.local.isDynamicCache=l,l}function A(e,t){if(e.noTextAsHtml)return;if(!t)return;let i="fixed"===e.widthMode?e.width:e.width*t.offsetWidth,s=e.he
1ight,a="fixed"===e.fontSizeMode?e.fontSize:e.fontSize*t.offsetWidth,r="fixed"===e.fontSizeMode?e.lineHeight:e.lineHeight*a,n="fixed"===e.fontSizeMode?e.letterSpacing:e.letterSpacing*a,o="fixed"===e.topMode?e.top:e.top*t.offsetHeight,l="fixed"===e.leftMode?e.left:e.left*t.offsetWidth,u=j(e.anchorPoint);l-=u.x*i,o-=u.y*s,o+=t.offsetTop,l+=t.offsetLeft;const h=document.querySelector(`[data-us-text="${e.local.id}"]`),c=h||document.createElement("div");c.setAttribute("data-us-text",e.local.id),c.style.cssText=`width:${i}px;top:${o}px;left:${l}px;font-size:${a}px;line-height:${r}px;letter-spacing:${n}px;font-family:${e.fontFamily};font-weight:${e.fontWeight};text-align:${e.textAlign};position:absolute;word-break:break-word;transform:rotateZ(${Math.round(360*e.rotation)}deg);color:transparent;z-index:2;`,c.innerText=e.textContent,h||t.appendChild(c)}function D(){ue.filter(e=>!document.body.contains(e.element)).forEach(e=>{e.curtain&&e.curtain.dispose();const t=ue.indexOf(e);-1!==t&&ue.splice(t,1)})}function C(){cancelAnimationFrame(l);let e=ue.filter(e=>!e.destroyed&&e.getDynamicLayers().length>0);const t=i=>{let s=!1;e.forEach(e=>{e.destroyed||(e.isInView&&e.initialized?(e.rendering=!0,i-(e.lastTime||0)>=e.frameDuration&&!e.paused&&(e.renderFrame(),e.lastTime=i),s=!0):e.rendering=!1)}),(!g||i-g>64)&&(f=window.scrollY||window.pageYOffset,p=f-m,m=f,g=i,(p>1e3||p<0&&!m&&!f)&&ie()),s?(!function(){var e,t,i,s;let a=performance.now();const r=I();for(let n=0;n<ue.length;n++){const o=ue[n];if(o.isInView&&ne(o))if(r&&(null==(t=null==(e=o.interactivity)?void 0:e.mouse)?void 0:t.disableMobile)||(null==(s=null==(i=o.interactivity)?void 0:i.mouse)?void 0:s.disabled));else{o.mouse.pos.y=o.mouse.movePos.y,o.mouse.pos.x=o.mouse.movePos.x,o.mouse.lastPos.x=o.mouse.pos.x,o.mouse.lastPos.y=o.mouse.pos.y;let e=o.isFixed?o.bbox.top:o.bbox.top+o.scrollY,t=o.bbox.left;o.mouse.page.x>t&&o.mouse.page.y>e&&o.mouse.page.x<o.lastBbox.width+t&&o.mouse.page.y<o.lastBbox.height+e?o.mouse.enterTime||(o.mouse.enterTime=a):o.mouse.enterTime=null}}}(),l=requestAnimationFrame(t)):cancelAnimationFrame(l)};e.length?l=requestAnimationFrame(t):cancelAnimationFrame(l)}function B(e,t,i){return"Vec3"===(null==e?void 0:e.type)&&"Vec3"===(null==t?void 0:t.type)?{type:"Vec3",x:e._x+(t._x-e._x)*i,y:e._y+(t._y-e._y)*i,z:e._z+(t._z-e._z)*i}:"Vec2"===(null==e?void 0:e.type)&&"Vec2"===(null==t?void 0:t.type)?{type:"Vec2",x:e._x+(t._x-e._x)*i,y:e._y+(t._y-e._y)*i}:e+(t-e)*i}function L(e,t){return"Vec2"===e.type?e=new r.Vec2(e._x,e._y):"Vec3"===e.type&&(e=new r.Vec3(e._x,e._y,e._z)),e}function U(e,t,i){(null==e?void 0:e.type)&&("Vec2"===(null==e?void 0:e.type)||"Vec3"===(null==e?void 0:e.type))?(t.value.x=e.x,"pos"===i||i.endsWith("_pos")?t.value.y=1-e.y:t.value.y=e.y,"Vec3"===e.type&&(t.value.z=e.z)):t.value=e}function O(e,t,i){e.createTexture({sampler:t,premultiplyAlpha:!0,fromTexture:i})}class V{constructor({prop:e,value:t,endValue:s,transition:a,breakpoints:r,uniformData:n,loop:o="none",loopDelay:l=0}){i(this,"id",P()),this.prop=e,this.transition=a,this.complete=!1,this.progress=0,this.uniformData=n,this.value=L(t),this.endValue=void 0!==s?L(s||0):null,this.lastTick=void 0,this.initialized=!1,this.startTime=null,this.breakpoints=r||[],this.loop=o,this.loopDelay=l,this.easeFunction=E(this.transition.ease)}updateEffect(e,t){if(void 0===(e=this.endValue??e))return!1;const i=performance.now(),s=i-((this.startTime||t)+this.transition.delay);if(s<0)return!1;if("none"!==this.loop){const t=this.transition.duration+this.loopDelay,a=s%t;if(a>this.transition.duration)return!1;const r=a/this.transition.duration,n=Math.floor(s/t);let o=r;return"reverse"===this.loop&&n%2==1&&(o=1-r),this.progress=this.easeFunction(o),this.lastTick=i,B(this.value,e,this.progress)}const a=Math.max(0,Math.min(1,s/this.transition.duration));return this.progress=this.easeFunction(a),0!==this.progress&&(a>=1?(this.complete=!0,this.progress=0,e):(this.lastTick=i,!this.complete&&B(this.value,e,this.progress)))}resetState(){this.progress=0,this.complete=!1,this.lastTick=void 0,this.initialized=!1}}class z{constructor({prop:e,value:t,range:s,offset:a,momentum:r,spring:n,uniformData:o,mode:l="scrollIntoView",delta:u=.01,absScrollValue:h=!0,breakpoints:c=[]}){i(this,"id",P()),this.prop=e,this.progress=0,this.momentum=r,this.spring=n??0,this._velocity=0,this.range=s,this.offset=a,this.mode=l,this.delta=u,this.absScrollValue=h,this.uniformData=o,this.value=L(t),this.lastTick=void 0,this.breakpoints=c||[]}updateEffect(e,{top:t,height:i,isFixed:s}){if(void 0===e)return!1;if(s&&(t-=f),"scrollIntoView"===this.mode){const s=t+f-c*this.offset,a=s+(c+i)*this.range;let r=(f-s)/(a-s),n=Math.max(0,Math.min(1,r));if(void 0!==this.lastTick){if(this.spring>0){const e=R(this.lastTick,n,this._velocity,this.momentum,this.spring);n=e.value,this._velocity=e.velocity}else n=M(n,this.lastTick,2*this.momentum);if(Math.abs(this.lastTick-n)<y&&Math.abs(this._velocity)<y)return!1}
1return this.lastTick=n,B(e,this.value,n)}if("whileScrolling"===this.mode){let t=p*this.delta;if(this.absScrollValue&&(t=Math.abs(t)),void 0!==this.lastTick){if(this.spring>0){const e=R(this.lastTick,t,this._velocity,this.momentum,this.spring);t=e.value,this._velocity=e.velocity}else t=M(t,this.lastTick,2*this.momentum);if(Math.abs(t)<y&&Math.abs(this._velocity)<y)return!1}return this.lastScrollPos=f,this.lastTick=t,B(e,this.value,t)}return!1}resetState(){this.lastTick=void 0}}class N{constructor({prop:e,value:t,transition:s,breakpoints:a,uniformData:r,triggerOnElement:n}){i(this,"id",P()),this.prop=e,this.transition=s,this.progress=0,this.rawProgress=0,this.lastProgress=null,this.value=L(t),this.uniformData=r,this.triggerOnElement=void 0!==n?n:1,this.breakpoints=a||[],this.easeFunction=E(this.transition.ease)}updateEffect(e,t,i){var s;if(void 0===e)return!1;const a=null==(s=null==i?void 0:i.getParent)?void 0:s.call(i),r=performance.now();if(this.triggerOnElement&&((null==i?void 0:i.isElement)||(null==i?void 0:i.isModel)||(null==i?void 0:i.isFlattened)||a)){let e=(a||i).isHovered(this.prop);t=e&&!this.lastEnterTime?r:e?this.lastEnterTime:null}const n=null===t,o=(r-(n?this.lastTick||r:t+this.transition.delay))/this.transition.duration,l=Math.max(0,Math.min(1,o));n?this.rawProgress=Math.max(0,this.rawProgress-l):(this.lastEnterTime!==t&&(this.lastProgress=this.rawProgress||0),this.rawProgress=Math.min(1,this.lastProgress+l));const u=this.easeFunction(this.rawProgress),h=Math.abs(this.progress-u)>y;return this.progress=u,!(!t&&!h)&&(!t&&this.transition.forwardsOnly&&(this.progress=0,this.rawProgress=0),this.lastTick=r,this.lastEnterTime=t,!!h&&B(e,this.value,this.progress))}resetState(){this.progress=0}}class H{constructor({prop:e,value:t,sensitivity:s,momentum:a,spring:r,delay:n,mode:o,axisMode:l,point:u,breakpoints:h,uniformData:c}){i(this,"id",P()),this.prop=e,this.progress=0,this.sensitivity=s??.5,this.momentum=a??.25,this.spring=r??0,this._velocity=0,this.delay=n??0,this.mode=o??"velocity",this.axisMode=l??"both",this.point=u??{x:.5,y:.5},this.value=L(t),this.uniformData=c,this.lastMousePos=null,this.lastMoveTime=null,this.breakpoints=h||[]}updateEffect(e,t,i){if(void 0===e)return!1;const s=performance.now();let a=0;if(null!==this.lastMousePos&&t){const e=t.x-this.lastMousePos.x,i=t.y-this.lastMousePos.y;a="x"===this.axisMode?Math.abs(e):"y"===this.axisMode?Math.abs(i):Math.sqrt(e*e+i*i),a>1e-4&&(this.lastMoveTime=s)}t&&(this.lastMousePos={x:t.x,y:t.y});let r,n=this.progress;if("proximity"===this.mode){if(!t)return!1;const e=.5*((null==i?void 0:i.canvasWidth)||0),s=.5*((null==i?void 0:i.canvasHeight)||0);if(!e||!s)return!1;const a=this.point.x*e,r=this.point.y*s;let o=t.x-a,l=t.y-r,u=Math.sqrt(e*e+s*s);"x"===this.axisMode?(l=0,u=e):"y"===this.axisMode&&(o=0,u=s);const h=Math.sqrt(o*o+l*l),c=1-Math.min(1,h/u),d=1+4*this.sensitivity;n=Math.pow(c,d)}else{(this.lastMoveTime?s-this.lastMoveTime:1/0)>this.delay?n=0:a>0&&(n=Math.min(1,this.progress+a*(this.sensitivity/500)))}if(this.spring>0){const e=R(this.progress,n,this._velocity,this.momentum,this.spring);r=e.value,this._velocity=e.velocity}else r=M(n,this.progress,this.momentum);return Math.abs(r-this.progress)<y&&Math.abs(this._velocity)<y&&Math.abs(r)<y?(0!==this.progress&&(this.progress=0,this._velocity=0),B(e,this.value,0)):(this.progress=r,B(e,this.value,r))}resetState(){this.progress=0,this._velocity=0,this.lastMousePos=null,this.lastMoveTime=null}}class W{constructor(e,t,s){var a;i(this,"local",{id:"",projectId:"",lastMousePos:{x:.5,y:.5},createdAt:null}),this.initOptions=s,this.aspectRatio=e.aspectRatio||1,this.layerName=e.layerName||e.id,this.data=e.data||{},this.userDownsample=e.userDownsample||1,this.breakpoints=((a=e.breakpoints||[]).forEach(e=>{var t,i;for(let s in e.props)"Vec2"===(null==(t=e.props[s])?void 0:t.type)?e.props[s]=new r.Vec2(e.props[s]._x,e.props[s]._y):"Vec3"===(null==(i=e.props[s])?void 0:i.type)?e.props[s]=new r.Vec3(e.props[s]._x,e.props[s]._y,e.props[s]._z):"object"==typeof e.props[s]&&(e.props[s]=w(e.props[s]))}),a),this.local.sceneId=t,this.local.id=P(),this.id=e.id,this.compiledFragmentShaders=e.compiledFragmentShaders||[],this.compiledVertexShaders=e.compiledVertexShaders||[],this.states={appear:e.states&&e.states.appear?e.states.appear.map(e=>new V(e)):[],scroll:e.states&&e.states.scroll?e.states.scroll.map(e=>new z(e)):[],hover:e.states&&e.states.hover?e.states.hover.map(e=>new N(e)):[],mousemove:e.states&&e.states.mousemove?e.states.mousemove.map(e=>new H(e)):[]}}state(){return ue.find(e=>e.id===this.local.sceneId)||this.initOptions}getIndex(){return this.state().layers.map(e=>e.local.id).indexOf(this.local.id)}getPixelRatio(){const e=this.state();return e.dpi*e.scale*this.userDownsample}getPlane(){var e,t,i;return null==(i=null==(t=null==(e=this.state())?void 0:e.curtain)?void 0:t.planes)?void 0:i.find(e=>"PingPongPlane"!==e.type&&e.userData.id===this.local.id)}getPlanes(){var e,t,i;return(null==(i=null==(t=null==(e=this.state())?void 0:e.curtain)?void 0:t.planes)?void 0:i.filter(e=>"PingPongPlane"!==e.type&&e.userData.id===this.local.id))||[]}getMaskedItem(){return!!this.mask&&this.state().layers.filter(e=>!e.parentLayer)[this.getIndex()-1]}getChildEffectItems(){if(this.effects&&this.effects.length){const e=this.state();
1if(!e||!e.layers)return[];const t=e.layers.filter(e=>this.effects.includes(e.parentLayer));return this.effects.map(e=>t.find(t=>t.parentLayer===e)).filter(e=>void 0!==e)}return[]}setBreakpointValues(){const e=d,t=this.breakpoints.sort((e,t)=>t.min-e.min),i={};if(1===t.length&&"Desktop"===t[0].name)return;if(t.length>=1&&!t.find(e=>"Desktop"===e.name))throw new Error("Malfored breakpoint data, missing Desktop");for(let a=t.length-1;a>=0;a--){const s=t[a];if(null===s.max||e<=s.max)for(let e in s.props)i.hasOwnProperty(e)||(i[e]=s.props[e])}const s=this.breakpoints.find(e=>"Desktop"===e.name);if(s)for(let a in s.props)i.hasOwnProperty(a)||(i[a]=s.props[a]);for(let a in i)if(this.hasOwnProperty(a)){let e=i[a];(null==e?void 0:e.type)?(this[a].x=e._x,this[a].y=e._y,void 0!==e._z&&(this[a].z=e._z)):this[a]=e}this.local.bpProps=i}updateStateEffects(){var e,t,i,s,a;if(!this.states.appear.some(e=>!e.complete)&&!(null==(e=this.states)?void 0:e.scroll.length)&&!(null==(t=this.states)?void 0:t.hover.length)&&!(null==(i=this.states)?void 0:i.mousemove.length)||this.isModel&&!this.local.modelLoaded)return;this.local.uniformUpdatesPool||(this.local.uniformUpdatesPool={}),this.local.updatedProps?this.local.updatedProps.clear():this.local.updatedProps=new Set,this.local.hasUpdates=!1;const r=this.state();let n=performance.now();this.local.cachedBreakpoint&&this.local.cachedBreakpoint===(null==(s=r.currentBreakpoint)?void 0:s.name)||(this.local.cachedBreakpoint=null==(a=r.currentBreakpoint)?void 0:a.name);const o=e=>!e.breakpoints||0===e.breakpoints.length||e.breakpoints.find(e=>e===this.local.cachedBreakpoint);r.isInView&&(null===this.local.createdAt&&(this.local.createdAt=n),this.states.appear.filter(e=>!e.complete).forEach(e=>{if(!o(e))return void(this.local.stateEffectProps&&this.local.stateEffectProps[e.prop]&&delete this.local.stateEffectProps[e.prop]);let t=e.startTime||this.local.createdAt;if(!e.initialized){const i=[...this.states.appear.filter(t=>t.prop===e.prop)].sort((e,t)=>
1(e.transition.delay||0)-(t.transition.delay||0))[0];(null==i?void 0:i.id)===e.id&&(this.local.uniformUpdatesPool[e.prop]=e.value,this.local.hasUpdates=!0,this.local.updatedProps.add(e.prop)),e.initialized=!0,t||(e.startTime=n)}(null==r?void 0:r.pauseTime)&&(t+=Math.abs(null==r?void 0:r.pauseTime));const i=e.updateEffect(this[e.prop],t);!1!==i&&(this.local.uniformUpdatesPool[e.prop]=i,this.local.hasUpdates=!0,this.local.updatedProps.add(e.prop)),this.isText&&e.complete&&this.local.stateEffectProps&&this.local.stateEffectProps[e.prop]&&delete this.local.stateEffectProps[e.prop]})),this.states.hover.forEach(e=>{if(!o(e))return void(this.local.stateEffectProps&&this.local.stateEffectProps[e.prop]&&delete this.local.stateEffectProps[e.prop]);const t=e.updateEffect(this[e.prop],r.mouse.enterTime,this);!1!==t&&(this.local.uniformUpdatesPool[e.prop]=t,this.local.hasUpdates=!0,this.local.updatedProps.add(e.prop))}),this.states.scroll.forEach(e=>{var t;if(!o(e))return void(this.local.stateEffectProps&&this.local.stateEffectProps[e.prop]&&delete this.local.stateEffectProps[e.prop]);const i=r.bbox;if(!i)return;const s=e.updateEffect(this[e.prop],{top:r.isFixed?0:null==(t=r.bbox)?void 0:t.top,height:i.height/2,isFixed:r.isFixed});!1!==s&&(this.local.uniformUpdatesPool[e.prop]=s,this.local.hasUpdates=!0,this.local.updatedProps.add(e.prop))}),this.states.mousemove.forEach(e=>{if(!o(e))return void(this.local.stateEffectProps&&this.local.stateEffectProps[e.prop]&&delete this.local.stateEffectProps[e.prop]);const t=e.updateEffect(this[e.prop],r.mouse.movePos,r);!1!==t&&(this.local.uniformUpdatesPool[e.prop]=t,this.local.hasUpdates=!0,this.local.updatedProps.add(e.prop))}),this.local.hasUpdates&&(this.getPlanes().forEach(e=>{var t;for(let i of this.local.updatedProps){const s=this.local.uniformUpdatesPool[i];void 0!==s&&((null==(t=e.uniforms[i])?void 0:t.lastValue)!==s&&(e.uniforms[i]&&U(s,e.uniforms[i],i),this.updateStateEffectProperty(i,s)))}}),this.isText&&this.local.stateEffectProps&&Object.keys(this.local.stateEffectProps).length&&this.render())}updateStateEffectProperty(e,t){this.local.stateEffectProps||(this.local.stateEffectProps={}),this.local.stateEffectProps[e]=t}invalidatePerformanceCaches(){this.local.isDynamicCache=void 0,this.local.cachedBreakpoint=void 0,this.local.lastCalculatedMousePos=void 0,this.local.lastCalculatedMouseValues=void 0}dispose(){this.invalidatePerformanceCaches()}}function j(e){const t={topLeft:{x:0,y:0},topCenter:{x:.5,y:0},topRight:{x:1,y:0},rightCenter:{x:1,y:.5},bottomRight:{x:1,y:1},bottomCenter:{x:.5,y:1},bottomLeft:{x:0,y:1},leftCenter:{x:0,y:.5},center:{x:.5,y:.5}};return t[e]?t[e]:Object.values(t)[e]}function q(e,t,i,s){const a=e.left??.5,r=e.top??.5,n="fixed"===e.leftMode?a:a*t,o="fixed"===e.topMode?r:r*i,l=b.includes(e.widthMode)?e.widthMode:b[e.widthMode??1],u=b.includes(e.heightMode)?e.heightMode:b[e.heightMode??1],h=e.aspectRatio||(e.imageNaturalSize?e.imageNaturalSize._x/e.imageNaturalSize._y:1);let c,d;return"auto"===l&&"auto"===u?(c=e.width??0,d=e.height??0):("auto"!==l&&(c="fixed"===l?e.width??0:(e.width??0)*t),d="auto"===u?c/(h||1):"fixed"===u?e.height??0:(e.height??0)*i,"auto"===l&&(c=d*(h||1))),function(e,t,i,s,a,r){const n=j(a??"center");i<0&&(i=Math.abs(i)),s<0&&(t+=s,s=Math.abs(s));const o=e-n.x*i,l=t-n.y*s;return 2*r.x>=o&&2*r.x<=o+i&&2*r.y>=l&&2*r.y<=l+s}(n,o,c,d,e.anchorPoint,s)}class Y extends W{constructor(e,t){super(e,t),i(this,"isElement",!0),i(this,"isGpuElement",!1),this.width=e.width||0,this.height=e.height||0,this.widthMode=e.widthMode??"fixed",this.heightMode=e.heightMode??"fixed",this.anchorPoint=e.anchorPoint??"center",this.left=e.left||0,this.top=e.top||0,this.leftMode=e.leftMode??"relative",this.topMode=e.topMode??"relative",this.effects=e.effects||[],this.trackMouse=e.trackMouse||0,this.trackAxes=e.trackAxes||"xy",this.axisTilt=e.axisTilt||0,this.mouseMomentum=e.mouseMomentum||0,this.mask=e.mask||0,this.maskDepthLayer=e.maskDepthLayer??1}unpackage(){this.effects=w(this.effects);for(let e in this)this[e]&&this[e].type&&("Vec2"===this[e].type?this[e]=new r.Vec2(this[e]._x,this[e]._y):"Vec3"===this[e].type&&(this[e]=new r.Vec3(this[e]._x,this[e]._y,this[e]._z)));return this}dispose(){this.local.canvas&&(this.local.canvas.width=1,this.local.canvas.height=1,this.local.canvas=null),this.local.ctx&&(this.local.ctx=null),super.dispose()}box(){const e=j(this.anchorPoint),{width:t,height:i}=this.getAbsoluteDimensions(),{left:s,top:a}=this.getAbsolutePosition();return{anchor:{x:s+t*(.5-e.x),y:a+i*(.5-e.y)},center:{x:s+t/2,y:a+i/2},left:s,top:a,width:t,height:i}}getAbsolutePosition(){var e,t,i,s;const a=this.state(),r=a.canvasWidth,n=a.canvasHeight;
1let o=(null==(t=null==(e=this.local)?void 0:e.stateEffectProps)?void 0:t.left)??this.left,l=(null==(s=null==(i=this.local)?void 0:i.stateEffectProps)?void 0:s.top)??this.top,u="fixed"===this.leftMode?o:o*r,h="fixed"===this.topMode?l:l*n;return u=+u.toFixed(1),h=+h.toFixed(1),{left:u,top:h}}getAbsoluteDimensions(){var e,t,i,s;const a=this.state();let r,n;const o=a.canvasWidth,l=a.canvasHeight;let u=(null==(t=null==(e=this.local)?void 0:e.stateEffectProps)?void 0:t.width)??this.width,h=(null==(s=null==(i=this.local)?void 0:i.stateEffectProps)?void 0:s.height)??this.height,c=b.includes(this.widthMode)?this.widthMode:b[this.widthMode],d=b.includes(this.heightMode)?this.heightMode:b[this.heightMode];return"auto"!==c&&(r="fixed"===c?u:u*o,"auto"===d&&(n=r/(this.aspectRatio||1),this.height="fixed"===c?n:n/l)),"auto"!==d&&(n="fixed"===this.heightMode?h:h*l,"auto"===c&&(r=n*(this.aspectRatio||1),this.width="fixed"===c?r:r/o)),"text"===this.layerType&&(n=this.height),{width:r,height:n}}isHovered(){const e=this.state();return q(this,e.canvasWidth,e.canvasHeight,e.mouse.movePos)}}class G extends Y{constructor(e,t,s){super(e,t),i(this,"layerType","shape"),i(this,"isElement",!0),i(this,"isGpuElement",!0),this.initOptions=s;for(let i in e)this[i]||(this[i]=e[i]);this.breakpoints.length&&this.setBreakpointValues()}}class X extends W{constructor(e,t,s){super(e,t),i(this,"layerType","effect"),this.initOptions=s,this.type=e.type||"sine",this.usesPingPong=e.usesPingPong||!1,this.speed=e.speed??.5,this.parentLayer=e.parentLayer||!1,this.animating=e.animating||!1,this.isMask=e.isMask||0,this.texture=e.texture||null,this.mouseMomentum=e.mouseMomentum||0;for(let i in e)this[i]||(this[i]=e[i]);this.breakpoints.length&&this.setBreakpointValues()}unpackage(){for(let e in this)this[e]&&this[e].type&&("Vec2"===this[e].type?this[e]=new r.Vec2(this[e]._x,this[e]._y):"Vec3"===this[e].type&&(this[e]=new r.Vec3(this[e]._x,this[e]._y,this[e]._z)));return this}getParent(){return this.state().layers.filter(e=>e.effects&&e.effects.length).find(e=>e.effects.includes(this.parentLayer))}}class $ extends W{constructor(e,t,s){var a,r,n,o;super(e,t),i(this,"layerType","flattened"),i(this,"isFlattened",!0),this.initOptions=s,this.sublayers=e.sublayers||[],this.visible=!1!==e.visible,this.consumedMaskId=e.consumedMaskId||null,this.local.textSublayers=[],this.local.imageSublayers=[],this.local.videoSublayers=[],this.local.modelSublayers=[],this.local.textInstances={},this.local.modelInstances={},this.local.modelTextures={},this.sublayers.forEach((e,i)=>{if("text"===e.layerType){this.local.textSublayers.push(e);const a={...e,noTextAsHtml:!0},r=Number.isInteger(e.sublayerIndex)?e.sublayerIndex:i;this.local.textInstances[r]=new Z(a,t,s).unpackage()}else if("image"===e.layerType)this.local.imageSublayers.push(e);else if("video"===e.type)this.local.videoSublayers.push(e);else if("model"===e.layerType){this.local.modelSublayers.push(e);const a=Number.isInteger(e.sublayerIndex)?e.sublayerIndex:i;this.local.modelInstances[a]=new Q(e,t,s)}}),this.states.hover.some(e=>e.triggerOnElement)&&Object.values(this.local.modelInstances).forEach(e=>{e.states.hover=[{triggerOnElement:1}]}),this.local.remainingEffectItems=[],this.effects=[],e.remainingEffects&&e.remainingEffects.length>0&&(this.local.remainingEffectItems=e.remainingEffects.map(e=>new X(e,t,s).unpackage()),this.effects=e.remainingEffects.map(e=>
1e.parentLayer).filter(Boolean));[...(null==(a=e.states)?void 0:a.appear)||[],...(null==(r=e.states)?void 0:r.scroll)||[],...(null==(n=e.states)?void 0:n.hover)||[],...(null==(o=e.states)?void 0:o.mousemove)||[]].forEach(t=>{var i,s,a,r;if(!t.prop||void 0!==this[t.prop])return;let n;const o=t.originalProp||t.prop;if(o&&Number.isInteger(t.sublayerIndex)){const e=this.sublayers.find(e=>e.sublayerIndex===t.sublayerIndex);e&&void 0!==e[o]&&(n=e[o])}const l=null==(a=null==(s=null==(i=e.data)?void 0:i.uniforms)?void 0:s[t.prop])?void 0:a.value,u=null==(r=t.uniformData)?void 0:r.value;this[t.prop]=n??l??u??t.value}),this.breakpoints.length&&this.setBreakpointValues()}getChildEffectItems(){return this.local.remainingEffectItems||[]}hasRemainingEffects(){return this.local.remainingEffectItems&&this.local.remainingEffectItems.length>0}unpackage(){var e,t,i;for(let s in this)this[s]&&"Vec2"===this[s].type?this[s]=new r.Vec2(this[s]._x,this[s]._y):this[s]&&"Vec3"===this[s].type&&(this[s]=new r.Vec3(this[s]._x,this[s]._y,this[s]._z));if(null==(e=this.data)?void 0:e.uniforms)for(let s in this.data.uniforms){const e=this.data.uniforms[s];"Vec2"===(null==(t=null==e?void 0:e.value)?void 0:t.type)?e.value=new r.Vec2(e.value._x,e.value._y):"Vec3"===(null==(i=null==e?void 0:e.value)?void 0:i.type)&&(e.value=new r.Vec3(e.value._x,e.value._y,e.value._z))}return this}areTextAssetsReady(){return Object.values(this.local.textInstances).every(e=>e.local.loaded)}areImageAssetsReady(){var e;return!(null==(e=this.data)?void 0:e.textures)||this.data.textures.filter(e=>"image"===e.type).every(e=>{var t;return!!(null==(t=this.local.sourceTextures)?void 0:t[e.sublayerIndex])})}areModelAssetsReady(){var e;if(!(null==(e=this.data)?void 0:e.textures))return!0;const t=this.data.textures.filter(e=>"modelRT"===e.type);return!t.length||t.every(e=>{var t,i,s,a;const r=null==(t=this.local.modelInstances)?void 0:t[e.sublayerIndex];return!!((null==(i=null==r?void 0:r.local)?void 0:i.rendererLoaded)&&(null==(s=null==r?void 0:r.local)?void 0:s.modelLoaded)&&(null==(a=this.local.modelTextures)?void 0:a[e.sublayerIndex]))})}resize(){Object.entries(this.local.textInstances).forEach(([e,t])=>{var i,s;t.resize(),null==(s=null==(i=this.local.canvasTextures[e])?void 0:i.needUpdate)||s.call(i)})}isHovered(e){var t;if(e){const i=e.match(/^L(\d+)_/);if(i){const e=parseInt(i[1],10),s=null==(t=this.local.modelInstances)?void 0:t[e];return(null==s?void 0:s.isHovered)?s.isHovered():this._isSublayerHovered(e)}}const i=this.local.modelInstances;if(i&&Object.values(i).some(e=>{var t;return null==(t=null==e?void 0:e.isHovered)?void 0:t.call(e)}))return!0;for(const s of this.sublayers)if("model"!==s.layerType&&"effect"!==s.layerType&&this._isSublayerHovered(s.sublayerIndex))return!0;return!1}_isSublayerHovered(e){var t,i;const s=null==(t=this.sublayers)?void 0:t.find(t=>t.sublayerIndex===e);if(!s||"effect"===s.layerType)return!1;const a=this.state();return!!(null==(i=null==a?void 0:a.mouse)?void 0:i.movePos)&&q(s,a.canvasWidth,a.canvasHeight,a.mouse.movePos)}}class K extends Y{constructor(e,t,s){super(e,t),i(this,"layerType","image"),i(this,"isElement",!0),i(this,"isGpuElement",!0),this.initOptions=s;for(let i in e)this[i]||(this[i]=e[i]);this.breakpoints.length&&this.setBreakpointValues()}}class Q extends W{constructor(e,t,s){var a;super(e,t,s),i(this,"layerType","model"),i(this,"isModel",!0),i(this,"contextType","webgl"),e.moduleRef&&(null==(a=null==s?void 0:s.modules)?void 0:a[e.moduleRef])&&(this.moduleUrl=s.modules[e.moduleRef].url),this.trackMouse=void 0!==e.trackMouse?e.trackMouse:0,this.mouseMomentum=void 0!==e.mouseMomentum?e.mouseMomentum:0,this.mouseSpring=void 0!==e.mouseSpring?e.mouseSpring:0,this.trackAxes=e.trackAxes||"xy",this.lightTracking=void 0!==e.lightTracking?e.lightTracking:0,this.rotationTracking=void 0!==e.rotationTracking?e.rotationTracking:0,this.speed=void 0!==e.speed?e.speed:.5,this.pos=new r.Vec3(e.pos._x,e.pos._y,e.pos._z),this.modelUrl=e.modelUrl,this.scale=e.scale,this.modelRotation=new r.Vec3(e.modelRotation._x,e.modelRotation._y,e.modelRotation._z),this.lightIntensity=e.lightIntensity,this.lightColor=e.lightColor,this.ambientLightColor=e.ambientLightColor,this.fillLightColor=e.fillLightColor,this.ambientLightIntensity=e.ambientLightIntensity??1.5,this.fillLightIntensity=e.fillLightIntensity??1,this.lightPosition=new r.Vec3(e.lightPosition._x,e.lightPosition._y,e.lightPosition._z),this.materialMetalness=e.materialMetalness,this.materialRoughness=e.materialRoughness,this.refractScale=e.refractScale,this.animationAxis=new r.Vec3(e.animationAxis._x,e.animationAxis._y,e.animationAxis._z),this.renderNormals=e.renderNormals,this.animating=e.animating,this.opacity=e.opacity,this.colorMapUrl=e.colorMapUrl,this.colorMapScale=e.colorMapScale??1,this.colorMapPosition=e.colorMapPosition?new r.Vec2(e.colorMapPosition.x??.5,e.colorMapPosition.y??.5):new r.Vec2(.5,.5),this.colorMapIntensity=e.colorMapIntensity??1,this.qual
1ity=e.quality||"fast",this.environmentMapIntensity=e.environmentMapIntensity??0,this.environmentMapUrl=e.environmentMapUrl||"",this.normalMapUrl=e.normalMapUrl||"",this.normalMapScale=e.normalMapScale??1,this.normalMapPosition=e.normalMapPosition?new r.Vec2(e.normalMapPosition.x??.5,e.normalMapPosition.y??.5):new r.Vec2(.5,.5),this.normalMapIntensity=e.normalMapIntensity??1,this.extrudeDepth=e.extrudeDepth??10,this.bevelEnabled=e.bevelEnabled??!1,this.bevelThickness=e.bevelThickness??1,this.bevelSize=e.bevelSize??1,this.bevelSegments=e.bevelSegments??2,this.glassIOR=e.glassIOR??1.5,this.glassThickness=e.glassThickness??.5,this.glassRoughness=e.glassRoughness??0,this.glassTint=e.glassTint||"#ffffff",this.glassDispersion=e.glassDispersion??0,this.materialMode=e.materialMode||(e.renderNormals?"glass":"standard"),this.matcapUrl=e.matcapUrl||"https://assets.unicorn.studio/media/matcaps/unicorn_matcap_default.webp",this.matcapIntensity=e.matcapIntensity??.5,this.matcapRotation=e.matcapRotation??0,this.renderNormals="glass"===this.materialMode||this.renderNormals?1:0}unpackage(){return this.pos=new r.Vec3(this.pos._x,this.pos._y,this.pos._z),this.modelRotation=new r.Vec3(this.modelRotation._x,this.modelRotation._y,this.modelRotation._z),this.lightPosition=new r.Vec3(this.lightPosition._x,this.lightPosition._y,this.lightPosition._z),this.animationAxis=new r.Vec3(this.animationAxis._x,this.animationAxis._y,this.animationAxis._z),this}async loadRenderer(){const e=this.state();if(!e.curtain||!e.curtain.renderer||!e.curtain.renderer.gl)return;let t=this.moduleUrl||`https://cdn.jsdelivr.net/gh/hiunicornstudio/unicornstudio.js@v${_}/extensions/model-renderer.js`;try{const i=await import(t);this.local.initialize=i.initialize,this.local.loadModel=i.loadModel,this.local.draw=i.draw,this.local.dispose=i.dispose,this.local.rendererLoaded=!0,requestAnimationFrame(()=>{var t;const i=e.curtain.renderer.gl;this.local.renderTarget&&!this.local.renderTarget._frameBuffer&&this.local.renderTarget._initRenderTarget(),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),this.local.initialize(i,this),this.local.initialized=!0,this.local.loadModel(this);const s=null==(t=e.curtain)?void 0:t.renderer;s&&(s.state.flipY=null,s.state.premultiplyAlpha=null)})}catch(i){}}handleModelLoaded(){var e,t,i;if(this.local.modelLoaded=!0,this.local.renderTarget){let s=this.local.renderTarget.getTexture();const a=this.getPlane()||(null==(t=null==(e=this.local.hostLayer)?void 0:e.getPlane)?void 0:t.call(e)),r=this.local.targetSamplerName||"uTexture";let n=null==(i=null==a?void 0:a.textures)?void 0:i.find(e=>e._samplerName===r);n&&s&&n.copy(s)}this.animating||(this.renderModel(),this.local.renderedOnce=!0)}renderModel(){var e,t,i,s,a,r,n;if(!this.local.rendererLoaded||!this.local.modelLoaded)return;const o=this.state();if(!o||o.destroyed||!o.curtain||!o.curtain.renderer||!o.curtain.renderer.gl)return;const l=o.curtain.renderer.gl;if(0===l.drawingBufferWidth||0===l.drawingBufferHeight)return;if(this.animating){void 0===this.local.time&&(this.local.time=0);let t=(null==(e=this.local.stateEffectProps)?void 0:e.speed)??this.speed??.5;const i=o.fps?60/o.fps:1;this.local.time+=t*i*60}const u=this.materialMode||(this.renderNormals?"glass":"standard");if(this.environmentMapIntensity>0){const e=this.getPlane()||(null==(i=null==(t=this.local.hostLayer)?void 0:t.getPlane)?void 0:i.call(t));if(e&&!(null==(s=this.environmentMapUrl)?void 0:s.trim())){const t=e.textures.find(e=>"uBgTexture"===e._samplerName);t&&t._sampler&&(this.local.envTexture={gl:l,webglTexture:t._sampler.texture,width:t._size.width,height:t._size.height})}}else this.local.envTexture=null;if("glass"===u){const e=this.getPlane()||(null==(r=null==(a=this.local.hostLayer)?void 0:a.getPlane)?void 0:r.call(a));if(e){const t=e.textures.find(e=>"uBgTexture"===e._samplerName);t&&t._sampler&&t._sampler.texture&&(this.local.backgroundTexture={gl:l,webglTexture:t._sampler.texture,width:t._size.width,height:t._size.height})}}const h=void 0!==this.local.time?this.local.time:performance.now();if(this.local.renderTarget)if(this.local.renderTarget._frameBuffer){const e=this.local.renderTarget._frameBuffer,t=this.local.renderTarget._size.width,i=this.local.renderTarget._size.height;l.pixelStorei(l.UNPACK_FLIP_Y_WEBGL,!1),l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),l.bindFramebuffer(l.FRAMEBUFFER,e),l.viewport(0,0,t,i);try{this.local.draw(l,h,this)}finally{l.bindFramebuffer(l.FRAMEBUFFER,null),l.viewport(0,0,l.drawingBufferWidth,l.drawingBufferHeight),l.pixelStorei(l.UNPACK_FLIP_Y_WEBGL,!0),l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0);const e=null==(n=o.curtain)?void 0:n.renderer;e&&(e.setBlendFunc(),e.state.currentProgramID=null,e.state.currentGeometryID=null,e.state.forceBufferUpdate=!0,e.state.frameBufferID=null,e.state.activeTexture=null,e.state.depthTest=null,e.state.cullFace=null,e.state.flipY=null,e.state.premultiplyAlpha=null)}}else this.local.draw(l,h,this),l.pixelStorei(l.UNPACK_FLIP_Y_WEBGL,!0)}resize(){}cleanup(){if(this.local.dispose&&this.local.dispose(this),this.local.initialize=null,this.local.loadModel=null,this.local.draw=null,this.local.dispose=null,this.local.rendererLoaded=!1,this.local.initialized=!1,this.local.modelLoaded=!1,this.local.renderTarget){this.local.renderTarget.remove();let e=this.getPlane();e&&e.setRenderTarget(null),this.local.renderTarget=null}}isAnimating(){return this.visible&&(this.animating||this.trackMouse>0||this.rotationTracking>0||this.lightTracking>0)}getProp(e){var t;
1return(null==(t=this.local.stateEffectProps)?void 0:t[e])??this[e]}isHovered(){if(!this.local.boundingBox)return!1;const e=this.state(),t=e.canvasWidth,i=e.canvasHeight,s=this.local.boundingBox.min,a=this.local.boundingBox.max,r=s.x*t,n=s.y*i,o=a.x*t,l=a.y*i,u=e.mouse.movePos;return 2*u.x>=r&&2*u.x<=o&&2*u.y>=n&&2*u.y<=l}dispose(){this.cleanup(),super.dispose()}}class Z extends Y{constructor(e,t,s){super(e,t),i(this,"layerType","text"),i(this,"isText",!0),this.initOptions=s,this.opacity=e.opacity??1,this.displace=e.displace||0,this.bgDisplace=e.bgDisplace||0,this.dispersion=e.dispersion||0,this.rotation=e.rotation||0,this.blendMode=e.blendMode||"NORMAL";let a=this.default(e||{});for(let i in a)this[i]=a[i];this.breakpoints.length&&this.setBreakpointValues(),this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),Object.keys(e).length&&this.createLocalCanvas(),this.loadFont()}createLocalCanvas(){const e=this.state(),t=document.createElement("canvas"),i=this.getPixelRatio();t.width=e.canvasWidth*i,t.height=e.canvasHeight*i;const s=t.getContext("2d");s.scale(i,i),this.local.canvas=t,this.local.ctx=s}resize(){var e,t,i;const s=this.state();if(this.local.canvas){const e=this.getPixelRatio();this.local.canvas.width=s.canvasWidth*e,this.local.canvas.height=s.canvasHeight*e,this.local.ctx.scale(e,e)}const a=null==(e=s.currentBreakpoint)?void 0:e.name;(null==(i=null==(t=this.states)?void 0:t.appear)?void 0:i.some(e=>!e.complete&&(!e.breakpoints||0===e.breakpoints.length||e.breakpoints.includes(a))))||this.render(),A(this,this.state().element)}default(e){return{fill:e.fill||["#ffffff"],fontSize:e.fontSize??24,fontSizeMode:e.fontSizeMode||"fixed",fontCSS:e.fontCSS||null,lineHeight:e.lineHeight??25,letterSpacing:e.letterSpacing||0,fontFamily:e.fontFamily||"arial",fontStyle:e.fontStyle||"normal",fontWeight:e.fontWeight||"normal",textAlign:e.textAlign||"left",textContent:e.textContent||"",gradientAngle:e.gradientAngle||e.gradAngle||0,gradientType:e.gradientType||e.gradType||"linear",noTextAsHtml:e.noTextAsHtml||!1}}unpackage(){return this.fill=w(this.fill),this}loadFont(){var e;const t=this.fontStyle.includes("italic")?"italic":"normal",i=e=>"normal"===e||"400"===e||400===e?"normal":e.toString(),s=isNaN(parseInt(this.fontWeight))?"normal":i(this.fontWeight);if(Array.from(document.fonts).some(e=>e.family===this.fontFamily&&e.style===t&&i(e.weight)===s&&"loaded"===e.status)||!(null==(e=this.fontCSS)?void 0:e.src))return void this.handleFontLoaded();let a=this.fontCSS.src.split(" ").join("%20");const r=new FontFace(this.fontFamily,`url(${a})`,{style:t,weight:s});document.fonts.add(r),r.load().then(()=>{this.handleFontLoaded()}).catch(e=>{this.handleFontLoaded()})}handleFontLoaded(){this.local.loaded=!0,this.render(),this.render();const e=this.state();e.renderFrame&&e.renderFrame(),A(this,this.state().element)}getAbsoluteFontValues(e){var t,i,s,a,r,n;const o=(null==(i=null==(t=this.local)?void 0:t.stateEffectProps)?void 0:i.fontSize)||this.fontSize,l=(null==(a=null==(s=this.local)?void 0:s.stateEffectProps)?void 0:a.lineHeight)||this.lineHeight,u=(null==(n=null==(r=this.local)?void 0:r.stateEffectProps)?void 0:n.letterSpacing)||this.letterSpacing,h="fixed"===this.fontSizeMode?o:o*e.canvasWidth;return{fontSize:h,lineHeight:"fixed"===this.fontSizeMode?l:l*h,letterSpacing:"fixed"===this.fontSizeMode?u:u*h}}render(){var e,t,i;if(!(null==(e=this.local)?void 0:e.ctx))return;let s=this.local.ctx,{left:a,top:r,width:n}=this.box();const o=j(this.anchorPoint),l=(null==(i=null==(t=this.local)?void 0:t.stateEffectProps)?void 0:i.rotation)||this.rotation;let u=this.state(),h=this.height,c=a-o.x*n,d=r-o.y*h,f=0,{fontSize:m,lineHeight:p,letterSpacing:g}=this.getAbsoluteFontValues(u),v=this.fontStyle.includes("italic")?"italic":"normal",x=/^\d+$/.test(this.fontStyle)?this.fontStyle:"400";s.clearRect(0,0,u.canvasWidth,u.canvasHeight),s.font=`${v} ${x} ${m}px/${p}px ${this.fontFamily}, -apple-system, BlinkMacSystemFont, Helvetica, Arial`,this.isSafari||(s.textAlign=this.textAlign,s.letterSpacing=g+"px");const y=s.measureText("m").width;n=Math.max(n,y),s.save();let b=c+n/2,_=d+h/2;s.translate(b,_),s.rotate(360*l*Math.PI/180),s.translate(-b,-_),"center"===this.textAlign&&(c+=n/2),"right"===this.textAlign&&(c+=n),s.fillStyle=this.fill[0];const T=(e,t)=>
1{let i=d+p*t+p/2+m/3;this.isSafari?((e,t,i,s,a,r,n)=>{let o,l=t.split("").reduce((i,s,r)=>i+e.measureText(s).width+(r<t.length-1?a:0),0);if(o="center"===r?i+(n-l)/2-n/2:i,"right"===r)for(let u=t.length-1;u>=0;u--){const i=t[u];o-=e.measureText(i).width,e.fillText(i,o,s),u>0&&(o-=a)}else for(let u=0;u<t.length;u++)e.fillText(t[u],o,s),o+=e.measureText(t[u]).width+a})(s,e,c,i,g,this.textAlign,n):s.fillText(e,c,i)},P=this.textContent?this.textContent.split("\n"):[""];let E=P.length;const w=(e,t,i)=>t.split("").reduce((s,a,r)=>(s+=e.measureText(a).width,r<t.length-1&&(s+=i),s),0);for(let M=0;M<E;M++){let e="",t=P[M].split(/(\s|\n)/);for(let i=0;i<t.length;i++){const a=t[i],r=e+a;if((this.isSafari&&g?w(s,r,g):s.measureText(r).width)>n||"\n"===a){if(""!==e)P[M]=e.trim(),i!==t.length-1?(P.splice(M+1,0,t.slice(i).join("")),E++):"\n"!==a&&P.push(a);else{let e=a,r=M;for(;e.length>0;){let t="";for(let i=0;i<e.length&&(s.measureText(t+e[i]).width<=n||0==i);i++)t+=e[i];e=e.slice(t.length),P[r]=t.trim(),e.length>0&&(P.splice(r+1,0,e),r++,E++)}t.slice(i+1).length>0&&(P[r]+=t.slice(i+1).join(""))}break}e=r,i===t.length-1&&(P[M]=e.trim())}}P.forEach((e,t)=>{T(e,f),t<P.length-1&&f++}),s.translate(-(c+n/2),-(d+h/2)),s.restore(),this.height=p*f+p}}function J(){let e=performance.now();document[n]?(cancelAnimationFrame(l),ue.forEach(t=>{t.pauseTime=e})):(C(),ue.forEach(t=>{t.pauseTime=t.pauseTime-e,t.curtain.planes.forEach(e=>{e.videos.forEach(e=>{e.play()})})}))}function ee(){c=window.innerHeight||document.documentElement.clientHeight,d=window.innerWidth||document.documentElement.clientWidth,ue.filter(e=>e.initialized).forEach(e=>{e.refresh()}),ie()}function te(e,t,i=50){const s=t||e.getBoundingClientRect(),a=s.top>=-i&&s.top<=c+i||s.bottom>=-i&&s.bottom<=c+i||s.top<=0&&s.bottom>=c,r=s.left>=-i&&s.left<=d+i||s.right>=-i&&s.right<=d+i||s.left<=0&&s.right>=d;return a&&r}function ie(){ue.filter(e=>e.getDynamicLayers().length).forEach(e=>{let t=e.element.getBoundingClientRect();if(e.scrollY=f,e.lastBbox){0===Math.abs(t.top-e.lastBbox.top)&&p>0?(e.fixedCounter=(e.fixedCounter||0)+1,e.fixedCounter>3&&(e.isFixed=!0)):e.fixedCounter=0}e.lastBbox=e.bbox,e.bbox=t})}function se(){const e=performance.now();ue.filter(e=>e.getDynamicLayers().length).forEach(t=>{if(te(t.element,t.bbox,100)){if(!t.isInView){t.isInView=!0,t.pauseTime=t.pauseTime-e;const i=t.element.offsetWidth>0&&t.element.offsetHeight>0;i&&t.curtain?t.resize():i||requestAnimationFrame(()=>{t.element.offsetWidth>0&&t.element.offsetHeight>0&&t.curtain&&t.resize()}),!t.lazyLoad||t.initialized||t.initializing||t.initializePlanes()}}else t.isInView&&(t.isInView=!1,t.pauseTime=e)})}function ae(){f=window.scrollY||window.pageYOffset,p=f-m,m=f,ie(),se();const e=ue.filter(e=>e.getDynamicLayers().length),t=ue.filter(e=>e.rendering);e.length&&!t.length&&C()}function re(e){const t=ue.filter(e=>e.getDynamicLayers().length),i=ue.filter(e=>e.rendering);t.length&&!i.length&&C();const s=performance.now();(!v||s-v>80)&&(ie(),v=s),clearTimeout(x),x=setTimeout(ae,80),se()}function ne(e){var t;if(e._hasMousePos)return!0;if(!(null==(t=e.curtain)?void 0:t.planes))return!1;const i=e.curtain.planes.find(e=>e.uniforms.mousePos);return i&&(e._hasMousePos=!0),!!i}function oe(e){for(let t=0;t<ue.length;t++){const e=ue[t];e.isInView&&(e.mouse.page.x=99999999999,e.mouse.page.y=99999999999,e.mouse.enterTime=null)}}function le(e){let t=performance.now();for(let i=0;i<ue.length;i++){const s=ue[i];if(!s.isInView||!s.initialized)continue;let a,r,n=s.bbox;Math.abs(p)>1&&t-s.lastBboxTime>64&&(n=s.element.getBoundingClientRect(),s.lastBbox=s.bbox,s.bbox=n,s.scrollY=f,s.lastBboxTime=t),e.targetTouches?(a=e.targetTouches[0].pageX,r=e.targetTouches[0].pageY):(a=e.pageX,r=e.pageY),s.isFixed&&(s.scrollY=0,r=e.targetTouches?e.targetTouches[0].clientY:e.clientY);const o=a-n.left,l=r-(n.top+(s.isFixed?0:s.scrollY));s.mouse.page.x=a,s.mouse.page.y=r,s.mouse.movePos.x=.5*o,s.mouse.movePos.y=.5*l,s.mouse.movedInView=!0}}let ue=[];class he{constructor(e){i(this,"local",{}),i(this,"scrollY",0),i(this,"paused",!1),i(this,"destroyed",!1),i(this,"lastBboxTime",0),this.id=e.id,this.breakpoints=[{name:"Desktop",max:1/0,min:992},{name:"Tablet",max:991,min:576},{name:"Mobile",max:575,min:0}],this.projectId=e.projectId,this.canvasWidth=e.width||e.element.offsetWidth||d,this.canvasHeight=e.height||e.element.offsetHeight||c,this.curtain=void 0,this.curtainRafId=void 0,this.dpi=+e.dpi||Math.min(1.5,window.devicePixelRatio),this.element=e.element,this.fps=e.fps||60,this.name=e.name,this.frameDuration=Math.floor(1e3/(e.fps||60)),this.layers=e.layers,this.lazyLoad=e.lazyLoad,this.initialized=!1,this.lasTick=null,this.lastTime=0,this.rendering=!1,this.bbox={},this.isFixed=e.fixed||"fixed"===window.getComputedStyle(this.element).position,this.interactivity={mouse:{disableMobile:!1,disabled:!1}},this.mouse={downPos:{x:.5,y:.5},movePos:{x:.5,y:.5},lastPos:{x:.5,y:.5},delta:{x:0,y:0},page:{x:99999999999,y:99999999999},dragging:!1,movedInView:!1,enterTime:null,ticks:0,pos:{x:0,y:0}},this.renderingScale=e.renderingScale||1,this.scale=e.scale||1,this.split=!1,this.versionId="",e.width&&e.height&&(this.element.style.width=e.width+"px",this.element.style.height=e.height+"px"),this.bbox=this.element.getBoundingClientRect(),this.lastBbox=this.bbox,this.currentBreakpoint=this.breakpoints.find(e=>d>=e.min&&d<=e.max),this.createCurtains(),this.setCanvasScale(),this.curtain&&(this.textureLoader=new r.TextureLoader(this.curtain))}preloadImage(e,t,i,s=!0){if(!e)return;this.local.preloadedImages=this.local.preloadedImages||{};let a=this.local.preloadedImages[e];if(a||(a=this.local.preloadedImages[e]={texture:null,loading:!0,claimed:!1,queue:[]},this.textureLoader.loadImage(e,{sampler:t,premultipliedAlpha:s},t=>{a.texture=t,a.loading=!1;for(const i of a.queue)this._resolvePreloadedImage(e,i);a.queue=[]},()=>
1{a.loading=!1,a.queue.forEach(e=>e.callback(null)),a.queue=[]})),!i)return;const r={callback:i,sampler:t,premultiplyAlpha:s};a.loading?a.queue.push(r):this._resolvePreloadedImage(e,r)}_resolvePreloadedImage(e,t){const i=this.local.preloadedImages[e];i.claimed?this.textureLoader.loadImage(e,{sampler:t.sampler,premultipliedAlpha:t.premultiplyAlpha},t.callback,()=>t.callback(null)):(i.claimed=!0,t.callback(i.texture))}preloadVideo(e){if(!e)return null;const t=e.includes(", ")?function(e){const t=e.split(",").map(e=>e.trim()),i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),s=/iPad|iPhone|iPod/.test(navigator.userAgent);if(i||s){const e=t.find(e=>e.endsWith(".mov")||e.endsWith(".mp4"));if(e)return e}const a=t.find(e=>e.endsWith(".webm"));return a||t[0]}(e):e;if(this.local.preloadedVideos=this.local.preloadedVideos||{},!this.local.preloadedVideos[t]){const e=document.createElement("video");e.crossOrigin="anonymous",e.muted=!0,e.preload="auto",e.setAttribute("playsinline",""),e.src=t,e.load(),this.local.preloadedVideos[t]=e}return this.local.preloadedVideos[t]}preloadTextures(){this.layers.forEach(e=>{var t,i,s,a,n,o,l;if(e.isFlattened)return e.local.canvasTextures={},e.local.sourceTextures={},void((null==(t=e.data)?void 0:t.textures)&&e.data.textures.forEach(t=>{var i,s,a,n;if("canvas"===t.type){const a=null==(i=e.local.textInstances)?void 0:i[t.sublayerIndex];(null==(s=null==a?void 0:a.local)?void 0:s.canvas)&&this.textureLoader.loadCanvas(a.local.canvas,{sampler:t.sampler,premultiplyAlpha:!0},i=>{var s;i.shouldUpdate=!0,e.local.canvasTextures[t.sublayerIndex]=i;const a=null==(s=e.getPlane)?void 0:s.call(e);a&&!a.textures.some(e=>e._samplerName===t.sampler)&&a.addTexture(i)})}else if("image"===t.type&&t.src)this.preloadImage(t.src,t.sampler,i=>{var s;e.local.sourceTextures[t.sublayerIndex]=i;const a=null==(s=e.getPlane)?void 0:s.call(e);a&&!a.textures.some(e=>e._samplerName===t.sampler)&&a.addTexture(i)});else if("video"===t.type){const i=e.sublayers.find(e=>e.sublayerIndex===t.sublayerIndex);(null==i?void 0:i.src)&&(e.local.videoElements||(e.local.videoElements={}),e.local.videoElements[t.sublayerIndex]=this.preloadVideo(i.src))}else if("media"===t.type&&t.src)this.preloadImage(t.src,t.sampler,i=>{var s;const a=null==(s=e.getPlane)?void 0:s.call(e);a&&!a.textures.some(e=>e._samplerName===t.sampler)&&a.addTexture(i)},!1);else if("modelRT"===t.type){const i=null==(a=e.local.modelInstances)?void 0:a[t.sublayerIndex];if(!i||!this.curtain)return;i.local.hostLayer=e,i.local.targetSamplerName=t.sampler,i.local.renderTarget||(i.local.renderTarget=new r.RenderTarget(this.curtain,{depth:!0,maxWidth:this.curtain.canvas.width*(i.userDownsample||1),maxHeight:this.curtain.canvas.height*(i.userDownsample||1),texturesOptions:{sampler:t.sampler,premultiplyAlpha:!0}}));const s=i.local.renderTarget.getTexture();if(s){e.local.modelTextures[t.sublayerIndex]=s;const i=null==(n=e.getPlane)?void 0:n.call(e);i&&!i.textures.some(e=>e._samplerName===t.sampler)&&i.addTexture(s)}i.local.rendererLoaded||i.loadRenderer()}}));if(e.isElement)e.local.canvas?this.textureLoader.loadCanvas(e.local.canvas,{sampler:"uTexture",premultiplyAlpha:!0},t=>{t.userData.hasStateEffects=e.states.appear.length>0||e.states.scroll.length>0||e.states.hover.length>0||e.states.mousemove.length>0,e.preloadedCanvasTexture=t},e=>{}):"image"===e.layerType&&e.src&&(e.local.sourceTextureLoading=!0,this.preloadImage(e.src,"uSourceImage",t=>{var i,s;if(e.local.sourceTextureLoading=!1,t){e.local.sourceTexture=t,e.local.imageReady=!0;const a=(null==(i=e.getPlanes)?void 0:i.call(e).find(e=>{var t;return!(null==(t=e.userData)?void 0:t.isComposite)}))||(null==(s=e.getPlane)?void 0:s.call(e));a&&!a.textures.some(e=>"uSourceImage"===e._samplerName)&&a.addTexture(t)}}));else{const t=(null==(i=null==e?void 0:e.texture)?void 0:i.src)||(null==(a=null==(s=null==e?void 0:e.data)?void 0:s.texture)?void 0:a.src),r=(null==(n=null==e?void 0:e.texture)?void 0:n.sampler)||(null==(l=null==(o=null==e?void 0:e.data)?void 0:o.texture)?void 0:l.sampler)||"uTexture";t&&this.preloadImage(t,r,null,!1)}})}setCanvasScale(){this.canvasWidth=this.element.offsetWidth,this.canvasHeight=this.element.offsetHeight}destroy(){var e,t;this.destroyed=!0,this.rendering=!1,this.isInView=!1;const i=ue.findIndex(e=>e.id===this.id);-1!==i&&ue.splice(i,1),this.layers.filter(e=>
1e.dispose).forEach(e=>e.dispose()),this.layers=[],(null==(e=this.curtain)?void 0:e.gl)&&(this.curtain.dispose(),this.curtain=null),this.element&&(this.element.removeAttribute("data-us-initialized"),this.element.removeAttribute("data-scene-id"),null==(t=this.element.querySelector("canvas"))||t.remove(),this.element.querySelectorAll("[data-us-text]").forEach(e=>{e.remove()})),C(),ue.length||me()}resize(){this.lastBbox=this.bbox,this.bbox=this.element.getBoundingClientRect(),this.setCanvasScale();for(let e=0;e<this.layers.length;e++){const t=this.layers[e];t.resize&&t.resize()}if(this.currentBreakpoint=this.breakpoints.find(e=>d>=e.min&&d<=e.max),this.curtain){this.curtain.resize(),this.curtain.canvas.style.width=this.canvasWidth+"px",this.curtain.canvas.style.height=this.canvasHeight+"px";for(let e=0;e<this.curtain.planes.length;e++){const t=this.curtain.planes[e];t.uniforms.resolution&&(t.uniforms.resolution.value.x=this.curtain.canvas.width,t.uniforms.resolution.value.y=this.curtain.canvas.height),t.uniforms.artboardResolution&&(t.uniforms.artboardResolution.value.x=this.canvasWidth,t.uniforms.artboardResolution.value.y=this.canvasHeight)}}}refresh(){this.initialized=!1,this.layers.forEach(e=>{var t,i;null==(t=e.states)||t.scroll.forEach(e=>e.resetState()),null==(i=e.states)||i.appear.forEach(t=>{e[t.prop]=t.endValue??e.local.stateEffectProps[t.prop]??e[t.prop]}),e.breakpoints.length&&(e.setBreakpointValues(),e.local.bpProps&&Object.keys(e.local.bpProps).forEach(t=>{e.getPlanes().forEach(i=>{i.uniforms[t]&&U(e.local.bpProps[t],i.uniforms[t],t)})})),e.preloadedCanvasTexture&&(e.preloadedCanvasTexture.shouldUpdate=!0)}),requestAnimationFrame(()=>{this.curtain&&(this.curtain.planes.forEach(e=>{e._canDraw=!0}),this.scrollY=f,this.resize(),this.handlePlaneCreation())})}getDynamicLayers(){return this.layers.filter(e=>k(e))}createCurtains(){this.curtain=new r.Curtains({container:this.element,premultipliedAlpha:!0,antialias:!1,autoRender:!1,autoResize:!1,watchScroll:!1,renderingScale:Math.min(Math.max(.25,this.renderingScale),1),production:!1,pixelRatio:this.dpi}),this.curtain.gl&&(this.curtain.onError(e=>{}),this.curtain.onContextLost(()=>{this.curtain.restoreContext()}),this.curtain.onContextRestored(()=>{this.initialized&&(this.layers.forEach(e=>{e.preloadedCanvasTexture&&(e.preloadedCanvasTexture.shouldUpdate=!0)}),requestAnimationFrame(()=>{this.curtain&&(this.curtain.planes.forEach(e=>{e._canDraw=!0}),this.renderFrame())}))}),this.scrollY=f)}renderFrame(){var e;this.destroyed||(e=this.curtain)&&e.renderer&&e.renderer.nextRender&&"function"==typeof e.renderer.nextRender.execute&&(this.layers.forEach(e=>{e.local.currentFrameMouseValues=null}),this.handleStateEffects(),this.curtain.render())}renderNFrames(e,t){let i=0;const s=()=>{this.renderFrame(),i<e?(i++,requestAnimationFrame(s)):t&&t()};this.rendering||s()}setInteractiveParams(e,t){let i={mouse:{disableMobile:!1,disabled:!1}};t&&t.mouse&&("disableMobile"in t.mouse&&(i.mouse.disableMobile=t.mouse.disableMobile),"disabled"in t.mouse&&(i.mouse.disabled=t.mouse.disabled)),e&&e.interactivity&&e.interactivity.mouse&&("disableMobile"in e.interactivity.mouse&&(i.mouse.disableMobile=e.interactivity.mouse.disableMobile),"disabled"in e.interactivity.mouse&&(i.mouse.disabled=e.interactivity.mouse.disabled)),this.interactivity=i}getSplitOrderedItems(){let e=this.getOrderedItems(),t=0,i=e[t];if(i){let s=i.parentLayer?i.getParent():null,a=s&&k(s),r=s&&s.effects&&s.effects.length&&s.getChildEffectItems().filter(e=>k(e)).length;for(;i&&!k(i)&&!a&&!r;)t++,i=e[t],i&&(s=i.parentLayer?i.getParent():null,a=s&&k(s),r=s&&s.effects&&s.effects.length&&s.getChildEffectItems().filter(e=>k(e)).length);return{static:this.getOrderedItems().splice(0,t),dynamic:this.getOrderedItems().splice(t)}}return{static:[],dynamic:[]}}initializePlanes(e){this.initializing=!0,this.handleItemPlanes(()=>{this.handlePlaneCreation(),e&&e(this)})}getPassPlane(e,t){var i;return null==(i=this.curtain)?void 0:i.planes.find(i=>i.userData.id===e.local.id&&i.userData.passIndex===t)}getRenderTargets(){var e;return null==(e=this.curtain)?void 0:e.renderTargets.filter(e=>e.userData.id)}getPlanes(){var e;
1return null==(e=this.curtain)?void 0:e.planes.filter(e=>"PingPongPlane"!==e.type)}getPlaneParams(e,t){var i,s,a,n,o;let l=(null==(i=e.data)?void 0:i.heightSegments)||(null==(s=e.data)?void 0:s.widthSegments)?500:1;const u={resolution:{name:"uResolution",type:"2f",value:new r.Vec2(this.canvasWidth,this.canvasHeight)},mousePos:{name:"uMousePos",type:"2f",value:new r.Vec2(.5)},time:{name:"uTime",type:"1f",value:0},dpi:{name:"uDpi",type:"1f",value:this.dpi*+this.renderingScale}};e.usesPingPong&&(u.previousMousePos={name:"uPreviousMousePos",type:"2f",value:new r.Vec2(.5)});let h=e.compiledFragmentShaders[t]||e.compiledFragmentShaders[0],c=e.compiledVertexShaders[t]??e.compiledVertexShaders[0];if(e.states&&[...e.states.appear,...e.states.scroll,...e.states.hover,...e.states.mousemove].forEach(t=>{u[t.prop]||t.uniformData&&(u[t.prop]=t.uniformData,u[t.prop].value=e[t.prop])}),null==(a=e.data)?void 0:a.uniforms)for(let d in e.data.uniforms){let t=e.data.uniforms[d];u[d]=e.data.uniforms[d],"Vec3"===(null==(n=t.value)?void 0:n.type)?u[d].value=new r.Vec3(t.value._x,t.value._y,t.value._z):"Vec2"===(null==(o=t.value)?void 0:o.type)?u[d].value=new r.Vec2(t.value._x,t.value._y):"object"==typeof t.value&&(u[d].value=w(t.value))}return{fragmentShader:h,vertexShader:c,widthSegments:l,heightSegments:l,texturesOptions:{floatingPoint:"half-float",premultiplyAlpha:!0},uniforms:u}}getCompositePlaneRenderOrder(e,t,i){const s=e.getChildEffectItems();if(0===s.length)return i;const a=s[s.length-1],r=t.indexOf(a);return-1!==r?r+1:i+s.length}createPlane(e,t){var i;let s,a;s=e.isElement||e.isModel||e.isFlattened?this.getPlaneParams(e):this.getPlaneParams(e,t?t.index:null),s.watchScroll=!1;try{if(!this.curtain.container)throw new Error("Can't find scene container");let n=(null==t?void 0:t.downSample)||0===(null==t?void 0:t.index)&&(null==(i=e.data)?void 0:i.downSample),o=this.renderingScale;if(n&&(o="number"==typeof n?n:.5,o*=this.renderingScale),e.userDownsample&&"number"==typeof e.userDownsample&&(o*=e.userDownsample),a=new r.Plane(this.curtain,this.curtain.container,s),!a||!a.userData||!a.textures)throw new Error("Plane not properly initialized");return a.textures.length=0,a.userData.id=e.local.id,a.userData.layerType=e.layerType,a.userData.type=e.type,a.userData.downSample=o,a}catch(n){return null}}createPingPongPlane(e,t){var i;let s=this.getPlaneParams(e,1+((null==t?void 0:t.length)||0)),a=null==(i=this.curtain)?void 0:i.planes.find(t=>"PingPongPlane"===t.type&&t.userData.id===e.local.id);if(!a){if(a=new r.PingPongPlane(this.curtain,this.curtain.container,s),!a)return;a.userData.id=e.local.id,a.userData.pingpong=!0,a.onReady(()=>{this.setInitialEffectPlaneUniforms(a,e,null==e?void 0:e.getParent(),t),a.userData.isReady=!0}).onRender(()=>{this.setEffectPlaneUniforms(a,e)})}if(a)return a}createEffectPlane(e,t){const i=this.createPlane(e,t);if(!i)return;const s=e.getParent();if(!i||!i.userData||!i.textures)throw new Error("Plane not properly initialized",i);t&&(i.userData.passIndex=t.index,i.userData.length=e.data.passes.length,i.userData.needsPreviousFrame=t.needsPreviousFrame,Object.entries(t).forEach(([e,t])=>{i.uniforms[e]&&(i.uniforms[e].value=t)})),this.setInitialEffectPlaneUniforms(i,e,s,t),i.onReady(()=>{i.userData.isReady=!0}).onRender(()=>this.setEffectPlaneUniforms(i,e)).onAfterRender(()=>{const t=i.userData.needsPreviousFrame;if(t){const s=i.userData.passIndex??0,a=e.local.previousFrameTargets||{},r=e.local.previousFrameInputTargets||{},n="target"===t?r[s]:i.target,o=a[s];n&&o&&this.blitRenderTarget(n,o)}})}createFlattenedPlane(e){var t;const i=this.createPlane(e);i&&(i.onReady(()=>{this.setInitialFlattenedPlaneUniforms(i,e),i.userData.isReady=!0}).onRender(()=>this.setFlattenedPlaneUniforms(i,e)),e.hasRemainingEffects()&&(e.getChildEffectItems().forEac
1h(e=>{e.getPlanes().length||this.createEffectPlanes(e)}),(null==(t=e.data)?void 0:t.compositeShader)&&this.createCompositePlane(e)))}createElementPlane(e){const t=this.createPlane(e);t&&(e.getChildEffectItems().length>0&&this.createCompositePlane(e),t.onReady(()=>{this.setInitialElementPlaneUniforms(t,e),t.userData.isReady=!0}).onRender(()=>this.setElementPlaneUniforms(t,e)))}createCompositePlane(e){var t,i,s;if(!(null==(t=e.data)?void 0:t.compositeShader))return null;const a={vertexShader:e.data.compositeShader.vertexShader,fragmentShader:e.data.compositeShader.fragmentShader,texturesOptions:{premultiplyAlpha:!0},uniforms:{}};if(e.data.compositeUniforms)for(let o in e.data.compositeUniforms){let t=e.data.compositeUniforms[o];a.uniforms[o]={...t},"Vec3"===(null==(i=t.value)?void 0:i.type)?a.uniforms[o].value=new r.Vec3(t.value._x,t.value._y,t.value._z):"Vec2"===(null==(s=t.value)?void 0:s.type)&&(a.uniforms[o].value=new r.Vec2(t.value._x,t.value._y))}const n=new r.Plane(this.curtain,this.curtain.container,a);return n&&n.userData?(n.textures.length=0,n.userData.id=e.local.id,n.userData.isComposite=!0,n.onReady(()=>{n.userData.isReady=!0}).onRender(()=>{this.setCompositePlaneUniforms(n,e)}),n):null}setCompositePlaneUniforms(e,t){var i,s;if((null==e?void 0:e.uniforms)&&(e.uniforms.resolution&&(e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height),e.uniforms.opacity&&(e.uniforms.opacity.value=(null==(s=null==(i=t.local)?void 0:i.stateEffectProps)?void 0:s.opacity)??t.opacity??1),e.uniforms.mousePos)){t.local.currentFrameMouseValues||(t.local.currentFrameMouseValues=this.calculateItemMouseValues(t));const i=t.local.currentFrameMouseValues;i&&this.mouse.movedInView&&(e.uniforms.mousePos.value.x=i.x,e.uniforms.mousePos.value.y=i.y)}}handleMediaTextures(e,t,i){var s;if([t.texture,null==(s=t.data)?void 0:s.texture].filter(e=>null==e?void 0:e.src).forEach(s=>{var a;(null==(a=t.compiledFragmentShaders[i.passIndex??0])?void 0:a.includes(s.sampler))&&this.preloadImage(s.src,s.sampler,t=>{if(t){e.textures.some(e=>e._samplerName===s.sampler)||e.addTexture(t),e.userData.textureLoaded=!0}},!1)}),"video"===t.type&&t.src){const i=this.preloadVideo(t.src);e.loadVideo(i,{premultipliedAlpha:!0,sampler:"uVideoTexture"},i=>{e.videos.at(-1).loop=!t.hasOwnProperty("loop")||t.loop,e.videos.at(-1).playbackRate=t.playbackRate||1,e.videos.at(-1).play(),e.userData.textureLoaded=!0})}}handleEffectPlane(e,t,i){var s;const a="passIndex"in i?this.getPassPlane(e,i.passIndex):e.getPlane();if(!a)return!1;let r=this.getRenderTargets()[t-1],n=null==(s=this.curtain)?void 0:s.planes.find(t=>"PingPongPlane"===t.type&&t.userData.id===e.local.id),o=e.compiledFragmentShaders[i.passIndex??0];if(n&&(null==o?void 0:o.includes("uPingPongTexture"))&&O(a,"uPingPongTexture",n.getTexture()),r?O(a,"uTexture",r.getTexture()):O(a,"uTexture"),null==o?void 0:o.includes("uBgTexture")){let e=this.getRenderTargets()[t-(1+i.passIndex)];e&&O(a,"uBgTexture",e.getTexture())}i.needsPreviousFrame&&O(a,"uPreviousFrameTexture",this.createPreviousFrameTarget(e,i,t)),this.handleMediaTextures(a,e,i)}handleModelPlane(e,t){var i;const s=e.getPlane();let a=this.getRenderTargets()[t-1];const r=this.layers.filter(e=>!e.parentLayer);let n=r[r.indexOf(e)-1];s.textures.forEach(e=>{}),s.textures=[],e.local.renderTarget?s.addTexture(e.local.renderTarget.getTexture()):a?O(s,"uTexture",a.getTexture()):O(s,"uTexture"),(null==(i=null==n?void 0:n.local)?void 0:i.lastTarget)?O(s,"uBgTexture",n.local.lastTarget.getTexture()):O(s,"uBgTexture")}createPreviousFrameTarget(e,t,i){const s=t.passIndex??t.index??0,a=t.downSample||1,n=this.curtain.canvas.width*a,o=this.curtain.canvas.height*a;return e.local.previousFrameTargets||(e.local.previousFrameTargets={}),e.local.previousFrameInputTargets||(e.local.previousFrameInputTargets={}),e.local.previousFrameTargets[s]||(e.local.previousFrameTargets[s]=new r.RenderTarget(this.curtain,{depth:!1,clear:!1,maxWidth:n,maxHeight:o}),e.local.previousFrameTargets[s].userData.isPingPong=!0,e.local.previousFrameTargets[s].userData.isPreviousFrame=!0),"target"===t.needsPreviousFrame&&void 0!==i&&(e.local.previousFrameInputTargets[s]=this.getRenderTargets()[i-(1+t.passIndex)]),e.local.previousFrameTargets[s].getTexture()}handleFlattenedPlane(e,t){var i;const s=e.getPlane();if(!s)return;let a=this.getRenderTargets()[t-1];a&&O(s,"uBgTexture",a.getTexture()),(null==(i=e.data)?void 0:i.textures)&&e.data.textures.forEac
1h(t=>{var i,a;if("canvas"===t.type)e.local.canvasTextures&&e.local.canvasTextures[t.sublayerIndex]&&s.addTexture(e.local.canvasTextures[t.sublayerIndex]);else if("image"===t.type){if(e.local.sourceTextures&&e.local.sourceTextures[t.sublayerIndex]){const i=e.local.sourceTextures[t.sublayerIndex];s.textures.some(e=>e._samplerName===t.sampler)||s.addTexture(i)}}else if("video"===t.type){const a=e.sublayers.find(e=>e.sublayerIndex===t.sublayerIndex),r=(null==(i=e.local.videoElements)?void 0:i[t.sublayerIndex])||((null==a?void 0:a.src)?this.preloadVideo(a.src):null);r&&s.loadVideo(r,{premultipliedAlpha:!0,sampler:t.sampler},()=>{const e=s.videos.at(-1);e.loop=!(null==a?void 0:a.hasOwnProperty("loop"))||a.loop,e.playbackRate=(null==a?void 0:a.playbackRate)||1,e.play()})}else if("media"===t.type){const e=t.src;e&&this.preloadImage(e,t.sampler,e=>{if(e){s.textures.some(e=>e._samplerName===t.sampler)||s.addTexture(e)}},!1)}else if("modelRT"===t.type){const i=null==(a=e.local.modelTextures)?void 0:a[t.sublayerIndex];i&&!s.textures.some(e=>e._samplerName===t.sampler)&&s.addTexture(i)}})}handleElementPlane(e,t){const i=e.getPlanes().find(e=>!e.userData.isComposite);if(!i)return!1;const s=e.getChildEffectItems(),a=this.layers.filter(e=>!e.parentLayer);let r,n=this.getRenderTargets()[t-1],o=e.maskDepthLayer||1,l=a[a.indexOf(e)-(1+o)];if(e.mask&&l&&(r=l.local.lastTarget),e.isGpuElement)return"image"===e.layerType&&(i.textures.some(e=>"uSourceImage"===e._samplerName)||e.local.sourceTexture&&(i.addTexture(e.local.sourceTexture),e.local.imageReady=!0)),void(0===s.length&&n&&(O(i,"uBgTexture",n.getTexture()),r&&e.mask&&O(i,"uPreviousLayerTexture",r.getTexture())));if(s.length||(i.textures.length=0),n&&s.length?O(i,"uTexture",n.getTexture()):i&&e.preloadedCanvasTexture&&i.addTexture(e.preloadedCanvasTexture),n){if(s.length){let e=s.reduce((e,t)=>e+t.getPlanes().length,0);n=this.getRenderTargets()[t-(1+e)]}n&&(O(i,"uBgTexture",n.getTexture()),r&&e.mask&&O(i,"uPreviousLayerTexture",r.getTexture()))}}handleCompositePlane(e,t){const i=e.getPlanes().find(e=>e.userData.isComposite);if(!i)return;e.getChildEffectItems();const s=this.layers.filter(e=>!e.parentLayer);let a,r=e.maskDepthLayer||1,n=s[s.indexOf(e)-(1+r)];e.mask&&n&&(a=n.local.lastTarget);const o=this.getRenderTargets()[t-1];o&&O(i,"uTexture",o.getTexture());const l=this.getPlanes().filter(e=>e.visible).sort((e,t)=>e.renderOrder-t.renderOrder).findIndex(t=>t.userData.id===e.local.id&&!t.userData.isComposite),u=l>0?l-1:-1,h=u>=0?this.getRenderTargets()[u]:null;h&&(O(i,"uBgTexture",h.getTexture()),a&&e.mask&&O(i,"uPreviousLayerTexture",a.getTexture()))}handleChildEffectPlane(e,t,i){var s,a,r,n,o,l;const u="passIndex"in i?this.getPassPlane(e,i.passIndex):e.getPlane(),h=e.getParent();if(!u||!h)return;let c=this.getRenderTargets()[t-1],d=null==(s=this.curtain)?void 0:s.planes.find(t=>"PingPongPlane"===t.type&&t.userData.id===e.local.id),f=e.compiledFragmentShaders[i.passIndex??0],m=h.effects.filter(e=>{if(this.layers.find(t=>t.parentLayer===e))return this.layers.find(t=>t.parentLayer===e)}),p=m.indexOf(e.parentLayer),g=m.at(-1)===m[p],v=i.passIndex===i.length;const x=h.isGpuElement||h.isFlattened;if(d&&(null==f?void 0:f.includes("uPingPongTexture"))&&O(u,"uPingPongTexture",d.getTexture()),null==f?void 0:f.includes("uBgTexture"))if(p&&i.length>1){let e=this.getRenderTargets()[t-(1+i.length)];e&&O(u,"uBgTexture",e.getTexture())}else if(x){const e=h.getPlanes().find(e=>!e.userData.isComposite);O(u,"uBgTexture",null==(n=null==e?void 0:e.target)?void 0:n.getTexture())}else(null==(r=null==(a=h.preloadedCanvasTexture)?void 0:a.userData)?void 0:r.used)?u.loadCanvas(h.local.canvas,{sampler:"uBgTexture",premultiplyAlpha:!0},e=>{e.shouldUpdate=h.preloadedCanvasTexture.shouldUpdate}):h.preloadedCanvasTexture&&(h.preloadedCanvasTexture._samplerName="uBgTexture",u.addTexture(h.preloadedCanvasTexture));if(c&&(p||i.passIndex)){if(e.isMask&&(!i.length||g&&v))if(!x&&h.preloadedCanvasTexture)u.addTexture(h.preloadedCanvasTexture);else{const e=h.getPlanes().find(e=>!e.userData.isComposite);O(u,"uMaskTexture",null==(o=null==e?void 0:e.target)?void 0:o.getTexture())}O(u,"uTexture",c.getTexture())}else if(e.isMask)g&&v&&!x?u.addTexture(h.preloadedCanvasTexture):c?O(u,"uTexture",c.getTexture()):O(u,"uTexture"),c=this.getRenderTargets()[t-2],c&&O(u,"uTexture",c.getTexture());else if(null==f?void 0:f.includes("uTexture"))if(x){const e=h.getPlanes().find(e=>!e.userData.isComposite);O(u,"uTexture",null==(l=null==e?void 0:e.target)?void 0:l.getTexture())}else h.preloadedCanvasTexture?(u.addTexture(h.preloadedCanvasTexture),h.preloadedCanvasTexture&&(h.preloadedCanvasTexture.userData.used=!0)):O(u,"uTexture",c.getTexture());i.needsPreviousFrame&&O(u,"uPreviousFrameTexture",this.createPreviousFrameTarget(e,i,t)),"custom"===e.type&&O(u,"uCustomTexture",this.getRenderTargets()[t]),this.handleMediaTextures(u,e,i)}
1createPlanes(){this.getOrderedItems().forEach(e=>{e.getPlanes().length||(e.isFlattened?this.createFlattenedPlane(e):e.isElement?this.createElementPlane(e):e.isModel?this.createModelPlane(e):this.createEffectPlanes(e))}),this.calculateRenderOrders()}calculateRenderOrders(){let e=-9999;this.layers.filter(e=>!e.parentLayer).forEach(t=>{var i,s,a;if(t.isBackground)return void(null==(i=t.getPlane())||i.setRenderOrder(e));const r=t.getPlanes().filter(e=>!e.userData.isComposite),n=t.isGpuElement||t.isFlattened&&(null==(s=t.hasRemainingEffects)?void 0:s.call(t));n&&r.forEach(t=>t.setRenderOrder(e++)),(null==(a=t.effects)?void 0:a.length)&&t.getChildEffectItems().forEach(t=>{t.getPlanes().forEach(t=>t.setRenderOrder(e++))}),n||r.forEach(t=>t.setRenderOrder(e++));const o=t.getPlanes().find(e=>e.userData.isComposite);o&&o.setRenderOrder(e++)});const t=this.getPlanes().filter(e=>e.visible).sort((e,t)=>e.renderOrder-t.renderOrder).at(-1);if(null==t?void 0:t.target){const e=t.target;t.setRenderTarget(null),e.remove()}}createModelPlane(e){const t=this.createPlane(e);t&&t.onReady(()=>{t.userData.isReady=!0,t.userData.createdAt=performance.now();let i=e.userDownsample||1,s=this.curtain.canvas.width*i,a=this.curtain.canvas.height*i;e.local.renderTarget||(e.local.renderTarget=new r.RenderTarget(this.curtain,{depth:!0,maxWidth:s,maxHeight:a,texturesOptions:{sampler:"uTexture",premultiplyAlpha:!0}}),e.local.rendererLoaded||e.loadRenderer())}).onRender(()=>{this.setModelPlaneUniforms(t,e),this.curtain.gl&&e.renderModel()})}createEffectPlanes(e){const t=e.data;t.passes&&t.passes.length?(this.createEffectPlane(e,{index:0,downSample:t.downSample,length:t.passes.length+1,needsPreviousFrame:t.needsPreviousFrame}),t.passes.forEach((i,s)=>{this.createEffectPlane(e,{index:s+1,length:t.passes.length+1,downSample:i.downSample,needsPreviousFrame:i.needsPreviousFrame,[i.prop]:i.value})}),e.usesPingPong&&this.createPingPongPlane(e,t.passes)):(this.createEffectPlane(e),e.usesPingPong&&this.createPingPongPlane(e))}createTextures(){const e=this.getPlanes().sort((e,t)=>e.renderOrder-t.renderOrder),t=e.length;for(let i=0;i<t;i++){const s=e[i];let a=this.layers.find(e=>e.local.id===s.userData.id);i<t-1&&this.assignRenderTargetToPlane(e,i,a,s),this.handleTextures(a,i,s.userData),a.local.lastTarget=s.target}}resizeRenderTarget(e,t,i){var s,a,r;const n=(null==(s=e._size)?void 0:s.width)||0,o=(null==(a=e._size)?void 0:a.height)||0;if(Math.abs(n-t)<=1&&Math.abs(o-i)<=1)return;if(e._size={width:t,height:i},e._maxSize={width:t,height:i},e._minSize={width:t,height:i},!e._frameBuffer)return;const l=null==(r=e.textures)?void 0:r[0];if(l&&!l._copiedFrom){l._size={width:t,height:i};const s=this.curtain.gl;s.bindTexture(s.TEXTURE_2D,l._sampler.texture),s.texImage2D(s.TEXTURE_2D,0,l._globalParameters.internalFormat,t,i,0,l._globalParameters.format,l._globalParameters.type,null),this.curtain.renderer.bindFrameBuffer(e,!0),e._depth&&e._depthBuffer&&(s.bindRenderbuffer(s.RENDERBUFFER,e._depthBuffer),s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_COMPONENT16,t,i),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.RENDERBUFFER,e._depthBuffer)),this.curtain.renderer.bindFrameBuffer(null)}}ensureRenderTargetInitialized(e,t,i){e&&(t&&i&&this.resizeRenderTarget(e,t,i),e._frameBuffer||(this.curtain.renderer.bindFrameBuffer(e,!0),this.curtain.renderer.bindFrameBuffer(null)))}blitRenderTarget(e,t){var i,s;const a=(null==(i=e._size)?void 0:i.width)||this.curtain.canvas.width,r=(null==(s=e._size)?void 0:s.height)||this.curtain.canvas.height;if(this.ensureRenderTargetInitialized(e,a,r),this.ensureRenderTargetInitialized(t,a,r),!(null==e?void 0:e._frameBuffer)||!(null==t?void 0:t._frameBuffer))return;const n=this.curtain.gl;n.bindFramebuffer(n.READ_FRAMEBUFFER,e._frameBuffer),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,t._frameBuffer),n.blitFramebuffer(0,0,a,r,0,0,a,r,n.COLOR_BUFFER_BIT,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)}assignRenderTargetToPlane(e,t,i,s){let a=this.getTextureParams(e,t,i),n=this.getRenderTargets()[t]||new r.RenderTarget(this.curtain,a);n.userData.id=s.userData.id,s&&s.setRenderTarget(n)}handleTextures(e,t,i){i.isComposite?this.handleCompositePlane(e,t):e.isFlattened?this.handleFlattenedPlane(e,t):e.isElement?this.handleElementPlane(e,t):e.isModel?this.handleModelPlane(e,t):e.parentLayer?this.handleChildEffectPlane(e,t,i):this.handleEffectPlane(e,t,i)}handleItemPlanes(e){this.createPlanes(),this.createTextures(),this.checkIfReady(e)}checkIfReady(e){const t=()=>{var i;let s=!1;const a=null==(i=this.curtain)?void 0:i.planes;if(a){for(let e=0;e<a.length;e++)if(!a[e].userData.isReady){s=!0;break}s?(this.renderFrame(),requestAnimationFrame(t)):e()}};t()}setModelPlaneUniforms(e,t){var i,s;e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height,t.local.currentFrameMouseValues||(t.local.currentFrameMouseValues=this.calculateItemMouseValues(t));const a=t.local.currentFrameMouseValues;a&&!t.local.mouse&&(t.local.mouse={x:.5,y:.5}),a&&(t.local.mouse.x=a.x,t.local.mouse.y=a.y),e.uniforms.opacity&&(e.uniforms.opacity.value=t.local.modelLoaded?(null==(s=null==(i=t.local)?void 0:i.stateEffe
1ctProps)?void 0:s.opacity)??t.opacity:0)}setInitialEffectPlaneUniforms(e,t,i,s){var a;if(!e.userData.initialUniformsSet||!e.userData.isReady){for(let i in e.uniforms)(null==(a=t.states)?void 0:a.scroll.some(e=>e.prop===i))||(t.local.bpProps&&i in t.local.bpProps?U(t.local.bpProps[i],e.uniforms[i],i):i in t&&U(t[i],e.uniforms[i],i));i&&s&&s.index<s.length-1&&e.uniforms.isMask&&(e.uniforms.isMask.value=0),i&&t.isMask&&!t.mouseMomentum&&(t.mouseMomentum=i.mouseMomentum),e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height,e.userData.initialUniformsSet=!0}}handleStateEffects(){this.layers.forEach(e=>{e.updateStateEffects()})}setInitialFlattenedPlaneUniforms(e,t){var i,s;e.uniforms.resolution&&(e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height),e.uniforms.artboardResolution&&(e.uniforms.artboardResolution.value.x=this.canvasWidth,e.uniforms.artboardResolution.value.y=this.canvasHeight);for(let a in e.uniforms)(null==(i=t.states)?void 0:i.scroll.some(e=>e.prop===a))||(null==(s=t.states)?void 0:s.appear.some(e=>e.prop===a&&!e.complete))||(t.local.bpProps&&a in t.local.bpProps?U(t.local.bpProps[a],e.uniforms[a],a):a in t&&U(t[a],e.uniforms[a],a))}setFlattenedPlaneUniforms(e,t){var i,s,a,r,n;if(t.local.modelInstances&&Object.entries(t.local.modelInstances).forEach(([e,i])=>{if(!i||!i.local)return;if(t.local.stateEffectProps){const s=`L${e}_`;i.local.stateEffectProps||(i.local.stateEffectProps={});for(const e in t.local.stateEffectProps)e.startsWith(s)&&(i.local.stateEffectProps[e.slice(s.length)]=t.local.stateEffectProps[e])}const s=this.calculateItemMouseValues(i);s&&!i.local.mouse&&(i.local.mouse={x:.5,y:.5}),s&&(i.local.mouse.x=s.x,i.local.mouse.y=s.y),i.renderModel()}),(null==(i=t.local.stateEffectProps)?void 0:i.playbackRate)&&e.videos.at(-1)&&(e.videos.at(-1).playbackRate=t.local.stateEffectProps.playbackRate),e.uniforms.mousePos&&this.mouse.movedInView){t.local.currentFrameMouseValues||(t.local.currentFrameMouseValues=this.calculateItemMouseValues(t));const i=t.local.currentFrameMouseValues;i&&(e.uniforms.mousePos.value.x=i.x,e.uniforms.mousePos.value.y=i.y)}if((null==(a=null==(s=t.data)?void 0:s.timeUniforms)?void 0:a.length)&&t.data.timeUniforms.forEac
1h(({key:i,speed:s,animating:a})=>{var r;if(e.uniforms[i]&&!1!==a){const a=i.replace(/_time$/,"_speed"),n=(null==(r=t.local.stateEffectProps)?void 0:r[a])??t[a]??s??1;e.uniforms[i].value+=60*n/this.fps}}),null==(n=null==(r=t.data)?void 0:r.mouseUniforms)?void 0:n.length){const i=this.bbox.width/2,s=this.bbox.height/2,a=this.mouse.pos.x,r=this.mouse.pos.y;t.local.mouseStates||(t.local.mouseStates={}),t.data.mouseUniforms.forEach(({key:n,momentum:o,spring:l,trackAxes:u})=>{if(!e.uniforms[n])return;const h=u||"xy",c="x"===h||"xy"===h,d="y"===h||"xy"===h,f=l||0;if(!t.local.mouseStates[n])return t.local.mouseStates[n]={x:c?a/i:.5,y:d?1-r/s:.5,vx:0,vy:0},e.uniforms[n].value.x=t.local.mouseStates[n].x,void(e.uniforms[n].value.y=t.local.mouseStates[n].y);const m=t.local.mouseStates[n],p=m.x*i,g=(1-m.y)*s;if(f>0){if(c){const e=R(p,a,m.vx,o,f);m.x=e.value/i,m.vx=e.velocity}else m.x=.5;if(d){const e=R(g,r,m.vy,o,f);m.y=1-e.value/s,m.vy=e.velocity}else m.y=.5}else m.x=c?M(a,p,2*o)/i:.5,m.y=d?1-M(r,g,2*o)/s:.5;e.uniforms[n].value.x=m.x,e.uniforms[n].value.y=m.y})}}setInitialElementPlaneUniforms(e,t){var i;e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height,e.uniforms.artboardResolution&&(e.uniforms.artboardResolution.value.x=this.canvasWidth,e.uniforms.artboardResolution.value.y=this.canvasHeight);for(let s in e.uniforms)t.local.bpProps&&s in t.local.bpProps?e.uniforms[s].value=t.local.bpProps[s]:s in t&&(e.uniforms[s].value=(null==(i=t.local.stateEffectProps)?void 0:i[s])??t[s])}setElementPlaneUniforms(e,t){if(e.uniforms.resolution&&(e.uniforms.resolution.value.x=this.curtain.canvas.width,e.uniforms.resolution.value.y=this.curtain.canvas.height),e.uniforms.artboardResolution&&(e.uniforms.artboardResolution.value.x=this.canvasWidth,e.uniforms.artboardResolution.value.y=this.canvasHeight),e.uniforms.mousePos){t.local.currentFrameMouseValues||(t.local.currentFrameMouseValues=this.calculateItemMouseValues(t));const i=t.local.currentFrameMouseValues;!this.mouse.movedInView||e.uniforms.mousePos.value.x===i.x&&e.uniforms.mousePos.value.y===i.y||(e.uniforms.mousePos.value.x=i.x,e.uniforms.mousePos.value.y=i.y)}}calculateItemMouseValues(e){if(!this.mouse.movedInView)return null;const t=this.bbox.width/2,i=this.bbox.height/2,s=this.getMousePosWithMomentum(e,t,i);return this.local.mouseValuePool||(this.local.mouseValuePool=new r.Vec2(.5)),this.local.mouseValuePool.x=s.x,this.local.mouseValuePool.y=s.y,this.local.mouseValuePool}getMousePosWithMomentum(e,t,i){let s=this.mouse.pos.x,a=this.mouse.pos.y,r=e.trackAxes||"xy",n="x"===r||"xy"===r,o="y"===r||"xy"===r;const l=e.mouseMomentum||0,u=e.mouseSpring||0;let h=s/t,c=1-a/i;if(!l&&!u)return{x:n?h:.5,y:o?c:.5};if(!e.local.lastMousePos)return e.local.lastMousePos={x:n?h:.5,y:o?c:.5},e.local.lastMousePos;const d=e.local.lastMousePos.x*t,f=(1-e.local.lastMousePos.y)*i;if(u>0){if(e.local.mouseVelocity||(e.local.mouseVelocity={x:0,y:0}),n){const i=R(d,s,e.local.mouseVelocity.x,l,u);s=i.value,e.local.mouseVelocity.x=i.velocity,e.local.lastMousePos.x=s/t}else e.local.lastMousePos.x=.5;if(o){const t=R(f,a,e.local.mouseVelocity.y,l,u);a=t.value,e.local.mouseVelocity.y=t.velocity,e.local.lastMousePos.y=1-a/i}else e.local.lastMousePos.y=.5;return e.local.lastMousePos}const m=Math.abs(s-d),p=Math.abs(a-f);return m<y&&p<y||(n?(s=M(s,d,2*l),e.local.lastMousePos.x=s/t):e.local.lastMousePos.x=.5,o?(a=M(a,f,2*l),e.local.lastMousePos.y=1-a/i):e.local.lastMousePos.y=.5),e.local.lastMousePos}setEffectPlaneUniforms(e,t){var i,s,a,r;let n=(null==(i=t.local.stateEffectProps)?void 0:i.speed)??t.speed??1;if(t.animating&&e.uniforms.time&&(e.uniforms.time.value+=60*n/this.fps),(null==(s=t.local.stateEffectProps)?void 0:s.playbackRate)&&e.videos.at(-1)&&(e.videos.at(-1).playbackRate=t.local.stateEffectProps.playbackRate),I()&&(null==(r=null==(a=this.interactivity)?void 0:a.mouse)?void 0:r.disableMobile))return!1;if(!this.mouse.movedInView)return;t.local.currentFrameMouseValues||(t.local.currentFrameMouseValues=this.calculateItemMouseValues(t));const o=t.local.currentFrameMouseValues;o&&(e.uniforms.previousMousePos&&(this.mouse.ticks>16?(e.uniforms.previousMousePos.value.x=e.uniforms.mousePos.value.x,e.uniforms.previousMousePos.value.y=e.uniforms.mousePos.value.y):(e.uniforms.previousMousePos.value.x=o.x,e.uniforms.previousMousePos.value.y=o.y)),e.uniforms.mousePos&&!o.equals(e.uniforms.mousePos.value)&&(e.uniforms.mousePos.value.x=o.x,e.uniforms.mousePos.value.y=o.y),this.mouse.ticks++)}getOrderedItems(){let e=[];return this.layers.filter(e=>!e.parentLayer).forEach(t=>{t.effects&&t.effects.length&&e.push(...t.getChildEffectItems()),e.push(t)}),e}
1getTextureParams(e,t,i){var s;const a=e[t];let r=1;a.userData.downSample&&(r="number"==typeof a.userData.downSample?a.userData.downSample:.5);return{maxWidth:this.curtain.canvas.width*r,maxHeight:this.curtain.canvas.height*r,depth:null==(s=null==i?void 0:i.data)?void 0:s.depth}}handlePlaneCreation(){this.initialized=!0,this.initializing=!1,this.rendering||this.renderNFrames(2),this.waitForAssetsAndDisablePlanes(),C()}waitForAssetsAndDisablePlanes(){this.local.preloadedImages&&Object.values(this.local.preloadedImages).some(e=>e.loading)||this.layers.some(e=>e.isModel&&!e.local.modelLoaded||"image"===e.layerType&&!e.local.imageReady||"text"===e.layerType&&!e.local.loaded||e.isFlattened&&(!e.areTextAssetsReady()||!e.areImageAssetsReady()||!e.areModelAssetsReady()))?setTimeout(()=>this.waitForAssetsAndDisablePlanes(),32):(this.layers.filter(e=>e.preloadedCanvasTexture).forEach(e=>{e.preloadedCanvasTexture.shouldUpdate=e.preloadedCanvasTexture.userData.hasStateEffects||!1}),this.layers.filter(e=>e.isFlattened).forEach(e=>{Object.values(e.local.canvasTextures||{}).forEach(e=>{e&&(e.shouldUpdate=!1)})}),this.curtain&&this.curtain.planes.forEach(e=>{e.videos.forEach(e=>{e.currentTime=0})}),this.renderFrame(),setTimeout(()=>this.disablePlanes(),16))}disablePlanes(){const e=this.getSplitOrderedItems();e.dynamic.length||e.static.pop();for(const t of e.static)t.getPlanes().forEach(e=>{e._canDraw=!1})}}function ce(e,t,i){e.addEventListener(t,i,{passive:!0})}function de(e,t,i){e.removeEventListener(t,i)}function fe(){ce(window,"scroll",re),I()?ce(window,"touchmove",le):ce(window,"mousemove",le),ce(window,"routeChange",D),ce(document,"mouseleave",oe),u=function(e,t){let i;return function(...s){clearTimeout(i),i=setTimeout(()=>{e.apply(this,s)},t)}}(ee,16),I()?ce(window,"orientationchange",u):ce(window,"resize",u),ce(document,o,J),h=!0}function me(){de(window,"mousemove",le),de(window,"touchmove",le),de(window,"scroll",re),de(window,"routeChange",D),de(document,"mouseleave",oe),u&&(de(window,"resize",u),de(window,"orientationchange",u)),de(document,o,J),h=!1}function pe(e){let t=e.projectId?e.projectId.split("?")[0]:null,i=e.projectId?e.projectId.split("?")[1]:null;return new Promise((s,a)=>{(function(e,t,i,s,a){let r;if(i){r=i;const e=document.getElementById(i);if(e)try{let t=JSON.parse(e.innerText);return(null==t?void 0:t.options)&&((null==t?void 0:t.layers)||(null==t?void 0:t.history))?Promise.resolve(t):(s(new Error(`Did not find valid JSON inside ${i}`)),Promise.reject())}catch(n){return s(new Error(`Error parsing JSON from ${i}: ${n.message}`)),Promise.reject()}}else{let i="https://storage.googleapis.com/unicornstudio-production";a||(null==t?void 0:t.includes("production=true"))?(i="https://assets.unicorn.studio",t=`v=${Date.now()}`):(null==t?void 0:t.includes("update="))||(t=`v=${Date.now()}`),r=`${i}/embeds/${e}${t?"?"+t:""}`}return fetch(r).then(e=>e.json()).then(e=>e).catch(e=>{})})(t,i,e.filePath,a,e.production).then(i=>{i&&(i.layers||i.history)&&i.options||a(new Error(`Error fetching data for project id '${e.projectId}'`));const r=i.options||{},n=(o=e.element,("object"==typeof HTMLElement?o instanceof HTMLElement:o&&"object"==typeof o&&null!==o&&1===o.nodeType&&"string"==typeof o.nodeName)?e.element:document.getElementById(e.elementId));var o;if(!n)return void a(new Error(`Couldn't find an element with id '${e.elementId}' on the page.`));const l=P();n.setAttribute("data-scene-id",l);let u=e.scale||r.scale||1,c=e.dpi||r.dpi||Math.min(1.5,window.devicePixelRatio);const d=function(e,t,i,s){const a=s?{...i,modules:s}:i,r=[];return e.forEach(e=>{switch(e.layerType){case"text":r.push(new Z(e,t,a).unpackage());break;case"image":r.push(new K(e,t,a).unpackage());break;case"model":r.push(new Q(e,t,a).unpackage());break;case"shape":r.push(new G(e,t,a).unpackage());break;case"effect":r.push(new X(e,t,a).unpackage());break;case"flattened":{const i=new $(e,t,a).unpackage();
1r.push(i),i.getChildEffectItems().forEach(e=>{r.push(e)});break}}}),r}(i.layers||i.history,l,function(e,t,i){return{canvasWidth:e.offsetWidth,canvasHeight:e.offsetHeight,scale:t,dpi:i,element:e}}(n,u,c),i.modules),f=new he({id:l,fps:e.fps||r.fps||60,dpi:c,name:r.name,projectId:t||e.filePath.split(".")[0],renderingScale:u,element:n,lazyLoad:e.lazyLoad,fixed:e.fixed,width:e.width,height:e.height});f.curtain.canvas.innerText=e.altText||"",f.curtain.canvas.setAttribute("aria-label",e.ariaLabel||"Unicorn Studio Scene"),f.curtain.canvas.setAttribute("role","img");let m=r[T("ZnJlZVBsYW4=")];(m||r[T("aW5jbHVkZUxvZ28=")])&&function(e,t){const i=document.createElement("a");i.href="https://unicorn.studio?utm_source=public-url",i.style="position: absolute; display: flex; bottom: 30px; left: 0; width: 190px; margin: 0 auto; right: 0rem; padding: 10px; border-radius: 6px; background-color: rgba(255, 255, 255, 1); box-shadow: 0 3px 9px 0 rgba(0, 0, 0, .2); z-index: 99999999; box-sizing: border-box;",i.target="_blank";const s=document.createElement("img");s.src=T("aHR0cHM6Ly9hc3NldHMudW5pY29ybi5zdHVkaW8vbWVkaWEvbWFkZV9pbl91c19zbWFsbF93ZWIuc3Zn"),s.alt=T("TWFkZSB3aXRoIHVuaWNvcm4uc3R1ZGlv"),s.style="width: 170px; height: auto;",i.appendChild(s),t.appendChild(i)}(0,n),ue.push(f),f.layers=d,f.preloadTextures(),f.setInteractiveParams(e,r),f.isInView=f.isFixed||te(f.element,f.bbox,50),f.lazyLoad&&!f.isInView||f.initializePlanes(),h||fe(),s(f)}).catch(e=>{a(e)})})}e.addScene=pe,e.destroy=function(){ue.forEach(e=>{e.destroy()}),ue.length=0,me()},e.init=function(){return function(){try{return!!document.createElement("canvas").getContext("webgl2")}catch(e){return!1}}()?new Promise((e,t)=>{const i=[...document.querySelectorAll("[data-us-project], [data-us-project-src]")],s="undefined"!=typeof window&&window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,0);i.filter(e=>!e.getAttribute("data-us-initialized")).forEach((t,a)=>{t.setAttribute("data-us-initialized",!0),s(()=>{const s=S(t,"data-us-project"),r=S(t,"data-us-project-src"),n=S(t,"data-us-disablemobile"),o=S(t,"data-us-disablemouse");pe({projectId:r?null:s,filePath:r,element:t,dpi:+S(t,"data-us-dpi"),scale:+S(t,"data-us-scale"),production:S(t,"data-us-production"),fps:+S(t,"data-us-fps"),lazyLoad:S(t,"data-us-lazyload"),altText:S(t,"data-us-alttext"),ariaLabel:S(t,"data-us-arialabel"),fixed:S(t,"data-us-fixed"),interactivity:n||o?{mouse:{disableMobile:n,disabled:o}}:null}).then(t=>{a===i.length-1&&e(ue)})})})}):Promise.resolve([])},e.scenes=ue,e.unbindEvents=me,e.version=_,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.