@playcanvas/web-components 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/pwc.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("playcanvas")):"function"==typeof define&&define.amd?define(["exports","playcanvas"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pd={},t.pc)}(this,(function(t,e){"use strict";class s extends HTMLElement{constructor(){super(),this.loadPromise=this.loadModule()}async loadModule(){const t=this.getAttribute("name"),s=this.getAttribute("glue"),i=this.getAttribute("wasm"),n=this.getAttribute("fallback");e.WasmModule.setConfig(t,{glueUrl:s,wasmUrl:i,fallbackUrl:n}),await new Promise((s=>{e.WasmModule.getInstance(t,(()=>s()))}))}getLoadPromise(){return this.loadPromise}}customElements.define("pc-module",s);class i extends HTMLElement{constructor(){super(),this._canvas=null,this._highResolution=!1,this.app=null,this._onWindowResize=this._onWindowResize.bind(this),this.appReadyPromise=new Promise((t=>{this.appReadyResolve=t}))}async connectedCallback(){const t=this.querySelectorAll(":scope > pc-module");await Promise.all(Array.from(t).map((t=>t.getLoadPromise()))),this._canvas=document.createElement("canvas"),this.appendChild(this._canvas),this.app=new e.Application(this._canvas,{graphicsDeviceOptions:{devicePixelRatio:this._highResolution?window.devicePixelRatio:1},keyboard:new e.Keyboard(window),mouse:new e.Mouse(this._canvas)}),this.app.setCanvasFillMode(e.FILLMODE_FILL_WINDOW),this.app.setCanvasResolution(e.RESOLUTION_AUTO);const s=this.querySelectorAll(":scope > pc-asset");Array.from(s).forEach((t=>{t.createAsset();const e=t.asset;e&&this.app.assets.add(e)}));const i=this.querySelectorAll(":scope > pc-material");Array.from(i).forEach((t=>{t.createMaterial()})),this.app.preload((()=>{this.app.start(),window.addEventListener("resize",this._onWindowResize),this.appReadyResolve(this.app)}))}disconnectedCallback(){this.app&&(this.app.destroy(),this.app=null),window.removeEventListener("resize",this._onWindowResize),this._canvas&&this.contains(this._canvas)&&(this.removeChild(this._canvas),this._canvas=null)}async getApplication(){return await this.appReadyPromise,this.app}_onWindowResize(){this.app&&this.app.resizeCanvas()}set highResolution(t){this._highResolution=t,this.app&&(this.app.graphicsDevice.maxPixelRatio=t?window.devicePixelRatio:1)}get highResolution(){return this._highResolution}static get observedAttributes(){return["high-resolution"]}attributeChangedCallback(t,e,s){if("high-resolution"===t)this.highResolution=this.hasAttribute(t)}}customElements.define("pc-app",i);const n=t=>{if(t.startsWith("#"))return(new e.Color).fromString(t);const s=t.split(",").map(Number);return new e.Color(s)},o=t=>{const s=t.split(",").map(Number);return new e.Vec2(s)},a=t=>{const s=t.split(",").map(Number);return new e.Vec3(s)},r=t=>{const s=t.split(",").map(Number);return new e.Vec4(s)};class h extends HTMLElement{constructor(){super(...arguments),this._enabled=!0,this._name="Untitled",this._position=new e.Vec3,this._rotation=new e.Vec3,this._scale=new e.Vec3(1,1,1),this._tags=[],this.entity=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);const s=await t.getApplication();this.entity=new e.Entity(this._name,s),this.parentElement&&"pc-entity"===this.parentElement.tagName.toLowerCase()&&this.parentElement.entity?this.parentElement.entity.addChild(this.entity):s.root.addChild(this.entity);const i=this.getAttribute("name"),n=this.getAttribute("position"),o=this.getAttribute("rotation"),r=this.getAttribute("scale"),h=this.getAttribute("tags");i&&(this.name=i),n&&(this.position=a(n)),o&&(this.rotation=a(o)),r&&(this.scale=a(r)),h&&(this.tags=h.split(",").map((t=>t.trim())))}disconnectedCallback(){this.entity&&(this.entity.destroy(),this.entity=null)}set enabled(t){this._enabled=t,this.entity&&(this.entity.enabled=t)}get enabled(){return this._enabled}set name(t){this._name=t,this.entity&&(this.entity.name=t)}get name(){return this._name}set position(t){this._position=t,this.entity&&this.entity.setLocalPosition(this._position)}get position(){return this._position}set rotation(t){this._rotation=t,this.entity&&this.entity.setLocalEulerAngles(this._rotation)}get rotation(){return this._rotation}set scale(t){this._scale=t,this.entity&&this.entity.setLocalScale(this._scale)}get scale(){return this._scale}set tags(t){this._tags=t,this.entity&&(this.entity.tags.clear(),this.entity.tags.add(this._tags))}get tags(){return this._tags}static get observedAttributes(){return["enabled","name","position","rotation","scale","tags"]}attributeChangedCallback(t,e,s){switch(t){case"enabled":this.enabled="false"!==s;break;case"name":this.name=s;break;case"position":this.position=a(s);break;case"rotation":this.rotation=a(s);break;case"scale":this.scale=a(s);break;case"tags":this.tags=s.split(",").map((t=>t.trim()))}}}customElements.define("pc-entity",h);const c=new Map([["bin","binary"],["css","css"],["frag","shader"],["glb","container"],["glsl","shader"],["html","html"],["jpg","texture"],["js","script"],["json","json"],["mp3","audio"],["mjs","script"],["ply","gsplat"],["png","texture"],["txt","text"],["vert","shader"],["webp","texture"]]);class l extends HTMLElement{constructor(){super(...arguments),this._preload=!1,this.asset=null}async connectedCallback(){}disconnectedCallback(){this.destroyAsset()}createAsset(){var t;const s=this.getAttribute("id")||"",i=this.getAttribute("src")||"";let n=this.getAttribute("type");if(!n){const e=i.split(".").pop();n=null!==(t=c.get(e||""))&&void 0!==t?t:null}n?(this.asset=new e.Asset(s,n,{url:i}),this.asset.preload=this.preload):console.warn(`Unsupported asset type: ${i}`)}destroyAsset(){this.asset&&(this.asset.unload(),this.asset=null)}set preload(t){this._preload=t,this.asset&&(this.asset.preload=t)}get preload(){return this._preload}static get(t){const e=document.querySelector(`pc-asset[id="${t}"]`);return null==e?void 0:e.asset}static get observedAttributes(){return["preload"]}attributeChangedCallback(t,e,s){"preload"===t&&(this.preload=this.hasAttribute("preload"))}}customElements.define("pc-asset",l);class p extends HTMLElement{constructor(t){super(),this._enabled=!0,this._component=null,this._componentName=t}getInitialComponentData(){return{}}async connectedCallback(){const t=this.closest("pc-app");t?(await t.getApplication(),this.addComponent()):console.error(`${this.tagName.toLowerCase()} should be a descendant of pc-app`)}addComponent(){const t=this.closest("pc-entity");t?t&&t.entity&&(this._component=t.entity.addComponent(this._componentName,this.getInitialComponentData())):console.error(`${this.tagName.toLowerCase()} should be a child of pc-entity`)}disconnectedCallback(){this.component&&this.component.entity&&(this._component.entity.removeComponent(this._componentName),this._component=null)}get component(){return this._component}set enabled(t){this._enabled=t,this.component&&(this.component.enabled=t)}get enabled(){return this._enabled}static get observedAttributes(){return["enabled"]}attributeChangedCallback(t,e,s){if("enabled"===t)this.enabled="false"!==s}}class u extends p{constructor(){super("audiolistener")}get component(){return super.component}}customElements.define("pc-listener",u);class d extends p{constructor(){super("camera"),this._clearColor=new e.Color(.75,.75,.75,1),this._clearColorBuffer=!0,this._clearDepthBuffer=!0,this._clearStencilBuffer=!1,this._cullFaces=!0,this._farClip=1e3,this._flipFaces=!1,this._fov=45,this._frustumCulling=!0,this._nearClip=.1,this._orthographic=!1,this._orthoHeight=10,this._priority=0,this._rect=new e.Vec4(0,0,1,1),this._scissorRect=new e.Vec4(0,0,1,1)}getInitialComponentData(){return{clearColor:this._clearColor,clearColorBuffer:this._clearColorBuffer,clearDepthBuffer:this._clearDepthBuffer,clearStencilBuffer:this._clearStencilBuffer,cullFaces:this._cullFaces,farClip:this._farClip,flipFaces:this._flipFaces,fov:this._fov,frustumCulling:this._frustumCulling,nearClip:this._nearClip,orthographic:this._orthographic,orthoHeight:this._orthoHeight,priority:this._priority,rect:this._rect,scissorRect:this._scissorRect}}get component(){return super.component}set clearColor(t){this._clearColor=t,this.component&&(this.component.clearColor=t)}get clearColor(){return this._clearColor}set clearColorBuffer(t){this._clearColorBuffer=t,this.component&&(this.component.clearColorBuffer=t)}get clearColorBuffer(){return this._clearColorBuffer}set clearDepthBuffer(t){this._clearDepthBuffer=t,this.component&&(this.component.clearDepthBuffer=t)}get clearDepthBuffer(){return this._clearDepthBuffer}set clearStencilBuffer(t){this._clearStencilBuffer=t,this.component&&(this.component.clearStencilBuffer=t)}get clearStencilBuffer(){return this._clearStencilBuffer}set cullFaces(t){this._cullFaces=t,this.component&&(this.component.cullFaces=t)}get cullFaces(){return this._cullFaces}set farClip(t){this._farClip=t,this.component&&(this.component.farClip=t)}get farClip(){return this._farClip}set flipFaces(t){this._flipFaces=t,this.component&&(this.component.flipFaces=t)}get flipFaces(){return this._flipFaces}set fov(t){this._fov=t,this.component&&(this.component.fov=t)}get fov(){return this._fov}set frustumCulling(t){this._frustumCulling=t,this.component&&(this.component.frustumCulling=t)}get frustumCulling(){return this._frustumCulling}set nearClip(t){this._nearClip=t,this.component&&(this.component.nearClip=t)}get nearClip(){return this._nearClip}set orthographic(t){this._orthographic=t,this.component&&(this.component.projection=t?e.PROJECTION_ORTHOGRAPHIC:e.PROJECTION_PERSPECTIVE)}get orthographic(){return this._orthographic}set orthoHeight(t){this._orthoHeight=t,this.component&&(this.component.orthoHeight=t)}get orthoHeight(){return this._orthoHeight}set priority(t){this._priority=t,this.component&&(this.component.priority=t)}get priority(){return this._priority}set rect(t){this._rect=t,this.component&&(this.component.rect=t)}get rect(){return this._rect}set scissorRect(t){this._scissorRect=t,this.component&&(this.component.scissorRect=t)}get scissorRect(){return this._scissorRect}static get observedAttributes(){return[...super.observedAttributes,"clear-color","clear-color-buffer","clear-depth-buffer","clear-stencil-buffer","cull-faces","far-clip","flip-faces","fov","frustum-culling","near-clip","orthographic","ortho-height","priority","rect","scissor-rect"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"clear-color":this.clearColor=n(s);break;case"clear-color-buffer":this.clearColorBuffer="false"!==s;break;case"clear-depth-buffer":this.clearDepthBuffer="false"!==s;break;case"clear-stencil-buffer":this.clearStencilBuffer="false"!==s;break;case"cull-faces":this.cullFaces="false"!==s;break;case"far-clip":this.farClip=parseFloat(s);break;case"flip-faces":this.flipFaces="true"!==s;break;case"fov":this.fov=parseFloat(s);break;case"frustum-culling":this.frustumCulling="false"!==s;break;case"near-clip":this.nearClip=parseFloat(s);break;case"orthographic":this.orthographic=this.hasAttribute("orthographic");break;case"ortho-height":this.orthoHeight=parseFloat(s);break;case"priority":this.priority=parseFloat(s);break;case"rect":this.rect=r(s);break;case"scissor-rect":this.scissorRect=r(s)}}}customElements.define("pc-camera",d);class m extends p{constructor(){super("collision"),this._axis=1,this._convexHull=!1,this._halfExtents=new e.Vec3(.5,.5,.5),this._height=2,this._radius=.5,this._type="box"}getInitialComponentData(){return{axis:this._axis,convexHull:this._convexHull,halfExtents:this._halfExtents,height:this._height,radius:this._radius,type:this._type}}get component(){return super.component}set axis(t){this._axis=t,this.component&&(this.component.axis=t)}get axis(){return this._axis}set convexHull(t){this._convexHull=t,this.component&&(this.component.convexHull=t)}get convexHull(){return this._convexHull}set halfExtents(t){this._halfExtents=t,this.component&&(this.component.halfExtents=t)}get halfExtents(){return this._halfExtents}set height(t){this._height=t,this.component&&(this.component.height=t)}get height(){return this._height}set radius(t){this._radius=t,this.component&&(this.component.radius=t)}get radius(){return this._radius}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"axis","convex-hull","half-extents","height","radius","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"axis":this.axis=parseInt(s,10);break;case"convex-hull":this.convexHull=this.hasAttribute("convex-hull");break;case"half-extents":this.halfExtents=a(s);break;case"height":this.height=parseFloat(s);break;case"radius":this.radius=parseFloat(s);break;case"type":this.type=s}}}customElements.define("pc-collision",m);class g extends p{constructor(){super("element"),this._anchor=new e.Vec4(.5,.5,.5,.5),this._asset="",this._autoWidth=!0,this._color=new e.Color(1,1,1,1),this._fontSize=32,this._lineHeight=32,this._pivot=new e.Vec2(.5,.5),this._text="",this._type="group",this._width=0,this._wrapLines=!1}async connectedCallback(){await super.connectedCallback(),this.component._text._material.useFog=!0}getInitialComponentData(){return{anchor:this._anchor,autoWidth:this._autoWidth,color:this._color,fontAsset:l.get(this._asset).id,fontSize:this._fontSize,lineHeight:this._lineHeight,pivot:this._pivot,type:this._type,text:this._text,width:this._width,wrapLines:this._wrapLines}}get component(){return super.component}set anchor(t){this._anchor=t,this.component&&(this.component.anchor=t)}get anchor(){return this._anchor}set asset(t){this._asset=t;const e=l.get(t);this.component&&e&&(this.component.fontAsset=e.id)}get asset(){return this._asset}set autoWidth(t){this._autoWidth=t,this.component&&(this.component.autoWidth=t)}get autoWidth(){return this._autoWidth}set color(t){this._color=t,this.component&&(this.component.color=t)}get color(){return this._color}set fontSize(t){this._fontSize=t,this.component&&(this.component.fontSize=t)}get fontSize(){return this._fontSize}set lineHeight(t){this._lineHeight=t,this.component&&(this.component.lineHeight=t)}get lineHeight(){return this._lineHeight}set pivot(t){this._pivot=t,this.component&&(this.component.pivot=t)}get pivot(){return this._pivot}set text(t){this._text=t,this.component&&(this.component.text=t)}get text(){return this._text}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}set width(t){this._width=t,this.component&&(this.component.width=t)}get width(){return this._width}set wrapLines(t){this._wrapLines=t,this.component&&(this.component.wrapLines=t)}get wrapLines(){return this._wrapLines}static get observedAttributes(){return[...super.observedAttributes,"anchor","asset","auto-width","color","font-size","line-height","pivot","text","type","width","wrap-lines"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"anchor":this.anchor=r(s);break;case"asset":this.asset=s;break;case"auto-width":this.autoWidth="false"!==s;break;case"color":this.color=n(s);break;case"font-size":this.fontSize=Number(s);break;case"line-height":this.lineHeight=Number(s);break;case"pivot":this.pivot=o(s);break;case"text":this.text=s;break;case"type":this.type=s;break;case"width":this.width=Number(s);break;case"wrap-lines":this.wrapLines=this.hasAttribute(t)}}}customElements.define("pc-element",g);class _ extends p{constructor(){super("gsplat"),this._asset=""}getInitialComponentData(){return{asset:l.get(this._asset)}}get component(){return super.component}set asset(t){this._asset=t;const e=l.get(t);this.component&&e&&(this.component.asset=e)}get asset(){return this._asset}static get observedAttributes(){return[...super.observedAttributes,"asset"]}attributeChangedCallback(t,e,s){if(super.attributeChangedCallback(t,e,s),"asset"===t)this.asset=s}}customElements.define("pc-splat",_);class b extends p{constructor(){super("light"),this._castShadows=!1,this._color=new e.Color(1,1,1),this._innerConeAngle=40,this._intensity=1,this._normalOffsetBias=.05,this._outerConeAngle=45,this._range=10,this._shadowBias=.2,this._shadowDistance=16,this._type="directional"}getInitialComponentData(){return{castShadows:this._castShadows,color:this._color,innerConeAngle:this._innerConeAngle,intensity:this._intensity,normalOffsetBias:this._normalOffsetBias,outerConeAngle:this._outerConeAngle,range:this._range,shadowBias:this._shadowBias,shadowDistance:this._shadowDistance,type:this._type}}get component(){return super.component}set castShadows(t){this._castShadows=t,this.component&&(this.component.castShadows=t)}get castShadows(){return this._castShadows}set color(t){this._color=t,this.component&&(this.component.color=t)}get color(){return this._color}set innerConeAngle(t){this._innerConeAngle=t,this.component&&(this.component.innerConeAngle=t)}get innerConeAngle(){return this._innerConeAngle}set intensity(t){this._intensity=t,this.component&&(this.component.intensity=t)}get intensity(){return this._intensity}set normalOffsetBias(t){this._normalOffsetBias=t,this.component&&(this.component.normalOffsetBias=t)}get normalOffsetBias(){return this._normalOffsetBias}set outerConeAngle(t){this._outerConeAngle=t,this.component&&(this.component.outerConeAngle=t)}get outerConeAngle(){return this._outerConeAngle}set range(t){this._range=t,this.component&&(this.component.range=t)}get range(){return this._range}set shadowBias(t){this._shadowBias=t,this.component&&(this.component.shadowBias=t)}get shadowBias(){return this._shadowBias}set shadowDistance(t){this._shadowDistance=t,this.component&&(this.component.shadowDistance=t)}get shadowDistance(){return this._shadowDistance}set type(t){["directional","omni","spot"].includes(t)?(this._type=t,this.component&&(this.component.type=t)):console.warn(`Invalid light type '${t}', using default type '${this._type}'.`)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"color","cast-shadows","intensity","inner-cone-angle","normal-offset-bias","outer-cone-angle","range","shadow-bias","shadow-distance","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"color":this.color=n(s);break;case"cast-shadows":this.castShadows=this.hasAttribute("cast-shadows");break;case"inner-cone-angle":this.innerConeAngle=Number(s);break;case"intensity":this.intensity=Number(s);break;case"normal-offset-bias":this.normalOffsetBias=Number(s);break;case"outer-cone-angle":this.outerConeAngle=Number(s);break;case"range":this.range=Number(s);break;case"shadow-bias":this.shadowBias=Number(s);break;case"shadow-distance":this.shadowDistance=Number(s);break;case"type":this.type=s}}}customElements.define("pc-light",b);class f extends HTMLElement{constructor(){super(...arguments),this._diffuse=new e.Color(1,1,1),this._diffuseMap="",this._metalnessMap="",this._normalMap="",this._roughnessMap="",this.material=null}createMaterial(){this.material=new e.StandardMaterial,this.material.glossInvert=!0,this.material.useMetalness=!0,this.material.diffuse=this._diffuse,this.diffuseMap=this._diffuseMap,this.metalnessMap=this._metalnessMap,this.normalMap=this._normalMap,this.roughnessMap=this._roughnessMap,this.material.update()}disconnectedCallback(){this.material&&(this.material.destroy(),this.material=null)}setMap(t,e){if(this.material){const s=l.get(t);s&&(s.loaded?(this.material[e]=s.resource,this.material[e].anisotropy=4):s.once("load",(()=>{this.material[e]=s.resource,this.material[e].anisotropy=4,this.material.update()})))}}set diffuse(t){this._diffuse=t,this.material&&(this.material.diffuse=t)}get diffuse(){return this._diffuse}set diffuseMap(t){this._diffuseMap=t,this.setMap(t,"diffuseMap")}get diffuseMap(){return this._diffuseMap}set metalnessMap(t){this._metalnessMap=t,this.setMap(t,"metalnessMap")}get metalnessMap(){return this._metalnessMap}set normalMap(t){this._normalMap=t,this.setMap(t,"normalMap")}get normalMap(){return this._normalMap}set roughnessMap(t){this._roughnessMap=t,this.setMap(t,"glossMap")}get roughnessMap(){return this._roughnessMap}static get(t){const e=document.querySelector(`pc-material[id="${t}"]`);return null==e?void 0:e.material}static get observedAttributes(){return["diffuse","diffuse-map","metalness-map","normal-map","roughness-map"]}attributeChangedCallback(t,e,s){switch(t){case"diffuse":this.diffuse=n(s);break;case"diffuse-map":this.diffuseMap=s;break;case"metalness-map":this.metalnessMap=s;break;case"normal-map":this.normalMap=s;break;case"roughness-map":this.roughnessMap=s}}}customElements.define("pc-material",f);class C extends p{constructor(){super("render"),this._castShadows=!0,this._material="",this._receiveShadows=!0,this._type="asset"}async connectedCallback(){await super.connectedCallback(),this.material=this._material}getInitialComponentData(){return{type:this._type,castShadows:this._castShadows,receiveShadows:this._receiveShadows}}get component(){return super.component}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}set castShadows(t){this._castShadows=t,this.component&&(this.component.castShadows=t)}get castShadows(){return this._castShadows}set material(t){this._material=t,this.component&&(this.component.material=f.get(t))}get material(){return this._material}set receiveShadows(t){this._receiveShadows=t,this.component&&(this.component.receiveShadows=t)}get receiveShadows(){return this._receiveShadows}static get observedAttributes(){return[...super.observedAttributes,"cast-shadows","material","receive-shadows","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"cast-shadows":this.castShadows="false"!==s;break;case"material":this.material=s;break;case"receive-shadows":this.receiveShadows="false"!==s;break;case"type":this.type=s}}}customElements.define("pc-render",C);class y extends p{constructor(){super("rigidbody"),this._angularDamping=0,this._angularFactor=new e.Vec3(1,1,1),this._friction=.5,this._linearDamping=0,this._linearFactor=new e.Vec3(1,1,1),this._mass=1,this._restitution=0,this._rollingFriction=0,this._type="static"}getInitialComponentData(){return{angularDamping:this._angularDamping,angularFactor:this._angularFactor,friction:this._friction,linearDamping:this._linearDamping,linearFactor:this._linearFactor,mass:this._mass,restitution:this._restitution,rollingFriction:this._rollingFriction,type:this._type}}get component(){return super.component}set angularDamping(t){this._angularDamping=t,this.component&&(this.component.angularDamping=t)}get angularDamping(){return this._angularDamping}set angularFactor(t){this._angularFactor=t,this.component&&(this.component.angularFactor=t)}get angularFactor(){return this._angularFactor}set friction(t){this._friction=t,this.component&&(this.component.friction=t)}get friction(){return this._friction}set linearDamping(t){this._linearDamping=t,this.component&&(this.component.linearDamping=t)}get linearDamping(){return this._linearDamping}set linearFactor(t){this._linearFactor=t,this.component&&(this.component.linearFactor=t)}get linearFactor(){return this._linearFactor}set mass(t){this._mass=t,this.component&&(this.component.mass=t)}get mass(){return this._mass}set restitution(t){this._restitution=t,this.component&&(this.component.restitution=t)}get restitution(){return this._restitution}set rollingFriction(t){this._rollingFriction=t,this.component&&(this.component.rollingFriction=t)}get rollingFriction(){return this._rollingFriction}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"angular-damping","angular-factor","friction","linear-damping","linear-factor","mass","restitution","rolling-friction","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"angular-damping":this.angularDamping=parseFloat(s);break;case"angular-factor":this.angularFactor=a(s);break;case"friction":this.friction=parseFloat(s);break;case"linear-damping":this.linearDamping=parseFloat(s);break;case"linear-factor":this.linearFactor=a(s);break;case"mass":this.mass=parseFloat(s);break;case"restitution":this.restitution=parseFloat(s);break;case"rolling-friction":this.rollingFriction=parseFloat(s);break;case"type":this.type=s}}}customElements.define("pc-rigidbody",y);class v extends p{constructor(){super("screen"),this._screenSpace=!1,this._resolution=new e.Vec2(640,320),this._referenceResolution=new e.Vec2(640,320),this._priority=0,this._blend=!1,this._scaleBlend=.5}getInitialComponentData(){return{priority:this._priority,referenceResolution:this._referenceResolution,resolution:this._resolution,scaleBlend:this._scaleBlend,scaleMode:this._blend?e.SCALEMODE_BLEND:e.SCALEMODE_NONE,screenSpace:this._screenSpace}}get component(){return super.component}set priority(t){this._priority=t,this.component&&(this.component.priority=this._priority)}get priority(){return this._priority}set referenceResolution(t){this._referenceResolution=t,this.component&&(this.component.referenceResolution=this._referenceResolution)}get referenceResolution(){return this._referenceResolution}set resolution(t){this._resolution=t,this.component&&(this.component.resolution=this._resolution)}get resolution(){return this._resolution}set scaleBlend(t){this._scaleBlend=t,this.component&&(this.component.scaleBlend=this._scaleBlend)}get scaleBlend(){return this._scaleBlend}set blend(t){this._blend=t,this.component&&(this.component.scaleMode=this._blend?e.SCALEMODE_BLEND:e.SCALEMODE_NONE)}get blend(){return this._blend}set screenSpace(t){this._screenSpace=t,this.component&&(this.component.screenSpace=this._screenSpace)}get screenSpace(){return this._screenSpace}static get observedAttributes(){return[...super.observedAttributes,"blend","screen-space","resolution","reference-resolution","priority","scale-blend"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"priority":this.priority=parseInt(s);break;case"reference-resolution":this.referenceResolution=o(s);break;case"resolution":this.resolution=o(s);break;case"scale-blend":this.scaleBlend=parseFloat(s);break;case"blend":this.blend=this.hasAttribute("blend");break;case"screen-space":this.screenSpace=this.hasAttribute("screen-space")}}}customElements.define("pc-screen",v);class w extends p{constructor(){super("script"),this.observer=new MutationObserver(this.handleMutations.bind(this)),this.observer.observe(this,{childList:!0}),this.addEventListener("scriptattributeschange",this.handleScriptAttributesChange.bind(this)),this.addEventListener("scriptenablechange",this.handleScriptEnableChange.bind(this))}async connectedCallback(){await super.connectedCallback(),this.querySelectorAll(":scope > pc-script").forEach((t=>{const e=t.getAttribute("name"),s=t.getAttribute("attributes");e&&this.createScript(e,s)}))}applyAttributes(t,e){try{const s=e?JSON.parse(e):{};Object.assign(t,s)}catch(t){console.error(`Error parsing attributes JSON string ${e}:`,t)}}handleScriptAttributesChange(t){const e=t.target.getAttribute("name");if(!e||!this.component)return;const s=this.component.get(e);s&&this.applyAttributes(s,t.detail.attributes)}handleScriptEnableChange(t){const e=t.target.getAttribute("name");if(!e||!this.component)return;const s=this.component.get(e);s&&(s.enabled=t.detail.enabled)}createScript(t,e){return this.component?(this.component.on(`create:${t}`,(t=>{this.applyAttributes(t,e)})),this.component.create(t)):null}destroyScript(t){this.component&&this.component.destroy(t)}handleMutations(t){for(const e of t)e.addedNodes.forEach((t=>{if(t instanceof HTMLElement&&"pc-script"===t.tagName.toLowerCase()){const e=t.getAttribute("name"),s=t.getAttribute("attributes");e&&this.createScript(e,s)}})),e.removedNodes.forEach((t=>{if(t instanceof HTMLElement&&"pc-script"===t.tagName.toLowerCase()){const e=t.getAttribute("name");e&&this.destroyScript(e)}}))}disconnectedCallback(){var t;this.observer.disconnect(),null===(t=super.disconnectedCallback)||void 0===t||t.call(this)}get component(){return super.component}}customElements.define("pc-scripts",w);class k extends HTMLElement{constructor(){super(...arguments),this._attributes="{}",this._enabled=!0,this._name=""}set scriptAttributes(t){this._attributes=t,this.dispatchEvent(new CustomEvent("scriptattributeschange",{detail:{attributes:t},bubbles:!0}))}get scriptAttributes(){return this._attributes}set enabled(t){this._enabled=t,this.dispatchEvent(new CustomEvent("scriptenablechange",{detail:{enabled:t},bubbles:!0}))}get enabled(){return this._enabled}set name(t){this._name=t}get name(){return this._name}static get observedAttributes(){return["attributes","enabled","name"]}attributeChangedCallback(t,e,s){switch(t){case"attributes":this.scriptAttributes=s;break;case"enabled":this.enabled="false"!==s;break;case"name":this.name=s}}}customElements.define("pc-script",k);class S extends p{constructor(){super("sound"),this._pitch=1,this._positional=!1,this._volume=1}getInitialComponentData(){return{pitch:this._pitch,positional:this._positional,volume:this._volume}}get component(){return super.component}set pitch(t){this._pitch=t,this.component&&(this.component.pitch=t)}get pitch(){return this._pitch}set positional(t){this._positional=t,this.component&&(this.component.positional=t)}get positional(){return this._positional}set volume(t){this._volume=t,this.component&&(this.component.volume=t)}get volume(){return this._volume}static get observedAttributes(){return[...super.observedAttributes,"pitch","positional","volume"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"pitch":this.pitch=parseFloat(s);break;case"positional":this.positional=this.hasAttribute("positional");break;case"volume":this.volume=parseFloat(s)}}}customElements.define("pc-sounds",S);class E extends HTMLElement{constructor(){super(...arguments),this._asset="",this._autoPlay=!1,this._duration=null,this._loop=!1,this._name="",this._overlap=!1,this._pitch=1,this._startTime=0,this._volume=1,this.soundSlot=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.error(`${this.tagName.toLowerCase()} should be a descendant of pc-app`);await t.getApplication();const e={autoPlay:this._autoPlay,loop:this._loop,overlap:this._overlap,pitch:this._pitch,startTime:this._startTime,volume:this._volume};this._duration&&(e.duration=this._duration),this.soundSlot=this.soundElement.component.addSlot(this._name,e),this.asset=this._asset,this.soundSlot.play()}disconnectedCallback(){this.soundElement.component.removeSlot(this._name)}get soundElement(){const t=this.parentElement;return t instanceof S?t:(console.warn("pc-sound-slot must be a direct child of a pc-sound element"),null)}set asset(t){var e;if(this._asset=t,this.soundSlot){const s=null===(e=l.get(t))||void 0===e?void 0:e.id;s&&(this.soundSlot.asset=s)}}get asset(){return this._asset}set autoPlay(t){this._autoPlay=t,this.soundSlot&&(this.soundSlot.autoPlay=t)}get autoPlay(){return this._autoPlay}set duration(t){this._duration=t,this.soundSlot&&(this.soundSlot.duration=t)}get duration(){return this._duration}set loop(t){this._loop=t,this.soundSlot&&(this.soundSlot.loop=t)}get loop(){return this._loop}set name(t){this._name=t,this.soundSlot&&(this.soundSlot.name=t)}get name(){return this._name}set overlap(t){this._overlap=t,this.soundSlot&&(this.soundSlot.overlap=t)}get overlap(){return this._overlap}set pitch(t){this._pitch=t,this.soundSlot&&(this.soundSlot.pitch=t)}get pitch(){return this._pitch}set startTime(t){this._startTime=t,this.soundSlot&&(this.soundSlot.startTime=t)}get startTime(){return this._startTime}set volume(t){this._volume=t,this.soundSlot&&(this.soundSlot.volume=t)}get volume(){return this._volume}static get observedAttributes(){return["asset","autoPlay","duration","loop","name","overlap","pitch","startTime","volume"]}attributeChangedCallback(t,e,s){switch(t){case"asset":this.asset=s;break;case"duration":this.duration=parseFloat(s);break;case"loop":this.loop=this.hasAttribute("loop");break;case"name":this.name=s;break;case"overlap":this.overlap=this.hasAttribute("overlap");break;case"pitch":this.pitch=parseFloat(s);break;case"startTime":this.startTime=parseFloat(s);break;case"volume":this.volume=parseFloat(s)}}}customElements.define("pc-sound",E);class A extends HTMLElement{constructor(){super(...arguments),this._asset=""}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);await t.getApplication();const e=this.getAttribute("asset");e&&(this.asset=e)}_loadModel(){const t=l.get(this._asset);if(!t)return;const e=t.resource.instantiateRenderEntity(),s=this.closest("pc-entity");if(s)s.entity.addChild(e);else{this.closest("pc-app").app.root.addChild(e)}}set asset(t){this._asset=t,this._loadModel()}get asset(){return this._asset}static get observedAttributes(){return["asset"]}attributeChangedCallback(t,e,s){if("asset"===t)this.asset=s}}customElements.define("pc-model",A);class x extends HTMLElement{constructor(){super(...arguments),this._fog="none",this._fogColor=new e.Color(1,1,1),this._fogDensity=0,this._fogStart=0,this._fogEnd=1e3,this.scene=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);const e=await t.getApplication();this.scene=e.scene,this.updateSceneSettings()}updateSceneSettings(){this.scene&&(this.scene.rendering.fog=this._fog,this.scene.rendering.fogColor=this._fogColor,this.scene.rendering.fogDensity=this._fogDensity,this.scene.rendering.fogStart=this._fogStart,this.scene.rendering.fogEnd=this._fogEnd)}set fog(t){this._fog=t,this.scene&&(this.scene.rendering.fog=t)}get fog(){return this._fog}set fogColor(t){this._fogColor=t,this.scene&&(this.scene.rendering.fogColor=t)}get fogColor(){return this._fogColor}set fogDensity(t){this._fogDensity=t,this.scene&&(this.scene.rendering.fogDensity=t)}get fogDensity(){return this._fogDensity}set fogStart(t){this._fogStart=t,this.scene&&(this.scene.rendering.fogStart=t)}get fogStart(){return this._fogStart}set fogEnd(t){this._fogEnd=t,this.scene&&(this.scene.rendering.fogEnd=t)}get fogEnd(){return this._fogEnd}static get observedAttributes(){return["fog","fog-color","fog-density","fog-start","fog-end"]}attributeChangedCallback(t,e,s){switch(t){case"fog":this.fog=s;break;case"fog-color":this.fogColor=n(s);break;case"fog-density":this.fogDensity=parseFloat(s);break;case"fog-start":this.fogStart=parseFloat(s);break;case"fog-end":this.fogEnd=parseFloat(s)}}}customElements.define("pc-scene",x);class M extends HTMLElement{constructor(){super(...arguments),this._asset="",this._intensity=1,this._rotation=[0,0,0],this._level=0,this._solidColor=!1}async connectedCallback(){const t=this.closest("pc-app");t?(await t.getApplication(),this.asset=this.getAttribute("asset")||"",this.solidColor=this.hasAttribute("solid-color")):console.warn(`${this.tagName} must be a child of pc-app`)}getScene(){const t=this.closest("pc-app");if(!t)return;const e=t.app;return e?e.scene:void 0}set asset(t){this._asset=t;const e=this.getScene();if(e){const s=l.get(t);s&&(s.resource?e.envAtlas=s.resource:s.once("load",(()=>{e.envAtlas=s.resource})))}}get asset(){return this._asset}set intensity(t){this._intensity=t;const e=this.getScene();e&&(e.skyboxIntensity=this._intensity)}get intensity(){return this._intensity}set rotation(t){this._rotation=t;const s=this.getScene();s&&(s.skyboxRotation=(new e.Quat).setFromEulerAngles(this._rotation[0],this._rotation[1],this._rotation[2]))}get rotation(){return this._rotation}set solidColor(t){this._solidColor=t;const s=this.getScene();if(s){const t=s.layers.getLayerById(e.LAYERID_SKYBOX);t&&(t.enabled=!this._solidColor)}}get solidColor(){return this._solidColor}set level(t){this._level=t;const e=this.getScene();e&&(e.skyboxMip=this._level)}get level(){return this._level}static get observedAttributes(){return["asset","intensity","level","rotation","solid-color"]}attributeChangedCallback(t,e,s){switch(t){case"asset":this.asset=s;break;case"intensity":this.intensity=parseFloat(s);break;case"rotation":this.rotation=s.split(",").map(Number);break;case"level":this.level=parseInt(s,10);break;case"solid-color":this.solidColor=this.hasAttribute("solid-color")}}}customElements.define("pc-sky",M),t.AppElement=i,t.AssetElement=l,t.CameraComponentElement=d,t.CollisionComponentElement=m,t.ComponentElement=p,t.ElementComponentElement=g,t.EntityElement=h,t.GSplatComponentElement=_,t.LightComponentElement=b,t.ListenerComponentElement=u,t.MaterialElement=f,t.ModelElement=A,t.ModuleElement=s,t.RenderComponentElement=C,t.RigidBodyComponentElement=y,t.SceneElement=x,t.ScreenComponentElement=v,t.ScriptComponentElement=w,t.ScriptElement=k,t.SkyElement=M,t.SoundComponentElement=S,t.SoundSlotElement=E}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("playcanvas")):"function"==typeof define&&define.amd?define(["exports","playcanvas"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pd={},t.pc)}(this,(function(t,e){"use strict";class s extends HTMLElement{constructor(){super(),this.loadPromise=this.loadModule()}async loadModule(){const t=this.getAttribute("name"),s=this.getAttribute("glue"),i=this.getAttribute("wasm"),n=this.getAttribute("fallback");e.WasmModule.setConfig(t,{glueUrl:s,wasmUrl:i,fallbackUrl:n}),await new Promise((s=>{e.WasmModule.getInstance(t,(()=>s()))}))}getLoadPromise(){return this.loadPromise}}customElements.define("pc-module",s);class i extends HTMLElement{constructor(){super(),this._canvas=null,this._highResolution=!1,this.app=null,this._onWindowResize=this._onWindowResize.bind(this),this.appReadyPromise=new Promise((t=>{this.appReadyResolve=t}))}async connectedCallback(){const t=this.querySelectorAll(":scope > pc-module");await Promise.all(Array.from(t).map((t=>t.getLoadPromise()))),this._canvas=document.createElement("canvas"),this.appendChild(this._canvas),this.app=new e.Application(this._canvas,{graphicsDeviceOptions:{devicePixelRatio:this._highResolution?window.devicePixelRatio:1},keyboard:new e.Keyboard(window),mouse:new e.Mouse(this._canvas)}),this.app.setCanvasFillMode(e.FILLMODE_FILL_WINDOW),this.app.setCanvasResolution(e.RESOLUTION_AUTO);const s=this.querySelectorAll(":scope > pc-asset");Array.from(s).forEach((t=>{t.createAsset();const e=t.asset;e&&this.app.assets.add(e)}));const i=this.querySelectorAll(":scope > pc-material");Array.from(i).forEach((t=>{t.createMaterial()})),this.app.preload((()=>{this.app.start(),window.addEventListener("resize",this._onWindowResize),this.appReadyResolve(this.app)}))}disconnectedCallback(){this.app&&(this.app.destroy(),this.app=null),window.removeEventListener("resize",this._onWindowResize),this._canvas&&this.contains(this._canvas)&&(this.removeChild(this._canvas),this._canvas=null)}async getApplication(){return await this.appReadyPromise,this.app}_onWindowResize(){this.app&&this.app.resizeCanvas()}set highResolution(t){this._highResolution=t,this.app&&(this.app.graphicsDevice.maxPixelRatio=t?window.devicePixelRatio:1)}get highResolution(){return this._highResolution}static get observedAttributes(){return["high-resolution"]}attributeChangedCallback(t,e,s){if("high-resolution"===t)this.highResolution=this.hasAttribute(t)}}customElements.define("pc-app",i);const n=t=>{if(t.startsWith("#"))return(new e.Color).fromString(t);const s=t.split(",").map(Number);return new e.Color(s)},a=t=>{const s=t.split(",").map(Number);return new e.Vec2(s)},o=t=>{const s=t.split(",").map(Number);return new e.Vec3(s)},r=t=>{const s=t.split(",").map(Number);return new e.Vec4(s)};class h extends HTMLElement{constructor(){super(...arguments),this._enabled=!0,this._name="Untitled",this._position=new e.Vec3,this._rotation=new e.Vec3,this._scale=new e.Vec3(1,1,1),this._tags=[],this._entityReady=new Promise((t=>{this._resolveEntity=t})),this.entity=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);const s=await t.getApplication();if(this.entity=new e.Entity(this._name,s),this._resolveEntity(this.entity),this.parentElement&&"pc-entity"===this.parentElement.tagName.toLowerCase()){(await this.parentElement._entityReady).addChild(this.entity)}else s.root.addChild(this.entity);const i=this.getAttribute("name"),n=this.getAttribute("position"),a=this.getAttribute("rotation"),r=this.getAttribute("scale"),h=this.getAttribute("tags");i&&(this.name=i),n&&(this.position=o(n)),a&&(this.rotation=o(a)),r&&(this.scale=o(r)),h&&(this.tags=h.split(",").map((t=>t.trim())))}disconnectedCallback(){if(this.entity){this.querySelectorAll("pc-entity").forEach((t=>{t.entity=null})),this.entity.destroy(),this.entity=null}this._entityReady=new Promise((t=>{this._resolveEntity=t}))}set enabled(t){this._enabled=t,this.entity&&(this.entity.enabled=t)}get enabled(){return this._enabled}set name(t){this._name=t,this.entity&&(this.entity.name=t)}get name(){return this._name}set position(t){this._position=t,this.entity&&this.entity.setLocalPosition(this._position)}get position(){return this._position}set rotation(t){this._rotation=t,this.entity&&this.entity.setLocalEulerAngles(this._rotation)}get rotation(){return this._rotation}set scale(t){this._scale=t,this.entity&&this.entity.setLocalScale(this._scale)}get scale(){return this._scale}set tags(t){this._tags=t,this.entity&&(this.entity.tags.clear(),this.entity.tags.add(this._tags))}get tags(){return this._tags}static get observedAttributes(){return["enabled","name","position","rotation","scale","tags"]}attributeChangedCallback(t,e,s){switch(t){case"enabled":this.enabled="false"!==s;break;case"name":this.name=s;break;case"position":this.position=o(s);break;case"rotation":this.rotation=o(s);break;case"scale":this.scale=o(s);break;case"tags":this.tags=s.split(",").map((t=>t.trim()))}}}customElements.define("pc-entity",h);const c=new Map([["bin","binary"],["css","css"],["frag","shader"],["glb","container"],["glsl","shader"],["html","html"],["jpg","texture"],["js","script"],["json","json"],["mp3","audio"],["mjs","script"],["ply","gsplat"],["png","texture"],["txt","text"],["vert","shader"],["webp","texture"]]);class l extends HTMLElement{constructor(){super(...arguments),this._preload=!1,this.asset=null}async connectedCallback(){}disconnectedCallback(){this.destroyAsset()}createAsset(){var t;const s=this.getAttribute("id")||"",i=this.getAttribute("src")||"";let n=this.getAttribute("type");if(!n){const e=i.split(".").pop();n=null!==(t=c.get(e||""))&&void 0!==t?t:null}n?(this.asset=new e.Asset(s,n,{url:i}),this.asset.preload=this.preload):console.warn(`Unsupported asset type: ${i}`)}destroyAsset(){this.asset&&(this.asset.unload(),this.asset=null)}set preload(t){this._preload=t,this.asset&&(this.asset.preload=t)}get preload(){return this._preload}static get(t){const e=document.querySelector(`pc-asset[id="${t}"]`);return null==e?void 0:e.asset}static get observedAttributes(){return["preload"]}attributeChangedCallback(t,e,s){"preload"===t&&(this.preload=this.hasAttribute("preload"))}}customElements.define("pc-asset",l);class p extends HTMLElement{constructor(t){super(),this._enabled=!0,this._component=null,this._componentName=t}getInitialComponentData(){return{}}async connectedCallback(){const t=this.closest("pc-app");t?(await t.getApplication(),this.addComponent()):console.error(`${this.tagName.toLowerCase()} should be a descendant of pc-app`)}addComponent(){const t=this.closest("pc-entity");t?t&&t.entity&&(this._component=t.entity.addComponent(this._componentName,this.getInitialComponentData())):console.error(`${this.tagName.toLowerCase()} should be a child of pc-entity`)}disconnectedCallback(){this.component&&this.component.entity&&(this._component.entity.removeComponent(this._componentName),this._component=null)}get component(){return this._component}set enabled(t){this._enabled=t,this.component&&(this.component.enabled=t)}get enabled(){return this._enabled}static get observedAttributes(){return["enabled"]}attributeChangedCallback(t,e,s){if("enabled"===t)this.enabled="false"!==s}}class u extends p{constructor(){super("audiolistener")}get component(){return super.component}}customElements.define("pc-listener",u);class d extends p{constructor(){super("camera"),this._clearColor=new e.Color(.75,.75,.75,1),this._clearColorBuffer=!0,this._clearDepthBuffer=!0,this._clearStencilBuffer=!1,this._cullFaces=!0,this._farClip=1e3,this._flipFaces=!1,this._fov=45,this._frustumCulling=!0,this._nearClip=.1,this._orthographic=!1,this._orthoHeight=10,this._priority=0,this._rect=new e.Vec4(0,0,1,1),this._scissorRect=new e.Vec4(0,0,1,1)}getInitialComponentData(){return{clearColor:this._clearColor,clearColorBuffer:this._clearColorBuffer,clearDepthBuffer:this._clearDepthBuffer,clearStencilBuffer:this._clearStencilBuffer,cullFaces:this._cullFaces,farClip:this._farClip,flipFaces:this._flipFaces,fov:this._fov,frustumCulling:this._frustumCulling,nearClip:this._nearClip,orthographic:this._orthographic,orthoHeight:this._orthoHeight,priority:this._priority,rect:this._rect,scissorRect:this._scissorRect}}get component(){return super.component}set clearColor(t){this._clearColor=t,this.component&&(this.component.clearColor=t)}get clearColor(){return this._clearColor}set clearColorBuffer(t){this._clearColorBuffer=t,this.component&&(this.component.clearColorBuffer=t)}get clearColorBuffer(){return this._clearColorBuffer}set clearDepthBuffer(t){this._clearDepthBuffer=t,this.component&&(this.component.clearDepthBuffer=t)}get clearDepthBuffer(){return this._clearDepthBuffer}set clearStencilBuffer(t){this._clearStencilBuffer=t,this.component&&(this.component.clearStencilBuffer=t)}get clearStencilBuffer(){return this._clearStencilBuffer}set cullFaces(t){this._cullFaces=t,this.component&&(this.component.cullFaces=t)}get cullFaces(){return this._cullFaces}set farClip(t){this._farClip=t,this.component&&(this.component.farClip=t)}get farClip(){return this._farClip}set flipFaces(t){this._flipFaces=t,this.component&&(this.component.flipFaces=t)}get flipFaces(){return this._flipFaces}set fov(t){this._fov=t,this.component&&(this.component.fov=t)}get fov(){return this._fov}set frustumCulling(t){this._frustumCulling=t,this.component&&(this.component.frustumCulling=t)}get frustumCulling(){return this._frustumCulling}set nearClip(t){this._nearClip=t,this.component&&(this.component.nearClip=t)}get nearClip(){return this._nearClip}set orthographic(t){this._orthographic=t,this.component&&(this.component.projection=t?e.PROJECTION_ORTHOGRAPHIC:e.PROJECTION_PERSPECTIVE)}get orthographic(){return this._orthographic}set orthoHeight(t){this._orthoHeight=t,this.component&&(this.component.orthoHeight=t)}get orthoHeight(){return this._orthoHeight}set priority(t){this._priority=t,this.component&&(this.component.priority=t)}get priority(){return this._priority}set rect(t){this._rect=t,this.component&&(this.component.rect=t)}get rect(){return this._rect}set scissorRect(t){this._scissorRect=t,this.component&&(this.component.scissorRect=t)}get scissorRect(){return this._scissorRect}static get observedAttributes(){return[...super.observedAttributes,"clear-color","clear-color-buffer","clear-depth-buffer","clear-stencil-buffer","cull-faces","far-clip","flip-faces","fov","frustum-culling","near-clip","orthographic","ortho-height","priority","rect","scissor-rect"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"clear-color":this.clearColor=n(s);break;case"clear-color-buffer":this.clearColorBuffer="false"!==s;break;case"clear-depth-buffer":this.clearDepthBuffer="false"!==s;break;case"clear-stencil-buffer":this.clearStencilBuffer="false"!==s;break;case"cull-faces":this.cullFaces="false"!==s;break;case"far-clip":this.farClip=parseFloat(s);break;case"flip-faces":this.flipFaces="true"!==s;break;case"fov":this.fov=parseFloat(s);break;case"frustum-culling":this.frustumCulling="false"!==s;break;case"near-clip":this.nearClip=parseFloat(s);break;case"orthographic":this.orthographic=this.hasAttribute("orthographic");break;case"ortho-height":this.orthoHeight=parseFloat(s);break;case"priority":this.priority=parseFloat(s);break;case"rect":this.rect=r(s);break;case"scissor-rect":this.scissorRect=r(s)}}}customElements.define("pc-camera",d);class m extends p{constructor(){super("collision"),this._angularOffset=new e.Quat,this._axis=1,this._convexHull=!1,this._halfExtents=new e.Vec3(.5,.5,.5),this._height=2,this._linearOffset=new e.Vec3,this._radius=.5,this._type="box"}getInitialComponentData(){return{axis:this._axis,angularOffset:this._angularOffset,convexHull:this._convexHull,halfExtents:this._halfExtents,height:this._height,linearOffset:this._linearOffset,radius:this._radius,type:this._type}}get component(){return super.component}set angularOffset(t){this._angularOffset=t,this.component&&(this.component.angularOffset=t)}get angularOffset(){return this._angularOffset}set axis(t){this._axis=t,this.component&&(this.component.axis=t)}get axis(){return this._axis}set convexHull(t){this._convexHull=t,this.component&&(this.component.convexHull=t)}get convexHull(){return this._convexHull}set halfExtents(t){this._halfExtents=t,this.component&&(this.component.halfExtents=t)}get halfExtents(){return this._halfExtents}set height(t){this._height=t,this.component&&(this.component.height=t)}get height(){return this._height}set linearOffset(t){this._linearOffset=t,this.component&&(this.component.linearOffset=t)}get linearOffset(){return this._linearOffset}set radius(t){this._radius=t,this.component&&(this.component.radius=t)}get radius(){return this._radius}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"angular-offset","axis","convex-hull","half-extents","height","linear-offset","radius","type"]}attributeChangedCallback(t,s,i){switch(super.attributeChangedCallback(t,s,i),t){case"angular-offset":this.angularOffset=(t=>{const[s,i,n]=t.split(",").map(Number),a=new e.Quat;return a.setFromEulerAngles(s,i,n),a})(i);break;case"axis":this.axis=parseInt(i,10);break;case"convex-hull":this.convexHull=this.hasAttribute("convex-hull");break;case"half-extents":this.halfExtents=o(i);break;case"height":this.height=parseFloat(i);break;case"linear-offset":this.linearOffset=o(i);break;case"radius":this.radius=parseFloat(i);break;case"type":this.type=i}}}customElements.define("pc-collision",m);class g extends p{constructor(){super("element"),this._anchor=new e.Vec4(.5,.5,.5,.5),this._asset="",this._autoWidth=!0,this._color=new e.Color(1,1,1,1),this._fontSize=32,this._lineHeight=32,this._pivot=new e.Vec2(.5,.5),this._text="",this._type="group",this._width=0,this._wrapLines=!1}async connectedCallback(){await super.connectedCallback(),this.component._text._material.useFog=!0}getInitialComponentData(){return{anchor:this._anchor,autoWidth:this._autoWidth,color:this._color,fontAsset:l.get(this._asset).id,fontSize:this._fontSize,lineHeight:this._lineHeight,pivot:this._pivot,type:this._type,text:this._text,width:this._width,wrapLines:this._wrapLines}}get component(){return super.component}set anchor(t){this._anchor=t,this.component&&(this.component.anchor=t)}get anchor(){return this._anchor}set asset(t){this._asset=t;const e=l.get(t);this.component&&e&&(this.component.fontAsset=e.id)}get asset(){return this._asset}set autoWidth(t){this._autoWidth=t,this.component&&(this.component.autoWidth=t)}get autoWidth(){return this._autoWidth}set color(t){this._color=t,this.component&&(this.component.color=t)}get color(){return this._color}set fontSize(t){this._fontSize=t,this.component&&(this.component.fontSize=t)}get fontSize(){return this._fontSize}set lineHeight(t){this._lineHeight=t,this.component&&(this.component.lineHeight=t)}get lineHeight(){return this._lineHeight}set pivot(t){this._pivot=t,this.component&&(this.component.pivot=t)}get pivot(){return this._pivot}set text(t){this._text=t,this.component&&(this.component.text=t)}get text(){return this._text}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}set width(t){this._width=t,this.component&&(this.component.width=t)}get width(){return this._width}set wrapLines(t){this._wrapLines=t,this.component&&(this.component.wrapLines=t)}get wrapLines(){return this._wrapLines}static get observedAttributes(){return[...super.observedAttributes,"anchor","asset","auto-width","color","font-size","line-height","pivot","text","type","width","wrap-lines"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"anchor":this.anchor=r(s);break;case"asset":this.asset=s;break;case"auto-width":this.autoWidth="false"!==s;break;case"color":this.color=n(s);break;case"font-size":this.fontSize=Number(s);break;case"line-height":this.lineHeight=Number(s);break;case"pivot":this.pivot=a(s);break;case"text":this.text=s;break;case"type":this.type=s;break;case"width":this.width=Number(s);break;case"wrap-lines":this.wrapLines=this.hasAttribute(t)}}}customElements.define("pc-element",g);class _ extends p{constructor(){super("gsplat"),this._asset=""}getInitialComponentData(){return{asset:l.get(this._asset)}}get component(){return super.component}set asset(t){this._asset=t;const e=l.get(t);this.component&&e&&(this.component.asset=e)}get asset(){return this._asset}static get observedAttributes(){return[...super.observedAttributes,"asset"]}attributeChangedCallback(t,e,s){if(super.attributeChangedCallback(t,e,s),"asset"===t)this.asset=s}}customElements.define("pc-splat",_);class f extends p{constructor(){super("light"),this._castShadows=!1,this._color=new e.Color(1,1,1),this._innerConeAngle=40,this._intensity=1,this._normalOffsetBias=.05,this._outerConeAngle=45,this._range=10,this._shadowBias=.2,this._shadowDistance=16,this._type="directional"}getInitialComponentData(){return{castShadows:this._castShadows,color:this._color,innerConeAngle:this._innerConeAngle,intensity:this._intensity,normalOffsetBias:this._normalOffsetBias,outerConeAngle:this._outerConeAngle,range:this._range,shadowBias:this._shadowBias,shadowDistance:this._shadowDistance,type:this._type}}get component(){return super.component}set castShadows(t){this._castShadows=t,this.component&&(this.component.castShadows=t)}get castShadows(){return this._castShadows}set color(t){this._color=t,this.component&&(this.component.color=t)}get color(){return this._color}set innerConeAngle(t){this._innerConeAngle=t,this.component&&(this.component.innerConeAngle=t)}get innerConeAngle(){return this._innerConeAngle}set intensity(t){this._intensity=t,this.component&&(this.component.intensity=t)}get intensity(){return this._intensity}set normalOffsetBias(t){this._normalOffsetBias=t,this.component&&(this.component.normalOffsetBias=t)}get normalOffsetBias(){return this._normalOffsetBias}set outerConeAngle(t){this._outerConeAngle=t,this.component&&(this.component.outerConeAngle=t)}get outerConeAngle(){return this._outerConeAngle}set range(t){this._range=t,this.component&&(this.component.range=t)}get range(){return this._range}set shadowBias(t){this._shadowBias=t,this.component&&(this.component.shadowBias=t)}get shadowBias(){return this._shadowBias}set shadowDistance(t){this._shadowDistance=t,this.component&&(this.component.shadowDistance=t)}get shadowDistance(){return this._shadowDistance}set type(t){["directional","omni","spot"].includes(t)?(this._type=t,this.component&&(this.component.type=t)):console.warn(`Invalid light type '${t}', using default type '${this._type}'.`)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"color","cast-shadows","intensity","inner-cone-angle","normal-offset-bias","outer-cone-angle","range","shadow-bias","shadow-distance","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"color":this.color=n(s);break;case"cast-shadows":this.castShadows=this.hasAttribute("cast-shadows");break;case"inner-cone-angle":this.innerConeAngle=Number(s);break;case"intensity":this.intensity=Number(s);break;case"normal-offset-bias":this.normalOffsetBias=Number(s);break;case"outer-cone-angle":this.outerConeAngle=Number(s);break;case"range":this.range=Number(s);break;case"shadow-bias":this.shadowBias=Number(s);break;case"shadow-distance":this.shadowDistance=Number(s);break;case"type":this.type=s}}}customElements.define("pc-light",f);class b extends HTMLElement{constructor(){super(...arguments),this._diffuse=new e.Color(1,1,1),this._diffuseMap="",this._metalnessMap="",this._normalMap="",this._roughnessMap="",this.material=null}createMaterial(){this.material=new e.StandardMaterial,this.material.glossInvert=!0,this.material.useMetalness=!0,this.material.diffuse=this._diffuse,this.diffuseMap=this._diffuseMap,this.metalnessMap=this._metalnessMap,this.normalMap=this._normalMap,this.roughnessMap=this._roughnessMap,this.material.update()}disconnectedCallback(){this.material&&(this.material.destroy(),this.material=null)}setMap(t,e){if(this.material){const s=l.get(t);s&&(s.loaded?(this.material[e]=s.resource,this.material[e].anisotropy=4):s.once("load",(()=>{this.material[e]=s.resource,this.material[e].anisotropy=4,this.material.update()})))}}set diffuse(t){this._diffuse=t,this.material&&(this.material.diffuse=t)}get diffuse(){return this._diffuse}set diffuseMap(t){this._diffuseMap=t,this.setMap(t,"diffuseMap")}get diffuseMap(){return this._diffuseMap}set metalnessMap(t){this._metalnessMap=t,this.setMap(t,"metalnessMap")}get metalnessMap(){return this._metalnessMap}set normalMap(t){this._normalMap=t,this.setMap(t,"normalMap")}get normalMap(){return this._normalMap}set roughnessMap(t){this._roughnessMap=t,this.setMap(t,"glossMap")}get roughnessMap(){return this._roughnessMap}static get(t){const e=document.querySelector(`pc-material[id="${t}"]`);return null==e?void 0:e.material}static get observedAttributes(){return["diffuse","diffuse-map","metalness-map","normal-map","roughness-map"]}attributeChangedCallback(t,e,s){switch(t){case"diffuse":this.diffuse=n(s);break;case"diffuse-map":this.diffuseMap=s;break;case"metalness-map":this.metalnessMap=s;break;case"normal-map":this.normalMap=s;break;case"roughness-map":this.roughnessMap=s}}}customElements.define("pc-material",b);class y extends p{constructor(){super("render"),this._castShadows=!0,this._material="",this._receiveShadows=!0,this._type="asset"}async connectedCallback(){await super.connectedCallback(),this.material=this._material}getInitialComponentData(){return{type:this._type,castShadows:this._castShadows,receiveShadows:this._receiveShadows}}get component(){return super.component}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}set castShadows(t){this._castShadows=t,this.component&&(this.component.castShadows=t)}get castShadows(){return this._castShadows}set material(t){this._material=t,this.component&&(this.component.material=b.get(t))}get material(){return this._material}set receiveShadows(t){this._receiveShadows=t,this.component&&(this.component.receiveShadows=t)}get receiveShadows(){return this._receiveShadows}static get observedAttributes(){return[...super.observedAttributes,"cast-shadows","material","receive-shadows","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"cast-shadows":this.castShadows="false"!==s;break;case"material":this.material=s;break;case"receive-shadows":this.receiveShadows="false"!==s;break;case"type":this.type=s}}}customElements.define("pc-render",y);class C extends p{constructor(){super("rigidbody"),this._angularDamping=0,this._angularFactor=new e.Vec3(1,1,1),this._friction=.5,this._linearDamping=0,this._linearFactor=new e.Vec3(1,1,1),this._mass=1,this._restitution=0,this._rollingFriction=0,this._type="static"}getInitialComponentData(){return{angularDamping:this._angularDamping,angularFactor:this._angularFactor,friction:this._friction,linearDamping:this._linearDamping,linearFactor:this._linearFactor,mass:this._mass,restitution:this._restitution,rollingFriction:this._rollingFriction,type:this._type}}get component(){return super.component}set angularDamping(t){this._angularDamping=t,this.component&&(this.component.angularDamping=t)}get angularDamping(){return this._angularDamping}set angularFactor(t){this._angularFactor=t,this.component&&(this.component.angularFactor=t)}get angularFactor(){return this._angularFactor}set friction(t){this._friction=t,this.component&&(this.component.friction=t)}get friction(){return this._friction}set linearDamping(t){this._linearDamping=t,this.component&&(this.component.linearDamping=t)}get linearDamping(){return this._linearDamping}set linearFactor(t){this._linearFactor=t,this.component&&(this.component.linearFactor=t)}get linearFactor(){return this._linearFactor}set mass(t){this._mass=t,this.component&&(this.component.mass=t)}get mass(){return this._mass}set restitution(t){this._restitution=t,this.component&&(this.component.restitution=t)}get restitution(){return this._restitution}set rollingFriction(t){this._rollingFriction=t,this.component&&(this.component.rollingFriction=t)}get rollingFriction(){return this._rollingFriction}set type(t){this._type=t,this.component&&(this.component.type=t)}get type(){return this._type}static get observedAttributes(){return[...super.observedAttributes,"angular-damping","angular-factor","friction","linear-damping","linear-factor","mass","restitution","rolling-friction","type"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"angular-damping":this.angularDamping=parseFloat(s);break;case"angular-factor":this.angularFactor=o(s);break;case"friction":this.friction=parseFloat(s);break;case"linear-damping":this.linearDamping=parseFloat(s);break;case"linear-factor":this.linearFactor=o(s);break;case"mass":this.mass=parseFloat(s);break;case"restitution":this.restitution=parseFloat(s);break;case"rolling-friction":this.rollingFriction=parseFloat(s);break;case"type":this.type=s}}}customElements.define("pc-rigidbody",C);class v extends p{constructor(){super("screen"),this._screenSpace=!1,this._resolution=new e.Vec2(640,320),this._referenceResolution=new e.Vec2(640,320),this._priority=0,this._blend=!1,this._scaleBlend=.5}getInitialComponentData(){return{priority:this._priority,referenceResolution:this._referenceResolution,resolution:this._resolution,scaleBlend:this._scaleBlend,scaleMode:this._blend?e.SCALEMODE_BLEND:e.SCALEMODE_NONE,screenSpace:this._screenSpace}}get component(){return super.component}set priority(t){this._priority=t,this.component&&(this.component.priority=this._priority)}get priority(){return this._priority}set referenceResolution(t){this._referenceResolution=t,this.component&&(this.component.referenceResolution=this._referenceResolution)}get referenceResolution(){return this._referenceResolution}set resolution(t){this._resolution=t,this.component&&(this.component.resolution=this._resolution)}get resolution(){return this._resolution}set scaleBlend(t){this._scaleBlend=t,this.component&&(this.component.scaleBlend=this._scaleBlend)}get scaleBlend(){return this._scaleBlend}set blend(t){this._blend=t,this.component&&(this.component.scaleMode=this._blend?e.SCALEMODE_BLEND:e.SCALEMODE_NONE)}get blend(){return this._blend}set screenSpace(t){this._screenSpace=t,this.component&&(this.component.screenSpace=this._screenSpace)}get screenSpace(){return this._screenSpace}static get observedAttributes(){return[...super.observedAttributes,"blend","screen-space","resolution","reference-resolution","priority","scale-blend"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"priority":this.priority=parseInt(s,10);break;case"reference-resolution":this.referenceResolution=a(s);break;case"resolution":this.resolution=a(s);break;case"scale-blend":this.scaleBlend=parseFloat(s);break;case"blend":this.blend=this.hasAttribute("blend");break;case"screen-space":this.screenSpace=this.hasAttribute("screen-space")}}}customElements.define("pc-screen",v);class w extends p{constructor(){super("script"),this.observer=new MutationObserver(this.handleMutations.bind(this)),this.observer.observe(this,{childList:!0}),this.addEventListener("scriptattributeschange",this.handleScriptAttributesChange.bind(this)),this.addEventListener("scriptenablechange",this.handleScriptEnableChange.bind(this))}async connectedCallback(){await super.connectedCallback(),this.querySelectorAll(":scope > pc-script").forEach((t=>{const e=t.getAttribute("name"),s=t.getAttribute("attributes");e&&this.createScript(e,s)}))}applyAttributes(t,e){try{const s=e?JSON.parse(e):{};Object.assign(t,s)}catch(t){console.error(`Error parsing attributes JSON string ${e}:`,t)}}handleScriptAttributesChange(t){const e=t.target.getAttribute("name");if(!e||!this.component)return;const s=this.component.get(e);s&&this.applyAttributes(s,t.detail.attributes)}handleScriptEnableChange(t){const e=t.target.getAttribute("name");if(!e||!this.component)return;const s=this.component.get(e);s&&(s.enabled=t.detail.enabled)}createScript(t,e){return this.component?(this.component.on(`create:${t}`,(t=>{this.applyAttributes(t,e)})),this.component.create(t)):null}destroyScript(t){this.component&&this.component.destroy(t)}handleMutations(t){for(const e of t)e.addedNodes.forEach((t=>{if(t instanceof HTMLElement&&"pc-script"===t.tagName.toLowerCase()){const e=t.getAttribute("name"),s=t.getAttribute("attributes");e&&this.createScript(e,s)}})),e.removedNodes.forEach((t=>{if(t instanceof HTMLElement&&"pc-script"===t.tagName.toLowerCase()){const e=t.getAttribute("name");e&&this.destroyScript(e)}}))}disconnectedCallback(){var t;this.observer.disconnect(),null===(t=super.disconnectedCallback)||void 0===t||t.call(this)}get component(){return super.component}}customElements.define("pc-scripts",w);class k extends HTMLElement{constructor(){super(...arguments),this._attributes="{}",this._enabled=!0,this._name=""}set scriptAttributes(t){this._attributes=t,this.dispatchEvent(new CustomEvent("scriptattributeschange",{detail:{attributes:t},bubbles:!0}))}get scriptAttributes(){return this._attributes}set enabled(t){this._enabled=t,this.dispatchEvent(new CustomEvent("scriptenablechange",{detail:{enabled:t},bubbles:!0}))}get enabled(){return this._enabled}set name(t){this._name=t}get name(){return this._name}static get observedAttributes(){return["attributes","enabled","name"]}attributeChangedCallback(t,e,s){switch(t){case"attributes":this.scriptAttributes=s;break;case"enabled":this.enabled="false"!==s;break;case"name":this.name=s}}}customElements.define("pc-script",k);class S extends p{constructor(){super("sound"),this._pitch=1,this._positional=!1,this._volume=1}getInitialComponentData(){return{pitch:this._pitch,positional:this._positional,volume:this._volume}}get component(){return super.component}set pitch(t){this._pitch=t,this.component&&(this.component.pitch=t)}get pitch(){return this._pitch}set positional(t){this._positional=t,this.component&&(this.component.positional=t)}get positional(){return this._positional}set volume(t){this._volume=t,this.component&&(this.component.volume=t)}get volume(){return this._volume}static get observedAttributes(){return[...super.observedAttributes,"pitch","positional","volume"]}attributeChangedCallback(t,e,s){switch(super.attributeChangedCallback(t,e,s),t){case"pitch":this.pitch=parseFloat(s);break;case"positional":this.positional=this.hasAttribute("positional");break;case"volume":this.volume=parseFloat(s)}}}customElements.define("pc-sounds",S);class E extends HTMLElement{constructor(){super(...arguments),this._asset="",this._autoPlay=!1,this._duration=null,this._loop=!1,this._name="",this._overlap=!1,this._pitch=1,this._startTime=0,this._volume=1,this.soundSlot=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.error(`${this.tagName.toLowerCase()} should be a descendant of pc-app`);await t.getApplication();const e={autoPlay:this._autoPlay,loop:this._loop,overlap:this._overlap,pitch:this._pitch,startTime:this._startTime,volume:this._volume};this._duration&&(e.duration=this._duration),this.soundSlot=this.soundElement.component.addSlot(this._name,e),this.asset=this._asset,this.soundSlot.play()}disconnectedCallback(){this.soundElement.component.removeSlot(this._name)}get soundElement(){const t=this.parentElement;return t instanceof S?t:(console.warn("pc-sound-slot must be a direct child of a pc-sound element"),null)}set asset(t){var e;if(this._asset=t,this.soundSlot){const s=null===(e=l.get(t))||void 0===e?void 0:e.id;s&&(this.soundSlot.asset=s)}}get asset(){return this._asset}set autoPlay(t){this._autoPlay=t,this.soundSlot&&(this.soundSlot.autoPlay=t)}get autoPlay(){return this._autoPlay}set duration(t){this._duration=t,this.soundSlot&&(this.soundSlot.duration=t)}get duration(){return this._duration}set loop(t){this._loop=t,this.soundSlot&&(this.soundSlot.loop=t)}get loop(){return this._loop}set name(t){this._name=t,this.soundSlot&&(this.soundSlot.name=t)}get name(){return this._name}set overlap(t){this._overlap=t,this.soundSlot&&(this.soundSlot.overlap=t)}get overlap(){return this._overlap}set pitch(t){this._pitch=t,this.soundSlot&&(this.soundSlot.pitch=t)}get pitch(){return this._pitch}set startTime(t){this._startTime=t,this.soundSlot&&(this.soundSlot.startTime=t)}get startTime(){return this._startTime}set volume(t){this._volume=t,this.soundSlot&&(this.soundSlot.volume=t)}get volume(){return this._volume}static get observedAttributes(){return["asset","autoPlay","duration","loop","name","overlap","pitch","startTime","volume"]}attributeChangedCallback(t,e,s){switch(t){case"asset":this.asset=s;break;case"duration":this.duration=parseFloat(s);break;case"loop":this.loop=this.hasAttribute("loop");break;case"name":this.name=s;break;case"overlap":this.overlap=this.hasAttribute("overlap");break;case"pitch":this.pitch=parseFloat(s);break;case"startTime":this.startTime=parseFloat(s);break;case"volume":this.volume=parseFloat(s)}}}customElements.define("pc-sound",E);class A extends HTMLElement{constructor(){super(...arguments),this._asset=""}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);await t.getApplication();const e=this.getAttribute("asset");e&&(this.asset=e)}_loadModel(){const t=l.get(this._asset);if(!t)return;const e=t.resource.instantiateRenderEntity(),s=this.closest("pc-entity");if(s)s.entity.addChild(e);else{this.closest("pc-app").app.root.addChild(e)}}set asset(t){this._asset=t,this._loadModel()}get asset(){return this._asset}static get observedAttributes(){return["asset"]}attributeChangedCallback(t,e,s){if("asset"===t)this.asset=s}}customElements.define("pc-model",A);class x extends HTMLElement{constructor(){super(...arguments),this._fog="none",this._fogColor=new e.Color(1,1,1),this._fogDensity=0,this._fogStart=0,this._fogEnd=1e3,this.scene=null}async connectedCallback(){const t=this.closest("pc-app");if(!t)return void console.warn(`${this.tagName} must be a child of pc-app`);const e=await t.getApplication();this.scene=e.scene,this.updateSceneSettings()}updateSceneSettings(){this.scene&&(this.scene.rendering.fog=this._fog,this.scene.rendering.fogColor=this._fogColor,this.scene.rendering.fogDensity=this._fogDensity,this.scene.rendering.fogStart=this._fogStart,this.scene.rendering.fogEnd=this._fogEnd)}set fog(t){this._fog=t,this.scene&&(this.scene.rendering.fog=t)}get fog(){return this._fog}set fogColor(t){this._fogColor=t,this.scene&&(this.scene.rendering.fogColor=t)}get fogColor(){return this._fogColor}set fogDensity(t){this._fogDensity=t,this.scene&&(this.scene.rendering.fogDensity=t)}get fogDensity(){return this._fogDensity}set fogStart(t){this._fogStart=t,this.scene&&(this.scene.rendering.fogStart=t)}get fogStart(){return this._fogStart}set fogEnd(t){this._fogEnd=t,this.scene&&(this.scene.rendering.fogEnd=t)}get fogEnd(){return this._fogEnd}static get observedAttributes(){return["fog","fog-color","fog-density","fog-start","fog-end"]}attributeChangedCallback(t,e,s){switch(t){case"fog":this.fog=s;break;case"fog-color":this.fogColor=n(s);break;case"fog-density":this.fogDensity=parseFloat(s);break;case"fog-start":this.fogStart=parseFloat(s);break;case"fog-end":this.fogEnd=parseFloat(s)}}}customElements.define("pc-scene",x);class M extends HTMLElement{constructor(){super(...arguments),this._asset="",this._intensity=1,this._rotation=[0,0,0],this._level=0,this._solidColor=!1}async connectedCallback(){const t=this.closest("pc-app");t?(await t.getApplication(),this.asset=this.getAttribute("asset")||"",this.solidColor=this.hasAttribute("solid-color")):console.warn(`${this.tagName} must be a child of pc-app`)}getScene(){const t=this.closest("pc-app");if(!t)return;const e=t.app;return e?e.scene:void 0}set asset(t){this._asset=t;const e=this.getScene();if(e){const s=l.get(t);s&&(s.resource?e.envAtlas=s.resource:s.once("load",(()=>{e.envAtlas=s.resource})))}}get asset(){return this._asset}set intensity(t){this._intensity=t;const e=this.getScene();e&&(e.skyboxIntensity=this._intensity)}get intensity(){return this._intensity}set rotation(t){this._rotation=t;const s=this.getScene();s&&(s.skyboxRotation=(new e.Quat).setFromEulerAngles(this._rotation[0],this._rotation[1],this._rotation[2]))}get rotation(){return this._rotation}set solidColor(t){this._solidColor=t;const s=this.getScene();if(s){const t=s.layers.getLayerById(e.LAYERID_SKYBOX);t&&(t.enabled=!this._solidColor)}}get solidColor(){return this._solidColor}set level(t){this._level=t;const e=this.getScene();e&&(e.skyboxMip=this._level)}get level(){return this._level}static get observedAttributes(){return["asset","intensity","level","rotation","solid-color"]}attributeChangedCallback(t,e,s){switch(t){case"asset":this.asset=s;break;case"intensity":this.intensity=parseFloat(s);break;case"rotation":this.rotation=s.split(",").map(Number);break;case"level":this.level=parseInt(s,10);break;case"solid-color":this.solidColor=this.hasAttribute("solid-color")}}}customElements.define("pc-sky",M),t.AppElement=i,t.AssetElement=l,t.CameraComponentElement=d,t.CollisionComponentElement=m,t.ComponentElement=p,t.ElementComponentElement=g,t.EntityElement=h,t.GSplatComponentElement=_,t.LightComponentElement=f,t.ListenerComponentElement=u,t.MaterialElement=b,t.ModelElement=A,t.ModuleElement=s,t.RenderComponentElement=y,t.RigidBodyComponentElement=C,t.SceneElement=x,t.ScreenComponentElement=v,t.ScriptComponentElement=w,t.ScriptElement=k,t.SkyElement=M,t.SoundComponentElement=S,t.SoundSlotElement=E}));
2
2
  //# sourceMappingURL=pwc.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pwc.min.js","sources":["../src/module.ts","../src/app.ts","../src/utils.ts","../src/entity.ts","../src/asset.ts","../src/components/component.ts","../src/components/listener-component.ts","../src/components/camera-component.ts","../src/components/collision-component.ts","../src/components/element-component.ts","../src/components/gsplat-component.ts","../src/components/light-component.ts","../src/material.ts","../src/components/render-component.ts","../src/components/rigidbody-component.ts","../src/components/screen-component.ts","../src/components/script-component.ts","../src/components/script.ts","../src/components/sound-component.ts","../src/components/sound-slot.ts","../src/model.ts","../src/scene.ts","../src/sky.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModuleElement","HTMLElement","constructor","super","this","loadPromise","loadModule","name","getAttribute","glue","wasm","fallback","WasmModule","setConfig","glueUrl","wasmUrl","fallbackUrl","Promise","resolve","getInstance","getLoadPromise","customElements","define","AppElement","_canvas","_highResolution","app","_onWindowResize","bind","appReadyPromise","appReadyResolve","connectedCallback","moduleElements","querySelectorAll","all","Array","from","map","module","document","createElement","appendChild","Application","graphicsDeviceOptions","devicePixelRatio","window","keyboard","Keyboard","mouse","Mouse","setCanvasFillMode","FILLMODE_FILL_WINDOW","setCanvasResolution","RESOLUTION_AUTO","assetElements","forEach","assetElement","createAsset","asset","assets","add","materialElements","materialElement","createMaterial","preload","start","addEventListener","disconnectedCallback","destroy","removeEventListener","contains","removeChild","getApplication","resizeCanvas","highResolution","value","graphicsDevice","maxPixelRatio","observedAttributes","attributeChangedCallback","_oldValue","_newValue","hasAttribute","parseColor","startsWith","Color","fromString","components","split","Number","parseVec2","Vec2","parseVec3","Vec3","parseVec4","Vec4","EntityElement","_enabled","_name","_position","_rotation","_scale","_tags","entity","appElement","closest","console","warn","tagName","Entity","parentElement","toLowerCase","addChild","root","nameAttr","positionAttr","rotationAttr","scaleAttr","tagsAttr","position","rotation","scale","tags","tag","trim","enabled","setLocalPosition","setLocalEulerAngles","setLocalScale","clear","newValue","extToType","Map","AssetElement","_preload","destroyAsset","id","src","type","ext","pop","_a","get","Asset","url","unload","querySelector","ComponentElement","componentName","_component","_componentName","getInitialComponentData","addComponent","error","entityElement","component","removeComponent","ListenerComponentElement","CameraComponentElement","_clearColor","_clearColorBuffer","_clearDepthBuffer","_clearStencilBuffer","_cullFaces","_farClip","_flipFaces","_fov","_frustumCulling","_nearClip","_orthographic","_orthoHeight","_priority","_rect","_scissorRect","clearColor","clearColorBuffer","clearDepthBuffer","clearStencilBuffer","cullFaces","farClip","flipFaces","fov","frustumCulling","nearClip","orthographic","orthoHeight","priority","rect","scissorRect","projection","PROJECTION_ORTHOGRAPHIC","PROJECTION_PERSPECTIVE","parseFloat","CollisionComponentElement","_axis","_convexHull","_halfExtents","_height","_radius","_type","axis","convexHull","halfExtents","height","radius","parseInt","ElementComponentElement","_anchor","_asset","_autoWidth","_color","_fontSize","_lineHeight","_pivot","_text","_width","_wrapLines","_material","useFog","anchor","autoWidth","color","fontAsset","fontSize","lineHeight","pivot","text","width","wrapLines","GSplatComponentElement","LightComponentElement","_castShadows","_innerConeAngle","_intensity","_normalOffsetBias","_outerConeAngle","_range","_shadowBias","_shadowDistance","castShadows","innerConeAngle","intensity","normalOffsetBias","outerConeAngle","range","shadowBias","shadowDistance","includes","MaterialElement","_diffuse","_diffuseMap","_metalnessMap","_normalMap","_roughnessMap","material","StandardMaterial","glossInvert","useMetalness","diffuse","diffuseMap","metalnessMap","normalMap","roughnessMap","update","setMap","property","loaded","resource","anisotropy","once","RenderComponentElement","_receiveShadows","receiveShadows","RigidBodyComponentElement","_angularDamping","_angularFactor","_friction","_linearDamping","_linearFactor","_mass","_restitution","_rollingFriction","angularDamping","angularFactor","friction","linearDamping","linearFactor","mass","restitution","rollingFriction","ScreenComponentElement","_screenSpace","_resolution","_referenceResolution","_blend","_scaleBlend","referenceResolution","resolution","scaleBlend","scaleMode","SCALEMODE_BLEND","SCALEMODE_NONE","screenSpace","blend","ScriptComponentElement","observer","MutationObserver","handleMutations","observe","childList","handleScriptAttributesChange","handleScriptEnableChange","scriptElement","scriptName","attributes","createScript","applyAttributes","script","attributesObject","JSON","parse","Object","assign","event","target","detail","on","create","destroyScript","mutations","mutation","addedNodes","node","removedNodes","disconnect","call","ScriptElement","_attributes","scriptAttributes","dispatchEvent","CustomEvent","bubbles","SoundComponentElement","_pitch","_positional","_volume","pitch","positional","volume","SoundSlotElement","_autoPlay","_duration","_loop","_overlap","_startTime","soundSlot","options","autoPlay","loop","overlap","startTime","duration","soundElement","addSlot","play","removeSlot","ModelElement","_loadModel","instantiateRenderEntity","parentEntityElement","SceneElement","_fog","_fogColor","_fogDensity","_fogStart","_fogEnd","scene","updateSceneSettings","rendering","fog","fogColor","fogDensity","fogStart","fogEnd","SkyElement","_level","_solidColor","solidColor","getScene","envAtlas","skyboxIntensity","skyboxRotation","Quat","setFromEulerAngles","layer","layers","getLayerById","LAYERID_SKYBOX","level","skyboxMip"],"mappings":"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"}
