UNPKG

@react-querybuilder/chakra

Version:

Custom Chakra UI components for react-querybuilder

2 lines 5.34 kB
import*as e from"react";import{FaChevronDown as t,FaChevronUp as n,FaCopy as r,FaGripVertical as i,FaLock as a,FaLockOpen as o,FaTimes as s}from"react-icons/fa";import{ValueEditor as c,getCompatContextProvider as l,toOptions as u,useValueEditor as d}from"react-querybuilder";import{Button as f,Checkbox as p,Input as m,NativeSelect as h,RadioGroup as g,Stack as _,Switch as v,Textarea as y}from"@chakra-ui/react";const b=({className:t,handleOnClick:n,label:r,title:i,disabled:a,disabledTranslation:o,testID:s,rules:c,level:l,path:u,context:d,validation:p,ruleOrGroup:m,schema:h,...g})=>e.createElement(f,{className:t,title:o&&a?o.title:i,onClick:e=>n(e),disabled:a&&!o,...g},o&&a?o.label:r),x=v.Control,S=v.Thumb,C=v.Label,w=e.forwardRef(function(t,n){let{inputProps:r,children:i,rootRef:a,trackLabel:o,thumbLabel:s,...c}=t;return e.createElement(v.Root,{ref:a,...c},e.createElement(v.HiddenInput,{ref:n,...r}),e.createElement(x,null,e.createElement(S,null,s&&e.createElement(v.ThumbIndicator,{fallback:s?.off},s?.on)),o&&e.createElement(v.Indicator,{fallback:o.off},o.on)),i!=null&&e.createElement(C,null,i))}),T=({className:t,handleOnChange:n,label:r,checked:i,title:a,disabled:o,path:s,context:c,validation:l,testID:u,schema:d,ruleGroup:f,...p})=>e.createElement(w,{title:a,className:t,disabled:o,checked:i,onCheckedChange:e=>n(e.checked),...p},r),E=p.Control,D=p.Label,O=e.forwardRef(function(t,n){let{icon:r,children:i,inputProps:a,rootRef:o,...s}=t;return e.createElement(p.Root,{ref:o,...s},e.createElement(p.HiddenInput,{ref:n,...a}),e.createElement(E,null,r||e.createElement(p.Indicator,null)),i!=null&&e.createElement(D,null,i))}),k=g.Item,A=g.ItemText,j=e.forwardRef(function(t,n){let{children:r,inputProps:i,rootRef:a,...o}=t;return e.createElement(k,{ref:a,...o},e.createElement(g.ItemHiddenInput,{ref:n,...i}),e.createElement(g.ItemIndicator,null),r&&e.createElement(A,null,r))}),M=g.Root,N=t=>{let{fieldData:n,operator:r,value:i,handleOnChange:a,title:o,className:s,type:l,inputType:u,values:f=[],listsAsArrays:p,separator:h,valueSource:g,testID:v,disabled:b,selectorComponent:x=t.schema.controls.valueSelector,extraProps:S,parseNumbers:C,...T}=t,{valueAsArray:E,multiValueHandler:D,bigIntValueHandler:k,valueListItemClassName:A,inputTypeCoerced:N}=d(t);if(r===`null`||r===`notNull`)return null;let P=n?.placeholder??``;if((r===`between`||r===`notBetween`)&&(l===`select`||l===`text`)){if(l===`text`){let t=[`from`,`to`].map((t,n)=>e.createElement(m,{key:t,type:N,value:E[n]??``,disabled:b,className:A,placeholder:P,onChange:e=>D(e.target.value,n),...S}));return e.createElement(`span`,{"data-testid":v,className:s,title:o},t[0],h,t[1])}return e.createElement(c,{...t,skipHook:!0})}switch(l){case`select`:return e.createElement(x,{...T,className:s,title:o,value:i,disabled:b,handleOnChange:a,options:f});case`multiselect`:return e.createElement(c,{...t,skipHook:!0});case`textarea`:return e.createElement(y,{value:i,title:o,disabled:b,className:s,placeholder:P,onChange:e=>a(e.target.value),...S});case`switch`:return e.createElement(w,{className:s,checked:!!i,title:o,disabled:b,onChange:e=>a(e.target.checked),...S});case`checkbox`:return e.createElement(O,{className:s,title:o,disabled:b,onChange:e=>a(e.target.checked),checked:!!i,...S});case`radio`:return e.createElement(M,{className:s,title:o,value:i,onChange:e=>a(e.target.value),disabled:b,...S},e.createElement(_,{direction:`row`},f.map(t=>e.createElement(j,{key:t.name,value:t.name},t.label))))}return u===`bigint`?e.createElement(m,{"data-testid":v,type:N,placeholder:P,value:`${i}`,title:o,className:s,disabled:b,onChange:e=>k(e.target.value),...S}):e.createElement(m,{type:N,value:i,title:o,disabled:b,className:s,placeholder:P,onChange:e=>a(e.target.value),...S})},P=e.forwardRef(function(t,n){let{icon:r,children:i,...a}=t;return e.createElement(h.Root,{ref:n,...a},i,e.createElement(h.Indicator,null,r))}),F=e.forwardRef(function(t,n){let{items:r,children:i,...a}=t,o=e.useMemo(()=>r?.map(e=>typeof e==`string`?{label:e,value:e}:e),[r]);return e.createElement(h.Field,{ref:n,...a},i,o?.map(t=>e.createElement(`option`,{key:t.value,value:t.value,disabled:t.disabled},t.label)))}),I=({className:t,handleOnChange:n,options:r,value:i,title:a,disabled:o,testID:s,rule:c,ruleGroup:l,rules:d,level:f,path:p,context:m,validation:h,operator:g,field:_,fieldData:v,multiple:y,listsAsArrays:b,schema:x,...S})=>e.createElement(P,{className:t,title:a,...S},e.createElement(F,{value:i,onChange:e=>n(e.target.value),disabled:o},u(r))),L={actionElement:b,valueSelector:I,notToggle:T,valueEditor:N},R={dragHandle:{label:e.createElement(i,null)},removeGroup:{label:e.createElement(s,null)},removeRule:{label:e.createElement(s,null)},cloneRuleGroup:{label:e.createElement(r,null)},cloneRule:{label:e.createElement(r,null)},lockGroup:{label:e.createElement(o,null)},lockRule:{label:e.createElement(o,null)},lockGroupDisabled:{label:e.createElement(a,null)},lockRuleDisabled:{label:e.createElement(a,null)},shiftActionDown:{label:e.createElement(t,null)},shiftActionUp:{label:e.createElement(n,null)}},z=l({controlElements:L,translations:R});export{b as ChakraActionElement,T as ChakraNotToggle,N as ChakraValueEditor,I as ChakraValueSelector,z as QueryBuilderChakra,L as chakraControlElements,R as chakraTranslations}; //# sourceMappingURL=react-querybuilder_chakra.production.mjs.map