@react-querybuilder/datetime 8.8.4 → 8.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/cjs/date-fns.d.ts +1 -0
  2. package/dist/cjs/dayjs.d.ts +1 -0
  3. package/dist/cjs/getDatetimeRuleProcessorSQL-D95jgDK6.js +2 -0
  4. package/dist/cjs/getDatetimeRuleProcessorSQL-D95jgDK6.js.map +1 -0
  5. package/dist/cjs/index.d.ts +1 -0
  6. package/dist/cjs/jsdate.d.ts +1 -0
  7. package/dist/cjs/luxon.d.ts +1 -0
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +108 -0
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +53 -0
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js +12 -11
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js.map +1 -1
  12. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +53 -0
  13. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +12 -11
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +5 -4
  16. package/dist/cjs/react-querybuilder_datetime.cjs.development.js.map +1 -1
  17. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +56 -0
  18. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js +10 -10
  19. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js.map +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +53 -0
  21. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js +12 -11
  22. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js.map +1 -1
  23. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +108 -0
  24. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +53 -0
  25. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  26. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js.map +1 -1
  27. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +53 -0
  28. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  29. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js.map +1 -1
  30. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  31. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  32. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +56 -0
  33. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  34. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js.map +1 -1
  35. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +53 -0
  36. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  37. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js.map +1 -1
  38. package/dist/cjs/types-QCQUGVZa.d.ts +1694 -0
  39. package/dist/{getDatetimeRuleProcessorSQL-CutYTD23.js → getDatetimeRuleProcessorSQL-CN80oEFK.js} +23 -29
  40. package/dist/getDatetimeRuleProcessorSQL-CN80oEFK.js.map +1 -0
  41. package/dist/{getDatetimeRuleProcessorSQL-CocyaiI5.mjs → getDatetimeRuleProcessorSQL-KYRPP9qd.mjs} +17 -23
  42. package/dist/getDatetimeRuleProcessorSQL-KYRPP9qd.mjs.map +1 -0
  43. package/dist/react-querybuilder_datetime.d.mts +108 -0
  44. package/dist/react-querybuilder_datetime.date-fns.d.mts +53 -0
  45. package/dist/react-querybuilder_datetime.date-fns.mjs +10 -10
  46. package/dist/react-querybuilder_datetime.date-fns.mjs.map +1 -1
  47. package/dist/react-querybuilder_datetime.dayjs.d.mts +53 -0
  48. package/dist/react-querybuilder_datetime.dayjs.mjs +10 -10
  49. package/dist/react-querybuilder_datetime.dayjs.mjs.map +1 -1
  50. package/dist/react-querybuilder_datetime.jsdate.d.mts +56 -0
  51. package/dist/react-querybuilder_datetime.jsdate.mjs +10 -10
  52. package/dist/react-querybuilder_datetime.jsdate.mjs.map +1 -1
  53. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +108 -0
  54. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +53 -0
  55. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +10 -10
  56. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js.map +1 -1
  57. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +53 -0
  58. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +10 -10
  59. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js.map +1 -1
  60. package/dist/react-querybuilder_datetime.legacy-esm.js +4 -4
  61. package/dist/react-querybuilder_datetime.legacy-esm.js.map +1 -1
  62. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +56 -0
  63. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +11 -11
  64. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js.map +1 -1
  65. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +53 -0
  66. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +10 -10
  67. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js.map +1 -1
  68. package/dist/react-querybuilder_datetime.luxon.d.mts +53 -0
  69. package/dist/react-querybuilder_datetime.luxon.mjs +10 -10
  70. package/dist/react-querybuilder_datetime.luxon.mjs.map +1 -1
  71. package/dist/react-querybuilder_datetime.mjs +3 -3
  72. package/dist/react-querybuilder_datetime.mjs.map +1 -1
  73. package/dist/react-querybuilder_datetime.production.d.mts +108 -0
  74. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +53 -0
  75. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  76. package/dist/react-querybuilder_datetime.production.date-fns.mjs.map +1 -1
  77. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +53 -0
  78. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  79. package/dist/react-querybuilder_datetime.production.dayjs.mjs.map +1 -1
  80. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +56 -0
  81. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  82. package/dist/react-querybuilder_datetime.production.jsdate.mjs.map +1 -1
  83. package/dist/react-querybuilder_datetime.production.luxon.d.mts +53 -0
  84. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  85. package/dist/react-querybuilder_datetime.production.luxon.mjs.map +1 -1
  86. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  87. package/dist/react-querybuilder_datetime.production.mjs.map +1 -1
  88. package/dist/types-CDEkL2M_.d.mts +1694 -0
  89. package/dist/types-EgfSemtR.d.ts +1694 -0
  90. package/package.json +23 -23
  91. package/dist/cjs/getDatetimeRuleProcessorSQL-npwUe9aM.js +0 -2
  92. package/dist/cjs/getDatetimeRuleProcessorSQL-npwUe9aM.js.map +0 -1
  93. package/dist/getDatetimeRuleProcessorSQL-CocyaiI5.mjs.map +0 -1
  94. package/dist/getDatetimeRuleProcessorSQL-CutYTD23.js.map +0 -1
  95. package/dist/types/QueryBuilderDateTime.d.ts +0 -4
  96. package/dist/types/datetimeRuleProcessorJsonLogic.d.ts +0 -10
  97. package/dist/types/getDatetimeJsonLogicOperations.d.ts +0 -6
  98. package/dist/types/getDatetimeRuleProcessorCEL.d.ts +0 -7
  99. package/dist/types/getDatetimeRuleProcessorJSONata.d.ts +0 -7
  100. package/dist/types/getDatetimeRuleProcessorMongoDBQuery.d.ts +0 -7
  101. package/dist/types/getDatetimeRuleProcessorNL.d.ts +0 -13
  102. package/dist/types/getDatetimeRuleProcessorSQL.d.ts +0 -32
  103. package/dist/types/index.d.ts +0 -8
  104. package/dist/types/index.date-fns.d.ts +0 -48
  105. package/dist/types/index.dayjs.d.ts +0 -48
  106. package/dist/types/index.jsdate.d.ts +0 -48
  107. package/dist/types/index.luxon.d.ts +0 -48
  108. package/dist/types/rqbDateTimeLibraryAPI.date-fns.d.ts +0 -5
  109. package/dist/types/rqbDateTimeLibraryAPI.dayjs.d.ts +0 -5
  110. package/dist/types/rqbDateTimeLibraryAPI.jsdate.d.ts +0 -8
  111. package/dist/types/rqbDateTimeLibraryAPI.luxon.d.ts +0 -5
  112. package/dist/types/types.d.ts +0 -111
  113. package/dist/types/utils.d.ts +0 -5
  114. package/dist/types-esm/QueryBuilderDateTime.d.mts +0 -4
  115. package/dist/types-esm/datetimeRuleProcessorJsonLogic.d.mts +0 -10
  116. package/dist/types-esm/getDatetimeJsonLogicOperations.d.mts +0 -6
  117. package/dist/types-esm/getDatetimeRuleProcessorCEL.d.mts +0 -7
  118. package/dist/types-esm/getDatetimeRuleProcessorJSONata.d.mts +0 -7
  119. package/dist/types-esm/getDatetimeRuleProcessorMongoDBQuery.d.mts +0 -7
  120. package/dist/types-esm/getDatetimeRuleProcessorNL.d.mts +0 -13
  121. package/dist/types-esm/getDatetimeRuleProcessorSQL.d.mts +0 -32
  122. package/dist/types-esm/index.d.mts +0 -8
  123. package/dist/types-esm/index.date-fns.d.mts +0 -48
  124. package/dist/types-esm/index.dayjs.d.mts +0 -48
  125. package/dist/types-esm/index.jsdate.d.mts +0 -48
  126. package/dist/types-esm/index.luxon.d.mts +0 -48
  127. package/dist/types-esm/rqbDateTimeLibraryAPI.date-fns.d.mts +0 -5
  128. package/dist/types-esm/rqbDateTimeLibraryAPI.dayjs.d.mts +0 -5
  129. package/dist/types-esm/rqbDateTimeLibraryAPI.jsdate.d.mts +0 -8
  130. package/dist/types-esm/rqbDateTimeLibraryAPI.luxon.d.mts +0 -5
  131. package/dist/types-esm/types.d.mts +0 -111
  132. package/dist/types-esm/utils.d.mts +0 -5
