@react-querybuilder/core 8.22.5 → 8.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/derivations/package.json +4 -0
- package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +2078 -1665
- package/dist/cjs/react-querybuilder_core.cjs.development.js +1293 -422
- package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +2078 -1665
- package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
- package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
- package/dist/{convertQuery-Cw76XFIn.js → convertQuery-BLT0GIhM.js} +17 -8
- package/dist/{convertQuery-Cw76XFIn.js.map → convertQuery-BLT0GIhM.js.map} +1 -1
- package/dist/{convertQuery-D_4J7E-Z.mjs → convertQuery-DaXv3h7S.mjs} +6 -3
- package/dist/{convertQuery-D_4J7E-Z.mjs.map → convertQuery-DaXv3h7S.mjs.map} +1 -1
- package/dist/derivations.d.mts +2902 -0
- package/dist/derivations.d.ts +2902 -0
- package/dist/derivations.js +2845 -0
- package/dist/derivations.js.map +1 -0
- package/dist/derivations.mjs +2678 -0
- package/dist/derivations.mjs.map +1 -0
- package/dist/formatQuery.d.mts +2 -895
- package/dist/formatQuery.d.ts +2 -895
- package/dist/formatQuery.js +120 -140
- package/dist/formatQuery.js.map +1 -1
- package/dist/formatQuery.mjs +8 -28
- package/dist/formatQuery.mjs.map +1 -1
- package/dist/{import-DVWI7Fdh.d.mts → import-BdKPtLzo.d.mts} +2 -2
- package/dist/{import-6ExjhifL.d.ts → import-BfZTwhp2.d.ts} +2 -2
- package/dist/{index-CX9mehdL.d.mts → index-DOIE2pwx.d.mts} +274 -3
- package/dist/{index-CX9mehdL.d.ts → index-DOIE2pwx.d.ts} +274 -3
- package/dist/index-OF2Q1gTp.d.mts +895 -0
- package/dist/index-XueTy_XQ.d.ts +895 -0
- package/dist/isRuleOrGroupValid-CIMZNkt4.mjs +27 -0
- package/dist/isRuleOrGroupValid-CIMZNkt4.mjs.map +1 -0
- package/dist/isRuleOrGroupValid-CtUf4_4x.js +38 -0
- package/dist/isRuleOrGroupValid-CtUf4_4x.js.map +1 -0
- package/dist/{isRuleGroup-CqLThsbu.mjs → objectUtils-DDZ-KhV5.mjs} +25 -2
- package/dist/objectUtils-DDZ-KhV5.mjs.map +1 -0
- package/dist/{isRuleGroup-0JNiQgLg.js → objectUtils-DfnEmDSV.js} +48 -1
- package/dist/objectUtils-DfnEmDSV.js.map +1 -0
- package/dist/parseCEL.d.mts +2 -2
- package/dist/parseCEL.d.ts +2 -2
- package/dist/parseCEL.js +19 -16
- package/dist/parseCEL.js.map +1 -1
- package/dist/parseCEL.mjs +12 -9
- package/dist/parseCEL.mjs.map +1 -1
- package/dist/parseCypher.d.mts +1 -1
- package/dist/parseCypher.d.ts +1 -1
- package/dist/parseGremlin.d.mts +1 -1
- package/dist/parseGremlin.d.ts +1 -1
- package/dist/parseJSONata.d.mts +2 -2
- package/dist/parseJSONata.d.ts +2 -2
- package/dist/parseJSONata.js +17 -14
- package/dist/parseJSONata.js.map +1 -1
- package/dist/parseJSONata.mjs +11 -8
- package/dist/parseJSONata.mjs.map +1 -1
- package/dist/parseJsonLogic.d.mts +2 -2
- package/dist/parseJsonLogic.d.ts +2 -2
- package/dist/parseJsonLogic.js +38 -38
- package/dist/parseJsonLogic.js.map +1 -1
- package/dist/parseJsonLogic.mjs +5 -5
- package/dist/parseMongoDB.d.mts +2 -2
- package/dist/parseMongoDB.d.ts +2 -2
- package/dist/parseMongoDB.js +50 -47
- package/dist/parseMongoDB.js.map +1 -1
- package/dist/parseMongoDB.mjs +35 -32
- package/dist/parseMongoDB.mjs.map +1 -1
- package/dist/parseSPARQL.d.mts +1 -1
- package/dist/parseSPARQL.d.ts +1 -1
- package/dist/parseSQL.d.mts +2 -2
- package/dist/parseSQL.d.ts +2 -2
- package/dist/parseSQL.js +27 -23
- package/dist/parseSQL.js.map +1 -1
- package/dist/parseSQL.mjs +21 -17
- package/dist/parseSQL.mjs.map +1 -1
- package/dist/parseSpEL.d.mts +2 -2
- package/dist/parseSpEL.d.ts +2 -2
- package/dist/parseSpEL.js +17 -14
- package/dist/parseSpEL.js.map +1 -1
- package/dist/parseSpEL.mjs +13 -10
- package/dist/parseSpEL.mjs.map +1 -1
- package/dist/parserUtils-BKPstAaO.mjs +30 -0
- package/dist/parserUtils-BKPstAaO.mjs.map +1 -0
- package/dist/parserUtils-DbBXyAht.js +41 -0
- package/dist/parserUtils-DbBXyAht.js.map +1 -0
- package/dist/{prepareQueryObjects-BnGL91Tt.js → prepareQueryObjects-Dj9cTl9D.js} +90 -63
- package/dist/prepareQueryObjects-Dj9cTl9D.js.map +1 -0
- package/dist/{prepareQueryObjects-ChINDIap.mjs → prepareQueryObjects-Dmyf3Wi_.mjs} +56 -59
- package/dist/prepareQueryObjects-Dmyf3Wi_.mjs.map +1 -0
- package/dist/react-querybuilder_core.d.mts +2078 -1665
- package/dist/react-querybuilder_core.legacy-esm.d.ts +2078 -1665
- package/dist/react-querybuilder_core.legacy-esm.js +1445 -635
- package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
- package/dist/react-querybuilder_core.mjs +1288 -424
- package/dist/react-querybuilder_core.mjs.map +1 -1
- package/dist/react-querybuilder_core.production.d.mts +2078 -1665
- package/dist/react-querybuilder_core.production.mjs +1 -1
- package/dist/react-querybuilder_core.production.mjs.map +1 -1
- package/dist/transformQuery-B7d9AWUf.d.mts +116 -0
- package/dist/transformQuery-BXDiUBGB.d.ts +116 -0
- package/dist/transformQuery.d.mts +2 -116
- package/dist/transformQuery.d.ts +2 -116
- package/dist/transformQuery.js +3 -4
- package/dist/transformQuery.js.map +1 -1
- package/dist/transformQuery.mjs +1 -2
- package/dist/transformQuery.mjs.map +1 -1
- package/dist/utils-CP5Jqy1P.mjs +1294 -0
- package/dist/utils-CP5Jqy1P.mjs.map +1 -0
- package/dist/utils-e-7KHkjV.js +1779 -0
- package/dist/utils-e-7KHkjV.js.map +1 -0
- package/package.json +33 -22
- package/dist/isRuleGroup-0JNiQgLg.js.map +0 -1
- package/dist/isRuleGroup-CqLThsbu.mjs.map +0 -1
- package/dist/objectUtils-Cr02aGxb.js +0 -27
- package/dist/objectUtils-Cr02aGxb.js.map +0 -1
- package/dist/objectUtils-DBlmJgBf.mjs +0 -16
- package/dist/objectUtils-DBlmJgBf.mjs.map +0 -1
- package/dist/prepareQueryObjects-BnGL91Tt.js.map +0 -1
- package/dist/prepareQueryObjects-ChINDIap.mjs.map +0 -1
- package/dist/utils-4k-j5FBa.mjs +0 -537
- package/dist/utils-4k-j5FBa.mjs.map +0 -1
- package/dist/utils-C79dxwZb.js +0 -752
- package/dist/utils-C79dxwZb.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{numericQuantity as e,numericRegex as t}from"numeric-quantity";import{current as n,freeze as r,isDraft as i,produce as a}from"immer";const o=`~`,s=`------`,c=`~`,l=s,u=s,d=`~`,f=s,p=s,m=`~`,h=s,g=s,_={fields:{title:`Field`,placeholderName:`~`,placeholderLabel:l,placeholderGroupLabel:u},operators:{title:`Operator`,placeholderName:`~`,placeholderLabel:f,placeholderGroupLabel:p},values:{title:`Values`,placeholderName:`~`,placeholderLabel:h,placeholderGroupLabel:g},matchMode:{title:`Match mode`},matchThreshold:{title:`Match threshold`,placeholderName:`#`},value:{title:`Value`},removeRule:{label:`⨯`,title:`Remove rule`},removeGroup:{label:`⨯`,title:`Remove group`},addRule:{label:`+ Rule`,title:`Add rule`},addGroup:{label:`+ Group`,title:`Add group`},combinators:{title:`Combinator`},notToggle:{label:`Not`,title:`Invert this group`},cloneRule:{label:`⧉`,title:`Clone rule`},cloneRuleGroup:{label:`⧉`,title:`Clone group`},shiftActionUp:{label:`˄`,title:`Shift up`},shiftActionDown:{label:`˅`,title:`Shift down`},undo:{label:`↶`,title:`Undo`},redo:{label:`↷`,title:`Redo`},dragHandle:{label:`⁞⁞`,title:`Drag handle`},lockRule:{label:`🔓`,title:`Lock rule`},lockGroup:{label:`🔓`,title:`Lock group`},lockRuleDisabled:{label:`🔒`,title:`Unlock rule`},lockGroupDisabled:{label:`🔒`,title:`Unlock group`},muteRule:{label:`🔊`,title:`Mute rule`},muteGroup:{label:`🔊`,title:`Mute group`},unmuteRule:{label:`🔇`,title:`Unmute rule`},unmuteGroup:{label:`🔇`,title:`Unmute group`},valueSourceSelector:{title:`Value source`}},v=`,`,y={"=":`=`,"!=":`!=`,"<":`<`,">":`>`,"<=":`<=`,">=":`>=`,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`},b={and:`AND`,or:`OR`,xor:`XOR`},x=[{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`}],S={"=":`!=`,"!=":`=`,"<":`>=`,"<=":`>`,">":`<=`,">=":`<`,beginsWith:`doesNotBeginWith`,doesNotBeginWith:`beginsWith`,endsWith:`doesNotEndWith`,doesNotEndWith:`endsWith`,contains:`doesNotContain`,doesNotContain:`contains`,between:`notBetween`,notBetween:`between`,in:`notIn`,notIn:`in`,notNull:`null`,null:`notNull`},C=new Set([`=`,`!=`,`<`,`>`,`<=`,`>=`]),w=new Set([`contains`,`beginsWith`,`endsWith`,`doesNotContain`,`doesNotBeginWith`,`doesNotEndWith`]),T=new Set([`null`,`notNull`]),E=new Set([`in`,`notIn`]),D=new Set([`between`,`notBetween`]),O=[{name:`and`,value:`and`,label:`AND`},{name:`or`,value:`or`,label:`OR`}],ee=[...O,{name:`xor`,value:`xor`,label:`XOR`}],k=[{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`}],A={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`,undoRedoActions:`undoRedoActions`,undoAction:`undoRedoActions-undo`,redoAction:`undoRedoActions-redo`,dndDragging:`dndDragging`,dndOver:`dndOver`,dndCopy:`dndCopy`,dndGroup:`dndGroup`,dndDropNotAllowed:`dndDropNotAllowed`,dndPreviewPosition:`dndPreviewPosition`,dndHidden:`dndHidden`,dragHandle:`queryBuilder-dragHandle`,disabled:`queryBuilder-disabled`,muted:`queryBuilder-muted`,lockRule:`rule-lock`,lockGroup:`ruleGroup-lock`,muteRule:`rule-mute`,muteGroup:`ruleGroup-mute`,valueSource:`rule-valueSource`,valueListItem:`rule-value-list-item`,branches:`queryBuilder-branches`,justified:`queryBuilder-justified`,responsive:`queryBuilder-responsive`,hasSubQuery:`rule-hasSubQuery`,loading:`queryBuilder-loading`,valueDateTimeRelative:`rule-value-dateTimeRelative`},te={queryBuilder:``,ruleGroup:``,header:``,body:``,combinators:``,addRule:``,addGroup:``,cloneRule:``,cloneGroup:``,removeGroup:``,notToggle:``,rule:``,fields:``,matchMode:``,matchThreshold:``,operators:``,value:``,removeRule:``,shiftActions:``,undoRedoActions:``,undoAction:``,redoAction:``,dragHandle:``,lockRule:``,lockGroup:``,muteRule:``,muteGroup:``,muted:``,valueSource:``,actionElement:``,valueSelector:``,betweenRules:``,valid:``,invalid:``,dndDragging:``,dndOver:``,dndGroup:``,dndCopy:``,dndDropNotAllowed:``,dndPreviewPosition:``,dndHidden:``,disabled:``,valueListItem:``,branches:``,hasSubQuery:``,loading:``,valueDateTimeRelative:``},ne={empty:`empty`,invalidCombinator:`invalid combinator`,invalidIndependentCombinators:`invalid independent combinators`},re={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`,undoRedoActions:`undo-redo-actions`,undoAction:`undo-action`,redoAction:`redo-action`,dragHandle:`drag-handle`,lockRule:`lock-rule`,lockGroup:`lock-group`,muteRule:`mute-rule`,muteGroup:`mute-group`,valueSourceSelector:`value-source-selector`,matchModeEditor:`match-mode-editor`},j={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`},ie=[],ae={addRuleToNewGroups:!1,autoSelectField:!0,autoSelectOperator:!0,autoSelectValue:!1,debugMode:!1,enableDragAndDrop:!1,enableMountQueryChange:!0,listsAsArrays:!1,preserveQueryStateOnUnmount:!1,resetOnFieldChange:!0,resetOnOperatorChange:!1,showCloneButtons:!1,showCombinatorsBetweenRules:!1,showLockButtons:!1,showMuteButtons:!1,showNotToggle:!1,showShiftActions:!1,showUndoRedo:!1,suppressStandardClassnames:!1},oe=50,se=500,ce=(e,t=`,`)=>typeof e==`string`?e.split(`\\${t}`).map(e=>e.split(t)).reduce((e,n,r)=>r===0?n:[...e.slice(0,-1),`${e.at(-1)}${t}${n[0]}`,...n.slice(1)],[]):[],le=(e,t=`,`)=>e.map(e=>`${e??``}`.replaceAll(t[0],`\\${t[0]}`)).join(t),M=e=>typeof e==`string`?e.trim():e,N=(e,{retainEmptyStrings:t}={})=>Array.isArray(e)?e.map(M):typeof e==`string`?ce(e,`,`).filter(t?()=>!0:e=>!/^\s*$/.test(e)).map(e=>e.trim()):typeof e==`number`?[e]:[],ue=e=>e.every(e=>e===!1||(e??!1)!==!1);function de(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=de(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function fe(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=de(e))&&(r&&(r+=` `),r+=t);return r}const P=e=>typeof e==`string`?e.toLowerCase():e,pe=new RegExp(t.source.replace(/^\^/,String.raw`^\s*`).replace(/\$$/,String.raw`\s*$`)),F=e=>typeof e==`object`&&!!e&&Object.getPrototypeOf(e)===Object.prototype,me=e=>e==null||e===``,he=e=>F(e)&&`field`in e&&typeof e.field==`string`,I=e=>F(e)&&Array.isArray(e.rules),L=e=>I(e)&&typeof e.combinator==`string`,R=e=>I(e)&&e.combinator===void 0,ge=[`or`,`xor`,`and`],_e=(e,t)=>P(e)===t,ve=(e,t=0)=>{let n=ge[t];if(!e.rules.includes(n))return t<ge.length-2?ve(e,t+1):e;let r=[...e.rules],i=0;for(;i<r.length-2;){if(_e(r[i+1],n)){i+=2;continue}let e=-1;for(let t=i+2;t<r.length;t++)if(typeof r[t]==`string`&&P(r[t])===n){e=t;break}if(e===-1){r.splice(i,r.length,ve({rules:r.slice(i)},t+1));break}r.splice(i,e-i,ve({rules:r.slice(i,e)},t+1))}return{...e,rules:r}},z=e=>{if(L(e))return e;let t=ve(e),n=[],r=`and`;for(let[e,i]of t.rules.entries())typeof i==`string`?e===1&&(r=i):n.push(I(i)?z(i):i);return{...t,combinator:r,rules:n}},ye=e=>{if(R(e))return e;let{combinator:t,...n}=e,r=[],{length:i}=e.rules;for(let n=0;n<i;n++){let a=e.rules[n];I(a)?r.push(ye(a)):r.push(a),t&&n<i-1&&r.push(t)}return{...n,rules:r}};function be(e){return R(e)?z(e):ye(e)}const xe={shiftActions:[`shiftActions`],dragHandle:[`dragHandle`],fields:[`valueSelector`,`fields`],matchMode:[`valueSelector`,`matchMode`],matchThreshold:[`valueSelector`,`matchThreshold`],operators:[`valueSelector`,`operators`],valueSource:[`valueSelector`,`valueSource`],value:[`value`],cloneRule:[`actionElement`,`cloneRule`],lockRule:[`actionElement`,`lockRule`],muteRule:[`actionElement`,`muteRule`],removeRule:[`actionElement`,`removeRule`],valueListItem:[`valueListItem`]},Se={header:{sources:[`header`],conditions:[{key:`dndOver`,when:e=>e.isOver,standardOnly:!0},{key:`dndCopy`,when:e=>e.isOver&&e.dropEffect===`copy`},{key:`dndDropNotAllowed`,when:e=>e.dropNotAllowed}]},shiftActions:[`shiftActions`],undoRedoActions:[`undoRedoActions`],undoAction:[`actionElement`,`undoAction`],redoAction:[`actionElement`,`redoAction`],dragHandle:[`dragHandle`],combinators:[`valueSelector`,`combinators`],notToggle:[`notToggle`],addRule:[`actionElement`,`addRule`],addGroup:[`actionElement`,`addGroup`],cloneGroup:[`actionElement`,`cloneGroup`],lockGroup:[`actionElement`,`lockGroup`],muteGroup:[`actionElement`,`muteGroup`],removeGroup:[`actionElement`,`removeGroup`],body:[`body`]},Ce=[{key:`disabled`,when:e=>e.disabled},{key:`muted`,when:e=>e.muted},{key:`dndDragging`,when:e=>e.isDragging},{key:`dndOver`,when:e=>e.isOver},{key:`dndCopy`,when:e=>e.isOver&&e.dropEffect===`copy`},{key:`dndGroup`,when:e=>e.isOver&&e.groupItems},{key:`dndDropNotAllowed`,when:e=>e.dropNotAllowed},{key:`hasSubQuery`,when:e=>e.hasSubQuery}],we=[{key:`disabled`,when:e=>e.disabled},{key:`muted`,when:e=>e.muted},{key:`dndDragging`,when:e=>e.isDragging},{key:`dndGroup`,when:e=>e.isOver&&e.groupItems}],Te=[{key:`disabled`,when:e=>e.disabled},{key:`valid`,when:e=>typeof e.validationResult==`boolean`&&e.validationResult},{key:`invalid`,when:e=>typeof e.validationResult==`boolean`&&!e.validationResult}],Ee=(e,t,{classNames:n,suppressStandardClassnames:r})=>{let i=e.map(e=>[e,!!e.when(t)]);return[...i.filter(([e])=>!e.standardOnly).map(([e,t])=>t&&n?.[e.key]),r||Object.fromEntries(i.map(([e,t])=>[A[e.key],t]))]},De=(e,t,n,r)=>{let{sources:i,conditions:a}=Array.isArray(t)?{sources:t}:t;return fe(r.suppressStandardClassnames||A[e],...i.map(e=>r.classNames?.[e]),...a?Ee(a,n,r):[])},Oe=(e,t,n)=>{let r={};for(let[i,a]of Object.entries(e))r[i]=De(i,a,t,n);return r},ke=e=>Oe(xe,{},e),Ae=(e,t)=>De(e,xe[e],{},t),je=e=>Oe(Se,e,e),Me=(e,t,n)=>{let{classNames:r,suppressStandardClassnames:i,leadingClassNames:a=[],validationClassName:o}=n;return fe(...a,i||A[e],r?.[e],...Ee(t,n,n),o)},Ne=e=>Me(`rule`,Ce,e),Pe=e=>Me(`ruleGroup`,we,e),Fe=e=>Me(`queryBuilder`,Te,e),Ie=e=>{let t={},n=e=>{e.id&&t[e.id]},r=e=>{let i=[];if(e.rules.length===0)i.push(ne.empty);else if(!L(e)){let t=!1;for(let n=0;n<e.rules.length&&!t;n++)(n%2==0&&typeof e.rules[n]==`string`||n%2==1&&typeof e.rules[n]!=`string`||n%2==1&&typeof e.rules[n]==`string`&&!O.map(e=>e.name).includes(e.rules[n]))&&(t=!0);t&&i.push(ne.invalidIndependentCombinators)}L(e)&&!O.map(e=>e.name).includes(e.combinator)&&e.rules.length>1&&i.push(ne.invalidCombinator),e.id&&(t[e.id]=i.length>0?{valid:!1,reasons:i}:!0);for(let t of e.rules)typeof t==`string`||(I(t)?r(t):n(t))};return r(e),t},Le=Object.keys,Re=Object.entries,ze=e=>e===`__proto__`||e===`constructor`||e===`prototype`,Be=e=>F(e)&&`name`in e&&typeof e.name==`string`,Ve=e=>F(e)&&`value`in e&&typeof e.value==`string`;function B(e,t,n){if(typeof e==`string`)return{...t,name:e,value:e,label:n?.[e]??e};let r={},i=!!t;return Be(e)&&!Ve(e)?(r.value=e.name,i=!0):!Be(e)&&Ve(e)&&(r.name=e.value,i=!0),i?Object.assign({},t,e,r):e}function He(e,t,n){if(!Array.isArray(e))return[];let r=e;return Ye(r)?r.map(e=>({...e,options:e.options.map(e=>B(e,t,n))})):r.map(e=>B(e,t,n))}function Ue(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,B(n,t)]))}const We=e=>Ge(e),Ge=e=>{let t=new Set,n=[];for(let r of e)t.has(r.value??r.name)||(t.add(r.value??r.name),n.push(r));return e.length===n.length?e:n},Ke=e=>Array.isArray(e)&&e.length>0&&F(e[0])&&`options`in e[0]&&Array.isArray(e[0].options),qe=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(Be(n)||Ve(n))t=!0;else return!1;return t},Je=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(Be(n)&&Ve(n))t=!0;else return!1;return t},Ye=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(F(r)&&`options`in r&&(qe(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n},Xe=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(F(r)&&`options`in r&&(Je(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n};function V(e,t){return(Ye(e,{allowEmpty:!0})?e.flatMap(e=>e.options):e).find(e=>e.value===t||e.name===t)}function H(e){if(!Array.isArray(e)||e.length===0)return null;if(Ye(e,{allowEmpty:!0})){for(let t of e)if(t.options.length>0)return t.options[0].value??t.options[0].name;return null}return e[0].value??e[0].name}const Ze=e=>Ge(Ke(e)?e.flatMap(e=>e.options):e),Qe=e=>{let t=new Set,n=new Set,r=[];for(let i of e)if(!t.has(i.label)){t.add(i.label);let e=[];for(let t of i.options)n.has(t.value??t.name)||(n.add(t.value??t.name),e.push(B(t)));r.push({...i,options:e})}return r},$e=e=>Ye(e)?Qe(e):Ge(e.map(e=>B(e))),et=e=>{let{optionList:t,baseOption:n={},labelMap:r={},placeholder:{placeholderName:i=`~`,placeholderLabel:a=s,placeholderGroupLabel:o=s}={},autoSelectOption:c=!0}=e,l={id:i,name:i,value:i,label:a},u=t??[l],d,f=Array.isArray(u)?He(u,n,r):Le(Ue(u,n)).map(e=>({...u[e],name:e,value:e})).sort((e,t)=>e.label.localeCompare(t.label));d=Ye(f)?Qe(c?f:[{label:o,options:[l]},...f]):Ge(c?f:[l,...f]);let p={};if(!Array.isArray(u)){let e=Ue(u,n);p=c?e:{...e,[i]:l}}else if(Ye(d))for(let e of d)for(let t of e.options)p[t.value??t.name]=B(t,n);else for(let e of d)p[e.value??e.name]=B(e,n);return{defaultOption:l,optionList:d,optionsMap:p}},tt=(e,t,n)=>{let r=B(e),i=B(n);return r.value===i.value?!1:typeof r.comparator==`string`?r[r.comparator]===i[r.comparator]:r.comparator?.(i,t)??!1},nt=(e,t,n)=>{if(!e.comparator){let n=t=>(t.value??t.name)!==(e.value??e.name);return Ye(t)?t.map(e=>({...e,options:e.options.filter(e=>n(e))})):t.filter(e=>n(e))}return Ye(t)?t.map(t=>({...t,options:t.options.filter(t=>tt(e,n,t))})).filter(e=>e.options.length>0):t.filter(t=>tt(e,n,t))},rt=(e,t)=>t?.[e]??{name:e,value:e,label:e},it=(e,t,n,r)=>n.inputType??r(e,t,{fieldData:n}),at=e=>{let t=e?.arity;return typeof t==`string`&&t===`unary`||typeof t==`number`&&t<2},ot=(e,t,n)=>{let r=n(e.field,e.operator,{fieldData:t});return e.valueSource&&!V(r,e.valueSource)?[...r,{name:e.valueSource,value:e.valueSource,label:e.valueSource}]:r},st=e=>e&&e.length>0?e:null,ct=(e,t,n,r)=>e.valueSource===`field`?`select`:e.valueSource===`parameter`?n?P(e.operator)===`in`||P(e.operator)===`notin`?`multiselect`:`select`:`text`:r(e.field,e.operator,{fieldData:t}),lt=(e,t,n,r,i)=>{let a=e.valueSource===`field`?nt(t,n,e.operator):e.valueSource===`parameter`?r??[]:i(e.field,e.operator,{fieldData:t});return qe(a)||Ye(a)?He(a):a},ut=(e,t,n={},r=e.id??``)=>n[r]??(typeof t.validator==`function`?t.validator(e):null),dt=(e,t,n={})=>{let{fields:r,fieldMap:i,getInputType:a,getMatchModes:o,getOperators:s,getParameters:c,getValueEditorType:l,getValues:u,getValueSources:d,getSubQueryBuilderProps:f}=t,p=rt(e.field,i),m=p.inputType??a(e.field,e.operator,{fieldData:p}),h=o(e.field,{fieldData:p}),g=s(e.field,{fieldData:p}),_=V(g,e.operator),v=ot(e,p,d),y=st(c(e.field,e.operator,{fieldData:p}));return{fieldData:p,hideValueControls:at(_),inputType:m,matchModes:h,operatorObject:_,operators:g,parameters:y,validationResult:ut(e,p,n.validationMap,n.id),valueEditorType:ct(e,p,y,l),values:lt(e,p,r,y,u),valueSourceOptions:v,valueSources:v.map(({value:e})=>e),subQueryBuilderProps:f?.(e.field,{fieldData:p})??{}}},ft=(e,t)=>L(e)?e.combinator:H(t)??``,pt=(e,t,n={})=>{let r=R(e),i=ft(e,t),a=V(t,i);return{combinator:i,combinatorObject:a,combinators:t,combinatorBasedClassName:r?null:a?.className??``,independentCombinators:r,validationResult:(n.validationMap??{})[n.id??e.id??``]??null}},U=(t,{parseNumbers:n,bigIntOnOverflow:r}={})=>{if(!n||typeof t==`bigint`||typeof t==`number`)return t;if(n===`native`)return Number.parseFloat(t);let i=e(t,{allowTrailingInvalid:n===`enhanced`,bigIntOnOverflow:r,romanNumerals:!1,round:!1});return typeof i==`bigint`||!Number.isNaN(i)?i:t},mt=new Set([`between`,`notBetween`,`in`,`notIn`]),ht=e=>e===`between`||e===`notBetween`,gt=({skipHook:e,type:t,operator:n,value:r,inputType:i})=>!e&&t!==`multiselect`&&!mt.has(n)&&(Array.isArray(r)||i===`number`&&typeof r==`string`&&r.includes(`,`))?{reset:!0,value:N(r,{retainEmptyStrings:!0})[0]??``}:{reset:!1,value:r},_t=({value:e,index:t,valueAsArray:n,operator:r,values:i,listsAsArrays:a,parseNumberMethod:o})=>{let s=U(e,{parseNumbers:o}),c=t===0&&ht(r)&&(n.length<2||n[1]===void 0);if(n[t]===s&&!c)return a?n:le(n,`,`);let l=[...n];return l[t]=s,c&&(l[1]=H(i)??``),a?l:le(l,`,`)},vt=(e,t)=>{let n=U(e,{parseNumbers:t,bigIntOnOverflow:!0});try{return BigInt(n)}catch{return n}},yt=(e,t)=>e===`bigint`||t===`in`||t===`notIn`?`text`:e||`text`,bt=(e,{multiple:t,listsAsArrays:n}={})=>{if(!t)return e;let r=N(e);return n?r:le(r,`,`)},xt=(e,t)=>t?N(e).map(String):e,St=(e,t,n)=>{let r={};for(let i in e){if(ze(i))continue;let a=t[i];a!==!1&&(a&&i!==a?(ze(a)||(r[a]=e[i]),n||(r[i]=e[i])):r[i]=e[i])}return r};function W(e,t={}){let{ruleProcessor:n=e=>e,ruleGroupProcessor:r=e=>e,propertyMap:i={},combinatorMap:a={},operatorMap:o={},omitPath:s=!1,deleteRemappedProperties:c=!0}=t,l=e=>({...r(St({...e,...L(e)?{combinator:a[e.combinator]??e.combinator}:{}},i,c)),...i.rules===!1?null:{[i.rules??`rules`]:e.rules.map((t,r)=>{let u=s?null:{path:[...e.path,r]};return typeof t==`string`?a[t]??t:I(t)?l({...t,...u}):n(St({...t,...u,...`operator`in t?{operator:o[t.operator]??t.operator}:{}},i,c))})}});return l({...e,...s?null:{path:[]}})}const Ct=e=>F(e)&&typeof e.valid==`boolean`,G=(e,t,n)=>{if(e.muted)return!1;if(typeof t==`boolean`)return t;if(Ct(t))return t.valid;if(typeof n==`function`&&!I(e)){let t=n(e);if(typeof t==`boolean`)return t;if(Ct(t))return t.valid}return!0},wt=({parseNumbers:e,inputType:t})=>{if(typeof e==`string`){let[n,r]=e.split(`-`);return r===`limited`?t===`number`&&n:n}return e?`strict`:!1},Tt=e=>{switch(P(e)){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 e}},Et=(e=`||`)=>(...t)=>e.toUpperCase()===`CONCAT`?`CONCAT(${t.join(`, `)})`:t.join(` ${e} `),Dt=e=>{switch(e){case`contains`:case`doesnotcontain`:return[`%`,`%`];case`beginswith`:case`doesnotbeginwith`:return[``,`%`];case`endswith`:case`doesnotendwith`:return[`%`,``];default:return[``,``]}},Ot=(e,t,{concatOperator:n=`||`,quoteValuesWith:r,wrapValueWith:i=[``,``]}={})=>{let[a,o]=Dt(t),s=r||`'`,c=e=>`${i[0]}${s}${e}${s}${i[1]}`,l=[a&&c(a),e,o&&c(o)].filter(Boolean);return l.length>1?Et(n)(...l):e},kt={"=":`$eq`,"!=":`$ne`,"<":`$lt`,"<=":`$lte`,">":`$gt`,">=":`$gte`,in:`$in`,notin:`$nin`,notIn:`$nin`},At={"=":`equals`,"!=":`not`,"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`,in:`in`,notin:`notIn`},jt={and:`&&`,or:`||`},Mt={startsWith:(e,t)=>typeof e==`string`&&e.startsWith(t),endsWith:(e,t)=>typeof e==`string`&&e.endsWith(t)},Nt=(e,t)=>({...e,rules:e.rules.map(e=>{if(typeof e==`string`)return e;if(I(e))return Nt(e,t);let n=V(t.fields,e.field),r=wt({parseNumbers:t.parseNumbers,inputType:n?.inputType});if(Array.isArray(e.value))return{...e,value:e.value.map(e=>U(e,{parseNumbers:r}))};let i=N(e.value,{retainEmptyStrings:!0}).map(e=>U(e,{parseNumbers:r}));if(i.every(e=>typeof e==`number`)){if(i.length>1)return{...e,value:i};if(i.length===1)return{...e,value:i[0]}}return e})}),K=e=>typeof e==`string`&&e.length>0||typeof e==`number`&&!Number.isNaN(e)||typeof e!=`string`&&typeof e!=`number`,q=(e,t)=>!!t&&(typeof e==`number`||typeof e==`bigint`||typeof e==`string`&&pe.test(e)),Pt=e=>e.length>=3,Ft=(e=[``,``])=>Array.isArray(e)?e:typeof e==`string`?[e,e]:e??[``,``],It=(e,{quoteFieldNamesWith:t,fieldIdentifierSeparator:n})=>{let[r,i]=Ft(t);return typeof n==`string`&&n.length>0?le(ce(e,n).map(e=>`${r}${e}${i}`),n):`${r}${e}${i}`},Lt=[`S`,`V`,`O`],Rt=e=>{let t=[],n=new Set(Lt);for(let r of e.toUpperCase())if(n.has(r)&&(t.push(r),n.delete(r),n.size===0))break;for(let e of Lt)n.has(e)&&t.push(e);return t},zt=(e,t=`:`)=>{let n=`${e??``}`;return t&&n.startsWith(t)?n:`${t}${n}`},Bt=(e,t=`:`)=>{let n=`${e??``}`;return t&&n.startsWith(t)?n.slice(t.length):n},Vt={groupPrefix:``,groupPrefix_not_xor:`either zero or more than one of`,groupPrefix_xor:`exactly one of`,groupSuffix:`is true`,groupSuffix_not:`is not true`},Ht=(e,t,n)=>t.startsWith(e)&&n.every(e=>t.includes(`_${e}`)&&t.match(/_/g)?.length===n.length),Ut=(e,t,n=[])=>n.length===0?t[e]??Vt[e]??``:Object.entries(t).find(([t])=>Ht(e,t,n))?.[1]??Object.entries(Vt).find(([t])=>Ht(e,t,n))?.[1]??Vt[e]??``,J=e=>{let{mode:t,threshold:n}=e.match??{};if(!t)return null;if(!I(e.value))return!1;let r=P(t),i=r===`atleast`&&n===1?`some`:r===`atmost`&&n===0?`none`:r;return(i===`atleast`||i===`atmost`||i===`exactly`)&&(typeof n!=`number`||n<0)?!1:{mode:i,threshold:n}},Wt=`elem_alias`,Gt=(e=0)=>e>0?`${Wt}_${e}`:Wt,Kt=(e,t)=>typeof t==`bigint`?{$bigint:t.toString()}:t,qt=(e,t)=>F(t)&&Object.keys(t).length===1&&typeof t.$bigint==`string`?BigInt(t.$bigint):t,Jt=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=jt[r];continue}if(I(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(L(e)?` ${jt[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},Yt=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),Xt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),Zt=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r,preserveValueOrder:i}=t,{field:a,operator:o,value:s,valueSource:c}=e,l=c===`field`||c===`parameter`,u=P(o===`=`?`==`:o),d=typeof s==`number`||typeof s==`boolean`||typeof s==`bigint`||q(s,r),f=J(e);if(f===!1)return``;if(f){let{mode:n,threshold:r}=f,i=t.subqueryDepth??0,o=Gt(i),s=W(e.value,{ruleProcessor:e=>({...e,field:`${o}${e.field?`.${e.field}`:``}`})}),c=Jt(s,{...t,subqueryDepth:i+1});switch(n){case`all`:return`${a}.all(${o}, ${c})`;case`none`:case`some`:return`${n===`none`?`!`:``}${a}.exists(${o}, ${c})`;case`atleast`:case`atmost`:case`exactly`:{let e=`double(${a}.size())`,t=`${a}.filter(${o}, ${c}).size()`,i=n===`atleast`?`>=`:n===`atmost`?`<=`:`==`;return r>0&&r<1?`double(${t}) ${i} (${e} * ${r})`:`${t} ${i} ${r}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${a} ${u} ${l||d?M(s):`"${Xt(s,n)}"`}`;case`contains`:case`doesnotcontain`:return`${Yt(u)?`!`:``}${a}.contains(${l?M(s):`"${Xt(s,n)}"`})`;case`beginswith`:case`doesnotbeginwith`:return`${Yt(u)?`!`:``}${a}.startsWith(${l?M(s):`"${Xt(s,n)}"`})`;case`endswith`:case`doesnotendwith`:return`${Yt(u)?`!`:``}${a}.endsWith(${l?M(s):`"${Xt(s,n)}"`})`;case`null`:return`${a} == null`;case`notnull`:return`${a} != null`;case`in`:case`notin`:{let[e,t]=Yt(u)?[`!(`,`)`]:[``,``];return`${e}${a} in [${N(s).map(e=>l||q(e,r)?`${M(e)}`:`"${Xt(e,n)}"`).join(`, `)}]${t}`}case`between`:case`notbetween`:{let e=N(s);if(e.length>=2&&!me(e[0])&&!me(e[1])){let[t,o]=e,s=r!==!1,c=q(t,s)?U(t,{parseNumbers:s}):NaN,d=q(o,s)?U(o,{parseNumbers:s}):NaN,f=Number.isNaN(c)?l?`${t}`:`"${Xt(t,n)}"`:c,p=Number.isNaN(d)?l?`${o}`:`"${Xt(o,n)}"`:d;if(!i&&f===c&&p===d&&d<c){let e=d;p=c,f=e}return u===`between`?`(${a} >= ${f} && ${a} <= ${p})`:`(${a} < ${f} || ${a} > ${p})`}return``}}return``},Qt={$and:[{$expr:!0}]},$t=(e,t,n)=>{let{context:r,fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,{inExpressionContext:f}=r??{},p=(e,r)=>{if(!G(e,d[e.id??``]))return r?Qt:!1;let m=`$${P(e.combinator)}`,h=!1,g=e.rules.map(e=>{if(I(e)){let t=p(e);return t?(h=!0,t):!1}let[r,d]=u(e);if(!G(e,r,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return!1;let f=V(i,e.field);return l(e,{...t,parseNumbers:a(f?.inputType),fieldData:f},n)}).filter(Boolean),_=g.length>0?g.length===1&&!h?g[0]:{[m]:g}:Qt;return e.not?f?{$not:_}:{$nor:[_]}:_};return p(z(e),!0)},en=(e,t,n=!1)=>q(e,n||typeof e==`bigint`)?Number(U(e,{parseNumbers:`strict`})):t,tn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s,context:c}=t,l=a===`field`,{avoidFieldsAsKeys:u}=c??{},d=J(e);if(d===!1)return;if(d){let{mode:e,threshold:r}=d,a={$size:{$ifNull:[`$${n}`,[]]}},o=$t(W(i,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),{...t,ruleProcessor:tn,context:{...t.context,avoidFieldsAsKeys:!1}}),s=$t(W(i,{ruleProcessor:e=>({...e,field:e.field?`$item.${e.field}`:`$item`})}),{...t,ruleProcessor:tn,context:{...t.context,avoidFieldsAsKeys:!0,inExpressionContext:!0}}),c={$size:{$ifNull:[{$filter:{input:`$${n}`,as:`item`,cond:{$and:[s]}}},[]]}};switch(e){case`all`:return{$expr:{$eq:[c,a]}};case`none`:return{$nor:[o]};case`some`:return o;case`atleast`:case`atmost`:case`exactly`:{let t=e===`atleast`?kt[`>=`]:e===`atmost`?kt[`<=`]:kt[`=`];return r>0&&r<1?{$expr:{[t]:[c,{$multiply:[a,r]}]}}:{$expr:{[t]:[c,r]}}}}}if(r===`=`&&!l)return u?{$eq:[`$${n}`,en(i,i,o)]}:{[n]:en(i,i,o)};let f=P(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:{let e=kt[f];return l?{[e]:[`$${n}`,`$${i}`]}:u?{$and:[{$ne:[`$${n}`,null]},{[e]:[`$${n}`,en(i,i,o)]}]}:{[n]:{[e]:en(i,i,o)}}}case`contains`:return l?{$where:`this.${n}.includes(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:i}}:{[n]:{$regex:i}};case`beginswith`:return l?{$where:`this.${n}.startsWith(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:`^${i}`}}:{[n]:{$regex:`^${i}`}};case`endswith`:return l?{$where:`this.${n}.endsWith(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:`${i}$`}}:{[n]:{$regex:`${i}$`}};case`doesnotcontain`:return l?{$where:`!this.${n}.includes(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:i}}}:{[n]:{$not:{$regex:i}}};case`doesnotbeginwith`:return l?{$where:`!this.${n}.startsWith(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:`^${i}`}}}:{[n]:{$not:{$regex:`^${i}`}}};case`doesnotendwith`:return l?{$where:`!this.${n}.endsWith(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:`${i}$`}}}:{[n]:{$not:{$regex:`${i}$`}}};case`null`:return u?{$eq:[`$${n}`,null]}:{[n]:null};case`notnull`:return u?{$ne:[`$${n}`,null]}:{[n]:{$ne:null}};case`in`:case`notin`:{let e=N(i);return l?{$where:`${f===`notin`?`!`:``}[${e.map(e=>`this.${e}`).join(`,`)}].includes(this.${n})`}:u?f===`notin`?{$not:{[kt.in]:[`$${n}`,e.map(e=>en(e,e,o))]}}:{[kt[f]]:[`$${n}`,e.map(e=>en(e,e,o))]}:{[n]:{[kt[f]]:e.map(e=>en(e,e,o))}}}case`between`:case`notbetween`:{let e=N(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=en(t,NaN,!0),a=en(r,NaN,!0),o=l||Number.isNaN(i)?t:i,c=l||Number.isNaN(a)?r:a;if(!s&&o===i&&c===a&&a<i){let e=a;c=i,o=e}return f===`between`?l?{$gte:[`$${n}`,`$${o}`],$lte:[`$${n}`,`$${c}`]}:u?{$and:[{$gte:[`$${n}`,o]},{$lte:[`$${n}`,c]}]}:{[n]:{$gte:o,$lte:c}}:l?{$or:[{$lt:[`$${n}`,`$${o}`]},{$gt:[`$${n}`,`$${c}`]}]}:u?{$or:[{$lt:[`$${n}`,o]},{$gt:[`$${n}`,c]}]}:{$or:[{[n]:{$lt:o}},{[n]:{$gt:c}}]}}return``}}return``},nn=(e,t)=>{let n=tn(e,t);return n?JSON.stringify(n):``},rn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(I(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(L(e)?` ${e.combinator} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},an=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),on=(e,t)=>t?`!(${e})`:e,sn=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),cn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c}=t,l=a===`field`||a===`parameter`,u=P(r===`=`?`==`:r),d=typeof i==`number`||typeof i==`boolean`||typeof i==`bigint`||q(i,s),f=J(e);if(f===!1)return``;if(f){let{mode:r,threshold:i}=f,a=rn(W(e.value,{ruleProcessor:e=>({...e,field:e.field||`#this`})}),t),o=`${n}.size()`,s=`${n}.?[${a}].size()`;switch(r){case`all`:return`${s} == ${o}`;case`none`:return`${s} == 0`;case`some`:return`${s} >= 1`;case`atleast`:case`atmost`:case`exactly`:{let e=r===`atleast`?`>=`:r===`atmost`?`<=`:`==`;return i>0&&i<1?`${s} ${e} (${o} * ${i})`:`${s} ${e} ${i}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${n} ${u} ${l||d?M(i):`'${sn(i,o)}'`}`;case`contains`:case`doesnotcontain`:{let e=l?`'.*'.concat(${M(i)}).concat('.*')`:`'.*${sn(i,o)}.*'`;return on(`${n} matches ${e}`,an(u))}case`beginswith`:case`doesnotbeginwith`:{let e=l?`'^'.concat(${M(i)}).concat('.*')`:`'${typeof i==`string`&&!i.startsWith(`^`)||d?`^`:``}${sn(i,o)}.*'`;return on(`${n} matches ${e}`,an(u))}case`endswith`:case`doesnotendwith`:{let e=l?`'.*'.concat(${M(i)}).concat('$')`:`'.*${sn(i,o)}${typeof i==`string`&&!i.endsWith(`$`)||d?`$`:``}'`;return on(`${n} matches ${e}`,an(u))}case`null`:return`${n} == null`;case`notnull`:return`${n} != null`;case`in`:case`notin`:{let e=an(u)?`!`:``,t=N(i);return t.length>0?`${e}(${t.map(e=>`${n} == ${l||q(e,s)?`${M(e)}`:`'${sn(e,o)}'`}`).join(` or `)})`:``}case`between`:case`notbetween`:{let e=N(i);if(e.length>=2&&!me(e[0])&&!me(e[1])){let[t,r]=e,i=s!==!1,a=q(t,i)?U(t,{parseNumbers:i}):NaN,d=q(r,i)?U(r,{parseNumbers:i}):NaN,f=Number.isNaN(a)?l?`${t}`:`'${sn(t,o)}'`:a,p=Number.isNaN(d)?l?`${r}`:`'${sn(r,o)}'`:d;if(!c&&f===a&&p===d&&d<a){let e=d;p=a,f=e}return u===`between`?`(${n} >= ${f} and ${n} <= ${p})`:`(${n} < ${f} or ${n} > ${p})`}return``}}return``},ln=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,un=({operator:e,value:t,valueSource:n},{escapeQuotes:r,parseNumbers:i,preserveValueOrder:a,quoteFieldNamesWith:o,quoteValuesWith:s,concatOperator:c=`||`,fieldIdentifierSeparator:l,paramPrefix:u,wrapValueWith:d=[``,``],translations:f}={})=>{if(n===`parameter`){let n=P(e);if(n===`between`||n===`notbetween`){let e=N(t,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return``;let[n,r]=e;return[zt(n,u),zt(r,u)].join(` ${f?.betweenAnd??f?.and??`and`} `)}if(n===`in`||n===`notin`){let e=N(t);return e.length===0?``:`(${e.map(e=>zt(e,u)).join(`, `)})`}let r=zt(t,u);switch(n){case`contains`:case`doesnotcontain`:case`beginswith`:case`doesnotbeginwith`:case`endswith`:case`doesnotendwith`:return Ot(r,n,{concatOperator:c,quoteValuesWith:s,wrapValueWith:d})}return r}let p=n===`field`,m=P(e),h=s||`'`,g=e=>`${d[0]}${h}${e}${h}${d[1]}`,_=e=>ln(e,h,r),v=e=>g(_(e)),y=e=>It(e,{quoteFieldNamesWith:o,fieldIdentifierSeparator:l}),b={concatOperator:c,quoteValuesWith:s,wrapValueWith:d};switch(m){case`null`:case`notnull`:return``;case`in`:case`notin`:{let e=N(t);return e.length>0?`(${e.map(e=>p?y(e):q(e,i)?`${M(e)}`:`${v(e)}`).join(`, `)})`:``}case`between`:case`notbetween`:{let e=N(t,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return``;let[n,r]=e,o=q(n,i)?U(n,{parseNumbers:`strict`}):NaN,s=q(r,i)?U(r,{parseNumbers:`strict`}):NaN,c=Number.isNaN(o)?p?`${n}`:n:o,l=Number.isNaN(s)?p?`${r}`:r:s,u=[c,l];return!a&&c===o&&l===s&&s<o&&(u[0]=s,u[1]=o),(p?u.map(e=>y(e)):u.every(e=>q(e,i))?u.map(e=>U(e,{parseNumbers:`strict`})):u.map(e=>v(e))).join(` ${f?.betweenAnd??f?.and??`and`} `)}case`contains`:case`doesnotcontain`:return p?Ot(y(t),m,b):g(`%${_(t)}%`);case`beginswith`:case`doesnotbeginwith`:return p?Ot(y(t),m,b):g(`${_(t)}%`);case`endswith`:case`doesnotendwith`:return p?Ot(y(t),m,b):g(`%${_(t)}`)}return typeof t==`boolean`?t?`TRUE`:`FALSE`:p?y(t):q(t,i)?`${M(t)}`:`${v(t)}`},dn={and:`AND`,or:`OR`},fn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=dn[r];continue}if(I(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(L(e)?` ${dn[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`NOT `:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},pn=(e,t,n)=>((n,r)=>{let{fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,validateRule:l,validationMap:u,ruleProcessor:d}=t;if(!n||!r)return;let{and:f,not:p,or:m}=r,h=(e,g)=>{if(!G(e,u[e.id??``]))return;let _=e.rules.map(e=>{if(I(e))return h(e);let[u,f]=l(e);if(!G(e,u,f)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return;let p=V(i,e.field);return d(e,{...t,parseNumbers:a(p?.inputType),fieldData:p,context:{...t.context,columns:n,drizzleOperators:r}})}).filter(Boolean);if(_.length===0)return;let v=e.combinator===`or`?m(..._):f(..._);return e.not?p(v):v};return h(z(e),!0)}),mn=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=e=>{if(!G(e,l[e.id??``]))return!1;let d=e.rules.map(e=>{if(I(e))return u(e);let[l,d]=c(e);if(!G(e,l,d)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return!1;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);return d.length!==0&&{bool:e.not?{must_not:/^or$/i.test(e.combinator)?{bool:{should:d}}:d}:{[/^or$/i.test(e.combinator)?`should`:`must`]:d}}},d=u(z(e));return d===!1?{}:d},hn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=e=>{if(typeof e==`string`||I(e))return;let[r,u]=l(e);if(!G(e,r,u)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return;let d=V(n,e.field);return c(e,{...t,parseNumbers:i(d?.inputType),escapeQuotes:(e.valueSource??`value`)===`value`,fieldData:d})},f=e=>{if(!G(e,u[e.id??``]))return``;let t=[];for(let n of e.rules){if(typeof n==`string`)continue;if(I(n)){let e=f(n);e&&t.push(e);continue}let e=d(n);e&&t.push(e)}if(t.length===0)return``;let n=e.combinator??`and`,r=e.not?`not`:n;return t.length===1&&!e.not?t[0]:`.${r}(${t.map(e=>e.startsWith(`.`)?`__${e}`:e).join(`, `)})`};if(!G(e,u[e.id??``]))return r;let p=[];for(let t of e.rules){if(typeof t==`string`)continue;if(I(t)){let e=f(t);e&&p.push(e);continue}let e=d(t);e&&p.push(e)}return p.length===0?r:p.join(``)},gn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(I(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(L(e)?` ${e.combinator} `:` `),[_,v]=e.not||!f?[`${e.not?`$not`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},_n=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=z(e),d=(e,u)=>{if(!G(e,l[e.id??``]))return!1;let f=e.rules.map(e=>{if(I(e))return d(e);let[l,u]=c(e);if(!G(e,l,u)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return!1;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);if(f.length===0)return!1;let p={[e.combinator]:f};return e.not?{"!":p}:p};return d(u,!0)},vn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=e.rules.map(e=>{if(I(e))return d(e);let[r,u]=l(e);if(!G(e,r,u)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return``;let f=V(n,e.field);return c(e,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(e.valueSource??`value`)===`value`,fieldData:f})}).filter(Boolean),m=p.join(``),[h,g]=e.not?[`(!`,`)`]:[``,``],[_,v]=p.length>1?[`${h}(${e.combinator===`or`?`|`:`&`}`,`)${g}`]:[h,g];return m?`${_}${m}${v}`:r};return d(z(e),!0)},yn=e=>e.startsWith(`{`)&&e.endsWith(`}`),bn=(e,t,n)=>{let{fields:r,fallbackExpression:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,f=(e,p)=>{if(!G(e,d[e.id??``]))return p?i:``;let m=`"$${P(e.combinator)}"`,h=!1,g=e.rules.map(e=>{if(I(e)){let t=f(e);return t?(h=!0,yn(t)?t:`{${t}}`):``}let[i,d]=u(e);if(!G(e,i,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return``;let p=V(r,e.field);return l(e,{...t,parseNumbers:a(p?.inputType),fieldData:p},n)}).filter(Boolean),_=g.length>0?g.length===1&&!h?g[0]:`${m}:[${g.join(`,`)}]`:i;return e.not?`"$nor":[${yn(_)?_:`{${_}}`}]`:_},p=f(z(e),!0);return yn(p)?p:`{${p}}`},xn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,translations:l,validateRule:u,validationMap:d}=t,f=(e,p)=>{if(!G(e,d[e.id??``]))return p?r:``;let m=R(e)&&e.rules.some(e=>typeof e==`string`&&P(e)===`xor`)?z(e):e,h=[],g=``,_=!0;for(let e of m.rules){if(typeof e==`string`){g=`${l.ruleSeparator??`, `}${l[e]??e} `;continue}if(I(e)){let t=f(e,m.rules.length===1&&!(m.not||/^xor$/i.test(m.combinator??``)));t&&(!_&&g&&(h.push(g),g=``),_=!1,h.push(t));continue}let[r,d]=u(e);if(!G(e,r,d)||e.field===a||e.operator===o||s!==void 0&&e.value===s)continue;let p=(e.valueSource??`value`)===`value`,v=V(n,e.field),y=c(e,{...t,parseNumbers:i(v?.inputType),escapeQuotes:p,fieldData:v});y&&(!_&&g&&(h.push(g),g=``),_=!1,h.push(y))}if(h.length===0)return r;let v=P(m.combinator??``)===`xor`,y=v?m.combinator.slice(1):m.combinator,b=m.not||!p||v&&h.length>1,[x,S]=[`groupPrefix`,`groupSuffix`].map(e=>m.not?v?Ut(e,l,[`not`,`xor`]):Ut(e,l,[`not`]):v?Ut(e,l,[`xor`]):Ut(e,l)),C=b?`${x} (`.trim():``,w=b?`) ${S}`.trim():``,T=l.ruleSeparator??`, `;return`${C}${h.join(L(m)?`${T}${l[y]??y} `:``)}${w}`};return f(e,!0)},Sn=(e,t)=>{let{format:n,fields:r,fallbackExpression:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,f=n===`parameterized`,p=[],m={},h=new Map,g=e=>{h.has(e)||h.set(e,new Set);let t=`${e}_${h.get(e).size+1}`;return h.get(e).add(t),t},_=e=>{let[i,d]=u(e);if(!G(e,i,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return``;let f=V(r,e.field),_=Object.fromEntries([...h.entries()].map(([e,t])=>[e,[...t]])),v=l(e,{...t,parseNumbers:a(f?.inputType),getNextNamedParam:g,fieldParamNames:_,fieldData:f},{processedParams:p});if(!F(v))return``;let{sql:y,params:b}=v;if(typeof y!=`string`||!y)return``;if(n===`parameterized`&&Array.isArray(b))p.push(...b);else if(n===`parameterized_named`&&F(b)){Object.assign(m,b);for(let t of Object.keys(b))h.get(e.field)?.add(t)}return y},v=(e,t)=>{if(!G(e,d[e.id??``]))return t?i:``;let n=[],r=``,a=!0;for(let t of e.rules){if(typeof t==`string`){r=t;continue}if(I(t)){let i=v(t,e.rules.length===1);i&&(!a&&r&&(n.push(r),r=``),a=!1,n.push(i));continue}let i=_(t);i&&(!a&&r&&(n.push(r),r=``),a=!1,n.push(i))}return n.length===0?i:`${e.not?`NOT `:``}(${n.join(L(e)?` ${e.combinator} `:` `)})`};return f?{sql:v(e,!0),params:p}:{sql:v(e,!0),params:m}},Cn={},wn=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=(e,d)=>{if(!G(e,l[e.id??``]))return d?Cn:void 0;let f=e.combinator.toUpperCase(),p=!1,m=e.rules.map(e=>{if(I(e)){let t=u(e);return t?(p=!0,t):void 0}let[l,d]=c(e);if(!G(e,l,d)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);return m.length>0?m.length===1&&!p?m[0]:{[f]:m}:Cn},d=u(z(e),!0);return e.not?{NOT:d}:d},Tn=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l,context:u={}}=t,{sequelizeOperators:d}=u;if(!d)return;let f=(e,u)=>{if(!G(e,l[e.id??``]))return;let p=e.combinator.toUpperCase(),m=!1,h=e.rules.map(e=>{if(I(e)){let t=f(e);return t?(m=!0,t):void 0}let[l,u]=c(e);if(!G(e,l,u)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return;let d=V(n,e.field);return s(e,{...t,parseNumbers:r(d?.inputType),fieldData:d})}).filter(Boolean);if(h.length===0)return;let g=h.length===1&&!m?h[0]:{[P(p)===`or`?d.or:d.and]:h};return e.not?{[d.not]:g}:g};return f(z(e),!0)},En=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=jt[r];continue}if(I(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(L(e)?` ${jt[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},Dn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(I(r)){let t=d(r,e.rules.length===1);t&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(t));continue}let[u,f]=l(r);if(!G(r,u,f)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let g=(r.valueSource??`value`)===`value`,_=V(n,r.field),v=c(r,{...t,parseNumbers:i(_?.inputType),escapeQuotes:g,fieldData:_});v&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(v))}return p.length===0?r:`${e.not?`NOT `:``}(${p.join(L(e)?` ${e.combinator} `:` `)})`};return d(e,!0)},On=(e,t)=>n=>{let{fields:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,validateRule:c,validationMap:l,context:u={},ruleProcessor:d}=t,f=u.tanStackDbOperators;if(!f)return;let{and:p,eq:m,not:h,or:g}=f,_=m(1,1),v=Object.keys(n);if(v.length===0)return _;let y=e=>{if(!G(e,l[e.id??``]))return;let f=e.rules.map(e=>{if(I(e))return y(e);let[l,f]=c(e);if(!G(e,l,f)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return;let p=V(r,e.field);return d(e,{...t,parseNumbers:i(p?.inputType),fieldData:p,context:{...u,_tanstackDbRefs:n,_tanstackDbPrimaryRef:v[0]}})}).filter(Boolean);if(f.length===0)return _;let m=f.length===1?f[0]:e.combinator===`or`?g(...f):p(...f);return e.not?h(m):m};return y(z(e))??_},kn=new Set([`number`,`range`,`bigint`]),An=/^\d{4}-\d{2}-\d{2}$/,jn=/^\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/,Mn=/^\d{4}-\d{2}$/,Nn=/^\d{4}-W\d{2}$/,Pn=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,Fn=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,In=(e,t,n)=>{let r=new Date(Date.UTC(e,t-1,n));return r.getUTCFullYear()===e&&r.getUTCMonth()===t-1&&r.getUTCDate()===n},Ln=e=>{let t=e.split(`:`),n=Number(t[0]),r=Number(t[1]),i=t[2]?Number.parseFloat(t[2]):0;return n>=0&&n<=23&&r>=0&&r<=59&&i>=0&&i<60},Rn=(e,t)=>{if(e!=null&&e!==``){if(kn.has(t)){let t=typeof e==`string`?e.trim():e;return typeof t==`number`||typeof t==`bigint`||typeof t==`string`&&pe.test(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`date`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!An.test(t))return`VALUE_TYPE_MISMATCH`;let[n,r,i]=t.split(`-`).map(Number);return In(n,r,i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`datetime-local`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim().replace(/(Z|[+-]\d{2}:?\d{2}|[+-]\d{2})$/,``),n=t.indexOf(`T`);if(n===-1)return`VALUE_TYPE_MISMATCH`;let r=t.slice(0,n),i=t.slice(n+1);if(!An.test(r)||!jn.test(i))return`VALUE_TYPE_MISMATCH`;let[a,o,s]=r.split(`-`).map(Number);return In(a,o,s)&&Ln(i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`time`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();return jn.test(t)&&Ln(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`month`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Mn.test(t))return`VALUE_TYPE_MISMATCH`;let n=Number(t.slice(5));return n>=1&&n<=12?void 0:`VALUE_TYPE_MISMATCH`}if(t===`week`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Nn.test(t))return`VALUE_TYPE_MISMATCH`;let n=Number(t.slice(6));return n>=1&&n<=53?void 0:`VALUE_TYPE_MISMATCH`}if(t===`color`)return typeof e==`string`&&Pn.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`;if(t===`url`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;try{new URL(e.trim());return}catch{return`VALUE_TYPE_MISMATCH`}}if(t===`email`)return typeof e==`string`&&Fn.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`}},zn=(e,t)=>{let{fields:n,placeholderFieldName:r,placeholderOperatorName:i,placeholderValueName:a,validateRule:o,validationMap:s}=t,c=[],l={totalRules:0,totalGroups:0,validRules:0,invalidRules:0,validGroups:0,invalidGroups:0},u={},d=Ze(n),f=new Map;for(let e of d)f.set(e.name,e);let p=f.size>0,m=(e,t)=>{l.totalGroups++;let n=t.length,d=s[e.id??``],h=G(e,d),g=Vn(d);e.muted?c.push({id:e.id??``,path:t,code:`MUTED`,message:`Group is muted`,source:`muted`}):!h&&d!==void 0&&c.push({id:e.id??``,path:t,code:`CUSTOM_VALIDATOR`,message:g?`Invalid: ${g.join(`, `)}`:`Group failed validation`,source:`query-validator`});let _=!0,v=0,y=[];for(let n of e.rules){if(typeof n==`string`){y.push(n),v++;continue}let e=[...t,v];if(I(n)){let t=m(n,e);t.valid||(_=!1),y.push(t),v++;continue}l.totalRules++;let s=e.length,[d,h]=o(n),g=G(n,d,h)&&n.field!==r&&n.operator!==i&&(a===void 0||n.value!==a);Bn(n,e,d,h,g,c,r,i,a,p,f),g?l.validRules++:(_=!1,l.invalidRules++);let b=n.field;u[b]||(u[b]={ruleCount:0,invalidCount:0}),u[b].ruleCount++,g||u[b].invalidCount++;let x=Vn(d)??Hn(n,h),S={...n,valid:g,...x?{reasons:x}:null,path:e,level:s};y.push(S),v++}let b=h&&_;return b?l.validGroups++:l.invalidGroups++,L(e),{...e,valid:b,...g?{reasons:g}:null,path:t,level:n,rules:y}},h=m(e,[]);if(p){let e=new Set(Object.keys(u));for(let[t]of f)e.has(t)||c.push({id:``,path:[],code:`UNREFERENCED_FIELD`,message:`Field "${t}" is defined in the fields config but not used in the query`,source:`field-check`})}return{query:h,diagnostics:c,stats:l,fieldSummary:u}},Bn=(e,t,n,r,i,a,o,s,c,l,u)=>{let d=e.id??``;if(e.muted&&a.push({id:d,path:t,code:`MUTED`,message:`Rule is muted`,source:`muted`}),e.field===o&&a.push({id:d,path:t,code:`PLACEHOLDER_FIELD`,message:`Rule has a placeholder field`,source:`placeholder`}),e.operator===s&&a.push({id:d,path:t,code:`PLACEHOLDER_OPERATOR`,message:`Rule has a placeholder operator`,source:`placeholder`}),c!==void 0&&e.value===c&&a.push({id:d,path:t,code:`PLACEHOLDER_VALUE`,message:`Rule has a placeholder value`,source:`placeholder`}),!e.muted&&e.field!==o&&e.operator!==s&&(c===void 0||e.value!==c)){if(typeof n==`boolean`&&!n)a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:`Rule failed validation`,source:`query-validator`});else if(typeof n!=`boolean`&&Ct(n)&&!n.valid){let e=n.reasons;a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:e?`Invalid: ${e.join(`, `)}`:`Rule failed validation`,source:`query-validator`})}else if(!i&&typeof r==`function`){let n=r(e),i=typeof n!=`boolean`&&Ct(n)&&!n.valid?n.reasons:void 0;a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:i?`Invalid: ${i.join(`, `)}`:`Rule failed field validation`,source:`field-validator`})}}if(l&&!u.has(e.field)&&e.field!==o&&a.push({id:d,path:t,code:`UNDEFINED_FIELD`,message:`Field "${e.field}" is not defined in the fields config`,source:`field-check`}),l){let n=u.get(e.field);if(n?.inputType){let r=Rn(e.value,n.inputType);r&&a.push({id:d,path:t,code:r,message:`Value "${e.value}" is not compatible with input type "${n.inputType}"`,source:`type-check`})}}},Vn=e=>{if(typeof e!=`boolean`&&Ct(e)&&!e.valid&&e.reasons)return e.reasons},Hn=(e,t)=>{if(typeof t==`function`){let n=t(e);if(typeof n!=`boolean`&&Ct(n)&&!n.valid&&n.reasons)return n.reasons}},Un=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),Wn=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=e=>e==null?`null`:typeof e==`boolean`||typeof e==`bigint`?String(e):c||typeof e==`number`||q(e,r)?M(e):`'${Un(e,n)}'`;switch(l){case`=`:return`${i} = ${u(o)}`;case`!=`:case`<>`:return`${i} <> ${u(o)}`;case`<`:case`>`:case`<=`:case`>=`:return`${i} ${l} ${u(o)}`;case`contains`:return`${i} CONTAINS ${u(o)}`;case`doesnotcontain`:return`NOT ${i} CONTAINS ${u(o)}`;case`beginswith`:return`${i} STARTS WITH ${u(o)}`;case`doesnotbeginwith`:return`NOT ${i} STARTS WITH ${u(o)}`;case`endswith`:return`${i} ENDS WITH ${u(o)}`;case`doesnotendwith`:return`NOT ${i} ENDS WITH ${u(o)}`;case`null`:return`${i} IS NULL`;case`notnull`:return`${i} IS NOT NULL`;case`in`:case`notin`:{let e=N(o).map(u);return e.length?`${l===`notin`?`NOT `:``}${i} IN [${e.join(`, `)}]`:``}case`between`:case`notbetween`:{let e=N(o);if(e.length<2)return``;let[t,n]=[u(e[0]),u(e[1])],r=`${t} <= ${i} AND ${i} <= ${n}`;return l===`notbetween`?`NOT (${r})`:r}default:return`${i} ${a} ${u(o)}`}},Gn=(e,t)=>{let n=t??{},{parseNumbers:r,preserveValueOrder:i,context:a={}}=n,{columns:o,drizzleOperators:s,useRawFields:c}=a;if(!o||!s)return;let{between:l,eq:u,gt:d,gte:f,inArray:p,isNotNull:m,isNull:h,like:g,lt:_,lte:v,ne:y,notBetween:b,notInArray:x,notLike:S,sql:C}=s,{field:w,operator:T,value:E,valueSource:D}=e,O=c&&/^[a-z_][a-z0-9_.]*$/i.test(w)?C.raw(w):o[w],ee=P(T),k=D===`field`,A=e=>k?o[e]:e,te=e=>k||!r?A(e):q(e,!0)?U(e,{parseNumbers:!0}):e;if(!O)return;let ne=J(e);if(ne!==!1){if(ne){if(n.preset!==`postgresql`)return;let{mode:t,threshold:r}=ne,i=n.subqueryDepth??0,a=Gt(i),o=W(e.value,{ruleProcessor:e=>({...e,field:a})}),c=pn(o,{...n,context:{...n.context,useRawFields:!0},subqueryDepth:i+1});switch(t){case`all`:return C`(select count(*) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) = array_length(${O}, 1)`;case`none`:return C`not exists (select 1 from unnest(${O}) as ${C.raw(a)} where ${c({},s)})`;case`some`:return C`exists (select 1 from unnest(${O}) as ${C.raw(a)} where ${c({},s)})`;case`atleast`:case`atmost`:case`exactly`:{let e=t===`atleast`?`>=`:t===`atmost`?`<=`:`=`;return r>0&&r<1?C`(select count(*)::float / array_length(${O}, 1) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) ${C.raw(`${e} ${r}`)}`:C`(select count(*) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) ${C.raw(`${e} ${r}`)}`}}}switch(ee){case`=`:return u(O,te(E));case`!=`:return y(O,te(E));case`>`:return d(O,te(E));case`<`:return _(O,te(E));case`>=`:return f(O,te(E));case`<=`:return v(O,te(E));case`beginswith`:case`doesnotbeginwith`:return(ee===`doesnotbeginwith`?S:g)(O,k?C`${A(E)} || '%'`:`${E}%`);case`contains`:case`doesnotcontain`:return(ee===`doesnotcontain`?S:g)(O,k?C`'%' || ${A(E)} || '%'`:`%${E}%`);case`endswith`:case`doesnotendwith`:return(ee===`doesnotendwith`?S:g)(O,k?C`'%' || ${A(E)}`:`%${E}`);case`null`:return h(O);case`notnull`:return m(O);case`in`:case`notin`:{let e=N(E).map(e=>te(e));return ee===`notin`?x(O,e):p(O,e)}case`between`:case`notbetween`:{let e=N(E);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,n]=e,a=r!==!1;if(!k&&q(t,a)&&q(n,a)){let e=U(t,{parseNumbers:a}),r=U(n,{parseNumbers:a});if(!i&&r<e){let i=r;n=e,t=i}else t=e,n=r}else k&&(t=A(t),n=A(n));return ee===`notbetween`?b(O,t,n):l(O,t,n)}return}default:return}}},Kn={"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`},qn=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{bool:{must_not:t}}:t,Jn=e=>e?.replace(/('|\\)/g,`\\$1`),Yn={beginswith:`startsWith`,doesnotbeginwith:`startsWith`,doesnotcontain:`contains`,doesnotendwith:`endsWith`,endswith:`endsWith`},Xn=(e,t,n)=>{let r=`doc['${e}'].value.${Yn[t]??t}(doc['${n}'].value)`;return t.startsWith(`d`)?`!${r}`:r},Zn=(e,t)=>typeof e==`boolean`?e:q(e,t)?U(e,{parseNumbers:t}):e,Qn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t,c=P(r),l=J(e);if(l===!1)return!1;if(l){let{mode:r}=l,i=mn(W(e.value,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),t);if(Object.keys(i).length===0)return!1;switch(r){case`some`:return{nested:{path:n,query:i}};case`none`:return{bool:{must_not:{nested:{path:n,query:i}}}};case`all`:case`atleast`:case`atmost`:case`exactly`:return!1}}if(a===`field`){if(N(i).some(e=>typeof e!=`string`))return!1;let e=Jn(n);switch(c){case`=`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:{let t=c===`=`?`==`:c,n=Jn(i);return n?{bool:{filter:{script:{script:`doc['${e}'].value ${t} doc['${n}'].value`}}}}:!1}case`in`:case`notin`:{let t=N(i);if(t.length>0){let n=t.map(t=>({bool:{filter:{script:{script:`doc['${e}'].value == doc['${t}'].value`}}}}));return{bool:c===`in`?{should:n}:{must_not:n}}}return!1}case`between`:case`notbetween`:{let t=N(i);if(t.length>=2&&t[0]&&t[1]){let n=`doc['${e}'].value >= doc['${t[0]}'].value && doc['${e}'].value <= doc['${t[1]}'].value`;return{bool:{filter:{script:{script:c===`notbetween`?`!(${n})`:n}}}}}return!1}case`contains`:case`doesnotcontain`:case`beginswith`:case`doesnotbeginwith`:case`endswith`:case`doesnotendwith`:{let t=Jn(i);return t?{bool:{filter:{script:{script:Xn(e,c,t)}}}}:!1}}}switch(c){case`<`:case`<=`:case`>`:case`>=`:return{range:{[n]:{[Kn[c]]:Zn(i,o)}}};case`=`:return{term:{[n]:Zn(i,o)}};case`!=`:return{bool:{must_not:{term:{[n]:Zn(i,o)}}}};case`null`:return{bool:{must_not:{exists:{field:n}}}};case`notnull`:return{exists:{field:n}};case`in`:case`notin`:{let e=N(i).map(e=>Zn(e,o));if(e.length>0){let t=e.map(e=>({term:{[n]:Zn(e,o)}}));return{bool:c===`in`?{should:t}:{must_not:t}}}return!1}case`between`:case`notbetween`:{let e=N(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=o!==!1;if(q(t,i)&&q(r,i)){let e=U(t,{parseNumbers:i}),n=U(r,{parseNumbers:i});if(!s&&n<e){let i=n;r=e,t=i}else t=e,r=n}return qn(c,{range:{[n]:{gte:t,lte:r}}})}return!1}case`contains`:case`doesnotcontain`:return qn(c,{regexp:{[n]:{value:`.*${i}.*`}}});case`beginswith`:case`doesnotbeginwith`:return qn(c,{regexp:{[n]:{value:`${i}.*`}}});case`endswith`:case`doesnotendwith`:return qn(c,{regexp:{[n]:{value:`.*${i}`}}})}return!1},$n=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),er=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=i.includes(`.`)?i.split(`.`).pop():i,d=e=>e==null?`null`:typeof e==`boolean`||typeof e==`bigint`?String(e):c||typeof e==`number`||q(e,r)?M(e):`'${$n(e,n)}'`;switch(l){case`=`:return`.has('${u}', ${d(o)})`;case`!=`:case`<>`:return`.has('${u}', neq(${d(o)}))`;case`<`:return`.has('${u}', lt(${d(o)}))`;case`>`:return`.has('${u}', gt(${d(o)}))`;case`<=`:return`.has('${u}', lte(${d(o)}))`;case`>=`:return`.has('${u}', gte(${d(o)}))`;case`contains`:return`.has('${u}', containing(${d(o)}))`;case`doesnotcontain`:return`.has('${u}', notContaining(${d(o)}))`;case`beginswith`:return`.has('${u}', startingWith(${d(o)}))`;case`doesnotbeginwith`:return`.has('${u}', notStartingWith(${d(o)}))`;case`endswith`:return`.has('${u}', endingWith(${d(o)}))`;case`doesnotendwith`:return`.has('${u}', notEndingWith(${d(o)}))`;case`null`:return`.hasNot('${u}')`;case`notnull`:return`.has('${u}')`;case`in`:{let e=N(o).map(d);return e.length?`.has('${u}', within(${e.join(`, `)}))`:``}case`notin`:{let e=N(o).map(d);return e.length?`.has('${u}', without(${e.join(`, `)}))`:``}case`between`:{let e=N(o);return e.length<2?``:`.has('${u}', between(${d(e[0])}, ${d(e[1])}))`}case`notbetween`:{let e=N(o);return e.length<2?``:`.has('${u}', outside(${d(e[0])}, ${d(e[1])}))`}default:return`.has('${u}', ${d(o)})`}},tr=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),nr=(e,t)=>`"${typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`)}"`,rr=(e,t)=>t?`$not(${e})`:e,ir=e=>`${e}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g,String.raw`\$&`).replaceAll(`-`,String.raw`\x2d`),ar=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c,quoteFieldNamesWith:l=[``,``],fieldIdentifierSeparator:u=``}=t,d=a===`field`,f=typeof i==`number`||typeof i==`boolean`||typeof i==`bigint`||q(i,s),p=e=>It(e,{quoteFieldNamesWith:l,fieldIdentifierSeparator:u}),m=J(e);if(m===!1)return;if(m){let{mode:e,threshold:r}=m,a=`$count(${p(n)})`,o=`$count($filter(${p(n)}, function($v) {${gn(W(i,{ruleProcessor:e=>({...e,field:e.field?`$v.${e.field}`:`$v`})}),t)}}))`;switch(e){case`all`:return`${o} = ${a}`;case`none`:return`${o} = 0`;case`some`:return`${o} > 0`;case`atleast`:case`atmost`:case`exactly`:{let t=e===`atleast`?`>=`:e===`atmost`?`<=`:`=`;return r>0&&r<1?`${o} ${t} (${a} * ${r})`:`${o} ${t} ${r}`}}}let h=P(r);switch(h){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${p(n)} ${h} ${d?p(M(i)):f?M(i):nr(i,o)}`;case`contains`:case`doesnotcontain`:return rr(`$contains(${p(n)}, ${d?p(M(i)):nr(i,o)})`,tr(h));case`beginswith`:case`doesnotbeginwith`:return rr(d?`$substring(${p(n)}, 0, $length(${p(M(i))})) = ${p(M(i))}`:`$contains(${p(n)}, /^${ir(i)}/)`,tr(h));case`endswith`:case`doesnotendwith`:return rr(d?`$substring(${p(n)}, $length(${p(n)}) - $length(${p(M(i))})) = ${p(M(i))}`:`$contains(${p(n)}, /${ir(i)}$/)`,tr(h));case`null`:return`${p(n)} = null`;case`notnull`:return`${p(n)} != null`;case`in`:case`notin`:{let e=N(i);return rr(`${p(n)} in [${e.map(e=>d?`${p(M(e))}`:q(e,s)?`${M(e)}`:nr(e,o)).join(`, `)}]`,tr(h))}case`between`:case`notbetween`:{let e=N(i);if(e.length<2||me(e[0])||me(e[1]))return``;let[t,r]=e,a=s!==!1,l=q(t,a)?U(t,{parseNumbers:a}):NaN,u=q(r,a)?U(r,{parseNumbers:a}):NaN,f=Number.isNaN(l)?d?`${t}`:t:l,m=Number.isNaN(u)?d?`${r}`:r:u;if(!c&&f===l&&m===u&&u<l){let e=u;m=l,f=e}let g=q(t,s)&&q(r,s),_=(e,t)=>d?p(e):g?t:nr(t,o),v=`${p(n)} >= ${_(t,f)} and ${p(n)} <= ${_(r,m)}`;return h===`between`?`(${v})`:rr(v,!0)}}return``},or=e=>e.replace(/^(=)$/,`$1=`).replace(/^notnull$/i,`!=`).replace(/^null$/i,`==`),sr=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{"!":t}:t,cr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t,c=a===`field`,l={var:n},u=e=>c?{var:`${e}`}:q(e,o)?U(e,{parseNumbers:o}):e,d=J(e);if(d===!1)return!1;if(d){let{mode:e,threshold:r}=d;switch(e){case`all`:case`none`:case`some`:return{[e]:[{var:n},i.rules.length===1&&!I(i.rules[0])?cr(i.rules[0],t):_n(i,t)]};case`atleast`:case`atmost`:case`exactly`:{let a=e===`atleast`?`>=`:e===`atmost`?`<=`:`==`,o={reduce:[{filter:[{var:n},i.rules.length===1&&!I(i.rules[0])?cr(i.rules[0],t):_n(i,t)]},{"+":[1,{var:`accumulator`}]},0]};if(r>0&&r<1){let e={reduce:[{var:n},{"+":[1,{var:`accumulator`}]},0]};return{[a]:[o,{"*":[e,r]}]}}return{[a]:[o,r]}}}}let f=P(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[or(f)]:[l,u(i)]};case`null`:case`notnull`:return{[`${f===`notnull`?`!`:`=`}=`]:[l,null]};case`in`:case`notin`:{let e=N(i).map(e=>u(e));return sr(f,{in:[l,e]})}case`between`:case`notbetween`:{let e=N(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,n]=e,r=o!==!1;if(!c&&q(t,r)&&q(n,r)){let e=U(t,{parseNumbers:r}),i=U(n,{parseNumbers:r});if(!s&&i<e){let r=i;n=e,t=r}else t=e,n=i}else c&&(t={var:t},n={var:n});return sr(f,{"<=":[t,l,n]})}return!1}case`contains`:case`doesnotcontain`:{let e={in:[u(i),l]};return sr(f,e)}case`beginswith`:case`doesnotbeginwith`:{let e={startsWith:[l,u(i)]};return sr(f,e)}case`endswith`:case`doesnotendwith`:{let e={endsWith:[l,u(i)]};return sr(f,e)}}return!1},lr=(e,t)=>t?`(!${e})`:`${e}`,ur=e=>`${M(e)}`.replaceAll(/[()&|=<>~*\\/]/g,e=>`\\${e.codePointAt(0).toString(16)}`),dr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{preserveValueOrder:o}=t,s=P(r);if(a===`field`||me(i)&&s!==`null`&&s!==`notnull`||J(e))return``;switch(s){case`=`:case`!=`:return lr(`(${n}=${ur(i)})`,s===`!=`);case`>`:case`>=`:return`(${n}>=${ur(i)})`;case`<`:case`<=`:return`(${n}<=${ur(i)})`;case`contains`:case`doesnotcontain`:return lr(`(${n}=*${ur(i)}*)`,s===`doesnotcontain`);case`beginswith`:case`doesnotbeginwith`:return lr(`(${n}=${ur(i)}*)`,s===`doesnotbeginwith`);case`endswith`:case`doesnotendwith`:return lr(`(${n}=*${ur(i)})`,s===`doesnotendwith`);case`null`:case`notnull`:return lr(`(${n}=*)`,s===`notnull`);case`in`:case`notin`:{let e=N(i);return lr(`(|${e.map(e=>`(${n}=${ur(e)})`).join(``)})`,s===`notin`)}case`between`:case`notbetween`:{let e=N(i);if(e.length<2||me(e[0])||me(e[1]))return``;let[t,r]=e,a=q(t,!0)?U(t,{parseNumbers:!0}):NaN,c=q(r,!0)?U(r,{parseNumbers:!0}):NaN,l=Number.isNaN(a)?t:a,u=Number.isNaN(c)?r:c;if(!o&&l===a&&u===c&&c<a){let e=c;u=a,l=e}return lr(`(&(${n}>=${ur(l)})(${n}<=${ur(u)}))`,s===`notbetween`)}}return``},fr=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,pr=(e,t={})=>{let{escapeQuotes:n,fields:r,parseNumbers:i,quoteFieldNamesWith:a,quoteValuesWith:o,fieldIdentifierSeparator:s,translations:c}=t,l=e.valueSource===`field`,u=P(e.operator),d=o||`'`,f=e=>`${d}${e}${d}`,p=e=>fr(e,d,n),m=e=>f(p(e)),h=e=>It(e,{quoteFieldNamesWith:a,fieldIdentifierSeparator:s}),g=c??{},_=g.or??`or`,v=g.true??`true`,y=g.false??`false`,b=g.listSeparator??`, `,x=!g.listSeparator;switch(u){case`null`:case`notnull`:return``;case`between`:case`notbetween`:{if(!l)return un(e,t);let n=N(e.value,{retainEmptyStrings:!0}).slice(0,2).map(e=>h(V(r??[],e)?.label??e));return n.length<2||!K(n[0])||!K(n[1])?``:un({...e,value:n},t)}case`in`:case`notin`:{let t=N(e.value);if(t.length===0)return``;let n=t.map(e=>l?h(V(r??[],e)?.label??e):q(e,i)?`${M(e)}`:`${m(e)}`);if(n.length===1)return n[0];let a=x&&n.length>2?`,`:``;return`(${`${n.slice(0,-1).join(b)}${a} ${_} ${n.at(-1)}`})`}}return typeof e.value==`boolean`?e.value?v:y:l?h(V(r??[],e.value)?.label??e.value):q(e.value,i)?`${M(e.value)}`:`${m(e.value)}`},mr={"=":[`is`,`is the same as the value in`],"!=":[`is not`,`is not the same as the value in`],"<":[`is less than`,`is less than the value in`],">":[`is greater than`,`is greater than the value in`],"<=":[`is less than or equal to`,`is less than or equal to the value in`],">=":[`is greater than or equal to`,`is greater than or equal to the value in`],contains:[`contains`,`contains the value in`],beginswith:[`starts with`,`starts with the value in`],endswith:[`ends with`,`ends with the value in`],doesnotcontain:[`does not contain`,`does not contain the value in`],doesnotbeginwith:[`does not start with`,`does not start with the value in`],doesnotendwith:[`does not end with`,`does not end with the value in`],null:`is null`,notnull:`is not null`,in:[`is one of the values`,`is the same as a value in`],notin:[`is not one of the values`,`is not the same as any value in`],between:[`is between`,`is between the values in`],notbetween:[`is not between`,`is not between the values in`]},hr=()=>[],gr=(e,t={})=>{let{field:n,operator:r,valueSource:i=`value`}=e,{getOperators:a=hr,operatorMap:o=mr}=t,s=new Map(Object.entries(mr));for(let[e,t]of Object.entries(o))s.set(P(e),t);let c=Object.fromEntries(s),l=P(r);var u=r;let d=N(e.value).length===1;l===`in`&&d?u=`=`:l===`notin`&&d&&(u=`!=`);let{value:f,label:p}=V(He(a(n,{fieldData:t.fieldData??{name:n,value:n,label:n}})??[]),u)??{name:u,value:u,label:u},m=c[f]??c[P(f)]??[p,p];return typeof m==`string`?m:m[+(i===`field`)]},_r=(e,t)=>{let{field:n,operator:r}=e,{fieldData:i,quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:o=``,quoteValuesWith:s=`'`,operatorProcessor:c=gr,valueProcessor:l=pr,concatOperator:u=`||`,wordOrder:d=`SVO`}=t??{},f=It(i?.label??n,{quoteFieldNamesWith:a,fieldIdentifierSeparator:o}),p=J(e);if(p===!1)return``;if(p){let{mode:n,threshold:r}=p,a=xn(e.value,{...t,fields:He(i?.subproperties??[])}),o=(i?.subproperties?.length??0)>0;switch(n){case`all`:return`(${o?`for `:``}every item in ${f}${o?`,`:``} ${a})`;case`none`:return`(${o?`for `:``}no item in ${f}${o?`,`:``} ${a})`;case`some`:return`(${o?`for `:``}at least one item in ${f}${o?`,`:``} ${a})`;case`atleast`:case`atmost`:case`exactly`:{let e=n.replace(`at`,`at `);return r>0&&r<1?`(${o?`for `:``}${e} ${r*100}% of the items in ${f}${o?`,`:``} ${a})`:`(${o?`for `:``}${e} ${r} of the items in ${f}${o?`,`:``} ${a})`}}}let m=l(e,{...t,quoteFieldNamesWith:a,fieldIdentifierSeparator:o,quoteValuesWith:s,concatOperator:u}),h=P(r);if((h===`in`||h===`notin`||h===`between`||h===`notbetween`)&&!m)return``;let g={S:f,V:c(e,t),O:m},_=t?.translations??{},v={S:_.afterSubject??` `,V:_.afterVerb??` `,O:_.afterObject??` `},y=Rt(d).filter(e=>g[e]!==``);return y.map((e,t)=>`${g[e]}${t<y.length-1?v[e]:``}`).join(``).trim()},vr=e=>P(Tt(e.operator)),yr=(e,t={})=>{let{quoteFieldNamesWith:n=[``,``],fieldIdentifierSeparator:r=``,quoteValuesWith:i=`'`,operatorProcessor:a=vr,valueProcessor:o=un,concatOperator:s=`||`}=t,c=e=>It(e,{quoteFieldNamesWith:n,fieldIdentifierSeparator:r}),l=c(e.field),u=J(e);if(u===!1)return;if(u){if(t?.preset!==`postgresql`)return``;let{mode:n,threshold:r}=u,i=t.subqueryDepth??0,a=Gt(i),o=Dn(W(e.value,{ruleProcessor:e=>({...e,field:a})}),{...t,subqueryDepth:i+1});switch(n){case`all`:return`(select count(*) from unnest(${l}) as ${c(a)} where ${o}) = array_length(${l}, 1)`;case`none`:return`not exists (select 1 from unnest(${l}) as ${c(a)} where ${o})`;case`some`:return`exists (select 1 from unnest(${l}) as ${c(a)} where ${o})`;case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return`(select count(*)${r>0&&r<1?`::float / array_length(${l}, 1)`:``} from unnest(${l}) as ${c(a)} where ${o}) ${e} ${r}`}}}let d=o(e,{...t,quoteFieldNamesWith:n,fieldIdentifierSeparator:r,quoteValuesWith:i,concatOperator:s}),f=a(e,t),p=P(f);return(p===`in`||p===`not in`||p===`between`||p===`not between`)&&!d?``:`${l} ${f} ${d}`.trim()},br=(e,t,n)=>{let{fieldData:r,format:i,getNextNamedParam:a,parseNumbers:o,paramPrefix:s,paramsKeepPrefix:c,numberedParams:l,quoteFieldNamesWith:u=[``,``],fieldIdentifierSeparator:d,concatOperator:f,operatorProcessor:p=vr,valueProcessor:m=un}=t??{},{processedParams:h=[]}=n??{},g=i===`parameterized`,_=[],v={},y=e=>g?{sql:e,params:_}:{sql:e,params:v},b=e=>It(e,{quoteFieldNamesWith:u,fieldIdentifierSeparator:d}),x=b(e.field),S=J(e);if(S===!1)return;if(S){if(t?.preset!==`postgresql`)return y(``);let{mode:n,threshold:r}=S,i=t.subqueryDepth??0,a=Gt(i),{sql:o,params:s}=Sn(W(e.value,{ruleProcessor:e=>({...e,field:a})}),{...t,fields:[],subqueryDepth:i+1});switch(Array.isArray(s)?_.push(...s):Object.assign(v,s),n){case`all`:return y(`(select count(*) from unnest(${x}) as ${b(a)} where ${o}) = array_length(${x}, 1)`);case`none`:return y(`not exists (select 1 from unnest(${x}) as ${b(a)} where ${o})`);case`some`:return y(`exists (select 1 from unnest(${x}) as ${b(a)} where ${o})`);case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return y(`(select count(*)${r>0&&r<1?`::float / array_length(${x}, 1)`:``} from unnest(${x}) as ${b(a)} where ${o}) ${e} ${r}`)}}}let C=m(e,{parseNumbers:o,quoteFieldNamesWith:u,concatOperator:f,fieldData:r,format:i}),w=p(e,t),T=P(w),[E,D]=u;if((T===`in`||T===`not in`||T===`between`||T===`not between`)&&!C)return y(``);if(T===`is null`||T===`is not null`)return y(`${E}${e.field}${D} ${w}`);if(e.valueSource===`parameter`){let t=e=>{let t=zt(e,s);return g||(v[c?t:Bt(e,s)]=null),t};if(T===`between`||T===`not between`){let[n,r]=N(e.value,{retainEmptyStrings:!0}).slice(0,2);return y(`${E}${e.field}${D} ${w} ${t(n)} and ${t(r)}`.trim())}if(T===`in`||T===`not in`){let n=N(e.value);return y(`${E}${e.field}${D} ${w} (${n.map(e=>t(e)).join(`, `)})`)}return y(`${E}${e.field}${D} ${w} ${Ot(t(e.value),P(e.operator),{concatOperator:f})}`.trim())}if(e.valueSource===`field`)return y(`${E}${e.field}${D} ${w} ${C}`.trim());if(T===`in`||T===`not in`){let t=N(e.value);if(g){for(let e of t)_.push(q(e,o)?U(e,{parseNumbers:o}):e);return y(`${E}${e.field}${D} ${w} (${t.map((e,n)=>l?`${s}${h.length+1+t.length-(t.length-n)}`:`?`).join(`, `)})`)}let n=[];for(let r of t){let t=a(e.field);n.push(`${s}${t}`),v[`${c?s:``}${t}`]=q(r,o)?U(r,{parseNumbers:o}):r}return y(`${E}${e.field}${D} ${w} (${n.join(`, `)})`)}if(T===`between`||T===`not between`){let[t,n]=N(e.value,{retainEmptyStrings:!0}).slice(0,2).map(e=>q(e,o)?U(e,{parseNumbers:o}):e);if(g)return _.push(t,n),y(`${E}${e.field}${D} ${w} ${l?`${s}${h.length+1}`:`?`} and ${l?`${s}${h.length+2}`:`?`}`);let r=a(e.field),i=a(e.field);return v[`${c?s:``}${r}`]=t,v[`${c?s:``}${i}`]=n,y(`${E}${e.field}${D} ${w} ${s}${r} and ${s}${i}`)}let O=e.value;typeof e.value==`string`&&(O=q(e.value,o)?U(e.value,{parseNumbers:o}):/^'.*'$/g.test(C)?C.replaceAll(/(^'|'$)/g,``):C);let ee=``;return g?_.push(O):(ee=a(e.field),v[`${c?s:``}${ee}`]=O),y(`${E}${e.field}${D} ${w} ${g?l?`${s}${h.length+1}`:`?`:`${s}${ee}`}`.trim())},xr=(e,t,n)=>q(e,!!n||typeof e==`bigint`)?Number(U(e,{parseNumbers:!!n})):t,Sr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t;if(a===`field`||J(e))return;let c=P(r);switch(c){case`=`:return{[n]:xr(i,i,o)};case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e=At[c];return{[n]:{[e]:xr(i,i,o)}}}case`contains`:return{[n]:{contains:i}};case`beginswith`:return{[n]:{startsWith:i}};case`endswith`:return{[n]:{endsWith:i}};case`doesnotcontain`:return{NOT:{[n]:{contains:i}}};case`doesnotbeginwith`:return{NOT:{[n]:{startsWith:i}}};case`doesnotendwith`:return{NOT:{[n]:{endsWith:i}}};case`null`:return{[n]:null};case`notnull`:return{[n]:{not:null}};case`in`:case`notin`:{let e=N(i);return{[n]:{[At[c]]:e.map(e=>xr(e,e,o))}}}case`between`:case`notbetween`:{let e=N(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=o!==!1,a=q(t,i)?U(t,{parseNumbers:o}):NaN,l=q(r,i)?U(r,{parseNumbers:o}):NaN,u=Number.isNaN(a)?t:a,d=Number.isNaN(l)?r:l;if(!s&&u===a&&d===l&&l<a){let e=l;d=a,u=e}return c===`between`?{[n]:{gte:u,lte:d}}:{OR:[{[n]:{lt:u}},{[n]:{gt:d}}]}}return``}}return``},Cr=(e,{parseNumbers:t,preserveValueOrder:n,context:r={}}={})=>{let{sequelizeOperators:i,sequelizeCol:a,sequelizeFn:o}=r;if(J(e))return;let{field:s,operator:c,value:l,valueSource:u}=e,d=u===`field`,f=P(c);if(!(!i||d&&(!a||!o&&[`contains`,`doesnotcontain`,`beginswith`,`doesnotbeginwith`,`endswith`,`doesnotendwith`].includes(f))))switch(f){case`=`:case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e={"=":i.eq,"!=":i.ne,"<":i.lt,"<=":i.lte,">":i.gt,">=":i.gte}[f];return{[s]:d&&f===`=`?{[i.col]:l}:{[e]:d?a(l):q(l,t)?U(l,{parseNumbers:`strict`}):l}}}case`contains`:return{[s]:{[d?i.like:i.substring]:d?o(`CONCAT`,`%`,a(l),`%`):`${l}`}};case`beginswith`:return{[s]:{[d?i.like:i.startsWith]:d?o(`CONCAT`,a(l),`%`):`${l}`}};case`endswith`:return{[s]:{[d?i.like:i.endsWith]:d?o(`CONCAT`,`%`,a(l)):`${l}`}};case`doesnotcontain`:return{[s]:{[i.notLike]:d?o(`CONCAT`,`%`,a(l),`%`):`%${l}%`}};case`doesnotbeginwith`:return{[s]:{[i.notLike]:d?o(`CONCAT`,a(l),`%`):`${l}%`}};case`doesnotendwith`:return{[s]:{[i.notLike]:d?o(`CONCAT`,`%`,a(l)):`%${l}`}};case`null`:return{[s]:{[i.is]:null}};case`notnull`:return{[s]:{[i.not]:null}};case`in`:case`notin`:{let e=N(l);return{[s]:{[f===`in`?i.in:i.notIn]:e.map(e=>d?a(e):q(e,t)?U(e,{parseNumbers:`strict`}):e)}}}case`between`:case`notbetween`:{let e=N(l,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return;let[r,o]=e,c=q(r,t)?U(r,{parseNumbers:`strict`}):NaN,u=q(o,t)?U(o,{parseNumbers:`strict`}):NaN,p=Number.isNaN(c)?r:c,m=Number.isNaN(u)?o:u,h=[p,m];return!n&&p===c&&m===u&&u<c&&(h[0]=u,h[1]=c),{[s]:{[f===`between`?i.between:i.notBetween]:d?h.map(e=>a(e)):h.every(e=>q(e,t))?h.map(e=>U(e,{parseNumbers:`strict`})):h}}}}},wr=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),Tr=e=>/^[?<]/.test(e)||e.includes(`:`)?e:`?${e}`,Er=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=Tr(i),d=e=>{if(e==null)return`""`;if(typeof e==`boolean`)return`"${e}"^^xsd:boolean`;if(typeof e==`bigint`)return String(e);if(c)return Tr(M(e));if(typeof e==`number`||q(e,r))return M(e);let t=typeof e==`string`?e:JSON.stringify(e)??``;return t.startsWith(`?`)||t.startsWith(`<`)||t.includes(`:`)?t:`"${wr(t,n)}"`};switch(l){case`=`:case`!=`:case`<`:case`>`:case`<=`:case`>=`:return`${u} ${l} ${d(o)}`;case`<>`:return`${u} != ${d(o)}`;case`contains`:return`CONTAINS(${u}, ${d(o)})`;case`doesnotcontain`:return`!CONTAINS(${u}, ${d(o)})`;case`beginswith`:return`STRSTARTS(${u}, ${d(o)})`;case`doesnotbeginwith`:return`!STRSTARTS(${u}, ${d(o)})`;case`endswith`:return`STRENDS(${u}, ${d(o)})`;case`doesnotendwith`:return`!STRENDS(${u}, ${d(o)})`;case`null`:return`!BOUND(${u})`;case`notnull`:return`BOUND(${u})`;case`in`:{let e=N(o).map(d);return e.length?`${u} IN (${e.join(`, `)})`:``}case`notin`:{let e=N(o).map(d);return e.length?`${u} NOT IN (${e.join(`, `)})`:``}case`between`:{let e=N(o);return e.length<2?``:`${u} >= ${d(e[0])} && ${u} <= ${d(e[1])}`}case`notbetween`:{let e=N(o);return e.length<2?``:`(${u} < ${d(e[0])} || ${u} > ${d(e[1])})`}default:return`${u} ${a} ${d(o)}`}},Dr=(e,t)=>{let{parseNumbers:n,preserveValueOrder:r,context:i={}}=t??{},a=i.tanStackDbOperators,o=i._tanstackDbRefs,s=i._tanstackDbPrimaryRef;if(!a||!o||!s)return;let{and:c,eq:l,gt:u,gte:d,inArray:f,isNull:p,like:m,lt:h,lte:g,not:_}=a,v=e=>{let t=e.indexOf(`.`);if(t>0){let n=e.slice(0,t),r=e.slice(t+1);if(o[n])return o[n][r]}return o[s][e]},{field:y,operator:b,value:x,valueSource:S}=e,C=v(y),w=P(b),T=S===`field`,E=e=>T?v(e):e,D=e=>T||!n?E(e):q(e,!0)?U(e,{parseNumbers:!0}):e;switch(w){case`=`:return l(C,D(x));case`!=`:return _(l(C,D(x)));case`>`:return u(C,D(x));case`<`:return h(C,D(x));case`>=`:return d(C,D(x));case`<=`:return g(C,D(x));case`beginswith`:case`doesnotbeginwith`:{let e=m(C,T?void 0:`${x}%`);return w===`doesnotbeginwith`?_(e):e}case`contains`:case`doesnotcontain`:{let e=m(C,T?void 0:`%${x}%`);return w===`doesnotcontain`?_(e):e}case`endswith`:case`doesnotendwith`:{let e=m(C,T?void 0:`%${x}`);return w===`doesnotendwith`?_(e):e}case`null`:return p(C);case`notnull`:return _(p(C));case`in`:case`notin`:{let e=f(C,N(x).map(e=>D(e)));return w===`notin`?_(e):e}case`between`:case`notbetween`:{let e=N(x);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,i]=e,a=n!==!1;if(!T&&q(t,a)&&q(i,a)){let e=U(t,{parseNumbers:a}),n=U(i,{parseNumbers:a});if(!r&&n<e){let r=n;i=e,t=r}else t=e,i=n}else T&&(t=E(t),i=E(i));let o=c(d(C,t),g(C,i));return w===`notbetween`?_(o):o}return}default:return}},Or={ansi:{},sqlite:{paramsKeepPrefix:!0},oracle:{},mssql:{concatOperator:`+`,quoteFieldNamesWith:[`[`,`]`],fieldIdentifierSeparator:`.`,paramPrefix:`@`},mysql:{concatOperator:`CONCAT`},postgresql:{quoteFieldNamesWith:`"`,numberedParams:!0,paramPrefix:`$`}},kr={...Or},Ar={cel:Zt,drizzle:Gn,elasticsearch:Qn,json_without_ids:yr,json:yr,jsonata:ar,jsonlogic:cr,ldap:dr,mongodb_query:tn,mongodb:nn,natural_language:_r,parameterized_named:br,parameterized:br,prisma:Sr,sequelize:Cr,spel:cn,sql:yr,tanstack_db:Dr,cypher:Wn,gql:Wn,sparql:Er,gremlin:er,diagnostics:yr},Y=e=>e.operator,jr={cel:Y,drizzle:Y,elasticsearch:Y,json_without_ids:Y,json:Y,jsonata:Y,jsonlogic:Y,ldap:Y,mongodb_query:Y,mongodb:Y,natural_language:gr,parameterized_named:vr,parameterized:vr,prisma:Y,sequelize:Y,spel:Y,sql:vr,tanstack_db:Y,cypher:Y,gql:Y,sparql:Y,gremlin:Y,diagnostics:Y},Mr={cel:`1 == 1`,ldap:``,mongodb:`"$and":[{"$expr":true}]`,natural_language:`1 is 1`,sparql:`1 = 1`,gremlin:``,spel:`1 == 1`,sql:`(1 = 1)`},Nr={format:`json`,fields:[],quoteFieldNamesWith:[``,``],fieldIdentifierSeparator:``,getOperators:()=>[],paramPrefix:`:`,paramsKeepPrefix:!1,numberedParams:!1,preserveValueOrder:!1,placeholderFieldName:`~`,placeholderOperatorName:`~`,quoteValuesWith:`'`,concatOperator:`||`,preset:`ansi`,wordOrder:`SVO`,translations:{},operatorMap:{}},Pr=new Set([`cel`,`drizzle`,`elasticsearch`,`jsonata`,`jsonlogic`,`ldap`,`mongodb_query`,`mongodb`,`prisma`,`sequelize`,`spel`,`tanstack_db`]),Fr=new Set([`sql`,`parameterized`,`parameterized_named`,`drizzle`,`prisma`,`sequelize`]);function Ir(e,t={}){let n=typeof t==`string`?{format:P(t)}:t,r={...Nr,...!n.format||Fr.has(n.format)?Or[n.preset??`ansi`]??null:null,...n,...!n.format&&(Object.keys(Or).includes(n.preset??``)?{format:`sql`}:null)},i=P(r.format),{fallbackExpression:a,getOperators:o,operatorProcessor:s,parseNumbers:c,quoteFieldNamesWith:l,ruleGroupProcessor:u,ruleProcessor:d,validator:f,valueProcessor:p,context:m}=r,h=e=>typeof wt({parseNumbers:c,inputType:e})==`string`?!0:typeof c==`boolean`?c:void 0,g=typeof s==`function`?s:jr[i]??Y,_=typeof p==`function`?Pt(p)?e=>p(e.field,e.operator,e.value,e.valueSource):p:i===`natural_language`?pr:Pr.has(i)?d??Ar[i]:un,v=(typeof d==`function`?d:null)??(Pr.has(i)&&typeof d!=`function`&&p?_:null)??Ar[i]??yr,y=Ft(l),b=He(r.fields),x=(e,t)=>He(o(e,t)??[]),S=a??Mr[i]??Mr.sql,C={};if(typeof f==`function`){let t=f(e);if(typeof t==`boolean`){if(!t&&i!==`diagnostics`)return i===`parameterized`?{sql:S,params:[]}:i===`parameterized_named`?{sql:S,params:{}}:i===`mongodb`?`{${S}}`:i===`mongodb_query`?Qt:i===`prisma`?Cn:i===`jsonlogic`?!1:i===`elasticsearch`?{}:i===`drizzle`||i===`sequelize`||i===`tanstack_db`?void 0:S}else C=t}let w={},T=Ze(b);for(let e of T)typeof e.validator==`function`&&(w[e.value??e.name]=e.validator);let E=e=>{let t,n;if(e.id&&(t=C[e.id]),T.length>0){let t=T.filter(t=>t.name===e.field);if(t.length>0){let e=t[0];typeof e.validator==`function`&&(n=e.validator)}}if(e.valueSource===`parameter`&&typeof r.getParameters==`function`){let n=V(b,e.field);new Set(Ze(He(r.getParameters(e.field,e.operator,{fieldData:n}))).map(e=>Bt(e.value,r.paramPrefix))).has(Bt(e.value,r.paramPrefix))||(t=!1)}return[t,n]},D={...r,fallbackExpression:S,fields:b,format:i,getOperators:x,getParseNumberBoolean:h,quoteFieldNamesWith:y,operatorProcessor:g,ruleProcessor:v,valueProcessor:_,validateRule:E,validationMap:C,context:m};if(typeof u==`function`)return u(e,D);switch(i){case`json`:case`json_without_ids`:{let t=c?Nt(e,D):e;return i===`json_without_ids`?JSON.stringify(t,(e,t)=>e===`id`||e===`path`?void 0:Kt(e,t)):JSON.stringify(t,Kt,2)}case`sql`:return Dn(e,D);case`parameterized`:case`parameterized_named`:return Sn(e,D);case`mongodb`:return bn(e,D);case`mongodb_query`:return $t(e,D);case`cel`:return Jt(e,D);case`spel`:return rn(e,D);case`jsonata`:return gn(e,D);case`jsonlogic`:return _n(e,D);case`elasticsearch`:return mn(e,D);case`natural_language`:return xn(e,D);case`ldap`:return vn(e,D);case`prisma`:return wn(e,D);case`drizzle`:return pn(e,D);case`tanstack_db`:return On(e,D);case`sequelize`:return Tn(e,D);case`cypher`:case`gql`:return fn(e,D);case`sparql`:return En(e,D);case`gremlin`:return hn(e,D);case`diagnostics`:return zn(e,D);default:return``}}const Lr=e=>(t,n,r,i)=>e({field:t,operator:n,value:r,valueSource:i},{parseNumbers:!1}),Rr=Lr(un),zr=Lr(nn),Br=Lr(Zt),Vr=Lr(cn),Hr=Zt,Ur=nn,Wr=cn,X=(e,t)=>{let n=t,r=0;for(;r<e.length&&n&&I(n);){let t=n.rules[e[r]];n=typeof t==`string`?null:t,r++}return r<e.length?null:n},Gr=(e,t)=>{if(t.id===e)return t;for(let n of t.rules)if(typeof n!=`string`){if(n.id===e)return n;if(I(n)){let t=Gr(e,n);if(t)return t}}return null},Kr=(e,t)=>{if(t.id===e)return[];let n=t.rules.findIndex(t=>typeof t!=`string`&&t.id===e);if(n>=0)return[n];for(let[n,r]of Object.entries(t.rules))if(I(r)){let t=Kr(e,r);if(Array.isArray(t))return[Number.parseInt(n),...t]}return null},Z=e=>e.slice(0,-1),qr=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},Jr=(e,t)=>{if(e.length>=t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},Yr=(e,t)=>{let n=[],r=Z(e),i=Z(t),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)n.push(i[a]),a++;return n},Xr=(e,t)=>{let n=!!t.disabled,r=t,i=0;for(;i<e.length&&!n&&I(r);){let t=r.rules[e[i]];F(t)&&(I(t)||`field`in t&&t.field)&&(n=!!t.disabled,r=t),i++}return n},Zr=(e,t=[])=>t.some(t=>qr(t,e)||Jr(t,e)),Qr=(e,t,{disabled:n=!1,disabledPaths:r=[]}={})=>{let i=[];for(let a=0;a<t;a++){let t=[...e,a];i[a]={path:t,disabled:n||r.some(e=>qr(t,e))}}return i},$r=e=>qr([],e.path)?`Query builder`:`Rule group at path ${e.path.join(`-`)}`,ei=globalThis.crypto,ti=/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i;let Q=()=>`00-0-4-2-000`.replaceAll(/[^-]/g,e=>((Math.random()+Math.trunc(e))*65536>>Number.parseInt(e)).toString(16).padStart(4,`0`));if(ei){if(typeof ei.randomUUID==`function`)Q=()=>ei.randomUUID();else if(typeof ei.getRandomValues==`function`){let e=new Uint32Array(32);Q=()=>{ei.getRandomValues(e);let t=(e[0]%16).toString(16);for(let n=1;n<32;n++)t=n===12?`${t}4`:n===16?`${t}${`89ab`[e[17]%4]}`:`${t}${(e[n]%16).toString(16)}`,(n===7||n===11||n===15||n===19)&&(t=`${t}-`);return t}}}const ni={name:`name`,value:`name`,matchModes:null,label:`label`},ri=(e,t)=>{let n=e?B(e):ni,r=n.matchModes??!1;return!r&&t&&(r=t(n.value,{fieldData:n})),r===!0?k:r===!1?[]:qe(r)?He(r):r?.map(e=>k.find(t=>t.value===P(e))??{name:e,value:e,label:e})??[]},ii=(e,t,n)=>{let r=H(e);if(t.operator===`between`||t.operator===`notBetween`){let e=[r,r];return n?e:le(e.map(e=>e??``),`,`)}return r},ai=(e,t)=>{let{fieldData:n,fields:r,getValueEditorType:i,getValues:a,getDefaultValue:o,getParameters:s,listsAsArrays:c}=t;if(n?.defaultValue!==void 0&&n.defaultValue!==null)return n.defaultValue;if(o)return o(e,{fieldData:n});let l=``,u=a(e.field,e.operator,{fieldData:n});if(e.valueSource===`field`){let t=nt(n,r,e.operator);l=t.length>0?ii(t,e,c):``}else if(e.valueSource===`parameter`){let t=s?s(e.field,e.operator,{fieldData:n}):null;l=t&&t.length>0?H(t):``}else if(u.length>0){let t=i(e.field,e.operator,{fieldData:n});t===`multiselect`?l=c?[]:``:(t===`select`||t===`radio`)&&(l=ii(u,e,c))}else i(e.field,e.operator,{fieldData:n})===`checkbox`&&(l=!1);return l},oi=e=>{let t=typeof e==`boolean`?e:typeof e==`object`&&e?e.valid:null;return typeof t==`boolean`?t?A.valid:A.invalid:``},si=[{name:`value`,value:`value`,label:`value`}],ci={name:`name`,value:`name`,valueSources:null,label:`label`},li=(e,t,n)=>{let r=e?B(e):ci,i=r.valueSources??!1;return typeof i==`function`&&(i=i(t)),!i&&n&&(i=n(r.value,t,{fieldData:r})),i?qe(i)?He(i):i.map(e=>si.find(t=>t.value===P(e))??{name:e,value:e,label:e}):si},ui=(e,...t)=>{let n={...e};for(let e of t)if(e)for(let t of Le(e))ze(t)||(n[t]=n[t]?{...n[t],...e[t]}:{...e[t]});return n},di=(e,t,n)=>{if(ze(e))return;let r=Re(t).map(([t,[r,i]])=>[t,r??i??n?.[e]?.[t]]).filter(e=>!ze(e[0])&&!!e[1]);if(r.length>0||n){let t=n?.[e]??{},i=Object.assign({},t,Object.fromEntries(r));return{[e]:i}}},$=(e,t)=>{let n=``;for(let r=0;r<t.length;r++){let i=t[r]?.[e];if(!i)continue;let a=typeof i==`string`?i:fe(i);a&&(n=n?`${n} ${a}`:a)}return n},fi=(...e)=>({queryBuilder:$(`queryBuilder`,e),ruleGroup:$(`ruleGroup`,e),header:$(`header`,e),body:$(`body`,e),combinators:$(`combinators`,e),addRule:$(`addRule`,e),addGroup:$(`addGroup`,e),cloneRule:$(`cloneRule`,e),cloneGroup:$(`cloneGroup`,e),removeGroup:$(`removeGroup`,e),rule:$(`rule`,e),fields:$(`fields`,e),operators:$(`operators`,e),value:$(`value`,e),removeRule:$(`removeRule`,e),notToggle:$(`notToggle`,e),shiftActions:$(`shiftActions`,e),undoRedoActions:$(`undoRedoActions`,e),undoAction:$(`undoAction`,e),redoAction:$(`redoAction`,e),dragHandle:$(`dragHandle`,e),lockRule:$(`lockRule`,e),lockGroup:$(`lockGroup`,e),muteRule:$(`muteRule`,e),muteGroup:$(`muteGroup`,e),muted:$(`muted`,e),valueSource:$(`valueSource`,e),actionElement:$(`actionElement`,e),valueSelector:$(`valueSelector`,e),betweenRules:$(`betweenRules`,e),valid:$(`valid`,e),invalid:$(`invalid`,e),dndDragging:$(`dndDragging`,e),dndOver:$(`dndOver`,e),dndCopy:$(`dndCopy`,e),dndGroup:$(`dndGroup`,e),dndDropNotAllowed:$(`dndDropNotAllowed`,e),dndPreviewPosition:$(`dndPreviewPosition`,e),dndHidden:$(`dndHidden`,e),disabled:$(`disabled`,e),valueListItem:$(`valueListItem`,e),matchMode:$(`matchMode`,e),matchThreshold:$(`matchThreshold`,e),branches:$(`branches`,e),hasSubQuery:$(`hasSubQuery`,e),loading:$(`loading`,e),valueDateTimeRelative:$(`valueDateTimeRelative`,e)}),pi=({field:e,fieldData:t,getOperators:n,operators:r,placeholder:i,baseOption:a,autoSelectOption:o})=>et({optionList:t?.operators??n?.(e,{fieldData:t})??r,placeholder:i,baseOption:a,labelMap:y,autoSelectOption:o}).optionList,mi=({field:e,fieldData:t,getDefaultOperator:n,getOperators:r})=>t?.defaultOperator?t.defaultOperator:n?typeof n==`function`?n(e,{fieldData:t}):n:H(r(e,{fieldData:t}))??``,hi=({field:e,operator:t,fieldData:n,getValueEditorType:r})=>n?.valueEditorType?typeof n.valueEditorType==`function`?n.valueEditorType(t):n.valueEditorType:r?.(e,t,{fieldData:n})??`text`,gi=({field:e,operator:t,fieldData:n,getValues:r,placeholder:i,baseOption:a,autoSelectOption:o})=>et({optionList:n?.values??r?.(e,t,{fieldData:n})??[],placeholder:i,baseOption:a,autoSelectOption:o}).optionList,_i=(e,t)=>e===!1?!1:e?!0:t!==!1,vi=(e,t)=>e?!0:e!==!1&&!!t,yi=(e,t,n,r)=>r?t??n:e?_i(t,n):vi(t,n),bi=(e,t,n)=>t!==void 0&&t!=null?t:n!==void 0&&n!=null?n:e,xi=(e={},t={},n)=>Re(ae).reduce((r,[i,a])=>(r[i]=yi(a,e[i],t[i],!n),r),{}),Si=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=J(e);return!n&&!r?e:{...e,...n&&{id:t()},...r&&{value:Ci(e.value,{idGenerator:t})}}},Ci=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=!1,i=[];for(let n=0;n<e.rules.length;n++){let a=e.rules[n];if(typeof a==`string`)i.push(a);else{let e=I(a)?Ci(a,{idGenerator:t}):Si(a,{idGenerator:t});i.push(e),e!==a&&(r=!0)}}return!n&&!r?e:{...e,...n&&{id:t()},rules:i}},wi=(e,{idGenerator:t=Q}={})=>I(e)?Ci(e,{idGenerator:t}):Si(e,{idGenerator:t}),Ti=(e,t)=>{let n=e.query??e.storeQuery??e.defaultQuery??e.fallbackQuery;return n.id?n:Ci(n,t)},Ei=(e,{idGenerator:t=Q}={})=>structuredClone({...e,id:t()}),Di=(e,{idGenerator:t=Q}={})=>{if(!F(e))return e;if(!I(e))return structuredClone({...e,id:t()});let n={...e,id:t()};return Array.isArray(n.rules)&&(n.rules=e.rules.map(e=>typeof e==`string`?e:I(e)?Di(e,{idGenerator:t}):Ei(e,{idGenerator:t}))),n},Oi=(e,t,n={},{asParent:r=!1}={})=>{if(n.queryDisabled)return r?`parent-disabled`:`target-disabled`;if(!n.respectDisabled||t===void 0)return null;let i=Array.isArray(t)?t:Kr(t,e);return i&&(Xr(i,e)||Zr(i,n.disabledPaths))?r?`parent-disabled`:`target-disabled`:null},ki=(e,{maxLevels:t=1/0}={})=>!!e&&e.length>=t,Ai=(e,t,n,r={})=>a(e,e=>ji(e,t,n,r)),ji=(e,t,n,r={})=>{let{combinators:i=O,combinatorPreceding:a,idGenerator:o=Q,onAbort:s}=r,c=Array.isArray(n)?X(n,e):Gr(n,e);if(!c)return s?.({reason:`parent-not-found`,operation:`add`,pathOrID:n}),e;if(!I(c))return s?.({reason:`parent-not-a-group`,operation:`add`,pathOrID:n}),e;let l=Array.isArray(n)?n:Kr(n,e),u=Oi(e,l,r,{asParent:!0});if(u)return s?.({reason:u,operation:`add`,pathOrID:n}),e;if(I(t)&&ki(l,r))return s?.({reason:`max-levels-exceeded`,operation:`add`,pathOrID:n}),e;if(R(c)&&c.rules.length>0){let e=c.rules.at(-2);c.rules.push(a??(typeof e==`string`?e:H(i)))}return c.rules.push(wi(t,{idGenerator:o})),e},Mi={field:0,operator:1,valueSource:2,value:4},Ni=e=>e.toSorted((e,t)=>(Mi[e[0]]??3)-(Mi[t[0]]??3)),Pi=(e,t,n,r)=>{if(typeof e==`string`)return{entries:[[e,t]],pathOrID:n,options:r??{}};if(Array.isArray(e)){let i=t;return{entries:Ni(e.map((e,t)=>[e,i[t]])),pathOrID:n,options:r??{}}}return{entries:Ni(Object.entries(e)),pathOrID:t,options:n??{}}},Fi=(e,t,n,r,i)=>{let{entries:a,pathOrID:o,options:s}=Pi(t,n,r,i);for(let[t,n]of a)Ri(e,t,n,o,s);return e},Ii=((e,t,n,r,i)=>a(e,e=>{Fi(e,t,n,r,i)})),Li=((e,t,n,r,i)=>Fi(e,t,n,r,i)),Ri=(e,t,n,r,i={})=>{let{resetOnFieldChange:a=!0,resetOnOperatorChange:o=!1,getRuleDefaultOperator:s=()=>`=`,getValueSources:c=()=>[`value`],getRuleDefaultValue:l=()=>``,getMatchModes:u=()=>[],onAbort:d}=i,f=a,p=Array.isArray(r)?r:Kr(r,e);if(!p)return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let m=t===`disabled`?{queryDisabled:i.queryDisabled}:i,h=Oi(e,p,m);if(h)return d?.({reason:h,operation:`update`,pathOrID:r}),e;if(t===`combinator`&&!L(e)){let t=X(Z(p),e);if(!t||!I(t))return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let i=t.rules;return p.at(-1)%2==1?i[p.at(-1)]===n?d?.({reason:`no-change`,operation:`update`,pathOrID:r}):i[p.at(-1)]=n:d?.({reason:`not-a-combinator-slot`,operation:`update`,pathOrID:r}),e}let g=X(p,e);if(!g)return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let _=I(g);if(g[t]===n)return d?.({reason:`no-change`,operation:`update`,pathOrID:r}),e;if(t!==`valueSource`&&(g[t]=n),_)return e;let v=!1,y=!1;if(t===`field`){let e=u(g.field),t=u(n);if(t.length===0)delete g.match;else{let e=g.match?.mode&&V(t,g.match.mode)?null:H(t);e&&(g.match={mode:e,threshold:1})}(e.length>0||t.length>0)&&(f=!0)}f&&t===`field`&&(g.operator=s(n),v=!0,y=!0),o&&t===`operator`&&(v=!0,y=!0);let b=H(li({name:g.field,value:g.field,label:``},g.operator,c));return(v&&g.valueSource&&b!==g.valueSource||t===`valueSource`&&n!==g.valueSource)&&(y=!!g.valueSource||!g.valueSource&&n!==b,g.valueSource=v?b:n),y&&(g.value=l(g)),e},zi=(e,t,n={})=>a(e,e=>Bi(e,t,n)),Bi=(e,t,n={})=>{let{onAbort:r}=n,i=Array.isArray(t)?t:Kr(t,e);if(!i)return r?.({reason:`target-not-found`,operation:`remove`,pathOrID:t}),e;if(i.length===0)return r?.({reason:`root-not-allowed`,operation:`remove`,pathOrID:t}),e;let a=Oi(e,i,n);if(a)return r?.({reason:a,operation:`remove`,pathOrID:t}),e;if(!X(i,e))return r?.({reason:`target-not-found`,operation:`remove`,pathOrID:t}),e;let o=i.at(-1),s=X(Z(i),e);if(!L(s)&&s.rules.length>1){let e=o===0?0:o-1;s.rules.splice(e,2)}else s.rules.splice(o,1);return e},Vi=(e,t,n)=>{if(Array.isArray(n))return n;let r=R(e);if(n===`up`){if(qr(t,[0]))return t;if(t.at(-1)===0){let e=Z(t);return[...Z(e),Math.max(0,e.at(-1)-+!!r)]}{let n=[...Z(t),Math.max(0,t.at(-1)-(r?2:1))],i=X(n,e);return I(i)?[...n,i.rules.length]:[...Z(t),Math.max(0,t.at(-1)-(r?3:1))]}}if(n===`down`){if(qr([e.rules.length-1],t))return t;if(t.at(-1)===X(Z(t),e).rules.length-1){let e=Z(t);return[...Z(e),e.at(-1)+1]}{let n=[...Z(t),t.at(-1)+(r?2:1)],i=X(n,e);return I(i)?[...n,0]:[...Z(t),t.at(-1)+(r?3:2)]}}return t},Hi=(e,t,n,r={})=>a(e,e=>Ui(e,t,n,r)),Ui=(e,t,r,a={})=>{let{clone:o=!1,combinators:s=O,idGenerator:c=Q,onAbort:l}=a,u=Array.isArray(t)?t:Kr(t,e);if(!u)return l?.({reason:`target-not-found`,operation:`move`,pathOrID:t}),e;let d=X(u,e);if(!d)return l?.({reason:`target-not-found`,operation:`move`,pathOrID:t}),e;let f=Vi(e,u,r);if(u.length===0)return l?.({reason:`root-not-allowed`,operation:`move`,pathOrID:t}),e;let p=Oi(e,u,a);if(p)return l?.({reason:p,operation:`move`,pathOrID:t}),e;if(qr(u,f))return l?.({reason:`same-location`,operation:`move`,pathOrID:t}),e;if(!X(Z(f),e)||!o&&Jr(u,f))return l?.({reason:`destination-not-found`,operation:`move`,pathOrID:r}),e;let m=o?Di(i(d)?n(d):d,{idGenerator:c}):d,h=R(e),g=X(Z(u),e),_=u.at(-1),v=h&&_>0?g.rules[_-1]:null,y=h&&_<g.rules.length-1?g.rules[_+1]:null;if(!o){let e=h?Math.max(0,_-1):_,t=h?2:1;g.rules.splice(e,t)}let b=[...f];h&&b.at(-1)%2==1&&(b[b.length-1]+=1);let x=Yr(u,f);!o&&u.length===x.length+1&&b[x.length]>u[x.length]&&(b[x.length]-=h?2:1);let S=Z(b),C=X(S,e),w=b.at(-1),T=h&&w>0?w-1:w,E=(...e)=>C.rules.splice(T,0,...e);return C.rules.length===0||!h?E(m):w===0?_===0&&y?E(m,y):E(m,C.rules[1]??v??H(s)):E(v||(C.rules[T-2]??y??H(s)),m),e},Wi=(e,t,n,r={})=>a(e,e=>Gi(e,t,n,r)),Gi=(e,t,n,r={})=>{let{combinators:i=O,combinatorPreceding:a,combinatorSucceeding:o,idGenerator:s=Q,replace:c=!1,onAbort:l}=r,u=X(Z(n),e);if(!u)return l?.({reason:`parent-not-found`,operation:`insert`,pathOrID:n}),e;if(!I(u))return l?.({reason:`parent-not-a-group`,operation:`insert`,pathOrID:n}),e;let d=Z(n),f=Oi(e,d,r,{asParent:!0});if(f)return l?.({reason:f,operation:`insert`,pathOrID:n}),e;if(I(t)&&ki(d,r))return l?.({reason:`max-levels-exceeded`,operation:`insert`,pathOrID:n}),e;let p=Di(t,{idGenerator:s}),m=R(e),h=n.at(-1),g=(e,...t)=>u.rules.splice(e,c?t.length:0,...t);if(u.rules.length===0||!m)g(h,p);else if(c&&m)g(h+h%2,p);else if(h===0)p.path?.at(-1)===0&&o?g(h,p,o):g(h,p,u.rules[1]??a??H(i));else{let e=h%2==0?h-1:h;a?g(e,a,p):g(e,u.rules[e-2]??o??H(i),p)}return e},Ki=(e,t,n,r={})=>a(e,e=>qi(e,t,n,r)),qi=(e,t,r,a={})=>{let{clone:o=!1,combinators:s=O,idGenerator:c=Q,onAbort:l}=a,u=Array.isArray(t)?t:Kr(t,e),d=Array.isArray(r)?r:Kr(r,e);if(!u)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:t}),e;if(!d)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:r}),e;let f=Vi(e,u,d);if(u.length===0)return l?.({reason:`root-not-allowed`,operation:`group`,pathOrID:t}),e;let p=Oi(e,u,a);if(p)return l?.({reason:p,operation:`group`,pathOrID:t}),e;if(qr(u,f))return l?.({reason:`same-location`,operation:`group`,pathOrID:t}),e;if(!X(Z(f),e)||!o&&Jr(u,f))return l?.({reason:`destination-not-found`,operation:`group`,pathOrID:r}),e;let m=X(u,e),h=X(d,e);if(!m)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:t}),e;if(!h)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:r}),e;let g=o?Di(i(m)?n(m):m,{idGenerator:c}):m,_=R(e),v=X(Z(u),e),y=u.at(-1);if(!o){let e=_?Math.max(0,y-1):y,t=_?2:1;v.rules.splice(e,t)}let b=[...f],x=Yr(u,f);!o&&u.length===x.length+1&&f[x.length]>u[x.length]&&(b[x.length]-=_?2:1);let S=Z(b),C=X(S,e),w=b.at(-1);return C.rules.splice(w,1,wi(_?{rules:[h,H(s),g]}:{combinator:H(s),rules:[h,g]},{idGenerator:c})),e},Ji=(e={})=>{let{qbId:t,combinators:n,idGenerator:r,maxLevels:i=1/0,queryDisabled:a,respectDisabled:o=!0,disabledPaths:s,resetOnFieldChange:c,resetOnOperatorChange:l,getRuleDefaultOperator:u,getValueSources:d,getRuleDefaultValue:f,getMatchModes:p,onAddRule:m,onAddGroup:h,onRemove:g,onMoveRule:_,onMoveGroup:v,onGroupRule:y,onGroupGroup:b,onLog:x}=e,S=e=>x?.({qbId:t,...e}),C={respectDisabled:o,queryDisabled:a,disabledPaths:s},w=(e,t,n=!1)=>!!Oi(e,t,C,{asParent:n});return{addRule:(e,t,i,a)=>{if(w(e,i,!0)){S({type:j.parentPathDisabled,rule:t,parentPath:i,query:e});return}let o=!m||m(t,i,e,a);if(!o){S({type:j.onAddRuleFalse,rule:t,parentPath:i,query:e});return}let s=o===!0?t:o,c=Ai(e,s,i,{combinators:n,combinatorPreceding:s.combinatorPreceding,idGenerator:r});return S({type:j.add,query:e,newQuery:c,newRule:s,parentPath:i}),c},addGroup:(e,t,a,o)=>{if(a.length>=i)return;if(w(e,a,!0)){S({type:j.parentPathDisabled,ruleGroup:t,parentPath:a,query:e});return}let s=!h||h(t,a,e,o);if(!s){S({type:j.onAddGroupFalse,ruleGroup:t,parentPath:a,query:e});return}let c=s===!0?t:s,l=Ai(e,c,a,{combinators:n,combinatorPreceding:c.combinatorPreceding??void 0,idGenerator:r});return S({type:j.add,query:e,newQuery:l,newGroup:c,parentPath:a}),l},propChange:(e,t,n,r)=>{if(Oi(e,r,t===`disabled`?{queryDisabled:a}:C)){S({type:j.pathDisabled,path:r,prop:t,value:n,query:e});return}let i=Ii(e,t,n,r,{resetOnFieldChange:c,resetOnOperatorChange:l,getRuleDefaultOperator:u,getValueSources:d,getRuleDefaultValue:f,getMatchModes:p});return S({type:j.update,query:e,newQuery:i,prop:t,value:n,path:r}),i},removeRuleOrGroup:(e,t,n)=>{if(w(e,t)){S({type:j.pathDisabled,path:t,query:e});return}let r=X(t,e);if(!r)return;if(g&&!g(r,t,e,n)){S({type:j.onRemoveFalse,ruleOrGroup:r,path:t,query:e});return}let i=zi(e,t);return S({type:j.remove,query:e,newQuery:i,path:t,ruleOrGroup:r}),i},moveRule:(e,t,i,a,o)=>{if(w(e,t)){S({type:j.pathDisabled,oldPath:t,newPath:i,query:e});return}let s=X(t,e);if(!s)return;let c=Hi(e,t,i,{clone:a,combinators:n,idGenerator:r}),l=I(s),u=l?v:_,d=!u||u(s,t,i,e,c,{clone:a,combinators:n},o);if(!d){S({type:l?j.onMoveGroupFalse:j.onMoveRuleFalse,ruleOrGroup:s,oldPath:t,newPath:i,clone:a,query:e,nextQuery:c});return}let f=I(d)?d:c;return S({type:j.move,query:e,newQuery:f,oldPath:t,newPath:i,clone:a}),f},groupRule:(e,t,i,a,o)=>{if(w(e,t)){S({type:j.pathDisabled,sourcePath:t,targetPath:i,query:e});return}let s=X(t,e);if(!s)return;let c=Ki(e,t,i,{clone:a,combinators:n,idGenerator:r}),l=I(s),u=l?b:y,d=!u||u(s,t,i,e,c,{clone:a,combinators:n},o);if(!d){S({type:l?j.onGroupGroupFalse:j.onGroupRuleFalse,ruleOrGroup:s,sourcePath:t,targetPath:i,clone:a,query:e,nextQuery:c});return}let f=I(d)?d:c;return S({type:j.group,query:e,newQuery:f,sourcePath:t,targetPath:i,clone:a}),f}}},Yi=({fields:e,getDefaultField:t,getRuleDefaultOperator:n,getValueSources:r,getMatchModes:i,getRuleDefaultValue:a,idGenerator:o=Q})=>{let s=H(e)??``;if(t)if(typeof t==`function`){let n=t(e);n&&(s=n)}else s=t;let c=V(e,s),l=n(s),u=H(r(s,l,{fieldData:c}))??`value`,d=H(i(s,{fieldData:c})),f={id:o(),field:s,operator:l,valueSource:u,value:``,...d?{match:{mode:d,threshold:1}}:null};return{...f,value:a(f)}},Xi=({combinators:e,addRuleToNewGroups:t,createRule:n,idGenerator:r=Q},i)=>{let a=r(),o=t?[n()]:[];return i?{id:a,rules:o,not:!1}:{id:a,rules:o,combinator:H(e)??``,not:!1}},Zi=`~structural`,Qi=``,$i=(e,t)=>{let n=new Set([...Object.keys(e),...Object.keys(t)]);n.delete(`rules`);let r=[];for(let i of n)Object.is(e[i],t[i])||r.push(i);return r.toSorted()},ea=(e,t,n,r)=>{if(e===t)return``;if(typeof e==`string`||typeof t==`string`)return typeof e==typeof t?`${n}:combinator[${r}]`:Zi;let i=I(e),a=I(t);if(i!==a)return Zi;if(!i||!a){let n=$i(e,t);return n.length===0?``:`${t.id??``}:${n.join(`,`)}`}if(e.rules.length!==t.rules.length)return Zi;let o=$i(e,t),s=-1;for(let[n,r]of e.rules.entries())if(r!==t.rules[n]){if(s!==-1)return Zi;s=n}return s===-1?o.length===0?``:`${t.id??``}:${o.join(`,`)}`:o.length>0?Zi:ea(e.rules[s],t.rules[s],t.id??``,s)},ta=(e,t)=>ea(e,t,``,-1),na=[`target-not-found`,`parent-not-found`,`parent-not-a-group`,`destination-not-found`,`root-not-allowed`,`not-a-combinator-slot`,`target-disabled`,`parent-disabled`,`max-levels-exceeded`],ra=new Set(na);var ia=class e extends Error{code;info;constructor(t){super(`QueryManager: "${t.operation}" aborted (${t.reason})${t.pathOrID===void 0?``:` for target ${JSON.stringify(t.pathOrID)}`}.`),this.name=`QueryManagerError`,this.code=t.reason,this.info=t,Object.setPrototypeOf(this,e.prototype)}},aa=class e{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d=new Set;#f;#p;#m;#h;#g=0;#_=[];#v=[];#y;#b=0;#x=0;#S;#C=!1;#w;#T;#E;constructor(e,t={}){this.#D(t),this.#e=r(e?Ci(e,{idGenerator:this.#o}):this.createRuleGroup(),!0)}#D(e){this.#t=e,this.#o=e.idGenerator??Q,this.#s=e.validator??Ie,this.#c=e.strict??!1,this.#l=e.respectDisabled??!0,this.#u=e.onInvalidTarget;let t=e.history??!1,n=typeof t==`object`?t:{};this.#f=t!==!1,this.#p=n.maxHistory??50,this.#m=n.coalesceMs??500,this.#h=e.now??Date.now;let{optionList:i,optionsMap:a}=et({optionList:e.fields,baseOption:e.baseField,autoSelectOption:e.autoSelectField,placeholder:e.translations?.fields});this.#n=r(i,!0),this.#r=r(a,!0),this.#i=et({optionList:e.operators??x,baseOption:e.baseOperator,labelMap:y,autoSelectOption:e.autoSelectOperator,placeholder:e.translations?.operators}).optionList,this.#a=r(et({optionList:e.combinators??O,baseOption:e.baseCombinator}).optionList,!0)}#O(e){return this.#r[e]??{}}#k(e){return pi({field:e,fieldData:this.#O(e),getOperators:this.#t.getOperators,operators:this.#i,baseOption:this.#t.baseOperator,autoSelectOption:this.#t.autoSelectOperator,placeholder:this.#t.translations?.operators})}#A(e){return mi({field:e,fieldData:this.#O(e),getDefaultOperator:this.#t.getDefaultOperator,getOperators:e=>this.#k(e)})}#j(e,t){return li(this.#O(e),t,this.#t.getValueSources)}#M(e){return ri(this.#O(e),this.#t.getMatchModes)}#N(e,t){return gi({field:e,operator:t,fieldData:this.#O(e),getValues:this.#t.getValues,autoSelectOption:this.#t.autoSelectValue,placeholder:this.#t.translations?.values})}#P(e,t){return hi({field:e,operator:t,fieldData:this.#O(e),getValueEditorType:this.#t.getValueEditorType})}#F(e){let{getDefaultValue:t,getParameters:n,listsAsArrays:r}=this.#t;return ai(e,{fieldData:this.#O(e.field),fields:this.#n,listsAsArrays:r,getValueEditorType:(e,t)=>this.#P(e,t),getValues:(e,t)=>this.#N(e,t),getDefaultValue:t&&((e,n)=>t(e,n)),getParameters:n&&((e,t,n)=>this.#I(e,t,n))})}#I(e,t,n){return et({optionList:this.#t.getParameters?.(e,t,n)??[],autoSelectOption:this.#t.autoSelectValue}).optionList}#L(){let{maxLevels:e}=this.#t;return{maxLevels:(e??0)>0?Number(e):1/0,respectDisabled:this.#l,disabledPaths:this.#t.disabledPaths,queryDisabled:this.#t.queryDisabled}}#R(){return{combinators:this.#a,idGenerator:this.#o,...this.#L()}}#z({strict:e,onInvalidTarget:t}){let n=e??this.#c,r=t??this.#u;return e=>{if(r?.(e),n&&ra.has(e.reason))throw new ia(e)}}#B(){return{getRuleDefaultOperator:e=>this.#A(e),getRuleDefaultValue:e=>this.#F(e),getValueSources:(e,t)=>this.#j(e,t),getMatchModes:e=>this.#M(e),resetOnFieldChange:this.#t.resetOnFieldChange,resetOnOperatorChange:this.#t.resetOnOperatorChange,...this.#L()}}#V(e){let t=this.#e;t!==e&&(this.#e=e,!(this.#x>0)&&(this.#H(t,e),this.#U()))}#H(e,t){if(!this.#f)return;let n=ta(e,t);if(n===``)return;let r=this.#h();n!==`~structural`&&n===this.#y&&r-this.#b<this.#m||(this.#_.push(e),this.#_.length>this.#p&&this.#_.shift(),this.#v=[]),this.#y=n,this.#b=r}#U(){for(let e of this.#d)e()}#W(){this.#x>0&&(this.#C=!0)}#G(){this.#w!==this.#e&&(this.#w=this.#e,this.#T=void 0,this.#E=void 0)}*#K(e,t,n){if(yield{node:e,path:t,parent:n},!I(e))return;let r=e;for(let[e,n]of r.rules.entries())typeof n!=`string`&&(yield*this.#K(n,[...t,e],r))}#q(){if(this.#G(),!this.#T){let e=new Map;for(let{node:t,path:n}of this.#K(this.#e,[],null))t.id!==void 0&&!e.has(t.id)&&e.set(t.id,n);this.#T=e}return this.#T}#J(e){return typeof e==`string`?this.#q().get(e)??null:e}getQuery=()=>this.#e;setQuery(e){return this.#V(r(Ci(e,{idGenerator:this.#o}),!0)),this}createRule(){return Yi({fields:this.#n,getDefaultField:this.#t.getDefaultField,getRuleDefaultOperator:e=>this.#A(e),getValueSources:(e,t)=>this.#j(e,t),getMatchModes:e=>this.#M(e),getRuleDefaultValue:e=>this.#F(e),idGenerator:this.#o})}createRuleGroup(e){return Xi({combinators:this.#a,addRuleToNewGroups:this.#t.addRuleToNewGroups,createRule:()=>this.createRule(),idGenerator:this.#o},e)}add(e,t=[],n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.#V(Ai(this.#e,e,t,{...this.#R(),...a,onAbort:this.#z({strict:r,onInvalidTarget:i})})),this}remove(e,t={}){let{strict:n,onInvalidTarget:r,...i}=t;return this.#V(zi(this.#e,e,{...this.#L(),...i,onAbort:this.#z({strict:n,onInvalidTarget:r})})),this}update(e,t,n,r){let i=typeof e==`string`||Array.isArray(e)?3:2,a=[e,t,n,r],{strict:o,onInvalidTarget:s,...c}=a[i]??{};return a[i]={...this.#B(),...c,onAbort:this.#z({strict:o,onInvalidTarget:s})},this.#V(Ii(this.#e,...a.slice(0,i+1))),this}move(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.#V(Hi(this.#e,e,t,{...this.#R(),...a,onAbort:this.#z({strict:r,onInvalidTarget:i})})),this}insert(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.#V(Wi(this.#e,e,t,{...this.#R(),...a,onAbort:this.#z({strict:r,onInvalidTarget:i})})),this}group(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.#V(Ki(this.#e,e,t,{...this.#R(),...a,onAbort:this.#z({strict:r,onInvalidTarget:i})})),this}getOptions(){return r({...this.#t})}reconfigure(e,t){return this.#D(r(t?.replace?{...e}:{...this.#t,...e})),this.#E=void 0,this.#Y(),++this.#g,this.#U(),this}#Y(){this.#f?this.#_.length>this.#p&&this.#_.splice(0,this.#_.length-this.#p):(this.#_=[],this.#v=[],this.#y=void 0)}getConfigVersion=()=>this.#g;clone(t){let n=t?.regenerateIDs?Di(this.#e,{idGenerator:this.#o}):this.#e;return new e(n,this.#t)}subscribe=e=>(this.#d.add(e),()=>{this.#d.delete(e)});batch(e){this.#x++,this.#x===1&&(this.#S={query:this.#e,past:[...this.#_],future:[...this.#v],lastSig:this.#y,lastAt:this.#b});try{e()}catch(e){if(this.#x===1){let e=this.#S;this.#e=e.query,this.#_=e.past,this.#v=e.future,this.#y=e.lastSig,this.#b=e.lastAt,this.#Y()}throw e}finally{if(this.#x--,this.#x===0){let{query:e}=this.#S;this.#S=void 0,e!==this.#e&&(this.#C||this.#H(e,this.#e),this.#U()),this.#C=!1}}return this}canUndo(){return this.#_.length>0}canRedo(){return this.#v.length>0}undo(){return this.#_.length===0?this:(this.#v.unshift(this.#e),this.#e=this.#_.pop(),this.#y=void 0,this.#W(),this.#x===0&&this.#U(),this)}redo(){return this.#v.length===0?this:(this.#_.push(this.#e),this.#e=this.#v.shift(),this.#y=void 0,this.#W(),this.#x===0&&this.#U(),this)}clearHistory(){return this.#W(),this.#_=[],this.#v=[],this.#y=void 0,this}getHistory(){return{past:[...this.#_],future:[...this.#v]}}validate(){return this.#G(),this.#E??=this.#s(this.#e),this.#E}format(e){return Ir(this.#e,e)}*walk(e={}){let{from:t,rulesOnly:n,groupsOnly:r}=e,i=this.#e,a=[],o=null;if(t!==void 0){let e=this.#J(t),n=e&&X(e,this.#e);if(!e||!n)return;i=n,a=e,o=e.length===0?null:X(Z(e),this.#e)}for(let e of this.#K(i,a,o))n&&I(e.node)||r&&!I(e.node)||(yield e)}rules(e={}){return this.walk({...e,rulesOnly:!0})}groups(e={}){return this.walk({...e,groupsOnly:!0})}find(e,t={}){for(let n of this.walk(t))if(e(n))return n;return null}filter(e,t={}){let n=[];for(let r of this.walk(t))e(r)&&n.push(r);return n}[Symbol.iterator](){return this.walk()}findPath(e){return X(e,this.#e)??null}findID(e){let t=this.#q().get(e);return t===void 0?null:X(t,this.#e)}getPathOfID(e){return this.#q().get(e)??null}pathIsDisabled(e){return Xr(e,this.#e)}getNode(e){let t=this.#J(e);return t===null?null:X(t,this.#e)??null}getRule(e){let t=this.getNode(e);return t&&!I(t)?t:null}getGroup(e){let t=this.getNode(e);return t&&I(t)?t:null}getParent(e){let t=this.#J(e);return t===null||t.length===0||!X(t,this.#e)?null:X(Z(t),this.#e)}getFields(){return this.#n}getCombinators(){return this.#a}getFieldData(e){return rt(e,this.#r)}getOperators(e){return this.#k(e)}getValueSources(e,t){return this.#j(e,t)}getMatchModes(e){return this.#M(e)}getValues(e,t){return this.#N(e,t)}getValueEditorType(e,t){return this.#P(e,t)}getRuleContext(e){let t=this.getRule(e);if(!t)return null;let n=this.validate();return dt(t,{fields:this.#n,fieldMap:this.#r,getInputType:(e,t,n)=>this.#t.getInputType?.(e,t,n)??null,getMatchModes:e=>this.#M(e),getOperators:e=>this.#k(e),getParameters:(e,t,n)=>this.#I(e,t,n),getValueEditorType:(e,t)=>this.#P(e,t),getValues:(e,t)=>this.#N(e,t),getValueSources:(e,t)=>this.getValueSources(e,t),getSubQueryBuilderProps:(e,t)=>this.#t.getSubQueryBuilderProps?.(e,t)??{}},{validationMap:typeof n==`boolean`?{}:n,id:t.id})}getRuleGroupContext(e=[]){let t=this.getGroup(e);if(!t)return null;let n=this.validate();return pt(t,this.#a,{validationMap:typeof n==`boolean`?{}:n,id:t.id})}isIC(){return R(this.#e)}signatureOf(e){return ta(this.#e,e)}diagnostics(){return Ir(this.#e,`diagnostics`)}toJSON(){return this.#e}toIC(){return new e(ye(this.#e),this.#t)}fromIC(){return new e(z(this.#e),this.#t)}transform(e){return W(this.#e,e)}};export{j as LogType,aa as QueryManager,ia as QueryManagerError,re as TestID,Ai as add,ji as addInPlace,D as betweenOperators,qt as bigIntJsonParseReviver,Kt as bigIntJsonStringifyReplacer,jt as celCombinatorMap,fe as clsx,vt as coerceBigIntValue,yt as coerceInputType,z as convertFromIC,be as convertQuery,ye as convertToIC,Ji as createQueryActions,Yi as createRule,Xi as createRuleGroup,dn as cypherCombinatorMap,Br as defaultCELValueProcessor,se as defaultCoalesceMs,b as defaultCombinatorLabelMap,O as defaultCombinators,ee as defaultCombinatorsExtended,te as defaultControlClassnames,mr as defaultExportOperatorMap,v as defaultJoinChar,k as defaultMatchModes,oe as defaultMaxHistory,zr as defaultMongoDBValueProcessor,Vt as defaultNLTranslations,y as defaultOperatorLabelMap,S as defaultOperatorNegationMap,gr as defaultOperatorProcessorNL,vr as defaultOperatorProcessorSQL,x as defaultOperators,u as defaultPlaceholderFieldGroupLabel,l as defaultPlaceholderFieldLabel,c as defaultPlaceholderFieldName,s as defaultPlaceholderLabel,o as defaultPlaceholderName,p as defaultPlaceholderOperatorGroupLabel,f as defaultPlaceholderOperatorLabel,d as defaultPlaceholderOperatorName,g as defaultPlaceholderValueGroupLabel,h as defaultPlaceholderValueLabel,m as defaultPlaceholderValueName,Jt as defaultRuleGroupProcessorCEL,fn as defaultRuleGroupProcessorCypher,zn as defaultRuleGroupProcessorDiagnostics,pn as defaultRuleGroupProcessorDrizzle,mn as defaultRuleGroupProcessorElasticSearch,hn as defaultRuleGroupProcessorGremlin,gn as defaultRuleGroupProcessorJSONata,_n as defaultRuleGroupProcessorJsonLogic,vn as defaultRuleGroupProcessorLDAP,bn as defaultRuleGroupProcessorMongoDB,$t as defaultRuleGroupProcessorMongoDBQuery,xn as defaultRuleGroupProcessorNL,Sn as defaultRuleGroupProcessorParameterized,wn as defaultRuleGroupProcessorPrisma,En as defaultRuleGroupProcessorSPARQL,Dn as defaultRuleGroupProcessorSQL,Tn as defaultRuleGroupProcessorSequelize,rn as defaultRuleGroupProcessorSpEL,On as defaultRuleGroupProcessorTanStackDB,Zt as defaultRuleProcessorCEL,Wn as defaultRuleProcessorCypher,Gn as defaultRuleProcessorDrizzle,Qn as defaultRuleProcessorElasticSearch,er as defaultRuleProcessorGremlin,ar as defaultRuleProcessorJSONata,cr as defaultRuleProcessorJsonLogic,dr as defaultRuleProcessorLDAP,nn as defaultRuleProcessorMongoDB,tn as defaultRuleProcessorMongoDBQuery,_r as defaultRuleProcessorNL,br as defaultRuleProcessorParameterized,Sr as defaultRuleProcessorPrisma,Er as defaultRuleProcessorSPARQL,yr as defaultRuleProcessorSQL,Cr as defaultRuleProcessorSequelize,cn as defaultRuleProcessorSpEL,Dr as defaultRuleProcessorTanStackDB,Vr as defaultSpELValueProcessor,_ as defaultTranslations,Ie as defaultValidator,Rr as defaultValueProcessor,un as defaultValueProcessorByRule,Hr as defaultValueProcessorCELByRule,Ur as defaultValueProcessorMongoDBByRule,pr as defaultValueProcessorNL,Wr as defaultValueProcessorSpELByRule,Qr as derivePathInfo,Fe as deriveQueryBuilderClassNames,Ae as deriveRuleClassName,ke as deriveRuleClassNames,dt as deriveRuleContext,je as deriveRuleGroupClassNames,pt as deriveRuleGroupContext,Pe as deriveRuleGroupOuterClassName,Ne as deriveRuleOuterClassName,ki as exceedsMaxLevels,nt as filterFieldsByComparator,Gr as findID,X as findPath,Ir as formatQuery,kr as formatQueryOptionPresets,$r as generateAccessibleDescription,Q as generateID,Yr as getCommonAncestorPath,rt as getFieldData,H as getFirstOption,Oi as getGuardAbortReason,Dt as getLikeWildcards,ri as getMatchModesUtil,_t as getMultiValueUpdate,Ut as getNLTranslataion,V as getOption,st as getParametersAsList,Z as getParentPath,wt as getParseNumberMethod,Kr as getPathOfID,Ft as getQuoteFieldNamesWithArray,It as getQuotedFieldName,ai as getRuleDefaultValue,ft as getRuleGroupCombinator,it as getRuleInputType,ut as getRuleValidationResult,ct as getRuleValueEditorType,ot as getRuleValueSourceOptions,lt as getRuleValues,Et as getSQLConcat,Gt as getSubqueryElementAlias,oi as getValidationClassNames,gt as getValueEditorReset,bt as getValueSelectorUpdate,li as getValueSourcesUtil,Ki as group,qi as groupInPlace,ne as groupInvalidReasons,at as hideValueControlsForOperator,E as inOperators,Wi as insert,Gi as insertInPlace,Jr as isAncestor,ht as isBetweenOperator,qe as isFlexibleOptionArray,Ye as isFlexibleOptionGroupArray,Je as isFullOptionArray,Xe as isFullOptionGroupArray,Ke as isOptionGroupArray,F as isPojo,I as isRuleGroup,L as isRuleGroupType,R as isRuleGroupTypeIC,G as isRuleOrGroupValid,he as isRuleType,ze as isUnsafeKey,K as isValidValue,Ct as isValidationResult,Pt as isValueProcessorLegacy,le as joinWith,Mt as jsonLogicAdditionalOperators,P as lc,Tt as mapSQLOperator,di as mergeAnyTranslation,ui as mergeAnyTranslations,fi as mergeClassnames,Qt as mongoDbFallback,kt as mongoOperators,Hi as move,Ui as moveInPlace,Rt as normalizeConstituentWordOrder,xt as normalizeValueSelectorValue,ue as nullFreeArray,T as nullOperators,me as nullOrUndefinedOrEmpty,pe as numericRegex,Nt as numerifyValues,Re as objectEntries,Le as objectKeys,U as parseNumber,Xr as pathIsDisabled,Zr as pathIsDisabledByPaths,qr as pathsAreEqual,bi as preferAnyProp,xi as preferFlagProps,yi as preferProp,et as prepareOptionList,Si as prepareRule,Ci as prepareRuleGroup,wi as prepareRuleOrGroup,Cn as prismaFallback,At as prismaOperators,J as processMatchMode,ae as queryBuilderFlagDefaults,Ei as regenerateID,Di as regenerateIDs,C as relationalOperators,zi as remove,Bi as removeInPlace,Ti as resolveCandidateQuery,mi as resolveDefaultOperator,pi as resolveOperatorList,hi as resolveValueEditorType,gi as resolveValueList,ie as rootPath,q as shouldRenderAsNumber,ta as signatureOf,Tr as sparqlVar,ce as splitBy,Or as sqlDialectPresets,A as standardClassnames,na as strictAbortReasons,Bt as stripParamPrefix,Zi as structuralSignature,Wt as subqueryElementAliasBase,w as substringOperators,N as toArray,Ze as toFlatOptionArray,B as toFullOption,He as toFullOptionList,Ue as toFullOptionMap,W as transformQuery,M as trimIfString,Qi as unchangedSignature,Ge as uniqByIdentifier,We as uniqByName,Qe as uniqOptGroups,$e as uniqOptList,Ii as update,Li as updateInPlace,ti as uuidV4regex,zt as withParamPrefix,Ot as wrapLikeFragment};
|
|
1
|
+
import{numericQuantity as e,numericRegex as t}from"numeric-quantity";import{Immer as n,current as r,freeze as i,isDraft as a,produce as o,setAutoFreeze as s}from"immer";const c=`actionElement.addGroupAction.addRuleAction.cloneGroupAction.cloneRuleAction.combinatorSelector.dragHandle.fieldSelector.inlineCombinator.lockGroupAction.lockRuleAction.matchModeEditor.muteGroupAction.muteRuleAction.notToggle.operatorSelector.removeGroupAction.removeRuleAction.rule.ruleGroup.ruleGroupBodyElements.ruleGroupHeaderElements.shiftActions.undoRedoActions.valueEditor.valueSelector.valueSourceSelector`.split(`.`),l={actionElement:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],addGroupAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],addRuleAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],cloneGroupAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],cloneRuleAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],combinatorSelector:[`className`,`context`,`disabled`,`handleOnChange`,`level`,`options`,`path`,`ruleGroup`,`rules`,`schema`,`testID`,`title`,`validation`,`value`],dragHandle:[`className`,`context`,`disabled`,`dragHandleAttributes`,`label`,`level`,`path`,`ruleOrGroup`,`schema`,`testID`,`title`,`validation`],fieldSelector:[`className`,`context`,`disabled`,`handleOnChange`,`level`,`operator`,`options`,`path`,`rule`,`schema`,`testID`,`title`,`validation`,`value`],inlineCombinator:[`className`,`component`,`context`,`disabled`,`handleOnChange`,`level`,`options`,`path`,`ruleGroup`,`rules`,`schema`,`testID`,`title`,`validation`,`value`],lockGroupAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],lockRuleAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],matchModeEditor:[`className`,`classNames`,`context`,`disabled`,`field`,`fieldData`,`handleOnChange`,`level`,`match`,`numericEditorComponent`,`options`,`path`,`rule`,`schema`,`selectorComponent`,`testID`,`thresholdPlaceholder`,`title`,`validation`,`value`],muteGroupAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],muteRuleAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],notToggle:[`checked`,`className`,`context`,`disabled`,`handleOnChange`,`label`,`level`,`path`,`ruleGroup`,`schema`,`testID`,`title`,`validation`],operatorSelector:[`className`,`context`,`disabled`,`field`,`fieldData`,`handleOnChange`,`level`,`options`,`path`,`rule`,`schema`,`testID`,`title`,`validation`,`value`],removeGroupAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],removeRuleAction:[`className`,`context`,`disabled`,`disabledTranslation`,`handleOnClick`,`label`,`level`,`path`,`ruleOrGroup`,`rules`,`schema`,`testID`,`title`,`validation`],rule:`actions.context.disabled.dndRef.dragHandleAttributes.dragMonitorId.dragRef.dropEffect.dropMonitorId.dropNotAllowed.field.groupItems.id.isDragging.isOver.operator.parentDisabled.parentMuted.path.rule.schema.shiftDownDisabled.shiftUpDisabled.translations.value.valueSource`.split(`.`),ruleGroup:`actions.combinator.context.disabled.dragHandleAttributes.dragMonitorId.dragRef.dropEffect.dropMonitorId.dropNotAllowed.dropRef.groupItems.id.isDragging.isOver.not.parentDisabled.parentMuted.path.previewRef.ruleGroup.rules.schema.shiftDownDisabled.shiftUpDisabled.translations`.split(`.`),ruleGroupBodyElements:`accessibleDescription.actions.addGroup.addRule.classNames.cloneGroup.combinator.context.disabled.dragHandleAttributes.dragMonitorId.dragRef.dropEffect.dropMonitorId.dropNotAllowed.dropRef.groupItems.id.isDragging.isOver.muted.not.onCombinatorChange.onGroupAdd.onIndependentCombinatorChange.onNotToggleChange.outerClassName.parentDisabled.parentMuted.path.pathsMemo.previewRef.removeGroup.ruleGroup.rules.schema.shiftDownDisabled.shiftGroupDown.shiftGroupUp.shiftUpDisabled.toggleLockGroup.toggleMuteGroup.translations.validationClassName.validationResult`.split(`.`),ruleGroupHeaderElements:`accessibleDescription.actions.addGroup.addRule.classNames.cloneGroup.combinator.context.disabled.dragHandleAttributes.dragMonitorId.dragRef.dropEffect.dropMonitorId.dropNotAllowed.dropRef.groupItems.id.isDragging.isOver.muted.not.onCombinatorChange.onGroupAdd.onIndependentCombinatorChange.onNotToggleChange.outerClassName.parentDisabled.parentMuted.path.pathsMemo.previewRef.removeGroup.ruleGroup.rules.schema.shiftDownDisabled.shiftGroupDown.shiftGroupUp.shiftUpDisabled.toggleLockGroup.toggleMuteGroup.translations.validationClassName.validationResult`.split(`.`),shiftActions:[`className`,`context`,`disabled`,`labels`,`level`,`path`,`ruleOrGroup`,`schema`,`shiftDown`,`shiftDownDisabled`,`shiftUp`,`shiftUpDisabled`,`testID`,`title`,`titles`,`validation`],undoRedoActions:[`className`,`classNames`,`context`,`disabled`,`labels`,`level`,`path`,`ruleOrGroup`,`schema`,`testID`,`title`,`titles`,`validation`],valueEditor:[`className`,`context`,`disabled`,`field`,`fieldData`,`handleOnChange`,`inputType`,`level`,`listsAsArrays`,`operator`,`parseNumbers`,`path`,`rule`,`schema`,`selectorComponent`,`separator`,`skipHook`,`testID`,`title`,`type`,`validation`,`value`,`valueSource`,`values`],valueSelector:[`className`,`context`,`disabled`,`handleOnChange`,`level`,`listsAsArrays`,`multiple`,`options`,`path`,`schema`,`testID`,`title`,`validation`,`value`],valueSourceSelector:[`className`,`context`,`disabled`,`field`,`fieldData`,`handleOnChange`,`level`,`options`,`path`,`rule`,`schema`,`testID`,`title`,`validation`,`value`]},u={actionElement:null,addGroupAction:`action`,addRuleAction:`action`,cloneGroupAction:`action`,cloneRuleAction:`action`,combinatorSelector:`selector`,dragHandle:null,fieldSelector:`selector`,inlineCombinator:null,lockGroupAction:`action`,lockRuleAction:`action`,matchModeEditor:null,muteGroupAction:`action`,muteRuleAction:`action`,notToggle:null,operatorSelector:`selector`,removeGroupAction:`action`,removeRuleAction:`action`,rule:null,ruleGroup:null,ruleGroupBodyElements:null,ruleGroupHeaderElements:null,shiftActions:null,undoRedoActions:null,valueEditor:null,valueSelector:null,valueSourceSelector:`selector`},d=`~`,f=`------`,p=`~`,m=f,h=f,g=`~`,_=f,v=f,y=`~`,b=f,x=f,S={fields:{title:`Field`,placeholderName:`~`,placeholderLabel:m,placeholderGroupLabel:h},operators:{title:`Operator`,placeholderName:`~`,placeholderLabel:_,placeholderGroupLabel:v},values:{title:`Values`,placeholderName:`~`,placeholderLabel:b,placeholderGroupLabel:x},matchMode:{title:`Match mode`},matchThreshold:{title:`Match threshold`,placeholderName:`#`},value:{title:`Value`},removeRule:{label:`⨯`,title:`Remove rule`},removeGroup:{label:`⨯`,title:`Remove group`},addRule:{label:`+ Rule`,title:`Add rule`},addGroup:{label:`+ Group`,title:`Add group`},combinators:{title:`Combinator`},notToggle:{label:`Not`,title:`Invert this group`},cloneRule:{label:`⧉`,title:`Clone rule`},cloneRuleGroup:{label:`⧉`,title:`Clone group`},shiftActionUp:{label:`˄`,title:`Shift up`},shiftActionDown:{label:`˅`,title:`Shift down`},undo:{label:`↶`,title:`Undo`},redo:{label:`↷`,title:`Redo`},dragHandle:{label:`⁞⁞`,title:`Drag handle`},lockRule:{label:`🔓`,title:`Lock rule`},lockGroup:{label:`🔓`,title:`Lock group`},lockRuleDisabled:{label:`🔒`,title:`Unlock rule`},lockGroupDisabled:{label:`🔒`,title:`Unlock group`},muteRule:{label:`🔊`,title:`Mute rule`},muteGroup:{label:`🔊`,title:`Mute group`},unmuteRule:{label:`🔇`,title:`Unmute rule`},unmuteGroup:{label:`🔇`,title:`Unmute group`},valueSourceSelector:{title:`Value source`}},C=`,`,w={"=":`=`,"!=":`!=`,"<":`<`,">":`>`,"<=":`<=`,">=":`>=`,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`},T={and:`AND`,or:`OR`,xor:`XOR`},E=[{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`}],D={"=":`!=`,"!=":`=`,"<":`>=`,"<=":`>`,">":`<=`,">=":`<`,beginsWith:`doesNotBeginWith`,doesNotBeginWith:`beginsWith`,endsWith:`doesNotEndWith`,doesNotEndWith:`endsWith`,contains:`doesNotContain`,doesNotContain:`contains`,between:`notBetween`,notBetween:`between`,in:`notIn`,notIn:`in`,notNull:`null`,null:`notNull`},O=new Set([`=`,`!=`,`<`,`>`,`<=`,`>=`]),ee=new Set([`contains`,`beginsWith`,`endsWith`,`doesNotContain`,`doesNotBeginWith`,`doesNotEndWith`]),te=new Set([`null`,`notNull`]),ne=new Set([`in`,`notIn`]),re=new Set([`between`,`notBetween`]),k=[{name:`and`,value:`and`,label:`AND`},{name:`or`,value:`or`,label:`OR`}],ie=[...k,{name:`xor`,value:`xor`,label:`XOR`}],ae=[{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`}],oe={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`,undoRedoActions:`undoRedoActions`,undoAction:`undoRedoActions-undo`,redoAction:`undoRedoActions-redo`,dndDragging:`dndDragging`,dndOver:`dndOver`,dndCopy:`dndCopy`,dndGroup:`dndGroup`,dndDropNotAllowed:`dndDropNotAllowed`,dndPreviewPosition:`dndPreviewPosition`,dndHidden:`dndHidden`,dragHandle:`queryBuilder-dragHandle`,disabled:`queryBuilder-disabled`,muted:`queryBuilder-muted`,lockRule:`rule-lock`,lockGroup:`ruleGroup-lock`,muteRule:`rule-mute`,muteGroup:`ruleGroup-mute`,valueSource:`rule-valueSource`,valueListItem:`rule-value-list-item`,branches:`queryBuilder-branches`,justified:`queryBuilder-justified`,responsive:`queryBuilder-responsive`,hasSubQuery:`rule-hasSubQuery`,loading:`queryBuilder-loading`,valueDateTimeRelative:`rule-value-dateTimeRelative`},se={queryBuilder:``,ruleGroup:``,header:``,body:``,combinators:``,addRule:``,addGroup:``,cloneRule:``,cloneGroup:``,removeGroup:``,notToggle:``,rule:``,fields:``,matchMode:``,matchThreshold:``,operators:``,value:``,removeRule:``,shiftActions:``,undoRedoActions:``,undoAction:``,redoAction:``,dragHandle:``,lockRule:``,lockGroup:``,muteRule:``,muteGroup:``,muted:``,valueSource:``,actionElement:``,valueSelector:``,betweenRules:``,valid:``,invalid:``,dndDragging:``,dndOver:``,dndGroup:``,dndCopy:``,dndDropNotAllowed:``,dndPreviewPosition:``,dndHidden:``,disabled:``,valueListItem:``,branches:``,hasSubQuery:``,loading:``,valueDateTimeRelative:``},ce={empty:`empty`,invalidCombinator:`invalid combinator`,invalidIndependentCombinators:`invalid independent combinators`},le={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`,undoRedoActions:`undo-redo-actions`,undoAction:`undo-action`,redoAction:`redo-action`,dragHandle:`drag-handle`,lockRule:`lock-rule`,lockGroup:`lock-group`,muteRule:`mute-rule`,muteGroup:`mute-group`,valueSourceSelector:`value-source-selector`,matchModeEditor:`match-mode-editor`},A={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`},ue=[],de={addRuleToNewGroups:!1,autoSelectField:!0,autoSelectOperator:!0,autoSelectValue:!1,debugMode:!1,enableDragAndDrop:!1,enableMountQueryChange:!0,listsAsArrays:!1,preserveQueryStateOnUnmount:!1,resetOnFieldChange:!0,resetOnOperatorChange:!1,showCloneButtons:!1,showCombinatorsBetweenRules:!1,showLockButtons:!1,showMuteButtons:!1,showNotToggle:!1,showShiftActions:!1,showUndoRedo:!1,suppressStandardClassnames:!1},fe=50,pe=500,me=[`target-not-found`,`parent-not-found`,`parent-not-a-group`,`destination-not-found`,`root-not-allowed`,`not-a-combinator-slot`,`target-disabled`,`parent-disabled`,`max-levels-exceeded`],he=new Set(me),ge=(e,t=`,`)=>typeof e==`string`?e.split(`\\${t}`).map(e=>e.split(t)).reduce((e,n,r)=>r===0?n:[...e.slice(0,-1),`${e.at(-1)}${t}${n[0]}`,...n.slice(1)],[]):[],_e=(e,t=`,`)=>e.map(e=>`${e??``}`.replaceAll(t[0],`\\${t[0]}`)).join(t),j=e=>typeof e==`string`?e.trim():e,M=(e,{retainEmptyStrings:t}={})=>Array.isArray(e)?e.map(j):typeof e==`string`?ge(e,`,`).filter(t?()=>!0:e=>!/^\s*$/.test(e)).map(e=>e.trim()):typeof e==`number`?[e]:[],ve=e=>e.every(e=>e===!1||(e??!1)!==!1);function ye(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ye(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function be(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ye(e))&&(r&&(r+=` `),r+=t);return r}const N=e=>typeof e==`string`?e.toLowerCase():e,xe=new RegExp(t.source.replace(/^\^/,String.raw`^\s*`).replace(/\$$/,String.raw`\s*$`)),P=e=>typeof e==`object`&&!!e&&Object.getPrototypeOf(e)===Object.prototype,Se=e=>e==null||e===``,Ce=e=>P(e)&&`field`in e&&typeof e.field==`string`,F=e=>P(e)&&Array.isArray(e.rules),I=e=>F(e)&&typeof e.combinator==`string`,L=e=>F(e)&&e.combinator===void 0,we=`~structural`,Te=``,Ee=(e,t)=>{let n=new Set([...Object.keys(e),...Object.keys(t)]);n.delete(`rules`);let r=[];for(let i of n)Object.is(e[i],t[i])||r.push(i);return r.toSorted()},De=(e,t,n,r)=>{if(e===t)return``;if(typeof e==`string`||typeof t==`string`)return typeof e==typeof t?`${n}:combinator[${r}]`:we;let i=F(e),a=F(t);if(i!==a)return we;if(!i||!a){let n=Ee(e,t);return n.length===0?``:`${t.id??``}:${n.join(`,`)}`}if(e.rules.length!==t.rules.length)return we;let o=Ee(e,t),s=-1;for(let[n,r]of e.rules.entries())if(r!==t.rules[n]){if(s!==-1)return we;s=n}return s===-1?o.length===0?``:`${t.id??``}:${o.join(`,`)}`:o.length>0?we:De(e.rules[s],t.rules[s],t.id??``,s)},Oe=(e,t)=>De(e,t,``,-1),ke=(e,t,n,r,i=500)=>t!==`~structural`&&t===e&&r>=n&&r-n<i,Ae=[`or`,`xor`,`and`],je=(e,t)=>N(e)===t,Me=(e,t=0)=>{let n=Ae[t];if(!e.rules.includes(n))return t<Ae.length-2?Me(e,t+1):e;let r=[...e.rules],i=0;for(;i<r.length-2;){if(je(r[i+1],n)){i+=2;continue}let e=-1;for(let t=i+2;t<r.length;t++)if(typeof r[t]==`string`&&N(r[t])===n){e=t;break}if(e===-1){r.splice(i,r.length,Me({rules:r.slice(i)},t+1));break}r.splice(i,e-i,Me({rules:r.slice(i,e)},t+1))}return{...e,rules:r}},R=e=>{if(I(e))return e;let t=Me(e),n=[],r=`and`;for(let[e,i]of t.rules.entries())typeof i==`string`?e===1&&(r=i):n.push(F(i)?R(i):i);return{...t,combinator:r,rules:n}},Ne=e=>{if(L(e))return e;let{combinator:t,...n}=e,r=[],{length:i}=e.rules;for(let n=0;n<i;n++){let a=e.rules[n];F(a)?r.push(Ne(a)):r.push(a),t&&n<i-1&&r.push(t)}return{...n,rules:r}};function Pe(e){return L(e)?R(e):Ne(e)}const Fe={shiftActions:[`shiftActions`],dragHandle:[`dragHandle`],fields:[`valueSelector`,`fields`],matchMode:[`valueSelector`,`matchMode`],matchThreshold:[`valueSelector`,`matchThreshold`],operators:[`valueSelector`,`operators`],valueSource:[`valueSelector`,`valueSource`],value:[`value`],cloneRule:[`actionElement`,`cloneRule`],lockRule:[`actionElement`,`lockRule`],muteRule:[`actionElement`,`muteRule`],removeRule:[`actionElement`,`removeRule`],valueListItem:[`valueListItem`]},Ie={header:{sources:[`header`],conditions:[{key:`dndOver`,when:e=>e.isOver,standardOnly:!0},{key:`dndCopy`,when:e=>e.isOver&&e.dropEffect===`copy`},{key:`dndDropNotAllowed`,when:e=>e.dropNotAllowed}]},shiftActions:[`shiftActions`],undoRedoActions:[`undoRedoActions`],undoAction:[`actionElement`,`undoAction`],redoAction:[`actionElement`,`redoAction`],dragHandle:[`dragHandle`],combinators:[`valueSelector`,`combinators`],notToggle:[`notToggle`],addRule:[`actionElement`,`addRule`],addGroup:[`actionElement`,`addGroup`],cloneGroup:[`actionElement`,`cloneGroup`],lockGroup:[`actionElement`,`lockGroup`],muteGroup:[`actionElement`,`muteGroup`],removeGroup:[`actionElement`,`removeGroup`],body:[`body`]},Le=[{key:`disabled`,when:e=>e.disabled},{key:`muted`,when:e=>e.muted},{key:`dndDragging`,when:e=>e.isDragging},{key:`dndOver`,when:e=>e.isOver},{key:`dndCopy`,when:e=>e.isOver&&e.dropEffect===`copy`},{key:`dndGroup`,when:e=>e.isOver&&e.groupItems},{key:`dndDropNotAllowed`,when:e=>e.dropNotAllowed},{key:`hasSubQuery`,when:e=>e.hasSubQuery}],Re=[{key:`disabled`,when:e=>e.disabled},{key:`muted`,when:e=>e.muted},{key:`dndDragging`,when:e=>e.isDragging},{key:`dndGroup`,when:e=>e.isOver&&e.groupItems}],ze=[{key:`disabled`,when:e=>e.disabled},{key:`valid`,when:e=>typeof e.validationResult==`boolean`&&e.validationResult},{key:`invalid`,when:e=>typeof e.validationResult==`boolean`&&!e.validationResult}],Be=(e,t,{classNames:n,suppressStandardClassnames:r})=>{let i=e.map(e=>[e,!!e.when(t)]);return[...i.filter(([e])=>!e.standardOnly).map(([e,t])=>t&&n?.[e.key]),r||Object.fromEntries(i.map(([e,t])=>[oe[e.key],t]))]},Ve=(e,t,n,r)=>{let{sources:i,conditions:a}=Array.isArray(t)?{sources:t}:t;return be(r.suppressStandardClassnames||oe[e],...i.map(e=>r.classNames?.[e]),...a?Be(a,n,r):[])},He=(e,t,n)=>{let r={};for(let[i,a]of Object.entries(e))r[i]=Ve(i,a,t,n);return r},Ue=e=>He(Fe,{},e),We=(e,t)=>Ve(e,Fe[e],{},t),Ge=e=>He(Ie,e,e),Ke=(e,t,n)=>{let{classNames:r,suppressStandardClassnames:i,leadingClassNames:a=[],validationClassName:o}=n;return be(...a,i||oe[e],r?.[e],...Be(t,n,n),o)},qe=e=>Ke(`rule`,Le,e),Je=e=>Ke(`ruleGroup`,Re,e),Ye=e=>Ke(`queryBuilder`,ze,e),Xe=e=>{let t={},n=e=>{e.id&&t[e.id]},r=e=>{let i=[];if(e.rules.length===0)i.push(ce.empty);else if(!I(e)){let t=!1;for(let n=0;n<e.rules.length&&!t;n++)(n%2==0&&typeof e.rules[n]==`string`||n%2==1&&typeof e.rules[n]!=`string`||n%2==1&&typeof e.rules[n]==`string`&&!k.map(e=>e.name).includes(e.rules[n]))&&(t=!0);t&&i.push(ce.invalidIndependentCombinators)}I(e)&&!k.map(e=>e.name).includes(e.combinator)&&e.rules.length>1&&i.push(ce.invalidCombinator),e.id&&(t[e.id]=i.length>0?{valid:!1,reasons:i}:!0);for(let t of e.rules)typeof t==`string`||(F(t)?r(t):n(t))};return r(e),t},Ze=Object.keys,Qe=Object.entries,$e=e=>e===`__proto__`||e===`constructor`||e===`prototype`,et=e=>P(e)&&`name`in e&&typeof e.name==`string`,tt=e=>P(e)&&`value`in e&&typeof e.value==`string`;function z(e,t,n){if(typeof e==`string`)return{...t,name:e,value:e,label:n?.[e]??e};let r={},i=!!t;return et(e)&&!tt(e)?(r.value=e.name,i=!0):!et(e)&&tt(e)&&(r.name=e.value,i=!0),i?Object.assign({},t,e,r):e}function B(e,t,n){if(!Array.isArray(e))return[];let r=e;return ct(r)?r.map(e=>({...e,options:e.options.map(e=>z(e,t,n))})):r.map(e=>z(e,t,n))}function nt(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,z(n,t)]))}const rt=e=>it(e),it=e=>{let t=new Set,n=[];for(let r of e)t.has(r.value??r.name)||(t.add(r.value??r.name),n.push(r));return e.length===n.length?e:n},at=e=>Array.isArray(e)&&e.length>0&&P(e[0])&&`options`in e[0]&&Array.isArray(e[0].options),ot=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(et(n)||tt(n))t=!0;else return!1;return t},st=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(et(n)&&tt(n))t=!0;else return!1;return t},ct=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(ot(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n},lt=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(st(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n};function V(e,t){return(ct(e,{allowEmpty:!0})?e.flatMap(e=>e.options):e).find(e=>e.value===t||e.name===t)}function H(e){if(!Array.isArray(e)||e.length===0)return null;if(ct(e,{allowEmpty:!0})){for(let t of e)if(t.options.length>0)return t.options[0].value??t.options[0].name;return null}return e[0].value??e[0].name}const ut=e=>it(at(e)?e.flatMap(e=>e.options):e),dt=e=>{let t=new Set,n=new Set,r=[];for(let i of e)if(!t.has(i.label)){t.add(i.label);let e=[];for(let t of i.options)n.has(t.value??t.name)||(n.add(t.value??t.name),e.push(z(t)));r.push({...i,options:e})}return r},ft=e=>ct(e)?dt(e):it(e.map(e=>z(e))),pt=e=>{let{optionList:t,baseOption:n={},labelMap:r={},placeholder:{placeholderName:i=`~`,placeholderLabel:a=f,placeholderGroupLabel:o=f}={},autoSelectOption:s=!0}=e,c={id:i,name:i,value:i,label:a},l=t??[c],u,d=Array.isArray(l)?B(l,n,r):Ze(nt(l,n)).map(e=>({...l[e],name:e,value:e})).sort((e,t)=>e.label.localeCompare(t.label));u=ct(d)?dt(s?d:[{label:o,options:[c]},...d]):it(s?d:[c,...d]);let p={};if(!Array.isArray(l)){let e=nt(l,n);p=s?e:{...e,[i]:c}}else if(ct(u))for(let e of u)for(let t of e.options)p[t.value??t.name]=z(t,n);else for(let e of u)p[e.value??e.name]=z(e,n);return{defaultOption:c,optionList:u,optionsMap:p}},mt=(e,t,n)=>{let r=z(e),i=z(n);return r.value===i.value?!1:typeof r.comparator==`string`?r[r.comparator]===i[r.comparator]:r.comparator?.(i,t)??!1},ht=(e,t,n)=>{if(!e.comparator){let n=t=>(t.value??t.name)!==(e.value??e.name);return ct(t)?t.map(e=>({...e,options:e.options.filter(e=>n(e))})):t.filter(e=>n(e))}return ct(t)?t.map(t=>({...t,options:t.options.filter(t=>mt(e,n,t))})).filter(e=>e.options.length>0):t.filter(t=>mt(e,n,t))},gt=(e,t)=>t?.[e]??{name:e,value:e,label:e},_t=(e,t,n,r)=>n.inputType??r(e,t,{fieldData:n}),vt=e=>{let t=e?.arity;return typeof t==`string`&&t===`unary`||typeof t==`number`&&t<2},yt=(e,t,n)=>{let r=n(e.field,e.operator,{fieldData:t});return e.valueSource&&!V(r,e.valueSource)?[...r,{name:e.valueSource,value:e.valueSource,label:e.valueSource}]:r},bt=e=>e&&e.length>0?e:null,xt=(e,t,n,r)=>e.valueSource===`field`?`select`:e.valueSource===`parameter`?n?N(e.operator)===`in`||N(e.operator)===`notin`?`multiselect`:`select`:`text`:r(e.field,e.operator,{fieldData:t}),St=(e,t,n,r,i)=>{let a=e.valueSource===`field`?ht(t,n,e.operator):e.valueSource===`parameter`?r??[]:i(e.field,e.operator,{fieldData:t});return ot(a)||ct(a)?B(a):a},Ct=(e,t,n={},r=e.id??``)=>n[r]??(typeof t.validator==`function`?t.validator(e):null),wt=(e,t,n={})=>{let{fields:r,fieldMap:i,getInputType:a,getMatchModes:o,getOperators:s,getParameters:c,getValueEditorType:l,getValues:u,getValueSources:d,getSubQueryBuilderProps:f}=t,p=gt(e.field,i),m=p.inputType??a(e.field,e.operator,{fieldData:p}),h=o(e.field,{fieldData:p}),g=s(e.field,{fieldData:p}),_=V(g,e.operator),v=yt(e,p,d),y=bt(c(e.field,e.operator,{fieldData:p}));return{fieldData:p,hideValueControls:vt(_),inputType:m,matchModes:h,operatorObject:_,operators:g,parameters:y,validationResult:Ct(e,p,n.validationMap,n.id),valueEditorType:xt(e,p,y,l),values:St(e,p,r,y,u),valueSourceOptions:v,valueSources:v.map(({value:e})=>e),subQueryBuilderProps:f?.(e.field,{fieldData:p})??{}}},Tt=(e,t)=>I(e)?e.combinator:H(t)??``,Et=(e,t,n={})=>{let r=L(e),i=Tt(e,t),a=V(t,i);return{combinator:i,combinatorObject:a,combinators:t,combinatorBasedClassName:r?null:a?.className??``,independentCombinators:r,validationResult:(n.validationMap??{})[n.id??e.id??``]??null}},U=(t,{parseNumbers:n,bigIntOnOverflow:r}={})=>{if(!n||typeof t==`bigint`||typeof t==`number`)return t;if(n===`native`)return Number.parseFloat(t);let i=e(t,{allowTrailingInvalid:n===`enhanced`,bigIntOnOverflow:r,romanNumerals:!1,round:!1});return typeof i==`bigint`||!Number.isNaN(i)?i:t},Dt=new Set([`between`,`notBetween`,`in`,`notIn`]),Ot=e=>e===`between`||e===`notBetween`,kt=({skipHook:e,type:t,operator:n,value:r,inputType:i})=>!e&&t!==`multiselect`&&!Dt.has(n)&&(Array.isArray(r)||i===`number`&&typeof r==`string`&&r.includes(`,`))?{reset:!0,value:M(r,{retainEmptyStrings:!0})[0]??``}:{reset:!1,value:r},At=({value:e,index:t,valueAsArray:n,operator:r,values:i,listsAsArrays:a,parseNumberMethod:o})=>{let s=U(e,{parseNumbers:o}),c=t===0&&Ot(r)&&(n.length<2||n[1]===void 0);if(n[t]===s&&!c)return a?n:_e(n,`,`);let l=[...n];return l[t]=s,c&&(l[1]=H(i)??``),a?l:_e(l,`,`)},jt=(e,t)=>{let n=U(e,{parseNumbers:t,bigIntOnOverflow:!0});try{return BigInt(n)}catch{return n}},Mt=(e,t)=>e===`bigint`||t===`in`||t===`notIn`?`text`:e||`text`,Nt=(e,{multiple:t,listsAsArrays:n}={})=>{if(!t)return e;let r=M(e);return n?r:_e(r,`,`)},Pt=(e,t)=>t?M(e).map(String):e,Ft=(e,t,n)=>{let r={};for(let i in e){if($e(i))continue;let a=t[i];a!==!1&&(a&&i!==a?($e(a)||(r[a]=e[i]),n||(r[i]=e[i])):r[i]=e[i])}return r};function W(e,t={}){let{ruleProcessor:n=e=>e,ruleGroupProcessor:r=e=>e,propertyMap:i={},combinatorMap:a={},operatorMap:o={},omitPath:s=!1,deleteRemappedProperties:c=!0}=t,l=e=>({...r(Ft({...e,...I(e)?{combinator:a[e.combinator]??e.combinator}:{}},i,c)),...i.rules===!1?null:{[i.rules??`rules`]:e.rules.map((t,r)=>{let u=s?null:{path:[...e.path,r]};return typeof t==`string`?a[t]??t:F(t)?l({...t,...u}):n(Ft({...t,...u,...`operator`in t?{operator:o[t.operator]??t.operator}:{}},i,c))})}});return l({...e,...s?null:{path:[]}})}const It=e=>P(e)&&typeof e.valid==`boolean`,G=(e,t,n)=>{if(e.muted)return!1;if(typeof t==`boolean`)return t;if(It(t))return t.valid;if(typeof n==`function`&&!F(e)){let t=n(e);if(typeof t==`boolean`)return t;if(It(t))return t.valid}return!0},Lt=({parseNumbers:e,inputType:t})=>{if(typeof e==`string`){let[n,r]=e.split(`-`);return r===`limited`?t===`number`&&n:n}return e?`strict`:!1},Rt=e=>{switch(N(e)){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 e}},zt=(e=`||`)=>(...t)=>e.toUpperCase()===`CONCAT`?`CONCAT(${t.join(`, `)})`:t.join(` ${e} `),Bt=e=>{switch(e){case`contains`:case`doesnotcontain`:return[`%`,`%`];case`beginswith`:case`doesnotbeginwith`:return[``,`%`];case`endswith`:case`doesnotendwith`:return[`%`,``];default:return[``,``]}},Vt=(e,t,{concatOperator:n=`||`,quoteValuesWith:r,wrapValueWith:i=[``,``]}={})=>{let[a,o]=Bt(t),s=r||`'`,c=e=>`${i[0]}${s}${e}${s}${i[1]}`,l=[a&&c(a),e,o&&c(o)].filter(Boolean);return l.length>1?zt(n)(...l):e},Ht={"=":`$eq`,"!=":`$ne`,"<":`$lt`,"<=":`$lte`,">":`$gt`,">=":`$gte`,in:`$in`,notin:`$nin`,notIn:`$nin`},Ut={"=":`equals`,"!=":`not`,"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`,in:`in`,notin:`notIn`},Wt={and:`&&`,or:`||`},Gt={startsWith:(e,t)=>typeof e==`string`&&e.startsWith(t),endsWith:(e,t)=>typeof e==`string`&&e.endsWith(t)},Kt=(e,t)=>({...e,rules:e.rules.map(e=>{if(typeof e==`string`)return e;if(F(e))return Kt(e,t);let n=V(t.fields,e.field),r=Lt({parseNumbers:t.parseNumbers,inputType:n?.inputType});if(Array.isArray(e.value))return{...e,value:e.value.map(e=>U(e,{parseNumbers:r}))};let i=M(e.value,{retainEmptyStrings:!0}).map(e=>U(e,{parseNumbers:r}));if(i.every(e=>typeof e==`number`)){if(i.length>1)return{...e,value:i};if(i.length===1)return{...e,value:i[0]}}return e})}),K=e=>typeof e==`string`&&e.length>0||typeof e==`number`&&!Number.isNaN(e)||typeof e!=`string`&&typeof e!=`number`,q=(e,t)=>!!t&&(typeof e==`number`||typeof e==`bigint`||typeof e==`string`&&xe.test(e)),qt=e=>e.length>=3,Jt=(e=[``,``])=>Array.isArray(e)?e:typeof e==`string`?[e,e]:e??[``,``],Yt=(e,{quoteFieldNamesWith:t,fieldIdentifierSeparator:n})=>{let[r,i]=Jt(t);return typeof n==`string`&&n.length>0?_e(ge(e,n).map(e=>`${r}${e}${i}`),n):`${r}${e}${i}`},Xt=[`S`,`V`,`O`],Zt=e=>{let t=[],n=new Set(Xt);for(let r of e.toUpperCase())if(n.has(r)&&(t.push(r),n.delete(r),n.size===0))break;for(let e of Xt)n.has(e)&&t.push(e);return t},Qt=(e,t=`:`)=>{let n=`${e??``}`;return t&&n.startsWith(t)?n:`${t}${n}`},$t=(e,t=`:`)=>{let n=`${e??``}`;return t&&n.startsWith(t)?n.slice(t.length):n},en={groupPrefix:``,groupPrefix_not_xor:`either zero or more than one of`,groupPrefix_xor:`exactly one of`,groupSuffix:`is true`,groupSuffix_not:`is not true`},tn=(e,t,n)=>t.startsWith(e)&&n.every(e=>t.includes(`_${e}`)&&t.match(/_/g)?.length===n.length),nn=(e,t,n=[])=>n.length===0?t[e]??en[e]??``:Object.entries(t).find(([t])=>tn(e,t,n))?.[1]??Object.entries(en).find(([t])=>tn(e,t,n))?.[1]??en[e]??``,J=e=>{let{mode:t,threshold:n}=e.match??{};if(!t)return null;if(!F(e.value))return!1;let r=N(t),i=r===`atleast`&&n===1?`some`:r===`atmost`&&n===0?`none`:r;return(i===`atleast`||i===`atmost`||i===`exactly`)&&(typeof n!=`number`||n<0)?!1:{mode:i,threshold:n}},rn=`elem_alias`,an=(e=0)=>e>0?`${rn}_${e}`:rn,on=(e,t)=>typeof t==`bigint`?{$bigint:t.toString()}:t,sn=(e,t)=>P(t)&&Object.keys(t).length===1&&typeof t.$bigint==`string`?BigInt(t.$bigint):t,cn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=Wt[r];continue}if(F(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(I(e)?` ${Wt[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},ln=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),un=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),dn=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r,preserveValueOrder:i}=t,{field:a,operator:o,value:s,valueSource:c}=e,l=c===`field`||c===`parameter`,u=N(o===`=`?`==`:o),d=typeof s==`number`||typeof s==`boolean`||typeof s==`bigint`||q(s,r),f=J(e);if(f===!1)return``;if(f){let{mode:n,threshold:r}=f,i=t.subqueryDepth??0,o=an(i),s=W(e.value,{ruleProcessor:e=>({...e,field:`${o}${e.field?`.${e.field}`:``}`})}),c=cn(s,{...t,subqueryDepth:i+1});switch(n){case`all`:return`${a}.all(${o}, ${c})`;case`none`:case`some`:return`${n===`none`?`!`:``}${a}.exists(${o}, ${c})`;case`atleast`:case`atmost`:case`exactly`:{let e=`double(${a}.size())`,t=`${a}.filter(${o}, ${c}).size()`,i=n===`atleast`?`>=`:n===`atmost`?`<=`:`==`;return r>0&&r<1?`double(${t}) ${i} (${e} * ${r})`:`${t} ${i} ${r}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${a} ${u} ${l||d?j(s):`"${un(s,n)}"`}`;case`contains`:case`doesnotcontain`:return`${ln(u)?`!`:``}${a}.contains(${l?j(s):`"${un(s,n)}"`})`;case`beginswith`:case`doesnotbeginwith`:return`${ln(u)?`!`:``}${a}.startsWith(${l?j(s):`"${un(s,n)}"`})`;case`endswith`:case`doesnotendwith`:return`${ln(u)?`!`:``}${a}.endsWith(${l?j(s):`"${un(s,n)}"`})`;case`null`:return`${a} == null`;case`notnull`:return`${a} != null`;case`in`:case`notin`:{let[e,t]=ln(u)?[`!(`,`)`]:[``,``];return`${e}${a} in [${M(s).map(e=>l||q(e,r)?`${j(e)}`:`"${un(e,n)}"`).join(`, `)}]${t}`}case`between`:case`notbetween`:{let e=M(s);if(e.length>=2&&!Se(e[0])&&!Se(e[1])){let[t,o]=e,s=r!==!1,c=q(t,s)?U(t,{parseNumbers:s}):NaN,d=q(o,s)?U(o,{parseNumbers:s}):NaN,f=Number.isNaN(c)?l?`${t}`:`"${un(t,n)}"`:c,p=Number.isNaN(d)?l?`${o}`:`"${un(o,n)}"`:d;if(!i&&f===c&&p===d&&d<c){let e=d;p=c,f=e}return u===`between`?`(${a} >= ${f} && ${a} <= ${p})`:`(${a} < ${f} || ${a} > ${p})`}return``}}return``},fn={$and:[{$expr:!0}]},pn=(e,t,n)=>{let{context:r,fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,{inExpressionContext:f}=r??{},p=(e,r)=>{if(!G(e,d[e.id??``]))return r?fn:!1;let m=`$${N(e.combinator)}`,h=!1,g=e.rules.map(e=>{if(F(e)){let t=p(e);return t?(h=!0,t):!1}let[r,d]=u(e);if(!G(e,r,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return!1;let f=V(i,e.field);return l(e,{...t,parseNumbers:a(f?.inputType),fieldData:f},n)}).filter(Boolean),_=g.length>0?g.length===1&&!h?g[0]:{[m]:g}:fn;return e.not?f?{$not:_}:{$nor:[_]}:_};return p(R(e),!0)},mn=(e,t,n=!1)=>q(e,n||typeof e==`bigint`)?Number(U(e,{parseNumbers:`strict`})):t,hn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s,context:c}=t,l=a===`field`,{avoidFieldsAsKeys:u}=c??{},d=J(e);if(d===!1)return;if(d){let{mode:e,threshold:r}=d,a={$size:{$ifNull:[`$${n}`,[]]}},o=pn(W(i,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),{...t,ruleProcessor:hn,context:{...t.context,avoidFieldsAsKeys:!1}}),s=pn(W(i,{ruleProcessor:e=>({...e,field:e.field?`$item.${e.field}`:`$item`})}),{...t,ruleProcessor:hn,context:{...t.context,avoidFieldsAsKeys:!0,inExpressionContext:!0}}),c={$size:{$ifNull:[{$filter:{input:`$${n}`,as:`item`,cond:{$and:[s]}}},[]]}};switch(e){case`all`:return{$expr:{$eq:[c,a]}};case`none`:return{$nor:[o]};case`some`:return o;case`atleast`:case`atmost`:case`exactly`:{let t=e===`atleast`?Ht[`>=`]:e===`atmost`?Ht[`<=`]:Ht[`=`];return r>0&&r<1?{$expr:{[t]:[c,{$multiply:[a,r]}]}}:{$expr:{[t]:[c,r]}}}}}if(r===`=`&&!l)return u?{$eq:[`$${n}`,mn(i,i,o)]}:{[n]:mn(i,i,o)};let f=N(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:{let e=Ht[f];return l?{[e]:[`$${n}`,`$${i}`]}:u?{$and:[{$ne:[`$${n}`,null]},{[e]:[`$${n}`,mn(i,i,o)]}]}:{[n]:{[e]:mn(i,i,o)}}}case`contains`:return l?{$where:`this.${n}.includes(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:i}}:{[n]:{$regex:i}};case`beginswith`:return l?{$where:`this.${n}.startsWith(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:`^${i}`}}:{[n]:{$regex:`^${i}`}};case`endswith`:return l?{$where:`this.${n}.endsWith(this.${i})`}:u?{$regexMatch:{input:`$${n}`,regex:`${i}$`}}:{[n]:{$regex:`${i}$`}};case`doesnotcontain`:return l?{$where:`!this.${n}.includes(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:i}}}:{[n]:{$not:{$regex:i}}};case`doesnotbeginwith`:return l?{$where:`!this.${n}.startsWith(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:`^${i}`}}}:{[n]:{$not:{$regex:`^${i}`}}};case`doesnotendwith`:return l?{$where:`!this.${n}.endsWith(this.${i})`}:u?{$not:{$regexMatch:{input:`$${n}`,regex:`${i}$`}}}:{[n]:{$not:{$regex:`${i}$`}}};case`null`:return u?{$eq:[`$${n}`,null]}:{[n]:null};case`notnull`:return u?{$ne:[`$${n}`,null]}:{[n]:{$ne:null}};case`in`:case`notin`:{let e=M(i);return l?{$where:`${f===`notin`?`!`:``}[${e.map(e=>`this.${e}`).join(`,`)}].includes(this.${n})`}:u?f===`notin`?{$not:{[Ht.in]:[`$${n}`,e.map(e=>mn(e,e,o))]}}:{[Ht[f]]:[`$${n}`,e.map(e=>mn(e,e,o))]}:{[n]:{[Ht[f]]:e.map(e=>mn(e,e,o))}}}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=mn(t,NaN,!0),a=mn(r,NaN,!0),o=l||Number.isNaN(i)?t:i,c=l||Number.isNaN(a)?r:a;if(!s&&o===i&&c===a&&a<i){let e=a;c=i,o=e}return f===`between`?l?{$gte:[`$${n}`,`$${o}`],$lte:[`$${n}`,`$${c}`]}:u?{$and:[{$gte:[`$${n}`,o]},{$lte:[`$${n}`,c]}]}:{[n]:{$gte:o,$lte:c}}:l?{$or:[{$lt:[`$${n}`,`$${o}`]},{$gt:[`$${n}`,`$${c}`]}]}:u?{$or:[{$lt:[`$${n}`,o]},{$gt:[`$${n}`,c]}]}:{$or:[{[n]:{$lt:o}},{[n]:{$gt:c}}]}}return``}}return``},gn=(e,t)=>{let n=hn(e,t);return n?JSON.stringify(n):``},_n=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(F(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(I(e)?` ${e.combinator} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},vn=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),yn=(e,t)=>t?`!(${e})`:e,bn=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),xn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c}=t,l=a===`field`||a===`parameter`,u=N(r===`=`?`==`:r),d=typeof i==`number`||typeof i==`boolean`||typeof i==`bigint`||q(i,s),f=J(e);if(f===!1)return``;if(f){let{mode:r,threshold:i}=f,a=_n(W(e.value,{ruleProcessor:e=>({...e,field:e.field||`#this`})}),t),o=`${n}.size()`,s=`${n}.?[${a}].size()`;switch(r){case`all`:return`${s} == ${o}`;case`none`:return`${s} == 0`;case`some`:return`${s} >= 1`;case`atleast`:case`atmost`:case`exactly`:{let e=r===`atleast`?`>=`:r===`atmost`?`<=`:`==`;return i>0&&i<1?`${s} ${e} (${o} * ${i})`:`${s} ${e} ${i}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${n} ${u} ${l||d?j(i):`'${bn(i,o)}'`}`;case`contains`:case`doesnotcontain`:{let e=l?`'.*'.concat(${j(i)}).concat('.*')`:`'.*${bn(i,o)}.*'`;return yn(`${n} matches ${e}`,vn(u))}case`beginswith`:case`doesnotbeginwith`:{let e=l?`'^'.concat(${j(i)}).concat('.*')`:`'${typeof i==`string`&&!i.startsWith(`^`)||d?`^`:``}${bn(i,o)}.*'`;return yn(`${n} matches ${e}`,vn(u))}case`endswith`:case`doesnotendwith`:{let e=l?`'.*'.concat(${j(i)}).concat('$')`:`'.*${bn(i,o)}${typeof i==`string`&&!i.endsWith(`$`)||d?`$`:``}'`;return yn(`${n} matches ${e}`,vn(u))}case`null`:return`${n} == null`;case`notnull`:return`${n} != null`;case`in`:case`notin`:{let e=vn(u)?`!`:``,t=M(i);return t.length>0?`${e}(${t.map(e=>`${n} == ${l||q(e,s)?`${j(e)}`:`'${bn(e,o)}'`}`).join(` or `)})`:``}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&!Se(e[0])&&!Se(e[1])){let[t,r]=e,i=s!==!1,a=q(t,i)?U(t,{parseNumbers:i}):NaN,d=q(r,i)?U(r,{parseNumbers:i}):NaN,f=Number.isNaN(a)?l?`${t}`:`'${bn(t,o)}'`:a,p=Number.isNaN(d)?l?`${r}`:`'${bn(r,o)}'`:d;if(!c&&f===a&&p===d&&d<a){let e=d;p=a,f=e}return u===`between`?`(${n} >= ${f} and ${n} <= ${p})`:`(${n} < ${f} or ${n} > ${p})`}return``}}return``},Sn=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,Cn=({operator:e,value:t,valueSource:n},{escapeQuotes:r,parseNumbers:i,preserveValueOrder:a,quoteFieldNamesWith:o,quoteValuesWith:s,concatOperator:c=`||`,fieldIdentifierSeparator:l,paramPrefix:u,wrapValueWith:d=[``,``],translations:f}={})=>{if(n===`parameter`){let n=N(e);if(n===`between`||n===`notbetween`){let e=M(t,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return``;let[n,r]=e;return[Qt(n,u),Qt(r,u)].join(` ${f?.betweenAnd??f?.and??`and`} `)}if(n===`in`||n===`notin`){let e=M(t);return e.length===0?``:`(${e.map(e=>Qt(e,u)).join(`, `)})`}let r=Qt(t,u);switch(n){case`contains`:case`doesnotcontain`:case`beginswith`:case`doesnotbeginwith`:case`endswith`:case`doesnotendwith`:return Vt(r,n,{concatOperator:c,quoteValuesWith:s,wrapValueWith:d})}return r}let p=n===`field`,m=N(e),h=s||`'`,g=e=>`${d[0]}${h}${e}${h}${d[1]}`,_=e=>Sn(e,h,r),v=e=>g(_(e)),y=e=>Yt(e,{quoteFieldNamesWith:o,fieldIdentifierSeparator:l}),b={concatOperator:c,quoteValuesWith:s,wrapValueWith:d};switch(m){case`null`:case`notnull`:return``;case`in`:case`notin`:{let e=M(t);return e.length>0?`(${e.map(e=>p?y(e):q(e,i)?`${j(e)}`:`${v(e)}`).join(`, `)})`:``}case`between`:case`notbetween`:{let e=M(t,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return``;let[n,r]=e,o=q(n,i)?U(n,{parseNumbers:`strict`}):NaN,s=q(r,i)?U(r,{parseNumbers:`strict`}):NaN,c=Number.isNaN(o)?p?`${n}`:n:o,l=Number.isNaN(s)?p?`${r}`:r:s,u=[c,l];return!a&&c===o&&l===s&&s<o&&(u[0]=s,u[1]=o),(p?u.map(e=>y(e)):u.every(e=>q(e,i))?u.map(e=>U(e,{parseNumbers:`strict`})):u.map(e=>v(e))).join(` ${f?.betweenAnd??f?.and??`and`} `)}case`contains`:case`doesnotcontain`:return p?Vt(y(t),m,b):g(`%${_(t)}%`);case`beginswith`:case`doesnotbeginwith`:return p?Vt(y(t),m,b):g(`${_(t)}%`);case`endswith`:case`doesnotendwith`:return p?Vt(y(t),m,b):g(`%${_(t)}`)}return typeof t==`boolean`?t?`TRUE`:`FALSE`:p?y(t):q(t,i)?`${j(t)}`:`${v(t)}`},wn={and:`AND`,or:`OR`},Tn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=wn[r];continue}if(F(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(I(e)?` ${wn[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`NOT `:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},En=(e,t,n)=>((n,r)=>{let{fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,validateRule:l,validationMap:u,ruleProcessor:d}=t;if(!n||!r)return;let{and:f,not:p,or:m}=r,h=(e,g)=>{if(!G(e,u[e.id??``]))return;let _=e.rules.map(e=>{if(F(e))return h(e);let[u,f]=l(e);if(!G(e,u,f)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return;let p=V(i,e.field);return d(e,{...t,parseNumbers:a(p?.inputType),fieldData:p,context:{...t.context,columns:n,drizzleOperators:r}})}).filter(Boolean);if(_.length===0)return;let v=e.combinator===`or`?m(..._):f(..._);return e.not?p(v):v};return h(R(e),!0)}),Dn=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=e=>{if(!G(e,l[e.id??``]))return!1;let d=e.rules.map(e=>{if(F(e))return u(e);let[l,d]=c(e);if(!G(e,l,d)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return!1;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);return d.length!==0&&{bool:e.not?{must_not:/^or$/i.test(e.combinator)?{bool:{should:d}}:d}:{[/^or$/i.test(e.combinator)?`should`:`must`]:d}}},d=u(R(e));return d===!1?{}:d},On=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=e=>{if(typeof e==`string`||F(e))return;let[r,u]=l(e);if(!G(e,r,u)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return;let d=V(n,e.field);return c(e,{...t,parseNumbers:i(d?.inputType),escapeQuotes:(e.valueSource??`value`)===`value`,fieldData:d})},f=e=>{if(!G(e,u[e.id??``]))return``;let t=[];for(let n of e.rules){if(typeof n==`string`)continue;if(F(n)){let e=f(n);e&&t.push(e);continue}let e=d(n);e&&t.push(e)}if(t.length===0)return``;let n=e.combinator??`and`,r=e.not?`not`:n;return t.length===1&&!e.not?t[0]:`.${r}(${t.map(e=>e.startsWith(`.`)?`__${e}`:e).join(`, `)})`};if(!G(e,u[e.id??``]))return r;let p=[];for(let t of e.rules){if(typeof t==`string`)continue;if(F(t)){let e=f(t);e&&p.push(e);continue}let e=d(t);e&&p.push(e)}return p.length===0?r:p.join(``)},kn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(F(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(I(e)?` ${e.combinator} `:` `),[_,v]=e.not||!f?[`${e.not?`$not`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},An=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=R(e),d=(e,u)=>{if(!G(e,l[e.id??``]))return!1;let f=e.rules.map(e=>{if(F(e))return d(e);let[l,u]=c(e);if(!G(e,l,u)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return!1;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);if(f.length===0)return!1;let p={[e.combinator]:f};return e.not?{"!":p}:p};return d(u,!0)},jn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=e.rules.map(e=>{if(F(e))return d(e);let[r,u]=l(e);if(!G(e,r,u)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return``;let f=V(n,e.field);return c(e,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(e.valueSource??`value`)===`value`,fieldData:f})}).filter(Boolean),m=p.join(``),[h,g]=e.not?[`(!`,`)`]:[``,``],[_,v]=p.length>1?[`${h}(${e.combinator===`or`?`|`:`&`}`,`)${g}`]:[h,g];return m?`${_}${m}${v}`:r};return d(R(e),!0)},Mn=e=>e.startsWith(`{`)&&e.endsWith(`}`),Nn=(e,t,n)=>{let{fields:r,fallbackExpression:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,f=(e,p)=>{if(!G(e,d[e.id??``]))return p?i:``;let m=`"$${N(e.combinator)}"`,h=!1,g=e.rules.map(e=>{if(F(e)){let t=f(e);return t?(h=!0,Mn(t)?t:`{${t}}`):``}let[i,d]=u(e);if(!G(e,i,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return``;let p=V(r,e.field);return l(e,{...t,parseNumbers:a(p?.inputType),fieldData:p},n)}).filter(Boolean),_=g.length>0?g.length===1&&!h?g[0]:`${m}:[${g.join(`,`)}]`:i;return e.not?`"$nor":[${Mn(_)?_:`{${_}}`}]`:_},p=f(R(e),!0);return Mn(p)?p:`{${p}}`},Pn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,translations:l,validateRule:u,validationMap:d}=t,f=(e,p)=>{if(!G(e,d[e.id??``]))return p?r:``;let m=L(e)&&e.rules.some(e=>typeof e==`string`&&N(e)===`xor`)?R(e):e,h=[],g=``,_=!0;for(let e of m.rules){if(typeof e==`string`){g=`${l.ruleSeparator??`, `}${l[e]??e} `;continue}if(F(e)){let t=f(e,m.rules.length===1&&!(m.not||/^xor$/i.test(m.combinator??``)));t&&(!_&&g&&(h.push(g),g=``),_=!1,h.push(t));continue}let[r,d]=u(e);if(!G(e,r,d)||e.field===a||e.operator===o||s!==void 0&&e.value===s)continue;let p=(e.valueSource??`value`)===`value`,v=V(n,e.field),y=c(e,{...t,parseNumbers:i(v?.inputType),escapeQuotes:p,fieldData:v});y&&(!_&&g&&(h.push(g),g=``),_=!1,h.push(y))}if(h.length===0)return r;let v=N(m.combinator??``)===`xor`,y=v?m.combinator.slice(1):m.combinator,b=m.not||!p||v&&h.length>1,[x,S]=[`groupPrefix`,`groupSuffix`].map(e=>m.not?v?nn(e,l,[`not`,`xor`]):nn(e,l,[`not`]):v?nn(e,l,[`xor`]):nn(e,l)),C=b?`${x} (`.trim():``,w=b?`) ${S}`.trim():``,T=l.ruleSeparator??`, `;return`${C}${h.join(I(m)?`${T}${l[y]??y} `:``)}${w}`};return f(e,!0)},Fn=(e,t)=>{let{format:n,fields:r,fallbackExpression:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,ruleProcessor:l,validateRule:u,validationMap:d}=t,f=n===`parameterized`,p=[],m={},h=new Map,g=e=>{h.has(e)||h.set(e,new Set);let t=`${e}_${h.get(e).size+1}`;return h.get(e).add(t),t},_=e=>{let[i,d]=u(e);if(!G(e,i,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return``;let f=V(r,e.field),_=Object.fromEntries([...h.entries()].map(([e,t])=>[e,[...t]])),v=l(e,{...t,parseNumbers:a(f?.inputType),getNextNamedParam:g,fieldParamNames:_,fieldData:f},{processedParams:p});if(!P(v))return``;let{sql:y,params:b}=v;if(typeof y!=`string`||!y)return``;if(n===`parameterized`&&Array.isArray(b))p.push(...b);else if(n===`parameterized_named`&&P(b)){Object.assign(m,b);for(let t of Object.keys(b))h.get(e.field)?.add(t)}return y},v=(e,t)=>{if(!G(e,d[e.id??``]))return t?i:``;let n=[],r=``,a=!0;for(let t of e.rules){if(typeof t==`string`){r=t;continue}if(F(t)){let i=v(t,e.rules.length===1);i&&(!a&&r&&(n.push(r),r=``),a=!1,n.push(i));continue}let i=_(t);i&&(!a&&r&&(n.push(r),r=``),a=!1,n.push(i))}return n.length===0?i:`${e.not?`NOT `:``}(${n.join(I(e)?` ${e.combinator} `:` `)})`};return f?{sql:v(e,!0),params:p}:{sql:v(e,!0),params:m}},In={},Ln=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l}=t,u=(e,d)=>{if(!G(e,l[e.id??``]))return d?In:void 0;let f=e.combinator.toUpperCase(),p=!1,m=e.rules.map(e=>{if(F(e)){let t=u(e);return t?(p=!0,t):void 0}let[l,d]=c(e);if(!G(e,l,d)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return;let f=V(n,e.field);return s(e,{...t,parseNumbers:r(f?.inputType),fieldData:f})}).filter(Boolean);return m.length>0?m.length===1&&!p?m[0]:{[f]:m}:In},d=u(R(e),!0);return e.not?{NOT:d}:d},Rn=(e,t)=>{let{fields:n,getParseNumberBoolean:r,placeholderFieldName:i,placeholderOperatorName:a,placeholderValueName:o,ruleProcessor:s,validateRule:c,validationMap:l,context:u={}}=t,{sequelizeOperators:d}=u;if(!d)return;let f=(e,u)=>{if(!G(e,l[e.id??``]))return;let p=e.combinator.toUpperCase(),m=!1,h=e.rules.map(e=>{if(F(e)){let t=f(e);return t?(m=!0,t):void 0}let[l,u]=c(e);if(!G(e,l,u)||e.field===i||e.operator===a||o!==void 0&&e.value===o)return;let d=V(n,e.field);return s(e,{...t,parseNumbers:r(d?.inputType),fieldData:d})}).filter(Boolean);if(h.length===0)return;let g=h.length===1&&!m?h[0]:{[N(p)===`or`?d.or:d.and]:h};return e.not?{[d.not]:g}:g};return f(R(e),!0)},zn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=Wt[r];continue}if(F(r)){let e=d(r);e&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(e));continue}let[e,u]=l(r);if(!G(r,e,u)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let f=V(n,r.field),g=c(r,{...t,parseNumbers:i(f?.inputType),escapeQuotes:(r.valueSource??`value`)===`value`,fieldData:f});g&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(g))}let g=p.join(I(e)?` ${Wt[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},Bn=(e,t)=>{let{fields:n,fallbackExpression:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,ruleProcessor:c,validateRule:l,validationMap:u}=t,d=(e,f)=>{if(!G(e,u[e.id??``]))return f?r:``;let p=[],m=``,h=!0;for(let r of e.rules){if(typeof r==`string`){m=r;continue}if(F(r)){let t=d(r,e.rules.length===1);t&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(t));continue}let[u,f]=l(r);if(!G(r,u,f)||r.field===a||r.operator===o||s!==void 0&&r.value===s)continue;let g=(r.valueSource??`value`)===`value`,_=V(n,r.field),v=c(r,{...t,parseNumbers:i(_?.inputType),escapeQuotes:g,fieldData:_});v&&(!h&&m&&(p.push(m),m=``),h=!1,p.push(v))}return p.length===0?r:`${e.not?`NOT `:``}(${p.join(I(e)?` ${e.combinator} `:` `)})`};return d(e,!0)},Vn=(e,t)=>n=>{let{fields:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,validateRule:c,validationMap:l,context:u={},ruleProcessor:d}=t,f=u.tanStackDbOperators;if(!f)return;let{and:p,eq:m,not:h,or:g}=f,_=m(1,1),v=Object.keys(n);if(v.length===0)return _;let y=e=>{if(!G(e,l[e.id??``]))return;let f=e.rules.map(e=>{if(F(e))return y(e);let[l,f]=c(e);if(!G(e,l,f)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return;let p=V(r,e.field);return d(e,{...t,parseNumbers:i(p?.inputType),fieldData:p,context:{...u,_tanstackDbRefs:n,_tanstackDbPrimaryRef:v[0]}})}).filter(Boolean);if(f.length===0)return _;let m=f.length===1?f[0]:e.combinator===`or`?g(...f):p(...f);return e.not?h(m):m};return y(R(e))??_},Hn=new Set([`number`,`range`,`bigint`]),Un=/^\d{4}-\d{2}-\d{2}$/,Wn=/^\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/,Gn=/^\d{4}-\d{2}$/,Kn=/^\d{4}-W\d{2}$/,qn=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,Jn=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Yn=(e,t,n)=>{let r=new Date(Date.UTC(e,t-1,n));return r.getUTCFullYear()===e&&r.getUTCMonth()===t-1&&r.getUTCDate()===n},Xn=e=>{let t=e.split(`:`),n=Number(t[0]),r=Number(t[1]),i=t[2]?Number.parseFloat(t[2]):0;return n>=0&&n<=23&&r>=0&&r<=59&&i>=0&&i<60},Zn=(e,t)=>{if(e!=null&&e!==``){if(Hn.has(t)){let t=typeof e==`string`?e.trim():e;return typeof t==`number`||typeof t==`bigint`||typeof t==`string`&&xe.test(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`date`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Un.test(t))return`VALUE_TYPE_MISMATCH`;let[n,r,i]=t.split(`-`).map(Number);return Yn(n,r,i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`datetime-local`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim().replace(/(Z|[+-]\d{2}:?\d{2}|[+-]\d{2})$/,``),n=t.indexOf(`T`);if(n===-1)return`VALUE_TYPE_MISMATCH`;let r=t.slice(0,n),i=t.slice(n+1);if(!Un.test(r)||!Wn.test(i))return`VALUE_TYPE_MISMATCH`;let[a,o,s]=r.split(`-`).map(Number);return Yn(a,o,s)&&Xn(i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`time`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();return Wn.test(t)&&Xn(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`month`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Gn.test(t))return`VALUE_TYPE_MISMATCH`;let n=Number(t.slice(5));return n>=1&&n<=12?void 0:`VALUE_TYPE_MISMATCH`}if(t===`week`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Kn.test(t))return`VALUE_TYPE_MISMATCH`;let n=Number(t.slice(6));return n>=1&&n<=53?void 0:`VALUE_TYPE_MISMATCH`}if(t===`color`)return typeof e==`string`&&qn.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`;if(t===`url`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;try{new URL(e.trim());return}catch{return`VALUE_TYPE_MISMATCH`}}if(t===`email`)return typeof e==`string`&&Jn.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`}},Qn=(e,t)=>{let{fields:n,placeholderFieldName:r,placeholderOperatorName:i,placeholderValueName:a,validateRule:o,validationMap:s}=t,c=[],l={totalRules:0,totalGroups:0,validRules:0,invalidRules:0,validGroups:0,invalidGroups:0},u={},d=ut(n),f=new Map;for(let e of d)f.set(e.name,e);let p=f.size>0,m=(e,t)=>{l.totalGroups++;let n=t.length,d=s[e.id??``],h=G(e,d),g=er(d);e.muted?c.push({id:e.id??``,path:t,code:`MUTED`,message:`Group is muted`,source:`muted`}):!h&&d!==void 0&&c.push({id:e.id??``,path:t,code:`CUSTOM_VALIDATOR`,message:g?`Invalid: ${g.join(`, `)}`:`Group failed validation`,source:`query-validator`});let _=!0,v=0,y=[];for(let n of e.rules){if(typeof n==`string`){y.push(n),v++;continue}let e=[...t,v];if(F(n)){let t=m(n,e);t.valid||(_=!1),y.push(t),v++;continue}l.totalRules++;let s=e.length,[d,h]=o(n),g=G(n,d,h)&&n.field!==r&&n.operator!==i&&(a===void 0||n.value!==a);$n(n,e,d,h,g,c,r,i,a,p,f),g?l.validRules++:(_=!1,l.invalidRules++);let b=n.field;u[b]||(u[b]={ruleCount:0,invalidCount:0}),u[b].ruleCount++,g||u[b].invalidCount++;let x=er(d)??tr(n,h),S={...n,valid:g,...x?{reasons:x}:null,path:e,level:s};y.push(S),v++}let b=h&&_;return b?l.validGroups++:l.invalidGroups++,I(e),{...e,valid:b,...g?{reasons:g}:null,path:t,level:n,rules:y}},h=m(e,[]);if(p){let e=new Set(Object.keys(u));for(let[t]of f)e.has(t)||c.push({id:``,path:[],code:`UNREFERENCED_FIELD`,message:`Field "${t}" is defined in the fields config but not used in the query`,source:`field-check`})}return{query:h,diagnostics:c,stats:l,fieldSummary:u}},$n=(e,t,n,r,i,a,o,s,c,l,u)=>{let d=e.id??``;if(e.muted&&a.push({id:d,path:t,code:`MUTED`,message:`Rule is muted`,source:`muted`}),e.field===o&&a.push({id:d,path:t,code:`PLACEHOLDER_FIELD`,message:`Rule has a placeholder field`,source:`placeholder`}),e.operator===s&&a.push({id:d,path:t,code:`PLACEHOLDER_OPERATOR`,message:`Rule has a placeholder operator`,source:`placeholder`}),c!==void 0&&e.value===c&&a.push({id:d,path:t,code:`PLACEHOLDER_VALUE`,message:`Rule has a placeholder value`,source:`placeholder`}),!e.muted&&e.field!==o&&e.operator!==s&&(c===void 0||e.value!==c)){if(typeof n==`boolean`&&!n)a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:`Rule failed validation`,source:`query-validator`});else if(typeof n!=`boolean`&&It(n)&&!n.valid){let e=n.reasons;a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:e?`Invalid: ${e.join(`, `)}`:`Rule failed validation`,source:`query-validator`})}else if(!i&&typeof r==`function`){let n=r(e),i=typeof n!=`boolean`&&It(n)&&!n.valid?n.reasons:void 0;a.push({id:d,path:t,code:`CUSTOM_VALIDATOR`,message:i?`Invalid: ${i.join(`, `)}`:`Rule failed field validation`,source:`field-validator`})}}if(l&&!u.has(e.field)&&e.field!==o&&a.push({id:d,path:t,code:`UNDEFINED_FIELD`,message:`Field "${e.field}" is not defined in the fields config`,source:`field-check`}),l){let n=u.get(e.field);if(n?.inputType){let r=Zn(e.value,n.inputType);r&&a.push({id:d,path:t,code:r,message:`Value "${e.value}" is not compatible with input type "${n.inputType}"`,source:`type-check`})}}},er=e=>{if(typeof e!=`boolean`&&It(e)&&!e.valid&&e.reasons)return e.reasons},tr=(e,t)=>{if(typeof t==`function`){let n=t(e);if(typeof n!=`boolean`&&It(n)&&!n.valid&&n.reasons)return n.reasons}},nr=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),rr=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=e=>e==null?`null`:typeof e==`boolean`||typeof e==`bigint`?String(e):c||typeof e==`number`||q(e,r)?j(e):`'${nr(e,n)}'`;switch(l){case`=`:return`${i} = ${u(o)}`;case`!=`:case`<>`:return`${i} <> ${u(o)}`;case`<`:case`>`:case`<=`:case`>=`:return`${i} ${l} ${u(o)}`;case`contains`:return`${i} CONTAINS ${u(o)}`;case`doesnotcontain`:return`NOT ${i} CONTAINS ${u(o)}`;case`beginswith`:return`${i} STARTS WITH ${u(o)}`;case`doesnotbeginwith`:return`NOT ${i} STARTS WITH ${u(o)}`;case`endswith`:return`${i} ENDS WITH ${u(o)}`;case`doesnotendwith`:return`NOT ${i} ENDS WITH ${u(o)}`;case`null`:return`${i} IS NULL`;case`notnull`:return`${i} IS NOT NULL`;case`in`:case`notin`:{let e=M(o).map(u);return e.length?`${l===`notin`?`NOT `:``}${i} IN [${e.join(`, `)}]`:``}case`between`:case`notbetween`:{let e=M(o);if(e.length<2)return``;let[t,n]=[u(e[0]),u(e[1])],r=`${t} <= ${i} AND ${i} <= ${n}`;return l===`notbetween`?`NOT (${r})`:r}default:return`${i} ${a} ${u(o)}`}},ir=(e,t)=>{let n=t??{},{parseNumbers:r,preserveValueOrder:i,context:a={}}=n,{columns:o,drizzleOperators:s,useRawFields:c}=a;if(!o||!s)return;let{between:l,eq:u,gt:d,gte:f,inArray:p,isNotNull:m,isNull:h,like:g,lt:_,lte:v,ne:y,notBetween:b,notInArray:x,notLike:S,sql:C}=s,{field:w,operator:T,value:E,valueSource:D}=e,O=c&&/^[a-z_][a-z0-9_.]*$/i.test(w)?C.raw(w):o[w],ee=N(T),te=D===`field`,ne=e=>te?o[e]:e,re=e=>te||!r?ne(e):q(e,!0)?U(e,{parseNumbers:!0}):e;if(!O)return;let k=J(e);if(k!==!1){if(k){if(n.preset!==`postgresql`)return;let{mode:t,threshold:r}=k,i=n.subqueryDepth??0,a=an(i),o=W(e.value,{ruleProcessor:e=>({...e,field:a})}),c=En(o,{...n,context:{...n.context,useRawFields:!0},subqueryDepth:i+1});switch(t){case`all`:return C`(select count(*) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) = array_length(${O}, 1)`;case`none`:return C`not exists (select 1 from unnest(${O}) as ${C.raw(a)} where ${c({},s)})`;case`some`:return C`exists (select 1 from unnest(${O}) as ${C.raw(a)} where ${c({},s)})`;case`atleast`:case`atmost`:case`exactly`:{let e=t===`atleast`?`>=`:t===`atmost`?`<=`:`=`;return r>0&&r<1?C`(select count(*)::float / array_length(${O}, 1) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) ${C.raw(`${e} ${r}`)}`:C`(select count(*) from unnest(${O}) as ${C.raw(a)} where ${c({},s)}) ${C.raw(`${e} ${r}`)}`}}}switch(ee){case`=`:return u(O,re(E));case`!=`:return y(O,re(E));case`>`:return d(O,re(E));case`<`:return _(O,re(E));case`>=`:return f(O,re(E));case`<=`:return v(O,re(E));case`beginswith`:case`doesnotbeginwith`:return(ee===`doesnotbeginwith`?S:g)(O,te?C`${ne(E)} || '%'`:`${E}%`);case`contains`:case`doesnotcontain`:return(ee===`doesnotcontain`?S:g)(O,te?C`'%' || ${ne(E)} || '%'`:`%${E}%`);case`endswith`:case`doesnotendwith`:return(ee===`doesnotendwith`?S:g)(O,te?C`'%' || ${ne(E)}`:`%${E}`);case`null`:return h(O);case`notnull`:return m(O);case`in`:case`notin`:{let e=M(E).map(e=>re(e));return ee===`notin`?x(O,e):p(O,e)}case`between`:case`notbetween`:{let e=M(E);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,n]=e,a=r!==!1;if(!te&&q(t,a)&&q(n,a)){let e=U(t,{parseNumbers:a}),r=U(n,{parseNumbers:a});if(!i&&r<e){let i=r;n=e,t=i}else t=e,n=r}else te&&(t=ne(t),n=ne(n));return ee===`notbetween`?b(O,t,n):l(O,t,n)}return}default:return}}},ar={"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`},or=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{bool:{must_not:t}}:t,sr=e=>e?.replace(/('|\\)/g,`\\$1`),cr={beginswith:`startsWith`,doesnotbeginwith:`startsWith`,doesnotcontain:`contains`,doesnotendwith:`endsWith`,endswith:`endsWith`},lr=(e,t,n)=>{let r=`doc['${e}'].value.${cr[t]??t}(doc['${n}'].value)`;return t.startsWith(`d`)?`!${r}`:r},ur=(e,t)=>typeof e==`boolean`?e:q(e,t)?U(e,{parseNumbers:t}):e,dr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t,c=N(r),l=J(e);if(l===!1)return!1;if(l){let{mode:r}=l,i=Dn(W(e.value,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),t);if(Object.keys(i).length===0)return!1;switch(r){case`some`:return{nested:{path:n,query:i}};case`none`:return{bool:{must_not:{nested:{path:n,query:i}}}};case`all`:case`atleast`:case`atmost`:case`exactly`:return!1}}if(a===`field`){if(M(i).some(e=>typeof e!=`string`))return!1;let e=sr(n);switch(c){case`=`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:{let t=c===`=`?`==`:c,n=sr(i);return n?{bool:{filter:{script:{script:`doc['${e}'].value ${t} doc['${n}'].value`}}}}:!1}case`in`:case`notin`:{let t=M(i);if(t.length>0){let n=t.map(t=>({bool:{filter:{script:{script:`doc['${e}'].value == doc['${t}'].value`}}}}));return{bool:c===`in`?{should:n}:{must_not:n}}}return!1}case`between`:case`notbetween`:{let t=M(i);if(t.length>=2&&t[0]&&t[1]){let n=`doc['${e}'].value >= doc['${t[0]}'].value && doc['${e}'].value <= doc['${t[1]}'].value`;return{bool:{filter:{script:{script:c===`notbetween`?`!(${n})`:n}}}}}return!1}case`contains`:case`doesnotcontain`:case`beginswith`:case`doesnotbeginwith`:case`endswith`:case`doesnotendwith`:{let t=sr(i);return t?{bool:{filter:{script:{script:lr(e,c,t)}}}}:!1}}}switch(c){case`<`:case`<=`:case`>`:case`>=`:return{range:{[n]:{[ar[c]]:ur(i,o)}}};case`=`:return{term:{[n]:ur(i,o)}};case`!=`:return{bool:{must_not:{term:{[n]:ur(i,o)}}}};case`null`:return{bool:{must_not:{exists:{field:n}}}};case`notnull`:return{exists:{field:n}};case`in`:case`notin`:{let e=M(i).map(e=>ur(e,o));if(e.length>0){let t=e.map(e=>({term:{[n]:ur(e,o)}}));return{bool:c===`in`?{should:t}:{must_not:t}}}return!1}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=o!==!1;if(q(t,i)&&q(r,i)){let e=U(t,{parseNumbers:i}),n=U(r,{parseNumbers:i});if(!s&&n<e){let i=n;r=e,t=i}else t=e,r=n}return or(c,{range:{[n]:{gte:t,lte:r}}})}return!1}case`contains`:case`doesnotcontain`:return or(c,{regexp:{[n]:{value:`.*${i}.*`}}});case`beginswith`:case`doesnotbeginwith`:return or(c,{regexp:{[n]:{value:`${i}.*`}}});case`endswith`:case`doesnotendwith`:return or(c,{regexp:{[n]:{value:`.*${i}`}}})}return!1},fr=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),pr=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=i.includes(`.`)?i.split(`.`).pop():i,d=e=>e==null?`null`:typeof e==`boolean`||typeof e==`bigint`?String(e):c||typeof e==`number`||q(e,r)?j(e):`'${fr(e,n)}'`;switch(l){case`=`:return`.has('${u}', ${d(o)})`;case`!=`:case`<>`:return`.has('${u}', neq(${d(o)}))`;case`<`:return`.has('${u}', lt(${d(o)}))`;case`>`:return`.has('${u}', gt(${d(o)}))`;case`<=`:return`.has('${u}', lte(${d(o)}))`;case`>=`:return`.has('${u}', gte(${d(o)}))`;case`contains`:return`.has('${u}', containing(${d(o)}))`;case`doesnotcontain`:return`.has('${u}', notContaining(${d(o)}))`;case`beginswith`:return`.has('${u}', startingWith(${d(o)}))`;case`doesnotbeginwith`:return`.has('${u}', notStartingWith(${d(o)}))`;case`endswith`:return`.has('${u}', endingWith(${d(o)}))`;case`doesnotendwith`:return`.has('${u}', notEndingWith(${d(o)}))`;case`null`:return`.hasNot('${u}')`;case`notnull`:return`.has('${u}')`;case`in`:{let e=M(o).map(d);return e.length?`.has('${u}', within(${e.join(`, `)}))`:``}case`notin`:{let e=M(o).map(d);return e.length?`.has('${u}', without(${e.join(`, `)}))`:``}case`between`:{let e=M(o);return e.length<2?``:`.has('${u}', between(${d(e[0])}, ${d(e[1])}))`}case`notbetween`:{let e=M(o);return e.length<2?``:`.has('${u}', outside(${d(e[0])}, ${d(e[1])}))`}default:return`.has('${u}', ${d(o)})`}},mr=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),hr=(e,t)=>`"${typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`)}"`,gr=(e,t)=>t?`$not(${e})`:e,_r=e=>`${e}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g,String.raw`\$&`).replaceAll(`-`,String.raw`\x2d`),vr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c,quoteFieldNamesWith:l=[``,``],fieldIdentifierSeparator:u=``}=t,d=a===`field`,f=typeof i==`number`||typeof i==`boolean`||typeof i==`bigint`||q(i,s),p=e=>Yt(e,{quoteFieldNamesWith:l,fieldIdentifierSeparator:u}),m=J(e);if(m===!1)return;if(m){let{mode:e,threshold:r}=m,a=`$count(${p(n)})`,o=`$count($filter(${p(n)}, function($v) {${kn(W(i,{ruleProcessor:e=>({...e,field:e.field?`$v.${e.field}`:`$v`})}),t)}}))`;switch(e){case`all`:return`${o} = ${a}`;case`none`:return`${o} = 0`;case`some`:return`${o} > 0`;case`atleast`:case`atmost`:case`exactly`:{let t=e===`atleast`?`>=`:e===`atmost`?`<=`:`=`;return r>0&&r<1?`${o} ${t} (${a} * ${r})`:`${o} ${t} ${r}`}}}let h=N(r);switch(h){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${p(n)} ${h} ${d?p(j(i)):f?j(i):hr(i,o)}`;case`contains`:case`doesnotcontain`:return gr(`$contains(${p(n)}, ${d?p(j(i)):hr(i,o)})`,mr(h));case`beginswith`:case`doesnotbeginwith`:return gr(d?`$substring(${p(n)}, 0, $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /^${_r(i)}/)`,mr(h));case`endswith`:case`doesnotendwith`:return gr(d?`$substring(${p(n)}, $length(${p(n)}) - $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /${_r(i)}$/)`,mr(h));case`null`:return`${p(n)} = null`;case`notnull`:return`${p(n)} != null`;case`in`:case`notin`:{let e=M(i);return gr(`${p(n)} in [${e.map(e=>d?`${p(j(e))}`:q(e,s)?`${j(e)}`:hr(e,o)).join(`, `)}]`,mr(h))}case`between`:case`notbetween`:{let e=M(i);if(e.length<2||Se(e[0])||Se(e[1]))return``;let[t,r]=e,a=s!==!1,l=q(t,a)?U(t,{parseNumbers:a}):NaN,u=q(r,a)?U(r,{parseNumbers:a}):NaN,f=Number.isNaN(l)?d?`${t}`:t:l,m=Number.isNaN(u)?d?`${r}`:r:u;if(!c&&f===l&&m===u&&u<l){let e=u;m=l,f=e}let g=q(t,s)&&q(r,s),_=(e,t)=>d?p(e):g?t:hr(t,o),v=`${p(n)} >= ${_(t,f)} and ${p(n)} <= ${_(r,m)}`;return h===`between`?`(${v})`:gr(v,!0)}}return``},yr=e=>e.replace(/^(=)$/,`$1=`).replace(/^notnull$/i,`!=`).replace(/^null$/i,`==`),br=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{"!":t}:t,xr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t,c=a===`field`,l={var:n},u=e=>c?{var:`${e}`}:q(e,o)?U(e,{parseNumbers:o}):e,d=J(e);if(d===!1)return!1;if(d){let{mode:e,threshold:r}=d;switch(e){case`all`:case`none`:case`some`:return{[e]:[{var:n},i.rules.length===1&&!F(i.rules[0])?xr(i.rules[0],t):An(i,t)]};case`atleast`:case`atmost`:case`exactly`:{let a=e===`atleast`?`>=`:e===`atmost`?`<=`:`==`,o={reduce:[{filter:[{var:n},i.rules.length===1&&!F(i.rules[0])?xr(i.rules[0],t):An(i,t)]},{"+":[1,{var:`accumulator`}]},0]};if(r>0&&r<1){let e={reduce:[{var:n},{"+":[1,{var:`accumulator`}]},0]};return{[a]:[o,{"*":[e,r]}]}}return{[a]:[o,r]}}}}let f=N(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[yr(f)]:[l,u(i)]};case`null`:case`notnull`:return{[`${f===`notnull`?`!`:`=`}=`]:[l,null]};case`in`:case`notin`:{let e=M(i).map(e=>u(e));return br(f,{in:[l,e]})}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,n]=e,r=o!==!1;if(!c&&q(t,r)&&q(n,r)){let e=U(t,{parseNumbers:r}),i=U(n,{parseNumbers:r});if(!s&&i<e){let r=i;n=e,t=r}else t=e,n=i}else c&&(t={var:t},n={var:n});return br(f,{"<=":[t,l,n]})}return!1}case`contains`:case`doesnotcontain`:{let e={in:[u(i),l]};return br(f,e)}case`beginswith`:case`doesnotbeginwith`:{let e={startsWith:[l,u(i)]};return br(f,e)}case`endswith`:case`doesnotendwith`:{let e={endsWith:[l,u(i)]};return br(f,e)}}return!1},Sr=(e,t)=>t?`(!${e})`:`${e}`,Cr=e=>`${j(e)}`.replaceAll(/[()&|=<>~*\\/]/g,e=>`\\${e.codePointAt(0).toString(16)}`),wr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{preserveValueOrder:o}=t,s=N(r);if(a===`field`||Se(i)&&s!==`null`&&s!==`notnull`||J(e))return``;switch(s){case`=`:case`!=`:return Sr(`(${n}=${Cr(i)})`,s===`!=`);case`>`:case`>=`:return`(${n}>=${Cr(i)})`;case`<`:case`<=`:return`(${n}<=${Cr(i)})`;case`contains`:case`doesnotcontain`:return Sr(`(${n}=*${Cr(i)}*)`,s===`doesnotcontain`);case`beginswith`:case`doesnotbeginwith`:return Sr(`(${n}=${Cr(i)}*)`,s===`doesnotbeginwith`);case`endswith`:case`doesnotendwith`:return Sr(`(${n}=*${Cr(i)})`,s===`doesnotendwith`);case`null`:case`notnull`:return Sr(`(${n}=*)`,s===`notnull`);case`in`:case`notin`:{let e=M(i);return Sr(`(|${e.map(e=>`(${n}=${Cr(e)})`).join(``)})`,s===`notin`)}case`between`:case`notbetween`:{let e=M(i);if(e.length<2||Se(e[0])||Se(e[1]))return``;let[t,r]=e,a=q(t,!0)?U(t,{parseNumbers:!0}):NaN,c=q(r,!0)?U(r,{parseNumbers:!0}):NaN,l=Number.isNaN(a)?t:a,u=Number.isNaN(c)?r:c;if(!o&&l===a&&u===c&&c<a){let e=c;u=a,l=e}return Sr(`(&(${n}>=${Cr(l)})(${n}<=${Cr(u)}))`,s===`notbetween`)}}return``},Tr=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,Er=(e,t={})=>{let{escapeQuotes:n,fields:r,parseNumbers:i,quoteFieldNamesWith:a,quoteValuesWith:o,fieldIdentifierSeparator:s,translations:c}=t,l=e.valueSource===`field`,u=N(e.operator),d=o||`'`,f=e=>`${d}${e}${d}`,p=e=>Tr(e,d,n),m=e=>f(p(e)),h=e=>Yt(e,{quoteFieldNamesWith:a,fieldIdentifierSeparator:s}),g=c??{},_=g.or??`or`,v=g.true??`true`,y=g.false??`false`,b=g.listSeparator??`, `,x=!g.listSeparator;switch(u){case`null`:case`notnull`:return``;case`between`:case`notbetween`:{if(!l)return Cn(e,t);let n=M(e.value,{retainEmptyStrings:!0}).slice(0,2).map(e=>h(V(r??[],e)?.label??e));return n.length<2||!K(n[0])||!K(n[1])?``:Cn({...e,value:n},t)}case`in`:case`notin`:{let t=M(e.value);if(t.length===0)return``;let n=t.map(e=>l?h(V(r??[],e)?.label??e):q(e,i)?`${j(e)}`:`${m(e)}`);if(n.length===1)return n[0];let a=x&&n.length>2?`,`:``;return`(${`${n.slice(0,-1).join(b)}${a} ${_} ${n.at(-1)}`})`}}return typeof e.value==`boolean`?e.value?v:y:l?h(V(r??[],e.value)?.label??e.value):q(e.value,i)?`${j(e.value)}`:`${m(e.value)}`},Dr={"=":[`is`,`is the same as the value in`],"!=":[`is not`,`is not the same as the value in`],"<":[`is less than`,`is less than the value in`],">":[`is greater than`,`is greater than the value in`],"<=":[`is less than or equal to`,`is less than or equal to the value in`],">=":[`is greater than or equal to`,`is greater than or equal to the value in`],contains:[`contains`,`contains the value in`],beginswith:[`starts with`,`starts with the value in`],endswith:[`ends with`,`ends with the value in`],doesnotcontain:[`does not contain`,`does not contain the value in`],doesnotbeginwith:[`does not start with`,`does not start with the value in`],doesnotendwith:[`does not end with`,`does not end with the value in`],null:`is null`,notnull:`is not null`,in:[`is one of the values`,`is the same as a value in`],notin:[`is not one of the values`,`is not the same as any value in`],between:[`is between`,`is between the values in`],notbetween:[`is not between`,`is not between the values in`]},Or=()=>[],kr=(e,t={})=>{let{field:n,operator:r,valueSource:i=`value`}=e,{getOperators:a=Or,operatorMap:o=Dr}=t,s=new Map(Object.entries(Dr));for(let[e,t]of Object.entries(o))s.set(N(e),t);let c=Object.fromEntries(s),l=N(r);var u=r;let d=M(e.value).length===1;l===`in`&&d?u=`=`:l===`notin`&&d&&(u=`!=`);let{value:f,label:p}=V(B(a(n,{fieldData:t.fieldData??{name:n,value:n,label:n}})??[]),u)??{name:u,value:u,label:u},m=c[f]??c[N(f)]??[p,p];return typeof m==`string`?m:m[+(i===`field`)]},Ar=(e,t)=>{let{field:n,operator:r}=e,{fieldData:i,quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:o=``,quoteValuesWith:s=`'`,operatorProcessor:c=kr,valueProcessor:l=Er,concatOperator:u=`||`,wordOrder:d=`SVO`}=t??{},f=Yt(i?.label??n,{quoteFieldNamesWith:a,fieldIdentifierSeparator:o}),p=J(e);if(p===!1)return``;if(p){let{mode:n,threshold:r}=p,a=Pn(e.value,{...t,fields:B(i?.subproperties??[])}),o=(i?.subproperties?.length??0)>0;switch(n){case`all`:return`(${o?`for `:``}every item in ${f}${o?`,`:``} ${a})`;case`none`:return`(${o?`for `:``}no item in ${f}${o?`,`:``} ${a})`;case`some`:return`(${o?`for `:``}at least one item in ${f}${o?`,`:``} ${a})`;case`atleast`:case`atmost`:case`exactly`:{let e=n.replace(`at`,`at `);return r>0&&r<1?`(${o?`for `:``}${e} ${r*100}% of the items in ${f}${o?`,`:``} ${a})`:`(${o?`for `:``}${e} ${r} of the items in ${f}${o?`,`:``} ${a})`}}}let m=l(e,{...t,quoteFieldNamesWith:a,fieldIdentifierSeparator:o,quoteValuesWith:s,concatOperator:u}),h=N(r);if((h===`in`||h===`notin`||h===`between`||h===`notbetween`)&&!m)return``;let g={S:f,V:c(e,t),O:m},_=t?.translations??{},v={S:_.afterSubject??` `,V:_.afterVerb??` `,O:_.afterObject??` `},y=Zt(d).filter(e=>g[e]!==``);return y.map((e,t)=>`${g[e]}${t<y.length-1?v[e]:``}`).join(``).trim()},jr=e=>N(Rt(e.operator)),Mr=(e,t={})=>{let{quoteFieldNamesWith:n=[``,``],fieldIdentifierSeparator:r=``,quoteValuesWith:i=`'`,operatorProcessor:a=jr,valueProcessor:o=Cn,concatOperator:s=`||`}=t,c=e=>Yt(e,{quoteFieldNamesWith:n,fieldIdentifierSeparator:r}),l=c(e.field),u=J(e);if(u===!1)return;if(u){if(t?.preset!==`postgresql`)return``;let{mode:n,threshold:r}=u,i=t.subqueryDepth??0,a=an(i),o=Bn(W(e.value,{ruleProcessor:e=>({...e,field:a})}),{...t,subqueryDepth:i+1});switch(n){case`all`:return`(select count(*) from unnest(${l}) as ${c(a)} where ${o}) = array_length(${l}, 1)`;case`none`:return`not exists (select 1 from unnest(${l}) as ${c(a)} where ${o})`;case`some`:return`exists (select 1 from unnest(${l}) as ${c(a)} where ${o})`;case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return`(select count(*)${r>0&&r<1?`::float / array_length(${l}, 1)`:``} from unnest(${l}) as ${c(a)} where ${o}) ${e} ${r}`}}}let d=o(e,{...t,quoteFieldNamesWith:n,fieldIdentifierSeparator:r,quoteValuesWith:i,concatOperator:s}),f=a(e,t),p=N(f);return(p===`in`||p===`not in`||p===`between`||p===`not between`)&&!d?``:`${l} ${f} ${d}`.trim()},Nr=(e,t,n)=>{let{fieldData:r,format:i,getNextNamedParam:a,parseNumbers:o,paramPrefix:s,paramsKeepPrefix:c,numberedParams:l,quoteFieldNamesWith:u=[``,``],fieldIdentifierSeparator:d,concatOperator:f,operatorProcessor:p=jr,valueProcessor:m=Cn}=t??{},{processedParams:h=[]}=n??{},g=i===`parameterized`,_=[],v={},y=e=>g?{sql:e,params:_}:{sql:e,params:v},b=e=>Yt(e,{quoteFieldNamesWith:u,fieldIdentifierSeparator:d}),x=b(e.field),S=J(e);if(S===!1)return;if(S){if(t?.preset!==`postgresql`)return y(``);let{mode:n,threshold:r}=S,i=t.subqueryDepth??0,a=an(i),{sql:o,params:s}=Fn(W(e.value,{ruleProcessor:e=>({...e,field:a})}),{...t,fields:[],subqueryDepth:i+1});switch(Array.isArray(s)?_.push(...s):Object.assign(v,s),n){case`all`:return y(`(select count(*) from unnest(${x}) as ${b(a)} where ${o}) = array_length(${x}, 1)`);case`none`:return y(`not exists (select 1 from unnest(${x}) as ${b(a)} where ${o})`);case`some`:return y(`exists (select 1 from unnest(${x}) as ${b(a)} where ${o})`);case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return y(`(select count(*)${r>0&&r<1?`::float / array_length(${x}, 1)`:``} from unnest(${x}) as ${b(a)} where ${o}) ${e} ${r}`)}}}let C=m(e,{parseNumbers:o,quoteFieldNamesWith:u,concatOperator:f,fieldData:r,format:i}),w=p(e,t),T=N(w),[E,D]=u;if((T===`in`||T===`not in`||T===`between`||T===`not between`)&&!C)return y(``);if(T===`is null`||T===`is not null`)return y(`${E}${e.field}${D} ${w}`);if(e.valueSource===`parameter`){let t=e=>{let t=Qt(e,s);return g||(v[c?t:$t(e,s)]=null),t};if(T===`between`||T===`not between`){let[n,r]=M(e.value,{retainEmptyStrings:!0}).slice(0,2);return y(`${E}${e.field}${D} ${w} ${t(n)} and ${t(r)}`.trim())}if(T===`in`||T===`not in`){let n=M(e.value);return y(`${E}${e.field}${D} ${w} (${n.map(e=>t(e)).join(`, `)})`)}return y(`${E}${e.field}${D} ${w} ${Vt(t(e.value),N(e.operator),{concatOperator:f})}`.trim())}if(e.valueSource===`field`)return y(`${E}${e.field}${D} ${w} ${C}`.trim());if(T===`in`||T===`not in`){let t=M(e.value);if(g){for(let e of t)_.push(q(e,o)?U(e,{parseNumbers:o}):e);return y(`${E}${e.field}${D} ${w} (${t.map((e,n)=>l?`${s}${h.length+1+t.length-(t.length-n)}`:`?`).join(`, `)})`)}let n=[];for(let r of t){let t=a(e.field);n.push(`${s}${t}`),v[`${c?s:``}${t}`]=q(r,o)?U(r,{parseNumbers:o}):r}return y(`${E}${e.field}${D} ${w} (${n.join(`, `)})`)}if(T===`between`||T===`not between`){let[t,n]=M(e.value,{retainEmptyStrings:!0}).slice(0,2).map(e=>q(e,o)?U(e,{parseNumbers:o}):e);if(g)return _.push(t,n),y(`${E}${e.field}${D} ${w} ${l?`${s}${h.length+1}`:`?`} and ${l?`${s}${h.length+2}`:`?`}`);let r=a(e.field),i=a(e.field);return v[`${c?s:``}${r}`]=t,v[`${c?s:``}${i}`]=n,y(`${E}${e.field}${D} ${w} ${s}${r} and ${s}${i}`)}let O=e.value;typeof e.value==`string`&&(O=q(e.value,o)?U(e.value,{parseNumbers:o}):/^'.*'$/g.test(C)?C.replaceAll(/(^'|'$)/g,``):C);let ee=``;return g?_.push(O):(ee=a(e.field),v[`${c?s:``}${ee}`]=O),y(`${E}${e.field}${D} ${w} ${g?l?`${s}${h.length+1}`:`?`:`${s}${ee}`}`.trim())},Pr=(e,t,n)=>q(e,!!n||typeof e==`bigint`)?Number(U(e,{parseNumbers:!!n})):t,Fr=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{parseNumbers:o,preserveValueOrder:s}=t;if(a===`field`||J(e))return;let c=N(r);switch(c){case`=`:return{[n]:Pr(i,i,o)};case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e=Ut[c];return{[n]:{[e]:Pr(i,i,o)}}}case`contains`:return{[n]:{contains:i}};case`beginswith`:return{[n]:{startsWith:i}};case`endswith`:return{[n]:{endsWith:i}};case`doesnotcontain`:return{NOT:{[n]:{contains:i}}};case`doesnotbeginwith`:return{NOT:{[n]:{startsWith:i}}};case`doesnotendwith`:return{NOT:{[n]:{endsWith:i}}};case`null`:return{[n]:null};case`notnull`:return{[n]:{not:null}};case`in`:case`notin`:{let e=M(i);return{[n]:{[Ut[c]]:e.map(e=>Pr(e,e,o))}}}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,r]=e,i=o!==!1,a=q(t,i)?U(t,{parseNumbers:o}):NaN,l=q(r,i)?U(r,{parseNumbers:o}):NaN,u=Number.isNaN(a)?t:a,d=Number.isNaN(l)?r:l;if(!s&&u===a&&d===l&&l<a){let e=l;d=a,u=e}return c===`between`?{[n]:{gte:u,lte:d}}:{OR:[{[n]:{lt:u}},{[n]:{gt:d}}]}}return``}}return``},Ir=(e,{parseNumbers:t,preserveValueOrder:n,context:r={}}={})=>{let{sequelizeOperators:i,sequelizeCol:a,sequelizeFn:o}=r;if(J(e))return;let{field:s,operator:c,value:l,valueSource:u}=e,d=u===`field`,f=N(c);if(!(!i||d&&(!a||!o&&[`contains`,`doesnotcontain`,`beginswith`,`doesnotbeginwith`,`endswith`,`doesnotendwith`].includes(f))))switch(f){case`=`:case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e={"=":i.eq,"!=":i.ne,"<":i.lt,"<=":i.lte,">":i.gt,">=":i.gte}[f];return{[s]:d&&f===`=`?{[i.col]:l}:{[e]:d?a(l):q(l,t)?U(l,{parseNumbers:`strict`}):l}}}case`contains`:return{[s]:{[d?i.like:i.substring]:d?o(`CONCAT`,`%`,a(l),`%`):`${l}`}};case`beginswith`:return{[s]:{[d?i.like:i.startsWith]:d?o(`CONCAT`,a(l),`%`):`${l}`}};case`endswith`:return{[s]:{[d?i.like:i.endsWith]:d?o(`CONCAT`,`%`,a(l)):`${l}`}};case`doesnotcontain`:return{[s]:{[i.notLike]:d?o(`CONCAT`,`%`,a(l),`%`):`%${l}%`}};case`doesnotbeginwith`:return{[s]:{[i.notLike]:d?o(`CONCAT`,a(l),`%`):`${l}%`}};case`doesnotendwith`:return{[s]:{[i.notLike]:d?o(`CONCAT`,`%`,a(l)):`%${l}`}};case`null`:return{[s]:{[i.is]:null}};case`notnull`:return{[s]:{[i.not]:null}};case`in`:case`notin`:{let e=M(l);return{[s]:{[f===`in`?i.in:i.notIn]:e.map(e=>d?a(e):q(e,t)?U(e,{parseNumbers:`strict`}):e)}}}case`between`:case`notbetween`:{let e=M(l,{retainEmptyStrings:!0});if(e.length<2||!K(e[0])||!K(e[1]))return;let[r,o]=e,c=q(r,t)?U(r,{parseNumbers:`strict`}):NaN,u=q(o,t)?U(o,{parseNumbers:`strict`}):NaN,p=Number.isNaN(c)?r:c,m=Number.isNaN(u)?o:u,h=[p,m];return!n&&p===c&&m===u&&u<c&&(h[0]=u,h[1]=c),{[s]:{[f===`between`?i.between:i.notBetween]:d?h.map(e=>a(e)):h.every(e=>q(e,t))?h.map(e=>U(e,{parseNumbers:`strict`})):h}}}}},Lr=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),Rr=e=>/^[?<]/.test(e)||e.includes(`:`)?e:`?${e}`,zr=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=Rr(i),d=e=>{if(e==null)return`""`;if(typeof e==`boolean`)return`"${e}"^^xsd:boolean`;if(typeof e==`bigint`)return String(e);if(c)return Rr(j(e));if(typeof e==`number`||q(e,r))return j(e);let t=typeof e==`string`?e:JSON.stringify(e)??``;return t.startsWith(`?`)||t.startsWith(`<`)||t.includes(`:`)?t:`"${Lr(t,n)}"`};switch(l){case`=`:case`!=`:case`<`:case`>`:case`<=`:case`>=`:return`${u} ${l} ${d(o)}`;case`<>`:return`${u} != ${d(o)}`;case`contains`:return`CONTAINS(${u}, ${d(o)})`;case`doesnotcontain`:return`!CONTAINS(${u}, ${d(o)})`;case`beginswith`:return`STRSTARTS(${u}, ${d(o)})`;case`doesnotbeginwith`:return`!STRSTARTS(${u}, ${d(o)})`;case`endswith`:return`STRENDS(${u}, ${d(o)})`;case`doesnotendwith`:return`!STRENDS(${u}, ${d(o)})`;case`null`:return`!BOUND(${u})`;case`notnull`:return`BOUND(${u})`;case`in`:{let e=M(o).map(d);return e.length?`${u} IN (${e.join(`, `)})`:``}case`notin`:{let e=M(o).map(d);return e.length?`${u} NOT IN (${e.join(`, `)})`:``}case`between`:{let e=M(o);return e.length<2?``:`${u} >= ${d(e[0])} && ${u} <= ${d(e[1])}`}case`notbetween`:{let e=M(o);return e.length<2?``:`(${u} < ${d(e[0])} || ${u} > ${d(e[1])})`}default:return`${u} ${a} ${d(o)}`}},Br=(e,t)=>{let{parseNumbers:n,preserveValueOrder:r,context:i={}}=t??{},a=i.tanStackDbOperators,o=i._tanstackDbRefs,s=i._tanstackDbPrimaryRef;if(!a||!o||!s)return;let{and:c,eq:l,gt:u,gte:d,inArray:f,isNull:p,like:m,lt:h,lte:g,not:_}=a,v=e=>{let t=e.indexOf(`.`);if(t>0){let n=e.slice(0,t),r=e.slice(t+1);if(o[n])return o[n][r]}return o[s][e]},{field:y,operator:b,value:x,valueSource:S}=e,C=v(y),w=N(b),T=S===`field`,E=e=>T?v(e):e,D=e=>T||!n?E(e):q(e,!0)?U(e,{parseNumbers:!0}):e;switch(w){case`=`:return l(C,D(x));case`!=`:return _(l(C,D(x)));case`>`:return u(C,D(x));case`<`:return h(C,D(x));case`>=`:return d(C,D(x));case`<=`:return g(C,D(x));case`beginswith`:case`doesnotbeginwith`:{let e=m(C,T?void 0:`${x}%`);return w===`doesnotbeginwith`?_(e):e}case`contains`:case`doesnotcontain`:{let e=m(C,T?void 0:`%${x}%`);return w===`doesnotcontain`?_(e):e}case`endswith`:case`doesnotendwith`:{let e=m(C,T?void 0:`%${x}`);return w===`doesnotendwith`?_(e):e}case`null`:return p(C);case`notnull`:return _(p(C));case`in`:case`notin`:{let e=f(C,M(x).map(e=>D(e)));return w===`notin`?_(e):e}case`between`:case`notbetween`:{let e=M(x);if(e.length>=2&&K(e[0])&&K(e[1])){let[t,i]=e,a=n!==!1;if(!T&&q(t,a)&&q(i,a)){let e=U(t,{parseNumbers:a}),n=U(i,{parseNumbers:a});if(!r&&n<e){let r=n;i=e,t=r}else t=e,i=n}else T&&(t=E(t),i=E(i));let o=c(d(C,t),g(C,i));return w===`notbetween`?_(o):o}return}default:return}},Vr={ansi:{},sqlite:{paramsKeepPrefix:!0},oracle:{},mssql:{concatOperator:`+`,quoteFieldNamesWith:[`[`,`]`],fieldIdentifierSeparator:`.`,paramPrefix:`@`},mysql:{concatOperator:`CONCAT`},postgresql:{quoteFieldNamesWith:`"`,numberedParams:!0,paramPrefix:`$`}},Hr={...Vr},Ur={cel:dn,drizzle:ir,elasticsearch:dr,json_without_ids:Mr,json:Mr,jsonata:vr,jsonlogic:xr,ldap:wr,mongodb_query:hn,mongodb:gn,natural_language:Ar,parameterized_named:Nr,parameterized:Nr,prisma:Fr,sequelize:Ir,spel:xn,sql:Mr,tanstack_db:Br,cypher:rr,gql:rr,sparql:zr,gremlin:pr,diagnostics:Mr},Y=e=>e.operator,Wr={cel:Y,drizzle:Y,elasticsearch:Y,json_without_ids:Y,json:Y,jsonata:Y,jsonlogic:Y,ldap:Y,mongodb_query:Y,mongodb:Y,natural_language:kr,parameterized_named:jr,parameterized:jr,prisma:Y,sequelize:Y,spel:Y,sql:jr,tanstack_db:Y,cypher:Y,gql:Y,sparql:Y,gremlin:Y,diagnostics:Y},Gr={cel:`1 == 1`,ldap:``,mongodb:`"$and":[{"$expr":true}]`,natural_language:`1 is 1`,sparql:`1 = 1`,gremlin:``,spel:`1 == 1`,sql:`(1 = 1)`},Kr={format:`json`,fields:[],quoteFieldNamesWith:[``,``],fieldIdentifierSeparator:``,getOperators:()=>[],paramPrefix:`:`,paramsKeepPrefix:!1,numberedParams:!1,preserveValueOrder:!1,placeholderFieldName:`~`,placeholderOperatorName:`~`,quoteValuesWith:`'`,concatOperator:`||`,preset:`ansi`,wordOrder:`SVO`,translations:{},operatorMap:{}},qr=new Set([`cel`,`drizzle`,`elasticsearch`,`jsonata`,`jsonlogic`,`ldap`,`mongodb_query`,`mongodb`,`prisma`,`sequelize`,`spel`,`tanstack_db`]),Jr=new Set([`sql`,`parameterized`,`parameterized_named`,`drizzle`,`prisma`,`sequelize`]);function Yr(e,t={}){let n=typeof t==`string`?{format:N(t)}:t,r={...Kr,...!n.format||Jr.has(n.format)?Vr[n.preset??`ansi`]??null:null,...n,...!n.format&&(Object.keys(Vr).includes(n.preset??``)?{format:`sql`}:null)},i=N(r.format),{fallbackExpression:a,getOperators:o,operatorProcessor:s,parseNumbers:c,quoteFieldNamesWith:l,ruleGroupProcessor:u,ruleProcessor:d,validator:f,valueProcessor:p,context:m}=r,h=e=>typeof Lt({parseNumbers:c,inputType:e})==`string`?!0:typeof c==`boolean`?c:void 0,g=typeof s==`function`?s:Wr[i]??Y,_=typeof p==`function`?qt(p)?e=>p(e.field,e.operator,e.value,e.valueSource):p:i===`natural_language`?Er:qr.has(i)?d??Ur[i]:Cn,v=(typeof d==`function`?d:null)??(qr.has(i)&&typeof d!=`function`&&p?_:null)??Ur[i]??Mr,y=Jt(l),b=B(r.fields),x=(e,t)=>B(o(e,t)??[]),S=a??Gr[i]??Gr.sql,C={};if(typeof f==`function`){let t=f(e);if(typeof t==`boolean`){if(!t&&i!==`diagnostics`)return i===`parameterized`?{sql:S,params:[]}:i===`parameterized_named`?{sql:S,params:{}}:i===`mongodb`?`{${S}}`:i===`mongodb_query`?fn:i===`prisma`?In:i===`jsonlogic`?!1:i===`elasticsearch`?{}:i===`drizzle`||i===`sequelize`||i===`tanstack_db`?void 0:S}else C=t}let w={},T=ut(b);for(let e of T)typeof e.validator==`function`&&(w[e.value??e.name]=e.validator);let E=e=>{let t,n;if(e.id&&(t=C[e.id]),T.length>0){let t=T.filter(t=>t.name===e.field);if(t.length>0){let e=t[0];typeof e.validator==`function`&&(n=e.validator)}}if(e.valueSource===`parameter`&&typeof r.getParameters==`function`){let n=V(b,e.field);new Set(ut(B(r.getParameters(e.field,e.operator,{fieldData:n}))).map(e=>$t(e.value,r.paramPrefix))).has($t(e.value,r.paramPrefix))||(t=!1)}return[t,n]},D={...r,fallbackExpression:S,fields:b,format:i,getOperators:x,getParseNumberBoolean:h,quoteFieldNamesWith:y,operatorProcessor:g,ruleProcessor:v,valueProcessor:_,validateRule:E,validationMap:C,context:m};if(typeof u==`function`)return u(e,D);switch(i){case`json`:case`json_without_ids`:{let t=c?Kt(e,D):e;return i===`json_without_ids`?JSON.stringify(t,(e,t)=>e===`id`||e===`path`?void 0:on(e,t)):JSON.stringify(t,on,2)}case`sql`:return Bn(e,D);case`parameterized`:case`parameterized_named`:return Fn(e,D);case`mongodb`:return Nn(e,D);case`mongodb_query`:return pn(e,D);case`cel`:return cn(e,D);case`spel`:return _n(e,D);case`jsonata`:return kn(e,D);case`jsonlogic`:return An(e,D);case`elasticsearch`:return Dn(e,D);case`natural_language`:return Pn(e,D);case`ldap`:return jn(e,D);case`prisma`:return Ln(e,D);case`drizzle`:return En(e,D);case`tanstack_db`:return Vn(e,D);case`sequelize`:return Rn(e,D);case`cypher`:case`gql`:return Tn(e,D);case`sparql`:return zn(e,D);case`gremlin`:return On(e,D);case`diagnostics`:return Qn(e,D);default:return``}}const Xr=e=>(t,n,r,i)=>e({field:t,operator:n,value:r,valueSource:i},{parseNumbers:!1}),Zr=Xr(Cn),Qr=Xr(gn),$r=Xr(dn),ei=Xr(xn),ti=dn,ni=gn,ri=xn,X=(e,t)=>{let n=t,r=0;for(;r<e.length&&n&&F(n);){let t=n.rules[e[r]];n=typeof t==`string`?null:t,r++}return r<e.length?null:n},ii=(e,t)=>{if(t.id===e)return t;for(let n of t.rules)if(typeof n!=`string`){if(n.id===e)return n;if(F(n)){let t=ii(e,n);if(t)return t}}return null},ai=(e,t)=>{if(t.id===e)return[];let n=t.rules.findIndex(t=>typeof t!=`string`&&t.id===e);if(n>=0)return[n];for(let[n,r]of Object.entries(t.rules))if(F(r)){let t=ai(e,r);if(Array.isArray(t))return[Number.parseInt(n),...t]}return null},Z=e=>e.slice(0,-1),oi=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},si=(e,t)=>{if(e.length>=t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0},ci=(e,t)=>{let n=[],r=Z(e),i=Z(t),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)n.push(i[a]),a++;return n},li=(e,t)=>{let n=!!t.disabled,r=t,i=0;for(;i<e.length&&!n&&F(r);){let t=r.rules[e[i]];P(t)&&(F(t)||`field`in t&&t.field)&&(n=!!t.disabled,r=t),i++}return n},ui=(e,t=[])=>t.some(t=>oi(t,e)||si(t,e)),di=(e,t,{disabled:n=!1,disabledPaths:r=[]}={})=>{let i=[];for(let a=0;a<t;a++){let t=[...e,a];i[a]={path:t,disabled:n||r.some(e=>oi(t,e))}}return i},fi=e=>oi([],e.path)?`Query builder`:`Rule group at path ${e.path.join(`-`)}`,pi=globalThis.crypto,mi=/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i;let Q=()=>`00-0-4-2-000`.replaceAll(/[^-]/g,e=>((Math.random()+Math.trunc(e))*65536>>Number.parseInt(e)).toString(16).padStart(4,`0`));if(pi){if(typeof pi.randomUUID==`function`)Q=()=>pi.randomUUID();else if(typeof pi.getRandomValues==`function`){let e=new Uint32Array(32);Q=()=>{pi.getRandomValues(e);let t=(e[0]%16).toString(16);for(let n=1;n<32;n++)t=n===12?`${t}4`:n===16?`${t}${`89ab`[e[17]%4]}`:`${t}${(e[n]%16).toString(16)}`,(n===7||n===11||n===15||n===19)&&(t=`${t}-`);return t}}}const hi=s,gi=new n({autoFreeze:!1}),_i=(e=!0)=>e?o:gi.produce,vi={name:`name`,value:`name`,matchModes:null,label:`label`},yi=(e,t)=>{let n=e?z(e):vi,r=n.matchModes??!1;return!r&&t&&(r=t(n.value,{fieldData:n})),r===!0?ae:r===!1?[]:ot(r)?B(r):r?.map(e=>ae.find(t=>t.value===N(e))??{name:e,value:e,label:e})??[]},bi=(e,t,n)=>{let r=H(e);if(t.operator===`between`||t.operator===`notBetween`){let e=[r,r];return n?e:_e(e.map(e=>e??``),`,`)}return r},xi=(e,t)=>{let{fieldData:n,fields:r,getValueEditorType:i,getValues:a,getDefaultValue:o,getParameters:s,listsAsArrays:c}=t;if(n?.defaultValue!==void 0&&n.defaultValue!==null)return n.defaultValue;if(o)return o(e,{fieldData:n});let l=``,u=a(e.field,e.operator,{fieldData:n});if(e.valueSource===`field`){let t=ht(n,r,e.operator);l=t.length>0?bi(t,e,c):``}else if(e.valueSource===`parameter`){let t=s?s(e.field,e.operator,{fieldData:n}):null;l=t&&t.length>0?H(t):``}else if(u.length>0){let t=i(e.field,e.operator,{fieldData:n});t===`multiselect`?l=c?[]:``:(t===`select`||t===`radio`)&&(l=bi(u,e,c))}else i(e.field,e.operator,{fieldData:n})===`checkbox`&&(l=!1);return l},Si=e=>{let t=typeof e==`boolean`?e:typeof e==`object`&&e?e.valid:null;return typeof t==`boolean`?t?oe.valid:oe.invalid:``},Ci=[{name:`value`,value:`value`,label:`value`}],wi={name:`name`,value:`name`,valueSources:null,label:`label`},Ti=(e,t,n)=>{let r=e?z(e):wi,i=r.valueSources??!1;return typeof i==`function`&&(i=i(t)),!i&&n&&(i=n(r.value,t,{fieldData:r})),i?ot(i)?B(i):i.map(e=>Ci.find(t=>t.value===N(e))??{name:e,value:e,label:e}):Ci},Ei=(e,...t)=>{let n={...e};for(let e of t)if(e)for(let t of Ze(e))$e(t)||(n[t]=n[t]?{...n[t],...e[t]}:{...e[t]});return n},Di=(e,t,n)=>{if($e(e))return;let r=Qe(t).map(([t,[r,i]])=>[t,r??i??n?.[e]?.[t]]).filter(e=>!$e(e[0])&&!!e[1]);if(r.length>0||n){let t=n?.[e]??{},i=Object.assign({},t,Object.fromEntries(r));return{[e]:i}}},$=(e,t)=>{let n=``;for(let r=0;r<t.length;r++){let i=t[r]?.[e];if(!i)continue;let a=typeof i==`string`?i:be(i);a&&(n=n?`${n} ${a}`:a)}return n},Oi=(...e)=>({queryBuilder:$(`queryBuilder`,e),ruleGroup:$(`ruleGroup`,e),header:$(`header`,e),body:$(`body`,e),combinators:$(`combinators`,e),addRule:$(`addRule`,e),addGroup:$(`addGroup`,e),cloneRule:$(`cloneRule`,e),cloneGroup:$(`cloneGroup`,e),removeGroup:$(`removeGroup`,e),rule:$(`rule`,e),fields:$(`fields`,e),operators:$(`operators`,e),value:$(`value`,e),removeRule:$(`removeRule`,e),notToggle:$(`notToggle`,e),shiftActions:$(`shiftActions`,e),undoRedoActions:$(`undoRedoActions`,e),undoAction:$(`undoAction`,e),redoAction:$(`redoAction`,e),dragHandle:$(`dragHandle`,e),lockRule:$(`lockRule`,e),lockGroup:$(`lockGroup`,e),muteRule:$(`muteRule`,e),muteGroup:$(`muteGroup`,e),muted:$(`muted`,e),valueSource:$(`valueSource`,e),actionElement:$(`actionElement`,e),valueSelector:$(`valueSelector`,e),betweenRules:$(`betweenRules`,e),valid:$(`valid`,e),invalid:$(`invalid`,e),dndDragging:$(`dndDragging`,e),dndOver:$(`dndOver`,e),dndCopy:$(`dndCopy`,e),dndGroup:$(`dndGroup`,e),dndDropNotAllowed:$(`dndDropNotAllowed`,e),dndPreviewPosition:$(`dndPreviewPosition`,e),dndHidden:$(`dndHidden`,e),disabled:$(`disabled`,e),valueListItem:$(`valueListItem`,e),matchMode:$(`matchMode`,e),matchThreshold:$(`matchThreshold`,e),branches:$(`branches`,e),hasSubQuery:$(`hasSubQuery`,e),loading:$(`loading`,e),valueDateTimeRelative:$(`valueDateTimeRelative`,e)}),ki=({field:e,fieldData:t,getOperators:n,operators:r,placeholder:i,baseOption:a,autoSelectOption:o})=>pt({optionList:t?.operators??n?.(e,{fieldData:t})??r,placeholder:i,baseOption:a,labelMap:w,autoSelectOption:o}).optionList,Ai=({field:e,fieldData:t,getDefaultOperator:n,getOperators:r})=>t?.defaultOperator?t.defaultOperator:n?typeof n==`function`?n(e,{fieldData:t}):n:H(r(e,{fieldData:t}))??``,ji=({field:e,operator:t,fieldData:n,getValueEditorType:r})=>n?.valueEditorType?typeof n.valueEditorType==`function`?n.valueEditorType(t):n.valueEditorType:r?.(e,t,{fieldData:n})??`text`,Mi=({field:e,operator:t,fieldData:n,getValues:r,placeholder:i,baseOption:a,autoSelectOption:o})=>pt({optionList:n?.values??r?.(e,t,{fieldData:n})??[],placeholder:i,baseOption:a,autoSelectOption:o}).optionList,Ni=e=>{let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype},Pi=(e,t)=>{if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Pi(e,t[n]));if(typeof e!=`object`||typeof t!=`object`||e===null||t===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)||!Ni(e))return!1;let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Pi(e[n],t[n]))},Fi=(e,t)=>Pi(e,t),Ii=(e,t)=>e===!1?!1:e?!0:t!==!1,Li=(e,t)=>e?!0:e!==!1&&!!t,Ri=(e,t,n,r)=>r?t??n:e?Ii(t,n):Li(t,n),zi=(e,t,n)=>t!==void 0&&t!=null?t:n!==void 0&&n!=null?n:e,Bi=(e={},t={},n)=>Qe(de).reduce((r,[i,a])=>(r[i]=Ri(a,e[i],t[i],!n),r),{}),Vi=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=J(e);return!n&&!r?e:{...e,...n&&{id:t()},...r&&{value:Hi(e.value,{idGenerator:t})}}},Hi=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=!1,i=[];for(let n=0;n<e.rules.length;n++){let a=e.rules[n];if(typeof a==`string`)i.push(a);else{let e=F(a)?Hi(a,{idGenerator:t}):Vi(a,{idGenerator:t});i.push(e),e!==a&&(r=!0)}}return!n&&!r?e:{...e,...n&&{id:t()},rules:i}},Ui=(e,{idGenerator:t=Q}={})=>F(e)?Hi(e,{idGenerator:t}):Vi(e,{idGenerator:t}),Wi=(e,t)=>{let n=e.query??e.storeQuery??e.defaultQuery??e.fallbackQuery;return n.id?n:Hi(n,t)},Gi=(e,{idGenerator:t=Q}={})=>structuredClone({...e,id:t()}),Ki=(e,{idGenerator:t=Q}={})=>{if(!P(e))return e;if(!F(e))return structuredClone({...e,id:t()});let n={...e,id:t()};return Array.isArray(n.rules)&&(n.rules=e.rules.map(e=>typeof e==`string`?e:F(e)?Ki(e,{idGenerator:t}):Gi(e,{idGenerator:t}))),n},qi=(e,t,n={},{asParent:r=!1}={})=>{if(n.queryDisabled)return r?`parent-disabled`:`target-disabled`;if(!n.respectDisabled||t===void 0)return null;let i=Array.isArray(t)?t:ai(t,e);return i&&(li(i,e)||ui(i,n.disabledPaths))?r?`parent-disabled`:`target-disabled`:null},Ji=(e,{maxLevels:t=1/0}={})=>!!e&&e.length>=t,Yi=(e,t,n,r={})=>_i(r.freeze)(e,e=>Xi(e,t,n,r)),Xi=(e,t,n,r={})=>{let{combinators:i=k,combinatorPreceding:a,idGenerator:o=Q,onAbort:s}=r,c=Array.isArray(n)?X(n,e):ii(n,e);if(!c)return s?.({reason:`parent-not-found`,operation:`add`,pathOrID:n}),e;if(!F(c))return s?.({reason:`parent-not-a-group`,operation:`add`,pathOrID:n}),e;let l=Array.isArray(n)?n:ai(n,e),u=qi(e,l,r,{asParent:!0});if(u)return s?.({reason:u,operation:`add`,pathOrID:n}),e;if(F(t)&&Ji(l,r))return s?.({reason:`max-levels-exceeded`,operation:`add`,pathOrID:n}),e;if(L(c)&&c.rules.length>0){let e=c.rules.at(-2);c.rules.push(a??(typeof e==`string`?e:H(i)))}return c.rules.push(Ui(t,{idGenerator:o})),e},Zi={field:0,operator:1,valueSource:2,value:4},Qi=e=>e.toSorted((e,t)=>(Zi[e[0]]??3)-(Zi[t[0]]??3)),$i=(e,t,n,r)=>{if(typeof e==`string`)return{entries:[[e,t]],pathOrID:n,options:r??{}};if(Array.isArray(e)){let i=t;return{entries:Qi(e.map((e,t)=>[e,i[t]])),pathOrID:n,options:r??{}}}return{entries:Qi(Object.entries(e)),pathOrID:t,options:n??{}}},ea=(e,t,n,r)=>(typeof e==`string`||Array.isArray(e)?r:n)??{},ta=(e,t,n,r,i)=>{let{entries:a,pathOrID:o,options:s}=$i(t,n,r,i);for(let[t,n]of a)ia(e,t,n,o,s);return e},na=((e,t,n,r,i)=>_i(ea(t,n,r,i).freeze)(e,e=>{ta(e,t,n,r,i)})),ra=((e,t,n,r,i)=>ta(e,t,n,r,i)),ia=(e,t,n,r,i={})=>{let{resetOnFieldChange:a=!0,resetOnOperatorChange:o=!1,getRuleDefaultOperator:s=()=>`=`,getValueSources:c=()=>[`value`],getRuleDefaultValue:l=()=>``,getMatchModes:u=()=>[],onAbort:d}=i,f=a,p=Array.isArray(r)?r:ai(r,e);if(!p)return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let m=t===`disabled`?{queryDisabled:i.queryDisabled}:i,h=qi(e,p,m);if(h)return d?.({reason:h,operation:`update`,pathOrID:r}),e;if(t===`combinator`&&!I(e)){let t=X(Z(p),e);if(!t||!F(t))return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let i=t.rules;return p.at(-1)%2==1?i[p.at(-1)]===n?d?.({reason:`no-change`,operation:`update`,pathOrID:r}):i[p.at(-1)]=n:d?.({reason:`not-a-combinator-slot`,operation:`update`,pathOrID:r}),e}let g=X(p,e);if(!g)return d?.({reason:`target-not-found`,operation:`update`,pathOrID:r}),e;let _=F(g);if(g[t]===n)return d?.({reason:`no-change`,operation:`update`,pathOrID:r}),e;if(t!==`valueSource`&&(g[t]=n),_)return e;let v=!1,y=!1;if(t===`field`){let e=u(g.field),t=u(n);if(t.length===0)delete g.match;else{let e=g.match?.mode&&V(t,g.match.mode)?null:H(t);e&&(g.match={mode:e,threshold:1})}(e.length>0||t.length>0)&&(f=!0)}f&&t===`field`&&(g.operator=s(n),v=!0,y=!0),o&&t===`operator`&&(v=!0,y=!0);let b=H(Ti({name:g.field,value:g.field,label:``},g.operator,c));return(v&&g.valueSource&&b!==g.valueSource||t===`valueSource`&&n!==g.valueSource)&&(y=!!g.valueSource||!g.valueSource&&n!==b,g.valueSource=v?b:n),y&&(g.value=l(g)),e},aa=(e,t,n={})=>_i(n.freeze)(e,e=>oa(e,t,n)),oa=(e,t,n={})=>{let{onAbort:r}=n,i=Array.isArray(t)?t:ai(t,e);if(!i)return r?.({reason:`target-not-found`,operation:`remove`,pathOrID:t}),e;if(i.length===0)return r?.({reason:`root-not-allowed`,operation:`remove`,pathOrID:t}),e;let a=qi(e,i,n);if(a)return r?.({reason:a,operation:`remove`,pathOrID:t}),e;if(!X(i,e))return r?.({reason:`target-not-found`,operation:`remove`,pathOrID:t}),e;let o=i.at(-1),s=X(Z(i),e);if(!I(s)&&s.rules.length>1){let e=o===0?0:o-1;s.rules.splice(e,2)}else s.rules.splice(o,1);return e},sa=(e,t,n)=>{if(Array.isArray(n))return n;let r=L(e);if(n===`up`){if(oi(t,[0]))return t;if(t.at(-1)===0){let e=Z(t);return[...Z(e),Math.max(0,e.at(-1)-+!!r)]}{let n=[...Z(t),Math.max(0,t.at(-1)-(r?2:1))],i=X(n,e);return F(i)?[...n,i.rules.length]:[...Z(t),Math.max(0,t.at(-1)-(r?3:1))]}}if(n===`down`){if(oi([e.rules.length-1],t))return t;if(t.at(-1)===X(Z(t),e).rules.length-1){let e=Z(t);return[...Z(e),e.at(-1)+1]}{let n=[...Z(t),t.at(-1)+(r?2:1)],i=X(n,e);return F(i)?[...n,0]:[...Z(t),t.at(-1)+(r?3:2)]}}return t},ca=(e,t,n,r={})=>_i(r.freeze)(e,e=>la(e,t,n,r)),la=(e,t,n,i={})=>{let{clone:o=!1,combinators:s=k,idGenerator:c=Q,onAbort:l}=i,u=Array.isArray(t)?t:ai(t,e);if(!u)return l?.({reason:`target-not-found`,operation:`move`,pathOrID:t}),e;let d=X(u,e);if(!d)return l?.({reason:`target-not-found`,operation:`move`,pathOrID:t}),e;let f=sa(e,u,n);if(u.length===0)return l?.({reason:`root-not-allowed`,operation:`move`,pathOrID:t}),e;let p=qi(e,u,i);if(p)return l?.({reason:p,operation:`move`,pathOrID:t}),e;if(oi(u,f))return l?.({reason:`same-location`,operation:`move`,pathOrID:t}),e;if(!X(Z(f),e)||!o&&si(u,f))return l?.({reason:`destination-not-found`,operation:`move`,pathOrID:n}),e;let m=o?Ki(a(d)?r(d):d,{idGenerator:c}):d,h=L(e),g=X(Z(u),e),_=u.at(-1),v=h&&_>0?g.rules[_-1]:null,y=h&&_<g.rules.length-1?g.rules[_+1]:null;if(!o){let e=h?Math.max(0,_-1):_,t=h?2:1;g.rules.splice(e,t)}let b=[...f];h&&b.at(-1)%2==1&&(b[b.length-1]+=1);let x=ci(u,f);!o&&u.length===x.length+1&&b[x.length]>u[x.length]&&(b[x.length]-=h?2:1);let S=Z(b),C=X(S,e),w=b.at(-1),T=h&&w>0?w-1:w,E=(...e)=>C.rules.splice(T,0,...e);return C.rules.length===0||!h?E(m):w===0?_===0&&y?E(m,y):E(m,C.rules[1]??v??H(s)):E(v||(C.rules[T-2]??y??H(s)),m),e},ua=(e,t,n,r={})=>_i(r.freeze)(e,e=>da(e,t,n,r)),da=(e,t,n,r={})=>{let{combinators:i=k,combinatorPreceding:a,combinatorSucceeding:o,idGenerator:s=Q,replace:c=!1,onAbort:l}=r,u=X(Z(n),e);if(!u)return l?.({reason:`parent-not-found`,operation:`insert`,pathOrID:n}),e;if(!F(u))return l?.({reason:`parent-not-a-group`,operation:`insert`,pathOrID:n}),e;let d=Z(n),f=qi(e,d,r,{asParent:!0});if(f)return l?.({reason:f,operation:`insert`,pathOrID:n}),e;if(F(t)&&Ji(d,r))return l?.({reason:`max-levels-exceeded`,operation:`insert`,pathOrID:n}),e;let p=Ki(t,{idGenerator:s}),m=L(e),h=n.at(-1),g=(e,...t)=>u.rules.splice(e,c?t.length:0,...t);if(u.rules.length===0||!m)g(h,p);else if(c&&m)g(h+h%2,p);else if(h===0)p.path?.at(-1)===0&&o?g(h,p,o):g(h,p,u.rules[1]??a??H(i));else{let e=h%2==0?h-1:h;a?g(e,a,p):g(e,u.rules[e-2]??o??H(i),p)}return e},fa=(e,t,n,r={})=>_i(r.freeze)(e,e=>pa(e,t,n,r)),pa=(e,t,n,i={})=>{let{clone:o=!1,combinators:s=k,idGenerator:c=Q,onAbort:l}=i,u=Array.isArray(t)?t:ai(t,e),d=Array.isArray(n)?n:ai(n,e);if(!u)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:t}),e;if(!d)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:n}),e;let f=sa(e,u,d);if(u.length===0)return l?.({reason:`root-not-allowed`,operation:`group`,pathOrID:t}),e;let p=qi(e,u,i);if(p)return l?.({reason:p,operation:`group`,pathOrID:t}),e;if(oi(u,f))return l?.({reason:`same-location`,operation:`group`,pathOrID:t}),e;if(!X(Z(f),e)||!o&&si(u,f))return l?.({reason:`destination-not-found`,operation:`group`,pathOrID:n}),e;let m=X(u,e),h=X(d,e);if(!m)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:t}),e;if(!h)return l?.({reason:`target-not-found`,operation:`group`,pathOrID:n}),e;let g=o?Ki(a(m)?r(m):m,{idGenerator:c}):m,_=L(e),v=X(Z(u),e),y=u.at(-1);if(!o){let e=_?Math.max(0,y-1):y,t=_?2:1;v.rules.splice(e,t)}let b=[...f],x=ci(u,f);!o&&u.length===x.length+1&&f[x.length]>u[x.length]&&(b[x.length]-=_?2:1);let S=Z(b),C=X(S,e),w=b.at(-1);return C.rules.splice(w,1,Ui(_?{rules:[h,H(s),g]}:{combinator:H(s),rules:[h,g]},{idGenerator:c})),e},ma=(e={})=>{let{qbId:t,combinators:n,idGenerator:r,maxLevels:i=1/0,queryDisabled:a,respectDisabled:o=!0,disabledPaths:s,resetOnFieldChange:c,resetOnOperatorChange:l,getRuleDefaultOperator:u,getValueSources:d,getRuleDefaultValue:f,getMatchModes:p,freeze:m,onAddRule:h,onAddGroup:g,onRemove:_,onMoveRule:v,onMoveGroup:y,onGroupRule:b,onGroupGroup:x,onLog:S}=e,C=e=>S?.({qbId:t,...e}),w={respectDisabled:o,queryDisabled:a,disabledPaths:s},T=(e,t,n=!1)=>!!qi(e,t,w,{asParent:n});return{addRule:(e,t,i,a)=>{if(T(e,i,!0)){C({type:A.parentPathDisabled,rule:t,parentPath:i,query:e});return}let o=!h||h(t,i,e,a);if(!o){C({type:A.onAddRuleFalse,rule:t,parentPath:i,query:e});return}let s=o===!0?t:o,c=Yi(e,s,i,{combinators:n,combinatorPreceding:s.combinatorPreceding,idGenerator:r,freeze:m});return C({type:A.add,query:e,newQuery:c,newRule:s,parentPath:i}),c},addGroup:(e,t,a,o)=>{if(a.length>=i)return;if(T(e,a,!0)){C({type:A.parentPathDisabled,ruleGroup:t,parentPath:a,query:e});return}let s=!g||g(t,a,e,o);if(!s){C({type:A.onAddGroupFalse,ruleGroup:t,parentPath:a,query:e});return}let c=s===!0?t:s,l=Yi(e,c,a,{combinators:n,combinatorPreceding:c.combinatorPreceding??void 0,idGenerator:r,freeze:m});return C({type:A.add,query:e,newQuery:l,newGroup:c,parentPath:a}),l},propChange:(e,t,n,r)=>{if(qi(e,r,t===`disabled`?{queryDisabled:a}:w)){C({type:A.pathDisabled,path:r,prop:t,value:n,query:e});return}let i=na(e,t,n,r,{resetOnFieldChange:c,resetOnOperatorChange:l,getRuleDefaultOperator:u,getValueSources:d,getRuleDefaultValue:f,getMatchModes:p,freeze:m});return C({type:A.update,query:e,newQuery:i,prop:t,value:n,path:r}),i},removeRuleOrGroup:(e,t,n)=>{if(T(e,t)){C({type:A.pathDisabled,path:t,query:e});return}let r=X(t,e);if(!r)return;if(_&&!_(r,t,e,n)){C({type:A.onRemoveFalse,ruleOrGroup:r,path:t,query:e});return}let i=aa(e,t,{freeze:m});return C({type:A.remove,query:e,newQuery:i,path:t,ruleOrGroup:r}),i},moveRule:(e,t,i,a,o)=>{if(T(e,t)){C({type:A.pathDisabled,oldPath:t,newPath:i,query:e});return}let s=X(t,e);if(!s)return;let c=ca(e,t,i,{clone:a,combinators:n,idGenerator:r,freeze:m}),l=F(s),u=l?y:v,d=!u||u(s,t,i,e,c,{clone:a,combinators:n},o);if(!d){C({type:l?A.onMoveGroupFalse:A.onMoveRuleFalse,ruleOrGroup:s,oldPath:t,newPath:i,clone:a,query:e,nextQuery:c});return}let f=F(d)?d:c;return C({type:A.move,query:e,newQuery:f,oldPath:t,newPath:i,clone:a}),f},groupRule:(e,t,i,a,o)=>{if(T(e,t)){C({type:A.pathDisabled,sourcePath:t,targetPath:i,query:e});return}let s=X(t,e);if(!s)return;let c=fa(e,t,i,{clone:a,combinators:n,idGenerator:r,freeze:m}),l=F(s),u=l?x:b,d=!u||u(s,t,i,e,c,{clone:a,combinators:n},o);if(!d){C({type:l?A.onGroupGroupFalse:A.onGroupRuleFalse,ruleOrGroup:s,sourcePath:t,targetPath:i,clone:a,query:e,nextQuery:c});return}let f=F(d)?d:c;return C({type:A.group,query:e,newQuery:f,sourcePath:t,targetPath:i,clone:a}),f}}},ha=({fields:e,getDefaultField:t,getRuleDefaultOperator:n,getValueSources:r,getMatchModes:i,getRuleDefaultValue:a,idGenerator:o=Q})=>{let s=H(e)??``;if(t){if(typeof t==`function`){let n=t(e);n&&(s=n)}else s=t}let c=V(e,s),l=n(s),u=H(r(s,l,{fieldData:c}))??`value`,d=H(i(s,{fieldData:c})),f={id:o(),field:s,operator:l,valueSource:u,value:``,...d?{match:{mode:d,threshold:1}}:null};return{...f,value:a(f)}},ga=({combinators:e,addRuleToNewGroups:t,createRule:n,idGenerator:r=Q},i)=>{let a=r(),o=t?[n()]:[];return i?{id:a,rules:o,not:!1}:{id:a,rules:o,combinator:H(e)??``,not:!1}};var _a=class e extends Error{code;info;constructor(t){super(`QueryManager: "${t.operation}" aborted (${t.reason})${t.pathOrID===void 0?``:` for target ${JSON.stringify(t.pathOrID)}`}.`),this.name=`QueryManagerError`,this.code=t.reason,this.info=t,Object.setPrototypeOf(this,e.prototype)}};const va=Symbol(`QueryManager.state`),ya=i({query:!0,config:!1}),ba=i({query:!1,config:!0}),xa=i({query:!0,config:!0}),Sa=()=>{let e={listeners:new Set,configVersion:0,past:[],future:[],lastAt:0,batchDepth:0,historyBypassed:!1,pendingConfigNotify:!1};return Object.defineProperty(e,"__v_skip",{value:!0,enumerable:!1}),e};var Ca=class e{get state(){return this[va]}constructor(e,t={}){Object.defineProperty(this,va,{value:Sa(),enumerable:!1,writable:!1,configurable:!1}),this.applyOptions(t),this.state.query=this.freeze(e?Hi(e,{idGenerator:this.state.idGenerator}):this.createRuleGroup())}freeze(e){return this.state.freezeEnabled?i(e,!0):e}applyOptions(e){this.state.options=e,this.state.freezeEnabled=e.freeze??!0,this.state.idGenerator=e.idGenerator??Q,this.state.validator=e.validator??Xe,this.state.strict=e.strict??!1,this.state.respectDisabled=e.respectDisabled??!0,this.state.onInvalidTarget=e.onInvalidTarget;let t=e.history??!1,n=typeof t==`object`?t:{};this.state.historyEnabled=t!==!1,this.state.maxHistory=n.maxHistory??50,this.state.coalesceMs=n.coalesceMs??500,this.state.now=e.now??Date.now;let{optionList:r,optionsMap:i}=pt({optionList:e.fields,baseOption:e.baseField,autoSelectOption:e.autoSelectField,placeholder:e.translations?.fields});this.state.fields=this.freeze(r),this.state.fieldMap=this.freeze(i),this.state.operators=pt({optionList:e.operators??E,baseOption:e.baseOperator,labelMap:w,autoSelectOption:e.autoSelectOperator,placeholder:e.translations?.operators}).optionList,this.state.combinators=this.freeze(pt({optionList:e.combinators??k,baseOption:e.baseCombinator}).optionList)}fieldData(e){return this.state.fieldMap[e]??{}}operatorsFor(e){return ki({field:e,fieldData:this.fieldData(e),getOperators:this.state.options.getOperators,operators:this.state.operators,baseOption:this.state.options.baseOperator,autoSelectOption:this.state.options.autoSelectOperator,placeholder:this.state.options.translations?.operators})}defaultOperator(e){return Ai({field:e,fieldData:this.fieldData(e),getDefaultOperator:this.state.options.getDefaultOperator,getOperators:e=>this.operatorsFor(e)})}valueSourcesFor(e,t){return Ti(this.fieldData(e),t,this.state.options.getValueSources)}matchModesFor(e){return yi(this.fieldData(e),this.state.options.getMatchModes)}valuesFor(e,t){return Mi({field:e,operator:t,fieldData:this.fieldData(e),getValues:this.state.options.getValues,autoSelectOption:this.state.options.autoSelectValue,placeholder:this.state.options.translations?.values})}valueEditorTypeFor(e,t){return ji({field:e,operator:t,fieldData:this.fieldData(e),getValueEditorType:this.state.options.getValueEditorType})}defaultValue(e){let{getDefaultValue:t,getParameters:n,listsAsArrays:r}=this.state.options;return xi(e,{fieldData:this.fieldData(e.field),fields:this.state.fields,listsAsArrays:r,getValueEditorType:(e,t)=>this.valueEditorTypeFor(e,t),getValues:(e,t)=>this.valuesFor(e,t),getDefaultValue:t&&((e,n)=>t(e,n)),getParameters:n&&((e,t,n)=>this.parametersFor(e,t,n))})}parametersFor(e,t,n){return pt({optionList:this.state.options.getParameters?.(e,t,n)??[],autoSelectOption:this.state.options.autoSelectValue}).optionList}guardOptions(){let{maxLevels:e}=this.state.options;return{freeze:this.state.freezeEnabled,maxLevels:(e??0)>0?Number(e):1/0,respectDisabled:this.state.respectDisabled,disabledPaths:this.state.options.disabledPaths,queryDisabled:this.state.options.queryDisabled}}toolOptions(){return{combinators:this.state.combinators,idGenerator:this.state.idGenerator,...this.guardOptions()}}onAbort({strict:e,onInvalidTarget:t}){let n=e??this.state.strict,r=t??this.state.onInvalidTarget;return e=>{if(r?.(e),n&&he.has(e.reason))throw new _a(e)}}updateOptions(){return{getRuleDefaultOperator:e=>this.defaultOperator(e),getRuleDefaultValue:e=>this.defaultValue(e),getValueSources:(e,t)=>this.valueSourcesFor(e,t),getMatchModes:e=>this.matchModesFor(e),resetOnFieldChange:this.state.options.resetOnFieldChange,resetOnOperatorChange:this.state.options.resetOnOperatorChange,...this.guardOptions()}}commit(e){let t=this.state.query;t!==e&&(this.state.query=e,!(this.state.batchDepth>0)&&(this.record(t,e),this.notify(ya)))}record(e,t){if(!this.state.historyEnabled)return;let n=Oe(e,t);if(n===``)return;let r=this.state.now();ke(this.state.lastSig,n,this.state.lastAt,r,this.state.coalesceMs)||(this.state.past.push(e),this.state.past.length>this.state.maxHistory&&this.state.past.shift(),this.state.future=[]),this.state.lastSig=n,this.state.lastAt=r}notify(e){for(let t of this.state.listeners)t(e)}markHistoryBypassed(){this.state.batchDepth>0&&(this.state.historyBypassed=!0)}ensureCache(){this.state.cacheFor!==this.state.query&&(this.state.cacheFor=this.state.query,this.state.idPathIndex=void 0,this.state.validation=void 0)}*walkFrom(e,t,n){if(yield{node:e,path:t,parent:n},!F(e))return;let r=e;for(let[e,n]of r.rules.entries())typeof n!=`string`&&(yield*this.walkFrom(n,[...t,e],r))}index(){if(this.ensureCache(),!this.state.idPathIndex){let e=new Map;for(let{node:t,path:n}of this.walkFrom(this.state.query,[],null))t.id!==void 0&&!e.has(t.id)&&e.set(t.id,n);this.state.idPathIndex=e}return this.state.idPathIndex}toPath(e){return typeof e==`string`?this.index().get(e)??null:e}getQuery=()=>this.state.query;setQuery(e){return this.commit(this.freeze(Hi(e,{idGenerator:this.state.idGenerator}))),this}createRule(){return ha({fields:this.state.fields,getDefaultField:this.state.options.getDefaultField,getRuleDefaultOperator:e=>this.defaultOperator(e),getValueSources:(e,t)=>this.valueSourcesFor(e,t),getMatchModes:e=>this.matchModesFor(e),getRuleDefaultValue:e=>this.defaultValue(e),idGenerator:this.state.idGenerator})}createRuleGroup(e){return ga({combinators:this.state.combinators,addRuleToNewGroups:this.state.options.addRuleToNewGroups,createRule:()=>this.createRule(),idGenerator:this.state.idGenerator},e)}add(e,t=[],n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.commit(Yi(this.state.query,e,t,{...this.toolOptions(),...a,onAbort:this.onAbort({strict:r,onInvalidTarget:i})})),this}remove(e,t={}){let{strict:n,onInvalidTarget:r,...i}=t;return this.commit(aa(this.state.query,e,{...this.guardOptions(),...i,onAbort:this.onAbort({strict:n,onInvalidTarget:r})})),this}update(e,t,n,r){let i=typeof e==`string`||Array.isArray(e)?3:2,a=[e,t,n,r],{strict:o,onInvalidTarget:s,...c}=a[i]??{};return a[i]={...this.updateOptions(),...c,onAbort:this.onAbort({strict:o,onInvalidTarget:s})},this.commit(na(this.state.query,...a.slice(0,i+1))),this}move(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.commit(ca(this.state.query,e,t,{...this.toolOptions(),...a,onAbort:this.onAbort({strict:r,onInvalidTarget:i})})),this}insert(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.commit(ua(this.state.query,e,t,{...this.toolOptions(),...a,onAbort:this.onAbort({strict:r,onInvalidTarget:i})})),this}group(e,t,n={}){let{strict:r,onInvalidTarget:i,...a}=n;return this.commit(fa(this.state.query,e,t,{...this.toolOptions(),...a,onAbort:this.onAbort({strict:r,onInvalidTarget:i})})),this}getOptions(){return i({...this.state.options})}reconfigure(e,t){let n=t?.replace?{...e}:{...this.state.options,...e};return Fi(this.state.options,n)?this:(this.applyOptions(i(n)),this.state.validation=void 0,this.reconcileHistoryConfig(),++this.state.configVersion,this.state.batchDepth>0?this.state.pendingConfigNotify=!0:this.notify(ba),this)}reconcileHistoryConfig(){this.state.historyEnabled?this.state.past.length>this.state.maxHistory&&this.state.past.splice(0,this.state.past.length-this.state.maxHistory):(this.state.past=[],this.state.future=[],this.state.lastSig=void 0)}getConfigVersion=()=>this.state.configVersion;clone(t){let n=t?.regenerateIDs?Ki(this.state.query,{idGenerator:this.state.idGenerator}):this.state.query;return new e(n,this.state.options)}subscribe=e=>(this.state.listeners.add(e),()=>{this.state.listeners.delete(e)});batch(e){this.state.batchDepth++,this.state.batchDepth===1&&(this.state.batchSnapshot={query:this.state.query,past:[...this.state.past],future:[...this.state.future],lastSig:this.state.lastSig,lastAt:this.state.lastAt});try{e()}catch(e){if(this.state.batchDepth===1){let e=this.state.batchSnapshot;this.state.query=e.query,this.state.past=e.past,this.state.future=e.future,this.state.lastSig=e.lastSig,this.state.lastAt=e.lastAt,this.reconcileHistoryConfig()}throw e}finally{if(this.state.batchDepth--,this.state.batchDepth===0){let{query:e}=this.state.batchSnapshot;this.state.batchSnapshot=void 0;let t=e!==this.state.query,n=this.state.pendingConfigNotify;this.state.pendingConfigNotify=!1,t&&(this.state.historyBypassed||this.record(e,this.state.query)),(t||n)&&this.notify(t?n?xa:ya:ba),this.state.historyBypassed=!1}}return this}canUndo(){return this.state.past.length>0}canRedo(){return this.state.future.length>0}undo(){return this.state.past.length===0?this:(this.state.future.unshift(this.state.query),this.state.query=this.state.past.pop(),this.state.lastSig=void 0,this.markHistoryBypassed(),this.state.batchDepth===0&&this.notify(ya),this)}redo(){return this.state.future.length===0?this:(this.state.past.push(this.state.query),this.state.query=this.state.future.shift(),this.state.lastSig=void 0,this.markHistoryBypassed(),this.state.batchDepth===0&&this.notify(ya),this)}clearHistory(){return this.markHistoryBypassed(),this.state.past=[],this.state.future=[],this.state.lastSig=void 0,this}getHistory(){return{past:[...this.state.past],future:[...this.state.future]}}validate(){return this.ensureCache(),this.state.validation??=this.state.validator(this.state.query),this.state.validation}format(e){return Yr(this.state.query,e)}*walk(e={}){let{from:t,rulesOnly:n,groupsOnly:r}=e,i=this.state.query,a=[],o=null;if(t!==void 0){let e=this.toPath(t),n=e&&X(e,this.state.query);if(!e||!n)return;i=n,a=e,o=e.length===0?null:X(Z(e),this.state.query)}for(let e of this.walkFrom(i,a,o))n&&F(e.node)||r&&!F(e.node)||(yield e)}rules(e={}){return this.walk({...e,rulesOnly:!0})}groups(e={}){return this.walk({...e,groupsOnly:!0})}find(e,t={}){for(let n of this.walk(t))if(e(n))return n;return null}filter(e,t={}){let n=[];for(let r of this.walk(t))e(r)&&n.push(r);return n}[Symbol.iterator](){return this.walk()}findPath(e){return X(e,this.state.query)??null}findID(e){let t=this.index().get(e);return t===void 0?null:X(t,this.state.query)}getPathOfID(e){return this.index().get(e)??null}pathIsDisabled(e){return li(e,this.state.query)}getNode(e){let t=this.toPath(e);return t===null?null:X(t,this.state.query)??null}getRule(e){let t=this.getNode(e);return t&&!F(t)?t:null}getGroup(e){let t=this.getNode(e);return t&&F(t)?t:null}getParent(e){let t=this.toPath(e);return t===null||t.length===0||!X(t,this.state.query)?null:X(Z(t),this.state.query)}getFields(){return this.state.fields}getCombinators(){return this.state.combinators}getFieldData(e){return gt(e,this.state.fieldMap)}getOperators(e){return this.operatorsFor(e)}getValueSources(e,t){return this.valueSourcesFor(e,t)}getMatchModes(e){return this.matchModesFor(e)}getValues(e,t){return this.valuesFor(e,t)}getValueEditorType(e,t){return this.valueEditorTypeFor(e,t)}getRuleDefaultOperator(e){return this.defaultOperator(e)}getRuleDefaultValue(e){return this.defaultValue(e)}getFieldMap(){return this.state.fieldMap}getRuleContext(e){let t=this.getRule(e);if(!t)return null;let n=this.validate();return wt(t,{fields:this.state.fields,fieldMap:this.state.fieldMap,getInputType:(e,t,n)=>this.state.options.getInputType?.(e,t,n)??null,getMatchModes:e=>this.matchModesFor(e),getOperators:e=>this.operatorsFor(e),getParameters:(e,t,n)=>this.parametersFor(e,t,n),getValueEditorType:(e,t)=>this.valueEditorTypeFor(e,t),getValues:(e,t)=>this.valuesFor(e,t),getValueSources:(e,t)=>this.getValueSources(e,t),getSubQueryBuilderProps:(e,t)=>this.state.options.getSubQueryBuilderProps?.(e,t)??{}},{validationMap:typeof n==`boolean`?{}:n,id:t.id})}getRuleGroupContext(e=[]){let t=this.getGroup(e);if(!t)return null;let n=this.validate();return Et(t,this.state.combinators,{validationMap:typeof n==`boolean`?{}:n,id:t.id})}isIC(){return L(this.state.query)}signatureOf(e){return Oe(this.state.query,e)}diagnostics(){return Yr(this.state.query,`diagnostics`)}toJSON(){return this.state.query}toIC(){return new e(Ne(this.state.query),this.state.options)}fromIC(){return new e(R(this.state.query),this.state.options)}transform(e){return W(this.state.query,e)}};export{A as LogType,Ca as QueryManager,_a as QueryManagerError,le as TestID,Yi as add,Xi as addInPlace,re as betweenOperators,sn as bigIntJsonParseReviver,on as bigIntJsonStringifyReplacer,Wt as celCombinatorMap,be as clsx,jt as coerceBigIntValue,Mt as coerceInputType,c as controlKeys,u as controlKind,l as controlPropKeys,R as convertFromIC,Pe as convertQuery,Ne as convertToIC,ma as createQueryActions,ha as createRule,ga as createRuleGroup,wn as cypherCombinatorMap,$r as defaultCELValueProcessor,pe as defaultCoalesceMs,T as defaultCombinatorLabelMap,k as defaultCombinators,ie as defaultCombinatorsExtended,se as defaultControlClassnames,Dr as defaultExportOperatorMap,C as defaultJoinChar,ae as defaultMatchModes,fe as defaultMaxHistory,Qr as defaultMongoDBValueProcessor,en as defaultNLTranslations,w as defaultOperatorLabelMap,D as defaultOperatorNegationMap,kr as defaultOperatorProcessorNL,jr as defaultOperatorProcessorSQL,E as defaultOperators,h as defaultPlaceholderFieldGroupLabel,m as defaultPlaceholderFieldLabel,p as defaultPlaceholderFieldName,f as defaultPlaceholderLabel,d as defaultPlaceholderName,v as defaultPlaceholderOperatorGroupLabel,_ as defaultPlaceholderOperatorLabel,g as defaultPlaceholderOperatorName,x as defaultPlaceholderValueGroupLabel,b as defaultPlaceholderValueLabel,y as defaultPlaceholderValueName,cn as defaultRuleGroupProcessorCEL,Tn as defaultRuleGroupProcessorCypher,Qn as defaultRuleGroupProcessorDiagnostics,En as defaultRuleGroupProcessorDrizzle,Dn as defaultRuleGroupProcessorElasticSearch,On as defaultRuleGroupProcessorGremlin,kn as defaultRuleGroupProcessorJSONata,An as defaultRuleGroupProcessorJsonLogic,jn as defaultRuleGroupProcessorLDAP,Nn as defaultRuleGroupProcessorMongoDB,pn as defaultRuleGroupProcessorMongoDBQuery,Pn as defaultRuleGroupProcessorNL,Fn as defaultRuleGroupProcessorParameterized,Ln as defaultRuleGroupProcessorPrisma,zn as defaultRuleGroupProcessorSPARQL,Bn as defaultRuleGroupProcessorSQL,Rn as defaultRuleGroupProcessorSequelize,_n as defaultRuleGroupProcessorSpEL,Vn as defaultRuleGroupProcessorTanStackDB,dn as defaultRuleProcessorCEL,rr as defaultRuleProcessorCypher,ir as defaultRuleProcessorDrizzle,dr as defaultRuleProcessorElasticSearch,pr as defaultRuleProcessorGremlin,vr as defaultRuleProcessorJSONata,xr as defaultRuleProcessorJsonLogic,wr as defaultRuleProcessorLDAP,gn as defaultRuleProcessorMongoDB,hn as defaultRuleProcessorMongoDBQuery,Ar as defaultRuleProcessorNL,Nr as defaultRuleProcessorParameterized,Fr as defaultRuleProcessorPrisma,zr as defaultRuleProcessorSPARQL,Mr as defaultRuleProcessorSQL,Ir as defaultRuleProcessorSequelize,xn as defaultRuleProcessorSpEL,Br as defaultRuleProcessorTanStackDB,ei as defaultSpELValueProcessor,S as defaultTranslations,Xe as defaultValidator,Zr as defaultValueProcessor,Cn as defaultValueProcessorByRule,ti as defaultValueProcessorCELByRule,ni as defaultValueProcessorMongoDBByRule,Er as defaultValueProcessorNL,ri as defaultValueProcessorSpELByRule,di as derivePathInfo,Ye as deriveQueryBuilderClassNames,We as deriveRuleClassName,Ue as deriveRuleClassNames,wt as deriveRuleContext,Ge as deriveRuleGroupClassNames,Et as deriveRuleGroupContext,Je as deriveRuleGroupOuterClassName,qe as deriveRuleOuterClassName,Ji as exceedsMaxLevels,ht as filterFieldsByComparator,ii as findID,X as findPath,Yr as formatQuery,Hr as formatQueryOptionPresets,fi as generateAccessibleDescription,Q as generateID,ci as getCommonAncestorPath,gt as getFieldData,H as getFirstOption,qi as getGuardAbortReason,Bt as getLikeWildcards,yi as getMatchModesUtil,At as getMultiValueUpdate,nn as getNLTranslataion,V as getOption,bt as getParametersAsList,Z as getParentPath,Lt as getParseNumberMethod,ai as getPathOfID,Jt as getQuoteFieldNamesWithArray,Yt as getQuotedFieldName,xi as getRuleDefaultValue,Tt as getRuleGroupCombinator,_t as getRuleInputType,Ct as getRuleValidationResult,xt as getRuleValueEditorType,yt as getRuleValueSourceOptions,St as getRuleValues,zt as getSQLConcat,an as getSubqueryElementAlias,Si as getValidationClassNames,kt as getValueEditorReset,Nt as getValueSelectorUpdate,Ti as getValueSourcesUtil,fa as group,pa as groupInPlace,ce as groupInvalidReasons,vt as hideValueControlsForOperator,ne as inOperators,ua as insert,da as insertInPlace,si as isAncestor,Ot as isBetweenOperator,ot as isFlexibleOptionArray,ct as isFlexibleOptionGroupArray,st as isFullOptionArray,lt as isFullOptionGroupArray,at as isOptionGroupArray,P as isPojo,F as isRuleGroup,I as isRuleGroupType,L as isRuleGroupTypeIC,G as isRuleOrGroupValid,Ce as isRuleType,$e as isUnsafeKey,K as isValidValue,It as isValidationResult,qt as isValueProcessorLegacy,_e as joinWith,Gt as jsonLogicAdditionalOperators,N as lc,Rt as mapSQLOperator,Di as mergeAnyTranslation,Ei as mergeAnyTranslations,Oi as mergeClassnames,fn as mongoDbFallback,Ht as mongoOperators,ca as move,la as moveInPlace,Zt as normalizeConstituentWordOrder,Pt as normalizeValueSelectorValue,ve as nullFreeArray,te as nullOperators,Se as nullOrUndefinedOrEmpty,xe as numericRegex,Kt as numerifyValues,Qe as objectEntries,Ze as objectKeys,Fi as optionsEqual,U as parseNumber,li as pathIsDisabled,ui as pathIsDisabledByPaths,oi as pathsAreEqual,zi as preferAnyProp,Bi as preferFlagProps,Ri as preferProp,pt as prepareOptionList,Vi as prepareRule,Hi as prepareRuleGroup,Ui as prepareRuleOrGroup,In as prismaFallback,Ut as prismaOperators,J as processMatchMode,de as queryBuilderFlagDefaults,Gi as regenerateID,Ki as regenerateIDs,O as relationalOperators,aa as remove,oa as removeInPlace,Wi as resolveCandidateQuery,Ai as resolveDefaultOperator,ki as resolveOperatorList,ji as resolveValueEditorType,Mi as resolveValueList,ue as rootPath,hi as setAutoFreeze,ke as shouldCoalesce,q as shouldRenderAsNumber,Oe as signatureOf,Rr as sparqlVar,ge as splitBy,Vr as sqlDialectPresets,oe as standardClassnames,me as strictAbortReasons,$t as stripParamPrefix,we as structuralSignature,rn as subqueryElementAliasBase,ee as substringOperators,M as toArray,ut as toFlatOptionArray,z as toFullOption,B as toFullOptionList,nt as toFullOptionMap,W as transformQuery,j as trimIfString,Te as unchangedSignature,it as uniqByIdentifier,rt as uniqByName,dt as uniqOptGroups,ft as uniqOptList,na as update,ra as updateInPlace,mi as uuidV4regex,Pi as valuesEqual,Qt as withParamPrefix,Vt as wrapLikeFragment};
|
|
2
2
|
//# sourceMappingURL=react-querybuilder_core.production.mjs.map
|