@react-querybuilder/core 8.16.1 → 8.17.0

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.
Files changed (83) hide show
  1. package/dist/cjs/react-querybuilder_core.cjs.development.d.ts +56 -5
  2. package/dist/cjs/react-querybuilder_core.cjs.development.js +155 -9
  3. package/dist/cjs/react-querybuilder_core.cjs.development.js.map +1 -1
  4. package/dist/cjs/react-querybuilder_core.cjs.production.d.ts +56 -5
  5. package/dist/cjs/react-querybuilder_core.cjs.production.js +1 -1
  6. package/dist/cjs/react-querybuilder_core.cjs.production.js.map +1 -1
  7. package/dist/{convertQuery-Lx2HQa0m.js → convertQuery-BoMPXL7_.js} +2 -2
  8. package/dist/{convertQuery-Lx2HQa0m.js.map → convertQuery-BoMPXL7_.js.map} +1 -1
  9. package/dist/{convertQuery-BeJJH9BI.mjs → convertQuery-CQwOrjQr.mjs} +2 -2
  10. package/dist/{convertQuery-BeJJH9BI.mjs.map → convertQuery-CQwOrjQr.mjs.map} +1 -1
  11. package/dist/formatQuery.d.mts +37 -3
  12. package/dist/formatQuery.d.ts +37 -3
  13. package/dist/formatQuery.js +158 -12
  14. package/dist/formatQuery.js.map +1 -1
  15. package/dist/formatQuery.mjs +157 -13
  16. package/dist/formatQuery.mjs.map +1 -1
  17. package/dist/{import-BC_bAKQ8.d.mts → import-BQ5xaW6i.d.mts} +2 -2
  18. package/dist/{import-D1KnXhkQ.d.ts → import-CSHMjlid.d.ts} +2 -2
  19. package/dist/{index-Ds06V0zO.d.ts → index-CREDWM32.d.mts} +21 -4
  20. package/dist/{index-AAZg4Uh1.d.mts → index-CREDWM32.d.ts} +21 -4
  21. package/dist/{objectUtils-D96eEEzL.mjs → objectUtils-D-w8MzpZ.mjs} +1 -1
  22. package/dist/{objectUtils-D96eEEzL.mjs.map → objectUtils-D-w8MzpZ.mjs.map} +1 -1
  23. package/dist/{objectUtils-Bzug_QfX.js → objectUtils-DxVaGCdg.js} +1 -2
  24. package/dist/{objectUtils-Bzug_QfX.js.map → objectUtils-DxVaGCdg.js.map} +1 -1
  25. package/dist/parseCEL.d.mts +2 -2
  26. package/dist/parseCEL.d.ts +2 -2
  27. package/dist/parseCEL.js +3 -4
  28. package/dist/parseCEL.js.map +1 -1
  29. package/dist/parseCEL.mjs +3 -3
  30. package/dist/parseCypher.d.mts +1 -1
  31. package/dist/parseCypher.d.ts +1 -1
  32. package/dist/parseCypher.js +0 -1
  33. package/dist/parseCypher.js.map +1 -1
  34. package/dist/parseGremlin.d.mts +1 -1
  35. package/dist/parseGremlin.d.ts +1 -1
  36. package/dist/parseJSONata.d.mts +2 -2
  37. package/dist/parseJSONata.d.ts +2 -2
  38. package/dist/parseJSONata.js +2 -3
  39. package/dist/parseJSONata.mjs +2 -2
  40. package/dist/parseJsonLogic.d.mts +2 -2
  41. package/dist/parseJsonLogic.d.ts +2 -2
  42. package/dist/parseJsonLogic.js +4 -4
  43. package/dist/parseJsonLogic.mjs +4 -4
  44. package/dist/parseMongoDB.d.mts +2 -2
  45. package/dist/parseMongoDB.d.ts +2 -2
  46. package/dist/parseMongoDB.js +4 -4
  47. package/dist/parseMongoDB.mjs +4 -4
  48. package/dist/parseSPARQL.d.mts +1 -1
  49. package/dist/parseSPARQL.d.ts +1 -1
  50. package/dist/parseSPARQL.js +0 -1
  51. package/dist/parseSPARQL.js.map +1 -1
  52. package/dist/parseSQL.d.mts +2 -2
  53. package/dist/parseSQL.d.ts +2 -2
  54. package/dist/parseSQL.js +3 -4
  55. package/dist/parseSQL.js.map +1 -1
  56. package/dist/parseSQL.mjs +3 -3
  57. package/dist/parseSpEL.d.mts +2 -2
  58. package/dist/parseSpEL.d.ts +2 -2
  59. package/dist/parseSpEL.js +3 -4
  60. package/dist/parseSpEL.js.map +1 -1
  61. package/dist/parseSpEL.mjs +3 -3
  62. package/dist/{prepareQueryObjects-uA10ZpZX.mjs → prepareQueryObjects-BXf5aV-A.mjs} +3 -3
  63. package/dist/{prepareQueryObjects-uA10ZpZX.mjs.map → prepareQueryObjects-BXf5aV-A.mjs.map} +1 -1
  64. package/dist/{prepareQueryObjects-BoG5Rt8z.js → prepareQueryObjects-gRQqiBPR.js} +3 -3
  65. package/dist/{prepareQueryObjects-BoG5Rt8z.js.map → prepareQueryObjects-gRQqiBPR.js.map} +1 -1
  66. package/dist/react-querybuilder_core.d.mts +56 -5
  67. package/dist/react-querybuilder_core.legacy-esm.d.ts +56 -5
  68. package/dist/react-querybuilder_core.legacy-esm.js +161 -17
  69. package/dist/react-querybuilder_core.legacy-esm.js.map +1 -1
  70. package/dist/react-querybuilder_core.mjs +154 -10
  71. package/dist/react-querybuilder_core.mjs.map +1 -1
  72. package/dist/react-querybuilder_core.production.d.mts +56 -5
  73. package/dist/react-querybuilder_core.production.mjs +1 -1
  74. package/dist/react-querybuilder_core.production.mjs.map +1 -1
  75. package/dist/transformQuery.d.mts +1 -1
  76. package/dist/transformQuery.d.ts +1 -1
  77. package/dist/transformQuery.js +1 -1
  78. package/dist/transformQuery.mjs +1 -1
  79. package/dist/{utils-ChLG90DP.mjs → utils-01WaTGBL.mjs} +2 -2
  80. package/dist/{utils-ChLG90DP.mjs.map → utils-01WaTGBL.mjs.map} +1 -1
  81. package/dist/{utils-Qwkq2Q0F.js → utils-ZlKseh1X.js} +2 -3
  82. package/dist/{utils-Qwkq2Q0F.js.map → utils-ZlKseh1X.js.map} +1 -1
  83. package/package.json +15 -11
@@ -1,6 +1,7 @@
1
1
  import { JsonLogicAll, JsonLogicAnd, JsonLogicDoubleNegation, JsonLogicEqual, JsonLogicGreaterThan, JsonLogicGreaterThanOrEqual, JsonLogicInArray, JsonLogicInString, JsonLogicLessThan, JsonLogicLessThanOrEqual, JsonLogicNegation, JsonLogicNone, JsonLogicNotEqual, JsonLogicOr, JsonLogicSome, JsonLogicStrictEqual, JsonLogicStrictNotEqual, JsonLogicVar, ReservedOperations as JsonLogicReservedOperations, RulesLogic, RulesLogic as JsonLogicRulesLogic } from "json-logic-js";
2
2
  import { Column, Operators, SQL, Table } from "drizzle-orm";
3
3
  import { WhereOptions } from "sequelize";
4
+ import { eq } from "@tanstack/db";
4
5
 
5
6
  //#region ../../node_modules/type-fest/source/primitive.d.ts
6
7
  /**
@@ -1315,8 +1316,6 @@ interface RuleType<F extends string = string, O extends string = string, V = any
1315
1316
  /**
1316
1317
  * Opaque metadata for use by extension packages. The core library
1317
1318
  * preserves this property but does not read or interpret it.
1318
- * Extensions like `@react-querybuilder/graph` use `meta` to store
1319
- * domain-specific context (e.g., graph pattern information).
1320
1319
  */
1321
1320
  meta?: M;
1322
1321
  }