1
+ {"version":3,"file":"pwc.min.js","sources":["../src/module.ts","../src/app.ts","../src/utils.ts","../src/entity.ts","../src/asset.ts","../src/components/component.ts","../src/components/listener-component.ts","../src/components/camera-component.ts","../src/components/collision-component.ts","../src/components/element-component.ts","../src/components/gsplat-component.ts","../src/components/light-component.ts","../src/material.ts","../src/components/render-component.ts","../src/components/rigidbody-component.ts","../src/components/screen-component.ts","../src/components/script-component.ts","../src/components/script.ts","../src/components/sound-component.ts","../src/components/sound-slot.ts","../src/model.ts","../src/scene.ts","../src/sky.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModuleElement","HTMLElement","constructor","super","this","loadPromise","loadModule","name","getAttribute","glue","wasm","fallback","WasmModule","setConfig","glueUrl","wasmUrl","fallbackUrl","Promise","resolve","getInstance","getLoadPromise","customElements","define","AppElement","_canvas","_highResolution","app","_onWindowResize","bind","appReadyPromise","appReadyResolve","connectedCallback","moduleElements","querySelectorAll","all","Array","from","map","module","document","createElement","appendChild","Application","graphicsDeviceOptions","devicePixelRatio","window","keyboard","Keyboard","mouse","Mouse","setCanvasFillMode","FILLMODE_FILL_WINDOW","setCanvasResolution","RESOLUTION_AUTO","assetElements","forEach","assetElement","createAsset","asset","assets","add","materialElements","materialElement","createMaterial","preload","start","addEventListener","disconnectedCallback","destroy","removeEventListener","contains","removeChild","getApplication","resizeCanvas","highResolution","value","graphicsDevice","maxPixelRatio","observedAttributes","attributeChangedCallback","_oldValue","_newValue","hasAttribute","parseColor","startsWith","Color","fromString","components","split","Number","parseVec2","Vec2","parseVec3","Vec3","parseVec4","Vec4","EntityElement","_enabled","_name","_position","_rotation","_scale","_tags","_entityReady","_resolveEntity","entity","appElement","closest","console","warn","tagName","Entity","parentElement","toLowerCase","addChild","root","nameAttr","positionAttr","rotationAttr","scaleAttr","tagsAttr","position","rotation","scale","tags","tag","trim","child","enabled","setLocalPosition","setLocalEulerAngles","setLocalScale","clear","newValue","extToType","Map","AssetElement","_preload","destroyAsset","id","src","type","ext","pop","_a","get","Asset","url","unload","querySelector","ComponentElement","componentName","_component","_componentName","getInitialComponentData","addComponent","error","entityElement","component","removeComponent","ListenerComponentElement","CameraComponentElement","_clearColor","_clearColorBuffer","_clearDepthBuffer","_clearStencilBuffer","_cullFaces","_farClip","_flipFaces","_fov","_frustumCulling","_nearClip","_orthographic","_orthoHeight","_priority","_rect","_scissorRect","clearColor","clearColorBuffer","clearDepthBuffer","clearStencilBuffer","cullFaces","farClip","flipFaces","fov","frustumCulling","nearClip","orthographic","orthoHeight","priority","rect","scissorRect","projection","PROJECTION_ORTHOGRAPHIC","PROJECTION_PERSPECTIVE","parseFloat","CollisionComponentElement","_angularOffset","Quat","_axis","_convexHull","_halfExtents","_height","_linearOffset","_radius","_type","axis","angularOffset","convexHull","halfExtents","height","linearOffset","radius","x","y","z","q","setFromEulerAngles","parseQuat","parseInt","ElementComponentElement","_anchor","_asset","_autoWidth","_color","_fontSize","_lineHeight","_pivot","_text","_width","_wrapLines","_material","useFog","anchor","autoWidth","color","fontAsset","fontSize","lineHeight","pivot","text","width","wrapLines","GSplatComponentElement","LightComponentElement","_castShadows","_innerConeAngle","_intensity","_normalOffsetBias","_outerConeAngle","_range","_shadowBias","_shadowDistance","castShadows","innerConeAngle","intensity","normalOffsetBias","outerConeAngle","range","shadowBias","shadowDistance","includes","MaterialElement","_diffuse","_diffuseMap","_metalnessMap","_normalMap","_roughnessMap","material","StandardMaterial","glossInvert","useMetalness","diffuse","diffuseMap","metalnessMap","normalMap","roughnessMap","update","setMap","property","loaded","resource","anisotropy","once","RenderComponentElement","_receiveShadows","receiveShadows","RigidBodyComponentElement","_angularDamping","_angularFactor","_friction","_linearDamping","_linearFactor","_mass","_restitution","_rollingFriction","angularDamping","angularFactor","friction","linearDamping","linearFactor","mass","restitution","rollingFriction","ScreenComponentElement","_screenSpace","_resolution","_referenceResolution","_blend","_scaleBlend","referenceResolution","resolution","scaleBlend","scaleMode","SCALEMODE_BLEND","SCALEMODE_NONE","screenSpace","blend","ScriptComponentElement","observer","MutationObserver","handleMutations","observe","childList","handleScriptAttributesChange","handleScriptEnableChange","scriptElement","scriptName","attributes","createScript","applyAttributes","script","attributesObject","JSON","parse","Object","assign","event","target","detail","on","create","destroyScript","mutations","mutation","addedNodes","node","removedNodes","disconnect","call","ScriptElement","_attributes","scriptAttributes","dispatchEvent","CustomEvent","bubbles","SoundComponentElement","_pitch","_positional","_volume","pitch","positional","volume","SoundSlotElement","_autoPlay","_duration","_loop","_overlap","_startTime","soundSlot","options","autoPlay","loop","overlap","startTime","duration","soundElement","addSlot","play","removeSlot","ModelElement","_loadModel","instantiateRenderEntity","parentEntityElement","SceneElement","_fog","_fogColor","_fogDensity","_fogStart","_fogEnd","scene","updateSceneSettings","rendering","fog","fogColor","fogDensity","fogStart","fogEnd","SkyElement","_level","_solidColor","solidColor","getScene","envAtlas","skyboxIntensity","skyboxRotation","layer","layers","getLayerById","LAYERID_SKYBOX","level","skyboxMip"],"mappings":"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"}
package/dist/pwc.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { WasmModule, Application, Keyboard, Mouse, FILLMODE_FILL_WINDOW, RESOLUTION_AUTO, Color, Vec2, Vec3, Vec4, Entity, Asset, PROJECTION_ORTHOGRAPHIC, PROJECTION_PERSPECTIVE, StandardMaterial, SCALEMODE_BLEND, SCALEMODE_NONE, Quat, LAYERID_SKYBOX } from 'playcanvas';
1
+ import { WasmModule, Application, Keyboard, Mouse, FILLMODE_FILL_WINDOW, RESOLUTION_AUTO, Color, Quat, Vec2, Vec3, Vec4, Entity, Asset, PROJECTION_ORTHOGRAPHIC, PROJECTION_PERSPECTIVE, StandardMaterial, SCALEMODE_BLEND, SCALEMODE_NONE, LAYERID_SKYBOX } from 'playcanvas';
2
2
 
