@react-querybuilder/datetime 8.12.0 → 8.14.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 (65) hide show
  1. package/date-fns/package.json +4 -0
  2. package/dayjs/package.json +4 -0
  3. package/dist/cjs/{getDatetimeRuleProcessorSQL-B0uQUU_F.js → getDatetimeRuleProcessorSQL-xGETy1ec.js} +1 -1
  4. package/dist/cjs/{getDatetimeRuleProcessorSQL-B0uQUU_F.js.map → getDatetimeRuleProcessorSQL-xGETy1ec.js.map} +1 -1
  5. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +1 -1
  6. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +1 -1
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +1 -1
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +10 -6
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +1 -1
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +1 -1
  12. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +1 -1
  13. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +1 -1
  14. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +1 -1
  16. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  17. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  18. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +1 -1
  19. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +1 -1
  21. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  22. package/dist/cjs/{types-BF3ibCEu.d.ts → types-B0Eveeq4.d.ts} +104 -103
  23. package/dist/{getDatetimeRuleProcessorSQL-Cf79Th_c.mjs → getDatetimeRuleProcessorSQL-CugqyF_a.mjs} +1 -1
  24. package/dist/{getDatetimeRuleProcessorSQL-Cf79Th_c.mjs.map → getDatetimeRuleProcessorSQL-CugqyF_a.mjs.map} +1 -1
  25. package/dist/{getDatetimeRuleProcessorSQL-DfPnCZiT.js → getDatetimeRuleProcessorSQL-Cxyajj0g.js} +6 -6
  26. package/dist/{getDatetimeRuleProcessorSQL-DfPnCZiT.js.map → getDatetimeRuleProcessorSQL-Cxyajj0g.js.map} +1 -1
  27. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs +2 -0
  28. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs.map +1 -0
  29. package/dist/react-querybuilder_datetime.d.mts +1 -1
  30. package/dist/react-querybuilder_datetime.date-fns.d.mts +1 -1
  31. package/dist/react-querybuilder_datetime.date-fns.mjs +1 -1
  32. package/dist/react-querybuilder_datetime.dayjs.d.mts +1 -1
  33. package/dist/react-querybuilder_datetime.dayjs.mjs +1 -1
  34. package/dist/react-querybuilder_datetime.jsdate.d.mts +1 -1
  35. package/dist/react-querybuilder_datetime.jsdate.mjs +1 -1
  36. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +1 -1
  37. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +1 -1
  38. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +1 -1
  39. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +1 -1
  40. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +1 -1
  41. package/dist/react-querybuilder_datetime.legacy-esm.js +1 -1
  42. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +1 -1
  43. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +1 -1
  44. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +1 -1
  45. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +1 -1
  46. package/dist/react-querybuilder_datetime.luxon.d.mts +1 -1
  47. package/dist/react-querybuilder_datetime.luxon.mjs +1 -1
  48. package/dist/react-querybuilder_datetime.mjs +1 -1
  49. package/dist/react-querybuilder_datetime.production.d.mts +1 -1
  50. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +1 -1
  51. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  52. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +1 -1
  53. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  54. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +1 -1
  55. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  56. package/dist/react-querybuilder_datetime.production.luxon.d.mts +1 -1
  57. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  58. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  59. package/dist/{types-CU16s8jw.d.ts → types-C-P0L9xh.d.mts} +110 -109
  60. package/dist/{types-DNawVAiI.d.mts → types-DuaAB95e.d.ts} +110 -109
  61. package/jsdate/package.json +4 -0
  62. package/luxon/package.json +4 -0
  63. package/package.json +17 -13
  64. package/dist/chunk-DrjzjjTJ.mjs +0 -23
  65. package/dist/chunk-Dv2ph0Ay.js +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"getDatetimeRuleProcessorSQL-DfPnCZiT.js","names":["defaultIsDateField: IsDateFieldFunction","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule"],"sources":["../src/utils.ts","../src/getDatetimeJsonLogicOperations.ts","../src/getDatetimeRuleProcessorCEL.ts","../src/getDatetimeRuleProcessorMongoDBQuery.ts","../src/getDatetimeRuleProcessorNL.ts","../src/getDatetimeRuleProcessorSQL.ts"],"sourcesContent":["import type { RuleProcessor } from 'react-querybuilder';\nimport type { IsDateField, IsDateFieldFunction } from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n","import type { RQBDateTimeLibraryAPI, RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom operations for use with JsonLogic objects generated by\n * {@link datetimeRuleProcessorJsonLogic}.\n */\nexport const getDatetimeJsonLogicOperations = ({\n isAfter,\n isBefore,\n isSame,\n}: RQBDateTimeLibraryAPI): RQBJsonLogicDateTimeOperations => ({\n dateAfter: (a, b) => isAfter(a, b),\n dateBefore: (a, b) => isBefore(a, b),\n dateBetween: (a, b, c) =>\n isSame(b, a) ||\n isSame(b, c) ||\n (isAfter(b, a) && isBefore(b, c)) ||\n (isAfter(b, c) && isBefore(b, a)),\n dateNotBetween: (a, b, c) =>\n !isSame(b, a) &&\n !isSame(b, c) &&\n ((isBefore(a, c) && (isBefore(b, a) || isAfter(b, c))) ||\n (isAfter(a, c) && (isBefore(b, c) || isAfter(b, a)))),\n dateIn: (a, b) => b.some(v => isSame(a, v)),\n dateNotIn: (a, b) => b.every(v => !isSame(a, v)),\n dateNotOn: (a, b) => !isSame(a, b),\n dateOn: (a, b) => isSame(a, b),\n dateOnOrAfter: (a, b) => isAfter(a, b) || isSame(a, b),\n dateOnOrBefore: (a, b) => isBefore(a, b) || isSame(a, b),\n});\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorCEL, lc, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"cel\" format.\n */\nexport const getDatetimeRuleProcessorCEL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorCEL(rule, opts);\n }\n\n const ts = (d: string | Date) => `timestamp(\"${apiFns.toISOString(d)}\")`;\n\n const operatorTL = lc(rule.operator.replace(/^=$/, '=='));\n\n switch (operatorTL) {\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '>':\n case '>=':\n return `${rule.field} ${operatorTL} ${ts(rule.value)}`;\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operatorTL) {\n case 'in':\n case 'notin': {\n if (valueAsDateArray.length === 0) return '';\n const [prefix, suffix] = shouldNegate(operatorTL) ? ['!(', ')'] : ['', ''];\n return `${prefix}${rule.field} in [${valueAsDateArray\n .map(val => ts(val))\n .join(', ')}]${suffix}`;\n }\n\n case 'between':\n case 'notbetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n return operatorTL === 'between'\n ? `(${rule.field} >= ${ts(firstDate)} && ${rule.field} <= ${ts(secondDate)})`\n : `(${rule.field} < ${ts(firstDate)} || ${rule.field} > ${ts(secondDate)})`;\n }\n }\n\n return defaultRuleProcessorCEL(rule, opts);\n };\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorMongoDBQuery, mongoOperators, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"mongodb_query\" format.\n */\nexport const getDatetimeRuleProcessorMongoDBQuery =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { field, operator, value, valueSource } = rule;\n\n if (valueSource === 'field' || !processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n }\n\n if (operator === '=') {\n return { [field]: apiFns.toDate(value) };\n }\n\n switch (operator) {\n case '<':\n case '<=':\n case '!=':\n case '>':\n case '>=':\n return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operator) {\n case 'in':\n case 'notIn':\n return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };\n\n case 'between':\n case 'notBetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first, second) ? [first, second] : [second, first];\n return operator === 'between'\n ? { [field]: { $gte: orderedArray[0], $lte: orderedArray[1] } }\n : {\n $or: [{ [field]: { $lt: orderedArray[0] } }, { [field]: { $gt: orderedArray[1] } }],\n };\n }\n }\n\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n };\n","import type { ExportOperatorMap, RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultOperatorProcessorNL,\n defaultRuleProcessorNL,\n getQuotedFieldName,\n lc,\n normalizeConstituentWordOrder,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\nexport const defaultDateTimeNLOperatorMap: ExportOperatorMap = {\n // '=': 'is',\n // '!=': 'is not',\n '<': 'is before',\n '>': 'is after',\n '<=': 'is on or before',\n '>=': 'is on or after',\n in: ['is one of the dates', 'is the same as a date in'],\n notin: ['is not one of the dates', 'is not the same as any date in'],\n between: ['is between', 'is between the dates in'],\n notbetween: ['is not between', 'is not between the dates in'],\n};\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"natural_language\" format.\n */\nexport const datetimeValueProcessorNL: ValueProcessorByRule = (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n ...opts?.context?.dateFormat,\n }).format(rule.value);\n }\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n timeStyle: 'long',\n ...opts?.context?.dateTimeFormat,\n }).format(rule.value);\n};\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"natural_language\" format.\n */\nexport const getDatetimeRuleProcessorNL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operatorLowerCase = lc(rule.operator);\n let finalValue = '';\n\n // istanbul ignore next\n const {\n fieldData,\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n operatorProcessor = defaultOperatorProcessorNL,\n // valueProcessor = datetimeValueProcessorNL,\n wordOrder = 'SVO',\n context = {},\n operatorMap = defaultDateTimeNLOperatorMap,\n } = opts;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorNL(rule, opts);\n }\n\n if (rule.valueSource === 'field') {\n return defaultRuleProcessorNL(rule, { ...opts, operatorMap: defaultDateTimeNLOperatorMap });\n }\n\n if (\n (operatorLowerCase === 'in' ||\n operatorLowerCase === 'notin' ||\n operatorLowerCase === 'between' ||\n operatorLowerCase === 'notbetween') &&\n !rule.value\n ) {\n return '';\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'notin':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { ...context, originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'notbetween':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n )\n .join(` ${opts.translations?.and ?? 'and'} `);\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = originalValue\n ? datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n : '';\n }\n }\n\n const processedField = getQuotedFieldName(fieldData?.label ?? rule.field, {\n quoteFieldNamesWith,\n fieldIdentifierSeparator,\n });\n\n const processedOperator = operatorProcessor(rule, {\n ...opts,\n operatorMap: { ...defaultDateTimeNLOperatorMap, ...operatorMap },\n });\n\n const wordOrderMap = {\n S: processedField,\n V: processedOperator,\n O: finalValue,\n };\n\n return normalizeConstituentWordOrder(wordOrder)\n .map(term => `${wordOrderMap[term]}`)\n .join(' ')\n .trim();\n };\n","import type { RuleProcessor, SQLPreset, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultRuleProcessorSQL,\n defaultValueProcessorByRule,\n getQuotedFieldName,\n lc,\n mapSQLOperator,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"sql\" format and \"ansi\" preset.\n */\nexport const getDatetimeValueProcessorANSI =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return defaultValueProcessorByRule({ ...rule, value: toISOStringDateOnly(rule.value) }, opts);\n }\n return defaultValueProcessorByRule({ ...rule, value: toISOString(rule.value as Date) }, opts);\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mssql\" preset.\n */\nexport const getDatetimeValueProcessorMSSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:small)?datetime/i.test(opts?.fieldData?.datatype as string)\n ? 'datetimeoffset'\n : 'date';\n const value =\n datatype === 'datetimeoffset' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mysql\" preset.\n */\nexport const getDatetimeValueProcessorMySQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:datetime|timestamp)/i.test(opts?.fieldData?.datatype as string)\n ? 'datetime'\n : 'date';\n const value =\n datatype === 'datetime' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"oracle\" preset.\n */\nexport const getDatetimeValueProcessorOracle =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n // Oracle date format for _reading_ ISO 8601: 'YYYY-MM-DD\"T\"HH24:MI:SS.ff3\"Z\"'\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp'\n ? toISOString(rule.value).replaceAll('T', ' ').replace('Z', ' UTC')\n : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"postgresql\" preset.\n */\nexport const getDatetimeValueProcessorPostgreSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\nconst presetToValueProcessorMap = {\n ansi: getDatetimeValueProcessorANSI,\n mssql: getDatetimeValueProcessorMSSQL,\n mysql: getDatetimeValueProcessorMySQL,\n oracle: getDatetimeValueProcessorOracle,\n postgresql: getDatetimeValueProcessorPostgreSQL,\n sqlite: getDatetimeValueProcessorANSI,\n} satisfies Record<SQLPreset, (apiFns: RQBDateTimeLibraryAPI) => ValueProcessorByRule>;\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format.\n */\nexport const getDatetimeRuleProcessorSQL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operator = mapSQLOperator(rule.operator);\n const operatorLowerCase = lc(operator);\n // istanbul ignore next\n const {\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n context = {},\n } = opts;\n let finalValue = '';\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorSQL(rule, opts);\n }\n\n const valueProcessor = presetToValueProcessorMap[opts.preset!](apiFns);\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'not in':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n valueProcessor(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'not between':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n )\n )\n .join(' and ');\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n );\n }\n }\n\n return `${getQuotedFieldName(rule.field, { quoteFieldNamesWith, fieldIdentifierSeparator })} ${operator} ${finalValue}`.trim();\n };\n"],"mappings":"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"}
