@react-querybuilder/datetime 8.11.2 → 8.13.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 (74) hide show
  1. package/date-fns/package.json +4 -0
  2. package/dayjs/package.json +4 -0
  3. package/dist/cjs/{getDatetimeRuleProcessorSQL-COEhnVIZ.js → getDatetimeRuleProcessorSQL-Dkg4HEtH.js} +2 -31
  4. package/dist/cjs/{getDatetimeRuleProcessorSQL-COEhnVIZ.js.map → getDatetimeRuleProcessorSQL-Dkg4HEtH.js.map} +1 -1
  5. package/dist/cjs/getDatetimeRuleProcessorSQL-xGETy1ec.js +2 -0
  6. package/dist/cjs/{getDatetimeRuleProcessorSQL-CSxxM8ce.js.map → getDatetimeRuleProcessorSQL-xGETy1ec.js.map} +1 -1
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +1 -1
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +1 -1
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js +2 -2
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +1 -1
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +30 -2
  12. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  13. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +2 -2
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js +1 -1
  16. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +1 -1
  17. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js +2 -2
  18. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +1 -1
  19. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  21. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js.map +1 -1
  22. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +1 -1
  23. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  24. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js.map +1 -1
  25. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  26. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  27. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +1 -1
  28. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  29. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +1 -1
  30. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  31. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js.map +1 -1
  32. package/dist/cjs/{types-A60rB27l.d.ts → types-BWNR3hk5.d.ts} +134 -98
  33. package/dist/{getDatetimeRuleProcessorSQL-B8y0RI7t.js → getDatetimeRuleProcessorSQL-CtUjFtho.js} +6 -6
  34. package/dist/{getDatetimeRuleProcessorSQL-B8y0RI7t.js.map → getDatetimeRuleProcessorSQL-CtUjFtho.js.map} +1 -1
  35. package/dist/{getDatetimeRuleProcessorSQL-CSl2zGza.mjs → getDatetimeRuleProcessorSQL-CugqyF_a.mjs} +1 -1
  36. package/dist/{getDatetimeRuleProcessorSQL-CSl2zGza.mjs.map → getDatetimeRuleProcessorSQL-CugqyF_a.mjs.map} +1 -1
  37. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs +2 -0
  38. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs.map +1 -0
  39. package/dist/react-querybuilder_datetime.d.mts +1 -1
  40. package/dist/react-querybuilder_datetime.date-fns.d.mts +1 -1
  41. package/dist/react-querybuilder_datetime.date-fns.mjs +1 -1
  42. package/dist/react-querybuilder_datetime.dayjs.d.mts +1 -1
  43. package/dist/react-querybuilder_datetime.dayjs.mjs +1 -1
  44. package/dist/react-querybuilder_datetime.jsdate.d.mts +1 -1
  45. package/dist/react-querybuilder_datetime.jsdate.mjs +1 -1
  46. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +1 -1
  47. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +1 -1
  48. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +1 -1
  49. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +1 -1
  50. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +1 -1
  51. package/dist/react-querybuilder_datetime.legacy-esm.js +1 -1
  52. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +1 -1
  53. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +1 -1
  54. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +1 -1
  55. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +1 -1
  56. package/dist/react-querybuilder_datetime.luxon.d.mts +1 -1
  57. package/dist/react-querybuilder_datetime.luxon.mjs +1 -1
  58. package/dist/react-querybuilder_datetime.mjs +1 -1
  59. package/dist/react-querybuilder_datetime.production.d.mts +1 -1
  60. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +1 -1
  61. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  62. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +1 -1
  63. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  64. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +1 -1
  65. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  66. package/dist/react-querybuilder_datetime.production.luxon.d.mts +1 -1
  67. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  68. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  69. package/dist/{types-BjHLhGXX.d.mts → types-BO9Xuapi.d.mts} +155 -118
  70. package/dist/{types-Dq7BlQzI.d.ts → types-h3_NfrpO.d.ts} +155 -118
  71. package/jsdate/package.json +4 -0
  72. package/luxon/package.json +4 -0
  73. package/package.json +16 -12
  74. package/dist/cjs/getDatetimeRuleProcessorSQL-CSxxM8ce.js +0 -2
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../dist/cjs/date-fns.js",
3
+ "types": "../dist/cjs/date-fns.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../dist/cjs/dayjs.js",
3
+ "types": "../dist/cjs/dayjs.d.ts"
4
+ }
@@ -1,28 +1,5 @@
1
- //#region rolldown:runtime
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
- key = keys[i];
11
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
- get: ((k) => from[k]).bind(null, key),
13
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
- });
15
- }
16
- return to;
17
- };
18
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
- value: mod,
20
- enumerable: true
21
- }) : target, mod));
22
-
23
- //#endregion
1
+ const require_react_querybuilder_datetime_cjs_development_dayjs = require('./react-querybuilder_datetime.cjs.development.dayjs.js');
24
2
  let react_querybuilder = require("react-querybuilder");
