dynamicformdjx-react 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  基于 **React** 的动态表单输入组件。
4
4
 
5
- React 版本 (正在适配)
5
+ React 版本
6
6
 
7
7
  Vue3 版本 [Document](https://xczcdjx.github.io/dynamicFormDoc/)
8
8
 
9
- Vue2 版本 (正在适配)
9
+ [Vue2 版本](https://www.npmjs.com/package/dynamicformdjx-vue2) (正在适配)
10
10
 
11
11
 
12
12
  ## 安装
@@ -39,7 +39,7 @@ function App() {
39
39
  </pre>
40
40
  <div>
41
41
  <button onClick={() => {
42
- dynamicInputRef.current.onSet({
42
+ dynamicInputRef.current?.onSet?.({
43
43
  test: 'hello World'
44
44
  })
45
45
  }}>setData
@@ -49,4 +49,41 @@ function App() {
49
49
  }
50
50
 
51
51
  export default App
52
+ ```
53
+
54
+ ### 级联基本使用
55
+ ```tsx
56
+ import {useState} from "react";
57
+ import {DynamicCascadeInput,dynamicCascadeInputRef} from "dynamicformdjx-react";
58
+ const App=()=>{
59
+ const [obj,setObj]=useState<Record<string, any>>({
60
+ a: {
61
+ b: {
62
+ c: {
63
+ d: {
64
+ e: "hello world"
65
+ }
66
+ }
67
+ }
68
+ },
69
+ aa: [5, 2, 0],
70
+ aaa: 1314
71
+ });
72
+ const dynamicInputRef=useRef<dynamicCascadeInputRef>(null)
73
+ return (<div>
74
+ <DynamicCascadeInput ref={dynamicInputRef} isController value={obj} onChange={(e) => setObj(e)}/>
75
+ <pre>
76
+ {JSON.stringify(obj,null, 2)}
77
+ </pre>
78
+ <div>
79
+ <button onClick={() => {
80
+ dynamicInputRef.current?.onSet?.({
81
+ test:'hello world'
82
+ })
83
+ }}>setData
84
+ </button>
85
+ </div>
86
+ </div>)
87
+ }
88
+ export default App;
52
89
  ```
package/dist/index.cjs CHANGED
@@ -1,14 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const U=require("react");var re={exports:{}},z={};var $e;function mr(){if($e)return z;$e=1;var s=U,v=Symbol.for("react.element"),f=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,l=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,h={key:!0,ref:!0,__self:!0,__source:!0};function E(k,p,D){var _,j={},P=null,F=null;D!==void 0&&(P=""+D),p.key!==void 0&&(P=""+p.key),p.ref!==void 0&&(F=p.ref);for(_ in p)a.call(p,_)&&!h.hasOwnProperty(_)&&(j[_]=p[_]);if(k&&k.defaultProps)for(_ in p=k.defaultProps,p)j[_]===void 0&&(j[_]=p[_]);return{$$typeof:v,type:k,key:P,ref:F,props:j,_owner:l.current}}return z.Fragment=f,z.jsx=E,z.jsxs=E,z}var G={};var We;function yr(){return We||(We=1,process.env.NODE_ENV!=="production"&&(function(){var s=U,v=Symbol.for("react.element"),f=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),E=Symbol.for("react.provider"),k=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),F=Symbol.for("react.offscreen"),A=Symbol.iterator,I="@@iterator";function C(e){if(e===null||typeof e!="object")return null;var r=A&&e[A]||e[I];return typeof r=="function"?r:null}var N=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function u(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];S("error",e,t)}}function S(e,r,t){{var n=N.ReactDebugCurrentFrame,c=n.getStackAddendum();c!==""&&(r+="%s",t=t.concat([c]));var d=t.map(function(o){return String(o)});d.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,d)}}var B=!1,g=!1,R=!1,O=!1,Y=!1,$;$=Symbol.for("react.module.reference");function ne(e){return!!(typeof e=="string"||typeof e=="function"||e===a||e===h||Y||e===l||e===D||e===_||O||e===F||B||g||R||typeof e=="object"&&e!==null&&(e.$$typeof===P||e.$$typeof===j||e.$$typeof===E||e.$$typeof===k||e.$$typeof===p||e.$$typeof===$||e.getModuleId!==void 0))}function Me(e,r,t){var n=e.displayName;if(n)return n;var c=r.displayName||r.name||"";return c!==""?t+"("+c+")":t}function ve(e){return e.displayName||"Context"}function W(e){if(e==null)return null;if(typeof e.tag=="number"&&u("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case a:return"Fragment";case f:return"Portal";case h:return"Profiler";case l:return"StrictMode";case D:return"Suspense";case _:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case k:var r=e;return ve(r)+".Consumer";case E:var t=e;return ve(t._context)+".Provider";case p:return Me(e,e.render,"ForwardRef");case j:var n=e.displayName||null;return n!==null?n:W(e.type)||"Memo";case P:{var c=e,d=c._payload,o=c._init;try{return W(o(d))}catch{return null}}}return null}var L=Object.assign,H=0,pe,me,ye,be,ge,he,Re;function Ee(){}Ee.__reactDisabledLog=!0;function Ve(){{if(H===0){pe=console.log,me=console.info,ye=console.warn,be=console.error,ge=console.group,he=console.groupCollapsed,Re=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Ee,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}H++}}function Ue(){{if(H--,H===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:L({},e,{value:pe}),info:L({},e,{value:me}),warn:L({},e,{value:ye}),error:L({},e,{value:be}),group:L({},e,{value:ge}),groupCollapsed:L({},e,{value:he}),groupEnd:L({},e,{value:Re})})}H<0&&u("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ae=N.ReactCurrentDispatcher,ie;function X(e,r,t){{if(ie===void 0)try{throw Error()}catch(c){var n=c.stack.trim().match(/\n( *(at )?)/);ie=n&&n[1]||""}return`
2
- `+ie+e}}var oe=!1,Z;{var qe=typeof WeakMap=="function"?WeakMap:Map;Z=new qe}function _e(e,r){if(!e||oe)return"";{var t=Z.get(e);if(t!==void 0)return t}var n;oe=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var d;d=ae.current,ae.current=null,Ve();try{if(r){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(T){n=T}Reflect.construct(e,[],o)}else{try{o.call()}catch(T){n=T}e.call(o.prototype)}}else{try{throw Error()}catch(T){n=T}e()}}catch(T){if(T&&n&&typeof T.stack=="string"){for(var i=T.stack.split(`
3
- `),x=n.stack.split(`
4
- `),m=i.length-1,y=x.length-1;m>=1&&y>=0&&i[m]!==x[y];)y--;for(;m>=1&&y>=0;m--,y--)if(i[m]!==x[y]){if(m!==1||y!==1)do if(m--,y--,y<0||i[m]!==x[y]){var w=`
5
- `+i[m].replace(" at new "," at ");return e.displayName&&w.includes("<anonymous>")&&(w=w.replace("<anonymous>",e.displayName)),typeof e=="function"&&Z.set(e,w),w}while(m>=1&&y>=0);break}}}finally{oe=!1,ae.current=d,Ue(),Error.prepareStackTrace=c}var J=e?e.displayName||e.name:"",M=J?X(J):"";return typeof e=="function"&&Z.set(e,M),M}function Je(e,r,t){return _e(e,!1)}function Be(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function Q(e,r,t){if(e==null)return"";if(typeof e=="function")return _e(e,Be(e));if(typeof e=="string")return X(e);switch(e){case D:return X("Suspense");case _:return X("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case p:return Je(e.render);case j:return Q(e.type,r,t);case P:{var n=e,c=n._payload,d=n._init;try{return Q(d(c),r,t)}catch{}}}return""}var K=Object.prototype.hasOwnProperty,Se={},xe=N.ReactDebugCurrentFrame;function ee(e){if(e){var r=e._owner,t=Q(e.type,e._source,r?r.type:null);xe.setExtraStackFrame(t)}else xe.setExtraStackFrame(null)}function He(e,r,t,n,c){{var d=Function.call.bind(K);for(var o in e)if(d(e,o)){var i=void 0;try{if(typeof e[o]!="function"){var x=Error((n||"React class")+": "+t+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw x.name="Invariant Violation",x}i=e[o](r,o,n,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(m){i=m}i&&!(i instanceof Error)&&(ee(c),u("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",t,o,typeof i),ee(null)),i instanceof Error&&!(i.message in Se)&&(Se[i.message]=!0,ee(c),u("Failed %s type: %s",t,i.message),ee(null))}}}var Ke=Array.isArray;function se(e){return Ke(e)}function ze(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function Ge(e){try{return Te(e),!1}catch{return!0}}function Te(e){return""+e}function je(e){if(Ge(e))return u("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",ze(e)),Te(e)}var Ce=N.ReactCurrentOwner,Xe={key:!0,ref:!0,__self:!0,__source:!0},Oe,we;function Ze(e){if(K.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Qe(e){if(K.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function er(e,r){typeof e.ref=="string"&&Ce.current}function rr(e,r){{var t=function(){Oe||(Oe=!0,u("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function tr(e,r){{var t=function(){we||(we=!0,u("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var nr=function(e,r,t,n,c,d,o){var i={$$typeof:v,type:e,key:r,ref:t,props:o,_owner:d};return i._store={},Object.defineProperty(i._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(i,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(i,"_source",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(i.props),Object.freeze(i)),i};function ar(e,r,t,n,c){{var d,o={},i=null,x=null;t!==void 0&&(je(t),i=""+t),Qe(r)&&(je(r.key),i=""+r.key),Ze(r)&&(x=r.ref,er(r,c));for(d in r)K.call(r,d)&&!Xe.hasOwnProperty(d)&&(o[d]=r[d]);if(e&&e.defaultProps){var m=e.defaultProps;for(d in m)o[d]===void 0&&(o[d]=m[d])}if(i||x){var y=typeof e=="function"?e.displayName||e.name||"Unknown":e;i&&rr(o,y),x&&tr(o,y)}return nr(e,i,x,c,n,Ce.current,o)}}var ue=N.ReactCurrentOwner,ke=N.ReactDebugCurrentFrame;function q(e){if(e){var r=e._owner,t=Q(e.type,e._source,r?r.type:null);ke.setExtraStackFrame(t)}else ke.setExtraStackFrame(null)}var le;le=!1;function ce(e){return typeof e=="object"&&e!==null&&e.$$typeof===v}function Pe(){{if(ue.current){var e=W(ue.current.type);if(e)return`
6
-
7
- Check the render method of \``+e+"`."}return""}}function ir(e){return""}var Ae={};function or(e){{var r=Pe();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=`
8
-
9
- Check the top-level render call using <`+t+">.")}return r}}function Ie(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=or(r);if(Ae[t])return;Ae[t]=!0;var n="";e&&e._owner&&e._owner!==ue.current&&(n=" It was passed a child from "+W(e._owner.type)+"."),q(e),u('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,n),q(null)}}function Fe(e,r){{if(typeof e!="object")return;if(se(e))for(var t=0;t<e.length;t++){var n=e[t];ce(n)&&Ie(n,r)}else if(ce(e))e._store&&(e._store.validated=!0);else if(e){var c=C(e);if(typeof c=="function"&&c!==e.entries)for(var d=c.call(e),o;!(o=d.next()).done;)ce(o.value)&&Ie(o.value,r)}}}function sr(e){{var r=e.type;if(r==null||typeof r=="string")return;var t;if(typeof r=="function")t=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===p||r.$$typeof===j))t=r.propTypes;else return;if(t){var n=W(r);He(t,e.props,"prop",n,e)}else if(r.PropTypes!==void 0&&!le){le=!0;var c=W(r);u("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",c||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&u("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ur(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var n=r[t];if(n!=="children"&&n!=="key"){q(e),u("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),q(null);break}}e.ref!==null&&(q(e),u("Invalid attribute `ref` supplied to `React.Fragment`."),q(null))}}var Ne={};function De(e,r,t,n,c,d){{var o=ne(e);if(!o){var i="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(i+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var x=ir();x?i+=x:i+=Pe();var m;e===null?m="null":se(e)?m="array":e!==void 0&&e.$$typeof===v?(m="<"+(W(e.type)||"Unknown")+" />",i=" Did you accidentally export a JSX literal instead of a component?"):m=typeof e,u("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",m,i)}var y=ar(e,r,t,c,d);if(y==null)return y;if(o){var w=r.children;if(w!==void 0)if(n)if(se(w)){for(var J=0;J<w.length;J++)Fe(w[J],e);Object.freeze&&Object.freeze(w)}else u("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Fe(w,e)}if(K.call(r,"key")){var M=W(e),T=Object.keys(r).filter(function(pr){return pr!=="key"}),fe=T.length>0?"{key: someKey, "+T.join(": ..., ")+": ...}":"{key: someKey}";if(!Ne[M+fe]){var vr=T.length>0?"{"+T.join(": ..., ")+": ...}":"{}";u(`A props object containing a "key" prop is being spread into JSX:
10
- let props = %s;
11
- <%s {...props} />
12
- React keys must be passed directly to JSX without using spread:
13
- let props = %s;
14
- <%s key={someKey} {...props} />`,fe,M,vr,M),Ne[M+fe]=!0}}return e===a?ur(y):sr(y),y}}function lr(e,r,t){return De(e,r,t,!0)}function cr(e,r,t){return De(e,r,t,!1)}var fr=cr,dr=lr;G.Fragment=a,G.jsx=fr,G.jsxs=dr})()),G}var Ye;function br(){return Ye||(Ye=1,process.env.NODE_ENV==="production"?re.exports=mr():re.exports=yr()),re.exports}var b=br();const te=(s,v,f)=>Object.keys(s).map((a,l)=>{const h=s[a],E=Array.isArray(h),k=E?h.every(p=>typeof p=="number"):typeof h=="number";return{rId:v(l),key:a,value:E?h.join(f):h,isArray:E||void 0,isNumber:k||void 0}}),de=(s,v)=>s.reduce((f,a)=>(a.key.trim()&&(f[a.key]=gr(a.value,a.isArray,a.isNumber,v)),f),{}),gr=(s,v,f,a=",")=>{let l;return v?f?l=String(s).split(a).map(Number).filter(h=>!Number.isNaN(h)):l=String(s).split(a):f?l=parseFloat(s):l=s.toString(),l},hr=(s,v,f=",")=>{const a=l=>{l=l.replace(/[^\d.-]/g,"");let h=!1;l.startsWith("-")&&(h=!0),l=l.replace(/-/g,"");const E=l.indexOf(".");return E!==-1&&(l=l.slice(0,E+1)+l.slice(E+1).replace(/\./g,"")),(h?"-":"")+l};return v?s.split(f).map(l=>a(l)).join(f):a(s)};function Le(s){var v,f,a="";if(typeof s=="string"||typeof s=="number")a+=s;else if(typeof s=="object")if(Array.isArray(s)){var l=s.length;for(v=0;v<l;v++)s[v]&&(f=Le(s[v]))&&(a&&(a+=" "),a+=f)}else for(f in s)s[f]&&(a&&(a+=" "),a+=f);return a}function V(){for(var s,v,f=0,a="",l=arguments.length;f<l;f++)(s=arguments[f])&&(v=Le(s))&&(a&&(a+=" "),a+=v);return a}const Rr=U.forwardRef((s,v)=>{const{value:f,size:a,isController:l,config:h,btnConfigs:E,dyListConfigs:k,randomFun:p=u=>`${Date.now()}_${u??0}`,onReset:D,onMerge:_,onChange:j}=s,P={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...E},F={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,...h},A={arraySplitSymbol:",",...k},[I,C]=U.useState(()=>te(f,p,A.arraySplitSymbol)),N=U.useRef(null);return U.useImperativeHandle(v,()=>({getResult(u){return u==="ori"?I:de(I,A.arraySplitSymbol)},onSet(u){C(te(u??f,p,A.arraySplitSymbol))}})),U.useEffect(()=>{l&&j(de(I,A.arraySplitSymbol))},[I]),b.jsxs("div",{className:s.dyCls??`dynamicInput ${a}`,children:[b.jsx("div",{className:"dyFormList",ref:N,style:{maxHeight:F.maxHeight},children:I.map((u,S,B)=>b.jsxs("div",{className:"dItem",children:[b.jsxs("div",{className:"input",children:[b.jsx("input",{value:u.key,className:"key nativeInput",onInput:g=>{const R=g.target.value;C(O=>{const Y=[...O],$=Y[S];return Y[S]={...$,key:R},Y})}}),":",b.jsxs("div",{className:"vInput",children:[b.jsxs("div",{className:"slot",children:[b.jsx("button",{className:V([u.isArray?"success":"default","small","bt"]),onClick:()=>{C(g=>{const R=[...g],O=R[S];return R[S]={...O,isArray:!O.isArray},R})},children:"Array"})," ",b.jsx("button",{className:V([u.isNumber?"success":"default","small","bt"]),onClick:()=>{C(g=>{const R=[...g],O=R[S];return R[S]={...O,isNumber:!O.isNumber},R})},children:"Number"})]}),b.jsx("input",{value:u.value,className:"value nativeV",onInput:g=>{const R=g.target.value;let O=R;u.isNumber&&F.allowFilter&&(O=hr(R,u.isArray,A.arraySplitSymbol)),C(Y=>{const $=[...Y],ne=$[S];return $[S]={...ne,value:O},$})}})]})]}),b.jsxs("div",{className:"btn",children:[b.jsx("button",{className:V([a,"success","bt"]),disabled:S!==B.length-1,onClick:()=>{C(g=>[...g,{rId:p(),key:"",value:""}]),F.autoScroll&&setTimeout(()=>{const g=N.current;g?.scrollTo({top:g?.scrollHeight+20,behavior:"smooth"})})},children:"+"}),b.jsx("button",{className:V(["danger",a,"bt"]),onClick:()=>{C(g=>g.filter(R=>R.rId!==u.rId))},children:"-"})]})]},u.rId))}),b.jsxs("div",{className:"control",children:[!I.length&&b.jsx("button",{className:V(["success",a,"bt"]),onClick:()=>{C(u=>[...u,{rId:p(),key:"",value:""}])},children:P.newTxt}),!l&&b.jsxs(b.Fragment,{children:[!F.hideReset&&b.jsx("button",{className:V(["default",a,"bt"]),onClick:()=>{C(te(f,p,A.arraySplitSymbol)),D?.()},children:P.resetTxt}),b.jsx("button",{className:V(["info",a,"bt"]),onClick:()=>{[...I].sort((B,g)=>+B.rId-+g.rId);const S=de(I,A.arraySplitSymbol);j(S),_?.(S,I),C(te(S,p,A.arraySplitSymbol))},children:P.mergeTxt})]})]})]})});exports.DynamicInput=Rr;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const e=require("react/jsx-runtime"),R=require("react"),p=require("clsx"),P=(o,y,c)=>Object.keys(o).map((r,l)=>{const u=o[r],v=Array.isArray(u),F=v?u.every(L=>typeof L=="number"):typeof u=="number";return{rId:y(l),key:r,value:v?u.join(c):u,isArray:v||void 0,isNumber:F||void 0}}),_=(o,y)=>o.reduce((c,r)=>(r.key.trim()&&(c[r.key]=K(r.value,r.isArray,r.isNumber,y)),c),{}),K=(o,y,c,r=",")=>{let l;return y?c?l=String(o).split(r).map(Number).filter(u=>!Number.isNaN(u)):l=String(o).split(r):c?l=parseFloat(o):l=o.toString(),l},W=(o,y,c=",")=>{const r=l=>{l=l.replace(/[^\d.-]/g,"");let u=!1;l.startsWith("-")&&(u=!0),l=l.replace(/-/g,"");const v=l.indexOf(".");return v!==-1&&(l=l.slice(0,v+1)+l.slice(v+1).replace(/\./g,"")),(u?"-":"")+l};return y?o.split(c).map(l=>r(l)).join(c):r(o)},J=o=>`hsl(${o*35%360}, 60%, 65%)`,Q=(o,y)=>o[y-1]??J(y);function T(o,y,c){if(y.length===0)return c(o,-1);const[r,...l]=y,u=[...o];if(l.length===0)return c(u,r);const v=u[r];if(!Array.isArray(v.value))return u;const F=T(v.value,l,c);return F.length===0?u[r]={...v,value:"",isArray:void 0,isNumber:void 0}:u[r]={...v,value:F},u}const U=R.forwardRef((o,y)=>{const{value:c,size:r,dyCls:l,isController:u,configs:v,btnConfigs:F,dyListConfigs:L,randomFun:k=n=>`${Date.now()}_${n??0}`,onReset:q,onMerge:z,onChange:V}=o,M={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...F},$={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,...v},h={arraySplitSymbol:",",...L},[g,j]=R.useState(()=>P(c,k,h.arraySplitSymbol)),S=R.useRef(null);return R.useImperativeHandle(y,()=>({getResult(n){return n==="ori"?g:_(g,h.arraySplitSymbol)},onSet(n){j(P(n??c,k,h.arraySplitSymbol))}})),R.useEffect(()=>{u&&V(_(g,h.arraySplitSymbol))},[g]),e.jsxs("div",{className:l??`dynamicInput ${r}`,children:[e.jsx("div",{className:"dyFormList",ref:S,style:{maxHeight:$.maxHeight},children:g.map((n,d,O)=>e.jsxs("div",{className:"dItem",children:[e.jsxs("div",{className:"input",children:[e.jsx("input",{value:n.key,className:"key nativeInput",onInput:m=>{const t=m.target.value;j(a=>{const x=[...a],s=x[d];return x[d]={...s,key:t},x})}}),":",e.jsxs("div",{className:"vInput",children:[e.jsxs("div",{className:"slot",children:[e.jsx("button",{className:p([n.isArray?"success":"default","small","bt"]),onClick:()=>{j(m=>{const t=[...m],a=t[d];return t[d]={...a,isArray:!a.isArray},t})},children:"Array"})," ",e.jsx("button",{className:p([n.isNumber?"success":"default","small","bt"]),onClick:()=>{j(m=>{const t=[...m],a=t[d];return t[d]={...a,isNumber:!a.isNumber},t})},children:"Number"})]}),e.jsx("input",{value:n.value,className:"value nativeV",onInput:m=>{const t=m.target.value;let a=t;n.isNumber&&$.allowFilter&&(a=W(t,n.isArray,h.arraySplitSymbol)),j(x=>{const s=[...x],H=s[d];return s[d]={...H,value:a},s})}})]})]}),e.jsxs("div",{className:"btn",children:[e.jsx("button",{className:p([r,"success","bt"]),disabled:d!==O.length-1,onClick:()=>{j(m=>[...m,{rId:k(),key:"",value:""}]),$.autoScroll&&setTimeout(()=>{const m=S.current;m?.scrollTo({top:m?.scrollHeight+20,behavior:"smooth"})})},children:"+"}),e.jsx("button",{className:p(["danger",r,"bt"]),onClick:()=>{j(m=>m.filter(t=>t.rId!==n.rId))},children:"-"})]})]},n.rId))}),e.jsxs("div",{className:"control",children:[!g.length&&e.jsx("button",{className:p(["success",r,"bt"]),onClick:()=>{j(n=>[...n,{rId:k(),key:"",value:""}])},children:M.newTxt}),!u&&e.jsxs(e.Fragment,{children:[!$.hideReset&&e.jsx("button",{className:p(["default",r,"bt"]),onClick:()=>{j(P(c,k,h.arraySplitSymbol)),q?.()},children:M.resetTxt}),e.jsx("button",{className:p(["info",r,"bt"]),onClick:()=>{[...g].sort((O,m)=>+O.rId-+m.rId);const d=_(g,h.arraySplitSymbol);V(d),z?.(d,g),j(P(d,k,h.arraySplitSymbol))},children:M.mergeTxt})]})]})]})}),X=R.forwardRef((o,y)=>{const{depth:c=5,value:r,isController:l,dyCls:u,configs:v,btnConfigs:F,dyListConfigs:L,randomFun:k=t=>`${Date.now()}_${t??0}`,newChildTxt:q=t=>`添加 '${t.key}' 子项`,onReset:z,onMerge:V,onChange:M}=o,$={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...F},h={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,showPad:!0,retractLen:0,borderColors:[],...v},g={arraySplitSymbol:",",...L},j=t=>["string","number"].includes(t),[S,n]=R.useState(()=>d(r));R.useImperativeHandle(y,()=>({getResult(t){return t==="ori"?S:O(S)},onSet(t){n(d(t??r))}}));function d(t){return Object.keys(t).map((a,x)=>{let s=t[a];const H=Array.isArray(s),B=H?s.every(D=>typeof D=="number"):typeof s=="number",I=s===null;return j(typeof s)&&(s=t[a]),I&&(s=""),{rId:k(x),key:a,value:Object.prototype.toString.call(s)==="[object Object]"?d(t[a]):H?s.join(g.arraySplitSymbol):s,isArray:H||void 0,isNumber:B||void 0}})}const O=t=>t.reduce((a,x)=>{const s=x.value;return x.key.trim().length&&(a[x.key]=Array.isArray(s)?O(s):K(x.value,x.isArray,x.isNumber,g.arraySplitSymbol)),a},{}),m=(t,a=1,x=[])=>e.jsx("div",{className:p([`depth-${a}`,h.showBorder?"":"no-border",h.showPad?"":"no-pad"]),style:{"--depth":a,["--c"+[a]]:Q(h.borderColors,a)},children:t.map((s,H,B)=>{const I=[...x,H],D=Array.isArray(s.value),G=j(typeof s.value);return e.jsxs("div",{className:"dItem",style:{marginLeft:a>1?`${a*h.retractLen}px`:"0"},children:[e.jsxs("div",{className:"input",children:[!D&&e.jsxs(e.Fragment,{children:[e.jsx("input",{value:s.key,className:"key nativeInput",onInput:A=>{const N=A.target.value;n(b=>T(b,I,(i,f)=>{const w=[...i],C=w[f];return w[f]={...C,key:N},w}))}}),":"]}),e.jsxs("div",{className:"vInput",children:[e.jsx("div",{className:"slot",children:Array.isArray(s.value)?void 0:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:p([s.isArray?"success":"default","small","bt"]),onClick:()=>{n(A=>T(A,I,(N,b)=>{const i=[...N],f=i[b];return i[b]={...f,isArray:!f.isArray},i}))},children:"Array"})," ",e.jsx("button",{className:p([s.isNumber?"success":"default","small","bt"]),onClick:()=>{n(A=>T(A,I,(N,b)=>{const i=[...N],f=i[b];return i[b]={...f,isNumber:!f.isNumber},i}))},children:"Number"})]})}),e.jsx("input",{className:`value nativeV ${D?"isKey":""}`,value:G?s.value:s.key,onInput:A=>{const N=A.target.value;if(D){n(i=>T(i,I,(f,w)=>{const C=[...f],E=C[w];return C[w]={...E,key:N},C}));return}let b=N;h.allowFilter&&s.isNumber&&(b=W(N,s.isArray,g.arraySplitSymbol)),n(i=>T(i,I,(f,w)=>{const C=[...f],E=C[w];return C[w]={...E,value:b},C}))}}),e.jsx("div",{className:"surSlot",children:a<c?!D&&e.jsx("button",{className:p(["success","bt"]),onClick:()=>{n(A=>T(A,I,(N,b)=>{const i=[...N],f=i[b],C=[...Array.isArray(f.value)?f.value:[],{rId:k(),key:"",value:""}];return i[b]={...f,isArray:void 0,isNumber:void 0,value:C},i}))},children:q(s)}):null})]})]}),e.jsxs("div",{className:"btn",children:[e.jsx("button",{className:p(["success","bt"]),disabled:H!==B.length-1,onClick:()=>{n(A=>T(A,I,(N,b)=>{const i=[...N];return i.splice(b+1,0,{rId:k(),key:"",value:""}),i}))},children:"+"}),e.jsx("button",{className:p(["danger","bt"]),onClick:()=>{n(A=>T(A,I,(N,b)=>{const i=[...N];return i.splice(b,1),i}))},children:"-"})]}),Array.isArray(s.value)&&m(s.value,a+1,I)]},s.rId)})});return R.useEffect(()=>{l&&M(O(S))},[S]),e.jsxs("div",{className:u??"dynamicCascadeInput",children:[e.jsx("div",{className:"dyFormList",style:{maxHeight:h.maxHeight},children:m(S)}),e.jsxs("div",{className:"control",children:[!S.length&&e.jsx("button",{className:p(["success","bt"]),onClick:()=>{n(t=>[...t,{rId:k(),key:"",value:""}])},children:$.newTxt}),!l&&e.jsxs(e.Fragment,{children:[!h.hideReset&&e.jsx("button",{className:p(["default","bt"]),onClick:()=>{n(d(r)),z?.()},children:$.resetTxt}),e.jsx("button",{className:p(["info","bt"]),onClick:()=>{const t=O(S);M(t),V?.(t,S),n(d(t))},children:$.mergeTxt})]})]})]})});exports.DynamicCascadeInput=X;exports.DynamicInput=U;
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .dynamicInput{overflow:hidden;padding:15px}.dynamicInput.small .dyFormList{gap:6px}.dynamicInput.small .dyFormList .typeBtn{padding:.2em .6em;height:18px}.dynamicInput.small .dyFormList>.dItem .input .key{font-size:.7em}.dynamicInput.small .dyFormList>.dItem .input .vInput{padding:.15em .4em}.dynamicInput.small .dyFormList>.dItem .input .vInput .slot{white-space:nowrap}.dynamicInput.small .dyFormList>.dItem .input .vInput .slot>button{padding:.1em .4em;font-size:.8em}.dynamicInput.small .dyFormList>.dItem .btn .bt{padding:.3em .8em}.dynamicInput.large .dyFormList{gap:15px}.dynamicInput.large .dyFormList .dItem{column-gap:20px}.dynamicInput.large .dyFormList .dItem .input .key{font-size:1.2em}.dynamicInput.large .dyFormList .dItem .input .vInput{padding:.5em .4em}.dynamicInput.large .dyFormList .dItem .input .vInput input{font-size:1.2em}.dynamicInput.large .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicInput.large .dyFormList .dItem .input .vInput .slot>button{padding:.15em .4em;font-size:1em}.dynamicInput.large .dyFormList .dItem .btn .bt{padding:.8em 1.2em}.dynamicInput .dyFormList{overflow:auto;display:grid;gap:10px;padding:10px 5px}.dynamicInput .dyFormList .dItem{width:100%;display:grid;grid-template-columns:1fr 100px;column-gap:0}.dynamicInput .dyFormList .dItem .input{display:flex;justify-content:flex-start;align-items:center;column-gap:15px}.dynamicInput .dyFormList .dItem .input .key{text-align:center;width:150px}.dynamicInput .dyFormList .dItem .input .key.nativeInput{border:1px solid #d2d6dd;padding:.5em .4em;border-radius:3px}.dynamicInput .dyFormList .dItem .input .key.nativeInput:focus{outline:none;box-shadow:0 0 5px #007bff4d}.dynamicInput .dyFormList .dItem .input .vInput{width:100%;border:1px solid #d2d6dd;padding:.2em .4em;border-radius:3px;display:flex;column-gap:5px}.dynamicInput .dyFormList .dItem .input .vInput>.value{border:none;width:100%}.dynamicInput .dyFormList .dItem .input .vInput>.value.nativeV{letter-spacing:3px}.dynamicInput .dyFormList .dItem .input .vInput>.value.nativeV:focus{outline:none}.dynamicInput .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicInput .dyFormList .dItem .input .vInput .slot>button{font-weight:400;border-radius:3px;font-size:.8em}.dynamicInput .dyFormList .dItem .btn{display:flex;justify-content:flex-end;align-items:center;column-gap:8px}.dynamicInput .dyFormList .dItem .btn .n-button{font-size:25px;padding:10px 12px}.dynamicInput .dyFormList .dItem .btn .el-button+.el-button{margin-left:0}.dynamicInput .dyFormList .dItem .btn .bt{padding:.5em 1em}.dynamicInput .key .el-input__inner,.dynamicInput .isKey .el-input__inner{text-align:center}.dynamicInput .control{display:flex;justify-content:center;align-items:center;margin-top:5px;column-gap:10px}.dynamicInput .bt{color:#fff;border-radius:5px;border:1px solid transparent;padding:.3em .8em;font-size:.9em;font-weight:600;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:.25s;opacity:.9}.dynamicInput .bt:hover{opacity:1}.dynamicInput .bt:disabled{opacity:.35;cursor:not-allowed}.dynamicInput .default{background:#fff;color:#000;border:1px solid #d2d6dd}.dynamicInput .info{background:#8a8e94}.dynamicInput .success{background:#63ba39}.dynamicInput .danger{background:#ea696a}.dynamicInput .aaa{color:red}.dynamicCascadeInput{overflow:hidden;padding:15px}.dynamicCascadeInput.small .dyFormList{gap:6px}.dynamicCascadeInput.small .dyFormList .typeBtn{padding:.2em .6em;height:18px}.dynamicCascadeInput.small .dyFormList>.dItem .input .key{font-size:.7em}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput{padding:.15em .4em}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput .slot>button{padding:.1em .4em;font-size:.8em}.dynamicCascadeInput.small .dyFormList>.dItem .btn .bt{padding:.3em .8em}.dynamicCascadeInput.large .dyFormList{gap:15px}.dynamicCascadeInput.large .dyFormList .dItem{column-gap:20px}.dynamicCascadeInput.large .dyFormList .dItem .input .key{font-size:1.2em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput{padding:.5em .4em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput input{font-size:1.2em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput .slot>button{padding:.15em .4em;font-size:1em}.dynamicCascadeInput.large .dyFormList .dItem .btn .bt{padding:.8em 1.2em}.dynamicCascadeInput .dyFormList{overflow:auto;display:grid;gap:10px;padding:10px 5px}.dynamicCascadeInput .dyFormList .dItem{width:100%;display:grid;grid-template-columns:1fr 100px;column-gap:0}.dynamicCascadeInput .dyFormList .dItem .input{display:flex;justify-content:flex-start;align-items:center;column-gap:15px}.dynamicCascadeInput .dyFormList .dItem .input .key{text-align:center;width:150px}.dynamicCascadeInput .dyFormList .dItem .input .key.nativeInput{border:1px solid #d2d6dd;padding:.5em .4em;border-radius:3px}.dynamicCascadeInput .dyFormList .dItem .input .key.nativeInput:focus{outline:none;box-shadow:0 0 5px #007bff4d}.dynamicCascadeInput .dyFormList .dItem .input .vInput{width:100%;border:1px solid #d2d6dd;padding:.2em .4em;border-radius:3px;display:flex;column-gap:5px}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value{border:none;width:100%}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value.nativeV{letter-spacing:3px}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value.nativeV:focus{outline:none}.dynamicCascadeInput .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput .dyFormList .dItem .input .vInput .slot>button{font-weight:400;border-radius:3px;font-size:.8em}.dynamicCascadeInput .dyFormList .dItem .btn{display:flex;justify-content:flex-end;align-items:center;column-gap:8px}.dynamicCascadeInput .dyFormList .dItem .btn .n-button{font-size:25px;padding:10px 12px}.dynamicCascadeInput .dyFormList .dItem .btn .el-button+.el-button{margin-left:0}.dynamicCascadeInput .dyFormList .dItem .btn .bt{padding:.5em 1em}.dynamicCascadeInput .key .el-input__inner,.dynamicCascadeInput .isKey .el-input__inner{text-align:center}.dynamicCascadeInput .control{display:flex;justify-content:center;align-items:center;margin-top:5px;column-gap:10px}.dynamicCascadeInput .bt{color:#fff;border-radius:5px;border:1px solid transparent;padding:.3em .8em;font-size:.9em;font-weight:600;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:.25s;opacity:.9}.dynamicCascadeInput .bt:hover{opacity:1}.dynamicCascadeInput .bt:disabled{opacity:.35;cursor:not-allowed}.dynamicCascadeInput .default{background:#fff;color:#000;border:1px solid #d2d6dd}.dynamicCascadeInput .info{background:#8a8e94}.dynamicCascadeInput .success{background:#63ba39}.dynamicCascadeInput .danger{background:#ea696a}.dynamicCascadeInput .aaa{color:red}.dynamicCascadeInput .dyFormList .dItem{width:inherit}.dynamicCascadeInput .dyFormList .dItem .vInput .surSlot{white-space:nowrap}.dynamicCascadeInput .dyFormList .dItem .vInput .surSlot>button{padding:.1em .4em;font-size:.8em}.dynamicCascadeInput .dyFormList .dItem .input .value.isKey{text-align:center}.dynamicCascadeInput .dyFormList .dItem .input .value.isKey input{font-weight:700}.dynamicCascadeInput .dyFormList>.depth-1{display:grid;border:1px solid var(--c1);border-style:dashed;border-radius:5px}.dynamicCascadeInput .dyFormList>.depth-1>.dItem{padding:5px}.dynamicCascadeInput .dyFormList>.depth-1 .dItem+.dItem{margin-top:5px}.dynamicCascadeInput .dyFormList>.depth-1.no-pad>.dItem{padding:0}.dynamicCascadeInput .dyFormList .depth-1 .depth-2{border:1px solid var(--c2);border-style:dashed;padding:8px;border-radius:5px;margin-top:10px;row-gap:-3px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .dItem .btn .n-button{transform:scale(.84)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3{border:1px solid var(--c3);border-style:dashed;padding:7px;border-radius:5px;margin-top:9px;row-gap:-5px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .dItem .btn .n-button{transform:scale(.76)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4{border:1px solid var(--c4);border-style:dashed;padding:6px;border-radius:5px;margin-top:8px;row-gap:-7px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .dItem .btn .n-button{transform:scale(.68)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .depth-5{border:1px solid var(--c5);border-style:dashed;padding:5px;border-radius:5px;margin-top:7px;row-gap:-9px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .depth-5 .dItem .btn .n-button{transform:scale(.6)}.dynamicCascadeInput .dyFormList .no-border{border:none!important}.dynamicCascadeInput .dyFormList .no-pad{padding:0!important}@media(max-width:756px){.dynamicInput .dyFormList .dItem .input .key{width:50px}.dynamicInput .dyFormList .dItem .input .value{width:calc(100% - 60px)}}
1
+ .dynamicInput{overflow:hidden}.dynamicInput.small .dyFormList{gap:6px}.dynamicInput.small .dyFormList .typeBtn{padding:.2em .6em;height:18px}.dynamicInput.small .dyFormList>.dItem .input .key{font-size:.7em}.dynamicInput.small .dyFormList>.dItem .input .vInput{padding:.15em .4em}.dynamicInput.small .dyFormList>.dItem .input .vInput .slot{white-space:nowrap}.dynamicInput.small .dyFormList>.dItem .input .vInput .slot>button{padding:.1em .4em;font-size:.8em}.dynamicInput.small .dyFormList>.dItem .btn .bt{padding:.3em .8em}.dynamicInput.large .dyFormList{gap:15px}.dynamicInput.large .dyFormList .dItem{column-gap:20px}.dynamicInput.large .dyFormList .dItem .input .key{font-size:1.2em}.dynamicInput.large .dyFormList .dItem .input .vInput{padding:.5em .4em}.dynamicInput.large .dyFormList .dItem .input .vInput input{font-size:1.2em}.dynamicInput.large .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicInput.large .dyFormList .dItem .input .vInput .slot>button{padding:.15em .4em;font-size:1em}.dynamicInput.large .dyFormList .dItem .btn .bt{padding:.8em 1.2em}.dynamicInput .dyFormList{overflow:auto;display:grid;gap:10px;padding:10px 5px}.dynamicInput .dyFormList .dItem{width:100%;display:grid;grid-template-columns:1fr 100px;column-gap:0}.dynamicInput .dyFormList .dItem .input{display:flex;justify-content:flex-start;align-items:center;column-gap:15px}.dynamicInput .dyFormList .dItem .input .key{text-align:center;width:150px}.dynamicInput .dyFormList .dItem .input .key.nativeInput{border:1px solid #d2d6dd;padding:.5em .4em;border-radius:3px}.dynamicInput .dyFormList .dItem .input .key.nativeInput:focus{outline:none;box-shadow:0 0 5px #007bff4d}.dynamicInput .dyFormList .dItem .input .vInput{width:100%;border:1px solid #d2d6dd;padding:.2em .4em;border-radius:3px;display:flex;column-gap:5px}.dynamicInput .dyFormList .dItem .input .vInput>.value{border:none;width:100%}.dynamicInput .dyFormList .dItem .input .vInput>.value.nativeV{letter-spacing:3px}.dynamicInput .dyFormList .dItem .input .vInput>.value.nativeV:focus{outline:none}.dynamicInput .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicInput .dyFormList .dItem .input .vInput .slot>button{font-weight:400;border-radius:3px;font-size:.8em}.dynamicInput .dyFormList .dItem .btn{display:flex;justify-content:flex-end;align-items:center;column-gap:8px}.dynamicInput .dyFormList .dItem .btn .n-button{font-size:25px;padding:10px 12px}.dynamicInput .dyFormList .dItem .btn .el-button+.el-button{margin-left:0}.dynamicInput .dyFormList .dItem .btn .bt{padding:.5em 1em}.dynamicInput .key .el-input__inner,.dynamicInput .isKey .el-input__inner{text-align:center}.dynamicInput .control{display:flex;justify-content:center;align-items:center;margin-top:5px;column-gap:10px}.dynamicInput .bt{color:#fff;border-radius:5px;border:1px solid transparent;padding:.3em .8em;font-size:.9em;font-weight:600;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:.25s;opacity:.9}.dynamicInput .bt:hover{opacity:1}.dynamicInput .bt:disabled{opacity:.35;cursor:not-allowed}.dynamicInput .default{background:#fff;color:#000;border:1px solid #d2d6dd}.dynamicInput .info{background:#8a8e94}.dynamicInput .success{background:#63ba39}.dynamicInput .danger{background:#ea696a}.dynamicInput .aaa{color:red}.dynamicCascadeInput{overflow:hidden}.dynamicCascadeInput.small .dyFormList{gap:6px}.dynamicCascadeInput.small .dyFormList .typeBtn{padding:.2em .6em;height:18px}.dynamicCascadeInput.small .dyFormList>.dItem .input .key{font-size:.7em}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput{padding:.15em .4em}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput.small .dyFormList>.dItem .input .vInput .slot>button{padding:.1em .4em;font-size:.8em}.dynamicCascadeInput.small .dyFormList>.dItem .btn .bt{padding:.3em .8em}.dynamicCascadeInput.large .dyFormList{gap:15px}.dynamicCascadeInput.large .dyFormList .dItem{column-gap:20px}.dynamicCascadeInput.large .dyFormList .dItem .input .key{font-size:1.2em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput{padding:.5em .4em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput input{font-size:1.2em}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput.large .dyFormList .dItem .input .vInput .slot>button{padding:.15em .4em;font-size:1em}.dynamicCascadeInput.large .dyFormList .dItem .btn .bt{padding:.8em 1.2em}.dynamicCascadeInput .dyFormList{overflow:auto;display:grid;gap:10px;padding:10px 5px}.dynamicCascadeInput .dyFormList .dItem{width:100%;display:grid;grid-template-columns:1fr 100px;column-gap:0}.dynamicCascadeInput .dyFormList .dItem .input{display:flex;justify-content:flex-start;align-items:center;column-gap:15px}.dynamicCascadeInput .dyFormList .dItem .input .key{text-align:center;width:150px}.dynamicCascadeInput .dyFormList .dItem .input .key.nativeInput{border:1px solid #d2d6dd;padding:.5em .4em;border-radius:3px}.dynamicCascadeInput .dyFormList .dItem .input .key.nativeInput:focus{outline:none;box-shadow:0 0 5px #007bff4d}.dynamicCascadeInput .dyFormList .dItem .input .vInput{width:100%;border:1px solid #d2d6dd;padding:.2em .4em;border-radius:3px;display:flex;column-gap:5px}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value{border:none;width:100%}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value.nativeV{letter-spacing:3px}.dynamicCascadeInput .dyFormList .dItem .input .vInput>.value.nativeV:focus{outline:none}.dynamicCascadeInput .dyFormList .dItem .input .vInput .slot{white-space:nowrap}.dynamicCascadeInput .dyFormList .dItem .input .vInput .slot>button{font-weight:400;border-radius:3px;font-size:.8em}.dynamicCascadeInput .dyFormList .dItem .btn{display:flex;justify-content:flex-end;align-items:center;column-gap:8px}.dynamicCascadeInput .dyFormList .dItem .btn .n-button{font-size:25px;padding:10px 12px}.dynamicCascadeInput .dyFormList .dItem .btn .el-button+.el-button{margin-left:0}.dynamicCascadeInput .dyFormList .dItem .btn .bt{padding:.5em 1em}.dynamicCascadeInput .key .el-input__inner,.dynamicCascadeInput .isKey .el-input__inner{text-align:center}.dynamicCascadeInput .control{display:flex;justify-content:center;align-items:center;margin-top:5px;column-gap:10px}.dynamicCascadeInput .bt{color:#fff;border-radius:5px;border:1px solid transparent;padding:.3em .8em;font-size:.9em;font-weight:600;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:.25s;opacity:.9}.dynamicCascadeInput .bt:hover{opacity:1}.dynamicCascadeInput .bt:disabled{opacity:.35;cursor:not-allowed}.dynamicCascadeInput .default{background:#fff;color:#000;border:1px solid #d2d6dd}.dynamicCascadeInput .info{background:#8a8e94}.dynamicCascadeInput .success{background:#63ba39}.dynamicCascadeInput .danger{background:#ea696a}.dynamicCascadeInput .aaa{color:red}.dynamicCascadeInput .dyFormList .dItem{width:inherit}.dynamicCascadeInput .dyFormList .dItem .vInput .surSlot{white-space:nowrap}.dynamicCascadeInput .dyFormList .dItem .vInput .surSlot>button{padding:.1em .4em;font-size:.8em}.dynamicCascadeInput .dyFormList .dItem .input .value.isKey{text-align:center}.dynamicCascadeInput .dyFormList .dItem .input .value.isKey input{font-weight:700}.dynamicCascadeInput .dyFormList>.depth-1{display:grid;border:1px solid var(--c1);border-style:dashed;border-radius:5px}.dynamicCascadeInput .dyFormList>.depth-1>.dItem{padding:5px}.dynamicCascadeInput .dyFormList>.depth-1 .dItem+.dItem{margin-top:5px}.dynamicCascadeInput .dyFormList>.depth-1.no-pad>.dItem{padding:0}.dynamicCascadeInput .dyFormList .depth-1 .depth-2{border:1px solid var(--c2);border-style:dashed;padding:8px;border-radius:5px;margin-top:10px;row-gap:-3px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .dItem .btn .n-button{transform:scale(.84)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3{border:1px solid var(--c3);border-style:dashed;padding:7px;border-radius:5px;margin-top:9px;row-gap:-5px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .dItem .btn .n-button{transform:scale(.76)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4{border:1px solid var(--c4);border-style:dashed;padding:6px;border-radius:5px;margin-top:8px;row-gap:-7px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .dItem .btn .n-button{transform:scale(.68)}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .depth-5{border:1px solid var(--c5);border-style:dashed;padding:5px;border-radius:5px;margin-top:7px;row-gap:-9px}.dynamicCascadeInput .dyFormList .depth-1 .depth-2 .depth-3 .depth-4 .depth-5 .dItem .btn .n-button{transform:scale(.6)}.dynamicCascadeInput .dyFormList .no-border{border:none!important}.dynamicCascadeInput .dyFormList .no-pad{padding:0!important}@media(max-width:756px){.dynamicInput .dyFormList .dItem .input .key{width:50px}.dynamicInput .dyFormList .dItem .input .value{width:calc(100% - 60px)}}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { default as DynamicInput } from './origin/DynamicInput.tsx';
2
+ import { default as DynamicCascadeInput } from './origin/DynamicCascadeInput.tsx';
2
3
  import { ExposeType } from './types';
3
- export type dynamicFormRef = ExposeType;
4
- export { DynamicInput };
4
+ export type dynamicInputRef = ExposeType;
5
+ export type dynamicCascadeInputRef = ExposeType;
6
+ export { DynamicInput, DynamicCascadeInput };