3
3
  class ModuleElement extends HTMLElement {
4
4
  constructor() {
@@ -149,6 +149,18 @@ const parseColor = (value) => {
149
149
  const components = value.split(',').map(Number);
150
150
  return new Color(components);
151
151
  };
152
+ /**
153
+ * Parse an Euler angles string into a Quat object. String can be in the format of 'x,y,z'.
154
+ *
155
+ * @param value - The Euler angles string to parse.
156
+ * @returns The parsed Quat object.
157
+ */
158
+ const parseQuat = (value) => {
159
+ const [x, y, z] = value.split(',').map(Number);
160
+ const q = new Quat();
161
+ q.setFromEulerAngles(x, y, z);
162
+ return q;
163
+ };
152
164
  /**
153
165
  * Parse a Vec2 string into a Vec2 object. String can be in the format of 'x,y'.
154
166
  *
@@ -210,6 +222,9 @@ class EntityElement extends HTMLElement {
210
222
  * The tags of the entity.
211
223
  */
212
224
  this._tags = [];
225
+ this._entityReady = new Promise((resolve) => {
226
+ this._resolveEntity = resolve;
227
+ });
213
228
  /**
214
229
  * The PlayCanvas entity instance.
215
230
  */
@@ -225,8 +240,11 @@ class EntityElement extends HTMLElement {
225
240
  const app = await appElement.getApplication();
226
241
  // Create a new entity
227
242
  this.entity = new Entity(this._name, app);
228
- if (this.parentElement && this.parentElement.tagName.toLowerCase() === 'pc-entity' && this.parentElement.entity) {
229
- this.parentElement.entity.addChild(this.entity);
243
+ this._resolveEntity(this.entity);
244
+ if (this.parentElement &&
245
+ this.parentElement.tagName.toLowerCase() === 'pc-entity') {
246
+ const parentEntity = await this.parentElement._entityReady;
247
+ parentEntity.addChild(this.entity);
230
248
  }
231
249
  else {
232
250
  app.root.addChild(this.entity);
@@ -250,9 +268,18 @@ class EntityElement extends HTMLElement {
250
268
  }
251
269
  disconnectedCallback() {
252
270
  if (this.entity) {
271
+ // Notify all children that their entities are about to become invalid
272
+ const children = this.querySelectorAll('pc-entity');
273
+ children.forEach((child) => {
274
+ child.entity = null;
275
+ });
253
276
  this.entity.destroy();
254
277
  this.entity = null;
255
278
  }
279
+ // Reset the promise for potential reconnection
280
+ this._entityReady = new Promise((resolve) => {
281
+ this._resolveEntity = resolve;
282
+ });
256
283
  }
257
284
  /**
258
285
  * Sets the enabled state of the entity.
@@ -966,19 +993,23 @@ class CollisionComponentElement extends ComponentElement {
966
993
  */
967
994
  constructor() {
968
995
  super('collision');
996
+ this._angularOffset = new Quat();
969
997
  this._axis = 1;
970
998
  this._convexHull = false;
971
999
  this._halfExtents = new Vec3(0.5, 0.5, 0.5);
972
1000
  this._height = 2;
1001
+ this._linearOffset = new Vec3();
973
1002
  this._radius = 0.5;
974
1003
  this._type = 'box';
975
1004
  }
976
1005
  getInitialComponentData() {
977
1006
  return {
978
1007
  axis: this._axis,
1008
+ angularOffset: this._angularOffset,
979
1009
  convexHull: this._convexHull,
980
1010
  halfExtents: this._halfExtents,
981
1011
  height: this._height,
1012
+ linearOffset: this._linearOffset,
982
1013
  radius: this._radius,
983
1014
  type: this._type
984
1015
  };
@@ -990,6 +1021,15 @@ class CollisionComponentElement extends ComponentElement {
990
1021
  get component() {
991
1022
  return super.component;
992
1023
  }
1024
+ set angularOffset(value) {
1025
+ this._angularOffset = value;
1026
+ if (this.component) {
1027
+ this.component.angularOffset = value;
1028
+ }
1029
+ }
1030
+ get angularOffset() {
1031
+ return this._angularOffset;
1032
+ }
993
1033
  set axis(value) {
994
1034
  this._axis = value;
995
1035
  if (this.component) {
@@ -1026,6 +1066,15 @@ class CollisionComponentElement extends ComponentElement {
1026
1066
  get height() {
1027
1067
  return this._height;
1028
1068
  }
1069
+ set linearOffset(value) {
1070
+ this._linearOffset = value;
1071
+ if (this.component) {
1072
+ this.component.linearOffset = value;
1073
+ }
1074
+ }
1075
+ get linearOffset() {
1076
+ return this._linearOffset;
1077
+ }
1029
1078
  set radius(value) {
1030
1079
  this._radius = value;
1031
1080
  if (this.component) {
@@ -1045,11 +1094,14 @@ class CollisionComponentElement extends ComponentElement {
1045
1094
  return this._type;
1046
1095
  }
1047
1096
  static get observedAttributes() {
1048
- return [...super.observedAttributes, 'axis', 'convex-hull', 'half-extents', 'height', 'radius', 'type'];
1097
+ return [...super.observedAttributes, 'angular-offset', 'axis', 'convex-hull', 'half-extents', 'height', 'linear-offset', 'radius', 'type'];
1049
1098
  }
1050
1099
  attributeChangedCallback(name, _oldValue, newValue) {
1051
1100
  super.attributeChangedCallback(name, _oldValue, newValue);
1052
1101
  switch (name) {
1102
+ case 'angular-offset':
1103
+ this.angularOffset = parseQuat(newValue);
1104
+ break;
1053
1105
  case 'axis':
1054
1106
  this.axis = parseInt(newValue, 10);
1055
1107
  break;
@@ -1062,6 +1114,9 @@ class CollisionComponentElement extends ComponentElement {
1062
1114
  case 'height':
1063
1115
  this.height = parseFloat(newValue);
1064
1116
  break;
1117
+ case 'linear-offset':
1118
+ this.linearOffset = parseVec3(newValue);
1119
+ break;
1065
1120
  case 'radius':
1066
1121
  this.radius = parseFloat(newValue);
1067
1122
  break;
@@ -2111,7 +2166,7 @@ class ScreenComponentElement extends ComponentElement {
2111
2166
  super.attributeChangedCallback(name, _oldValue, newValue);
2112
2167
  switch (name) {
2113
2168
  case 'priority':
2114
- this.priority = parseInt(newValue);
2169
+ this.priority = parseInt(newValue, 10);
2115
2170
  break;
2116
2171
  case 'reference-resolution':
2117
2172
  this.referenceResolution = parseVec2(newValue);