25
- react_querybuilder = __toESM(react_querybuilder);
26
3
 
27
4
  //#region src/utils.ts
28
5
  const isISOStringDateOnly = (date) => typeof date === "string" && /^\d{4}-\d{2}-\d{2}$/.test(date);
@@ -385,12 +362,6 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
385
362
  };
386
363
 
387
364
  //#endregion
388
- Object.defineProperty(exports, '__toESM', {
389
- enumerable: true,
390
- get: function () {
391
- return __toESM;
392
- }
393
- });
394
365
  Object.defineProperty(exports, 'datetimeValueProcessorNL', {
395
366
  enumerable: true,
396
367
  get: function () {
@@ -475,4 +446,4 @@ Object.defineProperty(exports, 'processIsDateField', {
475
446
  return processIsDateField;
476
447
  }
477
448
  });
478
- //# sourceMappingURL=getDatetimeRuleProcessorSQL-COEhnVIZ.js.map
449
+ //# sourceMappingURL=getDatetimeRuleProcessorSQL-Dkg4HEtH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDatetimeRuleProcessorSQL-COEhnVIZ.js","names":["defaultIsDateField: IsDateFieldFunction","mongoOperators","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule","defaultOperatorProcessorNL"],"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-Dkg4HEtH.js","names":["defaultIsDateField: IsDateFieldFunction","mongoOperators","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule","defaultOperatorProcessorNL"],"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
+ const e=require(`./react-querybuilder_datetime.cjs.production.dayjs.js`);let t=require(`react-querybuilder`);const n=e=>typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e),r=(...[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),i=(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):r(t,n),a=({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)}),o=e=>/^(does)?not/i.test(e),s=e=>(n,r)=>{let a=r??{},{context:s={}}=a;if(n.valueSource===`field`||!i(s.isDateField,n,a))return(0,t.defaultRuleProcessorCEL)(n,a);let c=t=>`timestamp("${e.toISOString(t)}")`,l=(0,t.lc)(n.operator.replace(/^=$/,`==`));switch(l){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${n.field} ${l} ${c(n.value)}`}let u=(0,t.toArray)(n.value,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(l){case`in`:case`notin`:{if(u.length===0)return``;let[e,t]=o(l)?[`!(`,`)`]:[``,``];return`${e}${n.field} in [${u.map(e=>c(e)).join(`, `)}]${t}`}case`between`:case`notbetween`:{if(u.length<2)return``;let[t,r]=u,[i,a]=e.isBefore(t,r)?[t,r]:[r,t];return l===`between`?`(${n.field} >= ${c(i)} && ${n.field} <= ${c(a)})`:`(${n.field} < ${c(i)} || ${n.field} > ${c(a)})`}}return(0,t.defaultRuleProcessorCEL)(n,a)},c=e=>(n,r)=>{let a=r??{},{field:o,operator:s,value:c,valueSource:l}=n;if(l===`field`||!i(a.context?.isDateField,n,a))return(0,t.defaultRuleProcessorMongoDBQuery)(n,a);if(s===`=`)return{[o]:e.toDate(c)};switch(s){case`<`:case`<=`:case`!=`:case`>`:case`>=`:return{[o]:{[t.mongoOperators[s]]:e.toDate(c)}}}let u=(0,t.toArray)(n.value,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(s){case`in`:case`notIn`:return{[o]:{[t.mongoOperators[s]]:u}};case`between`:case`notBetween`:{if(u.length<2)return``;let[t,n]=u,r=e.isBefore(t,n)?[t,n]:[n,t];return s===`between`?{[o]:{$gte:r[0],$lte:r[1]}}:{$or:[{[o]:{$lt:r[0]}},{[o]:{$gt:r[1]}}]}}}return(0,t.defaultRuleProcessorMongoDBQuery)(n,a)},l={"<":`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`]},u=(e,t)=>n(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),d=e=>(n,r)=>{let a=r??{},o=(0,t.lc)(n.operator),s=``,{fieldData:c,quoteFieldNamesWith:d=[``,``],fieldIdentifierSeparator:f=``,operatorProcessor:p=t.defaultOperatorProcessorNL,wordOrder:m=`SVO`,context:h={},operatorMap:g=l}=a;if(!i(h.isDateField,n,a))return(0,t.defaultRuleProcessorNL)(n,a);if(n.valueSource===`field`)return(0,t.defaultRuleProcessorNL)(n,{...a,operatorMap:l});if((o===`in`||o===`notin`||o===`between`||o===`notbetween`)&&!n.value)return``;let _=(0,t.toArray)(n.value,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(t=>e.isValid(t[1]));switch(o){case`in`:case`notin`:if(_.length===0)return``;s=`(${_.map(e=>u({field:n.field,operator:`=`,value:e[1]},{...a,context:{...h,originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`notbetween`:{if(_.length<2)return``;let[t,r]=_;s=(e.isBefore(t[1],r[1])?[t,r]:[r,t]).map(([e,t])=>u({field:n.field,operator:`=`,value:t},{...a,context:{...h,originalValue:e}})).join(` ${a.translations?.and??`and`} `)}break;default:{let[e,t]=_[0]??[``,``];s=e?u({field:n.field,operator:`=`,value:t},{...a,context:{...h,originalValue:e}}):``}}let v={S:(0,t.getQuotedFieldName)(c?.label??n.field,{quoteFieldNamesWith:d,fieldIdentifierSeparator:f}),V:p(n,{...a,operatorMap:{...l,...g}}),O:s};return(0,t.normalizeConstituentWordOrder)(m).map(e=>`${v[e]}`).join(` `).trim()},f=({toISOStringDateOnly:e,toISOString:r})=>(i,a)=>n(a?.context?.originalValue)?(0,t.defaultValueProcessorByRule)({...i,value:e(i.value)},a):(0,t.defaultValueProcessorByRule)({...i,value:r(i.value)},a),p=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^(?:small)?datetime/i.test(i?.fieldData?.datatype)?`datetimeoffset`:`date`,o=a===`datetimeoffset`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[`cast(`,` as ${a})`]})},m=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^(?:datetime|timestamp)/i.test(i?.fieldData?.datatype)?`datetime`:`date`,o=a===`datetime`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[`cast(`,` as ${a})`]})},h=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^timestamp/i.test(i?.fieldData?.datatype)?`timestamp`:`date`,o=a===`timestamp`?n(r.value).replaceAll(`T`,` `).replace(`Z`,` UTC`):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[a,``]})},g=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^timestamp/i.test(i?.fieldData?.datatype)?`timestamp`:`date`,o=a===`timestamp`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[a,``]})},_={ansi:f,mssql:p,mysql:m,oracle:h,postgresql:g,sqlite:f},v=e=>(n,r)=>{let a=r??{},o=(0,t.mapSQLOperator)(n.operator),s=(0,t.lc)(o),{quoteFieldNamesWith:c=[``,``],fieldIdentifierSeparator:l=``,context:u={}}=a,d=``;if(n.valueSource===`field`||!i(u.isDateField,n,a))return(0,t.defaultRuleProcessorSQL)(n,a);let f=_[a.preset](e),p=(0,t.toArray)(n.value,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(t=>e.isValid(t[1]));switch(s){case`in`:case`not in`:if(p.length===0)return``;d=`(${p.map(e=>f({field:n.field,operator:`=`,value:e[1]},{...a,context:{originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`not between`:{if(p.length<2)return``;let[t,r]=p;d=(e.isBefore(t[1],r[1])?[t,r]:[r,t]).map(([e,t])=>f({field:n.field,operator:`=`,value:t},{...a,context:{originalValue:e}})).join(` and `)}break;default:{let[e,t]=p[0]??[``,``];d=f({field:n.field,operator:`=`,value:t},{...a,context:{originalValue:e}})}}return`${(0,t.getQuotedFieldName)(n.field,{quoteFieldNamesWith:c,fieldIdentifierSeparator:l})} ${o} ${d}`.trim()};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return c}});
2
+ //# sourceMappingURL=getDatetimeRuleProcessorSQL-xGETy1ec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDatetimeRuleProcessorSQL-CSxxM8ce.js","names":["defaultIsDateField: IsDateFieldFunction","mongoOperators","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule","defaultOperatorProcessorNL"],"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-xGETy1ec.js","names":["defaultIsDateField: IsDateFieldFunction","mongoOperators","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule","defaultOperatorProcessorNL"],"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-A60rB27l.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-BWNR3hk5.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-A60rB27l.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-BWNR3hk5.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.date-fns.d.ts
4
4
 
@@ -1,6 +1,6 @@
1
- const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-COEhnVIZ.js');
1
+ const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-Dkg4HEtH.js');
2
+ const require_react_querybuilder_datetime_cjs_development_dayjs = require('./react-querybuilder_datetime.cjs.development.dayjs.js');
2
3
  let date_fns = require("date-fns");
3
- date_fns = require_getDatetimeRuleProcessorSQL.__toESM(date_fns);
4
4
 
5
5
  //#region src/rqbDateTimeLibraryAPI.date-fns.ts
6
6
  const toDate = (a) => typeof a === "string" ? (0, date_fns.parseISO)(a) : (0, date_fns.toDate)(a);
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-A60rB27l.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-BWNR3hk5.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.dayjs.d.ts
4
4
 
@@ -1,6 +1,33 @@
1
- const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-COEhnVIZ.js');
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) {
13
+ __defProp(to, key, {
14
+ get: ((k) => from[k]).bind(null, key),
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ }
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
25
+ }) : target, mod));
26
+
27
+ //#endregion
28
+ const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-Dkg4HEtH.js');
2
29
  let dayjs = require("dayjs");
3
- dayjs = require_getDatetimeRuleProcessorSQL.__toESM(dayjs);
30
+ dayjs = __toESM(dayjs);
4
31
 
5
32
  //#region src/rqbDateTimeLibraryAPI.dayjs.ts
6
33
  /**
@@ -67,6 +94,7 @@ const datetimeRuleProcessorMongoDBQuery = require_getDatetimeRuleProcessorSQL.ge
67
94
  const datetimeRuleProcessorNL = require_getDatetimeRuleProcessorSQL.getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);
68
95
 
69
96
  //#endregion
97
+ exports.__toESM = __toESM;
70
98
  exports.datetimeRuleProcessorCEL = datetimeRuleProcessorCEL;
71
99
  exports.datetimeRuleProcessorMongoDBQuery = datetimeRuleProcessorMongoDBQuery;
72
100
  exports.datetimeRuleProcessorNL = datetimeRuleProcessorNL;
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_datetime.cjs.development.dayjs.js","names":["rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI","isISOStringDateOnly","jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations","getDatetimeJsonLogicOperations","datetimeRuleProcessorSQL: RuleProcessor","getDatetimeRuleProcessorSQL","datetimeValueProcessorANSI: ValueProcessorByRule","getDatetimeValueProcessorANSI","datetimeValueProcessorMSSQL: ValueProcessorByRule","getDatetimeValueProcessorMSSQL","datetimeValueProcessorMySQL: ValueProcessorByRule","getDatetimeValueProcessorMySQL","datetimeValueProcessorOracle: ValueProcessorByRule","getDatetimeValueProcessorOracle","datetimeValueProcessorPostgreSQL: ValueProcessorByRule","getDatetimeValueProcessorPostgreSQL","datetimeRuleProcessorCEL: ValueProcessorByRule","getDatetimeRuleProcessorCEL","datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule","getDatetimeRuleProcessorMongoDBQuery","datetimeRuleProcessorNL: ValueProcessorByRule","getDatetimeRuleProcessorNL"],"sources":["../../src/rqbDateTimeLibraryAPI.dayjs.ts","../../src/index.dayjs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Day.js\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => dayjs(d).format(fmt),\n isAfter: (a, b) => dayjs(a).isAfter(b),\n isBefore: (a, b) => dayjs(a).isBefore(b),\n isSame: (a, b) =>\n dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? 'd' : 'ms'),\n isValid: d => dayjs(d).isValid(),\n toDate: d => dayjs(d).toDate(),\n toISOString: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.format('YYYY-MM-DD') : '';\n },\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/dayjs\"` for enhanced date/time support using [Day.js](https://day.js.org/).\n *\n * @module dayjs\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.dayjs';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using Day.js\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using Day.js\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using Day.js\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using Day.js\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using Day.js\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using Day.js\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using Day.js\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using Day.js\n */\nexport const datetimeRuleProcessorCEL: ValueProcessorByRule =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using Day.js\n */\nexport const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using Day.js\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.dayjs';\n"],"mappings":";;;;;;;;AAOA,MAAaA,wBAA+C;CAC1D,SAAS,GAAG,2BAAc,EAAE,CAAC,OAAO,IAAI;CACxC,UAAU,GAAG,yBAAY,EAAE,CAAC,QAAQ,EAAE;CACtC,WAAW,GAAG,yBAAY,EAAE,CAAC,SAAS,EAAE;CACxC,SAAS,GAAG,yBACJ,EAAE,CAAC,OAAO,GAAGC,wDAAoB,EAAE,IAAIA,wDAAoB,EAAE,GAAG,MAAM,KAAK;CACnF,UAAS,yBAAW,EAAE,CAAC,SAAS;CAChC,SAAQ,yBAAW,EAAE,CAAC,QAAQ;CAC9B,cAAa,MAAK;EAChB,MAAM,6BAAgB,EAAE;AACxB,SAAO,QAAQ,SAAS,GAAG,QAAQ,aAAa,GAAG;;CAErD,sBAAqB,MAAK;EACxB,MAAM,6BAAgB,EAAE;AACxB,SAAO,QAAQ,SAAS,GAAG,QAAQ,OAAO,aAAa,GAAG;;CAE7D;;;;;;;ACED,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAKvD,MAAaC,2BACXC,gEAA4B,sBAAsB;;;;AAIpD,MAAaC,6BACXC,kEAA8B,sBAAsB;;;;AAItD,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAIvD,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAIvD,MAAaC,+BACXC,oEAAgC,sBAAsB;;;;AAIxD,MAAaC,mCACXC,wEAAoC,sBAAsB;;;;AAK5D,MAAaC,2BACXC,gEAA4B,sBAAsB;;;;AAKpD,MAAaC,oCACXC,yEAAqC,sBAAsB;;;;AAK7D,MAAaC,0BACXC,+DAA2B,sBAAsB"}
1
+ {"version":3,"file":"react-querybuilder_datetime.cjs.development.dayjs.js","names":["rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI","isISOStringDateOnly","jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations","getDatetimeJsonLogicOperations","datetimeRuleProcessorSQL: RuleProcessor","getDatetimeRuleProcessorSQL","datetimeValueProcessorANSI: ValueProcessorByRule","getDatetimeValueProcessorANSI","datetimeValueProcessorMSSQL: ValueProcessorByRule","getDatetimeValueProcessorMSSQL","datetimeValueProcessorMySQL: ValueProcessorByRule","getDatetimeValueProcessorMySQL","datetimeValueProcessorOracle: ValueProcessorByRule","getDatetimeValueProcessorOracle","datetimeValueProcessorPostgreSQL: ValueProcessorByRule","getDatetimeValueProcessorPostgreSQL","datetimeRuleProcessorCEL: ValueProcessorByRule","getDatetimeRuleProcessorCEL","datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule","getDatetimeRuleProcessorMongoDBQuery","datetimeRuleProcessorNL: ValueProcessorByRule","getDatetimeRuleProcessorNL"],"sources":["../../src/rqbDateTimeLibraryAPI.dayjs.ts","../../src/index.dayjs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Day.js\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => dayjs(d).format(fmt),\n isAfter: (a, b) => dayjs(a).isAfter(b),\n isBefore: (a, b) => dayjs(a).isBefore(b),\n isSame: (a, b) =>\n dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? 'd' : 'ms'),\n isValid: d => dayjs(d).isValid(),\n toDate: d => dayjs(d).toDate(),\n toISOString: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.format('YYYY-MM-DD') : '';\n },\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/dayjs\"` for enhanced date/time support using [Day.js](https://day.js.org/).\n *\n * @module dayjs\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.dayjs';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using Day.js\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using Day.js\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using Day.js\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using Day.js\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using Day.js\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using Day.js\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using Day.js\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using Day.js\n */\nexport const datetimeRuleProcessorCEL: ValueProcessorByRule =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using Day.js\n */\nexport const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using Day.js\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.dayjs';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAaA,wBAA+C;CAC1D,SAAS,GAAG,2BAAc,EAAE,CAAC,OAAO,IAAI;CACxC,UAAU,GAAG,yBAAY,EAAE,CAAC,QAAQ,EAAE;CACtC,WAAW,GAAG,yBAAY,EAAE,CAAC,SAAS,EAAE;CACxC,SAAS,GAAG,yBACJ,EAAE,CAAC,OAAO,GAAGC,wDAAoB,EAAE,IAAIA,wDAAoB,EAAE,GAAG,MAAM,KAAK;CACnF,UAAS,yBAAW,EAAE,CAAC,SAAS;CAChC,SAAQ,yBAAW,EAAE,CAAC,QAAQ;CAC9B,cAAa,MAAK;EAChB,MAAM,6BAAgB,EAAE;AACxB,SAAO,QAAQ,SAAS,GAAG,QAAQ,aAAa,GAAG;;CAErD,sBAAqB,MAAK;EACxB,MAAM,6BAAgB,EAAE;AACxB,SAAO,QAAQ,SAAS,GAAG,QAAQ,OAAO,aAAa,GAAG;;CAE7D;;;;;;;ACED,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAKvD,MAAaC,2BACXC,gEAA4B,sBAAsB;;;;AAIpD,MAAaC,6BACXC,kEAA8B,sBAAsB;;;;AAItD,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAIvD,MAAaC,8BACXC,mEAA+B,sBAAsB;;;;AAIvD,MAAaC,+BACXC,oEAAgC,sBAAsB;;;;AAIxD,MAAaC,mCACXC,wEAAoC,sBAAsB;;;;AAK5D,MAAaC,2BACXC,gEAA4B,sBAAsB;;;;AAKpD,MAAaC,oCACXC,yEAAqC,sBAAsB;;;;AAK7D,MAAaC,0BACXC,+DAA2B,sBAAsB"}
@@ -1,6 +1,6 @@
1
- const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-COEhnVIZ.js');
1
+ const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-Dkg4HEtH.js');
2
+ const require_react_querybuilder_datetime_cjs_development_dayjs = require('./react-querybuilder_datetime.cjs.development.dayjs.js');
2
3
  let react_querybuilder = require("react-querybuilder");
3
- react_querybuilder = require_getDatetimeRuleProcessorSQL.__toESM(react_querybuilder);
4
4
 
5
5
  //#region src/datetimeRuleProcessorJsonLogic.ts
6
6
  const dateOperationMap = {
@@ -1,4 +1,4 @@
1
- import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-A60rB27l.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-BWNR3hk5.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.jsdate.d.ts
4
4
 
@@ -1,4 +1,4 @@
1
- const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-COEhnVIZ.js');
1
+ const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-Dkg4HEtH.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-A60rB27l.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-BWNR3hk5.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.luxon.d.ts
4
4
 
@@ -1,6 +1,6 @@
1
- const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-COEhnVIZ.js');
1
+ const require_getDatetimeRuleProcessorSQL = require('./getDatetimeRuleProcessorSQL-Dkg4HEtH.js');
2
+ const require_react_querybuilder_datetime_cjs_development_dayjs = require('./react-querybuilder_datetime.cjs.development.dayjs.js');
2
3
  let luxon = require("luxon");
3
- luxon = require_getDatetimeRuleProcessorSQL.__toESM(luxon);
4
4
 
5
5
  //#region src/rqbDateTimeLibraryAPI.luxon.ts
6
6
  const toDateTime = (a) => typeof a === "string" ? luxon.DateTime.fromISO(a) : luxon.DateTime.fromJSDate(a);
@@ -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-A60rB27l.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-BWNR3hk5.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-A60rB27l.js";
1
+ import { _ as RuleProcessor, h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI, v as ValueProcessorByRule } from "./types-BWNR3hk5.js";
2
2
 
3
3
  //#region src/rqbDateTimeLibraryAPI.date-fns.d.ts
4
4
 
@@ -1,2 +1,2 @@
1
- const e=require(`./getDatetimeRuleProcessorSQL-CSxxM8ce.js`);let t=require(`date-fns`);t=e.h(t);const n=e=>typeof e==`string`?(0,t.parseISO)(e):(0,t.toDate)(e),r=`yyyy-MM-dd`,i={format:(e,i)=>(0,t.format)(n(e),i.replace(`YYYY-MM-DD`,r)),isAfter:t.isAfter,isBefore:t.isBefore,isSame:(r,i)=>{let a=n(r),o=n(i);return e.p(r)||e.p(i)?(0,t.isSameDay)(a,o):a.getTime()===o.getTime()},isValid:e=>(0,t.isValid)(n(e)),toDate:n,toISOString:e=>{let r=n(e);return(0,t.isValid)(r)?r.toISOString():``},toISOStringDateOnly:e=>{let i=n(e);return(0,t.isValid)(i)?(0,t.format)(i,r):``}},a=e.f(i),o=e.t(i),s=e.n(i),c=e.r(i),l=e.i(i),u=e.a(i),d=e.o(i),f=e.d(i),p=e.u(i),m=e.l(i);exports.datetimeRuleProcessorCEL=f,exports.datetimeRuleProcessorMongoDBQuery=p,exports.datetimeRuleProcessorNL=m,exports.datetimeRuleProcessorSQL=o,exports.datetimeValueProcessorANSI=s,exports.datetimeValueProcessorMSSQL=c,exports.datetimeValueProcessorMySQL=l,exports.datetimeValueProcessorOracle=u,exports.datetimeValueProcessorPostgreSQL=d,exports.jsonLogicDateTimeOperations=a,exports.rqbDateTimeLibraryAPI=i;
1
+ const e=require(`./getDatetimeRuleProcessorSQL-xGETy1ec.js`),t=require(`./react-querybuilder_datetime.cjs.production.dayjs.js`);let n=require(`date-fns`);const r=e=>typeof e==`string`?(0,n.parseISO)(e):(0,n.toDate)(e),i=`yyyy-MM-dd`,a={format:(e,t)=>(0,n.format)(r(e),t.replace(`YYYY-MM-DD`,i)),isAfter:n.isAfter,isBefore:n.isBefore,isSame:(t,i)=>{let a=r(t),o=r(i);return e.p(t)||e.p(i)?(0,n.isSameDay)(a,o):a.getTime()===o.getTime()},isValid:e=>(0,n.isValid)(r(e)),toDate:r,toISOString:e=>{let t=r(e);return(0,n.isValid)(t)?t.toISOString():``},toISOStringDateOnly:e=>{let t=r(e);return(0,n.isValid)(t)?(0,n.format)(t,i):``}},o=e.f(a),s=e.t(a),c=e.n(a),l=e.r(a),u=e.i(a),d=e.a(a),f=e.o(a),p=e.d(a),m=e.u(a),h=e.l(a);exports.datetimeRuleProcessorCEL=p,exports.datetimeRuleProcessorMongoDBQuery=m,exports.datetimeRuleProcessorNL=h,exports.datetimeRuleProcessorSQL=s,exports.datetimeValueProcessorANSI=c,exports.datetimeValueProcessorMSSQL=l,exports.datetimeValueProcessorMySQL=u,exports.datetimeValueProcessorOracle=d,exports.datetimeValueProcessorPostgreSQL=f,exports.jsonLogicDateTimeOperations=o,exports.rqbDateTimeLibraryAPI=a;
2
2
  //# sourceMappingURL=react-querybuilder_datetime.cjs.production.date-fns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_datetime.cjs.production.date-fns.js","names":["toDate: typeof dateFnsToDate","rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI","isISOStringDateOnly","jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations","getDatetimeJsonLogicOperations","datetimeRuleProcessorSQL: RuleProcessor","getDatetimeRuleProcessorSQL","datetimeValueProcessorANSI: ValueProcessorByRule","getDatetimeValueProcessorANSI","datetimeValueProcessorMSSQL: ValueProcessorByRule","getDatetimeValueProcessorMSSQL","datetimeValueProcessorMySQL: ValueProcessorByRule","getDatetimeValueProcessorMySQL","datetimeValueProcessorOracle: ValueProcessorByRule","getDatetimeValueProcessorOracle","datetimeValueProcessorPostgreSQL: ValueProcessorByRule","getDatetimeValueProcessorPostgreSQL","datetimeRuleProcessorCEL: ValueProcessorByRule","getDatetimeRuleProcessorCEL","datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule","getDatetimeRuleProcessorMongoDBQuery","datetimeRuleProcessorNL: ValueProcessorByRule","getDatetimeRuleProcessorNL"],"sources":["../../src/rqbDateTimeLibraryAPI.date-fns.ts","../../src/index.date-fns.ts"],"sourcesContent":["import {\n toDate as dateFnsToDate,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parseISO,\n} from 'date-fns';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\nconst toDate: typeof dateFnsToDate = a => (typeof a === 'string' ? parseISO(a) : dateFnsToDate(a));\nconst iso8601DateOnly = 'yyyy-MM-dd';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for date-fns\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => format(toDate(d), fmt.replace('YYYY-MM-DD', iso8601DateOnly)),\n isAfter,\n isBefore,\n isSame: (a, b) => {\n const aToDate = toDate(a);\n const bToDate = toDate(b);\n return isISOStringDateOnly(a) || isISOStringDateOnly(b)\n ? isSameDay(aToDate, bToDate)\n : aToDate.getTime() === bToDate.getTime();\n },\n isValid: d => isValid(toDate(d)),\n toDate,\n toISOString: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? format(dToDate, iso8601DateOnly) : '';\n },\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/date-fns\"` for enhanced date/time support using [date-fns](https://date-fns.org/).\n *\n * @module date-fns\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.date-fns';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using date-fns\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using date-fns\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using date-fns\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using date-fns\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using date-fns\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using date-fns\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using date-fns\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using date-fns\n */\nexport const datetimeRuleProcessorCEL: ValueProcessorByRule =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using date-fns\n */\nexport const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using date-fns\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.date-fns';\n"],"mappings":"gGAYA,MAAMA,EAA+B,GAAM,OAAO,GAAM,UAAA,EAAA,EAAA,UAAoB,EAAE,EAAA,EAAA,EAAA,QAAiB,EAAE,CAC3F,EAAkB,aAKXC,EAA+C,CAC1D,QAAS,EAAG,KAAA,EAAA,EAAA,QAAe,EAAO,EAAE,CAAE,EAAI,QAAQ,aAAc,EAAgB,CAAC,CACjF,QAAA,EAAA,QACA,SAAA,EAAA,SACA,QAAS,EAAG,IAAM,CAChB,IAAM,EAAU,EAAO,EAAE,CACnB,EAAU,EAAO,EAAE,CACzB,OAAOC,EAAAA,EAAoB,EAAE,EAAIA,EAAAA,EAAoB,EAAE,EAAA,EAAA,EAAA,WACzC,EAAS,EAAQ,CAC3B,EAAQ,SAAS,GAAK,EAAQ,SAAS,EAE7C,QAAS,IAAA,EAAA,EAAA,SAAa,EAAO,EAAE,CAAC,CAChC,SACA,YAAa,GAAK,CAChB,IAAM,EAAU,EAAO,EAAE,CACzB,OAAA,EAAA,EAAA,SAAe,EAAQ,CAAG,EAAQ,aAAa,CAAG,IAEpD,oBAAqB,GAAK,CACxB,IAAM,EAAU,EAAO,EAAE,CACzB,OAAA,EAAA,EAAA,SAAe,EAAQ,EAAA,EAAA,EAAA,QAAU,EAAS,EAAgB,CAAG,IAEhE,CCdYC,EACXC,EAAAA,EAA+B,EAAsB,CAK1CC,EACXC,EAAAA,EAA4B,EAAsB,CAIvCC,EACXC,EAAAA,EAA8B,EAAsB,CAIzCC,EACXC,EAAAA,EAA+B,EAAsB,CAI1CC,EACXC,EAAAA,EAA+B,EAAsB,CAI1CC,EACXC,EAAAA,EAAgC,EAAsB,CAI3CC,EACXC,EAAAA,EAAoC,EAAsB,CAK/CC,EACXC,EAAAA,EAA4B,EAAsB,CAKvCC,EACXC,EAAAA,EAAqC,EAAsB,CAKhDC,EACXC,EAAAA,EAA2B,EAAsB"}
1
+ {"version":3,"file":"react-querybuilder_datetime.cjs.production.date-fns.js","names":["toDate: typeof dateFnsToDate","rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI","isISOStringDateOnly","jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations","getDatetimeJsonLogicOperations","datetimeRuleProcessorSQL: RuleProcessor","getDatetimeRuleProcessorSQL","datetimeValueProcessorANSI: ValueProcessorByRule","getDatetimeValueProcessorANSI","datetimeValueProcessorMSSQL: ValueProcessorByRule","getDatetimeValueProcessorMSSQL","datetimeValueProcessorMySQL: ValueProcessorByRule","getDatetimeValueProcessorMySQL","datetimeValueProcessorOracle: ValueProcessorByRule","getDatetimeValueProcessorOracle","datetimeValueProcessorPostgreSQL: ValueProcessorByRule","getDatetimeValueProcessorPostgreSQL","datetimeRuleProcessorCEL: ValueProcessorByRule","getDatetimeRuleProcessorCEL","datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule","getDatetimeRuleProcessorMongoDBQuery","datetimeRuleProcessorNL: ValueProcessorByRule","getDatetimeRuleProcessorNL"],"sources":["../../src/rqbDateTimeLibraryAPI.date-fns.ts","../../src/index.date-fns.ts"],"sourcesContent":["import {\n toDate as dateFnsToDate,\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parseISO,\n} from 'date-fns';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\nconst toDate: typeof dateFnsToDate = a => (typeof a === 'string' ? parseISO(a) : dateFnsToDate(a));\nconst iso8601DateOnly = 'yyyy-MM-dd';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for date-fns\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => format(toDate(d), fmt.replace('YYYY-MM-DD', iso8601DateOnly)),\n isAfter,\n isBefore,\n isSame: (a, b) => {\n const aToDate = toDate(a);\n const bToDate = toDate(b);\n return isISOStringDateOnly(a) || isISOStringDateOnly(b)\n ? isSameDay(aToDate, bToDate)\n : aToDate.getTime() === bToDate.getTime();\n },\n isValid: d => isValid(toDate(d)),\n toDate,\n toISOString: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? format(dToDate, iso8601DateOnly) : '';\n },\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/date-fns\"` for enhanced date/time support using [date-fns](https://date-fns.org/).\n *\n * @module date-fns\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.date-fns';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using date-fns\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using date-fns\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using date-fns\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using date-fns\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using date-fns\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using date-fns\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using date-fns\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using date-fns\n */\nexport const datetimeRuleProcessorCEL: ValueProcessorByRule =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using date-fns\n */\nexport const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using date-fns\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.date-fns';\n"],"mappings":"0JAYA,MAAMA,EAA+B,GAAM,OAAO,GAAM,UAAA,EAAA,EAAA,UAAoB,EAAE,EAAA,EAAA,EAAA,QAAiB,EAAE,CAC3F,EAAkB,aAKXC,EAA+C,CAC1D,QAAS,EAAG,KAAA,EAAA,EAAA,QAAe,EAAO,EAAE,CAAE,EAAI,QAAQ,aAAc,EAAgB,CAAC,CACjF,QAAA,EAAA,QACA,SAAA,EAAA,SACA,QAAS,EAAG,IAAM,CAChB,IAAM,EAAU,EAAO,EAAE,CACnB,EAAU,EAAO,EAAE,CACzB,OAAOC,EAAAA,EAAoB,EAAE,EAAIA,EAAAA,EAAoB,EAAE,EAAA,EAAA,EAAA,WACzC,EAAS,EAAQ,CAC3B,EAAQ,SAAS,GAAK,EAAQ,SAAS,EAE7C,QAAS,IAAA,EAAA,EAAA,SAAa,EAAO,EAAE,CAAC,CAChC,SACA,YAAa,GAAK,CAChB,IAAM,EAAU,EAAO,EAAE,CACzB,OAAA,EAAA,EAAA,SAAe,EAAQ,CAAG,EAAQ,aAAa,CAAG,IAEpD,oBAAqB,GAAK,CACxB,IAAM,EAAU,EAAO,EAAE,CACzB,OAAA,EAAA,EAAA,SAAe,EAAQ,EAAA,EAAA,EAAA,QAAU,EAAS,EAAgB,CAAG,IAEhE,CCdYC,EACXC,EAAAA,EAA+B,EAAsB,CAK1CC,EACXC,EAAAA,EAA4B,EAAsB,CAIvCC,EACXC,EAAAA,EAA8B,EAAsB,CAIzCC,EACXC,EAAAA,EAA+B,EAAsB,CAI1CC,EACXC,EAAAA,EAA+B,EAAsB,CAI1CC,EACXC,EAAAA,EAAgC,EAAsB,CAI3CC,EACXC,EAAAA,EAAoC,EAAsB,CAK/CC,EACXC,EAAAA,EAA4B,EAAsB,CAKvCC,EACXC,EAAAA,EAAqC,EAAsB,CAKhDC,EACXC,EAAAA,EAA2B,EAAsB"}