UNPKG

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 147 kB
"use strict";var ya=Object.create;var nr=Object.defineProperty;var Ra=Object.getOwnPropertyDescriptor;var $a=Object.getOwnPropertyNames;var Na=Object.getPrototypeOf,Ga=Object.prototype.hasOwnProperty;var xa=(t,e)=>{for(var o in e)nr(t,o,{get:e[o],enumerable:!0})},cn=(t,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of $a(e))!Ga.call(t,r)&&r!==o&&nr(t,r,{get:()=>e[r],enumerable:!(l=Ra(e,r))||l.enumerable});return t};var Qt=(t,e,o)=>(o=t!=null?ya(Na(t)):{},cn(e||!t||!t.__esModule?nr(o,"default",{value:t,enumerable:!0}):o,t)),Aa=t=>cn(nr({},"__esModule",{value:!0}),t);var Cs={};xa(Cs,{ActionElement:()=>gt,DragHandle:()=>Wr,InlineCombinator:()=>ol,LogType:()=>Le,MatchModeEditor:()=>Fl,NotToggle:()=>Bl,QueryBuilder:()=>ma,QueryBuilderContext:()=>bt,QueryBuilderStateContext:()=>qt,QueryBuilderStateProvider:()=>rn,Rule:()=>Zl,RuleComponents:()=>en,RuleComponentsWithSubQuery:()=>oa,RuleGroup:()=>Kl,RuleGroupBodyComponents:()=>Yl,RuleGroupHeaderComponents:()=>Xl,RuleWithSubQueryGroupComponentsWrapper:()=>ta,ShiftActions:()=>tn,TestID:()=>q,ValueEditor:()=>on,ValueSelector:()=>ro,add:()=>Lr,bigIntJsonParseReviver:()=>Ta,bigIntJsonStringifyReplacer:()=>yr,celCombinatorMap:()=>br,convertFromIC:()=>Te,convertQuery:()=>Oa,convertToIC:()=>ll,default:()=>ma,defaultCELValueProcessor:()=>Ka,defaultCombinatorLabelMap:()=>Yr,defaultCombinators:()=>ct,defaultCombinatorsExtended:()=>Sa,defaultControlClassnames:()=>el,defaultControlElements:()=>ho,defaultExportOperatorMap:()=>Nl,defaultJoinChar:()=>Go,defaultMatchModes:()=>sr,defaultMongoDBValueProcessor:()=>Ja,defaultNLTranslations:()=>fr,defaultOperatorLabelMap:()=>xo,defaultOperatorNegationMap:()=>Ca,defaultOperatorProcessorNL:()=>Ar,defaultOperatorProcessorSQL:()=>Ft,defaultOperators:()=>Zr,defaultPlaceholderFieldGroupLabel:()=>Hr,defaultPlaceholderFieldLabel:()=>_r,defaultPlaceholderFieldName:()=>$o,defaultPlaceholderLabel:()=>_t,defaultPlaceholderName:()=>ar,defaultPlaceholderOperatorGroupLabel:()=>zr,defaultPlaceholderOperatorLabel:()=>Ur,defaultPlaceholderOperatorName:()=>No,defaultPlaceholderValueGroupLabel:()=>Xr,defaultPlaceholderValueLabel:()=>Kr,defaultPlaceholderValueName:()=>Jr,defaultRuleGroupProcessorCEL:()=>Do,defaultRuleGroupProcessorDrizzle:()=>Eo,defaultRuleGroupProcessorElasticSearch:()=>ml,defaultRuleGroupProcessorJSONata:()=>Lo,defaultRuleGroupProcessorJsonLogic:()=>po,defaultRuleGroupProcessorLDAP:()=>fl,defaultRuleGroupProcessorMongoDB:()=>hl,defaultRuleGroupProcessorMongoDBQuery:()=>io,defaultRuleGroupProcessorNL:()=>To,defaultRuleGroupProcessorParameterized:()=>ko,defaultRuleGroupProcessorPrisma:()=>bl,defaultRuleGroupProcessorSQL:()=>Vo,defaultRuleGroupProcessorSequelize:()=>gl,defaultRuleGroupProcessorSpEL:()=>Po,defaultRuleProcessorCEL:()=>so,defaultRuleProcessorDrizzle:()=>Mo,defaultRuleProcessorElasticSearch:()=>yl,defaultRuleProcessorJSONata:()=>Rl,defaultRuleProcessorJsonLogic:()=>qo,defaultRuleProcessorLDAP:()=>$l,defaultRuleProcessorMongoDB:()=>uo,defaultRuleProcessorMongoDBQuery:()=>Jt,defaultRuleProcessorNL:()=>Gl,defaultRuleProcessorParameterized:()=>Cr,defaultRuleProcessorPrisma:()=>Al,defaultRuleProcessorSQL:()=>mo,defaultRuleProcessorSequelize:()=>Cl,defaultRuleProcessorSpEL:()=>co,defaultSpELValueProcessor:()=>Xa,defaultTranslations:()=>Ho,defaultValidator:()=>Pa,defaultValueProcessor:()=>za,defaultValueProcessorByRule:()=>dt,defaultValueProcessorCELByRule:()=>Ya,defaultValueProcessorMongoDBByRule:()=>Za,defaultValueProcessorNL:()=>jo,defaultValueProcessorSpELByRule:()=>es,filterFieldsByComparator:()=>wo,findID:()=>Dr,findPath:()=>Ne,formatQuery:()=>Ua,formatQueryOptionPresets:()=>ja,generateAccessibleDescription:()=>Sl,generateID:()=>Fe,getCommonAncestorPath:()=>Or,getCompatContextProvider:()=>as,getFirstOption:()=>$e,getMatchModesUtil:()=>Dl,getNLTranslataion:()=>ao,getOption:()=>z,getParentPath:()=>ve,getParseNumberMethod:()=>Ut,getPathOfID:()=>Bt,getQuerySelectorById:()=>yt,getQuoteFieldNamesWithArray:()=>vr,getQuotedFieldName:()=>ot,getValidationClassNames:()=>zo,getValueSourcesUtil:()=>Jo,group:()=>Ql,groupInvalidReasons:()=>Ao,insert:()=>cs,isAncestor:()=>ts,isFlexibleOptionArray:()=>Vt,isFlexibleOptionGroupArray:()=>qe,isFullOptionArray:()=>Nn,isFullOptionGroupArray:()=>Ea,isOptionGroupArray:()=>mr,isPojo:()=>we,isRuleGroup:()=>w,isRuleGroupType:()=>de,isRuleGroupTypeIC:()=>Je,isRuleOrGroupValid:()=>K,isValidValue:()=>Re,isValidationResult:()=>il,isValueProcessorLegacy:()=>cl,joinWith:()=>Ot,jsonLogicAdditionalOperators:()=>La,lc:()=>E,mapSQLOperator:()=>ul,mergeClassnames:()=>wl,mergeTranslation:()=>Oe,mergeTranslations:()=>us,messages:()=>xt,mongoDbFallback:()=>Oo,mongoOperators:()=>Pt,move:()=>kl,normalizeConstituentWordOrder:()=>dl,nullFreeArray:()=>wa,nullOrUndefinedOrEmpty:()=>ze,numericRegex:()=>rl,numerifyValues:()=>gr,objectEntries:()=>Ol,objectKeys:()=>Ko,parseNumber:()=>k,pathIsDisabled:()=>It,pathsAreEqual:()=>vt,preferProp:()=>Tn,prepareRule:()=>Ml,prepareRuleGroup:()=>Xo,prepareRuleOrGroup:()=>Er,prismaFallback:()=>Qo,prismaOperators:()=>hr,processMatchMode:()=>he,queryBuilderStore:()=>Hl,regenerateID:()=>El,regenerateIDs:()=>Yt,remove:()=>Tl,rootPath:()=>Co,shouldRenderAsNumber:()=>L,splitBy:()=>ir,sqlDialectPresets:()=>Sr,standardClassnames:()=>B,toArray:()=>I,toFlatOptionArray:()=>al,toFullOption:()=>Ie,toFullOptionList:()=>De,toFullOptionMap:()=>pr,toOptions:()=>Vl,transformQuery:()=>je,trimIfString:()=>ne,uniqByIdentifier:()=>Ht,uniqByName:()=>Ma,uniqOptGroups:()=>So,uniqOptList:()=>sl,update:()=>Ll,useControlledOrUncontrolled:()=>ql,useDeprecatedProps:()=>to,useFields:()=>er,useMatchModeEditor:()=>qn,useMergedContext:()=>bo,usePreferAnyProp:()=>ls,usePreferProp:()=>_o,usePrevious:()=>Il,useQueryBuilder:()=>or,useQueryBuilderQuery:()=>bs,useQueryBuilderSchema:()=>Ul,useQueryBuilderSelector:()=>_l,useQueryBuilderSetup:()=>Jl,useReactDndWarning:()=>tr,useRule:()=>ra,useRuleGroup:()=>Ir,useSelectElementChangeHandler:()=>jl,useStopEventPropagation:()=>Pe,useValueEditor:()=>sa,useValueSelector:()=>ua});module.exports=Aa(Cs);var dn=require("react"),bt=(0,dn.createContext)({});var pn=require("react/jsx-runtime"),gt=t=>(0,pn.jsx)("button",{type:"button","data-testid":t.testID,disabled:t.disabled&&!t.disabledTranslation,className:t.className,title:t.disabledTranslation&&t.disabled?t.disabledTranslation.title:t.title,onClick:e=>t.handleOnClick(e),children:t.disabledTranslation&&t.disabled?t.disabledTranslation.label:t.label});var mn=require("react/jsx-runtime"),fn=require("react"),Wr=(0,fn.forwardRef)((t,e)=>(0,mn.jsx)("span",{"data-testid":t.testID,ref:e,className:t.className,title:t.title,children:t.label}));var tl=require("react/jsx-runtime");var ar="~",_t="------",$o=ar,_r=_t,Hr=_t,No=ar,Ur=_t,zr=_t,Jr=ar,Kr=_t,Xr=_t,Go=",",xo={"=":"=","!=":"!=","<":"<",">":">","<=":"<=",">=":">=",contains:"contains",beginsWith:"begins with",endsWith:"ends with",doesNotContain:"does not contain",doesNotBeginWith:"does not begin with",doesNotEndWith:"does not end with",null:"is null",notNull:"is not null",in:"in",notIn:"not in",between:"between",notBetween:"not between"},Yr={and:"AND",or:"OR",xor:"XOR"},Zr=[{name:"=",value:"=",label:"="},{name:"!=",value:"!=",label:"!="},{name:"<",value:"<",label:"<"},{name:">",value:">",label:">"},{name:"<=",value:"<=",label:"<="},{name:">=",value:">=",label:">="},{name:"contains",value:"contains",label:"contains"},{name:"beginsWith",value:"beginsWith",label:"begins with"},{name:"endsWith",value:"endsWith",label:"ends with"},{name:"doesNotContain",value:"doesNotContain",label:"does not contain"},{name:"doesNotBeginWith",value:"doesNotBeginWith",label:"does not begin with"},{name:"doesNotEndWith",value:"doesNotEndWith",label:"does not end with"},{name:"null",value:"null",label:"is null"},{name:"notNull",value:"notNull",label:"is not null"},{name:"in",value:"in",label:"in"},{name:"notIn",value:"notIn",label:"not in"},{name:"between",value:"between",label:"between"},{name:"notBetween",value:"notBetween",label:"not between"}],Ca={"=":"!=","!=":"=","<":">=","<=":">",">":"<=",">=":"<",beginsWith:"doesNotBeginWith",doesNotBeginWith:"beginsWith",endsWith:"doesNotEndWith",doesNotEndWith:"endsWith",contains:"doesNotContain",doesNotContain:"contains",between:"notBetween",notBetween:"between",in:"notIn",notIn:"in",notNull:"null",null:"notNull"},ct=[{name:"and",value:"and",label:"AND"},{name:"or",value:"or",label:"OR"}],Sa=[...ct,{name:"xor",value:"xor",label:"XOR"}],sr=[{name:"all",value:"all",label:"all"},{name:"some",value:"some",label:"some"},{name:"none",value:"none",label:"none"},{name:"atLeast",value:"atLeast",label:"at least"},{name:"atMost",value:"atMost",label:"at most"},{name:"exactly",value:"exactly",label:"exactly"}],B={queryBuilder:"queryBuilder",ruleGroup:"ruleGroup",header:"ruleGroup-header",body:"ruleGroup-body",combinators:"ruleGroup-combinators",addRule:"ruleGroup-addRule",addGroup:"ruleGroup-addGroup",cloneRule:"rule-cloneRule",cloneGroup:"ruleGroup-cloneGroup",removeGroup:"ruleGroup-remove",notToggle:"ruleGroup-notToggle",rule:"rule",fields:"rule-fields",matchMode:"rule-matchMode",matchThreshold:"rule-matchThreshold",operators:"rule-operators",value:"rule-value",removeRule:"rule-remove",betweenRules:"betweenRules",valid:"queryBuilder-valid",invalid:"queryBuilder-invalid",shiftActions:"shiftActions",dndDragging:"dndDragging",dndOver:"dndOver",dndCopy:"dndCopy",dndGroup:"dndGroup",dragHandle:"queryBuilder-dragHandle",disabled:"queryBuilder-disabled",lockRule:"rule-lock",lockGroup:"ruleGroup-lock",valueSource:"rule-valueSource",valueListItem:"rule-value-list-item",branches:"queryBuilder-branches",justified:"queryBuilder-justified",hasSubQuery:"rule-hasSubQuery"},el={queryBuilder:"",ruleGroup:"",header:"",body:"",combinators:"",addRule:"",addGroup:"",cloneRule:"",cloneGroup:"",removeGroup:"",notToggle:"",rule:"",fields:"",matchMode:"",matchThreshold:"",operators:"",value:"",removeRule:"",shiftActions:"",dragHandle:"",lockRule:"",lockGroup:"",valueSource:"",actionElement:"",valueSelector:"",betweenRules:"",valid:"",invalid:"",dndDragging:"",dndOver:"",dndGroup:"",dndCopy:"",disabled:"",valueListItem:"",branches:"",hasSubQuery:""},Ao={empty:"empty",invalidCombinator:"invalid combinator",invalidIndependentCombinators:"invalid independent combinators"},q={rule:"rule",ruleGroup:"rule-group",inlineCombinator:"inline-combinator",addGroup:"add-group",removeGroup:"remove-group",cloneGroup:"clone-group",cloneRule:"clone-rule",addRule:"add-rule",removeRule:"remove-rule",combinators:"combinators",fields:"fields",operators:"operators",valueEditor:"value-editor",notToggle:"not-toggle",shiftActions:"shift-actions",dragHandle:"drag-handle",lockRule:"lock-rule",lockGroup:"lock-group",valueSourceSelector:"value-source-selector",matchModeEditor:"match-mode-editor"},Le={parentPathDisabled:"action aborted: parent path disabled",pathDisabled:"action aborted: path is disabled",queryUpdate:"query updated",onAddRuleFalse:"onAddRule callback returned false",onAddGroupFalse:"onAddGroup callback returned false",onGroupRuleFalse:"onGroupRule callback returned false",onGroupGroupFalse:"onGroupGroup callback returned false",onMoveRuleFalse:"onMoveRule callback returned false",onMoveGroupFalse:"onMoveGroup callback returned false",onRemoveFalse:"onRemove callback returned false",add:"rule or group added",remove:"rule or group removed",update:"rule or group updated",move:"rule or group moved",group:"rule or group grouped with another"},Co=[];function hn(t){let e,o,l="";if(typeof t=="string"||typeof t=="number")l+=t;else if(typeof t=="object")if(Array.isArray(t)){let r=t.length;for(e=0;e<r;e++)t[e]&&(o=hn(t[e]))&&(l&&(l+=" "),l+=o)}else for(o in t)t[o]&&(l&&(l+=" "),l+=o);return l}function ee(){let t=0,e,o,l="",r=arguments.length;for(;t<r;t++)(e=t<0||arguments.length<=t?void 0:arguments[t])&&(o=hn(e))&&(l&&(l+=" "),l+=o);return l}var bn=ee;var ol=t=>{let{component:e,...o}=t,l=ee(o.schema.suppressStandardClassnames||B.betweenRules,o.schema.classNames.betweenRules);return(0,tl.jsx)("div",{className:l,"data-testid":q.inlineCombinator,children:(0,tl.jsx)(e,{...o,testID:q.combinators})})};var vn=Qt(require("react")),gn=Symbol.for("react.memo_cache_sentinel");function Ae(t){return vn.useMemo(()=>{let e=new Array(t);for(let o=0;o<t;o++)e[o]=gn;return e[gn]=!0,e},[])}var Yo=require("react/jsx-runtime"),Bn=Qt(require("react")),Tm=require("react");var ir=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Go;return typeof t=="string"?t.split(`\\${e}`).map(o=>o.split(e)).reduce((o,l,r)=>r===0?l:[...o.slice(0,-1),`${o.at(-1)}${e}${l[0]}`,...l.slice(1)],[]):[]},Ot=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Go;return t.map(o=>`${o??""}`.replaceAll(e[0],`\\${e[0]}`)).join(e)},ne=t=>typeof t=="string"?t.trim():t,I=function(t){let{retainEmptyStrings:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Array.isArray(t)?t.map(o=>ne(o)):typeof t=="string"?ir(t,Go).filter(e?()=>!0:o=>!/^\s*$/.test(o)).map(o=>o.trim()):typeof t=="number"?[t]:[]},wa=t=>t.every(e=>e===!1||(e??!1)!==!1);var $n=require("immer");var yn=require("numeric-quantity"),E=t=>typeof t=="string"?t.toLowerCase():t,rl=new RegExp(yn.numericRegex.source.replace(/^\^/,String.raw`^\s*`).replace(/\$$/,String.raw`\s*$`)),we=t=>t===null||typeof t!="object"?!1:Object.getPrototypeOf(t)===Object.prototype,ze=t=>t==null||t==="";var w=t=>we(t)&&Array.isArray(t.rules),de=t=>w(t)&&typeof t.combinator=="string",Je=t=>w(t)&&t.combinator===void 0;var Rn=["or","xor","and"],Da=(t,e)=>E(t)===e,ur=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=Rn[e];return t.rules.includes(o)?(0,$n.produce)(t,l=>{let r=0;for(;r<l.rules.length-2;){if(Da(l.rules[r+1],o)){r+=2;continue}let s=l.rules.findIndex((a,d)=>d>r&&typeof a=="string"&&E(a)===o);if(s===-1){l.rules.splice(r,l.rules.length,ur({rules:l.rules.slice(r)},e+1));break}else l.rules.splice(r,s-r,ur({rules:l.rules.slice(r,s)},e+1))}}):e<Rn.length-2?ur(t,e+1):t},Te=t=>{if(de(t))return t;let e=ur(t),o=e.rules.map(s=>typeof s=="string"||!w(s)?s:Te(s)),l=o.length<2?"and":o[1],r=o.filter(s=>typeof s!="string");return{...e,combinator:l,rules:r}},ll=t=>{if(Je(t))return t;let{combinator:e,...o}=t,l=[],{length:r}=t.rules;for(let[s,a]of t.rules.entries())w(a)?l.push(ll(a)):l.push(a),e&&s<r-1&&l.push(e);return{...o,rules:l}};function Oa(t){return Je(t)?Te(t):ll(t)}var Pa=t=>{let e={},o=r=>{},l=r=>{let s=[];if(r.rules.length===0)s.push(Ao.empty);else if(!de(r)){let a=!1;for(let d=0;d<r.rules.length&&!a;d++)(d%2===0&&typeof r.rules[d]=="string"||d%2===1&&typeof r.rules[d]!="string"||d%2===1&&typeof r.rules[d]=="string"&&!ct.map($=>$.name).includes(r.rules[d]))&&(a=!0);a&&s.push(Ao.invalidIndependentCombinators)}de(r)&&!ct.map(a=>a.name).includes(r.combinator)&&r.rules.length>1&&s.push(Ao.invalidCombinator),r.id&&(e[r.id]=s.length>0?{valid:!1,reasons:s}:!0);for(let a of r.rules)typeof a=="string"||(w(a)?l(a):o(a))};return l(t),e};var nl=require("immer");var cr=t=>we(t)&&"name"in t&&typeof t.name=="string",dr=t=>we(t)&&"value"in t&&typeof t.value=="string";function Ie(t,e,o){return(0,nl.produce)(r=>{let s={},a=!!e;if(typeof r=="string")return{...e,name:r,value:r,label:o?.[r]??r};if(cr(r)&&!dr(r)?(s.value=r.name,a=!0):!cr(r)&&dr(r)&&(s.name=r.value,a=!0),a)return Object.assign({},e,r,s)})(t)}function De(t,e,o){return Array.isArray(t)?(0,nl.produce)(r=>{if(qe(r))for(let s of r)for(let[a,d]of s.options.entries())s.options[a]=Ie(d,e,o);else for(let[s,a]of r.entries())r[s]=Ie(a,e,o)})(t):[]}function pr(t,e){return Object.fromEntries(Object.entries(t).map(o=>{let[l,r]=o;return[l,Ie(r,e)]}))}var Ma=t=>Ht(t),Ht=t=>{let e=new Set,o=[];for(let l of t)e.has(l.value??l.name)||(e.add(l.value??l.name),o.push(l));return t.length===o.length?t:o},mr=t=>Array.isArray(t)&&t.length>0&&we(t[0])&&"options"in t[0]&&Array.isArray(t[0].options),Vt=t=>{let e=!1;if(Array.isArray(t))for(let o of t)if(cr(o)||dr(o))e=!0;else return!1;return e},Nn=t=>{let e=!1;if(Array.isArray(t))for(let o of t)if(cr(o)&&dr(o))e=!0;else return!1;return e},qe=function(t){let{allowEmpty:e=!1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!1;if(Array.isArray(t))for(let l of t)if(we(l)&&"options"in l&&(Vt(l.options)||e&&Array.isArray(l.options)&&l.options.length===0))o=!0;else return!1;return o},Ea=function(t){let{allowEmpty:e=!1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!1;if(Array.isArray(t))for(let l of t)if(we(l)&&"options"in l&&(Nn(l.options)||e&&Array.isArray(l.options)&&l.options.length===0))o=!0;else return!1;return o},z=(t,e)=>(qe(t,{allowEmpty:!0})?t.flatMap(o=>o.options):t).find(o=>o.value===e||o.name===e),$e=t=>{if(!Array.isArray(t)||t.length===0)return null;if(qe(t,{allowEmpty:!0})){for(let e of t)if(e.options.length>0)return e.options[0].value??e.options[0].name;return null}return t[0].value??t[0].name},al=t=>Ht(mr(t)?t.flatMap(e=>e.options):t),So=t=>{let e=new Set,o=new Set,l=[];for(let r of t)if(!e.has(r.label)){e.add(r.label);let s=[];for(let a of r.options)o.has(a.value??a.name)||(o.add(a.value??a.name),s.push(Ie(a)));l.push({...r,options:s})}return l},sl=t=>qe(t)?So(t):Ht(t.map(e=>Ie(e)));var Gn=(t,e,o)=>{let l=Ie(t),r=Ie(o);return l.value===r.value?!1:typeof l.comparator=="string"?l[l.comparator]===r[l.comparator]:l.comparator?.(r,e)??!1},wo=(t,e,o)=>{if(!t.comparator){let l=r=>(r.value??r.name)!==(t.value??t.name);return qe(e)?e.map(r=>({...r,options:r.options.filter(s=>l(s))})):e.filter(r=>l(r))}return qe(e)?e.map(l=>({...l,options:l.options.filter(r=>Gn(t,o,r))})).filter(l=>l.options.length>0):e.filter(l=>Gn(t,o,l))};var xn=require("numeric-quantity"),k=function(t){let{parseNumbers:e,bigIntOnOverflow:o}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||typeof t=="bigint"||typeof t=="number")return t;if(e==="native")return Number.parseFloat(t);let l=(0,xn.numericQuantity)(t,{allowTrailingInvalid:e==="enhanced",bigIntOnOverflow:o,romanNumerals:!1,round:!1});return typeof l=="bigint"||!Number.isNaN(l)?l:t};var Cn=require("immer");var An=(t,e,o)=>(0,Cn.produce)(t,l=>{for(let[r,s]of Object.entries(e))s===!1?delete l[r]:s&&r!==s&&r in l&&(l[s]=l[r],o&&delete l[r])});function je(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{ruleProcessor:o=g=>g,ruleGroupProcessor:l=g=>g,propertyMap:r={},combinatorMap:s={},operatorMap:a={},omitPath:d=!1,deleteRemappedProperties:$=!0}=e,p=g=>({...l(An({...g,...de(g)?{combinator:s[g.combinator]??g.combinator}:{}},r,$)),...r.rules===!1?null:{[r.rules??"rules"]:g.rules.map((f,h)=>{let n=d?null:{path:[...g.path,h]};return typeof f=="string"?s[f]??f:w(f)?p({...f,...n}):o(An({...f,...n,..."operator"in f?{operator:a[f.operator]??f.operator}:{}},r,$))})}});return p({...t,...d?null:{path:[]}})}var il=t=>we(t)&&typeof t.valid=="boolean",K=(t,e,o)=>{if(typeof e=="boolean")return e;if(il(e))return e.valid;if(typeof o=="function"&&!w(t)){let l=o(t);if(typeof l=="boolean")return l;if(il(l))return l.valid}return!0};var Ut=t=>{let{parseNumbers:e,inputType:o}=t;if(typeof e=="string"){let[l,r]=e.split("-");return r==="limited"?o==="number"?l:!1:l}return e?"strict":!1};var ul=t=>{switch(E(t)){case"null":return"is null";case"notnull":return"is not null";case"notin":return"not in";case"notbetween":return"not between";case"contains":case"beginswith":case"endswith":return"like";case"doesnotcontain":case"doesnotbeginwith":case"doesnotendwith":return"not like";default:return t}},Pt={"=":"$eq","!=":"$ne","<":"$lt","<=":"$lte",">":"$gt",">=":"$gte",in:"$in",notin:"$nin",notIn:"$nin"},hr={"=":"equals","!=":"not","<":"lt","<=":"lte",">":"gt",">=":"gte",in:"in",notin:"notIn"},br={and:"&&",or:"||"},La={startsWith:(t,e)=>typeof t=="string"&&t.startsWith(e),endsWith:(t,e)=>typeof t=="string"&&t.endsWith(e)},gr=(t,e)=>({...t,rules:t.rules.map(o=>{if(typeof o=="string")return o;if(w(o))return gr(o,e);let l=z(e.fields,o.field),r=Ut({parseNumbers:e.parseNumbers,inputType:l?.inputType});if(Array.isArray(o.value))return{...o,value:o.value.map(a=>k(a,{parseNumbers:r}))};let s=I(o.value,{retainEmptyStrings:!0}).map(a=>k(a,{parseNumbers:r}));if(s.every(a=>typeof a=="number")){if(s.length>1)return{...o,value:s};if(s.length===1)return{...o,value:s[0]}}return o})}),Re=t=>typeof t=="string"&&t.length>0||typeof t=="number"&&!Number.isNaN(t)||typeof t!="string"&&typeof t!="number",L=(t,e)=>!!e&&(typeof t=="number"||typeof t=="bigint"||typeof t=="string"&&rl.test(t)),cl=t=>t.length>=3,vr=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["",""];return Array.isArray(t)?t:typeof t=="string"?[t,t]:t??["",""]},ot=(t,e)=>{let{quoteFieldNamesWith:o,fieldIdentifierSeparator:l}=e,[r,s]=vr(o);return typeof l=="string"&&l.length>0?Ot(ir(t,l).map(a=>`${r}${a}${s}`),l):`${r}${t}${s}`},Sn=["S","V","O"],dl=t=>{let e=[],o=new Set(Sn);for(let l of t.toUpperCase())if(o.has(l)&&(e.push(l),o.delete(l),o.size===0))break;for(let l of Sn)o.has(l)&&e.push(l);return e},fr={groupPrefix:"",groupPrefix_not_xor:"either zero or more than one of",groupPrefix_xor:"exactly one of",groupSuffix:"is true",groupSuffix_not:"is not true"},wn=(t,e,o)=>e.startsWith(t)&&o.every(l=>e.includes(`_${l}`)&&e.match(/_/g)?.length===o.length),ao=function(t,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return o.length===0?e[t]??fr[t]??"":Object.entries(e).find(l=>{let[r]=l;return wn(t,r,o)})?.[1]??Object.entries(fr).find(l=>{let[r]=l;return wn(t,r,o)})?.[1]??fr[t]??""},he=t=>{let{mode:e,threshold:o}=t.match??{};if(e){if(!w(t.value))return!1;let l=E(e),r=l==="atleast"&&o===1?"some":l==="atmost"&&o===0?"none":l;return(r==="atleast"||r==="atmost"||r==="exactly")&&(typeof o!="number"||o<0)?!1:{mode:r,threshold:o}}},yr=(t,e)=>typeof e=="bigint"?{$bigint:e.toString()}:e,Ta=(t,e)=>we(e)&&Object.keys(e).length===1&&typeof e.$bigint=="string"?BigInt(e.$bigint):e;var Do=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=(h,n)=>{if(!K(h,g[h.id??""]))return n?l:"";let v=h.rules.map(i=>{if(typeof i=="string")return br[i];if(w(i))return f(i);let[u,y]=p(i);if(!K(i,u,y)||i.field===s||i.operator===a||d!==void 0&&i.value===d)return"";let N=z(o,i.field);return $(i,{...e,parseNumbers:r(N?.inputType),escapeQuotes:(i.valueSource??"value")==="value",fieldData:N})}).filter(Boolean).join(de(h)?` ${br[h.combinator]} `:" "),[m,R]=h.not||!n?[`${h.not?"!":""}(`,")"]:["",""];return v?`${m}${v}${R}`:l};return f(t,!0)};var Rr=t=>t.startsWith("not")||t.startsWith("doesnot"),zt=(t,e)=>typeof t!="string"||!e?t:t.replaceAll('"','\\"'),so=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{escapeQuotes:o,parseNumbers:l,preserveValueOrder:r}=e,{field:s,operator:a,value:d,valueSource:$}=t,p=$==="field",g=E(a==="="?"==":a),f=typeof d=="number"||typeof d=="boolean"||typeof d=="bigint"||L(d,l),h=he(t);if(h===!1)return"";if(h){let{mode:n,threshold:v}=h,m="elem_alias",R=je(t.value,{ruleProcessor:u=>({...u,field:`${m}${u.field?`.${u.field}`:""}`})}),i=Do(R,e);switch(n){case"all":return`${s}.all(${m}, ${i})`;case"none":case"some":return`${n==="none"?"!":""}${s}.exists(${m}, ${i})`;case"atleast":case"atmost":case"exactly":{let u=`double(${s}.size())`,y=`${s}.filter(${m}, ${i}).size()`,N=n==="atleast"?">=":n==="atmost"?"<=":"==";return v>0&&v<1?`${y} ${N} (${u} * ${v})`:`${y} ${N} ${v}`}}}switch(g){case"<":case"<=":case"==":case"!=":case">":case">=":return`${s} ${g} ${p||f?ne(d):`"${zt(d,o)}"`}`;case"contains":case"doesnotcontain":return`${Rr(g)?"!":""}${s}.contains(${p?ne(d):`"${zt(d,o)}"`})`;case"beginswith":case"doesnotbeginwith":return`${Rr(g)?"!":""}${s}.startsWith(${p?ne(d):`"${zt(d,o)}"`})`;case"endswith":case"doesnotendwith":return`${Rr(g)?"!":""}${s}.endsWith(${p?ne(d):`"${zt(d,o)}"`})`;case"null":return`${s} == null`;case"notnull":return`${s} != null`;case"in":case"notin":{let[n,v]=Rr(g)?["!(",")"]:["",""],m=I(d);return`${n}${s} in [${m.map(R=>p||L(R,l)?`${ne(R)}`:`"${zt(R,o)}"`).join(", ")}]${v}`}case"between":case"notbetween":{let n=I(d);if(n.length>=2&&!ze(n[0])&&!ze(n[1])){let[v,m]=n,R=l!==!1,i=L(v,R)?k(v,{parseNumbers:R}):Number.NaN,u=L(m,R)?k(m,{parseNumbers:R}):Number.NaN,y=Number.isNaN(i)?p?`${v}`:`"${zt(v,o)}"`:i,N=Number.isNaN(u)?p?`${m}`:`"${zt(m,o)}"`:u;if(!r&&y===i&&N===u&&u<i){let G=u;N=i,y=G}return g==="between"?`(${s} >= ${y} && ${s} <= ${N})`:`(${s} < ${y} || ${s} > ${N})`}else return""}}return""};var Oo={$and:[{$expr:!0}]},io=(t,e,o)=>{let{fields:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=(h,n)=>{if(!K(h,g[h.id??""]))return n?Oo:!1;let v=`$${E(h.combinator)}`,m=!1,R=h.rules.map(i=>{if(w(i)){let G=f(i);return G?(m=!0,G):!1}let[u,y]=p(i);if(!K(i,u,y)||i.field===s||i.operator===a||d!==void 0&&i.value===d)return!1;let N=z(l,i.field);return $(i,{...e,parseNumbers:r(N?.inputType),fieldData:N},o)}).filter(Boolean);return R.length>0?R.length===1&&!m?R[0]:{[v]:R}:Oo};return f(Te(t),!0)};var Mt=function(t,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return L(t,o||typeof t=="bigint")?Number(k(t,{parseNumbers:"strict"})):e},Jt=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{parseNumbers:a,preserveValueOrder:d,context:$}=e,p=s==="field",{avoidFieldsAsKeys:g}=$??{},f=he(t);if(f===!1)return;if(f){let{mode:n,threshold:v}=f,m={$size:{$ifNull:[`$${o}`,[]]}},R=io(je(r,{ruleProcessor:y=>({...y,field:y.field?`${o}.${y.field}`:o})}),{...e,ruleProcessor:Jt,context:{...e.context,avoidFieldsAsKeys:!1}}),i=io(je(r,{ruleProcessor:y=>({...y,field:y.field?`$item.${y.field}`:"$item"})}),{...e,ruleProcessor:Jt,context:{...e.context,avoidFieldsAsKeys:!0}}),u={$size:{$ifNull:[{$filter:{input:`$${o}`,as:"item",cond:{$and:[i]}}},[]]}};switch(n){case"all":return{$expr:{$eq:[u,m]}};case"none":return{$nor:[R]};case"some":return R;case"atleast":case"atmost":case"exactly":{let y=n==="atleast"?Pt[">="]:n==="atmost"?Pt["<="]:Pt["="];return v>0&&v<1?{$expr:{[y]:[u,{$multiply:[m,v]}]}}:{$expr:{[y]:[u,v]}}}}}if(l==="="&&!p)return g?{$eq:[`$${o}`,Mt(r,r,a)]}:{[o]:Mt(r,r,a)};let h=E(l);switch(h){case"<":case"<=":case"=":case"!=":case">":case">=":{let n=Pt[h];return p?{[n]:[`$${o}`,`$${r}`]}:g?{$and:[{$ne:[`$${o}`,null]},{[n]:[`$${o}`,Mt(r,r,a)]}]}:{[o]:{[n]:Mt(r,r,a)}}}case"contains":return p?{$where:`this.${o}.includes(this.${r})`}:g?{$regexMatch:{input:`$${o}`,regex:r}}:{[o]:{$regex:r}};case"beginswith":return p?{$where:`this.${o}.startsWith(this.${r})`}:g?{$regexMatch:{input:`$${o}`,regex:`^${r}`}}:{[o]:{$regex:`^${r}`}};case"endswith":return p?{$where:`this.${o}.endsWith(this.${r})`}:g?{$regexMatch:{input:`$${o}`,regex:`${r}$`}}:{[o]:{$regex:`${r}$`}};case"doesnotcontain":return p?{$where:`!this.${o}.includes(this.${r})`}:g?{$not:{$regexMatch:{input:`$${o}`,regex:r}}}:{[o]:{$not:{$regex:r}}};case"doesnotbeginwith":return p?{$where:`!this.${o}.startsWith(this.${r})`}:g?{$not:{$regexMatch:{input:`$${o}`,regex:`^${r}`}}}:{[o]:{$not:{$regex:`^${r}`}}};case"doesnotendwith":return p?{$where:`!this.${o}.endsWith(this.${r})`}:g?{$not:{$regexMatch:{input:`$${o}`,regex:`${r}$`}}}:{[o]:{$not:{$regex:`${r}$`}}};case"null":return g?{$eq:[`$${o}`,null]}:{[o]:null};case"notnull":return g?{$ne:[`$${o}`,null]}:{[o]:{$ne:null}};case"in":case"notin":{let n=I(r);return p?{$where:`${h==="notin"?"!":""}[${n.map(v=>`this.${v}`).join(",")}].includes(this.${o})`}:g?h==="notin"?{$not:{[Pt.in]:[`$${o}`,n.map(v=>Mt(v,v,a))]}}:{[Pt[h]]:[`$${o}`,n.map(v=>Mt(v,v,a))]}:{[o]:{[Pt[h]]:n.map(v=>Mt(v,v,a))}}}case"between":case"notbetween":{let n=I(r);if(n.length>=2&&Re(n[0])&&Re(n[1])){let[v,m]=n,R=Mt(v,Number.NaN,!0),i=Mt(m,Number.NaN,!0),u=p||Number.isNaN(R)?v:R,y=p||Number.isNaN(i)?m:i;if(!d&&u===R&&y===i&&i<R){let N=i;y=R,u=N}return h==="between"?p?{$gte:[`$${o}`,`$${u}`],$lte:[`$${o}`,`$${y}`]}:g?{$and:[{$gte:[`$${o}`,u]},{$lte:[`$${o}`,y]}]}:{[o]:{$gte:u,$lte:y}}:p?{$or:[{$lt:[`$${o}`,`$${u}`]},{$gt:[`$${o}`,`$${y}`]}]}:g?{$or:[{$lt:[`$${o}`,u]},{$gt:[`$${o}`,y]}]}:{$or:[{[o]:{$lt:u}},{[o]:{$gt:y}}]}}else return""}}return""};var uo=(t,e)=>{let o=Jt(t,e);return o?JSON.stringify(o):""};var Po=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=(h,n)=>{if(!K(h,g[h.id??""]))return n?l:"";let v=h.rules.map(i=>{if(typeof i=="string")return i;if(w(i))return f(i);let[u,y]=p(i);if(!K(i,u,y)||i.field===s||i.operator===a||d!==void 0&&i.value===d)return"";let N=z(o,i.field);return $(i,{...e,parseNumbers:r(N?.inputType),escapeQuotes:(i.valueSource??"value")==="value",fieldData:N})}).filter(Boolean).join(de(h)?` ${h.combinator} `:" "),[m,R]=h.not||!n?[`${h.not?"!":""}(`,")"]:["",""];return v?`${m}${v}${R}`:l};return f(t,!0)};var $r=t=>t.startsWith("not")||t.startsWith("doesnot"),pl=(t,e)=>e?`!(${t})`:`${t}`,Kt=(t,e)=>typeof t!="string"||!e?t:t.replaceAll("'","\\'"),co=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{escapeQuotes:a,parseNumbers:d,preserveValueOrder:$}=e,p=s==="field",g=E(l==="="?"==":l),f=typeof r=="number"||typeof r=="boolean"||typeof r=="bigint"||L(r,d),h=he(t);if(h===!1)return"";if(h){let{mode:n,threshold:v}=h,m=Po(je(t.value,{ruleProcessor:u=>({...u,field:`${u.field||"#this"}`})}),e),R=`${o}.size()`,i=`${o}.?[${m}].size()`;switch(n){case"all":return`${i} == ${R}`;case"none":return`${i} == 0`;case"some":return`${i} >= 1`;case"atleast":case"atmost":case"exactly":{let u=n==="atleast"?">=":n==="atmost"?"<=":"==";return v>0&&v<1?`${i} ${u} (${R} * ${v})`:`${i} ${u} ${v}`}}}switch(g){case"<":case"<=":case"==":case"!=":case">":case">=":return`${o} ${g} ${p||f?ne(r):`'${Kt(r,a)}'`}`;case"contains":case"doesnotcontain":return pl(`${o} matches ${p||f?ne(r):`'${Kt(r,a)}'`}`,$r(g));case"beginswith":case"doesnotbeginwith":{let n=p?`'^'.concat(${ne(r)})`:`'${typeof r=="string"&&!r.startsWith("^")||f?"^":""}${Kt(r,a)}'`;return pl(`${o} matches ${n}`,$r(g))}case"endswith":case"doesnotendwith":{let n=p?`${ne(r)}.concat('$')`:`'${Kt(r,a)}${typeof r=="string"&&!r.endsWith("$")||f?"$":""}'`;return pl(`${o} matches ${n}`,$r(g))}case"null":return`${o} == null`;case"notnull":return`${o} != null`;case"in":case"notin":{let n=$r(g)?"!":"",v=I(r);return v.length>0?`${n}(${v.map(m=>`${o} == ${p||L(m,d)?`${ne(m)}`:`'${Kt(m,a)}'`}`).join(" or ")})`:""}case"between":case"notbetween":{let n=I(r);if(n.length>=2&&!ze(n[0])&&!ze(n[1])){let[v,m]=n,R=d!==!1,i=L(v,R)?k(v,{parseNumbers:R}):Number.NaN,u=L(m,R)?k(m,{parseNumbers:R}):Number.NaN,y=Number.isNaN(i)?p?`${v}`:`'${Kt(v,a)}'`:i,N=Number.isNaN(u)?p?`${m}`:`'${Kt(m,a)}'`:u;if(!$&&y===i&&N===u&&u<i){let G=u;N=i,y=G}return g==="between"?`(${o} >= ${y} and ${o} <= ${N})`:`(${o} < ${y} or ${o} > ${N})`}else return""}}return""};var ka=(t,e,o)=>o&&typeof t=="string"?t.replaceAll(`${e}`,`${e}${e}`):t,dt=function(t){let{operator:e,value:o,valueSource:l}=t,{escapeQuotes:r,parseNumbers:s,preserveValueOrder:a,quoteFieldNamesWith:d,quoteValuesWith:$,concatOperator:p="||",fieldIdentifierSeparator:g,wrapValueWith:f=["",""],translations:h}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=l==="field",v=E(e),m=$||"'",R=G=>`${f[0]}${m}${G}${m}${f[1]}`,i=G=>ka(G,m,r),u=G=>R(i(G)),y=G=>ot(G,{quoteFieldNamesWith:d,fieldIdentifierSeparator:g}),N=function(){for(var G=arguments.length,x=new Array(G),C=0;C<G;C++)x[C]=arguments[C];return p.toUpperCase()==="CONCAT"?`CONCAT(${x.join(", ")})`:x.join(` ${p} `)};switch(v){case"null":case"notnull":return"";case"in":case"notin":{let G=I(o);return G.length>0?`(${G.map(x=>n?y(x):L(x,s)?`${ne(x)}`:`${u(x)}`).join(", ")})`:""}case"between":case"notbetween":{let G=I(o,{retainEmptyStrings:!0});if(G.length<2||!Re(G[0])||!Re(G[1]))return"";let[x,C]=G,c=L(x,s)?k(x,{parseNumbers:"strict"}):Number.NaN,b=L(C,s)?k(C,{parseNumbers:"strict"}):Number.NaN,D=Number.isNaN(c)?n?`${x}`:x:c,P=Number.isNaN(b)?n?`${C}`:C:b,A=[D,P];return!a&&D===c&&P===b&&b<c&&(A[0]=b,A[1]=c),(n?A.map(M=>y(M)):A.every(M=>L(M,s))?A.map(M=>k(M,{parseNumbers:"strict"})):A.map(M=>u(M))).join(` ${h?.and??"and"} `)}case"contains":case"doesnotcontain":return n?N(R("%"),y(o),R("%")):R(`%${i(o)}%`);case"beginswith":case"doesnotbeginwith":return n?N(y(o),R("%")):R(`${i(o)}%`);case"endswith":case"doesnotendwith":return n?N(R("%"),y(o)):R(`%${i(o)}`)}return typeof o=="boolean"?o?"TRUE":"FALSE":n?y(o):L(o,s)?`${ne(o)}`:`${u(o)}`};var Mo=(t,e)=>{let o=e??{},{parseNumbers:l,preserveValueOrder:r,context:s={}}=o,{columns:a,drizzleOperators:d,useRawFields:$}=s;if(!a||!d)return;let{between:p,eq:g,gt:f,gte:h,inArray:n,isNotNull:v,isNull:m,like:R,lt:i,lte:u,ne:y,notBetween:N,notInArray:G,notLike:x,sql:C}=d,{field:c,operator:b,value:D,valueSource:P}=t,A=$&&/[a-z][a-z0-9]*/i.test(c)?C.raw(c):a[c],M=E(b),T=P==="field",H=j=>T?a[j]:j;if(!A)return;let Q=he(t);if(Q!==!1){if(Q){if(o.preset!=="postgresql")return;let{mode:j,threshold:S}=Q,U="elem_alias",se=je(t.value,{ruleProcessor:V=>({...V,field:U})}),F=Eo(se,{...o,context:{...o.context,useRawFields:!0}});switch(j){case"all":return C`(select count(*) from unnest(${A}) as ${C.raw(U)} where ${F({},d)}) = array_length(${A}, 1)`;case"none":return C`not exists (select 1 from unnest(${A}) as ${C.raw(U)} where ${F({},d)})`;case"some":return C`exists (select 1 from unnest(${A}) as ${C.raw(U)} where ${F({},d)})`;case"atleast":case"atmost":case"exactly":{let V=j==="atleast"?">=":j==="atmost"?"<=":"=";return S>0&&S<1?C`(select count(*) / array_length(${A}, 1) from unnest(${A}) as ${C.raw(U)} where ${F({},d)}) ${C.raw(`${V} ${S}`)}`:C`(select count(*) from unnest(${A}) as ${C.raw(U)} where ${F({},d)}) ${C.raw(`${V} ${S}`)}`}}}switch(M){case"=":return g(A,H(D));case"!=":return y(A,H(D));case">":return f(A,H(D));case"<":return i(A,H(D));case">=":return h(A,H(D));case"<=":return u(A,H(D));case"beginswith":case"doesnotbeginwith":return(M==="doesnotbeginwith"?x:R)(A,T?C`${H(D)} || '%'`:`${D}%`);case"contains":case"doesnotcontain":return(M==="doesnotcontain"?x:R)(A,T?C`'%' || ${H(D)} || '%'`:`%${D}%`);case"endswith":case"doesnotendwith":return(M==="doesnotendwith"?x:R)(A,T?C`'%' || ${H(D)}`:`%${D}`);case"null":return m(A);case"notnull":return v(A);case"in":case"notin":{let j=I(D).map(S=>H(S));return M==="notin"?G(A,j):n(A,j)}case"between":case"notbetween":{let j=I(D);if(j.length>=2&&Re(j[0])&&Re(j[1])){let[S,U]=j,se=l!==!1;if(!T&&L(S,se)&&L(U,se)){let F=k(S,{parseNumbers:se}),V=k(U,{parseNumbers:se});if(!r&&V<F){let O=V;U=F,S=O}else S=F,U=V}else T&&(S=H(S),U=H(U));return M==="notbetween"?N(A,S,U):p(A,S,U)}return}default:return}}};var Eo=(t,e,o)=>(l,r)=>{let{fields:s,getParseNumberBoolean:a,placeholderFieldName:d,placeholderOperatorName:$,placeholderValueName:p,validateRule:g,validationMap:f}=e;if(!l||!r)return;let{and:h,not:n,or:v}=r,m=de(t)?t:Te(t),R=Mo,i=(u,y)=>{if(!K(u,f[u.id??""]))return;let N=u.rules.map(x=>{if(w(x))return i(x);let[C,c]=g(x);if(!K(x,C,c)||x.field===d||x.operator===$||p!==void 0&&x.value===p)return;let b=z(s,x.field);return R(x,{...e,parseNumbers:a(b?.inputType),fieldData:b,context:{...e.context,columns:l,drizzleOperators:r}})}).filter(Boolean);if(N.length===0)return;let G=u.combinator==="or"?v(...N):h(...N);return u.not?n(G):G};return i(m,!0)};var ml=(t,e)=>{let{fields:o,getParseNumberBoolean:l,placeholderFieldName:r,placeholderOperatorName:s,placeholderValueName:a,ruleProcessor:d,validateRule:$,validationMap:p}=e,g=Te(t),f=n=>{if(!K(n,p[n.id??""]))return!1;let v=n.rules.map(m=>{if(w(m))return f(m);let[R,i]=$(m);if(!K(m,R,i)||m.field===r||m.operator===s||a!==void 0&&m.value===a)return!1;let u=z(o,m.field);return d(m,{...e,parseNumbers:l(u?.inputType),fieldData:u})}).filter(Boolean);return v.length===0?!1:{bool:n.not?{must_not:/^or$/i.test(n.combinator)?{bool:{should:v}}:v}:{[/^or$/i.test(n.combinator)?"should":"must"]:v}}},h=f(g);return h===!1?{}:h};var Lo=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=(h,n)=>{if(!K(h,g[h.id??""]))return n?l:"";let v=h.rules.map(i=>{if(typeof i=="string")return i;if(w(i))return f(i);let[u,y]=p(i);if(!K(i,u,y)||i.field===s||i.operator===a||d!==void 0&&i.value===d)return"";let N=z(o,i.field);return $(i,{...e,parseNumbers:r(N?.inputType),escapeQuotes:(i.valueSource??"value")==="value",fieldData:N})}).filter(Boolean).join(de(h)?` ${h.combinator} `:" "),[m,R]=h.not||!n?[`${h.not?"$not":""}(`,")"]:["",""];return v?`${m}${v}${R}`:l};return f(t,!0)};var po=(t,e)=>{let{fields:o,getParseNumberBoolean:l,placeholderFieldName:r,placeholderOperatorName:s,placeholderValueName:a,ruleProcessor:d,validateRule:$,validationMap:p}=e,g=Te(t),f=(h,n)=>{if(!K(h,p[h.id??""]))return!1;let v=h.rules.map(R=>{if(w(R))return f(R);let[i,u]=$(R);if(!K(R,i,u)||R.field===r||R.operator===s||a!==void 0&&R.value===a)return!1;let y=z(o,R.field);return d(R,{...e,parseNumbers:l(y?.inputType),fieldData:y})}).filter(Boolean);if(v.length===0)return!1;let m={[h.combinator]:v};return h.not?{"!":m}:m};return f(g,!0)};var fl=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=Te(t),h=(n,v)=>{if(!K(n,g[n.id??""]))return v?l:"";let m=n.rules.map(G=>{if(w(G))return h(G);let[x,C]=p(G);if(!K(G,x,C)||G.field===s||G.operator===a||d!==void 0&&G.value===d)return"";let c=z(o,G.field);return $(G,{...e,parseNumbers:r(c?.inputType),escapeQuotes:(G.valueSource??"value")==="value",fieldData:c})}).filter(Boolean),R=m.join(""),[i,u]=n.not?["(!",")"]:["",""],[y,N]=m.length>1?[`${i}(${n.combinator==="or"?"|":"&"}`,`)${u}`]:[i,u];return R?`${y}${R}${N}`:l};return h(f,!0)};var Dn=t=>t.startsWith("{")&&t.endsWith("}"),hl=(t,e,o)=>{let{fields:l,fallbackExpression:r,getParseNumberBoolean:s,placeholderFieldName:a,placeholderOperatorName:d,placeholderValueName:$,ruleProcessor:p,validateRule:g,validationMap:f}=e,h=(v,m)=>{if(!K(v,f[v.id??""]))return m?r:"";let R=`"$${E(v.combinator)}"`,i=!1,u=v.rules.map(y=>{if(w(y)){let C=h(y);return C?(i=!0,Dn(C)?C:`{${C}}`):""}let[N,G]=g(y);if(!K(y,N,G)||y.field===a||y.operator===d||$!==void 0&&y.value===$)return"";let x=z(l,y.field);return p(y,{...e,parseNumbers:s(x?.inputType),fieldData:x},o)}).filter(Boolean);return u.length>0?u.length===1&&!i?u[0]:`${R}:[${u.join(",")}]`:r},n=h(Te(t),!0);return Dn(n)?n:`{${n}}`};var To=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,translations:p,validateRule:g,validationMap:f}=e,h=(n,v)=>{if(!K(n,f[n.id??""]))return v?l:"";let m=Je(n)&&n.rules.some(c=>typeof c=="string"&&E(c)==="xor")?Te(n):n,R=m.rules.map(c=>{if(typeof c=="string")return`, ${p[c]??c} `;if(w(c))return h(c,m.rules.length===1&&!(m.not||/^xor$/i.test(m.combinator??"")));let[b,D]=g(c);if(!K(c,b,D)||c.field===s||c.operator===a||d!==void 0&&c.value===d)return"";let P=(c.valueSource??"value")==="value",A=z(o,c.field);return $(c,{...e,parseNumbers:r(A?.inputType),escapeQuotes:P,fieldData:A})});if(R.length===0)return l;let i=E(m.combinator??"")==="xor",u=i?m.combinator.slice(1):m.combinator,y=m.not||!v||i&&R.length>1,[N,G]=["groupPrefix","groupSuffix"].map(c=>m.not?i?ao(c,p,["not","xor"]):ao(c,p,["not"]):i?ao(c,p,["xor"]):ao(c,p)),x=y?`${N} (`.trim():"",C=y?`) ${G}`.trim():"";return`${x}${R.filter(Boolean).join(de(m)?`, ${p[u]??u} `:"")}${C}`};return h(t,!0)};var ko=(t,e)=>{let{format:o,fields:l,fallbackExpression:r,getParseNumberBoolean:s,placeholderFieldName:a,placeholderOperatorName:d,placeholderValueName:$,ruleProcessor:p,validateRule:g,validationMap:f}=e,h=o==="parameterized",n=[],v={},m=new Map,R=y=>{m.has(y)||m.set(y,new Set);let N=`${y}_${m.get(y).size+1}`;return m.get(y).add(N),N},i=y=>{let[N,G]=g(y);if(!K(y,N,G)||y.field===a||y.operator===d||$!==void 0&&y.value===$)return"";let x=z(l,y.field),C=Object.fromEntries([...m.entries()].map(P=>{let[A,M]=P;return[A,[...M]]})),c=p(y,{...e,parseNumbers:s(x?.inputType),getNextNamedParam:R,fieldParamNames:C,fieldData:x},{processedParams:n});if(!we(c))return"";let{sql:b,params:D}=c;if(typeof b!="string"||!b)return"";if(o==="parameterized"&&Array.isArray(D))n.push(...D);else if(o==="parameterized_named"&&we(D)){Object.assign(v,D);for(let P of Object.keys(D))m.get(y.field)?.add(P)}return b},u=(y,N)=>{if(!K(y,f[y.id??""]))return N?r:"";let G=y.rules.map(x=>typeof x=="string"?x:w(x)?u(x,y.rules.length===1):i(x)).filter(Boolean);return G.length===0?r:`${y.not?"NOT ":""}(${G.join(de(y)?` ${y.combinator} `:" ")})`};return h?{sql:u(t,!0),params:n}:{sql:u(t,!0),params:v}};var Qo={},bl=(t,e)=>{let{fields:o,getParseNumberBoolean:l,placeholderFieldName:r,placeholderOperatorName:s,placeholderValueName:a,ruleProcessor:d,validateRule:$,validationMap:p}=e,g=(h,n)=>{if(!K(h,p[h.id??""]))return n?Qo:void 0;let v=h.combinator.toUpperCase(),m=!1,R=h.rules.map(i=>{if(w(i)){let G=g(i);return G?(m=!0,G):void 0}let[u,y]=$(i);if(!K(i,u,y)||i.field===r||i.operator===s||a!==void 0&&i.value===a)return;let N=z(o,i.field);return d(i,{...e,parseNumbers:l(N?.inputType),fieldData:N})}).filter(Boolean);return R.length>0?R.length===1&&!m?R[0]:{[v]:R}:Qo},f=g(Te(t),!0);return t.not?{NOT:f}:f};var gl=(t,e)=>{let{fields:o,getParseNumberBoolean:l,placeholderFieldName:r,placeholderOperatorName:s,placeholderValueName:a,ruleProcessor:d,validateRule:$,validationMap:p,context:g={}}=e,{sequelizeOperators:f}=g;if(!f)return;let h=(n,v)=>{if(!K(n,p[n.id??""]))return;let m=n.combinator.toUpperCase(),R=!1,i=n.rules.map(y=>{if(w(y)){let C=h(y);return C?(R=!0,C):void 0}let[N,G]=$(y);if(!K(y,N,G)||y.field===r||y.operator===s||a!==void 0&&y.value===a)return;let x=z(o,y.field);return d(y,{...e,parseNumbers:l(x?.inputType),fieldData:x})}).filter(Boolean);if(i.length===0)return;let u=i.length===1&&!R?i[0]:{[E(m)==="or"?f.or:f.and]:i};return n.not?{[f.not]:u}:u};return h(Te(t),!0)};var Vo=(t,e)=>{let{fields:o,fallbackExpression:l,getParseNumberBoolean:r,placeholderFieldName:s,placeholderOperatorName:a,placeholderValueName:d,ruleProcessor:$,validateRule:p,validationMap:g}=e,f=(h,n)=>{if(!K(h,g[h.id??""]))return n?l:"";let v=h.rules.map(m=>{if(typeof m=="string")return m;if(w(m))return f(m,h.rules.length===1);let[R,i]=p(m);if(!K(m,R,i)||m.field===s||m.operator===a||d!==void 0&&m.value===d)return"";let u=(m.valueSource??"value")==="value",y=z(o,m.field);return $(m,{...e,parseNumbers:r(y?.inputType),escapeQuotes:u,fieldData:y})}).filter(Boolean);return v.length===0?l:`${h.not?"NOT ":""}(${v.join(de(h)?` ${h.combinator} `:" ")})`};return f(t,!0)};var Qa={"<":"lt","<=":"lte",">":"gt",">=":"gte"},Nr=(t,e)=>t.startsWith("not")||t.startsWith("doesnot")?{bool:{must_not:e}}:e,vl=t=>t?.replace(/('|\\)/g,"\\$1"),Va={beginswith:"startsWith",doesnotbeginwith:"startsWith",doesnotcontain:"contains",doesnotendwith:"endsWith",endswith:"endsWith"},Fa=(t,e,o)=>{let l=`doc['${t}'].value.${Va[e]??e}(doc['${o}'].value)`;return e.startsWith("d")?`!${l}`:l},Fo=(t,e)=>typeof t=="boolean"?t:L(t,e)?k(t,{parseNumbers:e}):t,yl=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{parseNumbers:a,preserveValueOrder:d}=e,$=E(l);if(he(t))return!1;if(s==="field"){if(I(r).some(g=>typeof g!="string"))return!1;let p=vl(o);switch($){case"=":case"!=":case">":case">=":case"<":case"<=":{let g=$==="="?"==":$,f=vl(r);return f?{bool:{filter:{script:{script:`doc['${p}'].value ${g} doc['${f}'].value`}}}}:!1}case"in":case"notin":{let g=I(r);if(g.length>0){let f=g.map(h=>({bool:{filter:{script:{script:`doc['${p}'].value == doc['${h}'].value`}}}}));return{bool:$==="in"?{should:f}:{must_not:f}}}return!1}case"between":case"notbetween":{let g=I(r);if(g.length>=2&&g[0]&&g[1]){let f=`doc['${p}'].value >= doc['${g[0]}'].value && doc['${p}'].value <= doc['${g[1]}'].value`;return{bool:{filter:{script:{script:$==="notbetween"?`!(${f})`:f}}}}}return!1}case"contains":case"doesnotcontain":case"beginswith":case"doesnotbeginwith":case"endswith":case"doesnotendwith":{let g=vl(r);return g?{bool:{filter:{script:{script:Fa(p,$,g)}}}}:!1}}}switch($){case"<":case"<=":case">":case">=":return{range:{[o]:{[Qa[$]]:Fo(r,a)}}};case"=":return{term:{[o]:Fo(r,a)}};case"!=":return{bool:{must_not:{term:{[o]:Fo(r,a)}}}};case"null":return{bool:{must_not:{exists:{field:o}}}};case"notnull":return{exists:{field:o}};case"in":case"notin":{let p=I(r).map(g=>Fo(g,a));if(p.length>0){let g=p.map(f=>({term:{[o]:Fo(f,a)}}));return{bool:$==="in"?{should:g}:{must_not:g}}}return!1}case"between":case"notbetween":{let p=I(r);if(p.length>=2&&Re(p[0])&&Re(p[1])){let[g,f]=p,h=a!==!1;if(L(g,h)&&L(f,h)){let n=k(g,{parseNumbers:h}),v=k(f,{parseNumbers:h});if(!d&&v<n){let m=v;f=n,g=m}else g=n,f=v}return Nr($,{range:{[o]:{gte:g,lte:f}}})}return!1}case"contains":case"doesnotcontain":return Nr($,{regexp:{[o]:{value:`.*${r}.*`}}});case"beginswith":case"doesnotbeginwith":return Nr($,{regexp:{[o]:{value:`${r}.*`}}});case"endswith":case"doesnotendwith":return Nr($,{regexp:{[o]:{value:`.*${r}`}}})}return!1};var Gr=t=>t.startsWith("not")||t.startsWith("doesnot"),xr=(t,e)=>`"${typeof t!="string"||!e?t:t.replaceAll('"','\\"')}"`,Bo=(t,e)=>e?`$not(${t})`:`${t}`,On=t=>`${t}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g,String.raw`\$&`).replaceAll("-",String.raw`\x2d`),Rl=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{escapeQuotes:a,parseNumbers:d,preserveValueOrder:$,quoteFieldNamesWith:p=["",""],fieldIdentifierSeparator:g=""}=e,f=s==="field",h=typeof r=="number"||typeof r=="boolean"||typeof r=="bigint"||L(r,d),n=R=>ot(R,{quoteFieldNamesWith:p,fieldIdentifierSeparator:g}),v=he(t);if(v===!1)return;if(v){let{mode:R,threshold:i}=v,u=`$count(${n(o)})`,y=`$count($filter(${n(o)}, function($v) {${Lo(je(r,{ruleProcessor:N=>({...N,field:N.field?`$v.${N.field}`:"$v"})}),e)}}))`;switch(R){case"all":return`${y} = ${u}`;case"none":return`${y} = 0`;case"some":return`${y} > 0`;case"atleast":case"atmost":case"exactly":{let N=R==="atleast"?">=":R==="atmost"?"<=":"=";return i>0&&i<1?`${y} ${N} (${u} * ${i})`:`${y} ${N} ${i}`}}}let m=E(l);switch(m){case"<":case"<=":case"=":case"!=":case">":case">=":return`${n(o)} ${m} ${f?n(ne(r)):h?ne(r):xr(r,a)}`;case"contains":case"doesnotcontain":return Bo(`$contains(${n(o)}, ${f?n(ne(r)):xr(r,a)})`,Gr(m));case"beginswith":case"doesnotbeginwith":return Bo(f?`$substring(${n(o)}, 0, $length(${n(ne(r))})) = ${n(ne(r))}`:`$contains(${n(o)}, /^${On(r)}/)`,Gr(m));case"endswith":case"doesnotendwith":return Bo(f?`$substring(${n(o)}, $length(${n(o)}) - $length(${n(ne(r))})) = ${n(ne(r))}`:`$contains(${n(o)}, /${On(r)}$/)`,Gr(m));case"null":return`${n(o)} = null`;case"notnull":return`${n(o)} != null`;case"in":case"notin":{let R=I(r);return Bo(`${n(o)} in [${R.map(i=>f?`${n(ne(i))}`:L(i,d)?`${ne(i)}`:xr(i,a)).join(", ")}]`,Gr(m))}case"between":case"notbetween":{let R=I(r);if(R.length<2||ze(R[0])||ze(R[1]))return"";let[i,u]=R,y=d!==!1,N=L(i,y)?k(i,{parseNumbers:y}):Number.NaN,G=L(u,y)?k(u,{parseNumbers:y}):Number.NaN,x=Number.isNaN(N)?f?`${i}`:i:N,C=Number.isNaN(G)?f?`${u}`:u:G;if(!$&&x===N&&C===G&&G<N){let P=G;C=N,x=P}let c=L(i,d)&&L(u,d),b=(P,A)=>f?n(P):c?A:xr(A,a),D=`${n(o)} >= ${b(i,x)} and ${n(o)} <= ${b(u,C)}`;return m==="between"?`(${D})`:Bo(D,!0)}}return""};var Ba=t=>t.replace(/^(=)$/,"$1=").replace(/^notnull$/i,"!=").replace(/^null$/i,"=="),Io=(t,e)=>t.startsWith("not")||t.startsWith("doesnot")?{"!":e}:e,qo=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{parseNumbers:a,preserveValueOrder:d}=e,$=s==="field",p={var:o},g=n=>$?{var:`${n}`}:L(n,a)?k(n,{parseNumbers:a}):n,f=he(t);if(f===!1)return!1;if(f){let{mode:n,threshold:v}=f;switch(n){case"all":case"none":case"some":return{[n]:[{var:o},r.rules.length===1&&!w(r.rules[0])?qo(r.rules[0],e):po(r,e)]};case"atleast":case"atmost":case"exactly":{let m=n==="atleast"?">=":n==="atmost"?"<=":"==",R={reduce:[{filter:[{var:o},r.rules.length===1&&!w(r.rules[0])?qo(r.rules[0],e):po(r,e)]},{"+":[1,{var:"accumulator"}]},0]};if(v>0&&v<1){let i={reduce:[{var:o},{"+":[1,{var:"accumulator"}]},0]};return{[m]:[R,{"*":[i,v]}]}}return{[m]:[R,v]}}}}let h=E(l);switch(h){case"<":case"<=":case"=":case"!=":case">":case">=":return{[Ba(h)]:[p,g(r)]};case"null":case"notnull":return{[`${h==="notnull"?"!":"="}=`]:[p,null]};case"in":case"notin":{let n=I(r).map(v=>g(v));return Io(h,{in:[p,n]})}case"between":case"notbetween":{let n=I(r);if(n.length>=2&&Re(n[0])&&Re(n[1])){let[v,m]=n,R=a!==!1;if(!$&&L(v,R)&&L(m,R)){let u=k(v,{parseNumbers:R}),y=k(m,{parseNumbers:R});if(!d&&y<u){let N=y;m=u,v=N}else v=u,m=y}else $&&(v={var:v},m={var:m});return Io(h,{"<=":[v,p,m]})}return!1}case"contains":case"doesnotcontain":{let n={in:[g(r),p]};return Io(h,n)}case"beginswith":case"doesnotbeginwith":{let n={startsWith:[p,g(r)]};return Io(h,n)}case"endswith":case"doesnotendwith":{let n={endsWith:[p,g(r)]};return Io(h,n)}}return!1};var Xt=(t,e)=>e?`(!${t})`:`${t}`,Et=t=>`${ne(t)}`.replaceAll(/[()&|=<>~*\\/]/g,e=>`\\${e.codePointAt(0).toString(16)}`),$l=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{field:o,operator:l,value:r,valueSource:s}=t,{preserveValueOrder:a}=e,d=E(l);if(s==="field"||ze(r)&&d!=="null"&&d!=="notnull"||he(t))return"";switch(d){case"=":case"!=":return Xt(`(${o}=${Et(r)})`,d==="!=");case">":case">=":return`(${o}>=${Et(r)})`;case"<":case"<=":return`(${o}<=${Et(r)})`;case"contains":case"doesnotcontain":return Xt(`(${o}=*${Et(r)}*)`,d==="doesnotcontain");case"beginswith":case"doesnotbeginwith":return Xt(`(${o}=${Et(r)}*)`,d==="doesnotbeginwith");case"endswith":case"doesnotendwith":return Xt(`(${o}=*${Et(r)})`,d==="doesnotendwith");case"null":case"notnull":return