1
+ {"version":3,"file":"getDatetimeRuleProcessorSQL-Cxyajj0g.js","names":["defaultIsDateField: IsDateFieldFunction","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule"],"sources":["../src/utils.ts","../src/getDatetimeJsonLogicOperations.ts","../src/getDatetimeRuleProcessorCEL.ts","../src/getDatetimeRuleProcessorMongoDBQuery.ts","../src/getDatetimeRuleProcessorNL.ts","../src/getDatetimeRuleProcessorSQL.ts"],"sourcesContent":["import type { RuleProcessor } from 'react-querybuilder';\nimport type { IsDateField, IsDateFieldFunction } from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n","import type { RQBDateTimeLibraryAPI, RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom operations for use with JsonLogic objects generated by\n * {@link datetimeRuleProcessorJsonLogic}.\n */\nexport const getDatetimeJsonLogicOperations = ({\n isAfter,\n isBefore,\n isSame,\n}: RQBDateTimeLibraryAPI): RQBJsonLogicDateTimeOperations => ({\n dateAfter: (a, b) => isAfter(a, b),\n dateBefore: (a, b) => isBefore(a, b),\n dateBetween: (a, b, c) =>\n isSame(b, a) ||\n isSame(b, c) ||\n (isAfter(b, a) && isBefore(b, c)) ||\n (isAfter(b, c) && isBefore(b, a)),\n dateNotBetween: (a, b, c) =>\n !isSame(b, a) &&\n !isSame(b, c) &&\n ((isBefore(a, c) && (isBefore(b, a) || isAfter(b, c))) ||\n (isAfter(a, c) && (isBefore(b, c) || isAfter(b, a)))),\n dateIn: (a, b) => b.some(v => isSame(a, v)),\n dateNotIn: (a, b) => b.every(v => !isSame(a, v)),\n dateNotOn: (a, b) => !isSame(a, b),\n dateOn: (a, b) => isSame(a, b),\n dateOnOrAfter: (a, b) => isAfter(a, b) || isSame(a, b),\n dateOnOrBefore: (a, b) => isBefore(a, b) || isSame(a, b),\n});\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorCEL, lc, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"cel\" format.\n */\nexport const getDatetimeRuleProcessorCEL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorCEL(rule, opts);\n }\n\n const ts = (d: string | Date) => `timestamp(\"${apiFns.toISOString(d)}\")`;\n\n const operatorTL = lc(rule.operator.replace(/^=$/, '=='));\n\n switch (operatorTL) {\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '>':\n case '>=':\n return `${rule.field} ${operatorTL} ${ts(rule.value)}`;\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operatorTL) {\n case 'in':\n case 'notin': {\n if (valueAsDateArray.length === 0) return '';\n const [prefix, suffix] = shouldNegate(operatorTL) ? ['!(', ')'] : ['', ''];\n return `${prefix}${rule.field} in [${valueAsDateArray\n .map(val => ts(val))\n .join(', ')}]${suffix}`;\n }\n\n case 'between':\n case 'notbetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n return operatorTL === 'between'\n ? `(${rule.field} >= ${ts(firstDate)} && ${rule.field} <= ${ts(secondDate)})`\n : `(${rule.field} < ${ts(firstDate)} || ${rule.field} > ${ts(secondDate)})`;\n }\n }\n\n return defaultRuleProcessorCEL(rule, opts);\n };\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorMongoDBQuery, mongoOperators, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"mongodb_query\" format.\n */\nexport const getDatetimeRuleProcessorMongoDBQuery =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { field, operator, value, valueSource } = rule;\n\n if (valueSource === 'field' || !processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n }\n\n if (operator === '=') {\n return { [field]: apiFns.toDate(value) };\n }\n\n switch (operator) {\n case '<':\n case '<=':\n case '!=':\n case '>':\n case '>=':\n return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operator) {\n case 'in':\n case 'notIn':\n return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };\n\n case 'between':\n case 'notBetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first, second) ? [first, second] : [second, first];\n return operator === 'between'\n ? { [field]: { $gte: orderedArray[0], $lte: orderedArray[1] } }\n : {\n $or: [{ [field]: { $lt: orderedArray[0] } }, { [field]: { $gt: orderedArray[1] } }],\n };\n }\n }\n\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n };\n","import type { ExportOperatorMap, RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultOperatorProcessorNL,\n defaultRuleProcessorNL,\n getQuotedFieldName,\n lc,\n normalizeConstituentWordOrder,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\nexport const defaultDateTimeNLOperatorMap: ExportOperatorMap = {\n // '=': 'is',\n // '!=': 'is not',\n '<': 'is before',\n '>': 'is after',\n '<=': 'is on or before',\n '>=': 'is on or after',\n in: ['is one of the dates', 'is the same as a date in'],\n notin: ['is not one of the dates', 'is not the same as any date in'],\n between: ['is between', 'is between the dates in'],\n notbetween: ['is not between', 'is not between the dates in'],\n};\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"natural_language\" format.\n */\nexport const datetimeValueProcessorNL: ValueProcessorByRule = (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n ...opts?.context?.dateFormat,\n }).format(rule.value);\n }\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n timeStyle: 'long',\n ...opts?.context?.dateTimeFormat,\n }).format(rule.value);\n};\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"natural_language\" format.\n */\nexport const getDatetimeRuleProcessorNL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operatorLowerCase = lc(rule.operator);\n let finalValue = '';\n\n // istanbul ignore next\n const {\n fieldData,\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n operatorProcessor = defaultOperatorProcessorNL,\n // valueProcessor = datetimeValueProcessorNL,\n wordOrder = 'SVO',\n context = {},\n operatorMap = defaultDateTimeNLOperatorMap,\n } = opts;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorNL(rule, opts);\n }\n\n if (rule.valueSource === 'field') {\n return defaultRuleProcessorNL(rule, { ...opts, operatorMap: defaultDateTimeNLOperatorMap });\n }\n\n if (\n (operatorLowerCase === 'in' ||\n operatorLowerCase === 'notin' ||\n operatorLowerCase === 'between' ||\n operatorLowerCase === 'notbetween') &&\n !rule.value\n ) {\n return '';\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'notin':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { ...context, originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'notbetween':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n )\n .join(` ${opts.translations?.and ?? 'and'} `);\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = originalValue\n ? datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n : '';\n }\n }\n\n const processedField = getQuotedFieldName(fieldData?.label ?? rule.field, {\n quoteFieldNamesWith,\n fieldIdentifierSeparator,\n });\n\n const processedOperator = operatorProcessor(rule, {\n ...opts,\n operatorMap: { ...defaultDateTimeNLOperatorMap, ...operatorMap },\n });\n\n const wordOrderMap = {\n S: processedField,\n V: processedOperator,\n O: finalValue,\n };\n\n return normalizeConstituentWordOrder(wordOrder)\n .map(term => `${wordOrderMap[term]}`)\n .join(' ')\n .trim();\n };\n","import type { RuleProcessor, SQLPreset, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultRuleProcessorSQL,\n defaultValueProcessorByRule,\n getQuotedFieldName,\n lc,\n mapSQLOperator,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"sql\" format and \"ansi\" preset.\n */\nexport const getDatetimeValueProcessorANSI =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return defaultValueProcessorByRule({ ...rule, value: toISOStringDateOnly(rule.value) }, opts);\n }\n return defaultValueProcessorByRule({ ...rule, value: toISOString(rule.value as Date) }, opts);\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mssql\" preset.\n */\nexport const getDatetimeValueProcessorMSSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:small)?datetime/i.test(opts?.fieldData?.datatype as string)\n ? 'datetimeoffset'\n : 'date';\n const value =\n datatype === 'datetimeoffset' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mysql\" preset.\n */\nexport const getDatetimeValueProcessorMySQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:datetime|timestamp)/i.test(opts?.fieldData?.datatype as string)\n ? 'datetime'\n : 'date';\n const value =\n datatype === 'datetime' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"oracle\" preset.\n */\nexport const getDatetimeValueProcessorOracle =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n // Oracle date format for _reading_ ISO 8601: 'YYYY-MM-DD\"T\"HH24:MI:SS.ff3\"Z\"'\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp'\n ? toISOString(rule.value).replaceAll('T', ' ').replace('Z', ' UTC')\n : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"postgresql\" preset.\n */\nexport const getDatetimeValueProcessorPostgreSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\nconst presetToValueProcessorMap = {\n ansi: getDatetimeValueProcessorANSI,\n mssql: getDatetimeValueProcessorMSSQL,\n mysql: getDatetimeValueProcessorMySQL,\n oracle: getDatetimeValueProcessorOracle,\n postgresql: getDatetimeValueProcessorPostgreSQL,\n sqlite: getDatetimeValueProcessorANSI,\n} satisfies Record<SQLPreset, (apiFns: RQBDateTimeLibraryAPI) => ValueProcessorByRule>;\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format.\n */\nexport const getDatetimeRuleProcessorSQL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operator = mapSQLOperator(rule.operator);\n const operatorLowerCase = lc(operator);\n // istanbul ignore next\n const {\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n context = {},\n } = opts;\n let finalValue = '';\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorSQL(rule, opts);\n }\n\n const valueProcessor = presetToValueProcessorMap[opts.preset!](apiFns);\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'not in':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n valueProcessor(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'not between':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n )\n )\n .join(' and ');\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n );\n }\n }\n\n return `${getQuotedFieldName(rule.field, { quoteFieldNamesWith, fieldIdentifierSeparator })} ${operator} ${finalValue}`.trim();\n };\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{defaultOperatorProcessorNL as e,defaultRuleProcessorCEL as t,defaultRuleProcessorMongoDBQuery as n,defaultRuleProcessorNL as r,defaultRuleProcessorSQL as i,defaultValueProcessorByRule as a,getQuotedFieldName as o,lc as s,mapSQLOperator as c,mongoOperators as l,normalizeConstituentWordOrder as u,toArray as d}from"react-querybuilder";const f=e=>typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e),p=(...[e,t])=>e.operator!==`contains`&&e.operator!==`beginsWith`&&e.operator!==`endsWith`&&e.operator!==`doesNotContain`&&e.operator!==`doesNotBeginWith`&&e.operator!==`doesNotEndWith`&&e.operator!==`null`&&e.operator!==`notNull`&&/^(?:date|datetime|datetimeoffset|timestamp)\b/i.test(t?.fieldData?.datatype),m=(e,...[t,n])=>typeof e==`boolean`?e:typeof e==`function`?e(t,n):Array.isArray(e)?e.some(e=>Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t)):typeof e==`object`?Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t):p(t,n),h=({isAfter:e,isBefore:t,isSame:n})=>({dateAfter:(t,n)=>e(t,n),dateBefore:(e,n)=>t(e,n),dateBetween:(r,i,a)=>n(i,r)||n(i,a)||e(i,r)&&t(i,a)||e(i,a)&&t(i,r),dateNotBetween:(r,i,a)=>!n(i,r)&&!n(i,a)&&(t(r,a)&&(t(i,r)||e(i,a))||e(r,a)&&(t(i,a)||e(i,r))),dateIn:(e,t)=>t.some(t=>n(e,t)),dateNotIn:(e,t)=>t.every(t=>!n(e,t)),dateNotOn:(e,t)=>!n(e,t),dateOn:(e,t)=>n(e,t),dateOnOrAfter:(t,r)=>e(t,r)||n(t,r),dateOnOrBefore:(e,r)=>t(e,r)||n(e,r)}),g=e=>/^(does)?not/i.test(e),_=e=>(n,r)=>{let i=r??{},{context:a={}}=i;if(n.valueSource===`field`||!m(a.isDateField,n,i))return t(n,i);let o=t=>`timestamp("${e.toISOString(t)}")`,c=s(n.operator.replace(/^=$/,`==`));switch(c){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${n.field} ${c} ${o(n.value)}`}let l=d(n.value,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(c){case`in`:case`notin`:{if(l.length===0)return``;let[e,t]=g(c)?[`!(`,`)`]:[``,``];return`${e}${n.field} in [${l.map(e=>o(e)).join(`, `)}]${t}`}case`between`:case`notbetween`:{if(l.length<2)return``;let[t,r]=l,[i,a]=e.isBefore(t,r)?[t,r]:[r,t];return c===`between`?`(${n.field} >= ${o(i)} && ${n.field} <= ${o(a)})`:`(${n.field} < ${o(i)} || ${n.field} > ${o(a)})`}}return t(n,i)},v=e=>(t,r)=>{let i=r??{},{field:a,operator:o,value:s,valueSource:c}=t;if(c===`field`||!m(i.context?.isDateField,t,i))return n(t,i);if(o===`=`)return{[a]:e.toDate(s)};switch(o){case`<`:case`<=`:case`!=`:case`>`:case`>=`:return{[a]:{[l[o]]:e.toDate(s)}}}let u=d(t.value,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(o){case`in`:case`notIn`:return{[a]:{[l[o]]:u}};case`between`:case`notBetween`:{if(u.length<2)return``;let[t,n]=u,r=e.isBefore(t,n)?[t,n]:[n,t];return o===`between`?{[a]:{$gte:r[0],$lte:r[1]}}:{$or:[{[a]:{$lt:r[0]}},{[a]:{$gt:r[1]}}]}}}return n(t,i)},y={"<":`is before`,">":`is after`,"<=":`is on or before`,">=":`is on or after`,in:[`is one of the dates`,`is the same as a date in`],notin:[`is not one of the dates`,`is not the same as any date in`],between:[`is between`,`is between the dates in`],notbetween:[`is not between`,`is not between the dates in`]},b=(e,t)=>f(t?.context?.originalValue)?new Intl.DateTimeFormat(t?.context?.locales,{dateStyle:`full`,...t?.context?.dateFormat}).format(e.value):new Intl.DateTimeFormat(t?.context?.locales,{dateStyle:`full`,timeStyle:`long`,...t?.context?.dateTimeFormat}).format(e.value),x=t=>(n,i)=>{let a=i??{},c=s(n.operator),l=``,{fieldData:f,quoteFieldNamesWith:p=[``,``],fieldIdentifierSeparator:h=``,operatorProcessor:g=e,wordOrder:_=`SVO`,context:v={},operatorMap:x=y}=a;if(!m(v.isDateField,n,a))return r(n,a);if(n.valueSource===`field`)return r(n,{...a,operatorMap:y});if((c===`in`||c===`notin`||c===`between`||c===`notbetween`)&&!n.value)return``;let S=d(n.value,{retainEmptyStrings:!1}).map(e=>[e,t.toDate(e)]).filter(e=>t.isValid(e[1]));switch(c){case`in`:case`notin`:if(S.length===0)return``;l=`(${S.map(e=>b({field:n.field,operator:`=`,value:e[1]},{...a,context:{...v,originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`notbetween`:{if(S.length<2)return``;let[e,r]=S;l=(t.isBefore(e[1],r[1])?[e,r]:[r,e]).map(([e,t])=>b({field:n.field,operator:`=`,value:t},{...a,context:{...v,originalValue:e}})).join(` ${a.translations?.and??`and`} `)}break;default:{let[e,t]=S[0]??[``,``];l=e?b({field:n.field,operator:`=`,value:t},{...a,context:{...v,originalValue:e}}):``}}let C={S:o(f?.label??n.field,{quoteFieldNamesWith:p,fieldIdentifierSeparator:h}),V:g(n,{...a,operatorMap:{...y,...x}}),O:l};return u(_).map(e=>`${C[e]}`).join(` `).trim()},S=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>f(r?.context?.originalValue)?a({...n,value:e(n.value)},r):a({...n,value:t(n.value)},r),C=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^(?:small)?datetime/i.test(r?.fieldData?.datatype)?`datetimeoffset`:`date`,o=i===`datetimeoffset`?t(n.value):e(n.value);return a({...n,value:o},{...r,wrapValueWith:[`cast(`,` as ${i})`]})},w=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^(?:datetime|timestamp)/i.test(r?.fieldData?.datatype)?`datetime`:`date`,o=i===`datetime`?t(n.value):e(n.value);return a({...n,value:o},{...r,wrapValueWith:[`cast(`,` as ${i})`]})},T=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^timestamp/i.test(r?.fieldData?.datatype)?`timestamp`:`date`,o=i===`timestamp`?t(n.value).replaceAll(`T`,` `).replace(`Z`,` UTC`):e(n.value);return a({...n,value:o},{...r,wrapValueWith:[i,``]})},E=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^timestamp/i.test(r?.fieldData?.datatype)?`timestamp`:`date`,o=i===`timestamp`?t(n.value):e(n.value);return a({...n,value:o},{...r,wrapValueWith:[i,``]})},D={ansi:S,mssql:C,mysql:w,oracle:T,postgresql:E,sqlite:S},O=e=>(t,n)=>{let r=n??{},a=c(t.operator),l=s(a),{quoteFieldNamesWith:u=[``,``],fieldIdentifierSeparator:f=``,context:p={}}=r,h=``;if(t.valueSource===`field`||!m(p.isDateField,t,r))return i(t,r);let g=D[r.preset](e),_=d(t.value,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(t=>e.isValid(t[1]));switch(l){case`in`:case`not in`:if(_.length===0)return``;h=`(${_.map(e=>g({field:t.field,operator:`=`,value:e[1]},{...r,context:{originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`not between`:{if(_.length<2)return``;let[n,i]=_;h=(e.isBefore(n[1],i[1])?[n,i]:[i,n]).map(([e,n])=>g({field:t.field,operator:`=`,value:n},{...r,context:{originalValue:e}})).join(` and `)}break;default:{let[e,n]=_[0]??[``,``];h=g({field:t.field,operator:`=`,value:n},{...r,context:{originalValue:e}})}}return`${o(t.field,{quoteFieldNamesWith:u,fieldIdentifierSeparator:f})} ${a} ${h}`.trim()};export{T as a,y as c,_ as d,h as f,w as i,x as l,m,S as n,E as o,f as p,C as r,b as s,O as t,v as u};
2
+ //# sourceMappingURL=getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs","names":["defaultIsDateField: IsDateFieldFunction","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule"],"sources":["../src/utils.ts","../src/getDatetimeJsonLogicOperations.ts","../src/getDatetimeRuleProcessorCEL.ts","../src/getDatetimeRuleProcessorMongoDBQuery.ts","../src/getDatetimeRuleProcessorNL.ts","../src/getDatetimeRuleProcessorSQL.ts"],"sourcesContent":["import type { RuleProcessor } from 'react-querybuilder';\nimport type { IsDateField, IsDateFieldFunction } from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n","import type { RQBDateTimeLibraryAPI, RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom operations for use with JsonLogic objects generated by\n * {@link datetimeRuleProcessorJsonLogic}.\n */\nexport const getDatetimeJsonLogicOperations = ({\n isAfter,\n isBefore,\n isSame,\n}: RQBDateTimeLibraryAPI): RQBJsonLogicDateTimeOperations => ({\n dateAfter: (a, b) => isAfter(a, b),\n dateBefore: (a, b) => isBefore(a, b),\n dateBetween: (a, b, c) =>\n isSame(b, a) ||\n isSame(b, c) ||\n (isAfter(b, a) && isBefore(b, c)) ||\n (isAfter(b, c) && isBefore(b, a)),\n dateNotBetween: (a, b, c) =>\n !isSame(b, a) &&\n !isSame(b, c) &&\n ((isBefore(a, c) && (isBefore(b, a) || isAfter(b, c))) ||\n (isAfter(a, c) && (isBefore(b, c) || isAfter(b, a)))),\n dateIn: (a, b) => b.some(v => isSame(a, v)),\n dateNotIn: (a, b) => b.every(v => !isSame(a, v)),\n dateNotOn: (a, b) => !isSame(a, b),\n dateOn: (a, b) => isSame(a, b),\n dateOnOrAfter: (a, b) => isAfter(a, b) || isSame(a, b),\n dateOnOrBefore: (a, b) => isBefore(a, b) || isSame(a, b),\n});\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorCEL, lc, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"cel\" format.\n */\nexport const getDatetimeRuleProcessorCEL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorCEL(rule, opts);\n }\n\n const ts = (d: string | Date) => `timestamp(\"${apiFns.toISOString(d)}\")`;\n\n const operatorTL = lc(rule.operator.replace(/^=$/, '=='));\n\n switch (operatorTL) {\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '>':\n case '>=':\n return `${rule.field} ${operatorTL} ${ts(rule.value)}`;\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operatorTL) {\n case 'in':\n case 'notin': {\n if (valueAsDateArray.length === 0) return '';\n const [prefix, suffix] = shouldNegate(operatorTL) ? ['!(', ')'] : ['', ''];\n return `${prefix}${rule.field} in [${valueAsDateArray\n .map(val => ts(val))\n .join(', ')}]${suffix}`;\n }\n\n case 'between':\n case 'notbetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n return operatorTL === 'between'\n ? `(${rule.field} >= ${ts(firstDate)} && ${rule.field} <= ${ts(secondDate)})`\n : `(${rule.field} < ${ts(firstDate)} || ${rule.field} > ${ts(secondDate)})`;\n }\n }\n\n return defaultRuleProcessorCEL(rule, opts);\n };\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorMongoDBQuery, mongoOperators, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"mongodb_query\" format.\n */\nexport const getDatetimeRuleProcessorMongoDBQuery =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { field, operator, value, valueSource } = rule;\n\n if (valueSource === 'field' || !processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n }\n\n if (operator === '=') {\n return { [field]: apiFns.toDate(value) };\n }\n\n switch (operator) {\n case '<':\n case '<=':\n case '!=':\n case '>':\n case '>=':\n return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operator) {\n case 'in':\n case 'notIn':\n return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };\n\n case 'between':\n case 'notBetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first, second) ? [first, second] : [second, first];\n return operator === 'between'\n ? { [field]: { $gte: orderedArray[0], $lte: orderedArray[1] } }\n : {\n $or: [{ [field]: { $lt: orderedArray[0] } }, { [field]: { $gt: orderedArray[1] } }],\n };\n }\n }\n\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n };\n","import type { ExportOperatorMap, RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultOperatorProcessorNL,\n defaultRuleProcessorNL,\n getQuotedFieldName,\n lc,\n normalizeConstituentWordOrder,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\nexport const defaultDateTimeNLOperatorMap: ExportOperatorMap = {\n // '=': 'is',\n // '!=': 'is not',\n '<': 'is before',\n '>': 'is after',\n '<=': 'is on or before',\n '>=': 'is on or after',\n in: ['is one of the dates', 'is the same as a date in'],\n notin: ['is not one of the dates', 'is not the same as any date in'],\n between: ['is between', 'is between the dates in'],\n notbetween: ['is not between', 'is not between the dates in'],\n};\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"natural_language\" format.\n */\nexport const datetimeValueProcessorNL: ValueProcessorByRule = (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n ...opts?.context?.dateFormat,\n }).format(rule.value);\n }\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n timeStyle: 'long',\n ...opts?.context?.dateTimeFormat,\n }).format(rule.value);\n};\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"natural_language\" format.\n */\nexport const getDatetimeRuleProcessorNL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operatorLowerCase = lc(rule.operator);\n let finalValue = '';\n\n // istanbul ignore next\n const {\n fieldData,\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n operatorProcessor = defaultOperatorProcessorNL,\n // valueProcessor = datetimeValueProcessorNL,\n wordOrder = 'SVO',\n context = {},\n operatorMap = defaultDateTimeNLOperatorMap,\n } = opts;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorNL(rule, opts);\n }\n\n if (rule.valueSource === 'field') {\n return defaultRuleProcessorNL(rule, { ...opts, operatorMap: defaultDateTimeNLOperatorMap });\n }\n\n if (\n (operatorLowerCase === 'in' ||\n operatorLowerCase === 'notin' ||\n operatorLowerCase === 'between' ||\n operatorLowerCase === 'notbetween') &&\n !rule.value\n ) {\n return '';\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'notin':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { ...context, originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'notbetween':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n )\n .join(` ${opts.translations?.and ?? 'and'} `);\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = originalValue\n ? datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n : '';\n }\n }\n\n const processedField = getQuotedFieldName(fieldData?.label ?? rule.field, {\n quoteFieldNamesWith,\n fieldIdentifierSeparator,\n });\n\n const processedOperator = operatorProcessor(rule, {\n ...opts,\n operatorMap: { ...defaultDateTimeNLOperatorMap, ...operatorMap },\n });\n\n const wordOrderMap = {\n S: processedField,\n V: processedOperator,\n O: finalValue,\n };\n\n return normalizeConstituentWordOrder(wordOrder)\n .map(term => `${wordOrderMap[term]}`)\n .join(' ')\n .trim();\n };\n","import type { RuleProcessor, SQLPreset, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultRuleProcessorSQL,\n defaultValueProcessorByRule,\n getQuotedFieldName,\n lc,\n mapSQLOperator,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"sql\" format and \"ansi\" preset.\n */\nexport const getDatetimeValueProcessorANSI =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return defaultValueProcessorByRule({ ...rule, value: toISOStringDateOnly(rule.value) }, opts);\n }\n return defaultValueProcessorByRule({ ...rule, value: toISOString(rule.value as Date) }, opts);\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mssql\" preset.\n */\nexport const getDatetimeValueProcessorMSSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:small)?datetime/i.test(opts?.fieldData?.datatype as string)\n ? 'datetimeoffset'\n : 'date';\n const value =\n datatype === 'datetimeoffset' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mysql\" preset.\n */\nexport const getDatetimeValueProcessorMySQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:datetime|timestamp)/i.test(opts?.fieldData?.datatype as string)\n ? 'datetime'\n : 'date';\n const value =\n datatype === 'datetime' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"oracle\" preset.\n */\nexport const getDatetimeValueProcessorOracle =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n // Oracle date format for _reading_ ISO 8601: 'YYYY-MM-DD\"T\"HH24:MI:SS.ff3\"Z\"'\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp'\n ? toISOString(rule.value).replaceAll('T', ' ').replace('Z', ' UTC')\n : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"postgresql\" preset.\n */\nexport const getDatetimeValueProcessorPostgreSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\nconst presetToValueProcessorMap = {\n ansi: getDatetimeValueProcessorANSI,\n mssql: getDatetimeValueProcessorMSSQL,\n mysql: getDatetimeValueProcessorMySQL,\n oracle: getDatetimeValueProcessorOracle,\n postgresql: getDatetimeValueProcessorPostgreSQL,\n sqlite: getDatetimeValueProcessorANSI,\n} satisfies Record<SQLPreset, (apiFns: RQBDateTimeLibraryAPI) => ValueProcessorByRule>;\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format.\n */\nexport const getDatetimeRuleProcessorSQL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operator = mapSQLOperator(rule.operator);\n const operatorLowerCase = lc(operator);\n // istanbul ignore next\n const {\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n context = {},\n } = opts;\n let finalValue = '';\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorSQL(rule, opts);\n }\n\n const valueProcessor = presetToValueProcessorMap[opts.preset!](apiFns);\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'not in':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n valueProcessor(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'not between':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n )\n )\n .join(' and ');\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n );\n }\n }\n\n return `${getQuotedFieldName(rule.field, { quoteFieldNamesWith, fieldIdentifierSeparator })} ${operator} ${finalValue}`.trim();\n };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/datetimeRuleProcessorJsonLogic.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.date-fns.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-CugqyF_a.mjs";
2
2
  import { format, isAfter, isBefore, isSameDay, isValid, parseISO, toDate } from "date-fns";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.date-fns.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.dayjs.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-CugqyF_a.mjs";
2
2
  import dayjs from "dayjs";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.dayjs.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-CugqyF_a.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.ts
4
4
  const invalidDate = /* @__PURE__ */ new Date(NaN);
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-CU16s8jw.js";
1
+ import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-DuaAB95e.js";
2
2
 
3
3
  //#region src/datetimeRuleProcessorJsonLogic.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-CU16s8jw.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DuaAB95e.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.date-fns.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-DfPnCZiT.js";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cxyajj0g.js";
2
2
  import { format, isAfter, isBefore, isSameDay, isValid, parseISO, toDate } from "date-fns";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.date-fns.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-CU16s8jw.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DuaAB95e.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.dayjs.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-DfPnCZiT.js";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cxyajj0g.js";
2
2
  import dayjs from "dayjs";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.dayjs.ts
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, c as defaultDateTimeNLOperatorMap, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, m as processIsDateField, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, r as getDatetimeValueProcessorMSSQL, s as datetimeValueProcessorNL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-DfPnCZiT.js";
1
+ import { a as getDatetimeValueProcessorOracle, c as defaultDateTimeNLOperatorMap, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, m as processIsDateField, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, r as getDatetimeValueProcessorMSSQL, s as datetimeValueProcessorNL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cxyajj0g.js";
2
2
  import { defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, getQuotedFieldName, nullOrUndefinedOrEmpty, toArray } from "react-querybuilder";
3
3
 
4
4
  //#region src/datetimeRuleProcessorJsonLogic.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-CU16s8jw.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DuaAB95e.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-DfPnCZiT.js";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cxyajj0g.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.ts
4
4
  const invalidDate = /* @__PURE__ */ new Date(NaN);
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-CU16s8jw.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DuaAB95e.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.luxon.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-DfPnCZiT.js";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cxyajj0g.js";
2
2
  import { DateTime } from "luxon";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.luxon.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.luxon.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";
1
+ import { a as getDatetimeValueProcessorOracle, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, p as isISOStringDateOnly, r as getDatetimeValueProcessorMSSQL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-CugqyF_a.mjs";
2
2
  import { DateTime } from "luxon";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.luxon.ts
@@ -1,4 +1,4 @@
1
- import { a as getDatetimeValueProcessorOracle, c as defaultDateTimeNLOperatorMap, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, m as processIsDateField, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, r as getDatetimeValueProcessorMSSQL, s as datetimeValueProcessorNL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";
1
+ import { a as getDatetimeValueProcessorOracle, c as defaultDateTimeNLOperatorMap, d as getDatetimeRuleProcessorCEL, f as getDatetimeJsonLogicOperations, i as getDatetimeValueProcessorMySQL, l as getDatetimeRuleProcessorNL, m as processIsDateField, n as getDatetimeValueProcessorANSI, o as getDatetimeValueProcessorPostgreSQL, r as getDatetimeValueProcessorMSSQL, s as datetimeValueProcessorNL, t as getDatetimeRuleProcessorSQL, u as getDatetimeRuleProcessorMongoDBQuery } from "./getDatetimeRuleProcessorSQL-CugqyF_a.mjs";
2
2
  import { defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, getQuotedFieldName, nullOrUndefinedOrEmpty, toArray } from "react-querybuilder";
3
3
 
4
4
  //#region src/datetimeRuleProcessorJsonLogic.ts
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, a as RQBJsonLogicDateAfter, c as RQBJsonLogicDateIn, d as RQBJsonLogicDateNotOn, f as RQBJsonLogicDateOn, g as ExportOperatorMap, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, l as RQBJsonLogicDateNotBetween, m as RQBJsonLogicDateOnOrBefore, n as IsDateFieldFunction, o as RQBJsonLogicDateBefore, p as RQBJsonLogicDateOnOrAfter, r as RQBDateTimeJsonLogic, s as RQBJsonLogicDateBetween, t as IsDateField, u as RQBJsonLogicDateNotIn, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/datetimeRuleProcessorJsonLogic.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.date-fns.d.ts
4
4
 
@@ -1,2 +1,2 @@
1
- import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";import{format as d,isAfter as f,isBefore as p,isSameDay as m,isValid as h,parseISO as g,toDate as _}from"date-fns";const v=e=>typeof e==`string`?g(e):_(e),y=`yyyy-MM-dd`,b={format:(e,t)=>d(v(e),t.replace(`YYYY-MM-DD`,y)),isAfter:f,isBefore:p,isSame:(e,t)=>{let n=v(e),r=v(t);return s(e)||s(t)?m(n,r):n.getTime()===r.getTime()},isValid:e=>h(v(e)),toDate:v,toISOString:e=>{let t=v(e);return h(t)?t.toISOString():``},toISOStringDateOnly:e=>{let t=v(e);return h(t)?d(t,y):``}},x=n(b),S=l(b),C=a(b),w=c(b),T=r(b),E=e(b),D=o(b),O=t(b),k=u(b),A=i(b);export{O as datetimeRuleProcessorCEL,k as datetimeRuleProcessorMongoDBQuery,A as datetimeRuleProcessorNL,S as datetimeRuleProcessorSQL,C as datetimeValueProcessorANSI,w as datetimeValueProcessorMSSQL,T as datetimeValueProcessorMySQL,E as datetimeValueProcessorOracle,D as datetimeValueProcessorPostgreSQL,x as jsonLogicDateTimeOperations,b as rqbDateTimeLibraryAPI};
1
+ import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs";import{format as d,isAfter as f,isBefore as p,isSameDay as m,isValid as h,parseISO as g,toDate as _}from"date-fns";const v=e=>typeof e==`string`?g(e):_(e),y=`yyyy-MM-dd`,b={format:(e,t)=>d(v(e),t.replace(`YYYY-MM-DD`,y)),isAfter:f,isBefore:p,isSame:(e,t)=>{let n=v(e),r=v(t);return s(e)||s(t)?m(n,r):n.getTime()===r.getTime()},isValid:e=>h(v(e)),toDate:v,toISOString:e=>{let t=v(e);return h(t)?t.toISOString():``},toISOStringDateOnly:e=>{let t=v(e);return h(t)?d(t,y):``}},x=n(b),S=l(b),C=a(b),w=c(b),T=r(b),E=e(b),D=o(b),O=t(b),k=u(b),A=i(b);export{O as datetimeRuleProcessorCEL,k as datetimeRuleProcessorMongoDBQuery,A as datetimeRuleProcessorNL,S as datetimeRuleProcessorSQL,C as datetimeValueProcessorANSI,w as datetimeValueProcessorMSSQL,T as datetimeValueProcessorMySQL,E as datetimeValueProcessorOracle,D as datetimeValueProcessorPostgreSQL,x as jsonLogicDateTimeOperations,b as rqbDateTimeLibraryAPI};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.date-fns.mjs.map
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.dayjs.d.ts
4
4
 
@@ -1,2 +1,2 @@
1
- import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";import d from"dayjs";const f={format:(e,t)=>d(e).format(t),isAfter:(e,t)=>d(e).isAfter(t),isBefore:(e,t)=>d(e).isBefore(t),isSame:(e,t)=>d(e).isSame(t,s(e)||s(t)?`d`:`ms`),isValid:e=>d(e).isValid(),toDate:e=>d(e).toDate(),toISOString:e=>{let t=d(e);return t.isValid()?t.toISOString():``},toISOStringDateOnly:e=>{let t=d(e);return t.isValid()?t.format(`YYYY-MM-DD`):``}},p=n(f),m=l(f),h=a(f),g=c(f),_=r(f),v=e(f),y=o(f),b=t(f),x=u(f),S=i(f);export{b as datetimeRuleProcessorCEL,x as datetimeRuleProcessorMongoDBQuery,S as datetimeRuleProcessorNL,m as datetimeRuleProcessorSQL,h as datetimeValueProcessorANSI,g as datetimeValueProcessorMSSQL,_ as datetimeValueProcessorMySQL,v as datetimeValueProcessorOracle,y as datetimeValueProcessorPostgreSQL,p as jsonLogicDateTimeOperations,f as rqbDateTimeLibraryAPI};
1
+ import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs";import d from"dayjs";const f={format:(e,t)=>d(e).format(t),isAfter:(e,t)=>d(e).isAfter(t),isBefore:(e,t)=>d(e).isBefore(t),isSame:(e,t)=>d(e).isSame(t,s(e)||s(t)?`d`:`ms`),isValid:e=>d(e).isValid(),toDate:e=>d(e).toDate(),toISOString:e=>{let t=d(e);return t.isValid()?t.toISOString():``},toISOStringDateOnly:e=>{let t=d(e);return t.isValid()?t.format(`YYYY-MM-DD`):``}},p=n(f),m=l(f),h=a(f),g=c(f),_=r(f),v=e(f),y=o(f),b=t(f),x=u(f),S=i(f);export{b as datetimeRuleProcessorCEL,x as datetimeRuleProcessorMongoDBQuery,S as datetimeRuleProcessorNL,m as datetimeRuleProcessorSQL,h as datetimeValueProcessorANSI,g as datetimeValueProcessorMSSQL,_ as datetimeValueProcessorMySQL,v as datetimeValueProcessorOracle,y as datetimeValueProcessorPostgreSQL,p as jsonLogicDateTimeOperations,f as rqbDateTimeLibraryAPI};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.dayjs.mjs.map
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.d.ts
4
4
 
@@ -1,2 +1,2 @@
1
- import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";const d=new Date(NaN),f=/^(\d{4})-(\d{2})-(\d{2})([T ](\d{2}):(\d{2}):(\d{2})(\.(\d{1,3}))?)?/,p=e=>{if(e instanceof Date)return e;let t=f.exec(e);if(!t)return d;let[n,r,i,a,o,s,c,l,u,p]=t,[m,h,g,_,v,y,b]=[r,i,a,s,c,l,p??`0`].filter(Boolean).map(Number),x=h-1;return s?new Date(Date.UTC(m,x,g,_,v,y,b)):new Date(m,x,g)},m=e=>{let t=p(e);return t instanceof Date&&!Number.isNaN(t.getTime())},h=e=>{let t=p(e);return m(t)?t.toISOString().slice(0,10):``},g={format:e=>p(e).toISOString(),isAfter:(e,t)=>{let n=p(e).getTime(),r=p(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(r)&&n>r},isBefore:(e,t)=>{let n=p(e).getTime(),r=p(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(r)&&n<r},isSame:(e,t)=>{let n=p(e),r=p(t);return s(e)||s(t)?h(e)===h(t):n.getTime()===r.getTime()},isValid:m,toDate:p,toISOString:e=>{let t=p(e);return m(t)?t.toISOString():``},toISOStringDateOnly:h},_=n(g),v=l(g),y=a(g),b=c(g),x=r(g),S=e(g),C=o(g),w=t(g),T=u(g),E=i(g);export{w as datetimeRuleProcessorCEL,T as datetimeRuleProcessorMongoDBQuery,E as datetimeRuleProcessorNL,v as datetimeRuleProcessorSQL,y as datetimeValueProcessorANSI,b as datetimeValueProcessorMSSQL,x as datetimeValueProcessorMySQL,S as datetimeValueProcessorOracle,C as datetimeValueProcessorPostgreSQL,_ as jsonLogicDateTimeOperations,g as rqbDateTimeLibraryAPI};
1
+ import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs";const d=new Date(NaN),f=/^(\d{4})-(\d{2})-(\d{2})([T ](\d{2}):(\d{2}):(\d{2})(\.(\d{1,3}))?)?/,p=e=>{if(e instanceof Date)return e;let t=f.exec(e);if(!t)return d;let[n,r,i,a,o,s,c,l,u,p]=t,[m,h,g,_,v,y,b]=[r,i,a,s,c,l,p??`0`].filter(Boolean).map(Number),x=h-1;return s?new Date(Date.UTC(m,x,g,_,v,y,b)):new Date(m,x,g)},m=e=>{let t=p(e);return t instanceof Date&&!Number.isNaN(t.getTime())},h=e=>{let t=p(e);return m(t)?t.toISOString().slice(0,10):``},g={format:e=>p(e).toISOString(),isAfter:(e,t)=>{let n=p(e).getTime(),r=p(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(r)&&n>r},isBefore:(e,t)=>{let n=p(e).getTime(),r=p(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(r)&&n<r},isSame:(e,t)=>{let n=p(e),r=p(t);return s(e)||s(t)?h(e)===h(t):n.getTime()===r.getTime()},isValid:m,toDate:p,toISOString:e=>{let t=p(e);return m(t)?t.toISOString():``},toISOStringDateOnly:h},_=n(g),v=l(g),y=a(g),b=c(g),x=r(g),S=e(g),C=o(g),w=t(g),T=u(g),E=i(g);export{w as datetimeRuleProcessorCEL,T as datetimeRuleProcessorMongoDBQuery,E as datetimeRuleProcessorNL,v as datetimeRuleProcessorSQL,y as datetimeValueProcessorANSI,b as datetimeValueProcessorMSSQL,x as datetimeValueProcessorMySQL,S as datetimeValueProcessorOracle,C as datetimeValueProcessorPostgreSQL,_ as jsonLogicDateTimeOperations,g as rqbDateTimeLibraryAPI};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.jsdate.mjs.map
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-DNawVAiI.mjs";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-C-P0L9xh.mjs";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.luxon.d.ts
4
4
 
@@ -1,2 +1,2 @@
1
- import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";import{DateTime as d}from"luxon";const f=e=>typeof e==`string`?d.fromISO(e):d.fromJSDate(e),p=`yyyy-MM-dd`,m={format:(e,t)=>f(e).toFormat(t.replace(`YYYY-MM-DD`,p)),isAfter:(e,t)=>f(e)>f(t),isBefore:(e,t)=>f(e)<f(t),isSame:(e,t)=>s(e)||s(t)?f(e).hasSame(f(t),`day`):+f(e)==+f(t),isValid:e=>f(e).isValid,toDate:e=>f(e).toJSDate(),toISOString:e=>{let t=f(e);return t.isValid?t.toJSDate().toISOString():``},toISOStringDateOnly:e=>{let t=f(e);return t.isValid?t.toFormat(p):``}},h=n(m),g=l(m),_=a(m),v=c(m),y=r(m),b=e(m),x=o(m),S=t(m),C=u(m),w=i(m);export{S as datetimeRuleProcessorCEL,C as datetimeRuleProcessorMongoDBQuery,w as datetimeRuleProcessorNL,g as datetimeRuleProcessorSQL,_ as datetimeValueProcessorANSI,v as datetimeValueProcessorMSSQL,y as datetimeValueProcessorMySQL,b as datetimeValueProcessorOracle,x as datetimeValueProcessorPostgreSQL,h as jsonLogicDateTimeOperations,m as rqbDateTimeLibraryAPI};
1
+ import{a as e,d as t,f as n,i as r,l as i,n as a,o,p as s,r as c,t as l,u}from"./getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs";import{DateTime as d}from"luxon";const f=e=>typeof e==`string`?d.fromISO(e):d.fromJSDate(e),p=`yyyy-MM-dd`,m={format:(e,t)=>f(e).toFormat(t.replace(`YYYY-MM-DD`,p)),isAfter:(e,t)=>f(e)>f(t),isBefore:(e,t)=>f(e)<f(t),isSame:(e,t)=>s(e)||s(t)?f(e).hasSame(f(t),`day`):+f(e)==+f(t),isValid:e=>f(e).isValid,toDate:e=>f(e).toJSDate(),toISOString:e=>{let t=f(e);return t.isValid?t.toJSDate().toISOString():``},toISOStringDateOnly:e=>{let t=f(e);return t.isValid?t.toFormat(p):``}},h=n(m),g=l(m),_=a(m),v=c(m),y=r(m),b=e(m),x=o(m),S=t(m),C=u(m),w=i(m);export{S as datetimeRuleProcessorCEL,C as datetimeRuleProcessorMongoDBQuery,w as datetimeRuleProcessorNL,g as datetimeRuleProcessorSQL,_ as datetimeValueProcessorANSI,v as datetimeValueProcessorMSSQL,y as datetimeValueProcessorMySQL,b as datetimeValueProcessorOracle,x as datetimeValueProcessorPostgreSQL,h as jsonLogicDateTimeOperations,m as rqbDateTimeLibraryAPI};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.luxon.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,r as l,s as u,t as d,u as f}from"./getDatetimeRuleProcessorSQL-Cf79Th_c.mjs";import{defaultRuleProcessorJSONata as p,defaultRuleProcessorJsonLogic as m,getQuotedFieldName as h,nullOrUndefinedOrEmpty as g,toArray as _}from"react-querybuilder";const v={"!=":`dateNotOn`,"<":`dateBefore`,"<=":`dateOnOrBefore`,"=":`dateOn`,">":`dateAfter`,">=":`dateOnOrAfter`,between:`dateBetween`,in:`dateIn`,notBetween:`dateNotBetween`,notIn:`dateNotIn`},y=(e,t)=>{let n=t??{};if(!o(n.context?.isDateField,e,n))return m(e,n);let{field:r,operator:i,value:a,valueSource:s}=e,c=s===`field`,l={var:r},u=e=>c?{var:`${e}`}:e;switch(i){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[v[i]]:[l,u(a)]};case`in`:case`notIn`:{let e=_(a).map(e=>u(e));return{[v[i]]:[l,e]}}case`between`:case`notBetween`:{let e=_(a).map(e=>u(e));return e.length<2?!1:{[v[i]]:[e[0],l,e[1]]}}}return m(e,t)},b=e=>/^(does)?not/i.test(e),x=(e,t)=>t?`$not(${e})`:`${e}`,S=e=>(t,n)=>{let r=n??{},{context:i={}}=r,{quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:s=``}=r,{field:c,operator:l,value:u,valueSource:d}=t;if(!o(i.isDateField,t,r))return p(t,r);let f=d===`field`,m=e=>`$toMillis(${h(e,{quoteFieldNamesWith:a,fieldIdentifierSeparator:s})})`,v=t=>`$toMillis("${e.toISOString(t)}")`;switch(l){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${m(c)} ${l} ${f?m(u):v(u)}`}let y=_(t.value,{retainEmptyStrings:!1}),S=y.map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(l){case`in`:case`notIn`:return f?y.length===0?``:x(`${m(c)} in [${y.map(e=>m(e)).join(`, `)}]`,b(l)):S.length===0?``:x(`${m(c)} in [${S.map(e=>v(e)).join(`, `)}]`,b(l));case`between`:case`notBetween`:{if(y.length<2||g(y[0])||g(y[1])||!f&&S.length<2)return``;if(f){let[e,t]=y,n=`${m(c)} >= ${m(e)} and ${m(c)} <= ${m(t)}`;return l===`between`?`(${n})`:x(n,!0)}let[t,n]=S,[r,i]=e.isBefore(t,n)?[t,n]:[n,t],a=`${m(c)} >= ${v(r)} and ${m(c)} <= ${v(i)}`;return l===`between`?`(${a})`:x(a,!0)}}return p(t,r)};export{y as datetimeRuleProcessorJsonLogic,u as datetimeValueProcessorNL,t as defaultDateTimeNLOperatorMap,r as getDatetimeJsonLogicOperations,n as getDatetimeRuleProcessorCEL,S as getDatetimeRuleProcessorJSONata,f as getDatetimeRuleProcessorMongoDBQuery,a as getDatetimeRuleProcessorNL,d as getDatetimeRuleProcessorSQL,s as getDatetimeValueProcessorANSI,l as getDatetimeValueProcessorMSSQL,i as getDatetimeValueProcessorMySQL,e as getDatetimeValueProcessorOracle,c as getDatetimeValueProcessorPostgreSQL};
1
+ import{a as e,c as t,d as n,f as r,i,l as a,m as o,n as s,o as c,r as l,s as u,t as d,u as f}from"./getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs";import{defaultRuleProcessorJSONata as p,defaultRuleProcessorJsonLogic as m,getQuotedFieldName as h,nullOrUndefinedOrEmpty as g,toArray as _}from"react-querybuilder";const v={"!=":`dateNotOn`,"<":`dateBefore`,"<=":`dateOnOrBefore`,"=":`dateOn`,">":`dateAfter`,">=":`dateOnOrAfter`,between:`dateBetween`,in:`dateIn`,notBetween:`dateNotBetween`,notIn:`dateNotIn`},y=(e,t)=>{let n=t??{};if(!o(n.context?.isDateField,e,n))return m(e,n);let{field:r,operator:i,value:a,valueSource:s}=e,c=s===`field`,l={var:r},u=e=>c?{var:`${e}`}:e;switch(i){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[v[i]]:[l,u(a)]};case`in`:case`notIn`:{let e=_(a).map(e=>u(e));return{[v[i]]:[l,e]}}case`between`:case`notBetween`:{let e=_(a).map(e=>u(e));return e.length<2?!1:{[v[i]]:[e[0],l,e[1]]}}}return m(e,t)},b=e=>/^(does)?not/i.test(e),x=(e,t)=>t?`$not(${e})`:`${e}`,S=e=>(t,n)=>{let r=n??{},{context:i={}}=r,{quoteFieldNamesWith:a=[``,``],fieldIdentifierSeparator:s=``}=r,{field:c,operator:l,value:u,valueSource:d}=t;if(!o(i.isDateField,t,r))return p(t,r);let f=d===`field`,m=e=>`$toMillis(${h(e,{quoteFieldNamesWith:a,fieldIdentifierSeparator:s})})`,v=t=>`$toMillis("${e.toISOString(t)}")`;switch(l){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${m(c)} ${l} ${f?m(u):v(u)}`}let y=_(t.value,{retainEmptyStrings:!1}),S=y.map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(l){case`in`:case`notIn`:return f?y.length===0?``:x(`${m(c)} in [${y.map(e=>m(e)).join(`, `)}]`,b(l)):S.length===0?``:x(`${m(c)} in [${S.map(e=>v(e)).join(`, `)}]`,b(l));case`between`:case`notBetween`:{if(y.length<2||g(y[0])||g(y[1])||!f&&S.length<2)return``;if(f){let[e,t]=y,n=`${m(c)} >= ${m(e)} and ${m(c)} <= ${m(t)}`;return l===`between`?`(${n})`:x(n,!0)}let[t,n]=S,[r,i]=e.isBefore(t,n)?[t,n]:[n,t],a=`${m(c)} >= ${v(r)} and ${m(c)} <= ${v(i)}`;return l===`between`?`(${a})`:x(a,!0)}}return p(t,r)};export{y as datetimeRuleProcessorJsonLogic,u as datetimeValueProcessorNL,t as defaultDateTimeNLOperatorMap,r as getDatetimeJsonLogicOperations,n as getDatetimeRuleProcessorCEL,S as getDatetimeRuleProcessorJSONata,f as getDatetimeRuleProcessorMongoDBQuery,a as getDatetimeRuleProcessorNL,d as getDatetimeRuleProcessorSQL,s as getDatetimeValueProcessorANSI,l as getDatetimeValueProcessorMSSQL,i as getDatetimeValueProcessorMySQL,e as getDatetimeValueProcessorOracle,c as getDatetimeValueProcessorPostgreSQL};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.mjs.map