react-querybuilder
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
1 lines • 65.4 kB
JavaScript
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@react-querybuilder/core`);c=s(c);let l=require(`react`);l=s(l);let u=require(`react-redux`);u=s(u);let d=require(`@reduxjs/toolkit`);d=s(d);let f=require(`immer`);f=s(f);const p=(0,l.createContext)({}),m=e=>l.createElement(`button`,{type:`button`,"data-testid":e.testID,disabled:e.disabled&&!e.disabledTranslation,className:e.className,title:e.disabledTranslation&&e.disabled?e.disabledTranslation.title:e.title,onClick:t=>e.handleOnClick(t)},e.disabledTranslation&&e.disabled?e.disabledTranslation.label:e.label),h=(0,l.forwardRef)((e,t)=>l.createElement(`span`,{"data-testid":e.testID,ref:t,className:e.className,title:e.title},e.label)),g=e=>{let{component:t,...n}=e,r=(0,c.clsx)(n.schema.suppressStandardClassnames||c.standardClassnames.betweenRules,n.schema.classNames.betweenRules);return l.createElement(`div`,{className:r,"data-testid":c.TestID.inlineCombinator},l.createElement(t,{...n,testID:c.TestID.combinators}))},_={name:``,value:``,label:``},v=e=>[`atleast`,`atmost`,`exactly`].includes((0,c.lc)(e)??``),y=[],b=e=>{let{match:t,options:n,title:r,className:i,disabled:a,testID:o,schema:s,selectorComponent:c=e.schema.controls.valueSelector,numericEditorComponent:u=e.schema.controls.valueEditor}=e,{thresholdNum:d,thresholdRule:f,thresholdSchema:p,handleChangeMode:m,handleChangeThreshold:h}=x(e);return l.createElement(l.Fragment,null,l.createElement(c,{schema:s,testID:o,className:i,title:r,handleOnChange:m,disabled:a,value:t.mode,options:n,multiple:!1,listsAsArrays:!1,path:y,level:0}),v(t.mode)&&l.createElement(u,{skipHook:!0,testID:o,inputType:`number`,title:r,className:i,disabled:a,handleOnChange:h,field:``,operator:``,value:d,valueSource:`value`,fieldData:_,schema:p,path:y,level:0,rule:f}))},x=e=>{let{match:t,handleOnChange:n}=e,r=l.useMemo(()=>typeof t.threshold==`number`?Math.max(0,t.threshold):1,[t.threshold]),i=l.useMemo(()=>({field:``,operator:`=`,value:r}),[r]),a=l.useMemo(()=>({...e.schema,parseNumbers:!0}),[e.schema]),o=(0,l.useCallback)(e=>{v(e)&&typeof t.threshold!=`number`?n({...t,mode:e,threshold:1}):n({...t,mode:e})},[n,t]),s=(0,l.useCallback)(e=>{n({...t,threshold:(0,c.parseNumber)(e,{parseNumbers:!0})})},[n,t]);return{thresholdNum:r,thresholdRule:i,thresholdSchema:a,handleChangeMode:o,handleChangeThreshold:s}},S=e=>{let t=l.useId();return l.createElement(`label`,{"data-testid":e.testID,className:e.className,title:e.title,htmlFor:t},l.createElement(`input`,{id:t,type:`checkbox`,onChange:t=>e.handleOnChange(t.target.checked),checked:!!e.checked,disabled:e.disabled}),e.label)},C={errorInvalidIndependentCombinatorsProp:`QueryBuilder was rendered with a truthy independentCombinators prop. This prop is deprecated and unnecessary. Furthermore, the initial query/defaultQuery prop was of type RuleGroupType instead of type RuleGroupIC. More info: https://react-querybuilder.js.org/docs/components/querybuilder#independent-combinators`,errorUnnecessaryIndependentCombinatorsProp:`QueryBuilder was rendered with the deprecated and unnecessary independentCombinators prop. To use independent combinators, make sure the query/defaultQuery prop is of type RuleGroupIC when the component mounts. More info: https://react-querybuilder.js.org/docs/components/querybuilder#independent-combinators`,errorDeprecatedRuleGroupProps:`A custom RuleGroup component has rendered a standard RuleGroup component with deprecated props. The combinator, not, and rules props should not be used. Instead, the full group object should be passed as the ruleGroup prop.`,errorDeprecatedRuleProps:`A custom RuleGroup component has rendered a standard Rule component with deprecated props. The field, operator, value, and valueSource props should not be used. Instead, the full rule object should be passed as the rule prop.`,errorBothQueryDefaultQuery:`QueryBuilder was rendered with both query and defaultQuery props. QueryBuilder must be either controlled or uncontrolled (specify either the query prop, or the defaultQuery prop, but not both). Decide between using a controlled or uncontrolled query builder and remove one of these props. More info: https://reactjs.org/link/controlled-components`,errorUncontrolledToControlled:`QueryBuilder is changing from an uncontrolled component to be controlled. This is likely caused by the query changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled query builder for the lifetime of the component. More info: https://reactjs.org/link/controlled-components`,errorControlledToUncontrolled:`QueryBuilder is changing from a controlled component to be uncontrolled. This is likely caused by the query changing from defined to undefined, which should not happen. Decide between using a controlled or uncontrolled query builder for the lifetime of the component. More info: https://reactjs.org/link/controlled-components`,errorEnabledDndWithoutReactDnD:`QueryBuilder was rendered with the enableDragAndDrop prop set to true, but either react-dnd was not detected or one of react-dnd-html5-backend or react-dnd-touch-backend was not detected. To enable drag-and-drop functionality, install react-dnd and one of the backend packages and wrap QueryBuilder in QueryBuilderDnD from @react-querybuilder/dnd.`},ee={},w=(0,d.createSlice)({name:`queries`,initialState:ee,reducers:{setQueryState:(e,{payload:{qbId:t,query:n}})=>{e[t]=n}},selectors:{getQuerySelectorById:(e,t)=>e[t]}}),T=l.createContext(null),E={[C.errorInvalidIndependentCombinatorsProp]:!1,[C.errorUnnecessaryIndependentCombinatorsProp]:!1,[C.errorDeprecatedRuleGroupProps]:!1,[C.errorDeprecatedRuleProps]:!1,[C.errorBothQueryDefaultQuery]:!1,[C.errorUncontrolledToControlled]:!1,[C.errorControlledToUncontrolled]:!1,[C.errorEnabledDndWithoutReactDnD]:!1},D=(0,d.createSlice)({name:`warnings`,initialState:E,reducers:{rqbWarn:(e,{payload:t})=>{e[t]||(console.error(t),e[t]=!0)}}}),O=({payload:e,onQueryChange:t})=>n=>{n(w.actions.setQueryState(e)),typeof t==`function`&&t(e.query)},te=(0,u.createDispatchHook)(T),k=(0,u.createStoreHook)(T),{rqbWarn:ne}=D.actions,A=e=>t=>{setTimeout(()=>t(ne(e)))},j={queries:w.getInitialState(),warnings:D.getInitialState()},M={reducer:{queries:w.reducer,warnings:D.reducer},preloadedState:j,middleware:e=>e({serializableCheck:{ignoredActions:[w.actions.setQueryState.type],ignoredPaths:[/^queries\b.*\.rules\.\d+\.value$/]}})},N=e=>{let t=(0,l.useRef)({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev},P=e=>{let t=te(),{defaultQuery:n,queryProp:r}=e,i=N(!!r);process.env.NODE_ENV!==`production`&&(r&&n?t(A(C.errorBothQueryDefaultQuery)):i===!0&&!r&&n?t(A(C.errorControlledToUncontrolled)):i===!1&&r&&!n&&t(A(C.errorUncontrolledToControlled)))};function re(e,t,n){let r=te();process.env.NODE_ENV!==`production`&&t&&(e===`independentCombinators`&&(n===`invalid`&&r(A(C.errorInvalidIndependentCombinatorsProp)),n===`unnecessary`&&r(A(C.errorUnnecessaryIndependentCombinatorsProp))),e===`rule`&&r(A(C.errorDeprecatedRuleProps)),e===`ruleGroup`&&r(A(C.errorDeprecatedRuleGroupProps)))}const F=e=>{let{optionList:t,baseOption:n={},labelMap:r={},placeholder:{placeholderName:i=c.defaultPlaceholderName,placeholderLabel:a=c.defaultPlaceholderLabel,placeholderGroupLabel:o=c.defaultPlaceholderLabel}={},autoSelectOption:s=!0}=e,u=(0,l.useMemo)(()=>({id:i,name:i,value:i,label:a}),[a,i]),d=(0,l.useMemo)(()=>t??[u],[u,t]),f=(0,l.useMemo)(()=>{let e=Array.isArray(d)?(0,c.toFullOptionList)(d,n,r):(0,c.objectKeys)((0,c.toFullOptionMap)(d,n)).map(e=>({...d[e],name:e,value:e})).sort((e,t)=>e.label.localeCompare(t.label));return(0,c.isFlexibleOptionGroupArray)(e)?s?(0,c.uniqOptGroups)(e):(0,c.uniqOptGroups)([{label:o,options:[u]},...e]):s?(0,c.uniqByIdentifier)(e):(0,c.uniqByIdentifier)([u,...e])},[s,n,u,r,d,o]),p=(0,l.useMemo)(()=>{if(!Array.isArray(d)){let e=(0,c.toFullOptionMap)(d,n);return s?e:{...e,[i]:u}}let e={};if((0,c.isFlexibleOptionGroupArray)(f))for(let t of f)for(let r of t.options)e[r.value??r.name]=(0,c.toFullOption)(r,n);else for(let t of f)e[t.value??t.name]=(0,c.toFullOption)(t,n);return e},[s,n,u,f,d,i]);return{defaultOption:u,optionList:f,optionsMap:p}},ie=e=>{let{optionList:t,optionsMap:n,defaultOption:r}=F({placeholder:e.translations.fields,optionList:e.fields,autoSelectOption:e.autoSelectField,baseOption:e.baseField});return{fields:t,fieldMap:n,defaultField:r}},I=e=>{let t=t=>{let n=ce(e);return l.createElement(p.Provider,{value:n},t.children)},n=e=>{let t=ce(e);return l.createElement(p.Provider,{value:t},e.children)};return e=>l.createElement(t,null,l.createElement(n,e,e.children))},L=(e,...t)=>(0,f.produce)(e,e=>{for(let n of t)if(n)for(let t of(0,c.objectKeys)(n))e[t]?Object.assign(e[t],n[t]):Object.assign(e,{[t]:n[t]})}),R=(e,t,n)=>{let r=(0,c.objectEntries)(t).map(([t,[r,i]])=>[t,r??i??(n?Be:{})[e]?.[t]]).filter(e=>!!e[1]);return r.length>0?{[e]:Object.fromEntries(r)}:void 0},z=e=>(0,c.isOptionGroupArray)(e)?e.map(e=>l.createElement(`optgroup`,{key:e.label,label:e.label},e.options.map(e=>l.createElement(`option`,{key:e.name,value:e.name,disabled:e.disabled},e.label)))):Array.isArray(e)?e.map(e=>l.createElement(`option`,{key:e.name,value:e.name,disabled:e.disabled},e.label)):null,B=(e,t)=>e===!1?!1:e?!0:t!==!1,V=(e,t)=>e?!0:e===!1?!1:!!t,ae=(e,t,n)=>e?B(t,n):V(t,n),H=(e,t,n)=>ae(e,t,n),oe=(e,t,n)=>t!==void 0&&t!=null?t:n!==void 0&&n!=null?n:e,U=()=>null,se=(0,l.forwardRef)(U),W={},ce=({finalize:e,...t})=>{let n=(0,l.useContext)(p),r=H(!1,t.debugMode,n.debugMode),i=e?r:t.debugMode??n.debugMode,a=H(!0,t.enableMountQueryChange,n.enableMountQueryChange),o=e?a:t.enableMountQueryChange??n.enableMountQueryChange,s=H(!1,t.enableDragAndDrop,n.enableDragAndDrop)&&n.enableDragAndDrop!==!1,u=e?s:t.enableDragAndDrop??n.enableDragAndDrop,d=(0,l.useMemo)(()=>(0,c.mergeClassnames)(e?Object.assign({},c.defaultControlClassnames):W,n.controlClassnames,t.controlClassnames),[n.controlClassnames,t.controlClassnames,e]),f=(0,l.useMemo)(()=>({actionElement:d.actionElement,addGroup:d.addGroup,addRule:d.addRule,body:d.body,cloneGroup:d.cloneGroup,cloneRule:d.cloneRule,combinators:d.combinators,dragHandle:d.dragHandle,fields:d.fields,header:d.header,lockGroup:d.lockGroup,lockRule:d.lockRule,notToggle:d.notToggle,operators:d.operators,queryBuilder:d.queryBuilder,removeGroup:d.removeGroup,removeRule:d.removeRule,rule:d.rule,ruleGroup:d.ruleGroup,shiftActions:d.shiftActions,value:d.value,valueSelector:d.valueSelector,valueSource:d.valueSource,betweenRules:d.betweenRules,valid:d.valid,invalid:d.invalid,dndDragging:d.dndDragging,dndOver:d.dndOver,dndCopy:d.dndCopy,dndGroup:d.dndGroup,dndDropNotAllowed:d.dndDropNotAllowed,disabled:d.disabled,valueListItem:d.valueListItem,matchMode:d.matchMode,matchThreshold:d.matchThreshold,branches:d.branches,hasSubQuery:d.hasSubQuery}),[d.actionElement,d.addGroup,d.addRule,d.betweenRules,d.body,d.branches,d.cloneGroup,d.cloneRule,d.combinators,d.disabled,d.dndCopy,d.dndDropNotAllowed,d.dndGroup,d.dndDragging,d.dndOver,d.dragHandle,d.fields,d.hasSubQuery,d.header,d.invalid,d.lockGroup,d.lockRule,d.matchMode,d.matchThreshold,d.notToggle,d.operators,d.queryBuilder,d.removeGroup,d.removeRule,d.rule,d.ruleGroup,d.shiftActions,d.valid,d.value,d.valueListItem,d.valueSelector,d.valueSource]),m=n.controlElements??W,h=t.controlElements??W,g=(0,l.useCallback)((t,n,r)=>{let i=t===`dragHandle`?se:U,a=(t.endsWith(`Action`)&&h.actionElement?h.actionElement:void 0)??(t.endsWith(`Selector`)&&h.valueSelector?h.valueSelector:void 0),o=(t.endsWith(`Action`)&&m.actionElement?m.actionElement:void 0)??(t.endsWith(`Selector`)&&m.valueSelector?m.valueSelector:void 0),s=n===null?i:n??(e?a:void 0)??(r===null?i:r??(e?o:void 0));return s?{[t]:s}:e?{[t]:Ve[t]}:W},[m.actionElement,m.valueSelector,e,h.actionElement,h.valueSelector]),_=(0,l.useMemo)(()=>Object.assign({},g(`addGroupAction`,h.addGroupAction,m.addGroupAction),g(`addRuleAction`,h.addRuleAction,m.addRuleAction),g(`cloneGroupAction`,h.cloneGroupAction,m.cloneGroupAction),g(`cloneRuleAction`,h.cloneRuleAction,m.cloneRuleAction),g(`combinatorSelector`,h.combinatorSelector,m.combinatorSelector),g(`dragHandle`,h.dragHandle,m.dragHandle),g(`fieldSelector`,h.fieldSelector,m.fieldSelector),g(`inlineCombinator`,h.inlineCombinator,m.inlineCombinator),g(`lockGroupAction`,h.lockGroupAction,m.lockGroupAction),g(`lockRuleAction`,h.lockRuleAction,m.lockRuleAction),g(`notToggle`,h.notToggle,m.notToggle),g(`operatorSelector`,h.operatorSelector,m.operatorSelector),g(`removeGroupAction`,h.removeGroupAction,m.removeGroupAction),g(`removeRuleAction`,h.removeRuleAction,m.removeRuleAction),g(`shiftActions`,h.shiftActions,m.shiftActions),{valueEditor:h.valueEditor===null?U:h.valueEditor??(m.valueEditor===null?U:m.valueEditor)??Ve.valueEditor},g(`valueSourceSelector`,h.valueSourceSelector,m.valueSourceSelector),g(`matchModeEditor`,h.matchModeEditor,m.matchModeEditor),g(`rule`,h.rule,m.rule),g(`ruleGroup`,h.ruleGroup,m.ruleGroup),g(`ruleGroupBodyElements`,h.ruleGroupBodyElements,m.ruleGroupBodyElements),g(`ruleGroupHeaderElements`,h.ruleGroupHeaderElements,m.ruleGroupHeaderElements),{actionElement:h.actionElement??m.actionElement??(e?Ve.actionElement:void 0)},{valueSelector:h.valueSelector??m.valueSelector??(e?Ve.valueSelector:void 0)}),[m.actionElement,m.addGroupAction,m.addRuleAction,m.cloneGroupAction,m.cloneRuleAction,m.combinatorSelector,m.dragHandle,m.fieldSelector,m.inlineCombinator,m.lockGroupAction,m.lockRuleAction,m.matchModeEditor,m.notToggle,m.operatorSelector,m.removeGroupAction,m.removeRuleAction,m.rule,m.ruleGroup,m.ruleGroupBodyElements,m.ruleGroupHeaderElements,m.shiftActions,m.valueEditor,m.valueSelector,m.valueSourceSelector,g,e,h.actionElement,h.addGroupAction,h.addRuleAction,h.cloneGroupAction,h.cloneRuleAction,h.combinatorSelector,h.dragHandle,h.fieldSelector,h.inlineCombinator,h.lockGroupAction,h.lockRuleAction,h.matchModeEditor,h.notToggle,h.operatorSelector,h.removeGroupAction,h.removeRuleAction,h.rule,h.ruleGroup,h.ruleGroupBodyElements,h.ruleGroupHeaderElements,h.shiftActions,h.valueEditor,h.valueSelector,h.valueSourceSelector]),v=t.translations??W,y=n.translations??W,b=(0,l.useMemo)(()=>Object.assign(e?Object.assign({},Be):{},R(`addGroup`,{label:[v.addGroup?.label,y.addGroup?.label],title:[v.addGroup?.title,y.addGroup?.title]},e),R(`addRule`,{label:[v.addRule?.label,y.addRule?.label],title:[v.addRule?.title,y.addRule?.title]},e),R(`cloneRule`,{label:[v.cloneRule?.label,y.cloneRule?.label],title:[v.cloneRule?.title,y.cloneRule?.title]},e),R(`cloneRuleGroup`,{label:[v.cloneRuleGroup?.label,y.cloneRuleGroup?.label],title:[v.cloneRuleGroup?.title,y.cloneRuleGroup?.title]},e),R(`combinators`,{title:[v.combinators?.title,y.combinators?.title]},e),R(`dragHandle`,{label:[v.dragHandle?.label,y.dragHandle?.label],title:[v.dragHandle?.title,y.dragHandle?.title]},e),R(`fields`,{placeholderGroupLabel:[v.fields?.placeholderGroupLabel,y.fields?.placeholderGroupLabel],placeholderLabel:[v.fields?.placeholderLabel,y.fields?.placeholderLabel],placeholderName:[v.fields?.placeholderName,y.fields?.placeholderName],title:[v.fields?.title,y.fields?.title]},e),R(`lockGroup`,{label:[v.lockGroup?.label,y.lockGroup?.label],title:[v.lockGroup?.title,y.lockGroup?.title]},e),R(`lockGroupDisabled`,{label:[v.lockGroupDisabled?.label,y.lockGroupDisabled?.label],title:[v.lockGroupDisabled?.title,y.lockGroupDisabled?.title]},e),R(`lockRule`,{label:[v.lockRule?.label,y.lockRule?.label],title:[v.lockRule?.title,y.lockRule?.title]},e),R(`lockRuleDisabled`,{label:[v.lockRuleDisabled?.label,y.lockRuleDisabled?.label],title:[v.lockRuleDisabled?.title,y.lockRuleDisabled?.title]},e),R(`notToggle`,{label:[v.notToggle?.label,y.notToggle?.label],title:[v.notToggle?.title,y.notToggle?.title]},e),R(`operators`,{placeholderGroupLabel:[v.operators?.placeholderGroupLabel,y.operators?.placeholderGroupLabel],placeholderLabel:[v.operators?.placeholderLabel,y.operators?.placeholderLabel],placeholderName:[v.operators?.placeholderName,y.operators?.placeholderName],title:[v.operators?.title,y.operators?.title]},e),R(`values`,{placeholderGroupLabel:[v.values?.placeholderGroupLabel,y.values?.placeholderGroupLabel],placeholderLabel:[v.values?.placeholderLabel,y.values?.placeholderLabel],placeholderName:[v.values?.placeholderName,y.values?.placeholderName],title:[v.values?.title,y.values?.title]},e),R(`removeGroup`,{label:[v.removeGroup?.label,y.removeGroup?.label],title:[v.removeGroup?.title,y.removeGroup?.title]},e),R(`removeRule`,{label:[v.removeRule?.label,y.removeRule?.label],title:[v.removeRule?.title,y.removeRule?.title]},e),R(`shiftActionDown`,{label:[v.shiftActionDown?.label,y.shiftActionDown?.label],title:[v.shiftActionDown?.title,y.shiftActionDown?.title]},e),R(`shiftActionUp`,{label:[v.shiftActionUp?.label,y.shiftActionUp?.label],title:[v.shiftActionUp?.title,y.shiftActionUp?.title]},e),R(`value`,{title:[v.value?.title,y.value?.title]},e),R(`valueSourceSelector`,{title:[v.valueSourceSelector?.title,y.valueSourceSelector?.title]},e)),[y.addGroup?.label,y.addGroup?.title,y.addRule?.label,y.addRule?.title,y.cloneRule?.label,y.cloneRule?.title,y.cloneRuleGroup?.label,y.cloneRuleGroup?.title,y.combinators?.title,y.dragHandle?.label,y.dragHandle?.title,y.fields?.placeholderGroupLabel,y.fields?.placeholderLabel,y.fields?.placeholderName,y.fields?.title,y.lockGroup?.label,y.lockGroup?.title,y.lockGroupDisabled?.label,y.lockGroupDisabled?.title,y.lockRule?.label,y.lockRule?.title,y.lockRuleDisabled?.label,y.lockRuleDisabled?.title,y.notToggle?.label,y.notToggle?.title,y.operators?.placeholderGroupLabel,y.operators?.placeholderLabel,y.operators?.placeholderName,y.operators?.title,y.removeGroup?.label,y.removeGroup?.title,y.removeRule?.label,y.removeRule?.title,y.shiftActionDown?.label,y.shiftActionDown?.title,y.shiftActionUp?.label,y.shiftActionUp?.title,y.value?.title,y.values?.placeholderGroupLabel,y.values?.placeholderLabel,y.values?.placeholderName,y.values?.title,y.valueSourceSelector?.title,e,v.addGroup?.label,v.addGroup?.title,v.addRule?.label,v.addRule?.title,v.cloneRule?.label,v.cloneRule?.title,v.cloneRuleGroup?.label,v.cloneRuleGroup?.title,v.combinators?.title,v.dragHandle?.label,v.dragHandle?.title,v.fields?.placeholderGroupLabel,v.fields?.placeholderLabel,v.fields?.placeholderName,v.fields?.title,v.lockGroup?.label,v.lockGroup?.title,v.lockGroupDisabled?.label,v.lockGroupDisabled?.title,v.lockRule?.label,v.lockRule?.title,v.lockRuleDisabled?.label,v.lockRuleDisabled?.title,v.notToggle?.label,v.notToggle?.title,v.operators?.placeholderGroupLabel,v.operators?.placeholderLabel,v.operators?.placeholderName,v.operators?.title,v.removeGroup?.label,v.removeGroup?.title,v.removeRule?.label,v.removeRule?.title,v.shiftActionDown?.label,v.shiftActionDown?.title,v.shiftActionUp?.label,v.shiftActionUp?.title,v.value?.title,v.values?.placeholderGroupLabel,v.values?.placeholderLabel,v.values?.placeholderName,v.values?.title,v.valueSourceSelector?.title]);return{controlClassnames:f,controlElements:_,debugMode:i,enableDragAndDrop:u,enableMountQueryChange:o,translations:b,initialQuery:t.initialQuery,qbId:t.qbId}};let le=!1;const ue=(e,t)=>{process.env.NODE_ENV!==`production`&&!le&&e&&!t&&(console.error(C.errorEnabledDndWithoutReactDnD),le=!0)},G=e=>{let{multiple:t,onChange:n}=e;return(0,l.useMemo)(()=>t?e=>n(Array.from(e.target.selectedOptions).map(e=>e.value)):e=>n(e.target.value),[t,n])},K=e=>(0,l.useCallback)((t,n)=>{t?.preventDefault(),t?.stopPropagation(),e(t,n)},[e]),q=e=>t=>w.selectors.getQuerySelectorById({queries:t.queries},e),de=(0,u.createSelectorHook)(T),fe=(e,t)=>{let n=l.useContext(p);return de(e,t)??n?.initialQuery},pe=e=>{let t=l.useContext(p);return de(q(e?.schema.qbId??t.qbId??``))??t?.initialQuery},me={},he={},ge=[],_e={},ve=()=>null,ye=()=>``,be=()=>!0,xe=(...e)=>{console.log(...e)};function Se(e,t){let{query:n,defaultQuery:r,getValueEditorSeparator:i=ve,getRuleClassname:a=ye,getRuleGroupClassname:o=ye,onAddRule:s=be,onAddGroup:u=be,onMoveRule:d=be,onMoveGroup:f=be,onGroupRule:p=be,onGroupGroup:m=be,onRemove:h=be,onQueryChange:g,showCombinatorsBetweenRules:_=!1,showNotToggle:v=!1,showShiftActions:y=!1,showCloneButtons:b=!1,showLockButtons:x=!1,suppressStandardClassnames:S=!1,resetOnFieldChange:C=!0,resetOnOperatorChange:ee=!1,autoSelectField:w=!0,autoSelectOperator:T=!0,autoSelectValue:E=!0,addRuleToNewGroups:D=!1,listsAsArrays:ne=!1,parseNumbers:A=!1,disabled:j=!1,validator:M,onLog:N=xe,idGenerator:F,accessibleDescriptionGenerator:ie=c.generateAccessibleDescription}=e,{qbId:I,rqbContext:L,fields:R,fieldMap:z,combinators:B,getOperatorsMain:V,getMatchModesMain:ae,getRuleDefaultOperator:H,getSubQueryBuilderPropsMain:oe,getValueEditorTypeMain:U,getValueSourcesMain:se,getValuesMain:W,getRuleDefaultValue:ce,getInputTypeMain:le,createRule:ue,createRuleGroup:G}=t,{controlClassnames:K,controlElements:de,debugMode:pe,enableDragAndDrop:Se,enableMountQueryChange:Ce,translations:we}=L,Te=!!_,Ee=!!v,De=!!y,Oe=!!b,ke=!!x,Ae=!!C,je=!!ee,Me=!!w,Ne=!!T,Pe=!!E,Fe=!!D,Ie=!!ne,Le=!!S,Re=(e.maxLevels??0)>0?Number(e.maxLevels):1/0,J=(0,l.useCallback)((...e)=>{pe&&N(...e)},[pe,N]);P({defaultQuery:r,queryProp:n});let Y=k(),X=te(),ze=(0,l.useMemo)(()=>q(I),[I]),Be=fe(ze),Ve=(0,l.useCallback)(()=>ze(Y.getState()),[Y,ze]),He=(0,l.useMemo)(()=>G(),[G]),Ue=n??Be??r??He,Z=Ue.id?Ue:(0,c.prepareRuleGroup)(Ue,{idGenerator:F}),[We]=(0,l.useState)(Z),Ge=(0,l.useMemo)(()=>({...L,initialQuery:We}),[L,We]);(0,l.useEffect)(()=>{n&&!Object.is(n,Be)&&X(O({payload:{qbId:I,query:n},onQueryChange:void 0}))},[n,I,Be,X]);let Ke=(0,l.useMemo)(()=>(0,c.isRuleGroupTypeIC)(Z),[Z]),qe=!!e.independentCombinators&&!Ke;re(`independentCombinators`,qe||!qe&&(e.independentCombinators??`not present`)!==`not present`,qe?`invalid`:`unnecessary`);let Je=(0,l.useRef)(!1);(0,l.useEffect)(()=>{Je.current||(Je.current=!0,X(O({payload:{qbId:I,query:Z},onQueryChange:Ce&&typeof g==`function`?g:void 0})))},[Ce,g,I,X,Z]);let Q=(0,l.useCallback)(e=>{X(O({payload:{qbId:I,query:e},onQueryChange:g}))},[g,I,X]),Ye=(0,l.useMemo)(()=>Array.isArray(j)&&j||ge,[j]),$=j===!0,Xe=(0,l.useMemo)(()=>Z.disabled||Ye.some(e=>e.length===0),[Ye,Z.disabled]),Ze=(0,l.useCallback)((e,t,n)=>{let r=q(I)(Y.getState());if(!r)return;if((0,c.pathIsDisabled)(t,r)||$){J({qbId:I,type:c.LogType.parentPathDisabled,rule:e,parentPath:t,query:r});return}let i=s(e,t,r,n);if(!i){J({qbId:I,type:c.LogType.onAddRuleFalse,rule:e,parentPath:t,query:r});return}let a=i===!0?e:i,o=(0,c.add)(r,a,t,{combinators:B,combinatorPreceding:a.combinatorPreceding??void 0,idGenerator:F});J({qbId:I,type:c.LogType.add,query:r,newQuery:o,newRule:a,parentPath:t}),Q(o)},[B,Q,F,J,s,I,Y,$]),Qe=(0,l.useCallback)((e,t,n)=>{if(t.length>=Re)return;let r=q(I)(Y.getState());if(!r)return;if((0,c.pathIsDisabled)(t,r)||$){J({qbId:I,type:c.LogType.parentPathDisabled,ruleGroup:e,parentPath:t,query:r});return}let i=u(e,t,r,n);if(!i){J({qbId:I,type:c.LogType.onAddGroupFalse,ruleGroup:e,parentPath:t,query:r});return}let a=i===!0?e:i,o=(0,c.add)(r,a,t,{combinators:B,combinatorPreceding:a.combinatorPreceding??void 0,idGenerator:F});J({qbId:I,type:c.LogType.add,query:r,newQuery:o,newGroup:a,parentPath:t}),Q(o)},[B,Q,F,J,Re,u,I,Y,$]),$e=(0,l.useCallback)((e,t,n)=>{let r=q(I)(Y.getState());if(!r)return;if((0,c.pathIsDisabled)(n,r)&&e!==`disabled`||$){J({qbId:I,type:c.LogType.pathDisabled,path:n,prop:e,value:t,query:r});return}let i=(0,c.update)(r,e,t,n,{resetOnFieldChange:Ae,resetOnOperatorChange:je,getRuleDefaultOperator:H,getValueSources:se,getRuleDefaultValue:ce,getMatchModes:ae});J({qbId:I,type:c.LogType.update,query:r,newQuery:i,prop:e,value:t,path:n}),Q(i)},[Q,ae,H,ce,se,J,I,Y,$,Ae,je]),et=(0,l.useCallback)((e,t)=>{let n=q(I)(Y.getState());if(!n)return;if((0,c.pathIsDisabled)(e,n)||$){J({qbId:I,type:c.LogType.pathDisabled,path:e,query:n});return}let r=(0,c.findPath)(e,n);if(r)if(h(r,e,n,t)){let t=(0,c.remove)(n,e);J({qbId:I,type:c.LogType.remove,query:n,newQuery:t,path:e,ruleOrGroup:r}),Q(t)}else J({qbId:I,type:c.LogType.onRemoveFalse,ruleOrGroup:r,path:e,query:n})},[Q,J,h,I,Y,$]),tt=(0,l.useCallback)((e,t,n,r)=>{let i=q(I)(Y.getState());if(!i)return;if((0,c.pathIsDisabled)(e,i)||$){J({qbId:I,type:c.LogType.pathDisabled,oldPath:e,newPath:t,query:i});return}let a=(0,c.move)(i,e,t,{clone:n,combinators:B,idGenerator:F}),o=(0,c.findPath)(e,i),s=(0,c.isRuleGroup)(o),l=(s?f:d)(o,e,t,i,a,{clone:n,combinators:B},r);if(!l){J({qbId:I,type:s?c.LogType.onMoveGroupFalse:c.LogType.onMoveRuleFalse,ruleOrGroup:o,oldPath:e,newPath:t,clone:n,query:i,nextQuery:a});return}let u=(0,c.isRuleGroup)(l)?l:a;J({qbId:I,type:c.LogType.move,query:i,newQuery:u,oldPath:e,newPath:t,clone:n}),Q(u)},[B,Q,F,J,f,d,I,Y,$]),nt=(0,l.useCallback)((e,t,n,r)=>{let i=q(I)(Y.getState());if(!i)return;if((0,c.pathIsDisabled)(e,i)||$){J({qbId:I,type:c.LogType.pathDisabled,sourcePath:e,targetPath:t,query:i});return}let a=(0,c.group)(i,e,t,{clone:n,combinators:B,idGenerator:F}),o=(0,c.findPath)(e,i),s=(0,c.isRuleGroup)(o),l=(s?m:p)(o,e,t,i,a,{clone:n,combinators:B},r);if(!l){J({qbId:I,type:s?c.LogType.onGroupGroupFalse:c.LogType.onGroupRuleFalse,ruleOrGroup:o,sourcePath:e,targetPath:t,clone:n,query:i,nextQuery:a});return}let u=(0,c.isRuleGroup)(l)?l:a;J({qbId:I,type:c.LogType.group,query:i,newQuery:u,sourcePath:e,targetPath:t,clone:n}),Q(u)},[B,Q,F,J,m,p,I,Y,$]),{validationResult:rt,validationMap:it}=(0,l.useMemo)(()=>{let e=typeof M==`function`&&Z?M(Z):me;return{validationResult:e,validationMap:typeof e==`boolean`?he:e}},[Z,M]),at=(0,l.useMemo)(()=>Se?`enabled`:`disabled`,[Se]),ot=(0,l.useMemo)(()=>Ke||Te?`enabled`:`disabled`,[Ke,Te]),st=(0,l.useMemo)(()=>typeof Z.combinator==`string`?{combinator:Z.combinator}:_e,[Z.combinator]),ct=(0,l.useMemo)(()=>(0,c.clsx)(Le||c.standardClassnames.queryBuilder,(0,c.clsx)(K.queryBuilder),$&&K.disabled,typeof rt==`boolean`&&rt&&K.valid,typeof rt==`boolean`&&!rt&&K.invalid,Le||{[c.standardClassnames.disabled]:$,[c.standardClassnames.valid]:typeof rt==`boolean`&&rt,[c.standardClassnames.invalid]:typeof rt==`boolean`&&!rt}),[K.disabled,K.invalid,K.queryBuilder,K.valid,$,Le,rt]),lt=(0,l.useCallback)(e=>G(e??Ke),[G,Ke]),ut=(0,l.useMemo)(()=>({addRuleToNewGroups:Fe,accessibleDescriptionGenerator:ie,autoSelectField:Me,autoSelectOperator:Ne,autoSelectValue:Pe,classNames:K,combinators:B,controls:de,createRule:ue,createRuleGroup:lt,disabledPaths:Ye,enableDragAndDrop:Se,fieldMap:z,fields:R,dispatchQuery:Q,getQuery:Ve,getInputType:le,getOperators:V,getMatchModes:ae,getRuleClassname:a,getRuleGroupClassname:o,getSubQueryBuilderProps:oe,getValueEditorSeparator:i,getValueEditorType:U,getValues:W,getValueSources:se,independentCombinators:Ke,listsAsArrays:Ie,maxLevels:Re,parseNumbers:A,qbId:I,showCloneButtons:Oe,showCombinatorsBetweenRules:Te,showLockButtons:ke,showNotToggle:Ee,showShiftActions:De,suppressStandardClassnames:Le,validationMap:it}),[ie,Fe,Me,Ne,Pe,B,K,de,ue,lt,Ye,Q,Se,z,R,le,V,ae,Ve,a,o,oe,i,U,W,se,Ke,Ie,Re,A,I,Oe,Te,ke,Ee,De,Le,it]);return{actions:(0,l.useMemo)(()=>({moveRule:tt,onGroupAdd:Qe,onGroupRemove:et,onPropChange:$e,onRuleAdd:Ze,onRuleRemove:et,groupRule:nt}),[nt,tt,Qe,$e,Ze,et]),rootGroup:Z,rootGroupDisabled:Xe,queryDisabled:$,rqbContext:Ge,schema:ut,translations:we,wrapperClassName:ct,dndEnabledAttr:at,inlineCombinatorsAttr:ot,combinatorPropObject:st}}const Ce=(e,t,n)=>{let r=(0,c.getFirstOption)(e);if(t.operator===`between`||t.operator===`notBetween`){let e=[r,r];return n?e:(0,c.joinWith)(e.map(e=>e??``),`,`)}return r},we=e=>{let[t]=(0,l.useState)(c.generateID),{fields:n,baseField:r,operators:i,baseOperator:a,combinators:o,baseCombinator:s,translations:u,enableMountQueryChange:d=!0,controlClassnames:f,controlElements:p,getDefaultField:m,getDefaultOperator:h,getDefaultValue:g,getMatchModes:_,getOperators:v,getSubQueryBuilderProps:y,getValueEditorType:b,getValueSources:x,getInputType:S,getValues:C,autoSelectField:ee=!0,autoSelectOperator:w=!0,autoSelectValue:T=!0,addRuleToNewGroups:E=!1,enableDragAndDrop:D,listsAsArrays:O=!1,debugMode:te=!1,idGenerator:k=c.generateID}=e,[ne]=(0,l.useState)(e.query??e.defaultQuery),A=ce({controlClassnames:f,controlElements:p,debugMode:te,enableDragAndDrop:D,enableMountQueryChange:d,translations:u,initialQuery:ne,qbId:t,finalize:!0}),{translations:j}=A,{fields:M,fieldMap:N}=ie({fields:n,baseField:r,autoSelectField:ee,translations:j}),{optionList:P}=F({optionList:o??c.defaultCombinators,labelMap:c.defaultCombinatorLabelMap,baseOption:s,autoSelectOption:!0}),{optionList:re,defaultOption:I}=F({optionList:i??c.defaultOperators,placeholder:j.operators,labelMap:c.defaultOperatorLabelMap,baseOption:a,autoSelectOption:w}),L=(0,l.useCallback)((e,{fieldData:t})=>{let n=re;if(t?.operators)n=(0,c.toFullOptionList)(t.operators,a,c.defaultOperatorLabelMap);else if(v){let r=v(e,{fieldData:t});r&&(n=(0,c.toFullOptionList)(r,a,c.defaultOperatorLabelMap))}return w||(n=(0,c.isFlexibleOptionGroupArray)(n)?[{label:j.operators.placeholderGroupLabel,options:[I]},...n]:[I,...n]),(0,c.uniqOptList)(n)},[w,a,I,v,re,j.operators.placeholderGroupLabel]),R=(0,l.useCallback)(e=>{let t=N[e];if(t?.defaultOperator)return t.defaultOperator;if(h)return typeof h==`function`?h(e,{fieldData:t}):h;let n=L(e,{fieldData:t})??[];return(0,c.getFirstOption)(n)??``},[N,h,L]),z=(0,l.useCallback)((e,t,{fieldData:n})=>n.valueEditorType?typeof n.valueEditorType==`function`?n.valueEditorType(t):n.valueEditorType:b?.(e,t,{fieldData:n})??`text`,[b]),B=(0,l.useCallback)((e,t,n)=>(0,c.getValueSourcesUtil)(N[e],t,x),[N,x]),V=(0,l.useCallback)((e,t)=>(0,c.getMatchModesUtil)(N[e],_),[N,_]),ae=(0,l.useCallback)((e,t)=>y?.(e,t)??{},[y]),H=(0,l.useMemo)(()=>({id:j.values.placeholderName,name:j.values.placeholderName,value:j.values.placeholderName,label:j.values.placeholderLabel}),[j.values.placeholderLabel,j.values.placeholderName]),oe=(0,l.useCallback)((e,t,{fieldData:n})=>{let r=[];return n?.values&&(r=(0,c.toFullOptionList)(n.values)),C&&(r=(0,c.toFullOptionList)(C(e,t,{fieldData:n}))),T||(r=(0,c.isFlexibleOptionGroupArray)(r)?[{label:j.values.placeholderGroupLabel,options:[H]},...r]:[H,...r]),r},[T,H,C,j.values.placeholderGroupLabel]),U=(0,l.useCallback)(e=>{let t=N[e.field]??{};if(t?.defaultValue!==void 0&&t.defaultValue!==null)return t.defaultValue;if(g)return g(e,{fieldData:t});let n=``,r=oe(e.field,e.operator,{fieldData:t});if(e.valueSource===`field`){let r=(0,c.filterFieldsByComparator)(t,M,e.operator);n=r.length>0?Ce(r,e,O):``}else if(r.length>0){let i=z(e.field,e.operator,{fieldData:t});i===`multiselect`?n=O?[]:``:(i===`select`||i===`radio`)&&(n=Ce(r,e,O))}else z(e.field,e.operator,{fieldData:t})===`checkbox`&&(n=!1);return n},[N,M,g,z,oe,O]),se=(0,l.useCallback)((e,t,{fieldData:n})=>{if(S){let r=S(e,t,{fieldData:n});if(r)return r}return`text`},[S]),W=(0,l.useCallback)(()=>{let e=``,t=M;if(t?.length>0&&t[0]){let n=(0,c.getFirstOption)(t);n&&(e=n)}if(m)if(typeof m==`function`){let n=m(t);n&&(e=n)}else e=m;let n=R(e),r=(0,c.getFirstOption)(B(e,n,{fieldData:(0,c.getOption)(t,e)}))??`value`,i=(0,c.getFirstOption)(V(e,{fieldData:(0,c.getOption)(t,e)})),a={id:k(),field:e,operator:n,valueSource:r,value:``,...i?{match:{mode:i,threshold:1}}:null},o=U(a);return{...a,value:o}},[M,m,V,R,U,B,k]),le=(0,l.useCallback)(e=>e?{id:k(),rules:E?[W()]:[],not:!1}:{id:k(),rules:E?[W()]:[],combinator:(0,c.getFirstOption)(P)??``,not:!1},[E,P,W,k]);return{qbId:t,rqbContext:A,fields:M,fieldMap:N,combinators:P,getMatchModesMain:V,getOperatorsMain:L,getRuleDefaultOperator:R,getSubQueryBuilderPropsMain:ae,getValueEditorTypeMain:z,getValueSourcesMain:B,getValuesMain:oe,getRuleDefaultValue:U,getInputTypeMain:se,createRule:W,createRuleGroup:le}},Te=e=>Se(e,we(e)),Ee=l.memo(function(e){let t=ke(e),{schema:{controls:{ruleGroupBodyElements:n,ruleGroupHeaderElements:r}}}=t,i=K(t.addRule),a=K(t.addGroup),o=K(t.cloneGroup),s=K(t.toggleLockGroup),u=K(t.removeGroup),d=K(t.shiftGroupUp),f=K(t.shiftGroupDown),p=(0,l.useMemo)(()=>({addRule:i,addGroup:a,cloneGroup:o,toggleLockGroup:s,removeGroup:u,shiftGroupUp:d,shiftGroupDown:f}),[i,a,o,s,u,d,f]);return l.createElement(`div`,{ref:t.previewRef,title:t.accessibleDescription,className:t.outerClassName,"data-testid":c.TestID.ruleGroup,"data-dragmonitorid":t.dragMonitorId,"data-dropmonitorid":t.dropMonitorId,"data-rule-group-id":t.id,"data-level":t.path.length,"data-path":JSON.stringify(t.path)},l.createElement(`div`,{ref:t.dropRef,className:t.classNames.header},l.createElement(r,{...t,...p})),l.createElement(`div`,{className:t.classNames.body},l.createElement(n,{...t,...p})))}),De=l.memo(function(e){let{schema:{controls:{shiftActions:t,dragHandle:n,combinatorSelector:r,notToggle:i,addRuleAction:a,addGroupAction:o,cloneGroupAction:s,lockGroupAction:u,removeGroupAction:d}}}=e,f=(0,l.useMemo)(()=>({level:e.path.length,path:e.path,disabled:e.disabled,context:e.context,validation:e.validationResult,schema:e.schema}),[e.path,e.disabled,e.context,e.validationResult,e.schema]),p=(0,l.useMemo)(()=>e.schema.showShiftActions?{shiftUp:e.translations.shiftActionUp.title,shiftDown:e.translations.shiftActionDown.title}:void 0,[e.schema.showShiftActions,e.translations]),m=(0,l.useMemo)(()=>e.schema.showShiftActions?{shiftUp:e.translations.shiftActionUp.label,shiftDown:e.translations.shiftActionDown.label}:void 0,[e.schema.showShiftActions,e.translations]);return l.createElement(l.Fragment,null,e.schema.showShiftActions&&e.path.length>0&&l.createElement(t,{key:c.TestID.shiftActions,...f,testID:c.TestID.shiftActions,titles:p,labels:m,className:e.classNames.shiftActions,shiftUp:e.shiftGroupUp,shiftDown:e.shiftGroupDown,shiftUpDisabled:e.shiftUpDisabled,shiftDownDisabled:e.shiftDownDisabled,ruleOrGroup:e.ruleGroup}),e.path.length>0&&e.schema.enableDragAndDrop&&l.createElement(n,{key:c.TestID.dragHandle,...f,testID:c.TestID.dragHandle,ref:e.dragRef,title:e.translations.dragHandle.title,label:e.translations.dragHandle.label,className:e.classNames.dragHandle,ruleOrGroup:e.ruleGroup}),!e.schema.showCombinatorsBetweenRules&&!e.schema.independentCombinators&&l.createElement(r,{key:c.TestID.combinators,...f,testID:c.TestID.combinators,options:e.schema.combinators,value:e.combinator,title:e.translations.combinators.title,className:e.classNames.combinators,handleOnChange:e.onCombinatorChange,rules:e.ruleGroup.rules,ruleGroup:e.ruleGroup}),e.schema.showNotToggle&&l.createElement(i,{key:c.TestID.notToggle,...f,testID:c.TestID.notToggle,className:e.classNames.notToggle,title:e.translations.notToggle.title,label:e.translations.notToggle.label,checked:e.ruleGroup.not,handleOnChange:e.onNotToggleChange,ruleGroup:e.ruleGroup}),l.createElement(a,{key:c.TestID.addRule,...f,testID:c.TestID.addRule,label:e.translations.addRule.label,title:e.translations.addRule.title,className:e.classNames.addRule,handleOnClick:e.addRule,rules:e.ruleGroup.rules,ruleOrGroup:e.ruleGroup}),e.schema.maxLevels>e.path.length&&l.createElement(o,{key:c.TestID.addGroup,...f,testID:c.TestID.addGroup,label:e.translations.addGroup.label,title:e.translations.addGroup.title,className:e.classNames.addGroup,handleOnClick:e.addGroup,rules:e.ruleGroup.rules,ruleOrGroup:e.ruleGroup}),e.schema.showCloneButtons&&e.path.length>0&&l.createElement(s,{key:c.TestID.cloneGroup,...f,testID:c.TestID.cloneGroup,label:e.translations.cloneRuleGroup.label,title:e.translations.cloneRuleGroup.title,className:e.classNames.cloneGroup,handleOnClick:e.cloneGroup,rules:e.ruleGroup.rules,ruleOrGroup:e.ruleGroup}),e.schema.showLockButtons&&l.createElement(u,{key:c.TestID.lockGroup,...f,testID:c.TestID.lockGroup,label:e.translations.lockGroup.label,title:e.translations.lockGroup.title,className:e.classNames.lockGroup,handleOnClick:e.toggleLockGroup,rules:e.ruleGroup.rules,disabledTranslation:e.parentDisabled?void 0:e.translations.lockGroupDisabled,ruleOrGroup:e.ruleGroup}),e.path.length>0&&l.createElement(d,{key:c.TestID.removeGroup,...f,testID:c.TestID.removeGroup,label:e.translations.removeGroup.label,title:e.translations.removeGroup.title,className:e.classNames.removeGroup,handleOnClick:e.removeGroup,rules:e.ruleGroup.rules,ruleOrGroup:e.ruleGroup}))}),Oe=l.memo(function(e){let{schema:{controls:{combinatorSelector:t,inlineCombinator:n,ruleGroup:r,rule:i}}}=e;return l.createElement(l.Fragment,null,e.ruleGroup.rules.map((a,o,{length:s})=>{let u=e.pathsMemo[o],d=u.path,f=u.disabled||typeof a!=`string`&&a.disabled,p=(0,c.pathsAreEqual)([0],d),m=e.path.length===0&&o===s-1,h=typeof a==`string`?[...d,a].join(`-`):a.id;return l.createElement(l.Fragment,{key:h},o>0&&!e.schema.independentCombinators&&e.schema.showCombinatorsBetweenRules&&l.createElement(n,{key:c.TestID.inlineCombinator,options:e.schema.combinators,value:e.combinator,title:e.translations.combinators.title,className:e.classNames.combinators,handleOnChange:e.onCombinatorChange,rules:e.ruleGroup.rules,level:e.path.length,context:e.context,validation:e.validationResult,component:t,path:d,disabled:e.disabled,schema:e.schema,ruleGroup:e.ruleGroup}),typeof a==`string`?l.createElement(n,{key:`${c.TestID.inlineCombinator}-independent`,options:e.schema.combinators,value:a,title:e.translations.combinators.title,className:e.classNames.combinators,handleOnChange:t=>e.onIndependentCombinatorChange(t,o),rules:e.ruleGroup.rules,level:e.path.length,context:e.context,validation:e.validationResult,component:t,path:d,disabled:f,schema:e.schema,ruleGroup:e.ruleGroup}):(0,c.isRuleGroup)(a)?l.createElement(r,{key:c.TestID.ruleGroup,id:a.id,schema:e.schema,actions:e.actions,path:d,translations:e.translations,ruleGroup:a,rules:a.rules,combinator:(0,c.isRuleGroupType)(a)?a.combinator:void 0,not:!!a.not,disabled:f,parentDisabled:e.parentDisabled||e.disabled,shiftUpDisabled:p,shiftDownDisabled:m,context:e.context}):l.createElement(i,{key:c.TestID.rule,id:a.id,rule:a,field:a.field,operator:a.operator,value:a.value,valueSource:a.valueSource,schema:e.schema,actions:e.actions,path:d,disabled:f,parentDisabled:e.parentDisabled||e.disabled,translations:e.translations,shiftUpDisabled:p,shiftDownDisabled:m,context:e.context}))}))}),ke=e=>{let{id:t,path:n,ruleGroup:r,schema:{qbId:i,accessibleDescriptionGenerator:a,classNames:o,combinators:s,createRule:u,createRuleGroup:d,disabledPaths:f,independentCombinators:p,validationMap:m,enableDragAndDrop:h,getRuleGroupClassname:g,suppressStandardClassnames:_},actions:{onGroupAdd:v,onGroupRemove:y,onPropChange:b,onRuleAdd:x,moveRule:S},disabled:C,parentDisabled:ee,shiftUpDisabled:w,shiftDownDisabled:T,combinator:E,rules:D,not:O,dropEffect:te=`move`,groupItems:k=!1,dragMonitorId:ne=``,dropMonitorId:A=``,previewRef:j=null,dragRef:M=null,dropRef:N=null,isDragging:P=!1,isOver:F=!1,dropNotAllowed:ie=!1}=e;re(`ruleGroup`,!r),ue(h,!!(ne||A||j||M||N));let I=!!ee||!!C,L=(0,l.useMemo)(()=>r&&(0,c.isRuleGroupType)(r)?r.combinator:r?(0,c.getFirstOption)(s):E??(0,c.getFirstOption)(s),[E,s,r]),R=(0,l.useMemo)(()=>{if(r){if(r.combinator===L||p)return r;let e=structuredClone(r);return e.combinator=L,e}return{rules:D,not:O}},[L,p,O,r,D]),z=(0,l.useMemo)(()=>({header:(0,c.clsx)(_||c.standardClassnames.header,o.header,F&&te===`copy`&&o.dndCopy,ie&&o.dndDropNotAllowed,_||{[c.standardClassnames.dndOver]:F,[c.standardClassnames.dndCopy]:F&&te===`copy`,[c.standardClassnames.dndDropNotAllowed]:ie}),shiftActions:(0,c.clsx)(_||c.standardClassnames.shiftActions,o.shiftActions),dragHandle:(0,c.clsx)(_||c.standardClassnames.dragHandle,o.dragHandle),combinators:(0,c.clsx)(_||c.standardClassnames.combinators,o.valueSelector,o.combinators),notToggle:(0,c.clsx)(_||c.standardClassnames.notToggle,o.notToggle),addRule:(0,c.clsx)(_||c.standardClassnames.addRule,o.actionElement,o.addRule),addGroup:(0,c.clsx)(_||c.standardClassnames.addGroup,o.actionElement,o.addGroup),cloneGroup:(0,c.clsx)(_||c.standardClassnames.cloneGroup,o.actionElement,o.cloneGroup),lockGroup:(0,c.clsx)(_||c.standardClassnames.lockGroup,o.actionElement,o.lockGroup),removeGroup:(0,c.clsx)(_||c.standardClassnames.removeGroup,o.actionElement,o.removeGroup),body:(0,c.clsx)(_||c.standardClassnames.body,o.body)}),[o.actionElement,o.addGroup,o.addRule,o.body,o.cloneGroup,o.combinators,o.dndCopy,o.dndDropNotAllowed,o.dragHandle,o.header,o.lockGroup,o.notToggle,o.removeGroup,o.shiftActions,o.valueSelector,te,ie,F,_]),B=(0,l.useCallback)(e=>{I||b(`combinator`,e,n)},[I,b,n]),V=(0,l.useCallback)((e,t,r)=>{I||b(`combinator`,e,[...n,t])},[I,b,n]),ae=(0,l.useCallback)((e,t)=>{I||b(`not`,e,n)},[I,b,n]),H=(0,l.useCallback)((e,t)=>{if(!I){let e=u();x(e,n,t)}},[u,I,x,n]),oe=(0,l.useCallback)((e,t)=>{if(!I){let e=d();v(e,n,t)}},[d,I,v,n]),U=(0,l.useCallback)(()=>{if(!I){let e=[...(0,c.getParentPath)(n),n.at(-1)+1];S(n,e,!0)}},[I,S,n]),se=(0,l.useCallback)((e,t)=>{!I&&!w&&S(n,`up`,e?.altKey)},[I,S,n,w]),W=(0,l.useCallback)((e,t)=>{!I&&!T&&S(n,`down`,e?.altKey)},[I,S,n,T]),ce=(0,l.useCallback)(()=>{b(`disabled`,!I,n)},[I,b,n]),le=(0,l.useCallback)(()=>{I||y(n)},[I,y,n]),G=(0,l.useMemo)(()=>m[t??``],[t,m]),K=(0,l.useMemo)(()=>(0,c.getValidationClassNames)(G),[G]),q=(0,l.useMemo)(()=>p?null:(0,c.getOption)(s,L)?.className??``,[L,s,p]),de=(0,l.useMemo)(()=>g(R),[g,R]),fe=(0,l.useMemo)(()=>(0,c.clsx)(de,q,_||c.standardClassnames.ruleGroup,o.ruleGroup,I&&o.disabled,P&&o.dndDragging,F&&k&&o.dndGroup,_||{[c.standardClassnames.disabled]:I,[c.standardClassnames.dndDragging]:P,[c.standardClassnames.dndGroup]:F&&k},K),[o.disabled,o.dndDragging,o.dndGroup,o.ruleGroup,q,I,k,P,F,de,_,K]),pe=(0,l.useMemo)(()=>{let e=[];for(let t=0;t<R.rules.length;t++){let r=[...n,t];e[t]={path:r,disabled:I||f.some(e=>(0,c.pathsAreEqual)(r,e))}}return e},[I,n,R.rules.length,f]),me=(0,l.useMemo)(()=>a({path:n,qbId:i}),[a,n,i]);return{...e,addGroup:oe,addRule:H,accessibleDescription:me,classNames:z,cloneGroup:U,combinator:L,disabled:I,dragMonitorId:ne,dragRef:M,dropMonitorId:A,dropRef:N,isDragging:P,isOver:F,onCombinatorChange:B,onGroupAdd:v,onIndependentCombinatorChange:V,onNotToggleChange:ae,outerClassName:fe,parentDisabled:ee,pathsMemo:pe,previewRef:j,removeGroup:le,ruleGroup:R,shiftGroupUp:se,shiftGroupDown:W,toggleLockGroup:ce,validationClassName:K,validationResult:G}},Ae={mode:`all`},je=[{name:``,value:``,label:``}],Me=l.memo(function(e){let t=Ie(e),n=K(t.cloneRule),r=K(t.toggleLockRule),i=K(t.removeRule),a=K(t.shiftRuleUp),o=K(t.shiftRuleDown),s=(0,l.useMemo)(()=>({cloneRule:n,toggleLockRule:r,removeRule:i,shiftRuleUp:a,shiftRuleDown:o}),[n,i,o,a,r]);return l.createElement(`div`,{ref:t.dndRef,"data-testid":c.TestID.rule,"data-dragmonitorid":t.dragMonitorId,"data-dropmonitorid":t.dropMonitorId,className:t.outerClassName,"data-rule-id":t.id,"data-level":t.path.length,"data-path":JSON.stringify(t.path)},t.matchModes.length>0?l.createElement(Fe,{...t,...s}):l.createElement(Ne,{...t,...s}))}),Ne=l.memo(function(e){let{schema:{controls:{shiftActions:t,dragHandle:n,fieldSelector:r,matchModeEditor:i,operatorSelector:a,valueSourceSelector:o,valueEditor:s,cloneRuleAction:u,lockRuleAction:d,removeRuleAction:f,ruleGroupBodyElements:p,ruleGroupHeaderElements:m}},groupComponentsWrapper:h=l.Fragment}=e,g=(0,l.useMemo)(()=>({level:e.path.length,path:e.path,disabled:e.disabled,context:e.context,validation:e.validationResult,schema:e.schema,rule:e.rule}),[e.path,e.disabled,e.context,e.validationResult,e.schema,e.rule]),_=(0,l.useMemo)(()=>!(e.schema.fields.length===1&&(0,c.isPojo)(e.schema.fields[0])&&`value`in e.schema.fields[0]&&e.schema.fields[0].value===``),[e.schema.fields]),v=(0,l.useMemo)(()=>e.schema.showShiftActions?{shiftUp:e.translations.shiftActionUp.title,shiftDown:e.translations.shiftActionDown.title}:void 0,[e.schema.showShiftActions,e.translations]),y=(0,l.useMemo)(()=>e.schema.showShiftActions?{shiftUp:e.translations.shiftActionUp.label,shiftDown:e.translations.shiftActionDown.label}:void 0,[e.schema.showShiftActions,e.translations]);return l.createElement(l.Fragment,null,e.schema.showShiftActions&&l.createElement(t,{key:c.TestID.shiftActions,...g,testID:c.TestID.shiftActions,titles:v,labels:y,className:e.classNames.shiftActions,ruleOrGroup:e.rule,shiftUp:e.shiftRuleUp,shiftDown:e.shiftRuleDown,shiftUpDisabled:e.shiftUpDisabled,shiftDownDisabled:e.shiftDownDisabled}),e.schema.enableDragAndDrop&&l.createElement(n,{key:c.TestID.dragHandle,...g,testID:c.TestID.dragHandle,ref:e.dragRef,title:e.translations.dragHandle.title,label:e.translations.dragHandle.label,className:e.classNames.dragHandle,ruleOrGroup:e.rule}),_&&l.createElement(r,{key:c.TestID.fields,...g,testID:c.TestID.fields,options:e.schema.fields,title:e.translations.fields.title,value:e.rule.field,operator:e.rule.operator,className:e.classNames.fields,handleOnChange:e.onChangeField}),(e.schema.autoSelectField||e.rule.field!==e.translations.fields.placeholderName)&&(e.subQuery?l.createElement(i,{key:c.TestID.matchModeEditor,...g,testID:c.TestID.matchModeEditor,field:e.rule.field,fieldData:e.fieldData,title:e.translations.matchMode.title,options:e.matchModes,match:e.rule.match??Ae,className:e.classNames.matchMode,classNames:e.classNames,handleOnChange:e.onChangeMatchMode}):l.createElement(l.Fragment,null,l.createElement(a,{key:c.TestID.operators,...g,testID:c.TestID.operators,field:e.rule.field,fieldData:e.fieldData,title:e.translations.operators.title,options:e.operators,value:e.rule.operator,className:e.classNames.operators,handleOnChange:e.onChangeOperator}),(e.schema.autoSelectOperator||e.rule.operator!==e.translations.operators.placeholderName)&&!e.hideValueControls&&l.createElement(l.Fragment,null,![`null`,`notnull`].includes((0,c.lc)(`${e.rule.operator}`))&&e.valueSources.length>1&&l.createElement(o,{key:c.TestID.valueSourceSelector,...g,testID:c.TestID.valueSourceSelector,field:e.rule.field,fieldData:e.fieldData,title:e.translations.valueSourceSelector.title,options:e.valueSourceOptions,value:e.rule.valueSource??`value`,className:e.classNames.valueSource,handleOnChange:e.onChangeValueSource}),l.createElement(s,{key:c.TestID.valueEditor,...g,testID:c.TestID.valueEditor,field:e.rule.field,fieldData:e.fieldData,title:e.translations.value.title,operator:e.rule.operator,value:e.rule.value,valueSource:e.rule.valueSource??`value`,type:e.valueEditorType,inputType:e.inputType,values:e.values,listsAsArrays:e.schema.listsAsArrays,parseNumbers:e.schema.parseNumbers,separator:e.valueEditorSeparator,className:e.classNames.value,handleOnChange:e.onChangeValue})))),e.subQuery&&l.createElement(h,{className:e.subQuery.classNames.header},l.createElement(m,e.subQuery)),e.schema.showCloneButtons&&l.createElement(u,{key:c.TestID.cloneRule,...g,testID:c.TestID.cloneRule,label:e.translations.cloneRule.label,title:e.translations.cloneRule.title,className:e.classNames.cloneRule,ruleOrGroup:e.rule,handleOnClick:e.cloneRule}),e.schema.showLockButtons&&l.createElement(d,{key:c.TestID.lockRule,...g,testID:c.TestID.lockRule,label:e.translations.lockRule.label,title:e.translations.lockRule.title,className:e.classNames.lockRule,ruleOrGroup:e.rule,handleOnClick:e.toggleLockRule,disabledTranslation:e.parentDisabled?void 0:e.translations.lockRuleDisabled}),l.createElement(f,{key:c.TestID.removeRule,...g,testID:c.TestID.removeRule,label:e.translations.removeRule.label,title:e.translations.removeRule.title,className:e.classNames.removeRule,ruleOrGroup:e.rule,handleOnClick:e.removeRule}),e.subQuery&&l.createElement(h,{className:e.subQuery.classNames.body},l.createElement(p,e.subQuery)))}),Pe=e=>l.createElement(`div`,e),Fe=l.memo(function(e){let t=(0,l.useMemo)(()=>e.schema.createRuleGroup(),[e.schema]),n=Te({...e.subQueryBuilderProps,enableDragAndDrop:!1,disabled:e.disabled,fields:e.subproperties.fields,enableMountQueryChange:!(0,c.isRuleGroup)(e.rule.value)||!e.rule.value.id,query:(0,c.isRuleGroup)(e.rule.value)?e.rule.value:t,onQueryChange:e.onChangeValue}),r=ke({...n,ruleGroup:n.rootGroup,path:c.rootPath,disabled:e.disabled,parentDisabled:n.queryDisabled,id:n.rootGroup.id,shiftUpDisabled:!0,shiftDownDisabled:!0}),i=K(r.addRule),a=K(r.addGroup),o=K(r.cloneGroup),s=K(r.toggleLockGroup),u=K(r.removeGroup),d=K(r.shiftGroupUp),f=K(r.shiftGroupDown),p=(0,l.useMemo)(()=>({...r,addGroup:a,addRule:i,cloneGroup:o,removeGroup:u,shiftGroupDown:f,shiftGroupUp:d,toggleLockGroup:s}),[a,i,o,u,f,d,r,s]);return l.createElement(Ne,{...e,groupComponentsWrapper:e.groupComponentsWrapper??Pe,subQuery:p})}),Ie=e=>{let{id:t,path:n,rule:r,schema:{classNames:i,fields:a,fieldMap:o,getInputType:s,getMatchModes:u,getOperators:d,getSubQueryBuilderProps:f,getValueEditorType:p,getValueEditorSeparator:m,getValueSources:h,getValues:g,validationMap:_,enableDragAndDrop:v,getRuleClassname:y,suppressStandardClassnames:b},actions:{moveRule:x,onPropChange:S,onRuleRemove:C},disabled:ee,parentDisabled:w,shiftUpDisabled:T,shiftDownDisabled:E,field:D,operator:O,value:te,valueSource:k,dropEffect:ne=`move`,groupItems:A=!1,dragMonitorId:j=``,dropMonitorId:M=``,dndRef:N=null,dragRef:P=null,isDragging:F=!1,isOver:I=!1,dropNotAllowed:L=!1}=e;re(`rule`,!r),ue(v,!!(j||M||N||P));let R=!!w||!!ee,z=(0,l.useMemo)(()=>r??{id:t,field:D??``,operator:O??``,value:te,valueSource:k},[D,t,O,r,te,k]),B=(0,l.useMemo)(()=>({shiftActions:(0,c.clsx)(b||c.standardClassnames.shiftActions,i.shiftActions),dragHandle:(0,c.clsx)(b||c.standardClassnames.dragHandle,i.dragHandle),fields:(0,c.clsx)(b||c.standardClassnames.fields,i.valueSelector,i.fields),matchMode:(0,c.clsx)(b||c.standardClassnames.matchMode,i.valueSelector,i.matchMode),matchThreshold:(0,c.clsx)(b||c.standardClassnames.matchThreshold,i.valueSelector,i.matchThreshold),operators:(0,c.clsx)(b||c.standardClassnames.operators,i.valueSelector,i.operators),valueSource:(0,c.clsx)(b||c.standardClassnames.valueSource,i.valueS