cubing 0.21.0 → 0.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-global/cubing.bundle-global.js +1 -1
- package/dist/esm/{3d-JZD3V366.js → 3d-B25DP5PE.js} +3 -3
- package/dist/esm/{3d-JZD3V366.js.map → 3d-B25DP5PE.js.map} +0 -0
- package/dist/esm/bluetooth/index.js +1 -1
- package/dist/esm/{chunk-5DN4DAAX.js → chunk-APIIMJG6.js} +2 -2
- package/dist/esm/{chunk-5DN4DAAX.js.map → chunk-APIIMJG6.js.map} +0 -0
- package/dist/esm/{chunk-7GADUDIG.js → chunk-CSVAFZSB.js} +2 -2
- package/dist/esm/{chunk-7GADUDIG.js.map → chunk-CSVAFZSB.js.map} +0 -0
- package/dist/esm/{chunk-CQS6JZ7G.js → chunk-MUQMBH2S.js} +4 -4
- package/dist/esm/{chunk-CQS6JZ7G.js.map → chunk-MUQMBH2S.js.map} +2 -2
- package/dist/esm/puzzles/index.js +5 -5
- package/dist/esm/scramble/index.js +2 -2
- package/dist/esm/search/index.js +2 -2
- package/dist/esm/twisty/index.js +3 -3
- package/dist/types/puzzles/index.d.ts +5 -1
- package/dist/types/puzzles/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cubing/puzzles/index.ts +2 -2
- package/dist/.DS_Store +0 -0
- package/dist/esm/.DS_Store +0 -0
|
@@ -1047,7 +1047,7 @@ Vertex distance ${this.vertexdistance}`}writeSchreierSims(e){let n=this.getOrbit
|
|
|
1047
1047
|
<line x1="0.15767665" y1="262.276878" x2="70.4345542" y2="2.27488928e-16" id="TOP"></line>
|
|
1048
1048
|
</g>
|
|
1049
1049
|
</g>
|
|
1050
|
-
</svg>`});var ww,bw=oe(()=>{ww={id:"square1",fullName:"Square-1",inventedBy:["Karel Hr\u0161el","Vojtech Kopsk\xFD"],inventionYear:1990,def:async()=>(await Promise.resolve().then(()=>(yw(),gw))).sq1HyperOrbitKPuzzle,svg:async()=>(await Promise.resolve().then(()=>(xw(),vw))).default}});var P0={};Rt(P0,{cube2x2x2:()=>vf,cube3x3x3:()=>no,experimentalCube3x3x3KPuzzle:()=>Ye,experimentalCubeAppearance:()=>Hn,experimentalCustomPGPuzzleLoader:()=>gf,experimentalGetFaceletAppearance:()=>Au,puzzleIDForWCAEvent:()=>MM,puzzles:()=>Ot});function MM(r){return EM[r]?.puzzleID??null}var Ot,EM,qn=oe(()=>{Ux();Ht();La();$o();jx();Zx();iw();aw();hw();mw();bw();Mu();Ot={"3x3x3":no,"2x2x2":vf,"4x4x4":Aa("4x4x4","4\xD74\xD74 Cube"),"5x5x5":Aa("5x5x5","5\xD75\xD75 Cube"),"6x6x6":Aa("6x6x6","6\xD76\xD76 Cube"),"7x7x7":Aa("7x7x7","7\xD77\xD77 Cube"),"40x40x40":Aa("40x40x40","40\xD740\xD740 Cube"),clock:nw,megaminx:Tu,pyraminx:dw,skewb:Jo("skewb","Skewb",{inventedBy:["Tony Durham"]}),square1:ww,fto:C0,gigaminx:Jo("gigaminx","Gigaminx",{inventedBy:["Tyler Fox"],inventionYear:2006}),master_tetraminx:Jo("master tetraminx","Master Tetraminx",{inventedBy:["Katsuhiko Okamoto"],inventionYear:2002})},EM={"333":{puzzleID:"3x3x3",eventName:"3x3x3 Cube"},"222":{puzzleID:"2x2x2",eventName:"2x2x2 Cube"},"444":{puzzleID:"4x4x4",eventName:"4x4x4 Cube"},"555":{puzzleID:"5x5x5",eventName:"5x5x5 Cube"},"666":{puzzleID:"6x6x6",eventName:"6x6x6 Cube"},"777":{puzzleID:"7x7x7",eventName:"7x7x7 Cube"},"333bf":{puzzleID:"3x3x3",eventName:"3x3x3 Blindfolded"},"333fm":{puzzleID:"3x3x3",eventName:"3x3x3 Fewest Moves"},"333oh":{puzzleID:"3x3x3",eventName:"3x3x3 One-Handed"},clock:{puzzleID:"clock",eventName:"Clock"},minx:{puzzleID:"megaminx",eventName:"Megaminx"},pyram:{puzzleID:"pyraminx",eventName:"Pyraminx"},skewb:{puzzleID:"skewb",eventName:"Skewb"},sq1:{puzzleID:"square1",eventName:"Square-1"},"444bf":{puzzleID:"4x4x4",eventName:"4x4x4 Blindfolded"},"555bf":{puzzleID:"5x5x5",eventName:"5x5x5 Blindfolded"},"333mb":{puzzleID:"3x3x3",eventName:" 3x3x3 Multi-Blind"}}});var W1={};Rt(W1,{ACESFilmicToneMapping:()=>Xw,AddEquation:()=>es,AddOperation:()=>qw,AdditiveAnimationBlendMode:()=>tg,AdditiveBlending:()=>I0,AlphaFormat:()=>ib,AlwaysDepth:()=>Uw,AlwaysStencilFunc:()=>Kb,AmbientLight:()=>Op,AmbientLightProbe:()=>A1,AnimationClip:()=>Sl,AnimationLoader:()=>AS,AnimationMixer:()=>_1,AnimationObjectGroup:()=>F1,AnimationUtils:()=>Ct,ArcCurve:()=>gp,ArrayCamera:()=>$f,ArrowHelper:()=>uL,Audio:()=>qp,AudioAnalyser:()=>E1,AudioContext:()=>b1,AudioListener:()=>US,AudioLoader:()=>S1,AxesHelper:()=>G1,AxisHelper:()=>h_,BackSide:()=>At,BasicDepthPacking:()=>Qb,BasicShadowMap:()=>_M,BinaryTextureLoader:()=>g_,Bone:()=>cc,BooleanKeyframeTrack:()=>Lo,BoundingBoxHelper:()=>f_,Box2:()=>Fs,Box3:()=>Yn,Box3Helper:()=>sL,BoxBufferGeometry:()=>Ti,BoxGeometry:()=>Ti,BoxHelper:()=>N1,BufferAttribute:()=>qe,BufferGeometry:()=>Pe,BufferGeometryLoader:()=>x1,ByteType:()=>Zw,Cache:()=>As,Camera:()=>Va,CameraHelper:()=>oL,CanvasRenderer:()=>v_,CanvasTexture:()=>Jg,CatmullRomCurve3:()=>vp,CineonToneMapping:()=>Yw,CircleBufferGeometry:()=>sl,CircleGeometry:()=>sl,ClampToEdgeWrapping:()=>mn,Clock:()=>D1,Color:()=>xe,ColorKeyframeTrack:()=>Pp,CompressedTexture:()=>hp,CompressedTextureLoader:()=>DS,ConeBufferGeometry:()=>al,ConeGeometry:()=>al,CubeCamera:()=>Ku,CubeReflectionMapping:()=>ts,CubeRefractionMapping:()=>ns,CubeTexture:()=>ps,CubeTextureLoader:()=>f1,CubeUVReflectionMapping:()=>Ma,CubeUVRefractionMapping:()=>Pu,CubicBezierCurve:()=>mc,CubicBezierCurve3:()=>xp,CubicInterpolant:()=>u1,CullFaceBack:()=>k0,CullFaceFront:()=>Lw,CullFaceFrontBack:()=>FM,CullFaceNone:()=>Sw,Curve:()=>Xn,CurvePath:()=>s1,CustomBlending:()=>Dw,CustomToneMapping:()=>Kw,CylinderBufferGeometry:()=>bo,CylinderGeometry:()=>bo,Cylindrical:()=>qS,DataTexture:()=>vo,DataTexture2DArray:()=>$u,DataTexture3D:()=>Zf,DataTextureLoader:()=>p1,DataUtils:()=>fL,DecrementStencilOp:()=>WM,DecrementWrapStencilOp:()=>HM,DefaultLoadingManager:()=>LS,DepthFormat:()=>oo,DepthStencilFormat:()=>ss,DepthTexture:()=>ic,DirectionalLight:()=>Np,DirectionalLightHelper:()=>rL,DiscreteInterpolant:()=>c1,DodecahedronBufferGeometry:()=>ll,DodecahedronGeometry:()=>ll,DoubleSide:()=>jn,DstAlphaFactor:()=>Cw,DstColorFactor:()=>kw,DynamicBufferAttribute:()=>t_,DynamicCopyUsage:()=>rR,DynamicDrawUsage:()=>Fa,DynamicReadUsage:()=>tR,EdgesGeometry:()=>mp,EdgesHelper:()=>p_,EllipseCurve:()=>ul,EqualDepth:()=>Ow,EqualStencilFunc:()=>YM,EquirectangularReflectionMapping:()=>_u,EquirectangularRefractionMapping:()=>Cu,Euler:()=>xn,EventDispatcher:()=>gr,ExtrudeBufferGeometry:()=>Ji,ExtrudeGeometry:()=>Ji,FaceColors:()=>HF,FileLoader:()=>ki,FlatShading:()=>z0,Float16BufferAttribute:()=>Fg,Float32Attribute:()=>u_,Float32BufferAttribute:()=>Te,Float64Attribute:()=>c_,Float64BufferAttribute:()=>_g,FloatType:()=>Qi,Fog:()=>el,FogExp2:()=>$a,Font:()=>D_,FontLoader:()=>A_,FrontSide:()=>ji,Frustum:()=>Qa,GLBufferAttribute:()=>P1,GLSL1:()=>sR,GLSL3:()=>og,GammaEncoding:()=>Ef,GreaterDepth:()=>Ww,GreaterEqualDepth:()=>Gw,GreaterEqualStencilFunc:()=>JM,GreaterStencilFunc:()=>KM,GridHelper:()=>U1,Group:()=>gi,HalfFloatType:()=>rs,HemisphereLight:()=>Bp,HemisphereLightHelper:()=>eL,HemisphereLightProbe:()=>L1,IcosahedronBufferGeometry:()=>pl,IcosahedronGeometry:()=>pl,ImageBitmapLoader:()=>w1,ImageLoader:()=>Ll,ImageUtils:()=>so,ImmediateRenderObject:()=>E_,IncrementStencilOp:()=>GM,IncrementWrapStencilOp:()=>VM,InstancedBufferAttribute:()=>xo,InstancedBufferGeometry:()=>Vp,InstancedInterleavedBuffer:()=>C1,InstancedMesh:()=>sp,Int16Attribute:()=>o_,Int16BufferAttribute:()=>Rg,Int32Attribute:()=>a_,Int32BufferAttribute:()=>Tg,Int8Attribute:()=>n_,Int8BufferAttribute:()=>Dg,IntType:()=>$w,InterleavedBuffer:()=>yo,InterleavedBufferAttribute:()=>Ar,Interpolant:()=>$i,InterpolateDiscrete:()=>Iu,InterpolateLinear:()=>Uu,InterpolateSmooth:()=>Af,InvertStencilOp:()=>qM,JSONLoader:()=>x_,KeepStencilOp:()=>Rf,KeyframeTrack:()=>yi,LOD:()=>Yg,LatheBufferGeometry:()=>dl,LatheGeometry:()=>dl,Layers:()=>zf,LensFlare:()=>b_,LessDepth:()=>Nw,LessEqualDepth:()=>wf,LessEqualStencilFunc:()=>XM,LessStencilFunc:()=>QM,Light:()=>vi,LightProbe:()=>Al,Line:()=>Ki,Line3:()=>B1,LineBasicMaterial:()=>Jt,LineCurve:()=>cl,LineCurve3:()=>r1,LineDashedMaterial:()=>_p,LineLoop:()=>lp,LinePieces:()=>WF,LineSegments:()=>Bn,LineStrip:()=>GF,LinearEncoding:()=>Pn,LinearFilter:()=>Kt,LinearInterpolant:()=>Cp,LinearMipMapLinearFilter:()=>zM,LinearMipMapNearestFilter:()=>BM,LinearMipmapLinearFilter:()=>is,LinearMipmapNearestFilter:()=>H0,LinearToneMapping:()=>jw,Loader:()=>Mn,LoaderUtils:()=>Dc,LoadingManager:()=>kp,LoopOnce:()=>Vb,LoopPingPong:()=>qb,LoopRepeat:()=>Hb,LuminanceAlphaFormat:()=>ob,LuminanceFormat:()=>rb,MOUSE:()=>RM,Material:()=>Zt,MaterialLoader:()=>v1,Math:()=>wR,MathUtils:()=>wR,Matrix3:()=>Qt,Matrix4:()=>Ae,MaxEquation:()=>G0,Mesh:()=>Lt,MeshBasicMaterial:()=>vt,MeshDepthMaterial:()=>tc,MeshDistanceMaterial:()=>nc,MeshFaceMaterial:()=>jF,MeshLambertMaterial:()=>Tp,MeshMatcapMaterial:()=>Fp,MeshNormalMaterial:()=>Rp,MeshPhongMaterial:()=>Ep,MeshPhysicalMaterial:()=>Dp,MeshStandardMaterial:()=>Sc,MeshToonMaterial:()=>Mp,MinEquation:()=>O0,MirroredRepeatWrapping:()=>Bu,MixOperation:()=>Hw,MultiMaterial:()=>QF,MultiplyBlending:()=>N0,MultiplyOperation:()=>Fu,NearestFilter:()=>jt,NearestMipMapLinearFilter:()=>kM,NearestMipMapNearestFilter:()=>PM,NearestMipmapLinearFilter:()=>Lf,NearestMipmapNearestFilter:()=>Sf,NeverDepth:()=>Iw,NeverStencilFunc:()=>jM,NoBlending:()=>dr,NoColors:()=>VF,NoToneMapping:()=>io,NormalAnimationBlendMode:()=>Df,NormalBlending:()=>Ea,NotEqualDepth:()=>Vw,NotEqualStencilFunc:()=>ZM,NumberKeyframeTrack:()=>wl,Object3D:()=>je,ObjectLoader:()=>FS,ObjectSpaceNormalMap:()=>Xb,OctahedronBufferGeometry:()=>ws,OctahedronGeometry:()=>ws,OneFactor:()=>Tw,OneMinusDstAlphaFactor:()=>Pw,OneMinusDstColorFactor:()=>Bw,OneMinusSrcAlphaFactor:()=>V0,OneMinusSrcColorFactor:()=>_w,OrthographicCamera:()=>Ya,PCFShadowMap:()=>B0,PCFSoftShadowMap:()=>Aw,PMREMGenerator:()=>Gg,ParametricGeometry:()=>S_,Particle:()=>XF,ParticleBasicMaterial:()=>JF,ParticleSystem:()=>KF,ParticleSystemMaterial:()=>$F,Path:()=>hl,PerspectiveCamera:()=>Gt,Plane:()=>Fi,PlaneBufferGeometry:()=>ds,PlaneGeometry:()=>ds,PlaneHelper:()=>aL,PointCloud:()=>YF,PointCloudMaterial:()=>ZF,PointLight:()=>Up,PointLightHelper:()=>ZS,Points:()=>ol,PointsMaterial:()=>wo,PolarGridHelper:()=>tL,PolyhedronBufferGeometry:()=>Zi,PolyhedronGeometry:()=>Zi,PositionalAudio:()=>OS,PropertyBinding:()=>ut,PropertyMixer:()=>M1,QuadraticBezierCurve:()=>gc,QuadraticBezierCurve3:()=>yc,Quaternion:()=>ot,QuaternionKeyframeTrack:()=>Ls,QuaternionLinearInterpolant:()=>h1,REVISION:()=>xf,RGBADepthPacking:()=>Yb,RGBAFormat:()=>gn,RGBAIntegerFormat:()=>fb,RGBA_ASTC_10x10_Format:()=>Db,RGBA_ASTC_10x5_Format:()=>Sb,RGBA_ASTC_10x6_Format:()=>Lb,RGBA_ASTC_10x8_Format:()=>Ab,RGBA_ASTC_12x10_Format:()=>Eb,RGBA_ASTC_12x12_Format:()=>Mb,RGBA_ASTC_4x4_Format:()=>db,RGBA_ASTC_5x4_Format:()=>mb,RGBA_ASTC_5x5_Format:()=>gb,RGBA_ASTC_6x5_Format:()=>yb,RGBA_ASTC_6x6_Format:()=>vb,RGBA_ASTC_8x5_Format:()=>xb,RGBA_ASTC_8x6_Format:()=>wb,RGBA_ASTC_8x8_Format:()=>bb,RGBA_BPTC_Format:()=>Rb,RGBA_ETC2_EAC_Format:()=>eg,RGBA_PVRTC_2BPPV1_Format:()=>J0,RGBA_PVRTC_4BPPV1_Format:()=>Z0,RGBA_S3TC_DXT1_Format:()=>j0,RGBA_S3TC_DXT3_Format:()=>Q0,RGBA_S3TC_DXT5_Format:()=>Y0,RGBDEncoding:()=>rg,RGBEEncoding:()=>Mf,RGBEFormat:()=>sb,RGBFormat:()=>ro,RGBIntegerFormat:()=>hb,RGBM16Encoding:()=>ig,RGBM7Encoding:()=>ng,RGB_ETC1_Format:()=>pb,RGB_ETC2_Format:()=>$0,RGB_PVRTC_2BPPV1_Format:()=>K0,RGB_PVRTC_4BPPV1_Format:()=>X0,RGB_S3TC_DXT1_Format:()=>q0,RGFormat:()=>ub,RGIntegerFormat:()=>cb,RawShaderMaterial:()=>ms,Ray:()=>wr,Raycaster:()=>VS,RectAreaLight:()=>Gp,RedFormat:()=>ab,RedIntegerFormat:()=>lb,ReinhardToneMapping:()=>Qw,RepeatWrapping:()=>ku,ReplaceStencilOp:()=>OM,ReverseSubtractEquation:()=>Mw,RingBufferGeometry:()=>ml,RingGeometry:()=>ml,SRGB8_ALPHA8_ASTC_10x10_Format:()=>Ob,SRGB8_ALPHA8_ASTC_10x5_Format:()=>Ib,SRGB8_ALPHA8_ASTC_10x6_Format:()=>Ub,SRGB8_ALPHA8_ASTC_10x8_Format:()=>Nb,SRGB8_ALPHA8_ASTC_12x10_Format:()=>Gb,SRGB8_ALPHA8_ASTC_12x12_Format:()=>Wb,SRGB8_ALPHA8_ASTC_4x4_Format:()=>Tb,SRGB8_ALPHA8_ASTC_5x4_Format:()=>Fb,SRGB8_ALPHA8_ASTC_5x5_Format:()=>_b,SRGB8_ALPHA8_ASTC_6x5_Format:()=>Cb,SRGB8_ALPHA8_ASTC_6x6_Format:()=>Pb,SRGB8_ALPHA8_ASTC_8x5_Format:()=>kb,SRGB8_ALPHA8_ASTC_8x6_Format:()=>Bb,SRGB8_ALPHA8_ASTC_8x8_Format:()=>zb,Scene:()=>xs,SceneUtils:()=>w_,ShaderChunk:()=>$e,ShaderLib:()=>_i,ShaderMaterial:()=>Yi,ShadowMaterial:()=>Ap,Shape:()=>Ci,ShapeBufferGeometry:()=>bs,ShapeGeometry:()=>bs,ShapePath:()=>cL,ShapeUtils:()=>Pi,ShortType:()=>Jw,Skeleton:()=>hc,SkeletonHelper:()=>I1,SkinnedMesh:()=>uc,SmoothShading:()=>CM,Sphere:()=>vr,SphereBufferGeometry:()=>Ss,SphereGeometry:()=>Ss,Spherical:()=>Mc,SphericalHarmonics3:()=>Wp,SplineCurve:()=>vc,SpotLight:()=>Ip,SpotLightHelper:()=>XS,Sprite:()=>lc,SpriteMaterial:()=>rc,SrcAlphaFactor:()=>W0,SrcAlphaSaturateFactor:()=>zw,SrcColorFactor:()=>Fw,StaticCopyUsage:()=>iR,StaticDrawUsage:()=>Ta,StaticReadUsage:()=>eR,StereoCamera:()=>BS,StreamCopyUsage:()=>oR,StreamDrawUsage:()=>$M,StreamReadUsage:()=>nR,StringKeyframeTrack:()=>Ao,SubtractEquation:()=>Ew,SubtractiveBlending:()=>U0,TOUCH:()=>TM,TangentSpaceNormalMap:()=>us,TetrahedronBufferGeometry:()=>gl,TetrahedronGeometry:()=>gl,TextGeometry:()=>L_,Texture:()=>Yt,TextureLoader:()=>Lc,TorusBufferGeometry:()=>yl,TorusGeometry:()=>yl,TorusKnotBufferGeometry:()=>vl,TorusKnotGeometry:()=>vl,Triangle:()=>It,TriangleFanDrawMode:()=>UM,TriangleStripDrawMode:()=>IM,TrianglesDrawMode:()=>jb,TubeBufferGeometry:()=>xl,TubeGeometry:()=>xl,UVMapping:()=>bf,Uint16Attribute:()=>s_,Uint16BufferAttribute:()=>Qu,Uint32Attribute:()=>l_,Uint32BufferAttribute:()=>Yu,Uint8Attribute:()=>i_,Uint8BufferAttribute:()=>Eg,Uint8ClampedAttribute:()=>r_,Uint8ClampedBufferAttribute:()=>Mg,Uniform:()=>Ec,UniformsLib:()=>we,UniformsUtils:()=>p3,UnsignedByteType:()=>mr,UnsignedInt248Type:()=>os,UnsignedIntType:()=>zu,UnsignedShort4444Type:()=>eb,UnsignedShort5551Type:()=>tb,UnsignedShort565Type:()=>nb,UnsignedShortType:()=>Ra,VSMShadowMap:()=>Da,Vector2:()=>ee,Vector3:()=>M,Vector4:()=>xt,VectorKeyframeTrack:()=>bl,Vertex:()=>e_,VertexColors:()=>qF,VideoTexture:()=>Zg,WebGL1Renderer:()=>jg,WebGLCubeRenderTarget:()=>Zu,WebGLMultipleRenderTargets:()=>ug,WebGLMultisampleRenderTarget:()=>Vu,WebGLRenderTarget:()=>Qn,WebGLRenderTargetCube:()=>y_,WebGLRenderer:()=>ft,WebGLUtils:()=>Y3,WireframeGeometry:()=>Lp,WireframeHelper:()=>d_,WrapAroundEnding:()=>Nu,XHRLoader:()=>m_,ZeroCurvatureEnding:()=>as,ZeroFactor:()=>Rw,ZeroSlopeEnding:()=>ls,ZeroStencilOp:()=>NM,sRGBEncoding:()=>Ou});function oi(){let r=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0;return(yn[r&255]+yn[r>>8&255]+yn[r>>16&255]+yn[r>>24&255]+"-"+yn[e&255]+yn[e>>8&255]+"-"+yn[e>>16&15|64]+yn[e>>24&255]+"-"+yn[t&63|128]+yn[t>>8&255]+"-"+yn[t>>16&255]+yn[t>>24&255]+yn[n&255]+yn[n>>8&255]+yn[n>>16&255]+yn[n>>24&255]).toUpperCase()}function vn(r,e,t){return Math.max(e,Math.min(t,r))}function sg(r,e){return(r%e+e)%e}function aR(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function lR(r,e,t){return r!==e?(t-r)/(e-r):0}function Wu(r,e,t){return(1-t)*r+t*e}function uR(r,e,t,n){return Wu(r,e,1-Math.exp(-t*n))}function cR(r,e=1){return e-Math.abs(sg(r,e*2)-e)}function hR(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function fR(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function pR(r,e){return r+Math.floor(Math.random()*(e-r+1))}function dR(r,e){return r+Math.random()*(e-r)}function mR(r){return r*(.5-Math.random())}function gR(r){return r!==void 0&&(Tf=r%2147483647),Tf=Tf*16807%2147483647,(Tf-1)/2147483646}function yR(r){return r*cs}function vR(r){return r*Gu}function ag(r){return(r&r-1)==0&&r!==0}function Zb(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Jb(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function xR(r,e,t,n,i){let o=Math.cos,s=Math.sin,a=o(t/2),l=s(t/2),u=o((e+n)/2),c=s((e+n)/2),f=o((e-n)/2),h=s((e-n)/2),p=o((n-e)/2),d=s((n-e)/2);switch(i){case"XYX":r.set(a*c,l*f,l*h,a*u);break;case"YZY":r.set(l*h,a*c,l*f,a*u);break;case"ZXZ":r.set(l*f,l*h,a*c,a*u);break;case"XZX":r.set(a*c,l*d,l*p,a*u);break;case"YXY":r.set(l*p,a*c,l*d,a*u);break;case"ZYZ":r.set(l*d,l*p,a*c,a*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function $b(r){if(r.length===0)return-1/0;let e=r[0];for(let t=1,n=r.length;t<n;++t)r[t]>e&&(e=r[t]);return e}function _a(r,e){return new bR[r](e)}function Ff(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function e3(r,e=0){let t=3735928559^e,n=1103547991^e;for(let i=0,o;i<r.length;i++)o=r.charCodeAt(i),t=Math.imul(t^o,2654435761),n=Math.imul(n^o,1597334677);return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&n)+(t>>>0)}function lg(r){return typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&r instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap?so.getDataURL(r):r.data?{data:Array.prototype.slice.call(r.data),width:r.width,height:r.height,type:r.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}function fg(r,e,t,n,i){for(let o=0,s=r.length-3;o<=s;o+=3){fs.fromArray(r,o);let a=i.x*Math.abs(fs.x)+i.y*Math.abs(fs.y)+i.z*Math.abs(fs.z),l=e.dot(fs),u=t.dot(fs),c=n.dot(fs);if(Math.max(-Math.max(l,u,c),Math.min(l,u,c))>a)return!1}return!0}function Sg(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}function Lg(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Ag(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}function CR(r,e,t,n,i,o,s,a){let l;if(e.side===At?l=n.intersectTriangle(s,o,i,!0,a):l=n.intersectTriangle(i,o,s,e.side!==jn,a),l===null)return null;jf.copy(a),jf.applyMatrix4(r.matrixWorld);let u=t.ray.origin.distanceTo(jf);return u<t.near||u>t.far?null:{distance:u,point:jf.clone(),object:r}}function Qf(r,e,t,n,i,o,s,a,l,u,c,f){ho.fromBufferAttribute(i,u),fo.fromBufferAttribute(i,c),po.fromBufferAttribute(i,f);let h=r.morphTargetInfluences;if(o&&h){Of.set(0,0,0),Gf.set(0,0,0),Wf.set(0,0,0);for(let d=0,g=o.length;d<g;d++){let x=h[d],y=o[d];x!==0&&(kg.fromBufferAttribute(y,u),Bg.fromBufferAttribute(y,c),zg.fromBufferAttribute(y,f),s?(Of.addScaledVector(kg,x),Gf.addScaledVector(Bg,x),Wf.addScaledVector(zg,x)):(Of.addScaledVector(kg.sub(ho),x),Gf.addScaledVector(Bg.sub(fo),x),Wf.addScaledVector(zg.sub(po),x)))}ho.add(Of),fo.add(Gf),po.add(Wf)}r.isSkinnedMesh&&(r.boneTransform(u,ho),r.boneTransform(c,fo),r.boneTransform(f,po));let p=CR(r,e,t,n,ho,fo,po,Ig);if(p){a&&(Vf.fromBufferAttribute(a,u),Hf.fromBufferAttribute(a,c),qf.fromBufferAttribute(a,f),p.uv=It.getUV(Ig,ho,fo,po,Vf,Hf,qf,new ee)),l&&(Vf.fromBufferAttribute(l,u),Hf.fromBufferAttribute(l,c),qf.fromBufferAttribute(l,f),p.uv2=It.getUV(Ig,ho,fo,po,Vf,Hf,qf,new ee));let d={a:u,b:c,c:f,normal:new M,materialIndex:0};It.getNormal(ho,fo,po,d.normal),p.face=d}return p}function Wa(r){let e={};for(let t in r){e[t]={};for(let n in r[t]){let i=r[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[t][n]=i.clone():Array.isArray(i)?e[t][n]=i.slice():e[t][n]=i}}return e}function Dn(r){let e={};for(let t=0;t<r.length;t++){let n=Wa(r[t]);for(let i in n)e[i]=n[i]}return e}function d3(){let r=null,e=!1,t=null,n=null;function i(o,s){t(o,s),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(o){t=o},setContext:function(o){r=o}}}function IR(r,e){let t=e.isWebGL2,n=new WeakMap;function i(u,c){let f=u.array,h=u.usage,p=r.createBuffer();r.bindBuffer(c,p),r.bufferData(c,f,h),u.onUploadCallback();let d=5126;return f instanceof Float32Array?d=5126:f instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):f instanceof Uint16Array?u.isFloat16BufferAttribute?t?d=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):d=5123:f instanceof Int16Array?d=5122:f instanceof Uint32Array?d=5125:f instanceof Int32Array?d=5124:f instanceof Int8Array?d=5120:(f instanceof Uint8Array||f instanceof Uint8ClampedArray)&&(d=5121),{buffer:p,type:d,bytesPerElement:f.BYTES_PER_ELEMENT,version:u.version}}function o(u,c,f){let h=c.array,p=c.updateRange;r.bindBuffer(f,u),p.count===-1?r.bufferSubData(f,0,h):(t?r.bufferSubData(f,p.offset*h.BYTES_PER_ELEMENT,h,p.offset,p.count):r.bufferSubData(f,p.offset*h.BYTES_PER_ELEMENT,h.subarray(p.offset,p.offset+p.count)),p.count=-1)}function s(u){return u.isInterleavedBufferAttribute&&(u=u.data),n.get(u)}function a(u){u.isInterleavedBufferAttribute&&(u=u.data);let c=n.get(u);c&&(r.deleteBuffer(c.buffer),n.delete(u))}function l(u,c){if(u.isGLBufferAttribute){let h=n.get(u);(!h||h.version<u.version)&&n.set(u,{buffer:u.buffer,type:u.type,bytesPerElement:u.elementSize,version:u.version});return}u.isInterleavedBufferAttribute&&(u=u.data);let f=n.get(u);f===void 0?n.set(u,i(u,c)):f.version<u.version&&(o(f.buffer,u,c),f.version=u.version)}return{get:s,remove:a,update:l}}function c5(r,e,t,n,i){let o=new xe(0),s=0,a,l,u=null,c=0,f=null;function h(d,g){let x=!1,y=g.isScene===!0?g.background:null;y&&y.isTexture&&(y=e.get(y));let m=r.xr,b=m.getSession&&m.getSession();b&&b.environmentBlendMode==="additive"&&(y=null),y===null?p(o,s):y&&y.isColor&&(p(y,1),x=!0),(r.autoClear||x)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),y&&(y.isCubeTexture||y.mapping===Ma)?(l===void 0&&(l=new Lt(new Ti(1,1,1),new Yi({name:"BackgroundCubeMaterial",uniforms:Wa(_i.cube.uniforms),vertexShader:_i.cube.vertexShader,fragmentShader:_i.cube.fragmentShader,side:At,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(w,D,R){this.matrixWorld.copyPosition(R.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=y,l.material.uniforms.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,(u!==y||c!==y.version||f!==r.toneMapping)&&(l.material.needsUpdate=!0,u=y,c=y.version,f=r.toneMapping),d.unshift(l,l.geometry,l.material,0,0,null)):y&&y.isTexture&&(a===void 0&&(a=new Lt(new ds(2,2),new Yi({name:"BackgroundMaterial",uniforms:Wa(_i.background.uniforms),vertexShader:_i.background.vertexShader,fragmentShader:_i.background.fragmentShader,side:ji,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(a)),a.material.uniforms.t2D.value=y,y.matrixAutoUpdate===!0&&y.updateMatrix(),a.material.uniforms.uvTransform.value.copy(y.matrix),(u!==y||c!==y.version||f!==r.toneMapping)&&(a.material.needsUpdate=!0,u=y,c=y.version,f=r.toneMapping),d.unshift(a,a.geometry,a.material,0,0,null))}function p(d,g){t.buffers.color.setClear(d.r,d.g,d.b,g,i)}return{getClearColor:function(){return o},setClearColor:function(d,g=1){o.set(d),s=g,p(o,s)},getClearAlpha:function(){return s},setClearAlpha:function(d){s=d,p(o,s)},render:h}}function h5(r,e,t,n){let i=r.getParameter(34921),o=n.isWebGL2?null:e.get("OES_vertex_array_object"),s=n.isWebGL2||o!==null,a={},l=g(null),u=l;function c(B,z,O,V,q){let se=!1;if(s){let he=d(V,O,z);u!==he&&(u=he,h(u.object)),se=x(V,q),se&&y(V,q)}else{let he=z.wireframe===!0;(u.geometry!==V.id||u.program!==O.id||u.wireframe!==he)&&(u.geometry=V.id,u.program=O.id,u.wireframe=he,se=!0)}B.isInstancedMesh===!0&&(se=!0),q!==null&&t.update(q,34963),se&&(L(B,z,O,V),q!==null&&r.bindBuffer(34963,t.get(q).buffer))}function f(){return n.isWebGL2?r.createVertexArray():o.createVertexArrayOES()}function h(B){return n.isWebGL2?r.bindVertexArray(B):o.bindVertexArrayOES(B)}function p(B){return n.isWebGL2?r.deleteVertexArray(B):o.deleteVertexArrayOES(B)}function d(B,z,O){let V=O.wireframe===!0,q=a[B.id];q===void 0&&(q={},a[B.id]=q);let se=q[z.id];se===void 0&&(se={},q[z.id]=se);let he=se[V];return he===void 0&&(he=g(f()),se[V]=he),he}function g(B){let z=[],O=[],V=[];for(let q=0;q<i;q++)z[q]=0,O[q]=0,V[q]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:z,enabledAttributes:O,attributeDivisors:V,object:B,attributes:{},index:null}}function x(B,z){let O=u.attributes,V=B.attributes,q=0;for(let se in V){let he=O[se],Y=V[se];if(he===void 0||he.attribute!==Y||he.data!==Y.data)return!0;q++}return u.attributesNum!==q||u.index!==z}function y(B,z){let O={},V=B.attributes,q=0;for(let se in V){let he=V[se],Y={};Y.attribute=he,he.data&&(Y.data=he.data),O[se]=Y,q++}u.attributes=O,u.attributesNum=q,u.index=z}function m(){let B=u.newAttributes;for(let z=0,O=B.length;z<O;z++)B[z]=0}function b(B){w(B,0)}function w(B,z){let O=u.newAttributes,V=u.enabledAttributes,q=u.attributeDivisors;O[B]=1,V[B]===0&&(r.enableVertexAttribArray(B),V[B]=1),q[B]!==z&&((n.isWebGL2?r:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](B,z),q[B]=z)}function D(){let B=u.newAttributes,z=u.enabledAttributes;for(let O=0,V=z.length;O<V;O++)z[O]!==B[O]&&(r.disableVertexAttribArray(O),z[O]=0)}function R(B,z,O,V,q,se){n.isWebGL2===!0&&(O===5124||O===5125)?r.vertexAttribIPointer(B,z,O,q,se):r.vertexAttribPointer(B,z,O,V,q,se)}function L(B,z,O,V){if(n.isWebGL2===!1&&(B.isInstancedMesh||V.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;m();let q=V.attributes,se=O.getAttributes(),he=z.defaultAttributeValues;for(let Y in se){let X=se[Y];if(X.location>=0){let ve=q[Y];if(ve===void 0&&(Y==="instanceMatrix"&&B.instanceMatrix&&(ve=B.instanceMatrix),Y==="instanceColor"&&B.instanceColor&&(ve=B.instanceColor)),ve!==void 0){let pe=ve.normalized,Le=ve.itemSize,Ie=t.get(ve);if(Ie===void 0)continue;let P=Ie.buffer,Z=Ie.type,ae=Ie.bytesPerElement;if(ve.isInterleavedBufferAttribute){let ne=ve.data,fe=ne.stride,W=ve.offset;if(ne&&ne.isInstancedInterleavedBuffer){for(let Q=0;Q<X.locationSize;Q++)w(X.location+Q,ne.meshPerAttribute);B.isInstancedMesh!==!0&&V._maxInstanceCount===void 0&&(V._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let Q=0;Q<X.locationSize;Q++)b(X.location+Q);r.bindBuffer(34962,P);for(let Q=0;Q<X.locationSize;Q++)R(X.location+Q,Le/X.locationSize,Z,pe,fe*ae,(W+Le/X.locationSize*Q)*ae)}else{if(ve.isInstancedBufferAttribute){for(let ne=0;ne<X.locationSize;ne++)w(X.location+ne,ve.meshPerAttribute);B.isInstancedMesh!==!0&&V._maxInstanceCount===void 0&&(V._maxInstanceCount=ve.meshPerAttribute*ve.count)}else for(let ne=0;ne<X.locationSize;ne++)b(X.location+ne);r.bindBuffer(34962,P);for(let ne=0;ne<X.locationSize;ne++)R(X.location+ne,Le/X.locationSize,Z,pe,Le*ae,Le/X.locationSize*ne*ae)}}else if(he!==void 0){let pe=he[Y];if(pe!==void 0)switch(pe.length){case 2:r.vertexAttrib2fv(X.location,pe);break;case 3:r.vertexAttrib3fv(X.location,pe);break;case 4:r.vertexAttrib4fv(X.location,pe);break;default:r.vertexAttrib1fv(X.location,pe)}}}}D()}function T(){C();for(let B in a){let z=a[B];for(let O in z){let V=z[O];for(let q in V)p(V[q].object),delete V[q];delete z[O]}delete a[B]}}function U(B){if(a[B.id]===void 0)return;let z=a[B.id];for(let O in z){let V=z[O];for(let q in V)p(V[q].object),delete V[q];delete z[O]}delete a[B.id]}function F(B){for(let z in a){let O=a[z];if(O[B.id]===void 0)continue;let V=O[B.id];for(let q in V)p(V[q].object),delete V[q];delete O[B.id]}}function C(){j(),u!==l&&(u=l,h(u.object))}function j(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:c,reset:C,resetDefaultState:j,dispose:T,releaseStatesOfGeometry:U,releaseStatesOfProgram:F,initAttributes:m,enableAttribute:b,disableUnusedAttributes:D}}function f5(r,e,t,n){let i=n.isWebGL2,o;function s(u){o=u}function a(u,c){r.drawArrays(o,u,c),t.update(c,o,1)}function l(u,c,f){if(f===0)return;let h,p;if(i)h=r,p="drawArraysInstanced";else if(h=e.get("ANGLE_instanced_arrays"),p="drawArraysInstancedANGLE",h===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}h[p](o,u,c,f),t.update(c,o,f)}this.setMode=s,this.render=a,this.renderInstances=l}function p5(r,e,t){let n;function i(){if(n!==void 0)return n;if(e.has("EXT_texture_filter_anisotropic")===!0){let L=e.get("EXT_texture_filter_anisotropic");n=r.getParameter(L.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function o(L){if(L==="highp"){if(r.getShaderPrecisionFormat(35633,36338).precision>0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";L="mediump"}return L==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let s=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&r instanceof WebGL2ComputeRenderingContext,a=t.precision!==void 0?t.precision:"highp",l=o(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);let u=s||e.has("WEBGL_draw_buffers"),c=t.logarithmicDepthBuffer===!0,f=r.getParameter(34930),h=r.getParameter(35660),p=r.getParameter(3379),d=r.getParameter(34076),g=r.getParameter(34921),x=r.getParameter(36347),y=r.getParameter(36348),m=r.getParameter(36349),b=h>0,w=s||e.has("OES_texture_float"),D=b&&w,R=s?r.getParameter(36183):0;return{isWebGL2:s,drawBuffers:u,getMaxAnisotropy:i,getMaxPrecision:o,precision:a,logarithmicDepthBuffer:c,maxTextures:f,maxVertexTextures:h,maxTextureSize:p,maxCubemapSize:d,maxAttributes:g,maxVertexUniforms:x,maxVaryings:y,maxFragmentUniforms:m,vertexTextures:b,floatFragmentTextures:w,floatVertexTextures:D,maxSamples:R}}function d5(r){let e=this,t=null,n=0,i=!1,o=!1,s=new Fi,a=new Qt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,h,p){let d=f.length!==0||h||n!==0||i;return i=h,t=c(f,p,0),n=f.length,d},this.beginShadows=function(){o=!0,c(null)},this.endShadows=function(){o=!1,u()},this.setState=function(f,h,p){let d=f.clippingPlanes,g=f.clipIntersection,x=f.clipShadows,y=r.get(f);if(!i||d===null||d.length===0||o&&!x)o?c(null):u();else{let m=o?0:n,b=m*4,w=y.clippingState||null;l.value=w,w=c(d,h,b,p);for(let D=0;D!==b;++D)w[D]=t[D];y.clippingState=w,this.numIntersection=g?this.numPlanes:0,this.numPlanes+=m}};function u(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function c(f,h,p,d){let g=f!==null?f.length:0,x=null;if(g!==0){if(x=l.value,d!==!0||x===null){let y=p+g*4,m=h.matrixWorldInverse;a.getNormalMatrix(m),(x===null||x.length<y)&&(x=new Float32Array(y));for(let b=0,w=p;b!==g;++b,w+=4)s.copy(f[b]).applyMatrix4(m,a),s.normal.toArray(x,w),x[w+3]=s.constant}l.value=x,l.needsUpdate=!0}return e.numPlanes=g,e.numIntersection=0,x}}function m5(r){let e=new WeakMap;function t(s,a){return a===_u?s.mapping=ts:a===Cu&&(s.mapping=ns),s}function n(s){if(s&&s.isTexture&&s.isRenderTargetTexture===!1){let a=s.mapping;if(a===_u||a===Cu)if(e.has(s)){let l=e.get(s).texture;return t(l,s.mapping)}else{let l=s.image;if(l&&l.height>0){let u=r.getRenderTarget(),c=new Zu(l.height/2);return c.fromEquirectangularTexture(r,s),e.set(s,c),r.setRenderTarget(u),s.addEventListener("dispose",i),t(c.texture,s.mapping)}else return null}}return s}function i(s){let a=s.target;a.removeEventListener("dispose",i);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function o(){e=new WeakMap}return{get:n,dispose:o}}function g5(r){return r===void 0||r.type!==mr?!1:r.encoding===Pn||r.encoding===Ou||r.encoding===Ef}function y5(){let r=[],e=[],t=[],n=mo;for(let i=0;i<g3;i++){let o=Math.pow(2,n);e.push(o);let s=1/o;i>mo-Xa?s=m3[i-mo+Xa-1]:i==0&&(s=0),t.push(s);let a=1/(o-1),l=-a/2,u=1+a/2,c=[l,l,u,l,u,u,l,l,u,u,l,u],f=6,h=6,p=3,d=2,g=1,x=new Float32Array(p*h*f),y=new Float32Array(d*h*f),m=new Float32Array(g*h*f);for(let w=0;w<f;w++){let D=w%3*2/3-1,R=w>2?0:-1,L=[D,R,0,D+2/3,R,0,D+2/3,R+1,0,D,R,0,D+2/3,R+1,0,D,R+1,0];x.set(L,p*h*w),y.set(c,d*h*w);let T=[w,w,w,w,w,w];m.set(T,g*h*w)}let b=new Pe;b.setAttribute("position",new qe(x,p)),b.setAttribute("uv",new qe(y,d)),b.setAttribute("faceIndex",new qe(m,g)),r.push(b),n>Xa&&n--}return{_lodPlanes:r,_sizeLods:e,_sigmas:t}}function w3(r){let e=new Qn(3*Xi,3*Xi,r);return e.texture.mapping=Ma,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Kf(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function v5(r){let e=new Float32Array(r),t=new M(0,1,0);return new ms({name:"SphericalGaussianBlur",defines:{n:r},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t},inputEncoding:{value:gs[Pn]},outputEncoding:{value:gs[Pn]}},vertexShader:Wg(),fragmentShader:`
|
|
1050
|
+
</svg>`});var ww,bw=oe(()=>{ww={id:"square1",fullName:"Square-1",inventedBy:["Karel Hr\u0161el","Vojtech Kopsk\xFD"],inventionYear:1990,def:async()=>(await Promise.resolve().then(()=>(yw(),gw))).sq1HyperOrbitKPuzzle,svg:async()=>(await Promise.resolve().then(()=>(xw(),vw))).default}});var P0={};Rt(P0,{cube2x2x2:()=>vf,cube3x3x3:()=>no,experimentalCube3x3x3KPuzzle:()=>Ye,experimentalCubeAppearance:()=>Hn,experimentalCustomPGPuzzleLoader:()=>gf,experimentalGetFaceletAppearance:()=>Au,puzzles:()=>Ot,wcaEventInfo:()=>MM});function MM(r){return EM[r]??null}var Ot,EM,qn=oe(()=>{Ux();Ht();La();$o();jx();Zx();iw();aw();hw();mw();bw();Mu();Ot={"3x3x3":no,"2x2x2":vf,"4x4x4":Aa("4x4x4","4\xD74\xD74 Cube"),"5x5x5":Aa("5x5x5","5\xD75\xD75 Cube"),"6x6x6":Aa("6x6x6","6\xD76\xD76 Cube"),"7x7x7":Aa("7x7x7","7\xD77\xD77 Cube"),"40x40x40":Aa("40x40x40","40\xD740\xD740 Cube"),clock:nw,megaminx:Tu,pyraminx:dw,skewb:Jo("skewb","Skewb",{inventedBy:["Tony Durham"]}),square1:ww,fto:C0,gigaminx:Jo("gigaminx","Gigaminx",{inventedBy:["Tyler Fox"],inventionYear:2006}),master_tetraminx:Jo("master tetraminx","Master Tetraminx",{inventedBy:["Katsuhiko Okamoto"],inventionYear:2002})},EM={"333":{puzzleID:"3x3x3",eventName:"3x3x3 Cube"},"222":{puzzleID:"2x2x2",eventName:"2x2x2 Cube"},"444":{puzzleID:"4x4x4",eventName:"4x4x4 Cube"},"555":{puzzleID:"5x5x5",eventName:"5x5x5 Cube"},"666":{puzzleID:"6x6x6",eventName:"6x6x6 Cube"},"777":{puzzleID:"7x7x7",eventName:"7x7x7 Cube"},"333bf":{puzzleID:"3x3x3",eventName:"3x3x3 Blindfolded"},"333fm":{puzzleID:"3x3x3",eventName:"3x3x3 Fewest Moves"},"333oh":{puzzleID:"3x3x3",eventName:"3x3x3 One-Handed"},clock:{puzzleID:"clock",eventName:"Clock"},minx:{puzzleID:"megaminx",eventName:"Megaminx"},pyram:{puzzleID:"pyraminx",eventName:"Pyraminx"},skewb:{puzzleID:"skewb",eventName:"Skewb"},sq1:{puzzleID:"square1",eventName:"Square-1"},"444bf":{puzzleID:"4x4x4",eventName:"4x4x4 Blindfolded"},"555bf":{puzzleID:"5x5x5",eventName:"5x5x5 Blindfolded"},"333mb":{puzzleID:"3x3x3",eventName:" 3x3x3 Multi-Blind"}}});var W1={};Rt(W1,{ACESFilmicToneMapping:()=>Xw,AddEquation:()=>es,AddOperation:()=>qw,AdditiveAnimationBlendMode:()=>tg,AdditiveBlending:()=>I0,AlphaFormat:()=>ib,AlwaysDepth:()=>Uw,AlwaysStencilFunc:()=>Kb,AmbientLight:()=>Op,AmbientLightProbe:()=>A1,AnimationClip:()=>Sl,AnimationLoader:()=>AS,AnimationMixer:()=>_1,AnimationObjectGroup:()=>F1,AnimationUtils:()=>Ct,ArcCurve:()=>gp,ArrayCamera:()=>$f,ArrowHelper:()=>uL,Audio:()=>qp,AudioAnalyser:()=>E1,AudioContext:()=>b1,AudioListener:()=>US,AudioLoader:()=>S1,AxesHelper:()=>G1,AxisHelper:()=>h_,BackSide:()=>At,BasicDepthPacking:()=>Qb,BasicShadowMap:()=>_M,BinaryTextureLoader:()=>g_,Bone:()=>cc,BooleanKeyframeTrack:()=>Lo,BoundingBoxHelper:()=>f_,Box2:()=>Fs,Box3:()=>Yn,Box3Helper:()=>sL,BoxBufferGeometry:()=>Ti,BoxGeometry:()=>Ti,BoxHelper:()=>N1,BufferAttribute:()=>qe,BufferGeometry:()=>Pe,BufferGeometryLoader:()=>x1,ByteType:()=>Zw,Cache:()=>As,Camera:()=>Va,CameraHelper:()=>oL,CanvasRenderer:()=>v_,CanvasTexture:()=>Jg,CatmullRomCurve3:()=>vp,CineonToneMapping:()=>Yw,CircleBufferGeometry:()=>sl,CircleGeometry:()=>sl,ClampToEdgeWrapping:()=>mn,Clock:()=>D1,Color:()=>xe,ColorKeyframeTrack:()=>Pp,CompressedTexture:()=>hp,CompressedTextureLoader:()=>DS,ConeBufferGeometry:()=>al,ConeGeometry:()=>al,CubeCamera:()=>Ku,CubeReflectionMapping:()=>ts,CubeRefractionMapping:()=>ns,CubeTexture:()=>ps,CubeTextureLoader:()=>f1,CubeUVReflectionMapping:()=>Ma,CubeUVRefractionMapping:()=>Pu,CubicBezierCurve:()=>mc,CubicBezierCurve3:()=>xp,CubicInterpolant:()=>u1,CullFaceBack:()=>k0,CullFaceFront:()=>Lw,CullFaceFrontBack:()=>FM,CullFaceNone:()=>Sw,Curve:()=>Xn,CurvePath:()=>s1,CustomBlending:()=>Dw,CustomToneMapping:()=>Kw,CylinderBufferGeometry:()=>bo,CylinderGeometry:()=>bo,Cylindrical:()=>qS,DataTexture:()=>vo,DataTexture2DArray:()=>$u,DataTexture3D:()=>Zf,DataTextureLoader:()=>p1,DataUtils:()=>fL,DecrementStencilOp:()=>WM,DecrementWrapStencilOp:()=>HM,DefaultLoadingManager:()=>LS,DepthFormat:()=>oo,DepthStencilFormat:()=>ss,DepthTexture:()=>ic,DirectionalLight:()=>Np,DirectionalLightHelper:()=>rL,DiscreteInterpolant:()=>c1,DodecahedronBufferGeometry:()=>ll,DodecahedronGeometry:()=>ll,DoubleSide:()=>jn,DstAlphaFactor:()=>Cw,DstColorFactor:()=>kw,DynamicBufferAttribute:()=>t_,DynamicCopyUsage:()=>rR,DynamicDrawUsage:()=>Fa,DynamicReadUsage:()=>tR,EdgesGeometry:()=>mp,EdgesHelper:()=>p_,EllipseCurve:()=>ul,EqualDepth:()=>Ow,EqualStencilFunc:()=>YM,EquirectangularReflectionMapping:()=>_u,EquirectangularRefractionMapping:()=>Cu,Euler:()=>xn,EventDispatcher:()=>gr,ExtrudeBufferGeometry:()=>Ji,ExtrudeGeometry:()=>Ji,FaceColors:()=>HF,FileLoader:()=>ki,FlatShading:()=>z0,Float16BufferAttribute:()=>Fg,Float32Attribute:()=>u_,Float32BufferAttribute:()=>Te,Float64Attribute:()=>c_,Float64BufferAttribute:()=>_g,FloatType:()=>Qi,Fog:()=>el,FogExp2:()=>$a,Font:()=>D_,FontLoader:()=>A_,FrontSide:()=>ji,Frustum:()=>Qa,GLBufferAttribute:()=>P1,GLSL1:()=>sR,GLSL3:()=>og,GammaEncoding:()=>Ef,GreaterDepth:()=>Ww,GreaterEqualDepth:()=>Gw,GreaterEqualStencilFunc:()=>JM,GreaterStencilFunc:()=>KM,GridHelper:()=>U1,Group:()=>gi,HalfFloatType:()=>rs,HemisphereLight:()=>Bp,HemisphereLightHelper:()=>eL,HemisphereLightProbe:()=>L1,IcosahedronBufferGeometry:()=>pl,IcosahedronGeometry:()=>pl,ImageBitmapLoader:()=>w1,ImageLoader:()=>Ll,ImageUtils:()=>so,ImmediateRenderObject:()=>E_,IncrementStencilOp:()=>GM,IncrementWrapStencilOp:()=>VM,InstancedBufferAttribute:()=>xo,InstancedBufferGeometry:()=>Vp,InstancedInterleavedBuffer:()=>C1,InstancedMesh:()=>sp,Int16Attribute:()=>o_,Int16BufferAttribute:()=>Rg,Int32Attribute:()=>a_,Int32BufferAttribute:()=>Tg,Int8Attribute:()=>n_,Int8BufferAttribute:()=>Dg,IntType:()=>$w,InterleavedBuffer:()=>yo,InterleavedBufferAttribute:()=>Ar,Interpolant:()=>$i,InterpolateDiscrete:()=>Iu,InterpolateLinear:()=>Uu,InterpolateSmooth:()=>Af,InvertStencilOp:()=>qM,JSONLoader:()=>x_,KeepStencilOp:()=>Rf,KeyframeTrack:()=>yi,LOD:()=>Yg,LatheBufferGeometry:()=>dl,LatheGeometry:()=>dl,Layers:()=>zf,LensFlare:()=>b_,LessDepth:()=>Nw,LessEqualDepth:()=>wf,LessEqualStencilFunc:()=>XM,LessStencilFunc:()=>QM,Light:()=>vi,LightProbe:()=>Al,Line:()=>Ki,Line3:()=>B1,LineBasicMaterial:()=>Jt,LineCurve:()=>cl,LineCurve3:()=>r1,LineDashedMaterial:()=>_p,LineLoop:()=>lp,LinePieces:()=>WF,LineSegments:()=>Bn,LineStrip:()=>GF,LinearEncoding:()=>Pn,LinearFilter:()=>Kt,LinearInterpolant:()=>Cp,LinearMipMapLinearFilter:()=>zM,LinearMipMapNearestFilter:()=>BM,LinearMipmapLinearFilter:()=>is,LinearMipmapNearestFilter:()=>H0,LinearToneMapping:()=>jw,Loader:()=>Mn,LoaderUtils:()=>Dc,LoadingManager:()=>kp,LoopOnce:()=>Vb,LoopPingPong:()=>qb,LoopRepeat:()=>Hb,LuminanceAlphaFormat:()=>ob,LuminanceFormat:()=>rb,MOUSE:()=>RM,Material:()=>Zt,MaterialLoader:()=>v1,Math:()=>wR,MathUtils:()=>wR,Matrix3:()=>Qt,Matrix4:()=>Ae,MaxEquation:()=>G0,Mesh:()=>Lt,MeshBasicMaterial:()=>vt,MeshDepthMaterial:()=>tc,MeshDistanceMaterial:()=>nc,MeshFaceMaterial:()=>jF,MeshLambertMaterial:()=>Tp,MeshMatcapMaterial:()=>Fp,MeshNormalMaterial:()=>Rp,MeshPhongMaterial:()=>Ep,MeshPhysicalMaterial:()=>Dp,MeshStandardMaterial:()=>Sc,MeshToonMaterial:()=>Mp,MinEquation:()=>O0,MirroredRepeatWrapping:()=>Bu,MixOperation:()=>Hw,MultiMaterial:()=>QF,MultiplyBlending:()=>N0,MultiplyOperation:()=>Fu,NearestFilter:()=>jt,NearestMipMapLinearFilter:()=>kM,NearestMipMapNearestFilter:()=>PM,NearestMipmapLinearFilter:()=>Lf,NearestMipmapNearestFilter:()=>Sf,NeverDepth:()=>Iw,NeverStencilFunc:()=>jM,NoBlending:()=>dr,NoColors:()=>VF,NoToneMapping:()=>io,NormalAnimationBlendMode:()=>Df,NormalBlending:()=>Ea,NotEqualDepth:()=>Vw,NotEqualStencilFunc:()=>ZM,NumberKeyframeTrack:()=>wl,Object3D:()=>je,ObjectLoader:()=>FS,ObjectSpaceNormalMap:()=>Xb,OctahedronBufferGeometry:()=>ws,OctahedronGeometry:()=>ws,OneFactor:()=>Tw,OneMinusDstAlphaFactor:()=>Pw,OneMinusDstColorFactor:()=>Bw,OneMinusSrcAlphaFactor:()=>V0,OneMinusSrcColorFactor:()=>_w,OrthographicCamera:()=>Ya,PCFShadowMap:()=>B0,PCFSoftShadowMap:()=>Aw,PMREMGenerator:()=>Gg,ParametricGeometry:()=>S_,Particle:()=>XF,ParticleBasicMaterial:()=>JF,ParticleSystem:()=>KF,ParticleSystemMaterial:()=>$F,Path:()=>hl,PerspectiveCamera:()=>Gt,Plane:()=>Fi,PlaneBufferGeometry:()=>ds,PlaneGeometry:()=>ds,PlaneHelper:()=>aL,PointCloud:()=>YF,PointCloudMaterial:()=>ZF,PointLight:()=>Up,PointLightHelper:()=>ZS,Points:()=>ol,PointsMaterial:()=>wo,PolarGridHelper:()=>tL,PolyhedronBufferGeometry:()=>Zi,PolyhedronGeometry:()=>Zi,PositionalAudio:()=>OS,PropertyBinding:()=>ut,PropertyMixer:()=>M1,QuadraticBezierCurve:()=>gc,QuadraticBezierCurve3:()=>yc,Quaternion:()=>ot,QuaternionKeyframeTrack:()=>Ls,QuaternionLinearInterpolant:()=>h1,REVISION:()=>xf,RGBADepthPacking:()=>Yb,RGBAFormat:()=>gn,RGBAIntegerFormat:()=>fb,RGBA_ASTC_10x10_Format:()=>Db,RGBA_ASTC_10x5_Format:()=>Sb,RGBA_ASTC_10x6_Format:()=>Lb,RGBA_ASTC_10x8_Format:()=>Ab,RGBA_ASTC_12x10_Format:()=>Eb,RGBA_ASTC_12x12_Format:()=>Mb,RGBA_ASTC_4x4_Format:()=>db,RGBA_ASTC_5x4_Format:()=>mb,RGBA_ASTC_5x5_Format:()=>gb,RGBA_ASTC_6x5_Format:()=>yb,RGBA_ASTC_6x6_Format:()=>vb,RGBA_ASTC_8x5_Format:()=>xb,RGBA_ASTC_8x6_Format:()=>wb,RGBA_ASTC_8x8_Format:()=>bb,RGBA_BPTC_Format:()=>Rb,RGBA_ETC2_EAC_Format:()=>eg,RGBA_PVRTC_2BPPV1_Format:()=>J0,RGBA_PVRTC_4BPPV1_Format:()=>Z0,RGBA_S3TC_DXT1_Format:()=>j0,RGBA_S3TC_DXT3_Format:()=>Q0,RGBA_S3TC_DXT5_Format:()=>Y0,RGBDEncoding:()=>rg,RGBEEncoding:()=>Mf,RGBEFormat:()=>sb,RGBFormat:()=>ro,RGBIntegerFormat:()=>hb,RGBM16Encoding:()=>ig,RGBM7Encoding:()=>ng,RGB_ETC1_Format:()=>pb,RGB_ETC2_Format:()=>$0,RGB_PVRTC_2BPPV1_Format:()=>K0,RGB_PVRTC_4BPPV1_Format:()=>X0,RGB_S3TC_DXT1_Format:()=>q0,RGFormat:()=>ub,RGIntegerFormat:()=>cb,RawShaderMaterial:()=>ms,Ray:()=>wr,Raycaster:()=>VS,RectAreaLight:()=>Gp,RedFormat:()=>ab,RedIntegerFormat:()=>lb,ReinhardToneMapping:()=>Qw,RepeatWrapping:()=>ku,ReplaceStencilOp:()=>OM,ReverseSubtractEquation:()=>Mw,RingBufferGeometry:()=>ml,RingGeometry:()=>ml,SRGB8_ALPHA8_ASTC_10x10_Format:()=>Ob,SRGB8_ALPHA8_ASTC_10x5_Format:()=>Ib,SRGB8_ALPHA8_ASTC_10x6_Format:()=>Ub,SRGB8_ALPHA8_ASTC_10x8_Format:()=>Nb,SRGB8_ALPHA8_ASTC_12x10_Format:()=>Gb,SRGB8_ALPHA8_ASTC_12x12_Format:()=>Wb,SRGB8_ALPHA8_ASTC_4x4_Format:()=>Tb,SRGB8_ALPHA8_ASTC_5x4_Format:()=>Fb,SRGB8_ALPHA8_ASTC_5x5_Format:()=>_b,SRGB8_ALPHA8_ASTC_6x5_Format:()=>Cb,SRGB8_ALPHA8_ASTC_6x6_Format:()=>Pb,SRGB8_ALPHA8_ASTC_8x5_Format:()=>kb,SRGB8_ALPHA8_ASTC_8x6_Format:()=>Bb,SRGB8_ALPHA8_ASTC_8x8_Format:()=>zb,Scene:()=>xs,SceneUtils:()=>w_,ShaderChunk:()=>$e,ShaderLib:()=>_i,ShaderMaterial:()=>Yi,ShadowMaterial:()=>Ap,Shape:()=>Ci,ShapeBufferGeometry:()=>bs,ShapeGeometry:()=>bs,ShapePath:()=>cL,ShapeUtils:()=>Pi,ShortType:()=>Jw,Skeleton:()=>hc,SkeletonHelper:()=>I1,SkinnedMesh:()=>uc,SmoothShading:()=>CM,Sphere:()=>vr,SphereBufferGeometry:()=>Ss,SphereGeometry:()=>Ss,Spherical:()=>Mc,SphericalHarmonics3:()=>Wp,SplineCurve:()=>vc,SpotLight:()=>Ip,SpotLightHelper:()=>XS,Sprite:()=>lc,SpriteMaterial:()=>rc,SrcAlphaFactor:()=>W0,SrcAlphaSaturateFactor:()=>zw,SrcColorFactor:()=>Fw,StaticCopyUsage:()=>iR,StaticDrawUsage:()=>Ta,StaticReadUsage:()=>eR,StereoCamera:()=>BS,StreamCopyUsage:()=>oR,StreamDrawUsage:()=>$M,StreamReadUsage:()=>nR,StringKeyframeTrack:()=>Ao,SubtractEquation:()=>Ew,SubtractiveBlending:()=>U0,TOUCH:()=>TM,TangentSpaceNormalMap:()=>us,TetrahedronBufferGeometry:()=>gl,TetrahedronGeometry:()=>gl,TextGeometry:()=>L_,Texture:()=>Yt,TextureLoader:()=>Lc,TorusBufferGeometry:()=>yl,TorusGeometry:()=>yl,TorusKnotBufferGeometry:()=>vl,TorusKnotGeometry:()=>vl,Triangle:()=>It,TriangleFanDrawMode:()=>UM,TriangleStripDrawMode:()=>IM,TrianglesDrawMode:()=>jb,TubeBufferGeometry:()=>xl,TubeGeometry:()=>xl,UVMapping:()=>bf,Uint16Attribute:()=>s_,Uint16BufferAttribute:()=>Qu,Uint32Attribute:()=>l_,Uint32BufferAttribute:()=>Yu,Uint8Attribute:()=>i_,Uint8BufferAttribute:()=>Eg,Uint8ClampedAttribute:()=>r_,Uint8ClampedBufferAttribute:()=>Mg,Uniform:()=>Ec,UniformsLib:()=>we,UniformsUtils:()=>p3,UnsignedByteType:()=>mr,UnsignedInt248Type:()=>os,UnsignedIntType:()=>zu,UnsignedShort4444Type:()=>eb,UnsignedShort5551Type:()=>tb,UnsignedShort565Type:()=>nb,UnsignedShortType:()=>Ra,VSMShadowMap:()=>Da,Vector2:()=>ee,Vector3:()=>M,Vector4:()=>xt,VectorKeyframeTrack:()=>bl,Vertex:()=>e_,VertexColors:()=>qF,VideoTexture:()=>Zg,WebGL1Renderer:()=>jg,WebGLCubeRenderTarget:()=>Zu,WebGLMultipleRenderTargets:()=>ug,WebGLMultisampleRenderTarget:()=>Vu,WebGLRenderTarget:()=>Qn,WebGLRenderTargetCube:()=>y_,WebGLRenderer:()=>ft,WebGLUtils:()=>Y3,WireframeGeometry:()=>Lp,WireframeHelper:()=>d_,WrapAroundEnding:()=>Nu,XHRLoader:()=>m_,ZeroCurvatureEnding:()=>as,ZeroFactor:()=>Rw,ZeroSlopeEnding:()=>ls,ZeroStencilOp:()=>NM,sRGBEncoding:()=>Ou});function oi(){let r=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0;return(yn[r&255]+yn[r>>8&255]+yn[r>>16&255]+yn[r>>24&255]+"-"+yn[e&255]+yn[e>>8&255]+"-"+yn[e>>16&15|64]+yn[e>>24&255]+"-"+yn[t&63|128]+yn[t>>8&255]+"-"+yn[t>>16&255]+yn[t>>24&255]+yn[n&255]+yn[n>>8&255]+yn[n>>16&255]+yn[n>>24&255]).toUpperCase()}function vn(r,e,t){return Math.max(e,Math.min(t,r))}function sg(r,e){return(r%e+e)%e}function aR(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function lR(r,e,t){return r!==e?(t-r)/(e-r):0}function Wu(r,e,t){return(1-t)*r+t*e}function uR(r,e,t,n){return Wu(r,e,1-Math.exp(-t*n))}function cR(r,e=1){return e-Math.abs(sg(r,e*2)-e)}function hR(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function fR(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function pR(r,e){return r+Math.floor(Math.random()*(e-r+1))}function dR(r,e){return r+Math.random()*(e-r)}function mR(r){return r*(.5-Math.random())}function gR(r){return r!==void 0&&(Tf=r%2147483647),Tf=Tf*16807%2147483647,(Tf-1)/2147483646}function yR(r){return r*cs}function vR(r){return r*Gu}function ag(r){return(r&r-1)==0&&r!==0}function Zb(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function Jb(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function xR(r,e,t,n,i){let o=Math.cos,s=Math.sin,a=o(t/2),l=s(t/2),u=o((e+n)/2),c=s((e+n)/2),f=o((e-n)/2),h=s((e-n)/2),p=o((n-e)/2),d=s((n-e)/2);switch(i){case"XYX":r.set(a*c,l*f,l*h,a*u);break;case"YZY":r.set(l*h,a*c,l*f,a*u);break;case"ZXZ":r.set(l*f,l*h,a*c,a*u);break;case"XZX":r.set(a*c,l*d,l*p,a*u);break;case"YXY":r.set(l*p,a*c,l*d,a*u);break;case"ZYZ":r.set(l*d,l*p,a*c,a*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function $b(r){if(r.length===0)return-1/0;let e=r[0];for(let t=1,n=r.length;t<n;++t)r[t]>e&&(e=r[t]);return e}function _a(r,e){return new bR[r](e)}function Ff(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function e3(r,e=0){let t=3735928559^e,n=1103547991^e;for(let i=0,o;i<r.length;i++)o=r.charCodeAt(i),t=Math.imul(t^o,2654435761),n=Math.imul(n^o,1597334677);return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&n)+(t>>>0)}function lg(r){return typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement||typeof HTMLCanvasElement!="undefined"&&r instanceof HTMLCanvasElement||typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap?so.getDataURL(r):r.data?{data:Array.prototype.slice.call(r.data),width:r.width,height:r.height,type:r.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}function fg(r,e,t,n,i){for(let o=0,s=r.length-3;o<=s;o+=3){fs.fromArray(r,o);let a=i.x*Math.abs(fs.x)+i.y*Math.abs(fs.y)+i.z*Math.abs(fs.z),l=e.dot(fs),u=t.dot(fs),c=n.dot(fs);if(Math.max(-Math.max(l,u,c),Math.min(l,u,c))>a)return!1}return!0}function Sg(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}function Lg(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Ag(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}function CR(r,e,t,n,i,o,s,a){let l;if(e.side===At?l=n.intersectTriangle(s,o,i,!0,a):l=n.intersectTriangle(i,o,s,e.side!==jn,a),l===null)return null;jf.copy(a),jf.applyMatrix4(r.matrixWorld);let u=t.ray.origin.distanceTo(jf);return u<t.near||u>t.far?null:{distance:u,point:jf.clone(),object:r}}function Qf(r,e,t,n,i,o,s,a,l,u,c,f){ho.fromBufferAttribute(i,u),fo.fromBufferAttribute(i,c),po.fromBufferAttribute(i,f);let h=r.morphTargetInfluences;if(o&&h){Of.set(0,0,0),Gf.set(0,0,0),Wf.set(0,0,0);for(let d=0,g=o.length;d<g;d++){let x=h[d],y=o[d];x!==0&&(kg.fromBufferAttribute(y,u),Bg.fromBufferAttribute(y,c),zg.fromBufferAttribute(y,f),s?(Of.addScaledVector(kg,x),Gf.addScaledVector(Bg,x),Wf.addScaledVector(zg,x)):(Of.addScaledVector(kg.sub(ho),x),Gf.addScaledVector(Bg.sub(fo),x),Wf.addScaledVector(zg.sub(po),x)))}ho.add(Of),fo.add(Gf),po.add(Wf)}r.isSkinnedMesh&&(r.boneTransform(u,ho),r.boneTransform(c,fo),r.boneTransform(f,po));let p=CR(r,e,t,n,ho,fo,po,Ig);if(p){a&&(Vf.fromBufferAttribute(a,u),Hf.fromBufferAttribute(a,c),qf.fromBufferAttribute(a,f),p.uv=It.getUV(Ig,ho,fo,po,Vf,Hf,qf,new ee)),l&&(Vf.fromBufferAttribute(l,u),Hf.fromBufferAttribute(l,c),qf.fromBufferAttribute(l,f),p.uv2=It.getUV(Ig,ho,fo,po,Vf,Hf,qf,new ee));let d={a:u,b:c,c:f,normal:new M,materialIndex:0};It.getNormal(ho,fo,po,d.normal),p.face=d}return p}function Wa(r){let e={};for(let t in r){e[t]={};for(let n in r[t]){let i=r[t][n];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?e[t][n]=i.clone():Array.isArray(i)?e[t][n]=i.slice():e[t][n]=i}}return e}function Dn(r){let e={};for(let t=0;t<r.length;t++){let n=Wa(r[t]);for(let i in n)e[i]=n[i]}return e}function d3(){let r=null,e=!1,t=null,n=null;function i(o,s){t(o,s),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(o){t=o},setContext:function(o){r=o}}}function IR(r,e){let t=e.isWebGL2,n=new WeakMap;function i(u,c){let f=u.array,h=u.usage,p=r.createBuffer();r.bindBuffer(c,p),r.bufferData(c,f,h),u.onUploadCallback();let d=5126;return f instanceof Float32Array?d=5126:f instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):f instanceof Uint16Array?u.isFloat16BufferAttribute?t?d=5131:console.warn("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2."):d=5123:f instanceof Int16Array?d=5122:f instanceof Uint32Array?d=5125:f instanceof Int32Array?d=5124:f instanceof Int8Array?d=5120:(f instanceof Uint8Array||f instanceof Uint8ClampedArray)&&(d=5121),{buffer:p,type:d,bytesPerElement:f.BYTES_PER_ELEMENT,version:u.version}}function o(u,c,f){let h=c.array,p=c.updateRange;r.bindBuffer(f,u),p.count===-1?r.bufferSubData(f,0,h):(t?r.bufferSubData(f,p.offset*h.BYTES_PER_ELEMENT,h,p.offset,p.count):r.bufferSubData(f,p.offset*h.BYTES_PER_ELEMENT,h.subarray(p.offset,p.offset+p.count)),p.count=-1)}function s(u){return u.isInterleavedBufferAttribute&&(u=u.data),n.get(u)}function a(u){u.isInterleavedBufferAttribute&&(u=u.data);let c=n.get(u);c&&(r.deleteBuffer(c.buffer),n.delete(u))}function l(u,c){if(u.isGLBufferAttribute){let h=n.get(u);(!h||h.version<u.version)&&n.set(u,{buffer:u.buffer,type:u.type,bytesPerElement:u.elementSize,version:u.version});return}u.isInterleavedBufferAttribute&&(u=u.data);let f=n.get(u);f===void 0?n.set(u,i(u,c)):f.version<u.version&&(o(f.buffer,u,c),f.version=u.version)}return{get:s,remove:a,update:l}}function c5(r,e,t,n,i){let o=new xe(0),s=0,a,l,u=null,c=0,f=null;function h(d,g){let x=!1,y=g.isScene===!0?g.background:null;y&&y.isTexture&&(y=e.get(y));let m=r.xr,b=m.getSession&&m.getSession();b&&b.environmentBlendMode==="additive"&&(y=null),y===null?p(o,s):y&&y.isColor&&(p(y,1),x=!0),(r.autoClear||x)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),y&&(y.isCubeTexture||y.mapping===Ma)?(l===void 0&&(l=new Lt(new Ti(1,1,1),new Yi({name:"BackgroundCubeMaterial",uniforms:Wa(_i.cube.uniforms),vertexShader:_i.cube.vertexShader,fragmentShader:_i.cube.fragmentShader,side:At,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(w,D,R){this.matrixWorld.copyPosition(R.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),n.update(l)),l.material.uniforms.envMap.value=y,l.material.uniforms.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,(u!==y||c!==y.version||f!==r.toneMapping)&&(l.material.needsUpdate=!0,u=y,c=y.version,f=r.toneMapping),d.unshift(l,l.geometry,l.material,0,0,null)):y&&y.isTexture&&(a===void 0&&(a=new Lt(new ds(2,2),new Yi({name:"BackgroundMaterial",uniforms:Wa(_i.background.uniforms),vertexShader:_i.background.vertexShader,fragmentShader:_i.background.fragmentShader,side:ji,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),n.update(a)),a.material.uniforms.t2D.value=y,y.matrixAutoUpdate===!0&&y.updateMatrix(),a.material.uniforms.uvTransform.value.copy(y.matrix),(u!==y||c!==y.version||f!==r.toneMapping)&&(a.material.needsUpdate=!0,u=y,c=y.version,f=r.toneMapping),d.unshift(a,a.geometry,a.material,0,0,null))}function p(d,g){t.buffers.color.setClear(d.r,d.g,d.b,g,i)}return{getClearColor:function(){return o},setClearColor:function(d,g=1){o.set(d),s=g,p(o,s)},getClearAlpha:function(){return s},setClearAlpha:function(d){s=d,p(o,s)},render:h}}function h5(r,e,t,n){let i=r.getParameter(34921),o=n.isWebGL2?null:e.get("OES_vertex_array_object"),s=n.isWebGL2||o!==null,a={},l=g(null),u=l;function c(B,z,O,V,q){let se=!1;if(s){let he=d(V,O,z);u!==he&&(u=he,h(u.object)),se=x(V,q),se&&y(V,q)}else{let he=z.wireframe===!0;(u.geometry!==V.id||u.program!==O.id||u.wireframe!==he)&&(u.geometry=V.id,u.program=O.id,u.wireframe=he,se=!0)}B.isInstancedMesh===!0&&(se=!0),q!==null&&t.update(q,34963),se&&(L(B,z,O,V),q!==null&&r.bindBuffer(34963,t.get(q).buffer))}function f(){return n.isWebGL2?r.createVertexArray():o.createVertexArrayOES()}function h(B){return n.isWebGL2?r.bindVertexArray(B):o.bindVertexArrayOES(B)}function p(B){return n.isWebGL2?r.deleteVertexArray(B):o.deleteVertexArrayOES(B)}function d(B,z,O){let V=O.wireframe===!0,q=a[B.id];q===void 0&&(q={},a[B.id]=q);let se=q[z.id];se===void 0&&(se={},q[z.id]=se);let he=se[V];return he===void 0&&(he=g(f()),se[V]=he),he}function g(B){let z=[],O=[],V=[];for(let q=0;q<i;q++)z[q]=0,O[q]=0,V[q]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:z,enabledAttributes:O,attributeDivisors:V,object:B,attributes:{},index:null}}function x(B,z){let O=u.attributes,V=B.attributes,q=0;for(let se in V){let he=O[se],Y=V[se];if(he===void 0||he.attribute!==Y||he.data!==Y.data)return!0;q++}return u.attributesNum!==q||u.index!==z}function y(B,z){let O={},V=B.attributes,q=0;for(let se in V){let he=V[se],Y={};Y.attribute=he,he.data&&(Y.data=he.data),O[se]=Y,q++}u.attributes=O,u.attributesNum=q,u.index=z}function m(){let B=u.newAttributes;for(let z=0,O=B.length;z<O;z++)B[z]=0}function b(B){w(B,0)}function w(B,z){let O=u.newAttributes,V=u.enabledAttributes,q=u.attributeDivisors;O[B]=1,V[B]===0&&(r.enableVertexAttribArray(B),V[B]=1),q[B]!==z&&((n.isWebGL2?r:e.get("ANGLE_instanced_arrays"))[n.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](B,z),q[B]=z)}function D(){let B=u.newAttributes,z=u.enabledAttributes;for(let O=0,V=z.length;O<V;O++)z[O]!==B[O]&&(r.disableVertexAttribArray(O),z[O]=0)}function R(B,z,O,V,q,se){n.isWebGL2===!0&&(O===5124||O===5125)?r.vertexAttribIPointer(B,z,O,q,se):r.vertexAttribPointer(B,z,O,V,q,se)}function L(B,z,O,V){if(n.isWebGL2===!1&&(B.isInstancedMesh||V.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;m();let q=V.attributes,se=O.getAttributes(),he=z.defaultAttributeValues;for(let Y in se){let X=se[Y];if(X.location>=0){let ve=q[Y];if(ve===void 0&&(Y==="instanceMatrix"&&B.instanceMatrix&&(ve=B.instanceMatrix),Y==="instanceColor"&&B.instanceColor&&(ve=B.instanceColor)),ve!==void 0){let pe=ve.normalized,Le=ve.itemSize,Ie=t.get(ve);if(Ie===void 0)continue;let P=Ie.buffer,Z=Ie.type,ae=Ie.bytesPerElement;if(ve.isInterleavedBufferAttribute){let ne=ve.data,fe=ne.stride,W=ve.offset;if(ne&&ne.isInstancedInterleavedBuffer){for(let Q=0;Q<X.locationSize;Q++)w(X.location+Q,ne.meshPerAttribute);B.isInstancedMesh!==!0&&V._maxInstanceCount===void 0&&(V._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let Q=0;Q<X.locationSize;Q++)b(X.location+Q);r.bindBuffer(34962,P);for(let Q=0;Q<X.locationSize;Q++)R(X.location+Q,Le/X.locationSize,Z,pe,fe*ae,(W+Le/X.locationSize*Q)*ae)}else{if(ve.isInstancedBufferAttribute){for(let ne=0;ne<X.locationSize;ne++)w(X.location+ne,ve.meshPerAttribute);B.isInstancedMesh!==!0&&V._maxInstanceCount===void 0&&(V._maxInstanceCount=ve.meshPerAttribute*ve.count)}else for(let ne=0;ne<X.locationSize;ne++)b(X.location+ne);r.bindBuffer(34962,P);for(let ne=0;ne<X.locationSize;ne++)R(X.location+ne,Le/X.locationSize,Z,pe,Le*ae,Le/X.locationSize*ne*ae)}}else if(he!==void 0){let pe=he[Y];if(pe!==void 0)switch(pe.length){case 2:r.vertexAttrib2fv(X.location,pe);break;case 3:r.vertexAttrib3fv(X.location,pe);break;case 4:r.vertexAttrib4fv(X.location,pe);break;default:r.vertexAttrib1fv(X.location,pe)}}}}D()}function T(){C();for(let B in a){let z=a[B];for(let O in z){let V=z[O];for(let q in V)p(V[q].object),delete V[q];delete z[O]}delete a[B]}}function U(B){if(a[B.id]===void 0)return;let z=a[B.id];for(let O in z){let V=z[O];for(let q in V)p(V[q].object),delete V[q];delete z[O]}delete a[B.id]}function F(B){for(let z in a){let O=a[z];if(O[B.id]===void 0)continue;let V=O[B.id];for(let q in V)p(V[q].object),delete V[q];delete O[B.id]}}function C(){j(),u!==l&&(u=l,h(u.object))}function j(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:c,reset:C,resetDefaultState:j,dispose:T,releaseStatesOfGeometry:U,releaseStatesOfProgram:F,initAttributes:m,enableAttribute:b,disableUnusedAttributes:D}}function f5(r,e,t,n){let i=n.isWebGL2,o;function s(u){o=u}function a(u,c){r.drawArrays(o,u,c),t.update(c,o,1)}function l(u,c,f){if(f===0)return;let h,p;if(i)h=r,p="drawArraysInstanced";else if(h=e.get("ANGLE_instanced_arrays"),p="drawArraysInstancedANGLE",h===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}h[p](o,u,c,f),t.update(c,o,f)}this.setMode=s,this.render=a,this.renderInstances=l}function p5(r,e,t){let n;function i(){if(n!==void 0)return n;if(e.has("EXT_texture_filter_anisotropic")===!0){let L=e.get("EXT_texture_filter_anisotropic");n=r.getParameter(L.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n}function o(L){if(L==="highp"){if(r.getShaderPrecisionFormat(35633,36338).precision>0&&r.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";L="mediump"}return L==="mediump"&&r.getShaderPrecisionFormat(35633,36337).precision>0&&r.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}let s=typeof WebGL2RenderingContext!="undefined"&&r instanceof WebGL2RenderingContext||typeof WebGL2ComputeRenderingContext!="undefined"&&r instanceof WebGL2ComputeRenderingContext,a=t.precision!==void 0?t.precision:"highp",l=o(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);let u=s||e.has("WEBGL_draw_buffers"),c=t.logarithmicDepthBuffer===!0,f=r.getParameter(34930),h=r.getParameter(35660),p=r.getParameter(3379),d=r.getParameter(34076),g=r.getParameter(34921),x=r.getParameter(36347),y=r.getParameter(36348),m=r.getParameter(36349),b=h>0,w=s||e.has("OES_texture_float"),D=b&&w,R=s?r.getParameter(36183):0;return{isWebGL2:s,drawBuffers:u,getMaxAnisotropy:i,getMaxPrecision:o,precision:a,logarithmicDepthBuffer:c,maxTextures:f,maxVertexTextures:h,maxTextureSize:p,maxCubemapSize:d,maxAttributes:g,maxVertexUniforms:x,maxVaryings:y,maxFragmentUniforms:m,vertexTextures:b,floatFragmentTextures:w,floatVertexTextures:D,maxSamples:R}}function d5(r){let e=this,t=null,n=0,i=!1,o=!1,s=new Fi,a=new Qt,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,h,p){let d=f.length!==0||h||n!==0||i;return i=h,t=c(f,p,0),n=f.length,d},this.beginShadows=function(){o=!0,c(null)},this.endShadows=function(){o=!1,u()},this.setState=function(f,h,p){let d=f.clippingPlanes,g=f.clipIntersection,x=f.clipShadows,y=r.get(f);if(!i||d===null||d.length===0||o&&!x)o?c(null):u();else{let m=o?0:n,b=m*4,w=y.clippingState||null;l.value=w,w=c(d,h,b,p);for(let D=0;D!==b;++D)w[D]=t[D];y.clippingState=w,this.numIntersection=g?this.numPlanes:0,this.numPlanes+=m}};function u(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function c(f,h,p,d){let g=f!==null?f.length:0,x=null;if(g!==0){if(x=l.value,d!==!0||x===null){let y=p+g*4,m=h.matrixWorldInverse;a.getNormalMatrix(m),(x===null||x.length<y)&&(x=new Float32Array(y));for(let b=0,w=p;b!==g;++b,w+=4)s.copy(f[b]).applyMatrix4(m,a),s.normal.toArray(x,w),x[w+3]=s.constant}l.value=x,l.needsUpdate=!0}return e.numPlanes=g,e.numIntersection=0,x}}function m5(r){let e=new WeakMap;function t(s,a){return a===_u?s.mapping=ts:a===Cu&&(s.mapping=ns),s}function n(s){if(s&&s.isTexture&&s.isRenderTargetTexture===!1){let a=s.mapping;if(a===_u||a===Cu)if(e.has(s)){let l=e.get(s).texture;return t(l,s.mapping)}else{let l=s.image;if(l&&l.height>0){let u=r.getRenderTarget(),c=new Zu(l.height/2);return c.fromEquirectangularTexture(r,s),e.set(s,c),r.setRenderTarget(u),s.addEventListener("dispose",i),t(c.texture,s.mapping)}else return null}}return s}function i(s){let a=s.target;a.removeEventListener("dispose",i);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function o(){e=new WeakMap}return{get:n,dispose:o}}function g5(r){return r===void 0||r.type!==mr?!1:r.encoding===Pn||r.encoding===Ou||r.encoding===Ef}function y5(){let r=[],e=[],t=[],n=mo;for(let i=0;i<g3;i++){let o=Math.pow(2,n);e.push(o);let s=1/o;i>mo-Xa?s=m3[i-mo+Xa-1]:i==0&&(s=0),t.push(s);let a=1/(o-1),l=-a/2,u=1+a/2,c=[l,l,u,l,u,u,l,l,u,u,l,u],f=6,h=6,p=3,d=2,g=1,x=new Float32Array(p*h*f),y=new Float32Array(d*h*f),m=new Float32Array(g*h*f);for(let w=0;w<f;w++){let D=w%3*2/3-1,R=w>2?0:-1,L=[D,R,0,D+2/3,R,0,D+2/3,R+1,0,D,R,0,D+2/3,R+1,0,D,R+1,0];x.set(L,p*h*w),y.set(c,d*h*w);let T=[w,w,w,w,w,w];m.set(T,g*h*w)}let b=new Pe;b.setAttribute("position",new qe(x,p)),b.setAttribute("uv",new qe(y,d)),b.setAttribute("faceIndex",new qe(m,g)),r.push(b),n>Xa&&n--}return{_lodPlanes:r,_sizeLods:e,_sigmas:t}}function w3(r){let e=new Qn(3*Xi,3*Xi,r);return e.texture.mapping=Ma,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Kf(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function v5(r){let e=new Float32Array(r),t=new M(0,1,0);return new ms({name:"SphericalGaussianBlur",defines:{n:r},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:t},inputEncoding:{value:gs[Pn]},outputEncoding:{value:gs[Pn]}},vertexShader:Wg(),fragmentShader:`
|
|
1051
1051
|
|
|
1052
1052
|
precision mediump float;
|
|
1053
1053
|
precision mediump int;
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
PG3D,
|
|
4
4
|
Twisty3DCanvas,
|
|
5
5
|
Twisty3DScene
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-APIIMJG6.js";
|
|
7
7
|
import {
|
|
8
8
|
cube3x3x3
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MUQMBH2S.js";
|
|
10
10
|
import "./chunk-YV3RT5PX.js";
|
|
11
11
|
import "./chunk-BU5PUJK3.js";
|
|
12
12
|
import "./chunk-WO2AXYFE.js";
|
|
@@ -36,4 +36,4 @@ export {
|
|
|
36
36
|
cube3DShim,
|
|
37
37
|
pg3dShim
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=3d-
|
|
39
|
+
//# sourceMappingURL=3d-B25DP5PE.js.map
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getFaceletAppearance,
|
|
3
3
|
puzzles
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MUQMBH2S.js";
|
|
5
5
|
import {
|
|
6
6
|
areTransformationsEquivalent,
|
|
7
7
|
transformationForQuantumMove
|
|
@@ -2509,4 +2509,4 @@ export {
|
|
|
2509
2509
|
Twisty3DCanvas,
|
|
2510
2510
|
Twisty3DScene
|
|
2511
2511
|
};
|
|
2512
|
-
//# sourceMappingURL=chunk-
|
|
2512
|
+
//# sourceMappingURL=chunk-APIIMJG6.js.map
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
puzzles
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MUQMBH2S.js";
|
|
4
4
|
import {
|
|
5
5
|
KPuzzle,
|
|
6
6
|
areOrbitTransformationsEquivalent
|
|
@@ -1376,4 +1376,4 @@ export {
|
|
|
1376
1376
|
setDebug,
|
|
1377
1377
|
random333State
|
|
1378
1378
|
};
|
|
1379
|
-
//# sourceMappingURL=chunk-
|
|
1379
|
+
//# sourceMappingURL=chunk-CSVAFZSB.js.map
|
|
File without changes
|
|
@@ -746,8 +746,8 @@ var wcaEvents = {
|
|
|
746
746
|
"555bf": { puzzleID: "5x5x5", eventName: "5x5x5 Blindfolded" },
|
|
747
747
|
"333mb": { puzzleID: "3x3x3", eventName: " 3x3x3 Multi-Blind" }
|
|
748
748
|
};
|
|
749
|
-
function
|
|
750
|
-
return wcaEvents[event]
|
|
749
|
+
function wcaEventInfo(event) {
|
|
750
|
+
return wcaEvents[event] ?? null;
|
|
751
751
|
}
|
|
752
752
|
|
|
753
753
|
export {
|
|
@@ -757,6 +757,6 @@ export {
|
|
|
757
757
|
cube2x2x2,
|
|
758
758
|
cube3x3x3,
|
|
759
759
|
puzzles,
|
|
760
|
-
|
|
760
|
+
wcaEventInfo
|
|
761
761
|
};
|
|
762
|
-
//# sourceMappingURL=chunk-
|
|
762
|
+
//# sourceMappingURL=chunk-MUQMBH2S.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cubing/puzzles/customPGPuzzleLoader.ts", "../../src/cubing/puzzles/stickerings/appearance.ts", "../../src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts", "../../src/cubing/puzzles/stickerings/cube-stickerings.ts", "../../src/cubing/puzzles/async/async-pg3d.ts", "../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../src/cubing/puzzles/implementations/3x3x3/index.ts", "../../src/cubing/puzzles/implementations/clock/index.ts", "../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../src/cubing/puzzles/implementations/fto/index.ts", "../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../src/cubing/puzzles/implementations/square1/index.ts", "../../src/cubing/puzzles/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function dsecAsyncGetDef(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzleDefinition> {\n return (await descAsyncGetPuzzleGeometry(desc)).writekpuzzle(true);\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n def: async () => {\n return dsecAsyncGetDef(desc);\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "// TODO: figure out where to house this permanently.\n\nimport { Move } from \"../../alg\";\nimport { experimentalIs } from \"../../alg\";\nimport { KPuzzleDefinition, transformationForMove } from \"../../kpuzzle\";\n\nexport type FaceletMeshAppearance =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletAppearance = {\n appearance: FaceletMeshAppearance;\n hintAppearance?: FaceletMeshAppearance;\n};\n\nexport type PieceAppearance = {\n // TODO: foundation?\n facelets: (FaceletMeshAppearance | FaceletAppearance | null)[];\n};\n\nexport type OrbitAppearance = {\n pieces: (PieceAppearance | null)[];\n};\n\nexport type PuzzleAppearance = {\n name?: string; // TODO\n orbits: Record<string, OrbitAppearance>;\n};\n\nexport function getFaceletAppearance(\n appearance: PuzzleAppearance,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshAppearance {\n const orbitAppearance = appearance.orbits[orbitName];\n const pieceAppearance: PieceAppearance | null =\n orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance === null) {\n return regular;\n }\n const faceletAppearance: FaceletMeshAppearance | FaceletAppearance | null =\n pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance === null) {\n return regular;\n }\n if (typeof faceletAppearance === \"string\") {\n return faceletAppearance;\n }\n if (hint) {\n return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;\n }\n return faceletAppearance.appearance;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(def: KPuzzleDefinition, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(def.orbits)) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\n// regular\nconst r: PieceAppearance = {\n facelets: [regular, regular, regular, regular, regular],\n};\n\n// ignored\nconst i: PieceAppearance = {\n facelets: [ignored, ignored, ignored, ignored, ignored],\n};\n\n// oriented stickers\nconst o: PieceAppearance = {\n facelets: [oriented, oriented, oriented, oriented, oriented],\n};\n\n// invisible\nconst invisiblePiece: PieceAppearance = {\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n};\n\n// \"OLL\"\nconst riiii: PieceAppearance = {\n facelets: [regular, ignored, ignored, ignored, ignored],\n};\n\n// \"PLL\"\nconst drrrr: PieceAppearance = {\n facelets: [dim, regular, regular, regular, regular],\n};\n\n// ignored\nconst d: PieceAppearance = {\n facelets: [dim, dim, dim, dim, dim],\n};\n\n// \"OLL\"\nconst diiii: PieceAppearance = {\n facelets: [dim, ignored, ignored, ignored, ignored],\n};\n\n// oriented\nconst oiiii: PieceAppearance = {\n facelets: [oriented, ignored, ignored, ignored, ignored],\n};\n\nexport function getPieceAppearance(\n pieceStickering: PieceStickering,\n): PieceAppearance {\n switch (pieceStickering) {\n case PieceStickering.Regular:\n return r;\n case PieceStickering.Dim:\n return d;\n case PieceStickering.Ignored:\n return i;\n case PieceStickering.OrientationStickers: // TODO: Hack for centers. This shouldn't be needed.\n return o;\n case PieceStickering.Invisible: // TODO: Hack for centers. This shouldn't be needed.\n return invisiblePiece;\n case PieceStickering.IgnoreNonPrimary:\n return riiii;\n case PieceStickering.PermuteNonPrimary:\n return drrrr;\n case PieceStickering.Ignoriented:\n return diiii;\n case PieceStickering.OrientationWithoutPermutation:\n return oiiii;\n }\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(def: KPuzzleDefinition) {\n super(def, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toAppearance(): PuzzleAppearance {\n const appearance: PuzzleAppearance = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceAppearance[] = [];\n const orbitAppearance: OrbitAppearance = {\n pieces,\n };\n appearance.orbits[orbitName] = orbitAppearance;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceAppearance(pieceStickering));\n }\n }\n return appearance;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private def: KPuzzleDefinition) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] =\n !pieceSet.stickerings.get(orbitName)![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = transformationForMove(\n this.def,\n experimentalIs(moveSource, Move)\n ? (moveSource as Move)\n : Move.fromString(moveSource as string),\n );\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation[orbitName].permutation[i] !== i ||\n transformation[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n // orbits(orbitNames: string[]): PieceSet {\n // const pieceSet = new PieceAnnotation<boolean>(this.def, false);\n // for (const orbitName of orbitNames) {\n // pieceSet.stickerings.get(orbitName)!.fill(true);\n // }\n // return pieceSet;\n // }\n\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { TwistyPlayer } from \"../../twisty\";\nimport {\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\n\ntype Stickerer = (\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n) => void;\n\nlet globalCustomStickerer: Stickerer = () => {};\n\nfunction setGlobalCustomStickerer(stickerer: Stickerer): void {\n (async () => {\n globalCustomStickerer = stickerer;\n\n const players: TwistyPlayer[] = Array.from(\n document.body.querySelectorAll(\"twisty-player\"),\n );\n console.log(`Setting the custom stickering for ${players.length} players!`);\n const successPromises = [];\n for (const player of players) {\n successPromises.push(\n (async () => {\n const stickering =\n await player.experimentalModel.stickeringProp.get();\n player.experimentalStickering =\n stickering === \"experimental-global-custom-1\"\n ? \"experimental-global-custom-2\"\n : \"experimental-global-custom-1\";\n })(),\n );\n }\n await Promise.all(successPromises);\n console.log(\"Success!\");\n })();\n}\n\nexport function useGlobalCustomStickerer(\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n): void {\n globalCustomStickerer(puzzleStickering, m);\n}\n\nif (\n typeof location !== \"undefined\" &&\n new URL(location.href).searchParams.get(\"global-custom-stickerer\") === \"true\"\n) {\n (window as any).setGlobalCustomStickerer = setGlobalCustomStickerer;\n (window as any).PieceStickering = PieceStickering;\n console.log(\n \"Global custom stickerer enabled! (using: global-custom-stickerer=true)\",\n );\n console.log(\n \"Look here for inspiration:\",\n \"https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67\",\n );\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\nimport { useGlobalCustomStickerer } from \"./global-custom-stickering-hack\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const E = (): PieceSet => m.not(orUD());\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n const orFB = (): PieceSet => m.or(m.moves([\"F\", \"B\"]));\n const S = (): PieceSet => m.not(orFB());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const centerU = (): PieceSet => m.and([LL(), M(), S()]);\n\n const edgeFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), m.not(orUD())]);\n const cornerDFR = (): PieceSet => m.and(m.moves([\"D\", \"R\", \"F\"]));\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n const CENTERS = (): PieceSet =>\n m.or([m.and([M(), E()]), m.and([M(), S()]), m.and([E(), S()])]);\n const EDGES = (): PieceSet =>\n m.or([\n m.and([M(), orUD(), orFB()]),\n m.and([E(), orLR(), orFB()]),\n m.and([S(), orUD(), orLR()]),\n ]);\n const CORNERS = (): PieceSet => m.not(m.or([CENTERS(), EDGES()]));\n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Regular); // TODO: why is this needed?\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(\n m.and(m.moves([\"D\", \"R\", \"F\"])),\n PieceStickering.Regular,\n );\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n setPLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // why is this needed?\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"WVLS\":\n // fallthrough\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerU(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // TODO: why is this needed?\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n case \"experimental-global-custom-1\":\n // fallthrough\n case \"experimental-global-custom-2\":\n useGlobalCustomStickerer(puzzleStickering, m);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"PLL\",\n \"CLS\",\n \"OLL\",\n \"COLL\",\n \"OCLL\",\n \"ELL\",\n \"ELS\",\n \"LL\",\n \"F2L\",\n \"ZBLL\",\n \"ZBLS\",\n \"WVLS\",\n \"VLS\",\n \"LS\",\n \"EO\",\n \"CMLL\",\n \"L6E\",\n \"L6EO\",\n \"Daisy\",\n \"Cross\",\n \"2x2x2\",\n \"2x2x3\",\n \"Void Cube\",\n \"picture\",\n \"invisible\",\n \"centers-only\",\n \"experimental-global-custom-1\",\n \"experimental-global-custom-2\",\n ];\n}\n", "import type { KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetDef(\n puzzleName: string,\n): Promise<KPuzzleDefinition> {\n return (await asyncGetPuzzleGeometry(puzzleName)).writekpuzzle(true);\n}\n\nexport function genericPGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = {\n id: id,\n fullName: fullName,\n def: async () => {\n return asyncGetDef(id);\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(id);\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(id);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n\nexport function cubePGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = genericPGPuzzleLoader(id, fullName, info);\n puzzleLoader.appearance = cubeAppearance.bind(cubeAppearance, puzzleLoader);\n puzzleLoader.stickerings = cubeStickerings;\n return puzzleLoader;\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n def: async () => {\n return (await import(\"./2x2x2.kpuzzle.json\")).cube2x2x2KPuzzle;\n },\n svg: async () => {\n return (await import(\"./2x2x2.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimentalCube3x3x3KPuzzle as cube3x3x3KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n def: async () => {\n // return await import(\"./3x3x3.kpuzzle.json\");\n return cube3x3x3KPuzzle;\n },\n svg: async () => {\n return (await import(\"./3x3x3.kpuzzle.svg\")).default;\n },\n llSVG: async () => {\n return (await import(\"./3x3x3-ll.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n def: async () => {\n return (await import(\"./clock.kpuzzle.json\")).clockKPuzzle;\n },\n svg: async () => {\n return (await import(\"./clock.kpuzzle.svg\")).default;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { PuzzleLoader } from \"../..\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nexport const fto: PuzzleLoader = {\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n def: async () => {\n return asyncGetDef(\"FTO\");\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(\"FTO\");\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"FTO\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n ftoStickering(fto, stickering),\n stickerings: ftoStickerings,\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { genericPGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nconst megaminx = genericPGPuzzleLoader(\"megaminx\", \"Megaminx\", {\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n});\n\n// TODO: loading the stickering code async.\nmegaminx.appearance = (\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> => megaminxAppearance(megaminx, stickering);\nmegaminx.stickerings = megaminxStickerings;\n\nexport { megaminx };\n", "import { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const pyraminx: PuzzleLoader = {\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n inventionYear: 1970, // https://en.wikipedia.org/wiki/Pyraminx#Description\n def: async () => {\n return asyncGetDef(\"pyraminx\");\n },\n svg: async () => {\n return (await import(\"./pyraminx.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"pyraminx\");\n },\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n def: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.json\")).sq1HyperOrbitKPuzzle;\n },\n svg: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.svg\")).default;\n },\n};\n", "export { customPGPuzzleLoader as experimentalCustomPGPuzzleLoader } from \"./customPGPuzzleLoader\";\nexport { experimentalCube3x3x3KPuzzle as experimentalCube3x3x3KPuzzle } from \"../kpuzzle\";\n\nexport { cubeAppearance as experimentalCubeAppearance } from \"./stickerings/cube-stickerings\";\n\nimport type { PuzzleID } from \"../twisty/old/dom/TwistyPlayerConfig\";\nimport { cubePGPuzzleLoader, genericPGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\nexport type { PuzzleLoader };\n\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cubePGPuzzleLoader(\"4x4x4\", \"4\u00D74\u00D74 Cube\"),\n \"5x5x5\": cubePGPuzzleLoader(\"5x5x5\", \"5\u00D75\u00D75 Cube\"),\n \"6x6x6\": cubePGPuzzleLoader(\"6x6x6\", \"6\u00D76\u00D76 Cube\"),\n \"7x7x7\": cubePGPuzzleLoader(\"7x7x7\", \"7\u00D77\u00D77 Cube\"),\n \"40x40x40\": cubePGPuzzleLoader(\"40x40x40\", \"40\u00D740\u00D740 Cube\"),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": genericPGPuzzleLoader(\"skewb\", \"Skewb\", {\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": genericPGPuzzleLoader(\"gigaminx\", \"Gigaminx\", {\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": genericPGPuzzleLoader(\n \"master tetraminx\",\n \"Master Tetraminx\",\n {\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n },\n ),\n};\n\nexport { cube2x2x2, cube3x3x3 };\n\nexport { getFaceletAppearance as experimentalGetFaceletAppearance } from \"./stickerings/appearance\";\nexport type {\n FaceletMeshAppearance as ExperimentalFaceletMeshAppearance,\n PuzzleAppearance as ExperimentalPuzzleAppearance,\n} from \"./stickerings/appearance\";\n\ninterface WCAEventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, WCAEventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \" 3x3x3 Multi-Blind\" },\n};\n\nexport function puzzleIDForWCAEvent(event: string): PuzzleID | null {\n return wcaEvents[event]?.puzzleID ?? null;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import type { KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function dsecAsyncGetDef(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzleDefinition> {\n return (await descAsyncGetPuzzleGeometry(desc)).writekpuzzle(true);\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n def: async () => {\n return dsecAsyncGetDef(desc);\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "// TODO: figure out where to house this permanently.\n\nimport { Move } from \"../../alg\";\nimport { experimentalIs } from \"../../alg\";\nimport { KPuzzleDefinition, transformationForMove } from \"../../kpuzzle\";\n\nexport type FaceletMeshAppearance =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletAppearance = {\n appearance: FaceletMeshAppearance;\n hintAppearance?: FaceletMeshAppearance;\n};\n\nexport type PieceAppearance = {\n // TODO: foundation?\n facelets: (FaceletMeshAppearance | FaceletAppearance | null)[];\n};\n\nexport type OrbitAppearance = {\n pieces: (PieceAppearance | null)[];\n};\n\nexport type PuzzleAppearance = {\n name?: string; // TODO\n orbits: Record<string, OrbitAppearance>;\n};\n\nexport function getFaceletAppearance(\n appearance: PuzzleAppearance,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshAppearance {\n const orbitAppearance = appearance.orbits[orbitName];\n const pieceAppearance: PieceAppearance | null =\n orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance === null) {\n return regular;\n }\n const faceletAppearance: FaceletMeshAppearance | FaceletAppearance | null =\n pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance === null) {\n return regular;\n }\n if (typeof faceletAppearance === \"string\") {\n return faceletAppearance;\n }\n if (hint) {\n return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;\n }\n return faceletAppearance.appearance;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(def: KPuzzleDefinition, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(def.orbits)) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\n// regular\nconst r: PieceAppearance = {\n facelets: [regular, regular, regular, regular, regular],\n};\n\n// ignored\nconst i: PieceAppearance = {\n facelets: [ignored, ignored, ignored, ignored, ignored],\n};\n\n// oriented stickers\nconst o: PieceAppearance = {\n facelets: [oriented, oriented, oriented, oriented, oriented],\n};\n\n// invisible\nconst invisiblePiece: PieceAppearance = {\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n};\n\n// \"OLL\"\nconst riiii: PieceAppearance = {\n facelets: [regular, ignored, ignored, ignored, ignored],\n};\n\n// \"PLL\"\nconst drrrr: PieceAppearance = {\n facelets: [dim, regular, regular, regular, regular],\n};\n\n// ignored\nconst d: PieceAppearance = {\n facelets: [dim, dim, dim, dim, dim],\n};\n\n// \"OLL\"\nconst diiii: PieceAppearance = {\n facelets: [dim, ignored, ignored, ignored, ignored],\n};\n\n// oriented\nconst oiiii: PieceAppearance = {\n facelets: [oriented, ignored, ignored, ignored, ignored],\n};\n\nexport function getPieceAppearance(\n pieceStickering: PieceStickering,\n): PieceAppearance {\n switch (pieceStickering) {\n case PieceStickering.Regular:\n return r;\n case PieceStickering.Dim:\n return d;\n case PieceStickering.Ignored:\n return i;\n case PieceStickering.OrientationStickers: // TODO: Hack for centers. This shouldn't be needed.\n return o;\n case PieceStickering.Invisible: // TODO: Hack for centers. This shouldn't be needed.\n return invisiblePiece;\n case PieceStickering.IgnoreNonPrimary:\n return riiii;\n case PieceStickering.PermuteNonPrimary:\n return drrrr;\n case PieceStickering.Ignoriented:\n return diiii;\n case PieceStickering.OrientationWithoutPermutation:\n return oiiii;\n }\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(def: KPuzzleDefinition) {\n super(def, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toAppearance(): PuzzleAppearance {\n const appearance: PuzzleAppearance = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceAppearance[] = [];\n const orbitAppearance: OrbitAppearance = {\n pieces,\n };\n appearance.orbits[orbitName] = orbitAppearance;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceAppearance(pieceStickering));\n }\n }\n return appearance;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private def: KPuzzleDefinition) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] =\n !pieceSet.stickerings.get(orbitName)![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = transformationForMove(\n this.def,\n experimentalIs(moveSource, Move)\n ? (moveSource as Move)\n : Move.fromString(moveSource as string),\n );\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation[orbitName].permutation[i] !== i ||\n transformation[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n // orbits(orbitNames: string[]): PieceSet {\n // const pieceSet = new PieceAnnotation<boolean>(this.def, false);\n // for (const orbitName of orbitNames) {\n // pieceSet.stickerings.get(orbitName)!.fill(true);\n // }\n // return pieceSet;\n // }\n\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { TwistyPlayer } from \"../../twisty\";\nimport {\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\n\ntype Stickerer = (\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n) => void;\n\nlet globalCustomStickerer: Stickerer = () => {};\n\nfunction setGlobalCustomStickerer(stickerer: Stickerer): void {\n (async () => {\n globalCustomStickerer = stickerer;\n\n const players: TwistyPlayer[] = Array.from(\n document.body.querySelectorAll(\"twisty-player\"),\n );\n console.log(`Setting the custom stickering for ${players.length} players!`);\n const successPromises = [];\n for (const player of players) {\n successPromises.push(\n (async () => {\n const stickering =\n await player.experimentalModel.stickeringProp.get();\n player.experimentalStickering =\n stickering === \"experimental-global-custom-1\"\n ? \"experimental-global-custom-2\"\n : \"experimental-global-custom-1\";\n })(),\n );\n }\n await Promise.all(successPromises);\n console.log(\"Success!\");\n })();\n}\n\nexport function useGlobalCustomStickerer(\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n): void {\n globalCustomStickerer(puzzleStickering, m);\n}\n\nif (\n typeof location !== \"undefined\" &&\n new URL(location.href).searchParams.get(\"global-custom-stickerer\") === \"true\"\n) {\n (window as any).setGlobalCustomStickerer = setGlobalCustomStickerer;\n (window as any).PieceStickering = PieceStickering;\n console.log(\n \"Global custom stickerer enabled! (using: global-custom-stickerer=true)\",\n );\n console.log(\n \"Look here for inspiration:\",\n \"https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67\",\n );\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\nimport { useGlobalCustomStickerer } from \"./global-custom-stickering-hack\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const E = (): PieceSet => m.not(orUD());\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n const orFB = (): PieceSet => m.or(m.moves([\"F\", \"B\"]));\n const S = (): PieceSet => m.not(orFB());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const centerU = (): PieceSet => m.and([LL(), M(), S()]);\n\n const edgeFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), m.not(orUD())]);\n const cornerDFR = (): PieceSet => m.and(m.moves([\"D\", \"R\", \"F\"]));\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n const CENTERS = (): PieceSet =>\n m.or([m.and([M(), E()]), m.and([M(), S()]), m.and([E(), S()])]);\n const EDGES = (): PieceSet =>\n m.or([\n m.and([M(), orUD(), orFB()]),\n m.and([E(), orLR(), orFB()]),\n m.and([S(), orUD(), orLR()]),\n ]);\n const CORNERS = (): PieceSet => m.not(m.or([CENTERS(), EDGES()]));\n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Regular); // TODO: why is this needed?\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(\n m.and(m.moves([\"D\", \"R\", \"F\"])),\n PieceStickering.Regular,\n );\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n setPLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // why is this needed?\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"WVLS\":\n // fallthrough\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerU(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // TODO: why is this needed?\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n case \"experimental-global-custom-1\":\n // fallthrough\n case \"experimental-global-custom-2\":\n useGlobalCustomStickerer(puzzleStickering, m);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"PLL\",\n \"CLS\",\n \"OLL\",\n \"COLL\",\n \"OCLL\",\n \"ELL\",\n \"ELS\",\n \"LL\",\n \"F2L\",\n \"ZBLL\",\n \"ZBLS\",\n \"WVLS\",\n \"VLS\",\n \"LS\",\n \"EO\",\n \"CMLL\",\n \"L6E\",\n \"L6EO\",\n \"Daisy\",\n \"Cross\",\n \"2x2x2\",\n \"2x2x3\",\n \"Void Cube\",\n \"picture\",\n \"invisible\",\n \"centers-only\",\n \"experimental-global-custom-1\",\n \"experimental-global-custom-2\",\n ];\n}\n", "import type { KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetDef(\n puzzleName: string,\n): Promise<KPuzzleDefinition> {\n return (await asyncGetPuzzleGeometry(puzzleName)).writekpuzzle(true);\n}\n\nexport function genericPGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = {\n id: id,\n fullName: fullName,\n def: async () => {\n return asyncGetDef(id);\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(id);\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(id);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n\nexport function cubePGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = genericPGPuzzleLoader(id, fullName, info);\n puzzleLoader.appearance = cubeAppearance.bind(cubeAppearance, puzzleLoader);\n puzzleLoader.stickerings = cubeStickerings;\n return puzzleLoader;\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n def: async () => {\n return (await import(\"./2x2x2.kpuzzle.json\")).cube2x2x2KPuzzle;\n },\n svg: async () => {\n return (await import(\"./2x2x2.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimentalCube3x3x3KPuzzle as cube3x3x3KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n def: async () => {\n // return await import(\"./3x3x3.kpuzzle.json\");\n return cube3x3x3KPuzzle;\n },\n svg: async () => {\n return (await import(\"./3x3x3.kpuzzle.svg\")).default;\n },\n llSVG: async () => {\n return (await import(\"./3x3x3-ll.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n def: async () => {\n return (await import(\"./clock.kpuzzle.json\")).clockKPuzzle;\n },\n svg: async () => {\n return (await import(\"./clock.kpuzzle.svg\")).default;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { PuzzleLoader } from \"../..\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nexport const fto: PuzzleLoader = {\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n def: async () => {\n return asyncGetDef(\"FTO\");\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(\"FTO\");\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"FTO\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n ftoStickering(fto, stickering),\n stickerings: ftoStickerings,\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { genericPGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nconst megaminx = genericPGPuzzleLoader(\"megaminx\", \"Megaminx\", {\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n});\n\n// TODO: loading the stickering code async.\nmegaminx.appearance = (\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> => megaminxAppearance(megaminx, stickering);\nmegaminx.stickerings = megaminxStickerings;\n\nexport { megaminx };\n", "import { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const pyraminx: PuzzleLoader = {\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n inventionYear: 1970, // https://en.wikipedia.org/wiki/Pyraminx#Description\n def: async () => {\n return asyncGetDef(\"pyraminx\");\n },\n svg: async () => {\n return (await import(\"./pyraminx.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"pyraminx\");\n },\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n def: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.json\")).sq1HyperOrbitKPuzzle;\n },\n svg: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.svg\")).default;\n },\n};\n", "export { customPGPuzzleLoader as experimentalCustomPGPuzzleLoader } from \"./customPGPuzzleLoader\";\nexport { experimentalCube3x3x3KPuzzle as experimentalCube3x3x3KPuzzle } from \"../kpuzzle\";\n\nexport { cubeAppearance as experimentalCubeAppearance } from \"./stickerings/cube-stickerings\";\n\nimport type { PuzzleID } from \"../twisty/old/dom/TwistyPlayerConfig\";\nimport { cubePGPuzzleLoader, genericPGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\nexport type { PuzzleLoader };\n\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cubePGPuzzleLoader(\"4x4x4\", \"4\u00D74\u00D74 Cube\"),\n \"5x5x5\": cubePGPuzzleLoader(\"5x5x5\", \"5\u00D75\u00D75 Cube\"),\n \"6x6x6\": cubePGPuzzleLoader(\"6x6x6\", \"6\u00D76\u00D76 Cube\"),\n \"7x7x7\": cubePGPuzzleLoader(\"7x7x7\", \"7\u00D77\u00D77 Cube\"),\n \"40x40x40\": cubePGPuzzleLoader(\"40x40x40\", \"40\u00D740\u00D740 Cube\"),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": genericPGPuzzleLoader(\"skewb\", \"Skewb\", {\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": genericPGPuzzleLoader(\"gigaminx\", \"Gigaminx\", {\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": genericPGPuzzleLoader(\n \"master tetraminx\",\n \"Master Tetraminx\",\n {\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n },\n ),\n};\n\nexport { cube2x2x2, cube3x3x3 };\n\nexport { getFaceletAppearance as experimentalGetFaceletAppearance } from \"./stickerings/appearance\";\nexport type {\n FaceletMeshAppearance as ExperimentalFaceletMeshAppearance,\n PuzzleAppearance as ExperimentalPuzzleAppearance,\n} from \"./stickerings/appearance\";\n\ninterface WCAEventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, WCAEventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \" 3x3x3 Multi-Blind\" },\n};\n\nexport function wcaEventInfo(event: string): WCAEventInfo | null {\n return wcaEvents[event] ?? null;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
cubeAppearance,
|
|
5
5
|
customPGPuzzleLoader,
|
|
6
6
|
getFaceletAppearance,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from "../chunk-
|
|
7
|
+
puzzles,
|
|
8
|
+
wcaEventInfo
|
|
9
|
+
} from "../chunk-MUQMBH2S.js";
|
|
10
10
|
import {
|
|
11
11
|
cube3x3x3KPuzzle
|
|
12
12
|
} from "../chunk-YV3RT5PX.js";
|
|
@@ -19,7 +19,7 @@ export {
|
|
|
19
19
|
cubeAppearance as experimentalCubeAppearance,
|
|
20
20
|
customPGPuzzleLoader as experimentalCustomPGPuzzleLoader,
|
|
21
21
|
getFaceletAppearance as experimentalGetFaceletAppearance,
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
puzzles,
|
|
23
|
+
wcaEventInfo
|
|
24
24
|
};
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
randomScrambleForEvent
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-CSVAFZSB.js";
|
|
4
|
+
import "../chunk-MUQMBH2S.js";
|
|
5
5
|
import "../chunk-YV3RT5PX.js";
|
|
6
6
|
import "../chunk-BU5PUJK3.js";
|
|
7
7
|
import "../chunk-WO2AXYFE.js";
|
package/dist/esm/search/index.js
CHANGED
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
solveMegaminx,
|
|
8
8
|
solvePyraminx,
|
|
9
9
|
solveSkewb
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-CSVAFZSB.js";
|
|
11
|
+
import "../chunk-MUQMBH2S.js";
|
|
12
12
|
import "../chunk-YV3RT5PX.js";
|
|
13
13
|
import "../chunk-BU5PUJK3.js";
|
|
14
14
|
import "../chunk-WO2AXYFE.js";
|
package/dist/esm/twisty/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
pyraminxLookAt,
|
|
21
21
|
twisty3DCanvasCSS,
|
|
22
22
|
twistyViewerWrapperCSS
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-APIIMJG6.js";
|
|
24
24
|
import {
|
|
25
25
|
countAnimatedLeaves,
|
|
26
26
|
countMoves
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
cubeAppearance,
|
|
31
31
|
customPGPuzzleLoader,
|
|
32
32
|
puzzles
|
|
33
|
-
} from "../chunk-
|
|
33
|
+
} from "../chunk-MUQMBH2S.js";
|
|
34
34
|
import {
|
|
35
35
|
KPuzzle,
|
|
36
36
|
KPuzzleSVGWrapper,
|
|
@@ -496,7 +496,7 @@ function from(function_) {
|
|
|
496
496
|
// src/cubing/twisty/heavy-code-imports/3d.ts
|
|
497
497
|
var cachedConstructorProxy = null;
|
|
498
498
|
async function proxy3D() {
|
|
499
|
-
return cachedConstructorProxy ?? (cachedConstructorProxy = import("../3d-
|
|
499
|
+
return cachedConstructorProxy ?? (cachedConstructorProxy = import("../3d-B25DP5PE.js"));
|
|
500
500
|
}
|
|
501
501
|
var THREEJS = from(async () => (await proxy3D()).T3I);
|
|
502
502
|
|
|
@@ -10,5 +10,9 @@ export declare const puzzles: Record<string, PuzzleLoader>;
|
|
|
10
10
|
export { cube2x2x2, cube3x3x3 };
|
|
11
11
|
export { getFaceletAppearance as experimentalGetFaceletAppearance } from "./stickerings/appearance";
|
|
12
12
|
export type { FaceletMeshAppearance as ExperimentalFaceletMeshAppearance, PuzzleAppearance as ExperimentalPuzzleAppearance, } from "./stickerings/appearance";
|
|
13
|
-
|
|
13
|
+
interface WCAEventInfo {
|
|
14
|
+
puzzleID: PuzzleID;
|
|
15
|
+
eventName: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function wcaEventInfo(event: string): WCAEventInfo | null;
|
|
14
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cubing/puzzles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,4BAA4B,IAAI,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,cAAc,IAAI,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAoChD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEhC,OAAO,EAAE,oBAAoB,IAAI,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AACpG,YAAY,EACV,qBAAqB,IAAI,iCAAiC,EAC1D,gBAAgB,IAAI,4BAA4B,GACjD,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cubing/puzzles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,4BAA4B,IAAI,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE1F,OAAO,EAAE,cAAc,IAAI,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAoChD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEhC,OAAO,EAAE,oBAAoB,IAAI,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AACpG,YAAY,EACV,qBAAqB,IAAI,iCAAiC,EAC1D,gBAAgB,IAAI,4BAA4B,GACjD,MAAM,0BAA0B,CAAC;AAElC,UAAU,YAAY;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAsBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAE/D"}
|
package/package.json
CHANGED
|
@@ -87,6 +87,6 @@ const wcaEvents: Record<string, WCAEventInfo> = {
|
|
|
87
87
|
"333mb": { puzzleID: "3x3x3", eventName: " 3x3x3 Multi-Blind" },
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
export function
|
|
91
|
-
return wcaEvents[event]
|
|
90
|
+
export function wcaEventInfo(event: string): WCAEventInfo | null {
|
|
91
|
+
return wcaEvents[event] ?? null;
|
|
92
92
|
}
|
package/dist/.DS_Store
DELETED
|
Binary file
|
package/dist/esm/.DS_Store
DELETED
|
Binary file
|