@@ -41,10 +41,10 @@ const getDatetimeJsonLogicOperations = ({ isAfter, isBefore, isSame }) => ({
41
41
 
42
42
  //#endregion
43
43
  //#region src/getDatetimeRuleProcessorCEL.ts
44
- const shouldNegate = (op) => new RegExp("^(does)?not", "i").test(op);
44
+ const shouldNegate = (op) => /^(does)?not/i.test(op);
45
45
  /**
46
46
  * Generates a rule processor with date/time features for use by
47
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "cel" format.
47
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "cel" format.
48
48
  */
49
49
  const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
50
50
  const opts = options !== null && options !== void 0 ? options : ( /* istanbul ignore next */ {});
@@ -60,8 +60,7 @@ const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
60
60
  case ">":
61
61
  case ">=": return `${rule.field} ${operatorTL} ${ts(rule.value)}`;
62
62
  }
63
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
64
- const valueAsDateArray = valueAsArray.map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
63
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
65
64
  switch (operatorTL) {
66
65
  case "in":
67
66
  case "notin": {
@@ -84,7 +83,7 @@ const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
84
83
  //#region src/getDatetimeRuleProcessorMongoDBQuery.ts
85
84
  /**
86
85
  * Generates a rule processor with date/time features for use by
87
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "mongodb_query" format.
86
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "mongodb_query" format.
88
87
  */
89
88
  const getDatetimeRuleProcessorMongoDBQuery = (apiFns) => (rule, options) => {
90
89
  var _opts$context;
@@ -99,8 +98,7 @@ const getDatetimeRuleProcessorMongoDBQuery = (apiFns) => (rule, options) => {
99
98
  case ">":
100
99
  case ">=": return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };
101
100
  }
102
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
103
- const valueAsDateArray = valueAsArray.map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
101
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
104
102
  switch (operator) {
105
103
  case "in":
106
104
  case "notIn": return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };
@@ -119,7 +117,7 @@ const getDatetimeRuleProcessorMongoDBQuery = (apiFns) => (rule, options) => {
119
117
  };
120
118
 
121
119
  //#endregion
122
- //#region ../../node_modules/tsdown/node_modules/rolldown/node_modules/@oxc-project/runtime/src/helpers/esm/typeof.js
120
+ //#region \0@oxc-project+runtime@0.89.0/helpers/typeof.js
123
121
  function _typeof(o) {
124
122
  "@babel/helpers - typeof";
125
123
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
@@ -130,7 +128,7 @@ function _typeof(o) {
130
128
  }
131
129
 
132
130
  //#endregion
133
- //#region ../../node_modules/tsdown/node_modules/rolldown/node_modules/@oxc-project/runtime/src/helpers/esm/toPrimitive.js
131
+ //#region \0@oxc-project+runtime@0.89.0/helpers/toPrimitive.js
134
132
  function toPrimitive(t, r) {
135
133
  if ("object" != _typeof(t) || !t) return t;
136
134
  var e = t[Symbol.toPrimitive];
@@ -143,14 +141,14 @@ function toPrimitive(t, r) {
143
141
  }
144
142
 
145
143
  //#endregion
146
- //#region ../../node_modules/tsdown/node_modules/rolldown/node_modules/@oxc-project/runtime/src/helpers/esm/toPropertyKey.js
144
+ //#region \0@oxc-project+runtime@0.89.0/helpers/toPropertyKey.js
147
145
  function toPropertyKey(t) {
148
146
  var i = toPrimitive(t, "string");
149
147
  return "symbol" == _typeof(i) ? i : i + "";
150
148
  }
151
149
 
152
150
  //#endregion
153
- //#region ../../node_modules/tsdown/node_modules/rolldown/node_modules/@oxc-project/runtime/src/helpers/esm/defineProperty.js
151
+ //#region \0@oxc-project+runtime@0.89.0/helpers/defineProperty.js
154
152
  function _defineProperty(e, r, t) {
155
153
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
156
154
  value: t,
@@ -161,7 +159,7 @@ function _defineProperty(e, r, t) {
161
159
  }
162
160
 
163
161
  //#endregion
164
- //#region ../../node_modules/tsdown/node_modules/rolldown/node_modules/@oxc-project/runtime/src/helpers/esm/objectSpread2.js
162
+ //#region \0@oxc-project+runtime@0.89.0/helpers/objectSpread2.js
165
163
  function ownKeys(e, r) {
166
164
  var t = Object.keys(e);
167
165
  if (Object.getOwnPropertySymbols) {
@@ -198,7 +196,7 @@ const defaultDateTimeNLOperatorMap = {
198
196
  };
199
197
  /**
200
198
  * Generates a value processor with date/time features for use by
201
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "natural_language" format.
199
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "natural_language" format.
202
200
  */
203
201
  const datetimeValueProcessorNL = (rule, opts) => {
204
202
  var _opts$context, _opts$context4, _opts$context5;
@@ -212,7 +210,7 @@ const datetimeValueProcessorNL = (rule, opts) => {
212
210
  }, opts === null || opts === void 0 || (_opts$context5 = opts.context) === null || _opts$context5 === void 0 ? void 0 : _opts$context5.dateTimeFormat)).format(rule.value);
213
211
  };
214
212
  /**
215
- * Generates a rule processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
213
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
216
214
  * the "natural_language" format.
217
215
  */
218
216
  const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
@@ -225,8 +223,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
225
223
  if (!processIsDateField(context.isDateField, rule, opts)) return defaultRuleProcessorNL(rule, opts);
226
224
  if (rule.valueSource === "field") return defaultRuleProcessorNL(rule, _objectSpread2(_objectSpread2({}, opts), {}, { operatorMap: defaultDateTimeNLOperatorMap }));
227
225
  if ((operatorLowerCase === "in" || operatorLowerCase === "notin" || operatorLowerCase === "between" || operatorLowerCase === "notbetween") && !rule.value) return "";
228
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
229
- const valueAsDateArray = valueAsArray.map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
226
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
230
227
  switch (operatorLowerCase) {
231
228
  case "in":
232
229
  case "notin":
@@ -243,8 +240,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
243
240
  var _opts$translations$an, _opts$translations;
244
241
  if (valueAsDateArray.length < 2) return "";
245
242
  const [first, second] = valueAsDateArray;
246
- const orderedArray = apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first];
247
- finalValue = orderedArray.map(([originalValue, value]) => datetimeValueProcessorNL({
243
+ finalValue = (apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first]).map(([originalValue, value]) => datetimeValueProcessorNL({
248
244
  field: rule.field,
249
245
  operator: "=",
250
246
  value
@@ -278,7 +274,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
278
274
  //#region src/getDatetimeRuleProcessorSQL.ts
279
275
  /**
280
276
  * Generates a value processor with date/time features for use by
281
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "sql" format and "ansi" preset.
277
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "sql" format and "ansi" preset.
282
278
  */
283
279
  const getDatetimeValueProcessorANSI = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
284
280
  var _opts$context;
@@ -286,7 +282,7 @@ const getDatetimeValueProcessorANSI = ({ toISOStringDateOnly, toISOString }) =>
286
282
  return defaultValueProcessorByRule(_objectSpread2(_objectSpread2({}, rule), {}, { value: toISOString(rule.value) }), opts);
287
283
  };
288
284
  /**
289
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
285
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
290
286
  * the "sql" format and "mssql" preset.
291
287
  */
292
288
  const getDatetimeValueProcessorMSSQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -296,7 +292,7 @@ const getDatetimeValueProcessorMSSQL = ({ toISOStringDateOnly, toISOString }) =>
296
292
  return defaultValueProcessorByRule(_objectSpread2(_objectSpread2({}, rule), {}, { value }), _objectSpread2(_objectSpread2({}, opts), {}, { wrapValueWith: [`cast(`, ` as ${datatype})`] }));
297
293
  };
298
294
  /**
299
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
295
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
300
296
  * the "sql" format and "mysql" preset.
301
297
  */
302
298
  const getDatetimeValueProcessorMySQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -306,7 +302,7 @@ const getDatetimeValueProcessorMySQL = ({ toISOStringDateOnly, toISOString }) =>
306
302
  return defaultValueProcessorByRule(_objectSpread2(_objectSpread2({}, rule), {}, { value }), _objectSpread2(_objectSpread2({}, opts), {}, { wrapValueWith: [`cast(`, ` as ${datatype})`] }));
307
303
  };
308
304
  /**
309
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
305
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
310
306
  * the "sql" format and "oracle" preset.
311
307
  */
312
308
  const getDatetimeValueProcessorOracle = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -316,7 +312,7 @@ const getDatetimeValueProcessorOracle = ({ toISOStringDateOnly, toISOString }) =
316
312
  return defaultValueProcessorByRule(_objectSpread2(_objectSpread2({}, rule), {}, { value }), _objectSpread2(_objectSpread2({}, opts), {}, { wrapValueWith: [datatype, ``] }));
317
313
  };
318
314
  /**
319
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
315
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
320
316
  * the "sql" format and "postgresql" preset.
321
317
  */
322
318
  const getDatetimeValueProcessorPostgreSQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -334,7 +330,7 @@ const presetToValueProcessorMap = {
334
330
  sqlite: getDatetimeValueProcessorANSI
335
331
  };
336
332
  /**
337
- * Generates a rule processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
333
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
338
334
  * the "sql" format.
339
335
  */
340
336
  const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
@@ -346,8 +342,7 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
346
342
  let finalValue = "";
347
343
  if (rule.valueSource === "field" || !processIsDateField(context.isDateField, rule, opts)) return defaultRuleProcessorSQL(rule, opts);
348
344
  const valueProcessor = presetToValueProcessorMap[opts.preset](apiFns);
349
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
350
- const valueAsDateArray = valueAsArray.map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
345
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
351
346
  switch (operatorLowerCase) {
352
347
  case "in":
353
348
  case "not in":
@@ -363,8 +358,7 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
363
358
  {
364
359
  if (valueAsDateArray.length < 2) return "";
365
360
  const [first, second] = valueAsDateArray;
366
- const orderedArray = apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first];
367
- finalValue = orderedArray.map(([originalValue, value]) => valueProcessor({
361
+ finalValue = (apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first]).map(([originalValue, value]) => valueProcessor({
368
362
  field: rule.field,
369
363
  operator: "=",
370
364
  value
@@ -389,4 +383,4 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
389
383
 
390
384
  //#endregion
391
385
  export { datetimeValueProcessorNL, defaultDateTimeNLOperatorMap, getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL, isISOStringDateOnly, processIsDateField };
392
- //# sourceMappingURL=getDatetimeRuleProcessorSQL-CutYTD23.js.map
386
+ //# sourceMappingURL=getDatetimeRuleProcessorSQL-CN80oEFK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDatetimeRuleProcessorSQL-CN80oEFK.js","names":["defaultIsDateField: IsDateFieldFunction","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule"],"sources":["../src/utils.ts","../src/getDatetimeJsonLogicOperations.ts","../src/getDatetimeRuleProcessorCEL.ts","../src/getDatetimeRuleProcessorMongoDBQuery.ts","../src/getDatetimeRuleProcessorNL.ts","../src/getDatetimeRuleProcessorSQL.ts"],"sourcesContent":["import type { RuleProcessor } from 'react-querybuilder';\nimport type { IsDateField, IsDateFieldFunction } from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n","import type { RQBDateTimeLibraryAPI, RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom operations for use with JsonLogic objects generated by\n * {@link datetimeRuleProcessorJsonLogic}.\n */\nexport const getDatetimeJsonLogicOperations = ({\n isAfter,\n isBefore,\n isSame,\n}: RQBDateTimeLibraryAPI): RQBJsonLogicDateTimeOperations => ({\n dateAfter: (a, b) => isAfter(a, b),\n dateBefore: (a, b) => isBefore(a, b),\n dateBetween: (a, b, c) =>\n isSame(b, a) ||\n isSame(b, c) ||\n (isAfter(b, a) && isBefore(b, c)) ||\n (isAfter(b, c) && isBefore(b, a)),\n dateNotBetween: (a, b, c) =>\n !isSame(b, a) &&\n !isSame(b, c) &&\n ((isBefore(a, c) && (isBefore(b, a) || isAfter(b, c))) ||\n (isAfter(a, c) && (isBefore(b, c) || isAfter(b, a)))),\n dateIn: (a, b) => b.some(v => isSame(a, v)),\n dateNotIn: (a, b) => b.every(v => !isSame(a, v)),\n dateNotOn: (a, b) => !isSame(a, b),\n dateOn: (a, b) => isSame(a, b),\n dateOnOrAfter: (a, b) => isAfter(a, b) || isSame(a, b),\n dateOnOrBefore: (a, b) => isBefore(a, b) || isSame(a, b),\n});\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorCEL, lc, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"cel\" format.\n */\nexport const getDatetimeRuleProcessorCEL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorCEL(rule, opts);\n }\n\n const ts = (d: string | Date) => `timestamp(\"${apiFns.toISOString(d)}\")`;\n\n const operatorTL = lc(rule.operator.replace(/^=$/, '=='));\n\n switch (operatorTL) {\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '>':\n case '>=':\n return `${rule.field} ${operatorTL} ${ts(rule.value)}`;\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operatorTL) {\n case 'in':\n case 'notin': {\n if (valueAsDateArray.length === 0) return '';\n const [prefix, suffix] = shouldNegate(operatorTL) ? ['!(', ')'] : ['', ''];\n return `${prefix}${rule.field} in [${valueAsDateArray\n .map(val => ts(val))\n .join(', ')}]${suffix}`;\n }\n\n case 'between':\n case 'notbetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n return operatorTL === 'between'\n ? `(${rule.field} >= ${ts(firstDate)} && ${rule.field} <= ${ts(secondDate)})`\n : `(${rule.field} < ${ts(firstDate)} || ${rule.field} > ${ts(secondDate)})`;\n }\n }\n\n return defaultRuleProcessorCEL(rule, opts);\n };\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorMongoDBQuery, mongoOperators, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"mongodb_query\" format.\n */\nexport const getDatetimeRuleProcessorMongoDBQuery =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { field, operator, value, valueSource } = rule;\n\n if (valueSource === 'field' || !processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n }\n\n if (operator === '=') {\n return { [field]: apiFns.toDate(value) };\n }\n\n switch (operator) {\n case '<':\n case '<=':\n case '!=':\n case '>':\n case '>=':\n return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operator) {\n case 'in':\n case 'notIn':\n return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };\n\n case 'between':\n case 'notBetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first, second) ? [first, second] : [second, first];\n return operator === 'between'\n ? { [field]: { $gte: orderedArray[0], $lte: orderedArray[1] } }\n : {\n $or: [{ [field]: { $lt: orderedArray[0] } }, { [field]: { $gt: orderedArray[1] } }],\n };\n }\n }\n\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n };\n","import type { ExportOperatorMap, RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultOperatorProcessorNL,\n defaultRuleProcessorNL,\n getQuotedFieldName,\n lc,\n normalizeConstituentWordOrder,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\nexport const defaultDateTimeNLOperatorMap: ExportOperatorMap = {\n // '=': 'is',\n // '!=': 'is not',\n '<': 'is before',\n '>': 'is after',\n '<=': 'is on or before',\n '>=': 'is on or after',\n in: ['is one of the dates', 'is the same as a date in'],\n notin: ['is not one of the dates', 'is not the same as any date in'],\n between: ['is between', 'is between the dates in'],\n notbetween: ['is not between', 'is not between the dates in'],\n};\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"natural_language\" format.\n */\nexport const datetimeValueProcessorNL: ValueProcessorByRule = (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n ...opts?.context?.dateFormat,\n }).format(rule.value);\n }\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n timeStyle: 'long',\n ...opts?.context?.dateTimeFormat,\n }).format(rule.value);\n};\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"natural_language\" format.\n */\nexport const getDatetimeRuleProcessorNL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operatorLowerCase = lc(rule.operator);\n let finalValue = '';\n\n // istanbul ignore next\n const {\n fieldData,\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n operatorProcessor = defaultOperatorProcessorNL,\n // valueProcessor = datetimeValueProcessorNL,\n wordOrder = 'SVO',\n context = {},\n operatorMap = defaultDateTimeNLOperatorMap,\n } = opts;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorNL(rule, opts);\n }\n\n if (rule.valueSource === 'field') {\n return defaultRuleProcessorNL(rule, { ...opts, operatorMap: defaultDateTimeNLOperatorMap });\n }\n\n if (\n (operatorLowerCase === 'in' ||\n operatorLowerCase === 'notin' ||\n operatorLowerCase === 'between' ||\n operatorLowerCase === 'notbetween') &&\n !rule.value\n ) {\n return '';\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'notin':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { ...context, originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'notbetween':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n )\n .join(` ${opts.translations?.and ?? 'and'} `);\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = originalValue\n ? datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n : '';\n }\n }\n\n const processedField = getQuotedFieldName(fieldData?.label ?? rule.field, {\n quoteFieldNamesWith,\n fieldIdentifierSeparator,\n });\n\n const processedOperator = operatorProcessor(rule, {\n ...opts,\n operatorMap: { ...defaultDateTimeNLOperatorMap, ...operatorMap },\n });\n\n const wordOrderMap = {\n S: processedField,\n V: processedOperator,\n O: finalValue,\n };\n\n return normalizeConstituentWordOrder(wordOrder)\n .map(term => `${wordOrderMap[term]}`)\n .join(' ')\n .trim();\n };\n","import type { RuleProcessor, SQLPreset, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultRuleProcessorSQL,\n defaultValueProcessorByRule,\n getQuotedFieldName,\n lc,\n mapSQLOperator,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"sql\" format and \"ansi\" preset.\n */\nexport const getDatetimeValueProcessorANSI =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return defaultValueProcessorByRule({ ...rule, value: toISOStringDateOnly(rule.value) }, opts);\n }\n return defaultValueProcessorByRule({ ...rule, value: toISOString(rule.value as Date) }, opts);\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mssql\" preset.\n */\nexport const getDatetimeValueProcessorMSSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:small)?datetime/i.test(opts?.fieldData?.datatype as string)\n ? 'datetimeoffset'\n : 'date';\n const value =\n datatype === 'datetimeoffset' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mysql\" preset.\n */\nexport const getDatetimeValueProcessorMySQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:datetime|timestamp)/i.test(opts?.fieldData?.datatype as string)\n ? 'datetime'\n : 'date';\n const value =\n datatype === 'datetime' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"oracle\" preset.\n */\nexport const getDatetimeValueProcessorOracle =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n // Oracle date format for _reading_ ISO 8601: 'YYYY-MM-DD\"T\"HH24:MI:SS.ff3\"Z\"'\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp'\n ? toISOString(rule.value).replaceAll('T', ' ').replace('Z', ' UTC')\n : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"postgresql\" preset.\n */\nexport const getDatetimeValueProcessorPostgreSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\nconst presetToValueProcessorMap = {\n ansi: getDatetimeValueProcessorANSI,\n mssql: getDatetimeValueProcessorMSSQL,\n mysql: getDatetimeValueProcessorMySQL,\n oracle: getDatetimeValueProcessorOracle,\n postgresql: getDatetimeValueProcessorPostgreSQL,\n sqlite: getDatetimeValueProcessorANSI,\n} satisfies Record<SQLPreset, (apiFns: RQBDateTimeLibraryAPI) => ValueProcessorByRule>;\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format.\n */\nexport const getDatetimeRuleProcessorSQL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operator = mapSQLOperator(rule.operator);\n const operatorLowerCase = lc(operator);\n // istanbul ignore next\n const {\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n context = {},\n } = opts;\n let finalValue = '';\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorSQL(rule, opts);\n }\n\n const valueProcessor = presetToValueProcessorMap[opts.preset!](apiFns);\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'not in':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n valueProcessor(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'not between':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n )\n )\n .join(' and ');\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n );\n }\n }\n\n return `${getQuotedFieldName(rule.field, { quoteFieldNamesWith, fieldIdentifierSeparator })} ${operator} ${finalValue}`.trim();\n };\n"],"mappings":"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"}
@@ -35,7 +35,7 @@ const getDatetimeJsonLogicOperations = ({ isAfter, isBefore, isSame }) => ({
35
35
  const shouldNegate = (op) => /^(does)?not/i.test(op);
36
36
  /**
37
37
  * Generates a rule processor with date/time features for use by
38
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "cel" format.
38
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "cel" format.
39
39
  */
40
40
  const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
41
41
  const opts = options ?? ( /* istanbul ignore next */ {});
@@ -51,8 +51,7 @@ const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
51
51
  case ">":
52
52
  case ">=": return `${rule.field} ${operatorTL} ${ts(rule.value)}`;
53
53
  }
54
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
55
- const valueAsDateArray = valueAsArray.map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
54
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
56
55
  switch (operatorTL) {
57
56
  case "in":
58
57
  case "notin": {
@@ -75,7 +74,7 @@ const getDatetimeRuleProcessorCEL = (apiFns) => (rule, options) => {
75
74
  //#region src/getDatetimeRuleProcessorMongoDBQuery.ts
76
75
  /**
77
76
  * Generates a rule processor with date/time features for use by
78
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "mongodb_query" format.
77
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "mongodb_query" format.
79
78
  */
80
79
  const getDatetimeRuleProcessorMongoDBQuery = (apiFns) => (rule, options) => {
81
80
  const opts = options ?? ( /* istanbul ignore next */ {});
@@ -89,8 +88,7 @@ const getDatetimeRuleProcessorMongoDBQuery = (apiFns) => (rule, options) => {
89
88
  case ">":
90
89
  case ">=": return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };
91
90
  }
92
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
93
- const valueAsDateArray = valueAsArray.map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
91
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
94
92
  switch (operator) {
95
93
  case "in":
96
94
  case "notIn": return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };
@@ -122,7 +120,7 @@ const defaultDateTimeNLOperatorMap = {
122
120
  };
123
121
  /**
124
122
  * Generates a value processor with date/time features for use by
125
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "natural_language" format.
123
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "natural_language" format.
126
124
  */
127
125
  const datetimeValueProcessorNL = (rule, opts) => {
128
126
  if (isISOStringDateOnly(opts?.context?.originalValue)) return new Intl.DateTimeFormat(opts?.context?.locales, {
@@ -136,7 +134,7 @@ const datetimeValueProcessorNL = (rule, opts) => {
136
134
  }).format(rule.value);
137
135
  };
138
136
  /**
139
- * Generates a rule processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
137
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
140
138
  * the "natural_language" format.
141
139
  */
142
140
  const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
@@ -151,8 +149,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
151
149
  operatorMap: defaultDateTimeNLOperatorMap
152
150
  });
153
151
  if ((operatorLowerCase === "in" || operatorLowerCase === "notin" || operatorLowerCase === "between" || operatorLowerCase === "notbetween") && !rule.value) return "";
154
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
155
- const valueAsDateArray = valueAsArray.map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
152
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
156
153
  switch (operatorLowerCase) {
157
154
  case "in":
158
155
  case "notin":
@@ -174,8 +171,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
174
171
  {
175
172
  if (valueAsDateArray.length < 2) return "";
176
173
  const [first, second] = valueAsDateArray;
177
- const orderedArray = apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first];
178
- finalValue = orderedArray.map(([originalValue, value]) => datetimeValueProcessorNL({
174
+ finalValue = (apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first]).map(([originalValue, value]) => datetimeValueProcessorNL({
179
175
  field: rule.field,
180
176
  operator: "=",
181
177
  value
@@ -226,7 +222,7 @@ const getDatetimeRuleProcessorNL = (apiFns) => (rule, options) => {
226
222
  //#region src/getDatetimeRuleProcessorSQL.ts
227
223
  /**
228
224
  * Generates a value processor with date/time features for use by
229
- * {@link react-querybuilder!index.formatQuery formatQuery} with the "sql" format and "ansi" preset.
225
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "sql" format and "ansi" preset.
230
226
  */
231
227
  const getDatetimeValueProcessorANSI = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
232
228
  if (isISOStringDateOnly(opts?.context?.originalValue)) return defaultValueProcessorByRule({
@@ -239,7 +235,7 @@ const getDatetimeValueProcessorANSI = ({ toISOStringDateOnly, toISOString }) =>
239
235
  }, opts);
240
236
  };
241
237
  /**
242
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
238
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
243
239
  * the "sql" format and "mssql" preset.
244
240
  */
245
241
  const getDatetimeValueProcessorMSSQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -254,7 +250,7 @@ const getDatetimeValueProcessorMSSQL = ({ toISOStringDateOnly, toISOString }) =>
254
250
  });
255
251
  };
256
252
  /**
257
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
253
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
258
254
  * the "sql" format and "mysql" preset.
259
255
  */
260
256
  const getDatetimeValueProcessorMySQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -269,7 +265,7 @@ const getDatetimeValueProcessorMySQL = ({ toISOStringDateOnly, toISOString }) =>
269
265
  });
270
266
  };
271
267
  /**
272
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
268
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
273
269
  * the "sql" format and "oracle" preset.
274
270
  */
275
271
  const getDatetimeValueProcessorOracle = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -284,7 +280,7 @@ const getDatetimeValueProcessorOracle = ({ toISOStringDateOnly, toISOString }) =
284
280
  });
285
281
  };
286
282
  /**
287
- * Generates a value processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
283
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
288
284
  * the "sql" format and "postgresql" preset.
289
285
  */
290
286
  const getDatetimeValueProcessorPostgreSQL = ({ toISOStringDateOnly, toISOString }) => (rule, opts) => {
@@ -307,7 +303,7 @@ const presetToValueProcessorMap = {
307
303
  sqlite: getDatetimeValueProcessorANSI
308
304
  };
309
305
  /**
310
- * Generates a rule processor with date/time features for use by {@link react-querybuilder!index.formatQuery formatQuery} with
306
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
311
307
  * the "sql" format.
312
308
  */
313
309
  const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
@@ -319,8 +315,7 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
319
315
  let finalValue = "";
320
316
  if (rule.valueSource === "field" || !processIsDateField(context.isDateField, rule, opts)) return defaultRuleProcessorSQL(rule, opts);
321
317
  const valueProcessor = presetToValueProcessorMap[opts.preset](apiFns);
322
- const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
323
- const valueAsDateArray = valueAsArray.map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
318
+ const valueAsDateArray = toArray(rule.value, { retainEmptyStrings: false }).map((v) => [v, apiFns.toDate(v)]).filter((v) => apiFns.isValid(v[1]));
324
319
  switch (operatorLowerCase) {
325
320
  case "in":
326
321
  case "not in":
@@ -339,8 +334,7 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
339
334
  {
340
335
  if (valueAsDateArray.length < 2) return "";
341
336
  const [first, second] = valueAsDateArray;
342
- const orderedArray = apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first];
343
- finalValue = orderedArray.map(([originalValue, value]) => valueProcessor({
337
+ finalValue = (apiFns.isBefore(first[1], second[1]) ? [first, second] : [second, first]).map(([originalValue, value]) => valueProcessor({
344
338
  field: rule.field,
345
339
  operator: "=",
346
340
  value
@@ -370,4 +364,4 @@ const getDatetimeRuleProcessorSQL = (apiFns) => (rule, options) => {
370
364
 
371
365
  //#endregion
372
366
  export { datetimeValueProcessorNL, defaultDateTimeNLOperatorMap, getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL, isISOStringDateOnly, processIsDateField };
373
- //# sourceMappingURL=getDatetimeRuleProcessorSQL-CocyaiI5.mjs.map
367
+ //# sourceMappingURL=getDatetimeRuleProcessorSQL-KYRPP9qd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDatetimeRuleProcessorSQL-KYRPP9qd.mjs","names":["defaultIsDateField: IsDateFieldFunction","defaultDateTimeNLOperatorMap: ExportOperatorMap","datetimeValueProcessorNL: ValueProcessorByRule"],"sources":["../src/utils.ts","../src/getDatetimeJsonLogicOperations.ts","../src/getDatetimeRuleProcessorCEL.ts","../src/getDatetimeRuleProcessorMongoDBQuery.ts","../src/getDatetimeRuleProcessorNL.ts","../src/getDatetimeRuleProcessorSQL.ts"],"sourcesContent":["import type { RuleProcessor } from 'react-querybuilder';\nimport type { IsDateField, IsDateFieldFunction } from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n","import type { RQBDateTimeLibraryAPI, RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom operations for use with JsonLogic objects generated by\n * {@link datetimeRuleProcessorJsonLogic}.\n */\nexport const getDatetimeJsonLogicOperations = ({\n isAfter,\n isBefore,\n isSame,\n}: RQBDateTimeLibraryAPI): RQBJsonLogicDateTimeOperations => ({\n dateAfter: (a, b) => isAfter(a, b),\n dateBefore: (a, b) => isBefore(a, b),\n dateBetween: (a, b, c) =>\n isSame(b, a) ||\n isSame(b, c) ||\n (isAfter(b, a) && isBefore(b, c)) ||\n (isAfter(b, c) && isBefore(b, a)),\n dateNotBetween: (a, b, c) =>\n !isSame(b, a) &&\n !isSame(b, c) &&\n ((isBefore(a, c) && (isBefore(b, a) || isAfter(b, c))) ||\n (isAfter(a, c) && (isBefore(b, c) || isAfter(b, a)))),\n dateIn: (a, b) => b.some(v => isSame(a, v)),\n dateNotIn: (a, b) => b.every(v => !isSame(a, v)),\n dateNotOn: (a, b) => !isSame(a, b),\n dateOn: (a, b) => isSame(a, b),\n dateOnOrAfter: (a, b) => isAfter(a, b) || isSame(a, b),\n dateOnOrBefore: (a, b) => isBefore(a, b) || isSame(a, b),\n});\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorCEL, lc, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"cel\" format.\n */\nexport const getDatetimeRuleProcessorCEL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorCEL(rule, opts);\n }\n\n const ts = (d: string | Date) => `timestamp(\"${apiFns.toISOString(d)}\")`;\n\n const operatorTL = lc(rule.operator.replace(/^=$/, '=='));\n\n switch (operatorTL) {\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '>':\n case '>=':\n return `${rule.field} ${operatorTL} ${ts(rule.value)}`;\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operatorTL) {\n case 'in':\n case 'notin': {\n if (valueAsDateArray.length === 0) return '';\n const [prefix, suffix] = shouldNegate(operatorTL) ? ['!(', ')'] : ['', ''];\n return `${prefix}${rule.field} in [${valueAsDateArray\n .map(val => ts(val))\n .join(', ')}]${suffix}`;\n }\n\n case 'between':\n case 'notbetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n return operatorTL === 'between'\n ? `(${rule.field} >= ${ts(firstDate)} && ${rule.field} <= ${ts(secondDate)})`\n : `(${rule.field} < ${ts(firstDate)} || ${rule.field} > ${ts(secondDate)})`;\n }\n }\n\n return defaultRuleProcessorCEL(rule, opts);\n };\n","import type { RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorMongoDBQuery, mongoOperators, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"mongodb_query\" format.\n */\nexport const getDatetimeRuleProcessorMongoDBQuery =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { field, operator, value, valueSource } = rule;\n\n if (valueSource === 'field' || !processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n }\n\n if (operator === '=') {\n return { [field]: apiFns.toDate(value) };\n }\n\n switch (operator) {\n case '<':\n case '<=':\n case '!=':\n case '>':\n case '>=':\n return { [field]: { [mongoOperators[operator]]: apiFns.toDate(value) } };\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map(v => apiFns.toDate(v))\n .filter(dateVal => apiFns.isValid(dateVal));\n\n switch (operator) {\n case 'in':\n case 'notIn':\n return { [field]: { [mongoOperators[operator]]: valueAsDateArray } };\n\n case 'between':\n case 'notBetween': {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first, second) ? [first, second] : [second, first];\n return operator === 'between'\n ? { [field]: { $gte: orderedArray[0], $lte: orderedArray[1] } }\n : {\n $or: [{ [field]: { $lt: orderedArray[0] } }, { [field]: { $gt: orderedArray[1] } }],\n };\n }\n }\n\n return defaultRuleProcessorMongoDBQuery(rule, opts);\n };\n","import type { ExportOperatorMap, RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultOperatorProcessorNL,\n defaultRuleProcessorNL,\n getQuotedFieldName,\n lc,\n normalizeConstituentWordOrder,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\nexport const defaultDateTimeNLOperatorMap: ExportOperatorMap = {\n // '=': 'is',\n // '!=': 'is not',\n '<': 'is before',\n '>': 'is after',\n '<=': 'is on or before',\n '>=': 'is on or after',\n in: ['is one of the dates', 'is the same as a date in'],\n notin: ['is not one of the dates', 'is not the same as any date in'],\n between: ['is between', 'is between the dates in'],\n notbetween: ['is not between', 'is not between the dates in'],\n};\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"natural_language\" format.\n */\nexport const datetimeValueProcessorNL: ValueProcessorByRule = (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n ...opts?.context?.dateFormat,\n }).format(rule.value);\n }\n return new Intl.DateTimeFormat(opts?.context?.locales, {\n dateStyle: 'full',\n timeStyle: 'long',\n ...opts?.context?.dateTimeFormat,\n }).format(rule.value);\n};\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"natural_language\" format.\n */\nexport const getDatetimeRuleProcessorNL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operatorLowerCase = lc(rule.operator);\n let finalValue = '';\n\n // istanbul ignore next\n const {\n fieldData,\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n operatorProcessor = defaultOperatorProcessorNL,\n // valueProcessor = datetimeValueProcessorNL,\n wordOrder = 'SVO',\n context = {},\n operatorMap = defaultDateTimeNLOperatorMap,\n } = opts;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorNL(rule, opts);\n }\n\n if (rule.valueSource === 'field') {\n return defaultRuleProcessorNL(rule, { ...opts, operatorMap: defaultDateTimeNLOperatorMap });\n }\n\n if (\n (operatorLowerCase === 'in' ||\n operatorLowerCase === 'notin' ||\n operatorLowerCase === 'between' ||\n operatorLowerCase === 'notbetween') &&\n !rule.value\n ) {\n return '';\n }\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'notin':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { ...context, originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'notbetween':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n )\n .join(` ${opts.translations?.and ?? 'and'} `);\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = originalValue\n ? datetimeValueProcessorNL(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { ...context, originalValue } }\n )\n : '';\n }\n }\n\n const processedField = getQuotedFieldName(fieldData?.label ?? rule.field, {\n quoteFieldNamesWith,\n fieldIdentifierSeparator,\n });\n\n const processedOperator = operatorProcessor(rule, {\n ...opts,\n operatorMap: { ...defaultDateTimeNLOperatorMap, ...operatorMap },\n });\n\n const wordOrderMap = {\n S: processedField,\n V: processedOperator,\n O: finalValue,\n };\n\n return normalizeConstituentWordOrder(wordOrder)\n .map(term => `${wordOrderMap[term]}`)\n .join(' ')\n .trim();\n };\n","import type { RuleProcessor, SQLPreset, ValueProcessorByRule } from 'react-querybuilder';\nimport {\n defaultRuleProcessorSQL,\n defaultValueProcessorByRule,\n getQuotedFieldName,\n lc,\n mapSQLOperator,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly, processIsDateField } from './utils';\n\n/**\n * Generates a value processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"sql\" format and \"ansi\" preset.\n */\nexport const getDatetimeValueProcessorANSI =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n if (isISOStringDateOnly(opts?.context?.originalValue)) {\n return defaultValueProcessorByRule({ ...rule, value: toISOStringDateOnly(rule.value) }, opts);\n }\n return defaultValueProcessorByRule({ ...rule, value: toISOString(rule.value as Date) }, opts);\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mssql\" preset.\n */\nexport const getDatetimeValueProcessorMSSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:small)?datetime/i.test(opts?.fieldData?.datatype as string)\n ? 'datetimeoffset'\n : 'date';\n const value =\n datatype === 'datetimeoffset' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"mysql\" preset.\n */\nexport const getDatetimeValueProcessorMySQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^(?:datetime|timestamp)/i.test(opts?.fieldData?.datatype as string)\n ? 'datetime'\n : 'date';\n const value =\n datatype === 'datetime' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [`cast(`, ` as ${datatype})`] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"oracle\" preset.\n */\nexport const getDatetimeValueProcessorOracle =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n // Oracle date format for _reading_ ISO 8601: 'YYYY-MM-DD\"T\"HH24:MI:SS.ff3\"Z\"'\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp'\n ? toISOString(rule.value).replaceAll('T', ' ').replace('Z', ' UTC')\n : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\n/**\n * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format and \"postgresql\" preset.\n */\nexport const getDatetimeValueProcessorPostgreSQL =\n ({ toISOStringDateOnly, toISOString }: RQBDateTimeLibraryAPI): ValueProcessorByRule =>\n (rule, opts) => {\n const datatype = /^timestamp/i.test(opts?.fieldData?.datatype as string) ? 'timestamp' : 'date';\n const value =\n datatype === 'timestamp' ? toISOString(rule.value) : toISOStringDateOnly(rule.value);\n return defaultValueProcessorByRule(\n { ...rule, value },\n { ...opts, wrapValueWith: [datatype, ``] }\n );\n };\n\nconst presetToValueProcessorMap = {\n ansi: getDatetimeValueProcessorANSI,\n mssql: getDatetimeValueProcessorMSSQL,\n mysql: getDatetimeValueProcessorMySQL,\n oracle: getDatetimeValueProcessorOracle,\n postgresql: getDatetimeValueProcessorPostgreSQL,\n sqlite: getDatetimeValueProcessorANSI,\n} satisfies Record<SQLPreset, (apiFns: RQBDateTimeLibraryAPI) => ValueProcessorByRule>;\n\n/**\n * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with\n * the \"sql\" format.\n */\nexport const getDatetimeRuleProcessorSQL =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const operator = mapSQLOperator(rule.operator);\n const operatorLowerCase = lc(operator);\n // istanbul ignore next\n const {\n quoteFieldNamesWith = ['', ''] as [string, string],\n fieldIdentifierSeparator = '',\n context = {},\n } = opts;\n let finalValue = '';\n\n if (rule.valueSource === 'field' || !processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorSQL(rule, opts);\n }\n\n const valueProcessor = presetToValueProcessorMap[opts.preset!](apiFns);\n\n const valueAsArray: string[] = toArray(rule.value, { retainEmptyStrings: false });\n const valueAsDateArray = valueAsArray\n .map((v): [string, Date] => [v, apiFns.toDate(v)])\n .filter(v => apiFns.isValid(v[1]));\n\n switch (operatorLowerCase) {\n case 'in':\n case 'not in':\n {\n if (valueAsDateArray.length === 0) return '';\n finalValue = `(${valueAsDateArray\n .map(value =>\n valueProcessor(\n { field: rule.field, operator: '=', value: value[1] },\n { ...opts, context: { originalValue: value[0] } }\n )\n )\n .join(', ')})`;\n }\n break;\n\n case 'between':\n case 'not between':\n {\n if (valueAsDateArray.length < 2) return '';\n const [first, second] = valueAsDateArray;\n const orderedArray = apiFns.isBefore(first[1], second[1])\n ? [first, second]\n : [second, first];\n finalValue = orderedArray\n .map(([originalValue, value]) =>\n valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n )\n )\n .join(' and ');\n }\n break;\n\n default: {\n const [originalValue, value] = valueAsDateArray[0] ?? ['', ''];\n finalValue = valueProcessor(\n { field: rule.field, operator: '=', value },\n { ...opts, context: { originalValue } }\n );\n }\n }\n\n return `${getQuotedFieldName(rule.field, { quoteFieldNamesWith, fieldIdentifierSeparator })} ${operator} ${finalValue}`.trim();\n };\n"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { ExportOperatorMap, IsDateField, IsDateFieldFunction, RQBDateTimeJsonLogic, RQBDateTimeLibraryAPI, RQBJsonLogicDateAfter, RQBJsonLogicDateBefore, RQBJsonLogicDateBetween, RQBJsonLogicDateIn, RQBJsonLogicDateNotBetween, RQBJsonLogicDateNotIn, RQBJsonLogicDateNotOn, RQBJsonLogicDateOn, RQBJsonLogicDateOnOrAfter, RQBJsonLogicDateOnOrBefore, RQBJsonLogicDateTimeOperations, RuleProcessor, ValueProcessorByRule } from "./types-CDEkL2M_.mjs";
2
+
3
+ //#region src/datetimeRuleProcessorJsonLogic.d.ts
4
+
5
+ /**
6
+ * Date/time rule processor for use by {@link @react-querybuilder/core!formatQuery formatQuery}
7
+ * with the "jsonlogic" format.
8
+ *
9
+ * Note: Unlike other date/time rule processors from this library, this function does
10
+ * not require a date/time library API. Instead, the date/time library API is used by
11
+ * {@link getDatetimeJsonLogicOperations} during the evaluation process.
12
+ */
13
+ declare const datetimeRuleProcessorJsonLogic: RuleProcessor;
14
+ //#endregion
15
+ //#region src/getDatetimeJsonLogicOperations.d.ts
16
+ /**
17
+ * Custom operations for use with JsonLogic objects generated by
18
+ * {@link datetimeRuleProcessorJsonLogic}.
19
+ */
20
+ declare const getDatetimeJsonLogicOperations: ({
21
+ isAfter,
22
+ isBefore,
23
+ isSame
24
+ }: RQBDateTimeLibraryAPI) => RQBJsonLogicDateTimeOperations;
25
+ //#endregion
26
+ //#region src/getDatetimeRuleProcessorCEL.d.ts
27
+ /**
28
+ * Generates a rule processor with date/time features for use by
29
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "cel" format.
30
+ */
31
+ declare const getDatetimeRuleProcessorCEL: (apiFns: RQBDateTimeLibraryAPI) => RuleProcessor;
32
+ //#endregion
33
+ //#region src/getDatetimeRuleProcessorJSONata.d.ts
34
+ /**
35
+ * Generates a rule processor with date/time features for use by
36
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "jsonata" format.
37
+ */
38
+ declare const getDatetimeRuleProcessorJSONata: (apiFns: RQBDateTimeLibraryAPI) => RuleProcessor;
39
+ //#endregion
40
+ //#region src/getDatetimeRuleProcessorMongoDBQuery.d.ts
41
+ /**
42
+ * Generates a rule processor with date/time features for use by
43
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "mongodb_query" format.
44
+ */
45
+ declare const getDatetimeRuleProcessorMongoDBQuery: (apiFns: RQBDateTimeLibraryAPI) => RuleProcessor;
46
+ //#endregion
47
+ //#region src/getDatetimeRuleProcessorNL.d.ts
48
+ declare const defaultDateTimeNLOperatorMap: ExportOperatorMap;
49
+ /**
50
+ * Generates a value processor with date/time features for use by
51
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "natural_language" format.
52
+ */
53
+ declare const datetimeValueProcessorNL: ValueProcessorByRule;
54
+ /**
55
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
56
+ * the "natural_language" format.
57
+ */
58
+ declare const getDatetimeRuleProcessorNL: (apiFns: RQBDateTimeLibraryAPI) => RuleProcessor;
59
+ //#endregion
60
+ //#region src/getDatetimeRuleProcessorSQL.d.ts
61
+ /**
62
+ * Generates a value processor with date/time features for use by
63
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "sql" format and "ansi" preset.
64
+ */
65
+ declare const getDatetimeValueProcessorANSI: ({
66
+ toISOStringDateOnly,
67
+ toISOString
68
+ }: RQBDateTimeLibraryAPI) => ValueProcessorByRule;
69
+ /**
70
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
71
+ * the "sql" format and "mssql" preset.
72
+ */
73
+ declare const getDatetimeValueProcessorMSSQL: ({
74
+ toISOStringDateOnly,
75
+ toISOString
76
+ }: RQBDateTimeLibraryAPI) => ValueProcessorByRule;
77
+ /**
78
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
79
+ * the "sql" format and "mysql" preset.
80
+ */
81
+ declare const getDatetimeValueProcessorMySQL: ({
82
+ toISOStringDateOnly,
83
+ toISOString
84
+ }: RQBDateTimeLibraryAPI) => ValueProcessorByRule;
85
+ /**
86
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
87
+ * the "sql" format and "oracle" preset.
88
+ */
89
+ declare const getDatetimeValueProcessorOracle: ({
90
+ toISOStringDateOnly,
91
+ toISOString
92
+ }: RQBDateTimeLibraryAPI) => ValueProcessorByRule;
93
+ /**
94
+ * Generates a value processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
95
+ * the "sql" format and "postgresql" preset.
96
+ */
97
+ declare const getDatetimeValueProcessorPostgreSQL: ({
98
+ toISOStringDateOnly,
99
+ toISOString
100
+ }: RQBDateTimeLibraryAPI) => ValueProcessorByRule;
101
+ /**
102
+ * Generates a rule processor with date/time features for use by {@link @react-querybuilder/core!formatQuery formatQuery} with
103
+ * the "sql" format.
104
+ */
105
+ declare const getDatetimeRuleProcessorSQL: (apiFns: RQBDateTimeLibraryAPI) => RuleProcessor;
106
+ //#endregion
107
+ export { IsDateField, IsDateFieldFunction, RQBDateTimeJsonLogic, RQBDateTimeLibraryAPI, RQBJsonLogicDateAfter, RQBJsonLogicDateBefore, RQBJsonLogicDateBetween, RQBJsonLogicDateIn, RQBJsonLogicDateNotBetween, RQBJsonLogicDateNotIn, RQBJsonLogicDateNotOn, RQBJsonLogicDateOn, RQBJsonLogicDateOnOrAfter, RQBJsonLogicDateOnOrBefore, RQBJsonLogicDateTimeOperations, datetimeRuleProcessorJsonLogic, datetimeValueProcessorNL, defaultDateTimeNLOperatorMap, getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorJSONata, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL };
108
+ //# sourceMappingURL=react-querybuilder_datetime.d.mts.map