UNPKG

@tomorrowevening/hermes

Version:

An extendable set of Web Tools controlled via a separate window for non-intereference with content.

3 lines (2 loc) 3.01 kB
"use strict";const t=require("react/jsx-runtime"),a=require("../../utils.cjs"),b=require("react"),x=require("./InspectNumber.cjs"),C=require("./InspectVector2.cjs"),f=require("./InspectGrid3.cjs"),r=require("./InspectGrid4.cjs"),I=require("./InspectImage.cjs"),g=require("three");function q(e){let d=e.value;d!==void 0&&(d.isColor!==void 0?d=a.colorToHex(e.value):e.type==="color"&&(d=a.colorToHex(new g.Color().setStyle(e.value,g.LinearSRGBColorSpace))));const[i,v]=b.useState(d),u=b.useRef(null);b.useEffect(()=>{v(d)},[d]);const l=c=>{let n=c.target.value;if(e.type==="boolean")n=c.target.checked;else if(e.type==="option"&&(typeof e.value=="number"?n=Number(n):typeof e.value=="boolean"?n=!!n:typeof e.value=="object"&&(n=JSON.parse(n)),e.options!==void 0)){const j=e.options.length;for(let y=0;y<j&&e.options[y].value!==n;y++);}v(n),e.onChange!==void 0&&e.onChange(e.prop!==void 0?e.prop:e.title,n)},m={};e.disabled&&(m.opacity=.8);const s=typeof i=="string"?i:String(i??""),o=e.type==="field"||e.type==="string"&&(s.length>100||s.search(` `)>-1),h=o||e.type==="image"||e.type==="vector2";return t.jsxs("div",{className:`field ${h?"block":""}`,style:m,children:[e.type!=="button"&&t.jsx("span",{ref:u,children:a.capitalize(e.title)},"fieldLabel"),e.type==="string"&&!o&&t.jsx("input",{type:"text",disabled:e.disabled,onChange:l,value:i,name:a.randomID()}),(e.type==="field"||e.type==="string"&&o)&&t.jsx("textarea",{cols:50,rows:10,disabled:e.disabled!==void 0?e.disabled:!0,onChange:l,onKeyDown:c=>{e.onKeyDown!==void 0&&e.onKeyDown(c)},value:i,name:a.randomID()}),e.type==="boolean"&&t.jsx("input",{type:"checkbox",disabled:e.disabled,onChange:l,checked:i,name:a.randomID()}),e.type==="number"&&t.jsx(x,{value:i,type:e.type,prop:e.prop!==void 0?e.prop:e.title,min:e.min,max:e.max,step:e.step,disabled:e.disabled,labelRef:u,onChange:e.onChange}),e.type==="range"&&t.jsx(x,{value:i,type:e.type,prop:e.prop!==void 0?e.prop:e.title,min:e.min,max:e.max,step:e.step,disabled:e.disabled,labelRef:u,onChange:e.onChange}),e.type==="color"&&t.jsxs(t.Fragment,{children:[t.jsx("input",{type:"text",value:i.toString(),onChange:l,disabled:e.disabled,className:"color",name:a.randomID()}),t.jsx("input",{type:"color",value:i,onChange:l,disabled:e.disabled,name:a.randomID()})]}),e.type==="button"&&t.jsx("button",{disabled:e.disabled,onClick:()=>{e.onChange!==void 0&&e.onChange(e.prop!==void 0?e.prop:e.title,!0)},children:e.title}),e.type==="image"&&t.jsx(I,{title:e.title,prop:e.prop,value:e.value,onChange:e.onChange}),e.type==="option"&&t.jsx(t.Fragment,{children:t.jsx("select",{onChange:l,disabled:e.disabled,value:i,name:a.randomID(),children:e.options?.map((c,n)=>t.jsx("option",{value:c.value,children:a.capitalize(c.title)},n))})}),e.type==="vector2"&&t.jsx(C,{step:e.step,value:i,min:0,max:1,onChange:l}),e.type==="grid3"&&t.jsx(f,{step:e.step,value:i,onChange:l}),e.type==="grid4"&&t.jsx(r,{step:e.step,value:i,onChange:l}),e.type==="euler"&&t.jsx(f,{step:e.step,value:i,onChange:l})]})}module.exports=q;