- Lorem
- Lorem
- Lorem
| /* | |
| const store = new StateStore( { p:{x:0}, c:{x:0}, b:1, ary:[1,2,3] } ); | |
| const dispose = store.on( 'p.x', e=>console.log('ON p.x', e.detail ) ); | |
| store.on( 'p', e=>console.log('ON p', e.detail ) ); | |
| store.on( 'change', e=>console.log('ON change', e.detail ) ); | |
| store.state.p.x = 10; | |
| dispose(); | |
| store.state.p.x = 5; |
| class ColorInput extends HTMLElement{ | |
| // #region MAIN | |
| static observedAttributes = [ 'value' ]; | |
| #inpColor; | |
| constructor(){ | |
| super(); | |
| this.attachShadow({ mode: 'open' }); |
| ▲ ▼ ◀ ▶ ⬡ ⬢ △ ▽ ◁ ▷ ⮝ ⮟ ⮜ ⮞ ↶ ↷ ↺ ↻ ︿ ﹀ ˄ ˅ ‹ › 〈 〉 ▴ ▾ ◂ ▸ | |
| ⭗ ⯎ ⯏ ⬖ ⬗ ⬘ ⬙ ⬚ ◇ ◆ ◈ ⋄ ⬦ ⬥ ◌ ◎ ◍ ◙ ◐ ◑ ◒ ◓ ◔ ◕ ▢ ▣ ▤ ▥ ▦ ◘ ◙ ◚ ◛ |
| /* | |
| const ubo = new Ubo([ | |
| { name:'time', type:GTYPE.f32, init:22 }, | |
| { name:'num', type:GTYPE.f32, init:100 }, | |
| { name:'vec', type:GTYPE.vec3, init:[1,2,3] }, | |
| ]); | |
| ubo.time = 999; | |
| ubo.vec = [5,6,7]; |
Find & Pick an opensource project that provides same or similar features to shopify. Learn the method of how to self host which ever solution is picked. Be it regular web hosting or some sort of docker hosting.
Some of these projects also provide a hosting service. They just setup a server with the project preconfigured & ready for use. At that point you are on your own on how use the web app, they will only handle the hosting side of things. This might be a good option as long as its a good hosting service.
| // let [clips, aSkel, aGrp] = await loadAnimations( `${url}/anim/source-animation.glb` ); | |
| // let aHelper = new THREE.SkeletonHelper( aSkel.bones[0] ); | |
| // App.scene.add( aGrp || aSkel.bones[0], aHelper ); | |
| // const mixer = new THREE.AnimationMixer( new THREE.Object3D() ); | |
| // const action = this.mixer.clipAction( clips[0], aSkel.bones[0] ); | |
| // action.play(); | |
| async function loadAnimations( url ){ | |
| const tf = await new GLTFLoader().loadAsync( url ); |