@@ -1748,7 +1747,7 @@ interface DropCollection {
1748
1747
  *
1749
1748
  * @group Export
1750
1749
  */
1751
- type ExportFormat = "json" | "sql" | "json_without_ids" | "parameterized" | "parameterized_named" | "mongodb" | "mongodb_query" | "cel" | "jsonlogic" | "spel" | "elasticsearch" | "jsonata" | "natural_language" | "ldap" | "drizzle" | "prisma" | "sequelize" | "cypher" | "gql" | "sparql" | "gremlin" | "diagnostics";
1750
+ type ExportFormat = "json" | "sql" | "json_without_ids" | "parameterized" | "parameterized_named" | "mongodb" | "mongodb_query" | "cel" | "jsonlogic" | "spel" | "elasticsearch" | "jsonata" | "natural_language" | "ldap" | "drizzle" | "tanstack_db" | "prisma" | "sequelize" | "cypher" | "gql" | "sparql" | "gremlin" | "diagnostics";
1752
1751
  /**
1753
1752
  * Export formats for {@link formatQuery} that produce objects instead of strings.
1754
1753
  *
@@ -2068,6 +2067,15 @@ type ValueProcessor = ValueProcessorLegacy;
2068
2067
  * | `jsonlogic` | {@link defaultRuleProcessorJsonLogic} |
2069
2068
  * | `elasticsearch` | {@link defaultRuleProcessorElasticSearch} |
2070
2069
  * | `jsonata` | {@link defaultRuleProcessorJSONata} |
2070
+ * | `natural_language` | {@link defaultRuleProcessorNL} |
2071
+ * | `ldap` | {@link defaultRuleProcessorLDAP} |
2072
+ * | `drizzle` | {@link defaultRuleProcessorDrizzle} |
2073
+ * | `tanstack_db` | {@link defaultRuleProcessorTanStackDB} |
2074
+ * | `prisma` | {@link defaultRuleProcessorPrisma} |
2075
+ * | `sequelize` | {@link defaultRuleProcessorSequelize} |
2076
+ * | `cypher` | {@link defaultRuleProcessorCypher} |
2077
+ * | `sparql` | {@link defaultRuleProcessorSPARQL} |
2078
+ * | `gremlin` | {@link defaultRuleProcessorGremlin} |
2071
2079
  *
2072
2080
  * @group Export
2073
2081
  */
@@ -2092,6 +2100,16 @@ type RuleProcessor = (rule: RuleType, options?: ValueProcessorOptions, meta?: {
2092
2100
  * | `jsonlogic` | {@link defaultRuleGroupProcessorJsonLogic} |
2093
2101
  * | `elasticsearch` | {@link defaultRuleGroupProcessorElasticSearch} |
2094
2102
  * | `jsonata` | {@link defaultRuleGroupProcessorJSONata} |
2103
+ * | `natural_language` | {@link defaultRuleGroupProcessorNL} |
2104
+ * | `ldap` | {@link defaultRuleGroupProcessorLDAP} |
2105
+ * | `drizzle` | {@link defaultRuleGroupProcessorDrizzle} |
2106
+ * | `tanstack_db` | {@link defaultRuleGroupProcessorTanStackDB} |
2107
+ * | `prisma` | {@link defaultRuleGroupProcessorPrisma} |
2108
+ * | `sequelize` | {@link defaultRuleGroupProcessorSequelize} |
2109
+ * | `cypher` | {@link defaultRuleGroupProcessorCypher} |
2110
+ * | `sparql` | {@link defaultRuleGroupProcessorSPARQL} |
2111
+ * | `gremlin` | {@link defaultRuleGroupProcessorGremlin} |
2112
+ * | `diagnostics` | {@link defaultRuleGroupProcessorDiagnostics} |
2095
2113
  *
2096
2114
  * @group Export
2097
2115
  */
@@ -3303,6 +3321,23 @@ declare const defaultRuleGroupProcessorSpEL: RuleGroupProcessor<string>;
3303
3321
  */
3304
3322
  declare const defaultRuleGroupProcessorSQL: RuleGroupProcessor<string>;
3305
3323
  //#endregion
3324
+ //#region src/utils/formatQuery/tanStackDbTypes.d.ts
3325
+ type TanStackDbWhereCallbackReturnType = ReturnType<typeof eq>;
3326
+ type TanStackDbWhereCallback = (refs: Record<string, unknown>) => TanStackDbWhereCallbackReturnType;
3327
+ //#endregion
3328
+ //#region src/utils/formatQuery/defaultRuleGroupProcessorTanStackDB.d.ts
3329
+ /**
3330
+ * Default rule group processor used by {@link formatQuery} for the "tanstack_db" format.
3331
+ * Returns a `WhereCallback` suitable for TanStack DB's `.where()` method.
3332
+ *
3333
+ * @example
3334
+ * const where = formatQuery(query, { format: 'tanstack_db', context: { tanstackDb: tsdb } });
3335
+ * const results = useLiveQuery(q => q.from({ todo: todosCollection }).where(where));
3336
+ *
3337
+ * @group Export
3338
+ */
3339
+ declare const defaultRuleGroupProcessorTanStackDB: RuleGroupProcessor<TanStackDbWhereCallback>;
3340
+ //#endregion
3306
3341
  //#region src/utils/formatQuery/defaultRuleGroupProcessorDiagnostics.d.ts
3307
3342
  /**
3308
3343
  * Rule group processor used by {@link formatQuery} for "diagnostics" format.
@@ -3454,6 +3489,14 @@ declare const defaultOperatorProcessorSQL: RuleProcessor;
3454
3489
  */
3455
3490
  declare const defaultRuleProcessorSQL: RuleProcessor;
3456
3491
  //#endregion
3492
+ //#region src/utils/formatQuery/defaultRuleProcessorTanStackDB.d.ts
3493
+ /**
3494
+ * Default rule processor used by {@link formatQuery} for the "tanstack_db" format.
3495
+ *
3496
+ * @group Export
3497
+ */
3498
+ declare const defaultRuleProcessorTanStackDB: RuleProcessor;
3499
+ //#endregion
3457
3500
  //#region src/utils/formatQuery/defaultValueProcessorNL.d.ts
3458
3501
  /**
3459
3502
  * Default value processor used by {@link formatQuery} for "natural_language" format.
@@ -3567,7 +3610,15 @@ declare function formatQuery(ruleGroup: RuleGroupTypeAny, options: "drizzle" | (
3567
3610
  format: "drizzle";
3568
3611
  })): ReturnType<typeof defaultRuleGroupProcessorDrizzle>;
3569
3612
  /**
3570
- * Generates a Sequelize query object from an RQB query object. The object can
3613
+ * Generates a TanStack DB WhereCallback from an RQB query object. The callback can
3614
+ * be passed directly to TanStack DB's `.where()` method.
3615
+ *
3616
+ * @group Export
3617
+ */
3618
+ declare function formatQuery(ruleGroup: RuleGroupTypeAny, options: "tanstack_db" | (FormatQueryOptions & {
3619
+ format: "tanstack_db";
3620
+ })): ReturnType<typeof defaultRuleGroupProcessorTanStackDB>;
3621
+ /**
3571
3622
  * be assigned to the `where` property in the Sequelize query functions.
3572
3623
  *
3573
3624
  * @group Export
@@ -4639,5 +4690,5 @@ declare function transformQuery(query: RuleGroupType, options?: TransformQueryOp
4639
4690
  */
4640
4691
  declare function transformQuery(query: RuleGroupTypeIC, options?: TransformQueryOptions<RuleGroupTypeIC>): any;
4641
4692
  //#endregion
4642
- export { AccessibleDescriptionGenerator, ActionElementEventHandler, AddMethod, AddOptions, Arity, BaseFullOption, BaseOption, BaseOptionMap, BaseTranslation, BaseTranslationWithLabel, BaseTranslationWithPlaceholders, BaseTranslations, BaseTranslationsFull, Classname, Classnames, Combinator, CombinatorByValue, CommonRuleAndGroupProperties, CommonRuleSubComponentProps, ConstituentWordOrder, ConstituentWordOrderString, DefaultCombinator, DefaultCombinatorExtended, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultCombinators, DefaultCombinatorsExtended, DefaultMatchModes, DefaultOperator, DefaultOperatorName, DefaultOperators, DefaultRuleGroupArray, DefaultRuleGroupICArray, DefaultRuleGroupType, DefaultRuleGroupTypeAny, DefaultRuleGroupTypeIC, DefaultRuleOrGroupArray, DefaultRuleType, DiagnosticEntry, DiagnosticsFieldSummaryEntry, DiagnosticsResult, DiagnosticsStats, DndDropTargetType, DragCollection, DraggedItem, DropCollection, DropEffect, DropResult, ExportFormat, ExportObjectFormats, ExportOperatorMap, Field, FieldByValue, FindPathReturnType, FlexibleOption, FlexibleOptionGroup, FlexibleOptionList, FlexibleOptionListProp, FormatQueryFinalOptions, FormatQueryOptions, FormatQueryValidateRule, FullCombinator, FullField, FullOperator, FullOption, FullOptionList, FullOptionMap, FullOptionRecord, GenericizeRuleGroupType, GetOptionIdentifierType, GetOptionType, GetRuleGroupType, GetRuleTypeFromGroupWithFieldAndOperator, GroupMethod, GroupOptions, GroupVariantCondition, InputType, InsertMethod, InsertOptions, type JsonLogicAll, type JsonLogicAnd, type JsonLogicDoubleNegation, type JsonLogicEqual, type JsonLogicGreaterThan, type JsonLogicGreaterThanOrEqual, type JsonLogicInArray, type JsonLogicInString, type JsonLogicLessThan, type JsonLogicLessThanOrEqual, type JsonLogicNegation, type JsonLogicNone, type JsonLogicNotEqual, type JsonLogicOr, type JsonLogicReservedOperations, type JsonLogicRulesLogic, type JsonLogicSome, type JsonLogicStrictEqual, type JsonLogicStrictNotEqual, type JsonLogicVar, LogType, MatchConfig, MatchMode, MatchModeOptions, MoveMethod, MoveOptions, NLTranslationKey, NLTranslations, NameLabelPair, Operator, OperatorByValue, Option, OptionGroup, OptionList, ParameterizedNamedSQL, ParameterizedSQL, ParseNumberMethod, ParseNumberOptions, ParseNumbersPropConfig, Path, Placeholder, PrepareOptionListParams, PreparedOptionList, PreparerOptions, QueryActions, QueryBuilderFlags, QueryValidator, RQBJsonLogic, RQBJsonLogicEndsWith, RQBJsonLogicStartsWith, RQBJsonLogicVar, RegenerateIdOptions, RemoveMethod, RemoveNullability, RuleDiagnosticsResult, RuleGroupArray, RuleGroupDiagnosticsArray, RuleGroupDiagnosticsResult, RuleGroupICArray, RuleGroupICDiagnosticsArray, RuleGroupICDiagnosticsResult, RuleGroupProcessor, RuleGroupType, RuleGroupTypeAny, RuleGroupTypeIC, RuleOrGroupArray, RuleProcessor, RuleType, RuleValidator, SQLPreset, StringUnionToFlexibleOptionArray, StringUnionToFullOptionArray, TestID, ToFlexibleOption, ToFullOption, ToRuleGroupType, ToRuleGroupTypeIC, TransformQueryOptions, UpdateMethod, UpdateOptions, UpdateableProperties, ValidationMap, ValidationResult, ValueChangeEventHandler, ValueEditorType, ValueOption, ValueProcessor, ValueProcessorByRule, ValueProcessorLegacy, ValueProcessorOptions, ValueSource, ValueSourceFlexibleOptions, ValueSourceFullOptions, ValueSources, WithRequired, WithUnknownIndex, add, addInPlace, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, remove, removeInPlace, rootPath, shouldRenderAsNumber, sparqlVar, splitBy, sqlDialectPresets, standardClassnames, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex };
4693
+ export { AccessibleDescriptionGenerator, ActionElementEventHandler, AddMethod, AddOptions, Arity, BaseFullOption, BaseOption, BaseOptionMap, BaseTranslation, BaseTranslationWithLabel, BaseTranslationWithPlaceholders, BaseTranslations, BaseTranslationsFull, Classname, Classnames, Combinator, CombinatorByValue, CommonRuleAndGroupProperties, CommonRuleSubComponentProps, ConstituentWordOrder, ConstituentWordOrderString, DefaultCombinator, DefaultCombinatorExtended, DefaultCombinatorName, DefaultCombinatorNameExtended, DefaultCombinators, DefaultCombinatorsExtended, DefaultMatchModes, DefaultOperator, DefaultOperatorName, DefaultOperators, DefaultRuleGroupArray, DefaultRuleGroupICArray, DefaultRuleGroupType, DefaultRuleGroupTypeAny, DefaultRuleGroupTypeIC, DefaultRuleOrGroupArray, DefaultRuleType, DiagnosticEntry, DiagnosticsFieldSummaryEntry, DiagnosticsResult, DiagnosticsStats, DndDropTargetType, DragCollection, DraggedItem, DropCollection, DropEffect, DropResult, ExportFormat, ExportObjectFormats, ExportOperatorMap, Field, FieldByValue, FindPathReturnType, FlexibleOption, FlexibleOptionGroup, FlexibleOptionList, FlexibleOptionListProp, FormatQueryFinalOptions, FormatQueryOptions, FormatQueryValidateRule, FullCombinator, FullField, FullOperator, FullOption, FullOptionList, FullOptionMap, FullOptionRecord, GenericizeRuleGroupType, GetOptionIdentifierType, GetOptionType, GetRuleGroupType, GetRuleTypeFromGroupWithFieldAndOperator, GroupMethod, GroupOptions, GroupVariantCondition, InputType, InsertMethod, InsertOptions, type JsonLogicAll, type JsonLogicAnd, type JsonLogicDoubleNegation, type JsonLogicEqual, type JsonLogicGreaterThan, type JsonLogicGreaterThanOrEqual, type JsonLogicInArray, type JsonLogicInString, type JsonLogicLessThan, type JsonLogicLessThanOrEqual, type JsonLogicNegation, type JsonLogicNone, type JsonLogicNotEqual, type JsonLogicOr, type JsonLogicReservedOperations, type JsonLogicRulesLogic, type JsonLogicSome, type JsonLogicStrictEqual, type JsonLogicStrictNotEqual, type JsonLogicVar, LogType, MatchConfig, MatchMode, MatchModeOptions, MoveMethod, MoveOptions, NLTranslationKey, NLTranslations, NameLabelPair, Operator, OperatorByValue, Option, OptionGroup, OptionList, ParameterizedNamedSQL, ParameterizedSQL, ParseNumberMethod, ParseNumberOptions, ParseNumbersPropConfig, Path, Placeholder, PrepareOptionListParams, PreparedOptionList, PreparerOptions, QueryActions, QueryBuilderFlags, QueryValidator, RQBJsonLogic, RQBJsonLogicEndsWith, RQBJsonLogicStartsWith, RQBJsonLogicVar, RegenerateIdOptions, RemoveMethod, RemoveNullability, RuleDiagnosticsResult, RuleGroupArray, RuleGroupDiagnosticsArray, RuleGroupDiagnosticsResult, RuleGroupICArray, RuleGroupICDiagnosticsArray, RuleGroupICDiagnosticsResult, RuleGroupProcessor, RuleGroupType, RuleGroupTypeAny, RuleGroupTypeIC, RuleOrGroupArray, RuleProcessor, RuleType, RuleValidator, SQLPreset, StringUnionToFlexibleOptionArray, StringUnionToFullOptionArray, TestID, ToFlexibleOption, ToFullOption, ToRuleGroupType, ToRuleGroupTypeIC, TransformQueryOptions, UpdateMethod, UpdateOptions, UpdateableProperties, ValidationMap, ValidationResult, ValueChangeEventHandler, ValueEditorType, ValueOption, ValueProcessor, ValueProcessorByRule, ValueProcessorLegacy, ValueProcessorOptions, ValueSource, ValueSourceFlexibleOptions, ValueSourceFullOptions, ValueSources, WithRequired, WithUnknownIndex, add, addInPlace, bigIntJsonParseReviver, bigIntJsonStringifyReplacer, celCombinatorMap, clsx, convertFromIC, convertQuery, convertToIC, cypherCombinatorMap, defaultCELValueProcessor, defaultCombinatorLabelMap, defaultCombinators, defaultCombinatorsExtended, defaultControlClassnames, defaultExportOperatorMap, defaultJoinChar, defaultMatchModes, defaultMongoDBValueProcessor, defaultNLTranslations, defaultOperatorLabelMap, defaultOperatorNegationMap, defaultOperatorProcessorNL, defaultOperatorProcessorSQL, defaultOperators, defaultPlaceholderFieldGroupLabel, defaultPlaceholderFieldLabel, defaultPlaceholderFieldName, defaultPlaceholderLabel, defaultPlaceholderName, defaultPlaceholderOperatorGroupLabel, defaultPlaceholderOperatorLabel, defaultPlaceholderOperatorName, defaultPlaceholderValueGroupLabel, defaultPlaceholderValueLabel, defaultPlaceholderValueName, defaultRuleGroupProcessorCEL, defaultRuleGroupProcessorCypher, defaultRuleGroupProcessorDiagnostics, defaultRuleGroupProcessorDrizzle, defaultRuleGroupProcessorElasticSearch, defaultRuleGroupProcessorGremlin, defaultRuleGroupProcessorJSONata, defaultRuleGroupProcessorJsonLogic, defaultRuleGroupProcessorLDAP, defaultRuleGroupProcessorMongoDB, defaultRuleGroupProcessorMongoDBQuery, defaultRuleGroupProcessorNL, defaultRuleGroupProcessorParameterized, defaultRuleGroupProcessorPrisma, defaultRuleGroupProcessorSPARQL, defaultRuleGroupProcessorSQL, defaultRuleGroupProcessorSequelize, defaultRuleGroupProcessorSpEL, defaultRuleGroupProcessorTanStackDB, defaultRuleProcessorCEL, defaultRuleProcessorCypher, defaultRuleProcessorDrizzle, defaultRuleProcessorElasticSearch, defaultRuleProcessorGremlin, defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, defaultRuleProcessorLDAP, defaultRuleProcessorMongoDB, defaultRuleProcessorMongoDBQuery, defaultRuleProcessorNL, defaultRuleProcessorParameterized, defaultRuleProcessorPrisma, defaultRuleProcessorSPARQL, defaultRuleProcessorSQL, defaultRuleProcessorSequelize, defaultRuleProcessorSpEL, defaultRuleProcessorTanStackDB, defaultSpELValueProcessor, defaultTranslations, defaultValidator, defaultValueProcessor, defaultValueProcessorByRule, defaultValueProcessorCELByRule, defaultValueProcessorMongoDBByRule, defaultValueProcessorNL, defaultValueProcessorSpELByRule, filterFieldsByComparator, findID, findPath, formatQuery, formatQueryOptionPresets, generateAccessibleDescription, generateID, getCommonAncestorPath, getFirstOption, getMatchModesUtil, getNLTranslataion, getOption, getParentPath, getParseNumberMethod, getPathOfID, getQuoteFieldNamesWithArray, getQuotedFieldName, getValidationClassNames, getValueSourcesUtil, group, groupInPlace, groupInvalidReasons, insert, insertInPlace, isAncestor, isFlexibleOptionArray, isFlexibleOptionGroupArray, isFullOptionArray, isFullOptionGroupArray, isOptionGroupArray, isPojo, isRuleGroup, isRuleGroupType, isRuleGroupTypeIC, isRuleOrGroupValid, isRuleType, isUnsafeKey, isValidValue, isValidationResult, isValueProcessorLegacy, joinWith, jsonLogicAdditionalOperators, lc, mapSQLOperator, mergeAnyTranslation, mergeAnyTranslations, mergeClassnames, mongoDbFallback, mongoOperators, move, moveInPlace, normalizeConstituentWordOrder, nullFreeArray, nullOrUndefinedOrEmpty, numericRegex, numerifyValues, objectEntries, objectKeys, parseNumber, pathIsDisabled, pathsAreEqual, preferAnyProp, preferFlagProps, preferProp, prepareOptionList, prepareRule, prepareRuleGroup, prepareRuleOrGroup, prismaFallback, prismaOperators, processMatchMode, queryBuilderFlagDefaults, regenerateID, regenerateIDs, remove, removeInPlace, rootPath, shouldRenderAsNumber, sparqlVar, splitBy, sqlDialectPresets, standardClassnames, toArray, toFlatOptionArray, toFullOption, toFullOptionList, toFullOptionMap, transformQuery, trimIfString, uniqByIdentifier, uniqByName, uniqOptGroups, uniqOptList, update, updateInPlace, uuidV4regex };
4643
4694
  //# sourceMappingURL=react-querybuilder_core.production.d.mts.map
@@ -1,2 +1,2 @@
1
- import{numericQuantity as e,numericRegex as t}from"numeric-quantity";import{current as n,isDraft as r,produce as i}from"immer";const a=`~`,o=`------`,s=`~`,c=o,l=o,u=`~`,d=o,f=o,p=`~`,m=o,h=o,g={fields:{title:`Field`,placeholderName:`~`,placeholderLabel:c,placeholderGroupLabel:l},operators:{title:`Operator`,placeholderName:`~`,placeholderLabel:d,placeholderGroupLabel:f},values:{title:`Values`,placeholderName:`~`,placeholderLabel:m,placeholderGroupLabel:h},matchMode:{title:`Match mode`},matchThreshold:{title:`Match threshold`},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`},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={"=":`=`,"!=":`!=`,"<":`<`,">":`>`,"<=":`<=`,">=":`>=`,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`},y={and:`AND`,or:`OR`,xor:`XOR`},b=[{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`}],x={"=":`!=`,"!=":`=`,"<":`>=`,"<=":`>`,">":`<=`,">=":`<`,beginsWith:`doesNotBeginWith`,doesNotBeginWith:`beginsWith`,endsWith:`doesNotEndWith`,doesNotEndWith:`endsWith`,contains:`doesNotContain`,doesNotContain:`contains`,between:`notBetween`,notBetween:`between`,in:`notIn`,notIn:`in`,notNull:`null`,null:`notNull`},S=[{name:`and`,value:`and`,label:`AND`},{name:`or`,value:`or`,label:`OR`}],C=[...S,{name:`xor`,value:`xor`,label:`XOR`}],w=[{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`}],T={queryBuilder:`queryBuilder`,ruleGroup:`ruleGroup`,header:`ruleGroup-header`,body:`ruleGroup-body`,combinators:`ruleGroup-combinators`,addRule:`ruleGroup-addRule`,addGroup:`ruleGroup-addGroup`,cloneRule:`rule-cloneRule`,cloneGroup:`ruleGroup-cloneGroup`,removeGroup:`ruleGroup-remove`,notToggle:`ruleGroup-notToggle`,rule:`rule`,fields:`rule-fields`,matchMode:`rule-matchMode`,matchThreshold:`rule-matchThreshold`,operators:`rule-operators`,value:`rule-value`,removeRule:`rule-remove`,betweenRules:`betweenRules`,valid:`queryBuilder-valid`,invalid:`queryBuilder-invalid`,shiftActions:`shiftActions`,dndDragging:`dndDragging`,dndOver:`dndOver`,dndCopy:`dndCopy`,dndGroup:`dndGroup`,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`,hasSubQuery:`rule-hasSubQuery`,loading:`queryBuilder-loading`},E={queryBuilder:``,ruleGroup:``,header:``,body:``,combinators:``,addRule:``,addGroup:``,cloneRule:``,cloneGroup:``,removeGroup:``,notToggle:``,rule:``,fields:``,matchMode:``,matchThreshold:``,operators:``,value:``,removeRule:``,shiftActions:``,dragHandle:``,lockRule:``,lockGroup:``,muteRule:``,muteGroup:``,muted:``,valueSource:``,actionElement:``,valueSelector:``,betweenRules:``,valid:``,invalid:``,dndDragging:``,dndOver:``,dndGroup:``,dndCopy:``,dndDropNotAllowed:``,dndPreviewPosition:``,dndHidden:``,disabled:``,valueListItem:``,branches:``,hasSubQuery:``,loading:``},D={empty:`empty`,invalidCombinator:`invalid combinator`,invalidIndependentCombinators:`invalid independent combinators`},O={rule:`rule`,ruleGroup:`rule-group`,inlineCombinator:`inline-combinator`,addGroup:`add-group`,removeGroup:`remove-group`,cloneGroup:`clone-group`,cloneRule:`clone-rule`,addRule:`add-rule`,removeRule:`remove-rule`,combinators:`combinators`,fields:`fields`,operators:`operators`,valueEditor:`value-editor`,notToggle:`not-toggle`,shiftActions:`shift-actions`,dragHandle:`drag-handle`,lockRule:`lock-rule`,lockGroup:`lock-group`,muteRule:`mute-rule`,muteGroup:`mute-group`,valueSourceSelector:`value-source-selector`,matchModeEditor:`match-mode-editor`},k={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`},ee=[],A={addRuleToNewGroups:!1,autoSelectField:!0,autoSelectOperator:!0,autoSelectValue:!1,debugMode:!1,enableDragAndDrop:!1,enableMountQueryChange:!0,listsAsArrays:!1,resetOnFieldChange:!0,resetOnOperatorChange:!1,showCloneButtons:!1,showCombinatorsBetweenRules:!1,showLockButtons:!1,showMuteButtons:!1,showNotToggle:!1,showShiftActions:!1,suppressStandardClassnames:!1},te=(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)],[]):[],ne=(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(e=>j(e)):typeof e==`string`?te(e,`,`).filter(t?()=>!0:e=>!/^\s*$/.test(e)).map(e=>e.trim()):typeof e==`number`?[e]:[],re=e=>e.every(e=>e===!1||(e??!1)!==!1);function ie(e){let t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){let i=e.length;for(t=0;t<i;t++)e[t]&&(n=ie(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ae(...e){let t=0,n,r,i=``,a=e.length;for(;t<a;t++)(n=e[t])&&(r=ie(n))&&(i&&(i+=` `),i+=r);return i}const N=e=>typeof e==`string`?e.toLowerCase():e,oe=new RegExp(t.source.replace(/^\^/,String.raw`^\s*`).replace(/\$$/,String.raw`\s*$`)),P=e=>typeof e!=`object`||!e?!1:Object.getPrototypeOf(e)===Object.prototype,F=e=>e==null||e===``,se=e=>P(e)&&`field`in e&&typeof e.field==`string`,I=e=>P(e)&&Array.isArray(e.rules),L=e=>I(e)&&typeof e.combinator==`string`,R=e=>I(e)&&e.combinator===void 0,ce=[`or`,`xor`,`and`],le=(e,t)=>N(e)===t,ue=(e,t=0)=>{let n=ce[t];if(!e.rules.includes(n))return t<ce.length-2?ue(e,t+1):e;let r=[...e.rules],i=0;for(;i<r.length-2;){if(le(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,ue({rules:r.slice(i)},t+1));break}else r.splice(i,e-i,ue({rules:r.slice(i,e)},t+1))}return{...e,rules:r}},z=e=>{if(L(e))return e;let t=ue(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}},de=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(de(a)):r.push(a),t&&n<i-1&&r.push(t)}return{...n,rules:r}};function fe(e){return R(e)?z(e):de(e)}const pe=e=>{let t={},n=e=>{e.id&&t[e.id]},r=e=>{let i=[];if(e.rules.length===0)i.push(D.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`&&!S.map(e=>e.name).includes(e.rules[n]))&&(t=!0);t&&i.push(D.invalidIndependentCombinators)}L(e)&&!S.map(e=>e.name).includes(e.combinator)&&e.rules.length>1&&i.push(D.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},me=Object.keys,he=Object.entries,ge=e=>e===`__proto__`||e===`constructor`||e===`prototype`,_e=e=>P(e)&&`name`in e&&typeof e.name==`string`,ve=e=>P(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 _e(e)&&!ve(e)?(r.value=e.name,i=!0):!_e(e)&&ve(e)&&(r.name=e.value,i=!0),i?Object.assign({},t,e,r):e}function ye(e,t,n){if(!Array.isArray(e))return[];let r=e;return Ee(r)?r.map(e=>({...e,options:e.options.map(e=>B(e,t,n))})):r.map(e=>B(e,t,n))}function be(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,B(n,t)]))}const xe=e=>Se(e),Se=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},Ce=e=>Array.isArray(e)&&e.length>0&&P(e[0])&&`options`in e[0]&&Array.isArray(e[0].options),we=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(_e(n)||ve(n))t=!0;else return!1;return t},Te=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(_e(n)&&ve(n))t=!0;else return!1;return t},Ee=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(we(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n},De=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(Te(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n};function V(e,t){return(Ee(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(Ee(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 Oe=e=>Se(Ce(e)?e.flatMap(e=>e.options):e),ke=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},Ae=e=>Ee(e)?ke(e):Se(e.map(e=>B(e))),je=e=>{let{optionList:t,baseOption:n={},labelMap:r={},placeholder:{placeholderName:i=`~`,placeholderLabel:a=o,placeholderGroupLabel:s=o}={},autoSelectOption:c=!0}=e,l={id:i,name:i,value:i,label:a},u=t??[l],d,f=Array.isArray(u)?ye(u,n,r):me(be(u,n)).map(e=>({...u[e],name:e,value:e})).sort((e,t)=>e.label.localeCompare(t.label));d=Ee(f)?ke(c?f:[{label:s,options:[l]},...f]):Se(c?f:[l,...f]);let p={};if(!Array.isArray(u)){let e=be(u,n);p=c?e:{...e,[i]:l}}else if(Ee(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}},Me=(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},Ne=(e,t,n)=>{if(!e.comparator){let n=t=>(t.value??t.name)!==(e.value??e.name);return Ee(t)?t.map(e=>({...e,options:e.options.filter(e=>n(e))})):t.filter(e=>n(e))}return Ee(t)?t.map(t=>({...t,options:t.options.filter(t=>Me(e,n,t))})).filter(e=>e.options.length>0):t.filter(t=>Me(e,n,t))},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},Pe=(e,t,n)=>{let r={};for(let i in e){if(ge(i))continue;let a=t[i];a!==!1&&(a&&i!==a?(ge(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(Pe({...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(Pe({...t,...u,...`operator`in t?{operator:o[t.operator]??t.operator}:{}},i,c))})}});return l({...e,...s?null:{path:[]}})}const Fe=e=>P(e)&&typeof e.valid==`boolean`,G=(e,t,n)=>{if(e.muted)return!1;if(typeof t==`boolean`)return t;if(Fe(t))return t.valid;if(typeof n==`function`&&!I(e)){let t=n(e);if(typeof t==`boolean`)return t;if(Fe(t))return t.valid}return!0},Ie=({parseNumbers:e,inputType:t})=>{if(typeof e==`string`){let[n,r]=e.split(`-`);return r===`limited`?t===`number`?n:!1:n}return e?`strict`:!1},Le=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}},Re={"=":`$eq`,"!=":`$ne`,"<":`$lt`,"<=":`$lte`,">":`$gt`,">=":`$gte`,in:`$in`,notin:`$nin`,notIn:`$nin`},ze={"=":`equals`,"!=":`not`,"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`,in:`in`,notin:`notIn`},Be={and:`&&`,or:`||`},Ve={startsWith:(e,t)=>typeof e==`string`&&e.startsWith(t),endsWith:(e,t)=>typeof e==`string`&&e.endsWith(t)},He=(e,t)=>({...e,rules:e.rules.map(e=>{if(typeof e==`string`)return e;if(I(e))return He(e,t);let n=V(t.fields,e.field),r=Ie({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`&&oe.test(e)),Ue=e=>e.length>=3,We=(e=[``,``])=>Array.isArray(e)?e:typeof e==`string`?[e,e]:e??[``,``],Ge=(e,{quoteFieldNamesWith:t,fieldIdentifierSeparator:n})=>{let[r,i]=We(t);return typeof n==`string`&&n.length>0?ne(te(e,n).map(e=>`${r}${e}${i}`),n):`${r}${e}${i}`},Ke=[`S`,`V`,`O`],qe=e=>{let t=[],n=new Set(Ke);for(let r of e.toUpperCase())if(n.has(r)&&(t.push(r),n.delete(r),n.size===0))break;for(let e of Ke)n.has(e)&&t.push(e);return t},Je={groupPrefix:``,groupPrefix_not_xor:`either zero or more than one of`,groupPrefix_xor:`exactly one of`,groupSuffix:`is true`,groupSuffix_not:`is not true`},Ye=(e,t,n)=>t.startsWith(e)&&n.every(e=>t.includes(`_${e}`)&&t.match(/_/g)?.length===n.length),Xe=(e,t,n=[])=>n.length===0?t[e]??Je[e]??``:Object.entries(t).find(([t])=>Ye(e,t,n))?.[1]??Object.entries(Je).find(([t])=>Ye(e,t,n))?.[1]??Je[e]??``,J=e=>{let{mode:t,threshold:n}=e.match??{};if(!t)return null;if(!I(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}},Ze=(e,t)=>typeof t==`bigint`?{$bigint:t.toString()}:t,Qe=(e,t)=>P(t)&&Object.keys(t).length===1&&typeof t.$bigint==`string`?BigInt(t.$bigint):t,$e=(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=Be[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)?` ${Be[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},et=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),tt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),nt=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r,preserveValueOrder:i}=t,{field:a,operator:o,value:s,valueSource:c}=e,l=c===`field`,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=`elem_alias`,o=$e(W(e.value,{ruleProcessor:e=>({...e,field:`${i}${e.field?`.${e.field}`:``}`})}),t);switch(n){case`all`:return`${a}.all(${i}, ${o})`;case`none`:case`some`:return`${n===`none`?`!`:``}${a}.exists(${i}, ${o})`;case`atleast`:case`atmost`:case`exactly`:{let e=`double(${a}.size())`,t=`${a}.filter(${i}, ${o}).size()`,s=n===`atleast`?`>=`:n===`atmost`?`<=`:`==`;return r>0&&r<1?`${t} ${s} (${e} * ${r})`:`${t} ${s} ${r}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${a} ${u} ${l||d?j(s):`"${tt(s,n)}"`}`;case`contains`:case`doesnotcontain`:return`${et(u)?`!`:``}${a}.contains(${l?j(s):`"${tt(s,n)}"`})`;case`beginswith`:case`doesnotbeginwith`:return`${et(u)?`!`:``}${a}.startsWith(${l?j(s):`"${tt(s,n)}"`})`;case`endswith`:case`doesnotendwith`:return`${et(u)?`!`:``}${a}.endsWith(${l?j(s):`"${tt(s,n)}"`})`;case`null`:return`${a} == null`;case`notnull`:return`${a} != null`;case`in`:case`notin`:{let[e,t]=et(u)?[`!(`,`)`]:[``,``];return`${e}${a} in [${M(s).map(e=>l||q(e,r)?`${j(e)}`:`"${tt(e,n)}"`).join(`, `)}]${t}`}case`between`:case`notbetween`:{let e=M(s);if(e.length>=2&&!F(e[0])&&!F(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}`:`"${tt(t,n)}"`:c,p=Number.isNaN(d)?l?`${o}`:`"${tt(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})`}else return``}}return``},rt={$and:[{$expr:!0}]},it=(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?rt:!1;let m=`$${N(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}:rt;return e.not?f?{$not:_}:{$nor:[_]}:_};return p(z(e),!0)},at=(e,t,n=!1)=>q(e,n||typeof e==`bigint`)?Number(U(e,{parseNumbers:`strict`})):t,ot=(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=it(W(i,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),{...t,ruleProcessor:ot,context:{...t.context,avoidFieldsAsKeys:!1}}),s=it(W(i,{ruleProcessor:e=>({...e,field:e.field?`$item.${e.field}`:`$item`})}),{...t,ruleProcessor:ot,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`?Re[`>=`]:e===`atmost`?Re[`<=`]:Re[`=`];return r>0&&r<1?{$expr:{[t]:[c,{$multiply:[a,r]}]}}:{$expr:{[t]:[c,r]}}}}}if(r===`=`&&!l)return u?{$eq:[`$${n}`,at(i,i,o)]}:{[n]:at(i,i,o)};let f=N(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:{let e=Re[f];return l?{[e]:[`$${n}`,`$${i}`]}:u?{$and:[{$ne:[`$${n}`,null]},{[e]:[`$${n}`,at(i,i,o)]}]}:{[n]:{[e]:at(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:{[Re.in]:[`$${n}`,e.map(e=>at(e,e,o))]}}:{[Re[f]]:[`$${n}`,e.map(e=>at(e,e,o))]}:{[n]:{[Re[f]]:e.map(e=>at(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=at(t,NaN,!0),a=at(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}}]}}else return``}}return``},st=(e,t)=>{let n=ot(e,t);return n?JSON.stringify(n):``},ct=(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)},lt=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),ut=(e,t)=>t?`!(${e})`:e,dt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),ft=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c}=t,l=a===`field`,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=ct(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):`'${dt(i,o)}'`}`;case`contains`:case`doesnotcontain`:return ut(`${n} matches ${l||d?j(i):`'${dt(i,o)}'`}`,lt(u));case`beginswith`:case`doesnotbeginwith`:return ut(`${n} matches ${l?`'^'.concat(${j(i)})`:`'${typeof i==`string`&&!i.startsWith(`^`)||d?`^`:``}${dt(i,o)}'`}`,lt(u));case`endswith`:case`doesnotendwith`:return ut(`${n} matches ${l?`${j(i)}.concat('$')`:`'${dt(i,o)}${typeof i==`string`&&!i.endsWith(`$`)||d?`$`:``}'`}`,lt(u));case`null`:return`${n} == null`;case`notnull`:return`${n} != null`;case`in`:case`notin`:{let e=lt(u)?`!`:``,t=M(i);return t.length>0?`${e}(${t.map(e=>`${n} == ${l||q(e,s)?`${j(e)}`:`'${dt(e,o)}'`}`).join(` or `)})`:``}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&!F(e[0])&&!F(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}`:`'${dt(t,o)}'`:a,p=Number.isNaN(d)?l?`${r}`:`'${dt(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})`}else return``}}return``},pt=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,mt=({operator:e,value:t,valueSource:n},{escapeQuotes:r,parseNumbers:i,preserveValueOrder:a,quoteFieldNamesWith:o,quoteValuesWith:s,concatOperator:c=`||`,fieldIdentifierSeparator:l,wrapValueWith:u=[``,``],translations:d}={})=>{let f=n===`field`,p=N(e),m=s||`'`,h=e=>`${u[0]}${m}${e}${m}${u[1]}`,g=e=>pt(e,m,r),_=e=>h(g(e)),v=e=>Ge(e,{quoteFieldNamesWith:o,fieldIdentifierSeparator:l}),y=(...e)=>c.toUpperCase()===`CONCAT`?`CONCAT(${e.join(`, `)})`:e.join(` ${c} `);switch(p){case`null`:case`notnull`:return``;case`in`:case`notin`:{let e=M(t);return e.length>0?`(${e.map(e=>f?v(e):q(e,i)?`${j(e)}`:`${_(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)?f?`${n}`:n:o,l=Number.isNaN(s)?f?`${r}`:r:s,u=[c,l];return!a&&c===o&&l===s&&s<o&&(u[0]=s,u[1]=o),(f?u.map(e=>v(e)):u.every(e=>q(e,i))?u.map(e=>U(e,{parseNumbers:`strict`})):u.map(e=>_(e))).join(` ${d?.betweenAnd??d?.and??`and`} `)}case`contains`:case`doesnotcontain`:return f?y(h(`%`),v(t),h(`%`)):h(`%${g(t)}%`);case`beginswith`:case`doesnotbeginwith`:return f?y(v(t),h(`%`)):h(`${g(t)}%`);case`endswith`:case`doesnotendwith`:return f?y(h(`%`),v(t)):h(`%${g(t)}`)}return typeof t==`boolean`?t?`TRUE`:`FALSE`:f?v(t):q(t,i)?`${j(t)}`:`${_(t)}`},ht={and:`AND`,or:`OR`},gt=(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=ht[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)?` ${ht[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`NOT `:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},_t=(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],k=N(T),ee=D===`field`,A=e=>ee?o[e]:e;if(!O)return;let te=J(e);if(te!==!1){if(te){if(n.preset!==`postgresql`)return;let{mode:t,threshold:r}=te,i=`elem_alias`,a=vt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),{...n,context:{...n.context,useRawFields:!0}});switch(t){case`all`:return C`(select count(*) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) = array_length(${O}, 1)`;case`none`:return C`not exists (select 1 from unnest(${O}) as ${C.raw(i)} where ${a({},s)})`;case`some`:return C`exists (select 1 from unnest(${O}) as ${C.raw(i)} where ${a({},s)})`;case`atleast`:case`atmost`:case`exactly`:{let e=t===`atleast`?`>=`:t===`atmost`?`<=`:`=`;return r>0&&r<1?C`(select count(*) / array_length(${O}, 1) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) ${C.raw(`${e} ${r}`)}`:C`(select count(*) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) ${C.raw(`${e} ${r}`)}`}}}switch(k){case`=`:return u(O,A(E));case`!=`:return y(O,A(E));case`>`:return d(O,A(E));case`<`:return _(O,A(E));case`>=`:return f(O,A(E));case`<=`:return v(O,A(E));case`beginswith`:case`doesnotbeginwith`:return(k===`doesnotbeginwith`?S:g)(O,ee?C`${A(E)} || '%'`:`${E}%`);case`contains`:case`doesnotcontain`:return(k===`doesnotcontain`?S:g)(O,ee?C`'%' || ${A(E)} || '%'`:`%${E}%`);case`endswith`:case`doesnotendwith`:return(k===`doesnotendwith`?S:g)(O,ee?C`'%' || ${A(E)}`:`%${E}`);case`null`:return h(O);case`notnull`:return m(O);case`in`:case`notin`:{let e=M(E).map(e=>A(e));return k===`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(!ee&&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 ee&&(t=A(t),n=A(n));return k===`notbetween`?b(O,t,n):l(O,t,n)}return}default:return}}},vt=(e,t,n)=>(n,r)=>{let{fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,validateRule:l,validationMap:u}=t;if(!n||!r)return;let{and:d,not:f,or:p}=r,m=_t,h=(e,g)=>{if(!G(e,u[e.id??``]))return;let _=e.rules.map(e=>{if(I(e))return h(e);let[u,d]=l(e);if(!G(e,u,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return;let f=V(i,e.field);return m(e,{...t,parseNumbers:a(f?.inputType),fieldData:f,context:{...t.context,columns:n,drizzleOperators:r}})}).filter(Boolean);if(_.length===0)return;let v=e.combinator===`or`?p(..._):d(..._);return e.not?f(v):v};return h(z(e),!0)},yt=(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?!1:{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},bt=(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(``)},xt=(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)},St=(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)},Ct=(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)},wt=e=>e.startsWith(`{`)&&e.endsWith(`}`),Tt=(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(I(e)){let t=f(e);return t?(h=!0,wt(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":[${wt(_)?_:`{${_}}`}]`:_},p=f(z(e),!0);return wt(p)?p:`{${p}}`},Et=(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`&&N(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=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?Xe(e,l,[`not`,`xor`]):Xe(e,l,[`not`]):v?Xe(e,l,[`xor`]):Xe(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)},Dt=(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(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}},Ot={},kt=(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?Ot: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}:Ot},d=u(z(e),!0);return e.not?{NOT:d}:d},At=(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]:{[N(p)===`or`?d.or:d.and]:h};return e.not?{[d.not]:g}:g};return f(z(e),!0)},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=Be[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)?` ${Be[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},Mt=(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)},Nt=new Set([`number`,`range`,`bigint`]),Pt=/^\d{4}-\d{2}-\d{2}$/,Ft=/^\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/,It=/^\d{4}-\d{2}$/,Lt=/^\d{4}-W\d{2}$/,Rt=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,zt=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Bt=(e,t,n)=>{let r=new Date(Date.UTC(e,t-1,n));return r.getUTCFullYear()===e&&r.getUTCMonth()===t-1&&r.getUTCDate()===n},Vt=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},Ht=(e,t)=>{if(!(e==null||e===``)){if(Nt.has(t)){let t=typeof e==`string`?e.trim():e;return typeof t==`number`||typeof t==`bigint`||typeof t==`string`&&oe.test(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`date`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Pt.test(t))return`VALUE_TYPE_MISMATCH`;let[n,r,i]=t.split(`-`).map(Number);return Bt(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(!Pt.test(r)||!Ft.test(i))return`VALUE_TYPE_MISMATCH`;let[a,o,s]=r.split(`-`).map(Number);return Bt(a,o,s)&&Vt(i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`time`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();return Ft.test(t)&&Vt(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`month`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!It.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(!Lt.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`&&Rt.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`&&zt.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`}},Ut=(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=Oe(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=Gt(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);Wt(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=Gt(d)??Kt(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}},Wt=(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`&&Fe(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`&&Fe(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=Ht(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`})}}},Gt=e=>{if(typeof e!=`boolean`&&Fe(e)&&!e.valid&&e.reasons)return e.reasons},Kt=(e,t)=>{if(typeof t==`function`){let n=t(e);if(typeof n!=`boolean`&&Fe(n)&&!n.valid&&n.reasons)return n.reasons}},qt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),Jt=(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):`'${qt(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)}`}},Yt={"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`},Xt=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{bool:{must_not:t}}:t,Zt=e=>e?.replace(/('|\\)/g,`\\$1`),Qt={beginswith:`startsWith`,doesnotbeginwith:`startsWith`,doesnotcontain:`contains`,doesnotendwith:`endsWith`,endswith:`endsWith`},$t=(e,t,n)=>{let r=`doc['${e}'].value.${Qt[t]??t}(doc['${n}'].value)`;return t.startsWith(`d`)?`!${r}`:r},en=(e,t)=>typeof e==`boolean`?e:q(e,t)?U(e,{parseNumbers:t}):e,tn=(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=yt(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=Zt(n);switch(c){case`=`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:{let t=c===`=`?`==`:c,n=Zt(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=Zt(i);return t?{bool:{filter:{script:{script:$t(e,c,t)}}}}:!1}}}switch(c){case`<`:case`<=`:case`>`:case`>=`:return{range:{[n]:{[Yt[c]]:en(i,o)}}};case`=`:return{term:{[n]:en(i,o)}};case`!=`:return{bool:{must_not:{term:{[n]:en(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=>en(e,o));if(e.length>0){let t=e.map(e=>({term:{[n]:en(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 Xt(c,{range:{[n]:{gte:t,lte:r}}})}return!1}case`contains`:case`doesnotcontain`:return Xt(c,{regexp:{[n]:{value:`.*${i}.*`}}});case`beginswith`:case`doesnotbeginwith`:return Xt(c,{regexp:{[n]:{value:`${i}.*`}}});case`endswith`:case`doesnotendwith`:return Xt(c,{regexp:{[n]:{value:`.*${i}`}}})}return!1},nn=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),rn=(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):`'${nn(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)})`}},an=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),on=(e,t)=>`"${typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`)}"`,sn=(e,t)=>t?`$not(${e})`:e,cn=e=>`${e}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g,String.raw`\$&`).replaceAll(`-`,String.raw`\x2d`),ln=(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=>Ge(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) {${xt(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):on(i,o)}`;case`contains`:case`doesnotcontain`:return sn(`$contains(${p(n)}, ${d?p(j(i)):on(i,o)})`,an(h));case`beginswith`:case`doesnotbeginwith`:return sn(d?`$substring(${p(n)}, 0, $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /^${cn(i)}/)`,an(h));case`endswith`:case`doesnotendwith`:return sn(d?`$substring(${p(n)}, $length(${p(n)}) - $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /${cn(i)}$/)`,an(h));case`null`:return`${p(n)} = null`;case`notnull`:return`${p(n)} != null`;case`in`:case`notin`:{let e=M(i);return sn(`${p(n)} in [${e.map(e=>d?`${p(j(e))}`:q(e,s)?`${j(e)}`:on(e,o)).join(`, `)}]`,an(h))}case`between`:case`notbetween`:{let e=M(i);if(e.length<2||F(e[0])||F(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:on(t,o),v=`${p(n)} >= ${_(t,f)} and ${p(n)} <= ${_(r,m)}`;return h===`between`?`(${v})`:sn(v,!0)}}return``},un=e=>e.replace(/^(=)$/,`$1=`).replace(/^notnull$/i,`!=`).replace(/^null$/i,`==`),dn=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{"!":t}:t,fn=(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])?fn(i.rules[0],t):St(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])?fn(i.rules[0],t):St(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{[un(f)]:[l,u(i)]};case`null`:case`notnull`:return{[`${f===`notnull`?`!`:`=`}=`]:[l,null]};case`in`:case`notin`:return dn(f,{in:[l,M(i).map(e=>u(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 dn(f,{"<=":[t,l,n]})}return!1}case`contains`:case`doesnotcontain`:return dn(f,{in:[u(i),l]});case`beginswith`:case`doesnotbeginwith`:return dn(f,{startsWith:[l,u(i)]});case`endswith`:case`doesnotendwith`:return dn(f,{endsWith:[l,u(i)]})}return!1},pn=(e,t)=>t?`(!${e})`:`${e}`,mn=e=>`${j(e)}`.replaceAll(/[()&|=<>~*\\/]/g,e=>`\\${e.codePointAt(0).toString(16)}`),hn=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{preserveValueOrder:o}=t,s=N(r);if(a===`field`||F(i)&&s!==`null`&&s!==`notnull`||J(e))return``;switch(s){case`=`:case`!=`:return pn(`(${n}=${mn(i)})`,s===`!=`);case`>`:case`>=`:return`(${n}>=${mn(i)})`;case`<`:case`<=`:return`(${n}<=${mn(i)})`;case`contains`:case`doesnotcontain`:return pn(`(${n}=*${mn(i)}*)`,s===`doesnotcontain`);case`beginswith`:case`doesnotbeginwith`:return pn(`(${n}=${mn(i)}*)`,s===`doesnotbeginwith`);case`endswith`:case`doesnotendwith`:return pn(`(${n}=*${mn(i)})`,s===`doesnotendwith`);case`null`:case`notnull`:return pn(`(${n}=*)`,s===`notnull`);case`in`:case`notin`:return pn(`(|${M(i).map(e=>`(${n}=${mn(e)})`).join(``)})`,s===`notin`);case`between`:case`notbetween`:{let e=M(i);if(e.length<2||F(e[0])||F(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 pn(`(&(${n}>=${mn(l)})(${n}<=${mn(u)}))`,s===`notbetween`)}}return``},gn=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,_n=(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=>gn(e,d,n),m=e=>f(p(e)),h=e=>Ge(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 mt(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])?``:mt({...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)}`},vn={"=":[`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`]},yn=()=>[],bn=(e,t={})=>{let{field:n,operator:r,valueSource:i=`value`}=e,{getOperators:a=yn,operatorMap:o=vn}=t,s=new Map(Object.entries(vn));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(ye(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`)]},xn=(e,t)=>{let{field:n,operator:r}=e,{fieldData:i,quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:o=``,quoteValuesWith:s=`'`,operatorProcessor:c=bn,valueProcessor:l=_n,concatOperator:u=`||`,wordOrder:d=`SVO`}=t??{},f=Ge(i?.label??n,{quoteFieldNamesWith:a,fieldIdentifierSeparator:o}),p=J(e);if(p===!1)return``;if(p){let{mode:n,threshold:r}=p,a=Et(e.value,{...t,fields:ye(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=qe(d).filter(e=>g[e]!==``);return y.map((e,t)=>`${g[e]}${t<y.length-1?v[e]:``}`).join(``).trim()},Sn=e=>N(Le(e.operator)),Cn=(e,t={})=>{let{quoteFieldNamesWith:n=[``,``],fieldIdentifierSeparator:r=``,quoteValuesWith:i=`'`,operatorProcessor:a=Sn,valueProcessor:o=mt,concatOperator:s=`||`}=t,c=e=>Ge(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=`elem_alias`,a=Mt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),t);switch(n){case`all`:return`(select count(*) from unnest(${l}) as ${c(i)} where ${a}) = array_length(${l}, 1)`;case`none`:return`not exists (select 1 from unnest(${l}) as ${c(i)} where ${a})`;case`some`:return`exists (select 1 from unnest(${l}) as ${c(i)} where ${a})`;case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return`(select count(*)${r>0&&r<1?` / array_length(${l}, 1)`:``} from unnest(${l}) as ${c(i)} where ${a}) ${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()},wn=(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=Sn,valueProcessor:m=mt}=t??{},{processedParams:h=[]}=n??{},g=i===`parameterized`,_=[],v={},y=e=>g?{sql:e,params:_}:{sql:e,params:v},b=e=>Ge(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=`elem_alias`,{sql:a,params:o}=Dt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),{...t,fields:[]});switch(Array.isArray(o)?_.push(...o):Object.assign(v,o),n){case`all`:return y(`(select count(*) from unnest(${x}) as ${b(i)} where ${a}) = array_length(${x}, 1)`);case`none`:return y(`not exists (select 1 from unnest(${x}) as ${b(i)} where ${a})`);case`some`:return y(`exists (select 1 from unnest(${x}) as ${b(i)} where ${a})`);case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return y(`(select count(*)${r>0&&r<1?` / array_length(${x}, 1)`:``} from unnest(${x}) as ${b(i)} where ${a}) ${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===`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(`, `)})`)}else 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 k=``;return g?_.push(O):(k=a(e.field),v[`${c?s:``}${k}`]=O),y(`${E}${e.field}${D} ${w} ${g?l?`${s}${h.length+1}`:`?`:`${s}${k}`}`.trim())},Tn=(e,t,n)=>q(e,!!n||typeof e==`bigint`)?Number(U(e,{parseNumbers:!!n})):t,En=(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]:Tn(i,i,o)};case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e=ze[c];return{[n]:{[e]:Tn(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]:{[ze[c]]:e.map(e=>Tn(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}}]}}else return``}}return``},Dn=(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}}}}},On=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),kn=e=>/^[?<]/.test(e)||e.includes(`:`)?e:`?${e}`,An=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=kn(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 kn(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:`"${On(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)}`}},jn={ansi:{},sqlite:{paramsKeepPrefix:!0},oracle:{},mssql:{concatOperator:`+`,quoteFieldNamesWith:[`[`,`]`],fieldIdentifierSeparator:`.`,paramPrefix:`@`},mysql:{concatOperator:`CONCAT`},postgresql:{quoteFieldNamesWith:`"`,numberedParams:!0,paramPrefix:`$`}},Mn={...jn},Nn={cel:nt,drizzle:_t,elasticsearch:tn,json_without_ids:Cn,json:Cn,jsonata:ln,jsonlogic:fn,ldap:hn,mongodb_query:ot,mongodb:st,natural_language:xn,parameterized_named:wn,parameterized:wn,prisma:En,sequelize:Dn,spel:ft,sql:Cn,cypher:Jt,gql:Jt,sparql:An,gremlin:rn,diagnostics:Cn},Y=e=>e.operator,Pn={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:bn,parameterized_named:Sn,parameterized:Sn,prisma:Y,sequelize:Y,spel:Y,sql:Sn,cypher:Y,gql:Y,sparql:Y,gremlin:Y,diagnostics:Y},Fn={cel:`1 == 1`,ldap:``,mongodb:`"$and":[{"$expr":true}]`,natural_language:`1 is 1`,sparql:`1 = 1`,gremlin:``,spel:`1 == 1`,sql:`(1 = 1)`},In={format:`json`,fields:[],quoteFieldNamesWith:[``,``],fieldIdentifierSeparator:``,getOperators:()=>[],paramPrefix:`:`,paramsKeepPrefix:!1,numberedParams:!1,preserveValueOrder:!1,placeholderFieldName:`~`,placeholderOperatorName:`~`,quoteValuesWith:`'`,concatOperator:`||`,preset:`ansi`,wordOrder:`SVO`,translations:{},operatorMap:{}},Ln=new Set([`cel`,`drizzle`,`elasticsearch`,`jsonata`,`jsonlogic`,`ldap`,`mongodb_query`,`mongodb`,`prisma`,`sequelize`,`spel`]),Rn=new Set([`sql`,`parameterized`,`parameterized_named`,`drizzle`,`prisma`,`sequelize`]);function zn(e,t={}){let n=typeof t==`string`?{format:N(t)}:t,r={...In,...!n.format||Rn.has(n.format)?jn[n.preset??`ansi`]??null:null,...n,...!n.format&&(Object.keys(jn).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 Ie({parseNumbers:c,inputType:e})==`string`?!0:typeof c==`boolean`?c:void 0,g=typeof s==`function`?s:Pn[i]??Y,_=typeof p==`function`?Ue(p)?e=>p(e.field,e.operator,e.value,e.valueSource):p:i===`natural_language`?_n:Ln.has(i)?d??Nn[i]:mt,v=(typeof d==`function`?d:null)??(Ln.has(i)&&typeof d!=`function`&&p?_:null)??Nn[i]??Cn,y=We(l),b=ye(r.fields),x=(e,t)=>ye(o(e,t)??[]),S=a??Fn[i]??Fn.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`?rt:i===`prisma`?Ot:i===`jsonlogic`?!1:i===`elasticsearch`?{}:i===`drizzle`||i===`sequelize`?void 0:S}else C=t}let w={},T=Oe(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)}}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?He(e,D):e;return i===`json_without_ids`?JSON.stringify(t,(e,t)=>e===`id`||e===`path`?void 0:Ze(e,t)):JSON.stringify(t,Ze,2)}case`sql`:return Mt(e,D);case`parameterized`:case`parameterized_named`:return Dt(e,D);case`mongodb`:return Tt(e,D);case`mongodb_query`:return it(e,D);case`cel`:return $e(e,D);case`spel`:return ct(e,D);case`jsonata`:return xt(e,D);case`jsonlogic`:return St(e,D);case`elasticsearch`:return yt(e,D);case`natural_language`:return Et(e,D);case`ldap`:return Ct(e,D);case`prisma`:return kt(e,D);case`drizzle`:return vt(e,D);case`sequelize`:return At(e,D);case`cypher`:case`gql`:return gt(e,D);case`sparql`:return jt(e,D);case`gremlin`:return bt(e,D);case`diagnostics`:return Ut(e,D);default:return``}}const Bn=e=>(t,n,r,i)=>e({field:t,operator:n,value:r,valueSource:i},{parseNumbers:!1}),Vn=Bn(mt),Hn=Bn(st),Un=Bn(nt),Wn=Bn(ft),Gn=nt,Kn=st,qn=ft,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},Jn=(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=Jn(e,n);if(t)return t}}return null},Yn=(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=Yn(e,r);if(Array.isArray(t))return[Number.parseInt(n),...t]}return null},Z=e=>e.slice(0,-1),Xn=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),Zn=(e,t)=>e.length<t.length&&RegExp(`^${e.join(`-`)}`).test(t.join(`-`)),Qn=(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},$n=(e,t)=>{let n=!!t.disabled,r=t,i=0;for(;i<e.length&&!n&&I(r);){let t=r.rules[e[i]];P(t)&&(I(t)||`field`in t&&t.field)&&(n=!!t.disabled,r=t),i++}return n},er=e=>Xn([],e.path)?`Query builder`:`Rule group at path ${e.path.join(`-`)}`,tr=globalThis.crypto,nr=/^[\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(tr){if(typeof tr.randomUUID==`function`)Q=()=>tr.randomUUID();else if(typeof tr.getRandomValues==`function`){let e=new Uint32Array(32);Q=()=>{tr.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 rr={name:`name`,value:`name`,matchModes:null,label:`label`},ir=(e,t)=>{let n=e?B(e):rr,r=n.matchModes??!1;return!r&&t&&(r=t(n.value,{fieldData:n})),r===!0?w:r===!1?[]:we(r)?ye(r):r?.map(e=>w.find(t=>t.value===N(e))??{name:e,value:e,label:e})??[]},ar=e=>{let t=typeof e==`boolean`?e:typeof e==`object`&&e?e.valid:null;return typeof t==`boolean`?t?T.valid:T.invalid:``},or=[{name:`value`,value:`value`,label:`value`}],sr={name:`name`,value:`name`,valueSources:null,label:`label`},cr=(e,t,n)=>{let r=e?B(e):sr,i=r.valueSources??!1;return typeof i==`function`&&(i=i(t)),!i&&n&&(i=n(r.value,t,{fieldData:r})),i?we(i)?ye(i):i.map(e=>or.find(t=>t.value===N(e))??{name:e,value:e,label:e}):or},lr=(e,...t)=>{let n={...e};for(let e of t)if(e)for(let t of me(e))ge(t)||(n[t]?n[t]={...n[t],...e[t]}:n[t]={...e[t]});return n},ur=(e,t,n)=>{if(ge(e))return;let r=he(t).map(([t,[r,i]])=>[t,r??i??n?.[e]?.[t]]).filter(e=>!ge(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)=>ae(t.map(t=>ae(t?.[e]))),dr=(...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),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)}),fr=(e,t)=>e===!1?!1:e?!0:t!==!1,pr=(e,t)=>e?!0:e===!1?!1:!!t,mr=(e,t,n,r)=>r?t??n:e?fr(t,n):pr(t,n),hr=(e,t,n)=>t!==void 0&&t!=null?t:n!==void 0&&n!=null?n:e,gr=(e={},t={},n)=>he(A).reduce((r,[i,a])=>(r[i]=mr(a,e[i],t[i],!n),r),{}),_r=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=J(e);return!n&&!r?e:{...e,...n&&{id:t()},...r&&{value:vr(e.value,{idGenerator:t})}}},vr=(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)?vr(a,{idGenerator:t}):_r(a,{idGenerator:t});i.push(e),e!==a&&(r=!0)}}return!n&&!r?e:{...e,...n&&{id:t()},rules:i}},yr=(e,{idGenerator:t=Q}={})=>I(e)?vr(e,{idGenerator:t}):_r(e,{idGenerator:t}),br=(e,{idGenerator:t=Q}={})=>structuredClone({...e,id:t()}),xr=(e,{idGenerator:t=Q}={})=>{if(!P(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)?xr(e,{idGenerator:t}):br(e,{idGenerator:t}))),n},Sr=(e,t,n,r={})=>i(e,e=>Cr(e,t,n,r)),Cr=(e,t,n,r={})=>{let{combinators:i=S,combinatorPreceding:a,idGenerator:o=Q}=r,s=Array.isArray(n)?X(n,e):Jn(n,e);if(!s||!I(s))return e;if(R(s)&&s.rules.length>0){let e=s.rules.at(-2);s.rules.push(a??(typeof e==`string`?e:H(i)))}return s.rules.push(yr(t,{idGenerator:o})),e},wr=(e,t,n,r,a={})=>i(e,e=>Tr(e,t,n,r,a)),Tr=(e,t,n,r,i={})=>{let{resetOnFieldChange:a=!0,resetOnOperatorChange:o=!1,getRuleDefaultOperator:s=()=>`=`,getValueSources:c=()=>[`value`],getRuleDefaultValue:l=()=>``,getMatchModes:u=()=>[]}=i,d=a,f=Array.isArray(r)?r:Yn(r,e);if(!f)return e;if(t===`combinator`&&!L(e)){let t=X(Z(f),e).rules;return f.at(-1)%2==1&&(t[f.at(-1)]=n),e}let p=X(f,e);if(!p)return e;let m=I(p);if(p[t]===n||(t!==`valueSource`&&(p[t]=n),m))return e;let h=!1,g=!1;if(t===`field`){let e=u(p.field),t=u(n);if(t.length===0)delete p.match;else{let e=p.match?.mode&&V(t,p.match.mode)?null:H(t);e&&(p.match={mode:e,threshold:1})}(e.length>0||t.length>0)&&(d=!0)}d&&t===`field`&&(p.operator=s(n),h=!0,g=!0),o&&t===`operator`&&(h=!0,g=!0);let _=H(cr({name:p.field,value:p.field,label:``},p.operator,c));return(h&&p.valueSource&&_!==p.valueSource||t===`valueSource`&&n!==p.valueSource)&&(g=!!p.valueSource||!p.valueSource&&n!==_,p.valueSource=h?_:n),g&&(p.value=l(p)),e},Er=(e,t)=>i(e,e=>Dr(e,t)),Dr=(e,t)=>{let n=Array.isArray(t)?t:Yn(t,e);if(!n||n.length===0||!L(e)&&!X(n,e))return e;let r=n.at(-1),i=X(Z(n),e);if(i&&I(i))if(!L(i)&&i.rules.length>1){let e=r===0?0:r-1;i.rules.splice(e,2)}else i.rules.splice(r,1);return e},Or=(e,t,n)=>{if(Array.isArray(n))return n;let r=R(e);if(n===`up`){if(Xn(t,[0]))return t;if(t.at(-1)===0){let e=Z(t);return[...Z(e),Math.max(0,e.at(-1)-+!!r)]}else{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))]}}else if(n===`down`){if(Xn([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]}else{let n=[...Z(t),t.at(-1)+(r?2:1)];return I(X(n,e))?[...n,0]:[...Z(t),t.at(-1)+(r?3:2)]}}return t},kr=(e,t,n,r={})=>i(e,e=>Ar(e,t,n,r)),Ar=(e,t,i,a={})=>{let{clone:o=!1,combinators:s=S,idGenerator:c=Q}=a,l=Array.isArray(t)?t:Yn(t,e);if(!l)return e;let u=Or(e,l,i);if(l.length===0||Xn(l,u)||!X(Z(u),e))return e;let d=X(l,e);if(!d)return e;let f=o?xr(r(d)?n(d):d,{idGenerator:c}):d,p=R(e),m=X(Z(l),e),h=l.at(-1),g=p&&h>0?m.rules[h-1]:null,_=p&&h<m.rules.length-1?m.rules[h+1]:null;if(!o){let e=p?Math.max(0,h-1):h,t=p?2:1;m.rules.splice(e,t)}let v=[...u],y=Qn(l,u);!o&&l.length===y.length+1&&u[y.length]>l[y.length]&&(v[y.length]-=p?2:1);let b=X(Z(v),e),x=v.at(-1),C=(...e)=>b.rules.splice(x,0,...e);return b.rules.length===0||!p?C(f):x===0?h===0&&_?C(f,_):C(f,b.rules[1]??g??H(s)):C(g||(b.rules[x-2]??_??H(s)),f),e},jr=(e,t,n,r={})=>i(e,e=>Mr(e,t,n,r)),Mr=(e,t,n,r={})=>{let{combinators:i=S,combinatorPreceding:a,combinatorSucceeding:o,idGenerator:s=Q,replace:c=!1}=r,l=X(Z(n),e);if(!l||!I(l))return e;let u=xr(t,{idGenerator:s}),d=R(e),f=n.at(-1),p=(e,...t)=>l.rules.splice(e,c?t.length:0,...t);if(l.rules.length===0||!d)p(f,u);else if(c&&d)p(f+f%2,u);else if(f===0)u.path?.at(-1)===0&&o?p(f,u,o):p(f,u,l.rules[1]??a??H(i));else{let e=f%2==0?f-1:f;a?p(e,a,u):p(e,l.rules[e-2]??o??H(i),u)}return e},Nr=(e,t,n,r={})=>i(e,e=>Pr(e,t,n,r)),Pr=(e,t,i,a={})=>{let{clone:o=!1,combinators:s=S,idGenerator:c=Q}=a,l=Array.isArray(t)?t:Yn(t,e),u=Array.isArray(i)?i:Yn(i,e);if(!l||!u)return e;let d=Or(e,l,u);if(l.length===0||Xn(l,d)||!X(Z(d),e))return e;let f=X(l,e),p=X(u,e);if(!f||!p)return e;let m=o?xr(r(f)?n(f):f,{idGenerator:c}):f,h=R(e),g=X(Z(l),e),_=l.at(-1);if(!o){let e=h?Math.max(0,_-1):_,t=h?2:1;g.rules.splice(e,t)}let v=[...d],y=Qn(l,d);!o&&l.length===y.length+1&&d[y.length]>l[y.length]&&(v[y.length]-=h?2:1);let b=X(Z(v),e),x=v.at(-1);return b.rules.splice(x,1,yr(h?{rules:[p,H(s),m]}:{combinator:H(s),rules:[p,m]},{idGenerator:c})),e};export{k as LogType,O as TestID,Sr as add,Cr as addInPlace,Qe as bigIntJsonParseReviver,Ze as bigIntJsonStringifyReplacer,Be as celCombinatorMap,ae as clsx,z as convertFromIC,fe as convertQuery,de as convertToIC,ht as cypherCombinatorMap,Un as defaultCELValueProcessor,y as defaultCombinatorLabelMap,S as defaultCombinators,C as defaultCombinatorsExtended,E as defaultControlClassnames,vn as defaultExportOperatorMap,_ as defaultJoinChar,w as defaultMatchModes,Hn as defaultMongoDBValueProcessor,Je as defaultNLTranslations,v as defaultOperatorLabelMap,x as defaultOperatorNegationMap,bn as defaultOperatorProcessorNL,Sn as defaultOperatorProcessorSQL,b as defaultOperators,l as defaultPlaceholderFieldGroupLabel,c as defaultPlaceholderFieldLabel,s as defaultPlaceholderFieldName,o as defaultPlaceholderLabel,a as defaultPlaceholderName,f as defaultPlaceholderOperatorGroupLabel,d as defaultPlaceholderOperatorLabel,u as defaultPlaceholderOperatorName,h as defaultPlaceholderValueGroupLabel,m as defaultPlaceholderValueLabel,p as defaultPlaceholderValueName,$e as defaultRuleGroupProcessorCEL,gt as defaultRuleGroupProcessorCypher,Ut as defaultRuleGroupProcessorDiagnostics,vt as defaultRuleGroupProcessorDrizzle,yt as defaultRuleGroupProcessorElasticSearch,bt as defaultRuleGroupProcessorGremlin,xt as defaultRuleGroupProcessorJSONata,St as defaultRuleGroupProcessorJsonLogic,Ct as defaultRuleGroupProcessorLDAP,Tt as defaultRuleGroupProcessorMongoDB,it as defaultRuleGroupProcessorMongoDBQuery,Et as defaultRuleGroupProcessorNL,Dt as defaultRuleGroupProcessorParameterized,kt as defaultRuleGroupProcessorPrisma,jt as defaultRuleGroupProcessorSPARQL,Mt as defaultRuleGroupProcessorSQL,At as defaultRuleGroupProcessorSequelize,ct as defaultRuleGroupProcessorSpEL,nt as defaultRuleProcessorCEL,Jt as defaultRuleProcessorCypher,_t as defaultRuleProcessorDrizzle,tn as defaultRuleProcessorElasticSearch,rn as defaultRuleProcessorGremlin,ln as defaultRuleProcessorJSONata,fn as defaultRuleProcessorJsonLogic,hn as defaultRuleProcessorLDAP,st as defaultRuleProcessorMongoDB,ot as defaultRuleProcessorMongoDBQuery,xn as defaultRuleProcessorNL,wn as defaultRuleProcessorParameterized,En as defaultRuleProcessorPrisma,An as defaultRuleProcessorSPARQL,Cn as defaultRuleProcessorSQL,Dn as defaultRuleProcessorSequelize,ft as defaultRuleProcessorSpEL,Wn as defaultSpELValueProcessor,g as defaultTranslations,pe as defaultValidator,Vn as defaultValueProcessor,mt as defaultValueProcessorByRule,Gn as defaultValueProcessorCELByRule,Kn as defaultValueProcessorMongoDBByRule,_n as defaultValueProcessorNL,qn as defaultValueProcessorSpELByRule,Ne as filterFieldsByComparator,Jn as findID,X as findPath,zn as formatQuery,Mn as formatQueryOptionPresets,er as generateAccessibleDescription,Q as generateID,Qn as getCommonAncestorPath,H as getFirstOption,ir as getMatchModesUtil,Xe as getNLTranslataion,V as getOption,Z as getParentPath,Ie as getParseNumberMethod,Yn as getPathOfID,We as getQuoteFieldNamesWithArray,Ge as getQuotedFieldName,ar as getValidationClassNames,cr as getValueSourcesUtil,Nr as group,Pr as groupInPlace,D as groupInvalidReasons,jr as insert,Mr as insertInPlace,Zn as isAncestor,we as isFlexibleOptionArray,Ee as isFlexibleOptionGroupArray,Te as isFullOptionArray,De as isFullOptionGroupArray,Ce as isOptionGroupArray,P as isPojo,I as isRuleGroup,L as isRuleGroupType,R as isRuleGroupTypeIC,G as isRuleOrGroupValid,se as isRuleType,ge as isUnsafeKey,K as isValidValue,Fe as isValidationResult,Ue as isValueProcessorLegacy,ne as joinWith,Ve as jsonLogicAdditionalOperators,N as lc,Le as mapSQLOperator,ur as mergeAnyTranslation,lr as mergeAnyTranslations,dr as mergeClassnames,rt as mongoDbFallback,Re as mongoOperators,kr as move,Ar as moveInPlace,qe as normalizeConstituentWordOrder,re as nullFreeArray,F as nullOrUndefinedOrEmpty,oe as numericRegex,He as numerifyValues,he as objectEntries,me as objectKeys,U as parseNumber,$n as pathIsDisabled,Xn as pathsAreEqual,hr as preferAnyProp,gr as preferFlagProps,mr as preferProp,je as prepareOptionList,_r as prepareRule,vr as prepareRuleGroup,yr as prepareRuleOrGroup,Ot as prismaFallback,ze as prismaOperators,J as processMatchMode,A as queryBuilderFlagDefaults,br as regenerateID,xr as regenerateIDs,Er as remove,Dr as removeInPlace,ee as rootPath,q as shouldRenderAsNumber,kn as sparqlVar,te as splitBy,jn as sqlDialectPresets,T as standardClassnames,M as toArray,Oe as toFlatOptionArray,B as toFullOption,ye as toFullOptionList,be as toFullOptionMap,W as transformQuery,j as trimIfString,Se as uniqByIdentifier,xe as uniqByName,ke as uniqOptGroups,Ae as uniqOptList,wr as update,Tr as updateInPlace,nr as uuidV4regex};
1
+ import{numericQuantity as e,numericRegex as t}from"numeric-quantity";import{current as n,isDraft as r,produce as i}from"immer";const a=`~`,o=`------`,s=`~`,c=o,l=o,u=`~`,d=o,f=o,p=`~`,m=o,h=o,g={fields:{title:`Field`,placeholderName:`~`,placeholderLabel:c,placeholderGroupLabel:l},operators:{title:`Operator`,placeholderName:`~`,placeholderLabel:d,placeholderGroupLabel:f},values:{title:`Values`,placeholderName:`~`,placeholderLabel:m,placeholderGroupLabel:h},matchMode:{title:`Match mode`},matchThreshold:{title:`Match threshold`},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`},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={"=":`=`,"!=":`!=`,"<":`<`,">":`>`,"<=":`<=`,">=":`>=`,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`},y={and:`AND`,or:`OR`,xor:`XOR`},b=[{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`}],x={"=":`!=`,"!=":`=`,"<":`>=`,"<=":`>`,">":`<=`,">=":`<`,beginsWith:`doesNotBeginWith`,doesNotBeginWith:`beginsWith`,endsWith:`doesNotEndWith`,doesNotEndWith:`endsWith`,contains:`doesNotContain`,doesNotContain:`contains`,between:`notBetween`,notBetween:`between`,in:`notIn`,notIn:`in`,notNull:`null`,null:`notNull`},S=[{name:`and`,value:`and`,label:`AND`},{name:`or`,value:`or`,label:`OR`}],C=[...S,{name:`xor`,value:`xor`,label:`XOR`}],w=[{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`}],T={queryBuilder:`queryBuilder`,ruleGroup:`ruleGroup`,header:`ruleGroup-header`,body:`ruleGroup-body`,combinators:`ruleGroup-combinators`,addRule:`ruleGroup-addRule`,addGroup:`ruleGroup-addGroup`,cloneRule:`rule-cloneRule`,cloneGroup:`ruleGroup-cloneGroup`,removeGroup:`ruleGroup-remove`,notToggle:`ruleGroup-notToggle`,rule:`rule`,fields:`rule-fields`,matchMode:`rule-matchMode`,matchThreshold:`rule-matchThreshold`,operators:`rule-operators`,value:`rule-value`,removeRule:`rule-remove`,betweenRules:`betweenRules`,valid:`queryBuilder-valid`,invalid:`queryBuilder-invalid`,shiftActions:`shiftActions`,dndDragging:`dndDragging`,dndOver:`dndOver`,dndCopy:`dndCopy`,dndGroup:`dndGroup`,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`,hasSubQuery:`rule-hasSubQuery`,loading:`queryBuilder-loading`},E={queryBuilder:``,ruleGroup:``,header:``,body:``,combinators:``,addRule:``,addGroup:``,cloneRule:``,cloneGroup:``,removeGroup:``,notToggle:``,rule:``,fields:``,matchMode:``,matchThreshold:``,operators:``,value:``,removeRule:``,shiftActions:``,dragHandle:``,lockRule:``,lockGroup:``,muteRule:``,muteGroup:``,muted:``,valueSource:``,actionElement:``,valueSelector:``,betweenRules:``,valid:``,invalid:``,dndDragging:``,dndOver:``,dndGroup:``,dndCopy:``,dndDropNotAllowed:``,dndPreviewPosition:``,dndHidden:``,disabled:``,valueListItem:``,branches:``,hasSubQuery:``,loading:``},D={empty:`empty`,invalidCombinator:`invalid combinator`,invalidIndependentCombinators:`invalid independent combinators`},O={rule:`rule`,ruleGroup:`rule-group`,inlineCombinator:`inline-combinator`,addGroup:`add-group`,removeGroup:`remove-group`,cloneGroup:`clone-group`,cloneRule:`clone-rule`,addRule:`add-rule`,removeRule:`remove-rule`,combinators:`combinators`,fields:`fields`,operators:`operators`,valueEditor:`value-editor`,notToggle:`not-toggle`,shiftActions:`shift-actions`,dragHandle:`drag-handle`,lockRule:`lock-rule`,lockGroup:`lock-group`,muteRule:`mute-rule`,muteGroup:`mute-group`,valueSourceSelector:`value-source-selector`,matchModeEditor:`match-mode-editor`},k={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`},ee=[],te={addRuleToNewGroups:!1,autoSelectField:!0,autoSelectOperator:!0,autoSelectValue:!1,debugMode:!1,enableDragAndDrop:!1,enableMountQueryChange:!0,listsAsArrays:!1,resetOnFieldChange:!0,resetOnOperatorChange:!1,showCloneButtons:!1,showCombinatorsBetweenRules:!1,showLockButtons:!1,showMuteButtons:!1,showNotToggle:!1,showShiftActions:!1,suppressStandardClassnames:!1},A=(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)],[]):[],ne=(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(e=>j(e)):typeof e==`string`?A(e,`,`).filter(t?()=>!0:e=>!/^\s*$/.test(e)).map(e=>e.trim()):typeof e==`number`?[e]:[],re=e=>e.every(e=>e===!1||(e??!1)!==!1);function ie(e){let t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){let i=e.length;for(t=0;t<i;t++)e[t]&&(n=ie(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function ae(...e){let t=0,n,r,i=``,a=e.length;for(;t<a;t++)(n=e[t])&&(r=ie(n))&&(i&&(i+=` `),i+=r);return i}const N=e=>typeof e==`string`?e.toLowerCase():e,oe=new RegExp(t.source.replace(/^\^/,String.raw`^\s*`).replace(/\$$/,String.raw`\s*$`)),P=e=>typeof e!=`object`||!e?!1:Object.getPrototypeOf(e)===Object.prototype,F=e=>e==null||e===``,se=e=>P(e)&&`field`in e&&typeof e.field==`string`,I=e=>P(e)&&Array.isArray(e.rules),L=e=>I(e)&&typeof e.combinator==`string`,R=e=>I(e)&&e.combinator===void 0,ce=[`or`,`xor`,`and`],le=(e,t)=>N(e)===t,ue=(e,t=0)=>{let n=ce[t];if(!e.rules.includes(n))return t<ce.length-2?ue(e,t+1):e;let r=[...e.rules],i=0;for(;i<r.length-2;){if(le(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,ue({rules:r.slice(i)},t+1));break}else r.splice(i,e-i,ue({rules:r.slice(i,e)},t+1))}return{...e,rules:r}},z=e=>{if(L(e))return e;let t=ue(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}},de=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(de(a)):r.push(a),t&&n<i-1&&r.push(t)}return{...n,rules:r}};function fe(e){return R(e)?z(e):de(e)}const pe=e=>{let t={},n=e=>{e.id&&t[e.id]},r=e=>{let i=[];if(e.rules.length===0)i.push(D.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`&&!S.map(e=>e.name).includes(e.rules[n]))&&(t=!0);t&&i.push(D.invalidIndependentCombinators)}L(e)&&!S.map(e=>e.name).includes(e.combinator)&&e.rules.length>1&&i.push(D.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},me=Object.keys,he=Object.entries,ge=e=>e===`__proto__`||e===`constructor`||e===`prototype`,_e=e=>P(e)&&`name`in e&&typeof e.name==`string`,ve=e=>P(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 _e(e)&&!ve(e)?(r.value=e.name,i=!0):!_e(e)&&ve(e)&&(r.name=e.value,i=!0),i?Object.assign({},t,e,r):e}function ye(e,t,n){if(!Array.isArray(e))return[];let r=e;return Ee(r)?r.map(e=>({...e,options:e.options.map(e=>B(e,t,n))})):r.map(e=>B(e,t,n))}function be(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,B(n,t)]))}const xe=e=>Se(e),Se=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},Ce=e=>Array.isArray(e)&&e.length>0&&P(e[0])&&`options`in e[0]&&Array.isArray(e[0].options),we=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(_e(n)||ve(n))t=!0;else return!1;return t},Te=e=>{let t=!1;if(Array.isArray(e))for(let n of e)if(_e(n)&&ve(n))t=!0;else return!1;return t},Ee=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(we(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n},De=(e,{allowEmpty:t=!1}={})=>{let n=!1;if(Array.isArray(e))for(let r of e)if(P(r)&&`options`in r&&(Te(r.options)||t&&Array.isArray(r.options)&&r.options.length===0))n=!0;else return!1;return n};function V(e,t){return(Ee(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(Ee(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 Oe=e=>Se(Ce(e)?e.flatMap(e=>e.options):e),ke=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},Ae=e=>Ee(e)?ke(e):Se(e.map(e=>B(e))),je=e=>{let{optionList:t,baseOption:n={},labelMap:r={},placeholder:{placeholderName:i=`~`,placeholderLabel:a=o,placeholderGroupLabel:s=o}={},autoSelectOption:c=!0}=e,l={id:i,name:i,value:i,label:a},u=t??[l],d,f=Array.isArray(u)?ye(u,n,r):me(be(u,n)).map(e=>({...u[e],name:e,value:e})).sort((e,t)=>e.label.localeCompare(t.label));d=Ee(f)?ke(c?f:[{label:s,options:[l]},...f]):Se(c?f:[l,...f]);let p={};if(!Array.isArray(u)){let e=be(u,n);p=c?e:{...e,[i]:l}}else if(Ee(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}},Me=(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},Ne=(e,t,n)=>{if(!e.comparator){let n=t=>(t.value??t.name)!==(e.value??e.name);return Ee(t)?t.map(e=>({...e,options:e.options.filter(e=>n(e))})):t.filter(e=>n(e))}return Ee(t)?t.map(t=>({...t,options:t.options.filter(t=>Me(e,n,t))})).filter(e=>e.options.length>0):t.filter(t=>Me(e,n,t))},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},Pe=(e,t,n)=>{let r={};for(let i in e){if(ge(i))continue;let a=t[i];a!==!1&&(a&&i!==a?(ge(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(Pe({...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(Pe({...t,...u,...`operator`in t?{operator:o[t.operator]??t.operator}:{}},i,c))})}});return l({...e,...s?null:{path:[]}})}const Fe=e=>P(e)&&typeof e.valid==`boolean`,G=(e,t,n)=>{if(e.muted)return!1;if(typeof t==`boolean`)return t;if(Fe(t))return t.valid;if(typeof n==`function`&&!I(e)){let t=n(e);if(typeof t==`boolean`)return t;if(Fe(t))return t.valid}return!0},Ie=({parseNumbers:e,inputType:t})=>{if(typeof e==`string`){let[n,r]=e.split(`-`);return r===`limited`?t===`number`?n:!1:n}return e?`strict`:!1},Le=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}},Re={"=":`$eq`,"!=":`$ne`,"<":`$lt`,"<=":`$lte`,">":`$gt`,">=":`$gte`,in:`$in`,notin:`$nin`,notIn:`$nin`},ze={"=":`equals`,"!=":`not`,"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`,in:`in`,notin:`notIn`},Be={and:`&&`,or:`||`},Ve={startsWith:(e,t)=>typeof e==`string`&&e.startsWith(t),endsWith:(e,t)=>typeof e==`string`&&e.endsWith(t)},He=(e,t)=>({...e,rules:e.rules.map(e=>{if(typeof e==`string`)return e;if(I(e))return He(e,t);let n=V(t.fields,e.field),r=Ie({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`&&oe.test(e)),Ue=e=>e.length>=3,We=(e=[``,``])=>Array.isArray(e)?e:typeof e==`string`?[e,e]:e??[``,``],Ge=(e,{quoteFieldNamesWith:t,fieldIdentifierSeparator:n})=>{let[r,i]=We(t);return typeof n==`string`&&n.length>0?ne(A(e,n).map(e=>`${r}${e}${i}`),n):`${r}${e}${i}`},Ke=[`S`,`V`,`O`],qe=e=>{let t=[],n=new Set(Ke);for(let r of e.toUpperCase())if(n.has(r)&&(t.push(r),n.delete(r),n.size===0))break;for(let e of Ke)n.has(e)&&t.push(e);return t},Je={groupPrefix:``,groupPrefix_not_xor:`either zero or more than one of`,groupPrefix_xor:`exactly one of`,groupSuffix:`is true`,groupSuffix_not:`is not true`},Ye=(e,t,n)=>t.startsWith(e)&&n.every(e=>t.includes(`_${e}`)&&t.match(/_/g)?.length===n.length),Xe=(e,t,n=[])=>n.length===0?t[e]??Je[e]??``:Object.entries(t).find(([t])=>Ye(e,t,n))?.[1]??Object.entries(Je).find(([t])=>Ye(e,t,n))?.[1]??Je[e]??``,J=e=>{let{mode:t,threshold:n}=e.match??{};if(!t)return null;if(!I(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}},Ze=(e,t)=>typeof t==`bigint`?{$bigint:t.toString()}:t,Qe=(e,t)=>P(t)&&Object.keys(t).length===1&&typeof t.$bigint==`string`?BigInt(t.$bigint):t,$e=(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=Be[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)?` ${Be[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},et=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),tt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),nt=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r,preserveValueOrder:i}=t,{field:a,operator:o,value:s,valueSource:c}=e,l=c===`field`,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=`elem_alias`,o=$e(W(e.value,{ruleProcessor:e=>({...e,field:`${i}${e.field?`.${e.field}`:``}`})}),t);switch(n){case`all`:return`${a}.all(${i}, ${o})`;case`none`:case`some`:return`${n===`none`?`!`:``}${a}.exists(${i}, ${o})`;case`atleast`:case`atmost`:case`exactly`:{let e=`double(${a}.size())`,t=`${a}.filter(${i}, ${o}).size()`,s=n===`atleast`?`>=`:n===`atmost`?`<=`:`==`;return r>0&&r<1?`${t} ${s} (${e} * ${r})`:`${t} ${s} ${r}`}}}switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${a} ${u} ${l||d?j(s):`"${tt(s,n)}"`}`;case`contains`:case`doesnotcontain`:return`${et(u)?`!`:``}${a}.contains(${l?j(s):`"${tt(s,n)}"`})`;case`beginswith`:case`doesnotbeginwith`:return`${et(u)?`!`:``}${a}.startsWith(${l?j(s):`"${tt(s,n)}"`})`;case`endswith`:case`doesnotendwith`:return`${et(u)?`!`:``}${a}.endsWith(${l?j(s):`"${tt(s,n)}"`})`;case`null`:return`${a} == null`;case`notnull`:return`${a} != null`;case`in`:case`notin`:{let[e,t]=et(u)?[`!(`,`)`]:[``,``];return`${e}${a} in [${M(s).map(e=>l||q(e,r)?`${j(e)}`:`"${tt(e,n)}"`).join(`, `)}]${t}`}case`between`:case`notbetween`:{let e=M(s);if(e.length>=2&&!F(e[0])&&!F(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}`:`"${tt(t,n)}"`:c,p=Number.isNaN(d)?l?`${o}`:`"${tt(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})`}else return``}}return``},rt={$and:[{$expr:!0}]},it=(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?rt:!1;let m=`$${N(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}:rt;return e.not?f?{$not:_}:{$nor:[_]}:_};return p(z(e),!0)},at=(e,t,n=!1)=>q(e,n||typeof e==`bigint`)?Number(U(e,{parseNumbers:`strict`})):t,ot=(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=it(W(i,{ruleProcessor:e=>({...e,field:e.field?`${n}.${e.field}`:n})}),{...t,ruleProcessor:ot,context:{...t.context,avoidFieldsAsKeys:!1}}),s=it(W(i,{ruleProcessor:e=>({...e,field:e.field?`$item.${e.field}`:`$item`})}),{...t,ruleProcessor:ot,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`?Re[`>=`]:e===`atmost`?Re[`<=`]:Re[`=`];return r>0&&r<1?{$expr:{[t]:[c,{$multiply:[a,r]}]}}:{$expr:{[t]:[c,r]}}}}}if(r===`=`&&!l)return u?{$eq:[`$${n}`,at(i,i,o)]}:{[n]:at(i,i,o)};let f=N(r);switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:{let e=Re[f];return l?{[e]:[`$${n}`,`$${i}`]}:u?{$and:[{$ne:[`$${n}`,null]},{[e]:[`$${n}`,at(i,i,o)]}]}:{[n]:{[e]:at(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:{[Re.in]:[`$${n}`,e.map(e=>at(e,e,o))]}}:{[Re[f]]:[`$${n}`,e.map(e=>at(e,e,o))]}:{[n]:{[Re[f]]:e.map(e=>at(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=at(t,NaN,!0),a=at(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}}]}}else return``}}return``},st=(e,t)=>{let n=ot(e,t);return n?JSON.stringify(n):``},ct=(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)},lt=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),ut=(e,t)=>t?`!(${e})`:e,dt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),ft=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{escapeQuotes:o,parseNumbers:s,preserveValueOrder:c}=t,l=a===`field`,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=ct(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):`'${dt(i,o)}'`}`;case`contains`:case`doesnotcontain`:return ut(`${n} matches ${l||d?j(i):`'${dt(i,o)}'`}`,lt(u));case`beginswith`:case`doesnotbeginwith`:return ut(`${n} matches ${l?`'^'.concat(${j(i)})`:`'${typeof i==`string`&&!i.startsWith(`^`)||d?`^`:``}${dt(i,o)}'`}`,lt(u));case`endswith`:case`doesnotendwith`:return ut(`${n} matches ${l?`${j(i)}.concat('$')`:`'${dt(i,o)}${typeof i==`string`&&!i.endsWith(`$`)||d?`$`:``}'`}`,lt(u));case`null`:return`${n} == null`;case`notnull`:return`${n} != null`;case`in`:case`notin`:{let e=lt(u)?`!`:``,t=M(i);return t.length>0?`${e}(${t.map(e=>`${n} == ${l||q(e,s)?`${j(e)}`:`'${dt(e,o)}'`}`).join(` or `)})`:``}case`between`:case`notbetween`:{let e=M(i);if(e.length>=2&&!F(e[0])&&!F(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}`:`'${dt(t,o)}'`:a,p=Number.isNaN(d)?l?`${r}`:`'${dt(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})`}else return``}}return``},pt=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,mt=({operator:e,value:t,valueSource:n},{escapeQuotes:r,parseNumbers:i,preserveValueOrder:a,quoteFieldNamesWith:o,quoteValuesWith:s,concatOperator:c=`||`,fieldIdentifierSeparator:l,wrapValueWith:u=[``,``],translations:d}={})=>{let f=n===`field`,p=N(e),m=s||`'`,h=e=>`${u[0]}${m}${e}${m}${u[1]}`,g=e=>pt(e,m,r),_=e=>h(g(e)),v=e=>Ge(e,{quoteFieldNamesWith:o,fieldIdentifierSeparator:l}),y=(...e)=>c.toUpperCase()===`CONCAT`?`CONCAT(${e.join(`, `)})`:e.join(` ${c} `);switch(p){case`null`:case`notnull`:return``;case`in`:case`notin`:{let e=M(t);return e.length>0?`(${e.map(e=>f?v(e):q(e,i)?`${j(e)}`:`${_(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)?f?`${n}`:n:o,l=Number.isNaN(s)?f?`${r}`:r:s,u=[c,l];return!a&&c===o&&l===s&&s<o&&(u[0]=s,u[1]=o),(f?u.map(e=>v(e)):u.every(e=>q(e,i))?u.map(e=>U(e,{parseNumbers:`strict`})):u.map(e=>_(e))).join(` ${d?.betweenAnd??d?.and??`and`} `)}case`contains`:case`doesnotcontain`:return f?y(h(`%`),v(t),h(`%`)):h(`%${g(t)}%`);case`beginswith`:case`doesnotbeginwith`:return f?y(v(t),h(`%`)):h(`${g(t)}%`);case`endswith`:case`doesnotendwith`:return f?y(h(`%`),v(t)):h(`%${g(t)}`)}return typeof t==`boolean`?t?`TRUE`:`FALSE`:f?v(t):q(t,i)?`${j(t)}`:`${_(t)}`},ht={and:`AND`,or:`OR`},gt=(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=ht[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)?` ${ht[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`NOT `:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},_t=(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],k=N(T),ee=D===`field`,te=e=>ee?o[e]:e,A=e=>ee||!r?te(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=`elem_alias`,a=vt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),{...n,context:{...n.context,useRawFields:!0}});switch(t){case`all`:return C`(select count(*) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) = array_length(${O}, 1)`;case`none`:return C`not exists (select 1 from unnest(${O}) as ${C.raw(i)} where ${a({},s)})`;case`some`:return C`exists (select 1 from unnest(${O}) as ${C.raw(i)} where ${a({},s)})`;case`atleast`:case`atmost`:case`exactly`:{let e=t===`atleast`?`>=`:t===`atmost`?`<=`:`=`;return r>0&&r<1?C`(select count(*) / array_length(${O}, 1) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) ${C.raw(`${e} ${r}`)}`:C`(select count(*) from unnest(${O}) as ${C.raw(i)} where ${a({},s)}) ${C.raw(`${e} ${r}`)}`}}}switch(k){case`=`:return u(O,A(E));case`!=`:return y(O,A(E));case`>`:return d(O,A(E));case`<`:return _(O,A(E));case`>=`:return f(O,A(E));case`<=`:return v(O,A(E));case`beginswith`:case`doesnotbeginwith`:return(k===`doesnotbeginwith`?S:g)(O,ee?C`${te(E)} || '%'`:`${E}%`);case`contains`:case`doesnotcontain`:return(k===`doesnotcontain`?S:g)(O,ee?C`'%' || ${te(E)} || '%'`:`%${E}%`);case`endswith`:case`doesnotendwith`:return(k===`doesnotendwith`?S:g)(O,ee?C`'%' || ${te(E)}`:`%${E}`);case`null`:return h(O);case`notnull`:return m(O);case`in`:case`notin`:{let e=M(E).map(e=>A(e));return k===`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(!ee&&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 ee&&(t=te(t),n=te(n));return k===`notbetween`?b(O,t,n):l(O,t,n)}return}default:return}}},vt=(e,t,n)=>(n,r)=>{let{fields:i,getParseNumberBoolean:a,placeholderFieldName:o,placeholderOperatorName:s,placeholderValueName:c,validateRule:l,validationMap:u}=t;if(!n||!r)return;let{and:d,not:f,or:p}=r,m=_t,h=(e,g)=>{if(!G(e,u[e.id??``]))return;let _=e.rules.map(e=>{if(I(e))return h(e);let[u,d]=l(e);if(!G(e,u,d)||e.field===o||e.operator===s||c!==void 0&&e.value===c)return;let f=V(i,e.field);return m(e,{...t,parseNumbers:a(f?.inputType),fieldData:f,context:{...t.context,columns:n,drizzleOperators:r}})}).filter(Boolean);if(_.length===0)return;let v=e.combinator===`or`?p(..._):d(..._);return e.not?f(v):v};return h(z(e),!0)},yt=(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?!1:{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},bt=(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(``)},xt=(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)},St=(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)},Ct=(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)},wt=e=>e.startsWith(`{`)&&e.endsWith(`}`),Tt=(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(I(e)){let t=f(e);return t?(h=!0,wt(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":[${wt(_)?_:`{${_}}`}]`:_},p=f(z(e),!0);return wt(p)?p:`{${p}}`},Et=(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`&&N(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=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?Xe(e,l,[`not`,`xor`]):Xe(e,l,[`not`]):v?Xe(e,l,[`xor`]):Xe(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)},Dt=(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(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}},Ot={},kt=(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?Ot: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}:Ot},d=u(z(e),!0);return e.not?{NOT:d}:d},At=(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]:{[N(p)===`or`?d.or:d.and]:h};return e.not?{[d.not]:g}:g};return f(z(e),!0)},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=Be[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)?` ${Be[e.combinator]} `:` `),[_,v]=e.not||!f?[`${e.not?`!`:``}(`,`)`]:[``,``];return g?`${_}${g}${v}`:r};return d(e,!0)},Mt=(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)},Nt=(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}},Pt=(e,t)=>n=>{let{fields:r,getParseNumberBoolean:i,placeholderFieldName:a,placeholderOperatorName:o,placeholderValueName:s,validateRule:c,validationMap:l,context:u={}}=t,d=u.tanStackDbOperators;if(!d)return;let{and:f,eq:p,not:m,or:h}=d,g=p(1,1),_=Object.keys(n);if(_.length===0)return g;let v=Nt,y=e=>{if(!G(e,l[e.id??``]))return;let d=e.rules.map(e=>{if(I(e))return y(e);let[l,d]=c(e);if(!G(e,l,d)||e.field===a||e.operator===o||s!==void 0&&e.value===s)return;let f=V(r,e.field);return v(e,{...t,parseNumbers:i(f?.inputType),fieldData:f,context:{...u,_tanstackDbRefs:n,_tanstackDbPrimaryRef:_[0]}})}).filter(Boolean);if(d.length===0)return g;let p=d.length===1?d[0]:e.combinator===`or`?h(...d):f(...d);return e.not?m(p):p};return y(z(e))??g},Ft=new Set([`number`,`range`,`bigint`]),It=/^\d{4}-\d{2}-\d{2}$/,Lt=/^\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/,Rt=/^\d{4}-\d{2}$/,zt=/^\d{4}-W\d{2}$/,Bt=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,Vt=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Ht=(e,t,n)=>{let r=new Date(Date.UTC(e,t-1,n));return r.getUTCFullYear()===e&&r.getUTCMonth()===t-1&&r.getUTCDate()===n},Ut=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},Wt=(e,t)=>{if(!(e==null||e===``)){if(Ft.has(t)){let t=typeof e==`string`?e.trim():e;return typeof t==`number`||typeof t==`bigint`||typeof t==`string`&&oe.test(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`date`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!It.test(t))return`VALUE_TYPE_MISMATCH`;let[n,r,i]=t.split(`-`).map(Number);return Ht(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(!It.test(r)||!Lt.test(i))return`VALUE_TYPE_MISMATCH`;let[a,o,s]=r.split(`-`).map(Number);return Ht(a,o,s)&&Ut(i)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`time`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();return Lt.test(t)&&Ut(t)?void 0:`VALUE_TYPE_MISMATCH`}if(t===`month`){if(typeof e!=`string`)return`VALUE_TYPE_MISMATCH`;let t=e.trim();if(!Rt.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(!zt.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`&&Bt.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`&&Vt.test(e.trim())?void 0:`VALUE_TYPE_MISMATCH`}},Gt=(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=Oe(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=qt(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);Kt(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=qt(d)??Jt(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}},Kt=(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`&&Fe(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`&&Fe(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=Wt(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`})}}},qt=e=>{if(typeof e!=`boolean`&&Fe(e)&&!e.valid&&e.reasons)return e.reasons},Jt=(e,t)=>{if(typeof t==`function`){let n=t(e);if(typeof n!=`boolean`&&Fe(n)&&!n.valid&&n.reasons)return n.reasons}},Yt=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),Xt=(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):`'${Yt(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)}`}},Zt={"<":`lt`,"<=":`lte`,">":`gt`,">=":`gte`},Qt=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{bool:{must_not:t}}:t,$t=e=>e?.replace(/('|\\)/g,`\\$1`),en={beginswith:`startsWith`,doesnotbeginwith:`startsWith`,doesnotcontain:`contains`,doesnotendwith:`endsWith`,endswith:`endsWith`},tn=(e,t,n)=>{let r=`doc['${e}'].value.${en[t]??t}(doc['${n}'].value)`;return t.startsWith(`d`)?`!${r}`:r},nn=(e,t)=>typeof e==`boolean`?e:q(e,t)?U(e,{parseNumbers:t}):e,rn=(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=yt(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=$t(n);switch(c){case`=`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:{let t=c===`=`?`==`:c,n=$t(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=$t(i);return t?{bool:{filter:{script:{script:tn(e,c,t)}}}}:!1}}}switch(c){case`<`:case`<=`:case`>`:case`>=`:return{range:{[n]:{[Zt[c]]:nn(i,o)}}};case`=`:return{term:{[n]:nn(i,o)}};case`!=`:return{bool:{must_not:{term:{[n]:nn(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=>nn(e,o));if(e.length>0){let t=e.map(e=>({term:{[n]:nn(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 Qt(c,{range:{[n]:{gte:t,lte:r}}})}return!1}case`contains`:case`doesnotcontain`:return Qt(c,{regexp:{[n]:{value:`.*${i}.*`}}});case`beginswith`:case`doesnotbeginwith`:return Qt(c,{regexp:{[n]:{value:`${i}.*`}}});case`endswith`:case`doesnotendwith`:return Qt(c,{regexp:{[n]:{value:`.*${i}`}}})}return!1},an=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`'`,`\\'`),on=(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):`'${an(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)})`}},sn=e=>e.startsWith(`not`)||e.startsWith(`doesnot`),cn=(e,t)=>`"${typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`)}"`,ln=(e,t)=>t?`$not(${e})`:e,un=e=>`${e}`.replaceAll(/[/$()*+.?[\\\]^{|}]/g,String.raw`\$&`).replaceAll(`-`,String.raw`\x2d`),dn=(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=>Ge(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) {${xt(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):cn(i,o)}`;case`contains`:case`doesnotcontain`:return ln(`$contains(${p(n)}, ${d?p(j(i)):cn(i,o)})`,sn(h));case`beginswith`:case`doesnotbeginwith`:return ln(d?`$substring(${p(n)}, 0, $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /^${un(i)}/)`,sn(h));case`endswith`:case`doesnotendwith`:return ln(d?`$substring(${p(n)}, $length(${p(n)}) - $length(${p(j(i))})) = ${p(j(i))}`:`$contains(${p(n)}, /${un(i)}$/)`,sn(h));case`null`:return`${p(n)} = null`;case`notnull`:return`${p(n)} != null`;case`in`:case`notin`:{let e=M(i);return ln(`${p(n)} in [${e.map(e=>d?`${p(j(e))}`:q(e,s)?`${j(e)}`:cn(e,o)).join(`, `)}]`,sn(h))}case`between`:case`notbetween`:{let e=M(i);if(e.length<2||F(e[0])||F(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:cn(t,o),v=`${p(n)} >= ${_(t,f)} and ${p(n)} <= ${_(r,m)}`;return h===`between`?`(${v})`:ln(v,!0)}}return``},fn=e=>e.replace(/^(=)$/,`$1=`).replace(/^notnull$/i,`!=`).replace(/^null$/i,`==`),pn=(e,t)=>e.startsWith(`not`)||e.startsWith(`doesnot`)?{"!":t}:t,mn=(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])?mn(i.rules[0],t):St(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])?mn(i.rules[0],t):St(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{[fn(f)]:[l,u(i)]};case`null`:case`notnull`:return{[`${f===`notnull`?`!`:`=`}=`]:[l,null]};case`in`:case`notin`:return pn(f,{in:[l,M(i).map(e=>u(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 pn(f,{"<=":[t,l,n]})}return!1}case`contains`:case`doesnotcontain`:return pn(f,{in:[u(i),l]});case`beginswith`:case`doesnotbeginwith`:return pn(f,{startsWith:[l,u(i)]});case`endswith`:case`doesnotendwith`:return pn(f,{endsWith:[l,u(i)]})}return!1},hn=(e,t)=>t?`(!${e})`:`${e}`,gn=e=>`${j(e)}`.replaceAll(/[()&|=<>~*\\/]/g,e=>`\\${e.codePointAt(0).toString(16)}`),_n=(e,t={})=>{let{field:n,operator:r,value:i,valueSource:a}=e,{preserveValueOrder:o}=t,s=N(r);if(a===`field`||F(i)&&s!==`null`&&s!==`notnull`||J(e))return``;switch(s){case`=`:case`!=`:return hn(`(${n}=${gn(i)})`,s===`!=`);case`>`:case`>=`:return`(${n}>=${gn(i)})`;case`<`:case`<=`:return`(${n}<=${gn(i)})`;case`contains`:case`doesnotcontain`:return hn(`(${n}=*${gn(i)}*)`,s===`doesnotcontain`);case`beginswith`:case`doesnotbeginwith`:return hn(`(${n}=${gn(i)}*)`,s===`doesnotbeginwith`);case`endswith`:case`doesnotendwith`:return hn(`(${n}=*${gn(i)})`,s===`doesnotendwith`);case`null`:case`notnull`:return hn(`(${n}=*)`,s===`notnull`);case`in`:case`notin`:return hn(`(|${M(i).map(e=>`(${n}=${gn(e)})`).join(``)})`,s===`notin`);case`between`:case`notbetween`:{let e=M(i);if(e.length<2||F(e[0])||F(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 hn(`(&(${n}>=${gn(l)})(${n}<=${gn(u)}))`,s===`notbetween`)}}return``},vn=(e,t,n)=>n&&typeof e==`string`?e.replaceAll(`${t}`,`${t}${t}`):e,yn=(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=>vn(e,d,n),m=e=>f(p(e)),h=e=>Ge(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 mt(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])?``:mt({...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)}`},bn={"=":[`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`]},xn=()=>[],Sn=(e,t={})=>{let{field:n,operator:r,valueSource:i=`value`}=e,{getOperators:a=xn,operatorMap:o=bn}=t,s=new Map(Object.entries(bn));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(ye(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`)]},Cn=(e,t)=>{let{field:n,operator:r}=e,{fieldData:i,quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:o=``,quoteValuesWith:s=`'`,operatorProcessor:c=Sn,valueProcessor:l=yn,concatOperator:u=`||`,wordOrder:d=`SVO`}=t??{},f=Ge(i?.label??n,{quoteFieldNamesWith:a,fieldIdentifierSeparator:o}),p=J(e);if(p===!1)return``;if(p){let{mode:n,threshold:r}=p,a=Et(e.value,{...t,fields:ye(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=qe(d).filter(e=>g[e]!==``);return y.map((e,t)=>`${g[e]}${t<y.length-1?v[e]:``}`).join(``).trim()},wn=e=>N(Le(e.operator)),Tn=(e,t={})=>{let{quoteFieldNamesWith:n=[``,``],fieldIdentifierSeparator:r=``,quoteValuesWith:i=`'`,operatorProcessor:a=wn,valueProcessor:o=mt,concatOperator:s=`||`}=t,c=e=>Ge(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=`elem_alias`,a=Mt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),t);switch(n){case`all`:return`(select count(*) from unnest(${l}) as ${c(i)} where ${a}) = array_length(${l}, 1)`;case`none`:return`not exists (select 1 from unnest(${l}) as ${c(i)} where ${a})`;case`some`:return`exists (select 1 from unnest(${l}) as ${c(i)} where ${a})`;case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return`(select count(*)${r>0&&r<1?` / array_length(${l}, 1)`:``} from unnest(${l}) as ${c(i)} where ${a}) ${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()},En=(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=wn,valueProcessor:m=mt}=t??{},{processedParams:h=[]}=n??{},g=i===`parameterized`,_=[],v={},y=e=>g?{sql:e,params:_}:{sql:e,params:v},b=e=>Ge(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=`elem_alias`,{sql:a,params:o}=Dt(W(e.value,{ruleProcessor:e=>({...e,field:i})}),{...t,fields:[]});switch(Array.isArray(o)?_.push(...o):Object.assign(v,o),n){case`all`:return y(`(select count(*) from unnest(${x}) as ${b(i)} where ${a}) = array_length(${x}, 1)`);case`none`:return y(`not exists (select 1 from unnest(${x}) as ${b(i)} where ${a})`);case`some`:return y(`exists (select 1 from unnest(${x}) as ${b(i)} where ${a})`);case`atleast`:case`atmost`:case`exactly`:{let e=n===`atleast`?`>=`:n===`atmost`?`<=`:`=`;return y(`(select count(*)${r>0&&r<1?` / array_length(${x}, 1)`:``} from unnest(${x}) as ${b(i)} where ${a}) ${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===`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(`, `)})`)}else 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 k=``;return g?_.push(O):(k=a(e.field),v[`${c?s:``}${k}`]=O),y(`${E}${e.field}${D} ${w} ${g?l?`${s}${h.length+1}`:`?`:`${s}${k}`}`.trim())},Dn=(e,t,n)=>q(e,!!n||typeof e==`bigint`)?Number(U(e,{parseNumbers:!!n})):t,On=(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]:Dn(i,i,o)};case`!=`:case`<`:case`<=`:case`>`:case`>=`:{let e=ze[c];return{[n]:{[e]:Dn(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]:{[ze[c]]:e.map(e=>Dn(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}}]}}else return``}}return``},kn=(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}}}}},An=(e,t)=>typeof e!=`string`||!t?`${e}`:e.replaceAll(`"`,`\\"`),jn=e=>/^[?<]/.test(e)||e.includes(`:`)?e:`?${e}`,Mn=(e,t={})=>{let{escapeQuotes:n,parseNumbers:r}=t,{field:i,operator:a,value:o,valueSource:s}=e,c=s===`field`,l=a.toLowerCase(),u=jn(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 jn(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:`"${An(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)}`}},Nn={ansi:{},sqlite:{paramsKeepPrefix:!0},oracle:{},mssql:{concatOperator:`+`,quoteFieldNamesWith:[`[`,`]`],fieldIdentifierSeparator:`.`,paramPrefix:`@`},mysql:{concatOperator:`CONCAT`},postgresql:{quoteFieldNamesWith:`"`,numberedParams:!0,paramPrefix:`$`}},Pn={...Nn},Fn={cel:nt,drizzle:_t,elasticsearch:rn,json_without_ids:Tn,json:Tn,jsonata:dn,jsonlogic:mn,ldap:_n,mongodb_query:ot,mongodb:st,natural_language:Cn,parameterized_named:En,parameterized:En,prisma:On,sequelize:kn,spel:ft,sql:Tn,tanstack_db:Nt,cypher:Xt,gql:Xt,sparql:Mn,gremlin:on,diagnostics:Tn},Y=e=>e.operator,In={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:Sn,parameterized_named:wn,parameterized:wn,prisma:Y,sequelize:Y,spel:Y,sql:wn,tanstack_db:Y,cypher:Y,gql:Y,sparql:Y,gremlin:Y,diagnostics:Y},Ln={cel:`1 == 1`,ldap:``,mongodb:`"$and":[{"$expr":true}]`,natural_language:`1 is 1`,sparql:`1 = 1`,gremlin:``,spel:`1 == 1`,sql:`(1 = 1)`},Rn={format:`json`,fields:[],quoteFieldNamesWith:[``,``],fieldIdentifierSeparator:``,getOperators:()=>[],paramPrefix:`:`,paramsKeepPrefix:!1,numberedParams:!1,preserveValueOrder:!1,placeholderFieldName:`~`,placeholderOperatorName:`~`,quoteValuesWith:`'`,concatOperator:`||`,preset:`ansi`,wordOrder:`SVO`,translations:{},operatorMap:{}},zn=new Set([`cel`,`drizzle`,`elasticsearch`,`jsonata`,`jsonlogic`,`ldap`,`mongodb_query`,`mongodb`,`prisma`,`sequelize`,`spel`,`tanstack_db`]),Bn=new Set([`sql`,`parameterized`,`parameterized_named`,`drizzle`,`prisma`,`sequelize`]);function Vn(e,t={}){let n=typeof t==`string`?{format:N(t)}:t,r={...Rn,...!n.format||Bn.has(n.format)?Nn[n.preset??`ansi`]??null:null,...n,...!n.format&&(Object.keys(Nn).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 Ie({parseNumbers:c,inputType:e})==`string`?!0:typeof c==`boolean`?c:void 0,g=typeof s==`function`?s:In[i]??Y,_=typeof p==`function`?Ue(p)?e=>p(e.field,e.operator,e.value,e.valueSource):p:i===`natural_language`?yn:zn.has(i)?d??Fn[i]:mt,v=(typeof d==`function`?d:null)??(zn.has(i)&&typeof d!=`function`&&p?_:null)??Fn[i]??Tn,y=We(l),b=ye(r.fields),x=(e,t)=>ye(o(e,t)??[]),S=a??Ln[i]??Ln.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`?rt:i===`prisma`?Ot:i===`jsonlogic`?!1:i===`elasticsearch`?{}:i===`drizzle`||i===`sequelize`||i===`tanstack_db`?void 0:S}else C=t}let w={},T=Oe(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)}}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?He(e,D):e;return i===`json_without_ids`?JSON.stringify(t,(e,t)=>e===`id`||e===`path`?void 0:Ze(e,t)):JSON.stringify(t,Ze,2)}case`sql`:return Mt(e,D);case`parameterized`:case`parameterized_named`:return Dt(e,D);case`mongodb`:return Tt(e,D);case`mongodb_query`:return it(e,D);case`cel`:return $e(e,D);case`spel`:return ct(e,D);case`jsonata`:return xt(e,D);case`jsonlogic`:return St(e,D);case`elasticsearch`:return yt(e,D);case`natural_language`:return Et(e,D);case`ldap`:return Ct(e,D);case`prisma`:return kt(e,D);case`drizzle`:return vt(e,D);case`tanstack_db`:return Pt(e,D);case`sequelize`:return At(e,D);case`cypher`:case`gql`:return gt(e,D);case`sparql`:return jt(e,D);case`gremlin`:return bt(e,D);case`diagnostics`:return Gt(e,D);default:return``}}const Hn=e=>(t,n,r,i)=>e({field:t,operator:n,value:r,valueSource:i},{parseNumbers:!1}),Un=Hn(mt),Wn=Hn(st),Gn=Hn(nt),Kn=Hn(ft),qn=nt,Jn=st,Yn=ft,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},Xn=(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=Xn(e,n);if(t)return t}}return null},Zn=(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=Zn(e,r);if(Array.isArray(t))return[Number.parseInt(n),...t]}return null},Z=e=>e.slice(0,-1),Qn=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),$n=(e,t)=>e.length<t.length&&RegExp(`^${e.join(`-`)}`).test(t.join(`-`)),er=(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},tr=(e,t)=>{let n=!!t.disabled,r=t,i=0;for(;i<e.length&&!n&&I(r);){let t=r.rules[e[i]];P(t)&&(I(t)||`field`in t&&t.field)&&(n=!!t.disabled,r=t),i++}return n},nr=e=>Qn([],e.path)?`Query builder`:`Rule group at path ${e.path.join(`-`)}`,rr=globalThis.crypto,ir=/^[\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(rr){if(typeof rr.randomUUID==`function`)Q=()=>rr.randomUUID();else if(typeof rr.getRandomValues==`function`){let e=new Uint32Array(32);Q=()=>{rr.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 ar={name:`name`,value:`name`,matchModes:null,label:`label`},or=(e,t)=>{let n=e?B(e):ar,r=n.matchModes??!1;return!r&&t&&(r=t(n.value,{fieldData:n})),r===!0?w:r===!1?[]:we(r)?ye(r):r?.map(e=>w.find(t=>t.value===N(e))??{name:e,value:e,label:e})??[]},sr=e=>{let t=typeof e==`boolean`?e:typeof e==`object`&&e?e.valid:null;return typeof t==`boolean`?t?T.valid:T.invalid:``},cr=[{name:`value`,value:`value`,label:`value`}],lr={name:`name`,value:`name`,valueSources:null,label:`label`},ur=(e,t,n)=>{let r=e?B(e):lr,i=r.valueSources??!1;return typeof i==`function`&&(i=i(t)),!i&&n&&(i=n(r.value,t,{fieldData:r})),i?we(i)?ye(i):i.map(e=>cr.find(t=>t.value===N(e))??{name:e,value:e,label:e}):cr},dr=(e,...t)=>{let n={...e};for(let e of t)if(e)for(let t of me(e))ge(t)||(n[t]?n[t]={...n[t],...e[t]}:n[t]={...e[t]});return n},fr=(e,t,n)=>{if(ge(e))return;let r=he(t).map(([t,[r,i]])=>[t,r??i??n?.[e]?.[t]]).filter(e=>!ge(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)=>ae(t.map(t=>ae(t?.[e]))),pr=(...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),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)}),mr=(e,t)=>e===!1?!1:e?!0:t!==!1,hr=(e,t)=>e?!0:e===!1?!1:!!t,gr=(e,t,n,r)=>r?t??n:e?mr(t,n):hr(t,n),_r=(e,t,n)=>t!==void 0&&t!=null?t:n!==void 0&&n!=null?n:e,vr=(e={},t={},n)=>he(te).reduce((r,[i,a])=>(r[i]=gr(a,e[i],t[i],!n),r),{}),yr=(e,{idGenerator:t=Q}={})=>{let n=!e.id,r=J(e);return!n&&!r?e:{...e,...n&&{id:t()},...r&&{value:br(e.value,{idGenerator:t})}}},br=(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)?br(a,{idGenerator:t}):yr(a,{idGenerator:t});i.push(e),e!==a&&(r=!0)}}return!n&&!r?e:{...e,...n&&{id:t()},rules:i}},xr=(e,{idGenerator:t=Q}={})=>I(e)?br(e,{idGenerator:t}):yr(e,{idGenerator:t}),Sr=(e,{idGenerator:t=Q}={})=>structuredClone({...e,id:t()}),Cr=(e,{idGenerator:t=Q}={})=>{if(!P(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)?Cr(e,{idGenerator:t}):Sr(e,{idGenerator:t}))),n},wr=(e,t,n,r={})=>i(e,e=>Tr(e,t,n,r)),Tr=(e,t,n,r={})=>{let{combinators:i=S,combinatorPreceding:a,idGenerator:o=Q}=r,s=Array.isArray(n)?X(n,e):Xn(n,e);if(!s||!I(s))return e;if(R(s)&&s.rules.length>0){let e=s.rules.at(-2);s.rules.push(a??(typeof e==`string`?e:H(i)))}return s.rules.push(xr(t,{idGenerator:o})),e},Er=(e,t,n,r,a={})=>i(e,e=>Dr(e,t,n,r,a)),Dr=(e,t,n,r,i={})=>{let{resetOnFieldChange:a=!0,resetOnOperatorChange:o=!1,getRuleDefaultOperator:s=()=>`=`,getValueSources:c=()=>[`value`],getRuleDefaultValue:l=()=>``,getMatchModes:u=()=>[]}=i,d=a,f=Array.isArray(r)?r:Zn(r,e);if(!f)return e;if(t===`combinator`&&!L(e)){let t=X(Z(f),e).rules;return f.at(-1)%2==1&&(t[f.at(-1)]=n),e}let p=X(f,e);if(!p)return e;let m=I(p);if(p[t]===n||(t!==`valueSource`&&(p[t]=n),m))return e;let h=!1,g=!1;if(t===`field`){let e=u(p.field),t=u(n);if(t.length===0)delete p.match;else{let e=p.match?.mode&&V(t,p.match.mode)?null:H(t);e&&(p.match={mode:e,threshold:1})}(e.length>0||t.length>0)&&(d=!0)}d&&t===`field`&&(p.operator=s(n),h=!0,g=!0),o&&t===`operator`&&(h=!0,g=!0);let _=H(ur({name:p.field,value:p.field,label:``},p.operator,c));return(h&&p.valueSource&&_!==p.valueSource||t===`valueSource`&&n!==p.valueSource)&&(g=!!p.valueSource||!p.valueSource&&n!==_,p.valueSource=h?_:n),g&&(p.value=l(p)),e},Or=(e,t)=>i(e,e=>kr(e,t)),kr=(e,t)=>{let n=Array.isArray(t)?t:Zn(t,e);if(!n||n.length===0||!L(e)&&!X(n,e))return e;let r=n.at(-1),i=X(Z(n),e);if(i&&I(i))if(!L(i)&&i.rules.length>1){let e=r===0?0:r-1;i.rules.splice(e,2)}else i.rules.splice(r,1);return e},Ar=(e,t,n)=>{if(Array.isArray(n))return n;let r=R(e);if(n===`up`){if(Qn(t,[0]))return t;if(t.at(-1)===0){let e=Z(t);return[...Z(e),Math.max(0,e.at(-1)-+!!r)]}else{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))]}}else if(n===`down`){if(Qn([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]}else{let n=[...Z(t),t.at(-1)+(r?2:1)];return I(X(n,e))?[...n,0]:[...Z(t),t.at(-1)+(r?3:2)]}}return t},jr=(e,t,n,r={})=>i(e,e=>Mr(e,t,n,r)),Mr=(e,t,i,a={})=>{let{clone:o=!1,combinators:s=S,idGenerator:c=Q}=a,l=Array.isArray(t)?t:Zn(t,e);if(!l)return e;let u=Ar(e,l,i);if(l.length===0||Qn(l,u)||!X(Z(u),e))return e;let d=X(l,e);if(!d)return e;let f=o?Cr(r(d)?n(d):d,{idGenerator:c}):d,p=R(e),m=X(Z(l),e),h=l.at(-1),g=p&&h>0?m.rules[h-1]:null,_=p&&h<m.rules.length-1?m.rules[h+1]:null;if(!o){let e=p?Math.max(0,h-1):h,t=p?2:1;m.rules.splice(e,t)}let v=[...u],y=er(l,u);!o&&l.length===y.length+1&&u[y.length]>l[y.length]&&(v[y.length]-=p?2:1);let b=X(Z(v),e),x=v.at(-1),C=(...e)=>b.rules.splice(x,0,...e);return b.rules.length===0||!p?C(f):x===0?h===0&&_?C(f,_):C(f,b.rules[1]??g??H(s)):C(g||(b.rules[x-2]??_??H(s)),f),e},Nr=(e,t,n,r={})=>i(e,e=>Pr(e,t,n,r)),Pr=(e,t,n,r={})=>{let{combinators:i=S,combinatorPreceding:a,combinatorSucceeding:o,idGenerator:s=Q,replace:c=!1}=r,l=X(Z(n),e);if(!l||!I(l))return e;let u=Cr(t,{idGenerator:s}),d=R(e),f=n.at(-1),p=(e,...t)=>l.rules.splice(e,c?t.length:0,...t);if(l.rules.length===0||!d)p(f,u);else if(c&&d)p(f+f%2,u);else if(f===0)u.path?.at(-1)===0&&o?p(f,u,o):p(f,u,l.rules[1]??a??H(i));else{let e=f%2==0?f-1:f;a?p(e,a,u):p(e,l.rules[e-2]??o??H(i),u)}return e},Fr=(e,t,n,r={})=>i(e,e=>Ir(e,t,n,r)),Ir=(e,t,i,a={})=>{let{clone:o=!1,combinators:s=S,idGenerator:c=Q}=a,l=Array.isArray(t)?t:Zn(t,e),u=Array.isArray(i)?i:Zn(i,e);if(!l||!u)return e;let d=Ar(e,l,u);if(l.length===0||Qn(l,d)||!X(Z(d),e))return e;let f=X(l,e),p=X(u,e);if(!f||!p)return e;let m=o?Cr(r(f)?n(f):f,{idGenerator:c}):f,h=R(e),g=X(Z(l),e),_=l.at(-1);if(!o){let e=h?Math.max(0,_-1):_,t=h?2:1;g.rules.splice(e,t)}let v=[...d],y=er(l,d);!o&&l.length===y.length+1&&d[y.length]>l[y.length]&&(v[y.length]-=h?2:1);let b=X(Z(v),e),x=v.at(-1);return b.rules.splice(x,1,xr(h?{rules:[p,H(s),m]}:{combinator:H(s),rules:[p,m]},{idGenerator:c})),e};export{k as LogType,O as TestID,wr as add,Tr as addInPlace,Qe as bigIntJsonParseReviver,Ze as bigIntJsonStringifyReplacer,Be as celCombinatorMap,ae as clsx,z as convertFromIC,fe as convertQuery,de as convertToIC,ht as cypherCombinatorMap,Gn as defaultCELValueProcessor,y as defaultCombinatorLabelMap,S as defaultCombinators,C as defaultCombinatorsExtended,E as defaultControlClassnames,bn as defaultExportOperatorMap,_ as defaultJoinChar,w as defaultMatchModes,Wn as defaultMongoDBValueProcessor,Je as defaultNLTranslations,v as defaultOperatorLabelMap,x as defaultOperatorNegationMap,Sn as defaultOperatorProcessorNL,wn as defaultOperatorProcessorSQL,b as defaultOperators,l as defaultPlaceholderFieldGroupLabel,c as defaultPlaceholderFieldLabel,s as defaultPlaceholderFieldName,o as defaultPlaceholderLabel,a as defaultPlaceholderName,f as defaultPlaceholderOperatorGroupLabel,d as defaultPlaceholderOperatorLabel,u as defaultPlaceholderOperatorName,h as defaultPlaceholderValueGroupLabel,m as defaultPlaceholderValueLabel,p as defaultPlaceholderValueName,$e as defaultRuleGroupProcessorCEL,gt as defaultRuleGroupProcessorCypher,Gt as defaultRuleGroupProcessorDiagnostics,vt as defaultRuleGroupProcessorDrizzle,yt as defaultRuleGroupProcessorElasticSearch,bt as defaultRuleGroupProcessorGremlin,xt as defaultRuleGroupProcessorJSONata,St as defaultRuleGroupProcessorJsonLogic,Ct as defaultRuleGroupProcessorLDAP,Tt as defaultRuleGroupProcessorMongoDB,it as defaultRuleGroupProcessorMongoDBQuery,Et as defaultRuleGroupProcessorNL,Dt as defaultRuleGroupProcessorParameterized,kt as defaultRuleGroupProcessorPrisma,jt as defaultRuleGroupProcessorSPARQL,Mt as defaultRuleGroupProcessorSQL,At as defaultRuleGroupProcessorSequelize,ct as defaultRuleGroupProcessorSpEL,Pt as defaultRuleGroupProcessorTanStackDB,nt as defaultRuleProcessorCEL,Xt as defaultRuleProcessorCypher,_t as defaultRuleProcessorDrizzle,rn as defaultRuleProcessorElasticSearch,on as defaultRuleProcessorGremlin,dn as defaultRuleProcessorJSONata,mn as defaultRuleProcessorJsonLogic,_n as defaultRuleProcessorLDAP,st as defaultRuleProcessorMongoDB,ot as defaultRuleProcessorMongoDBQuery,Cn as defaultRuleProcessorNL,En as defaultRuleProcessorParameterized,On as defaultRuleProcessorPrisma,Mn as defaultRuleProcessorSPARQL,Tn as defaultRuleProcessorSQL,kn as defaultRuleProcessorSequelize,ft as defaultRuleProcessorSpEL,Nt as defaultRuleProcessorTanStackDB,Kn as defaultSpELValueProcessor,g as defaultTranslations,pe as defaultValidator,Un as defaultValueProcessor,mt as defaultValueProcessorByRule,qn as defaultValueProcessorCELByRule,Jn as defaultValueProcessorMongoDBByRule,yn as defaultValueProcessorNL,Yn as defaultValueProcessorSpELByRule,Ne as filterFieldsByComparator,Xn as findID,X as findPath,Vn as formatQuery,Pn as formatQueryOptionPresets,nr as generateAccessibleDescription,Q as generateID,er as getCommonAncestorPath,H as getFirstOption,or as getMatchModesUtil,Xe as getNLTranslataion,V as getOption,Z as getParentPath,Ie as getParseNumberMethod,Zn as getPathOfID,We as getQuoteFieldNamesWithArray,Ge as getQuotedFieldName,sr as getValidationClassNames,ur as getValueSourcesUtil,Fr as group,Ir as groupInPlace,D as groupInvalidReasons,Nr as insert,Pr as insertInPlace,$n as isAncestor,we as isFlexibleOptionArray,Ee as isFlexibleOptionGroupArray,Te as isFullOptionArray,De as isFullOptionGroupArray,Ce as isOptionGroupArray,P as isPojo,I as isRuleGroup,L as isRuleGroupType,R as isRuleGroupTypeIC,G as isRuleOrGroupValid,se as isRuleType,ge as isUnsafeKey,K as isValidValue,Fe as isValidationResult,Ue as isValueProcessorLegacy,ne as joinWith,Ve as jsonLogicAdditionalOperators,N as lc,Le as mapSQLOperator,fr as mergeAnyTranslation,dr as mergeAnyTranslations,pr as mergeClassnames,rt as mongoDbFallback,Re as mongoOperators,jr as move,Mr as moveInPlace,qe as normalizeConstituentWordOrder,re as nullFreeArray,F as nullOrUndefinedOrEmpty,oe as numericRegex,He as numerifyValues,he as objectEntries,me as objectKeys,U as parseNumber,tr as pathIsDisabled,Qn as pathsAreEqual,_r as preferAnyProp,vr as preferFlagProps,gr as preferProp,je as prepareOptionList,yr as prepareRule,br as prepareRuleGroup,xr as prepareRuleOrGroup,Ot as prismaFallback,ze as prismaOperators,J as processMatchMode,te as queryBuilderFlagDefaults,Sr as regenerateID,Cr as regenerateIDs,Or as remove,kr as removeInPlace,ee as rootPath,q as shouldRenderAsNumber,jn as sparqlVar,A as splitBy,Nn as sqlDialectPresets,T as standardClassnames,M as toArray,Oe as toFlatOptionArray,B as toFullOption,ye as toFullOptionList,be as toFullOptionMap,W as transformQuery,j as trimIfString,Se as uniqByIdentifier,xe as uniqByName,ke as uniqOptGroups,Ae as uniqOptList,Er as update,Dr as updateInPlace,ir as uuidV4regex};
2
2
  //# sourceMappingURL=react-querybuilder_core.production.mjs.map