@react-querybuilder/datetime 8.8.3 → 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 (134) 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 +82 -775
  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 +76 -785
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +125 -934
  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 +113 -834
  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 +78 -779
  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 -6
  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 -6
  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 -7
  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 -7
  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 -6
  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-CN80oEFK.js +386 -0
  40. package/dist/getDatetimeRuleProcessorSQL-CN80oEFK.js.map +1 -0
  41. package/dist/getDatetimeRuleProcessorSQL-KYRPP9qd.mjs +367 -0
  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 +72 -57
  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 +66 -57
  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 +102 -114
  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 +72 -57
  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 +66 -57
  59. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js.map +1 -1
  60. package/dist/react-querybuilder_datetime.legacy-esm.js +113 -215
  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 +102 -114
  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 +68 -61
  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 +68 -61
  70. package/dist/react-querybuilder_datetime.luxon.mjs.map +1 -1
  71. package/dist/react-querybuilder_datetime.mjs +112 -215
  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 -2
  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 -2
  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 +24 -24
  91. package/dist/chunk-SLTJVKUE.mjs +0 -7
  92. package/dist/chunk-SLTJVKUE.mjs.map +0 -1
  93. package/dist/chunk-ZLH5EH6W.mjs +0 -713
  94. package/dist/chunk-ZLH5EH6W.mjs.map +0 -1
  95. package/dist/chunk-ZS6AX35I.js +0 -738
  96. package/dist/chunk-ZS6AX35I.js.map +0 -1
  97. package/dist/types/QueryBuilderDateTime.d.ts +0 -4
  98. package/dist/types/datetimeRuleProcessorJsonLogic.d.ts +0 -10
  99. package/dist/types/getDatetimeJsonLogicOperations.d.ts +0 -6
  100. package/dist/types/getDatetimeRuleProcessorCEL.d.ts +0 -7
  101. package/dist/types/getDatetimeRuleProcessorJSONata.d.ts +0 -7
  102. package/dist/types/getDatetimeRuleProcessorMongoDBQuery.d.ts +0 -7
  103. package/dist/types/getDatetimeRuleProcessorNL.d.ts +0 -13
  104. package/dist/types/getDatetimeRuleProcessorSQL.d.ts +0 -32
  105. package/dist/types/index.d.ts +0 -8
  106. package/dist/types/index.date-fns.d.ts +0 -48
  107. package/dist/types/index.dayjs.d.ts +0 -48
  108. package/dist/types/index.jsdate.d.ts +0 -48
  109. package/dist/types/index.luxon.d.ts +0 -48
  110. package/dist/types/rqbDateTimeLibraryAPI.date-fns.d.ts +0 -5
  111. package/dist/types/rqbDateTimeLibraryAPI.dayjs.d.ts +0 -5
  112. package/dist/types/rqbDateTimeLibraryAPI.jsdate.d.ts +0 -8
  113. package/dist/types/rqbDateTimeLibraryAPI.luxon.d.ts +0 -5
  114. package/dist/types/types.d.ts +0 -111
  115. package/dist/types/utils.d.ts +0 -5
  116. package/dist/types-esm/QueryBuilderDateTime.d.mts +0 -4
  117. package/dist/types-esm/datetimeRuleProcessorJsonLogic.d.mts +0 -10
  118. package/dist/types-esm/getDatetimeJsonLogicOperations.d.mts +0 -6
  119. package/dist/types-esm/getDatetimeRuleProcessorCEL.d.mts +0 -7
  120. package/dist/types-esm/getDatetimeRuleProcessorJSONata.d.mts +0 -7
  121. package/dist/types-esm/getDatetimeRuleProcessorMongoDBQuery.d.mts +0 -7
  122. package/dist/types-esm/getDatetimeRuleProcessorNL.d.mts +0 -13
  123. package/dist/types-esm/getDatetimeRuleProcessorSQL.d.mts +0 -32
  124. package/dist/types-esm/index.d.mts +0 -8
  125. package/dist/types-esm/index.date-fns.d.mts +0 -48
  126. package/dist/types-esm/index.dayjs.d.mts +0 -48
  127. package/dist/types-esm/index.jsdate.d.mts +0 -48
  128. package/dist/types-esm/index.luxon.d.mts +0 -48
  129. package/dist/types-esm/rqbDateTimeLibraryAPI.date-fns.d.mts +0 -5
  130. package/dist/types-esm/rqbDateTimeLibraryAPI.dayjs.d.mts +0 -5
  131. package/dist/types-esm/rqbDateTimeLibraryAPI.jsdate.d.mts +0 -8
  132. package/dist/types-esm/rqbDateTimeLibraryAPI.luxon.d.mts +0 -5
  133. package/dist/types-esm/types.d.mts +0 -111
  134. package/dist/types-esm/utils.d.mts +0 -5
@@ -1,65 +1,72 @@
1
- import {
2
- getDatetimeJsonLogicOperations,
3
- getDatetimeRuleProcessorCEL,
4
- getDatetimeRuleProcessorMongoDBQuery,
5
- getDatetimeRuleProcessorNL,
6
- getDatetimeRuleProcessorSQL,
7
- getDatetimeValueProcessorANSI,
8
- getDatetimeValueProcessorMSSQL,
9
- getDatetimeValueProcessorMySQL,
10
- getDatetimeValueProcessorOracle,
11
- getDatetimeValueProcessorPostgreSQL,
12
- isISOStringDateOnly
13
- } from "./chunk-ZLH5EH6W.mjs";
14
-
15
- // src/rqbDateTimeLibraryAPI.luxon.ts
1
+ import { getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL, isISOStringDateOnly } from "./getDatetimeRuleProcessorSQL-KYRPP9qd.mjs";
16
2
  import { DateTime } from "luxon";
17
- var toDateTime = function toDateTime2(a) {
18
- return typeof a === "string" ? DateTime.fromISO(a) : DateTime.fromJSDate(a);
19
- };
20
- var iso8601DateOnly = "yyyy-MM-dd";
21
- var rqbDateTimeLibraryAPI = { format: function format(d, fmt) {
22
- return toDateTime(d).toFormat(fmt.replace("YYYY-MM-DD", iso8601DateOnly));
23
- }, isAfter: function isAfter(a, b) {
24
- return toDateTime(a) > toDateTime(b);
25
- }, isBefore: function isBefore(a, b) {
26
- return toDateTime(a) < toDateTime(b);
27
- }, isSame: function isSame(a, b) {
28
- return isISOStringDateOnly(a) || isISOStringDateOnly(b) ? toDateTime(a).hasSame(toDateTime(b), "day") : +toDateTime(a) === +toDateTime(b);
29
- }, isValid: function isValid(d) {
30
- return toDateTime(d).isValid;
31
- }, toDate: function toDate(d) {
32
- return toDateTime(d).toJSDate();
33
- }, toISOString: function toISOString(d) {
34
- var dToDate = toDateTime(d);
35
- return dToDate.isValid ? dToDate.toJSDate().toISOString() : "";
36
- }, toISOStringDateOnly: function toISOStringDateOnly(d) {
37
- var dToDate = toDateTime(d);
38
- return dToDate.isValid ? dToDate.toFormat(iso8601DateOnly) : "";
39
- } };
40
3
 
41
- // src/index.luxon.ts
42
- var jsonLogicDateTimeOperations = getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);
43
- var datetimeRuleProcessorSQL = getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);
44
- var datetimeValueProcessorANSI = getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);
45
- var datetimeValueProcessorMSSQL = getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);
46
- var datetimeValueProcessorMySQL = getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);
47
- var datetimeValueProcessorOracle = getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);
48
- var datetimeValueProcessorPostgreSQL = getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);
49
- var datetimeRuleProcessorCEL = getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);
50
- var datetimeRuleProcessorMongoDBQuery = getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);
51
- var datetimeRuleProcessorNL = getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);
52
- export {
53
- datetimeRuleProcessorCEL,
54
- datetimeRuleProcessorMongoDBQuery,
55
- datetimeRuleProcessorNL,
56
- datetimeRuleProcessorSQL,
57
- datetimeValueProcessorANSI,
58
- datetimeValueProcessorMSSQL,
59
- datetimeValueProcessorMySQL,
60
- datetimeValueProcessorOracle,
61
- datetimeValueProcessorPostgreSQL,
62
- jsonLogicDateTimeOperations,
63
- rqbDateTimeLibraryAPI
4
+ //#region src/rqbDateTimeLibraryAPI.luxon.ts
5
+ const toDateTime = (a) => typeof a === "string" ? DateTime.fromISO(a) : DateTime.fromJSDate(a);
6
+ const iso8601DateOnly = "yyyy-MM-dd";
7
+ /**
8
+ * {@link RQBDateTimeLibraryAPI} for Luxon
9
+ */
10
+ const rqbDateTimeLibraryAPI = {
11
+ format: (d, fmt) => toDateTime(d).toFormat(fmt.replace("YYYY-MM-DD", iso8601DateOnly)),
12
+ isAfter: (a, b) => toDateTime(a) > toDateTime(b),
13
+ isBefore: (a, b) => toDateTime(a) < toDateTime(b),
14
+ isSame: (a, b) => isISOStringDateOnly(a) || isISOStringDateOnly(b) ? toDateTime(a).hasSame(toDateTime(b), "day") : +toDateTime(a) === +toDateTime(b),
15
+ isValid: (d) => toDateTime(d).isValid,
16
+ toDate: (d) => toDateTime(d).toJSDate(),
17
+ toISOString: (d) => {
18
+ const dToDate = toDateTime(d);
19
+ return dToDate.isValid ? dToDate.toJSDate().toISOString() : "";
20
+ },
21
+ toISOStringDateOnly: (d) => {
22
+ const dToDate = toDateTime(d);
23
+ return dToDate.isValid ? dToDate.toFormat(iso8601DateOnly) : "";
24
+ }
64
25
  };
26
+
27
+ //#endregion
28
+ //#region src/index.luxon.ts
29
+ /**
30
+ * Custom JsonLogic date/time operations using Luxon
31
+ */
32
+ const jsonLogicDateTimeOperations = getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);
33
+ /**
34
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "sql" format using Luxon
35
+ */
36
+ const datetimeRuleProcessorSQL = getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);
37
+ /**
38
+ * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for "sql" format ("ansi" preset) using Luxon
39
+ */
40
+ const datetimeValueProcessorANSI = getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);
41
+ /**
42
+ * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for "sql" format ("mssql" preset) using Luxon
43
+ */
44
+ const datetimeValueProcessorMSSQL = getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);
45
+ /**
46
+ * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for "sql" format ("mysql" preset) using Luxon
47
+ */
48
+ const datetimeValueProcessorMySQL = getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);
49
+ /**
50
+ * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for "sql" format ("oracle" preset) using Luxon
51
+ */
52
+ const datetimeValueProcessorOracle = getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);
53
+ /**
54
+ * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for "sql" format ("postgresql" preset) using Luxon
55
+ */
56
+ const datetimeValueProcessorPostgreSQL = getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);
57
+ /**
58
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "cel" format using Luxon
59
+ */
60
+ const datetimeRuleProcessorCEL = getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);
61
+ /**
62
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "mongodb_query" format using Luxon
63
+ */
64
+ const datetimeRuleProcessorMongoDBQuery = getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);
65
+ /**
66
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "natural_language" format using Luxon
67
+ */
68
+ const datetimeRuleProcessorNL = getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);
69
+
70
+ //#endregion
71
+ export { datetimeRuleProcessorCEL, datetimeRuleProcessorMongoDBQuery, datetimeRuleProcessorNL, datetimeRuleProcessorSQL, datetimeValueProcessorANSI, datetimeValueProcessorMSSQL, datetimeValueProcessorMySQL, datetimeValueProcessorOracle, datetimeValueProcessorPostgreSQL, jsonLogicDateTimeOperations, rqbDateTimeLibraryAPI };
65
72
  //# sourceMappingURL=react-querybuilder_datetime.luxon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/rqbDateTimeLibraryAPI.luxon.ts","../src/index.luxon.ts"],"sourcesContent":["import{DateTime}from\"luxon\";import{isISOStringDateOnly}from\"./utils\";var toDateTime=function toDateTime(a){return typeof a===\"string\"?DateTime.fromISO(a):DateTime.fromJSDate(a);};var iso8601DateOnly=\"yyyy-MM-dd\";export var rqbDateTimeLibraryAPI={format:function format(d,fmt){return toDateTime(d).toFormat(fmt.replace(\"YYYY-MM-DD\",iso8601DateOnly));},isAfter:function isAfter(a,b){return toDateTime(a)>toDateTime(b);},isBefore:function isBefore(a,b){return toDateTime(a)<toDateTime(b);},isSame:function isSame(a,b){return isISOStringDateOnly(a)||isISOStringDateOnly(b)?toDateTime(a).hasSame(toDateTime(b),\"day\"):+toDateTime(a)===+toDateTime(b);},isValid:function isValid(d){return toDateTime(d).isValid;},toDate:function toDate(d){return toDateTime(d).toJSDate();},toISOString:function toISOString(d){var dToDate=toDateTime(d);return dToDate.isValid?dToDate.toJSDate().toISOString():\"\";},toISOStringDateOnly:function toISOStringDateOnly(d){var dToDate=toDateTime(d);return dToDate.isValid?dToDate.toFormat(iso8601DateOnly):\"\";}};","import{getDatetimeJsonLogicOperations}from\"./getDatetimeJsonLogicOperations\";import{getDatetimeRuleProcessorCEL}from\"./getDatetimeRuleProcessorCEL\";import{getDatetimeRuleProcessorMongoDBQuery}from\"./getDatetimeRuleProcessorMongoDBQuery\";import{getDatetimeRuleProcessorNL}from\"./getDatetimeRuleProcessorNL\";import{getDatetimeRuleProcessorSQL,getDatetimeValueProcessorANSI,getDatetimeValueProcessorMSSQL,getDatetimeValueProcessorMySQL,getDatetimeValueProcessorOracle,getDatetimeValueProcessorPostgreSQL}from\"./getDatetimeRuleProcessorSQL\";import{rqbDateTimeLibraryAPI}from\"./rqbDateTimeLibraryAPI.luxon\";export var jsonLogicDateTimeOperations=getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);export var datetimeRuleProcessorSQL=getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);export var datetimeValueProcessorANSI=getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);export var datetimeValueProcessorMSSQL=getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);export var datetimeValueProcessorMySQL=getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);export var datetimeValueProcessorOracle=getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);export var datetimeValueProcessorPostgreSQL=getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);export var datetimeRuleProcessorCEL=getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);export var datetimeRuleProcessorMongoDBQuery=getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);export var datetimeRuleProcessorNL=getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);export*from\"./rqbDateTimeLibraryAPI.luxon\";"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAO,gBAAa;AAAiD,IAAI,aAAW,SAASA,YAAW,GAAE;AAAC,SAAO,OAAO,MAAI,WAAS,SAAS,QAAQ,CAAC,IAAE,SAAS,WAAW,CAAC;AAAE;AAAE,IAAI,kBAAgB;AAAoB,IAAI,wBAAsB,EAAC,QAAO,SAAS,OAAO,GAAE,KAAI;AAAC,SAAO,WAAW,CAAC,EAAE,SAAS,IAAI,QAAQ,cAAa,eAAe,CAAC;AAAE,GAAE,SAAQ,SAAS,QAAQ,GAAE,GAAE;AAAC,SAAO,WAAW,CAAC,IAAE,WAAW,CAAC;AAAE,GAAE,UAAS,SAAS,SAAS,GAAE,GAAE;AAAC,SAAO,WAAW,CAAC,IAAE,WAAW,CAAC;AAAE,GAAE,QAAO,SAAS,OAAO,GAAE,GAAE;AAAC,SAAO,oBAAoB,CAAC,KAAG,oBAAoB,CAAC,IAAE,WAAW,CAAC,EAAE,QAAQ,WAAW,CAAC,GAAE,KAAK,IAAE,CAAC,WAAW,CAAC,MAAI,CAAC,WAAW,CAAC;AAAE,GAAE,SAAQ,SAAS,QAAQ,GAAE;AAAC,SAAO,WAAW,CAAC,EAAE;AAAQ,GAAE,QAAO,SAAS,OAAO,GAAE;AAAC,SAAO,WAAW,CAAC,EAAE,SAAS;AAAE,GAAE,aAAY,SAAS,YAAY,GAAE;AAAC,MAAI,UAAQ,WAAW,CAAC;AAAE,SAAO,QAAQ,UAAQ,QAAQ,SAAS,EAAE,YAAY,IAAE;AAAG,GAAE,qBAAoB,SAAS,oBAAoB,GAAE;AAAC,MAAI,UAAQ,WAAW,CAAC;AAAE,SAAO,QAAQ,UAAQ,QAAQ,SAAS,eAAe,IAAE;AAAG,EAAC;;;ACAla,IAAI,8BAA4B,+BAA+B,qBAAqB;AAAS,IAAI,2BAAyB,4BAA4B,qBAAqB;AAAS,IAAI,6BAA2B,8BAA8B,qBAAqB;AAAS,IAAI,8BAA4B,+BAA+B,qBAAqB;AAAS,IAAI,8BAA4B,+BAA+B,qBAAqB;AAAS,IAAI,+BAA6B,gCAAgC,qBAAqB;AAAS,IAAI,mCAAiC,oCAAoC,qBAAqB;AAAS,IAAI,2BAAyB,4BAA4B,qBAAqB;AAAS,IAAI,oCAAkC,qCAAqC,qBAAqB;AAAS,IAAI,0BAAwB,2BAA2B,qBAAqB;","names":["toDateTime"]}
1
+ {"version":3,"file":"react-querybuilder_datetime.luxon.mjs","names":["rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI","jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations","datetimeRuleProcessorSQL: RuleProcessor","datetimeValueProcessorANSI: ValueProcessorByRule","datetimeValueProcessorMSSQL: ValueProcessorByRule","datetimeValueProcessorMySQL: ValueProcessorByRule","datetimeValueProcessorOracle: ValueProcessorByRule","datetimeValueProcessorPostgreSQL: ValueProcessorByRule","datetimeRuleProcessorCEL: ValueProcessorByRule","datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule","datetimeRuleProcessorNL: ValueProcessorByRule"],"sources":["../src/rqbDateTimeLibraryAPI.luxon.ts","../src/index.luxon.ts"],"sourcesContent":["import { DateTime } from 'luxon';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\nconst toDateTime = (a: string | Date) =>\n typeof a === 'string' ? DateTime.fromISO(a) : DateTime.fromJSDate(a);\nconst iso8601DateOnly = 'yyyy-MM-dd';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Luxon\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => toDateTime(d).toFormat(fmt.replace('YYYY-MM-DD', iso8601DateOnly)),\n isAfter: (a, b) => toDateTime(a) > toDateTime(b),\n isBefore: (a, b) => toDateTime(a) < toDateTime(b),\n isSame: (a, b) =>\n isISOStringDateOnly(a) || isISOStringDateOnly(b)\n ? toDateTime(a).hasSame(toDateTime(b), 'day')\n : +toDateTime(a) === +toDateTime(b),\n isValid: d => toDateTime(d).isValid,\n toDate: d => toDateTime(d).toJSDate(),\n toISOString: d => {\n const dToDate = toDateTime(d);\n return dToDate.isValid ? dToDate.toJSDate().toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = toDateTime(d);\n return dToDate.isValid ? dToDate.toFormat(iso8601DateOnly) : '';\n },\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/luxon\"` for enhanced date/time support using [Luxon](https://moment.github.io/luxon/).\n *\n * @module luxon\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.luxon';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using Luxon\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using Luxon\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using Luxon\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using Luxon\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using Luxon\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using Luxon\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using Luxon\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using Luxon\n */\nexport const datetimeRuleProcessorCEL: ValueProcessorByRule =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using Luxon\n */\nexport const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using Luxon\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.luxon';\n"],"mappings":";;;;AAIA,MAAM,cAAc,MAClB,OAAO,MAAM,WAAW,SAAS,QAAQ,EAAE,GAAG,SAAS,WAAW,EAAE;AACtE,MAAM,kBAAkB;;;;AAKxB,MAAaA,wBAA+C;CAC1D,SAAS,GAAG,QAAQ,WAAW,EAAE,CAAC,SAAS,IAAI,QAAQ,cAAc,gBAAgB,CAAC;CACtF,UAAU,GAAG,MAAM,WAAW,EAAE,GAAG,WAAW,EAAE;CAChD,WAAW,GAAG,MAAM,WAAW,EAAE,GAAG,WAAW,EAAE;CACjD,SAAS,GAAG,MACV,oBAAoB,EAAE,IAAI,oBAAoB,EAAE,GAC5C,WAAW,EAAE,CAAC,QAAQ,WAAW,EAAE,EAAE,MAAM,GAC3C,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;CACvC,UAAS,MAAK,WAAW,EAAE,CAAC;CAC5B,SAAQ,MAAK,WAAW,EAAE,CAAC,UAAU;CACrC,cAAa,MAAK;EAChB,MAAM,UAAU,WAAW,EAAE;AAC7B,SAAO,QAAQ,UAAU,QAAQ,UAAU,CAAC,aAAa,GAAG;;CAE9D,sBAAqB,MAAK;EACxB,MAAM,UAAU,WAAW,EAAE;AAC7B,SAAO,QAAQ,UAAU,QAAQ,SAAS,gBAAgB,GAAG;;CAEhE;;;;;;;ACJD,MAAaC,8BACX,+BAA+B,sBAAsB;;;;AAKvD,MAAaC,2BACX,4BAA4B,sBAAsB;;;;AAIpD,MAAaC,6BACX,8BAA8B,sBAAsB;;;;AAItD,MAAaC,8BACX,+BAA+B,sBAAsB;;;;AAIvD,MAAaC,8BACX,+BAA+B,sBAAsB;;;;AAIvD,MAAaC,+BACX,gCAAgC,sBAAsB;;;;AAIxD,MAAaC,mCACX,oCAAoC,sBAAsB;;;;AAK5D,MAAaC,2BACX,4BAA4B,sBAAsB;;;;AAKpD,MAAaC,oCACX,qCAAqC,sBAAsB;;;;AAK7D,MAAaC,0BACX,2BAA2B,sBAAsB"}
@@ -1,220 +1,117 @@
1
- import {
2
- datetimeValueProcessorNL,
3
- defaultDateTimeNLOperatorMap,
4
- getDatetimeJsonLogicOperations,
5
- getDatetimeRuleProcessorCEL,
6
- getDatetimeRuleProcessorMongoDBQuery,
7
- getDatetimeRuleProcessorNL,
8
- getDatetimeRuleProcessorSQL,
9
- getDatetimeValueProcessorANSI,
10
- getDatetimeValueProcessorMSSQL,
11
- getDatetimeValueProcessorMySQL,
12
- getDatetimeValueProcessorOracle,
13
- getDatetimeValueProcessorPostgreSQL,
14
- processIsDateField
15
- } from "./chunk-ZLH5EH6W.mjs";
1
+ import { datetimeValueProcessorNL, defaultDateTimeNLOperatorMap, getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL, processIsDateField } from "./getDatetimeRuleProcessorSQL-KYRPP9qd.mjs";
2
+ import { defaultRuleProcessorJSONata, defaultRuleProcessorJsonLogic, getQuotedFieldName, nullOrUndefinedOrEmpty, toArray } from "react-querybuilder";
16
3
 
17
- // src/datetimeRuleProcessorJsonLogic.ts
18
- import { defaultRuleProcessorJsonLogic, toArray } from "react-querybuilder";
19
- function _typeof(o) {
20
- "@babel/helpers - typeof";
21
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
22
- return typeof o2;
23
- } : function(o2) {
24
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
25
- }, _typeof(o);
26
- }
27
- function _defineProperty(e, r, t) {
28
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
29
- }
30
- function _toPropertyKey(t) {
31
- var i = _toPrimitive(t, "string");
32
- return "symbol" == _typeof(i) ? i : i + "";
33
- }
34
- function _toPrimitive(t, r) {
35
- if ("object" != _typeof(t) || !t) return t;
36
- var e = t[Symbol.toPrimitive];
37
- if (void 0 !== e) {
38
- var i = e.call(t, r || "default");
39
- if ("object" != _typeof(i)) return i;
40
- throw new TypeError("@@toPrimitive must return a primitive value.");
41
- }
42
- return ("string" === r ? String : Number)(t);
43
- }
44
- var dateOperationMap = { "!=": "dateNotOn", "<": "dateBefore", "<=": "dateOnOrBefore", "=": "dateOn", ">": "dateAfter", ">=": "dateOnOrAfter", between: "dateBetween", "in": "dateIn", notBetween: "dateNotBetween", notIn: "dateNotIn" };
45
- var datetimeRuleProcessorJsonLogic = function datetimeRuleProcessorJsonLogic2(rule, options) {
46
- var _opts$context;
47
- var opts = options !== null && options !== void 0 ? options : (
48
- /* istanbul ignore next */
49
- {}
50
- );
51
- if (!processIsDateField((_opts$context = opts.context) === null || _opts$context === void 0 ? void 0 : _opts$context.isDateField, rule, opts)) {
52
- return defaultRuleProcessorJsonLogic(rule, opts);
53
- }
54
- var field = rule.field, operator = rule.operator, value = rule.value, valueSource = rule.valueSource;
55
- var valueIsField = valueSource === "field";
56
- var fieldObject = { "var": field };
57
- var maybeFieldRenderer = function maybeFieldRenderer2(v) {
58
- return valueIsField ? { "var": "".concat(v) } : v;
59
- };
60
- switch (operator) {
61
- case "<":
62
- case "<=":
63
- case "=":
64
- case "!=":
65
- case ">":
66
- case ">=":
67
- return _defineProperty({}, dateOperationMap[operator], [fieldObject, maybeFieldRenderer(value)]);
68
- case "in":
69
- case "notIn": {
70
- var valueAsArray = toArray(value).map(function(v) {
71
- return maybeFieldRenderer(v);
72
- });
73
- return _defineProperty({}, dateOperationMap[operator], [fieldObject, valueAsArray]);
74
- }
75
- case "between":
76
- case "notBetween": {
77
- var _valueAsArray = toArray(value).map(function(v) {
78
- return maybeFieldRenderer(v);
79
- });
80
- if (_valueAsArray.length < 2) return false;
81
- return _defineProperty({}, dateOperationMap[operator], [_valueAsArray[0], fieldObject, _valueAsArray[1]]);
82
- }
83
- }
84
- return defaultRuleProcessorJsonLogic(rule, options);
4
+ //#region src/datetimeRuleProcessorJsonLogic.ts
5
+ const dateOperationMap = {
6
+ "!=": "dateNotOn",
7
+ "<": "dateBefore",
8
+ "<=": "dateOnOrBefore",
9
+ "=": "dateOn",
10
+ ">": "dateAfter",
11
+ ">=": "dateOnOrAfter",
12
+ between: "dateBetween",
13
+ in: "dateIn",
14
+ notBetween: "dateNotBetween",
15
+ notIn: "dateNotIn"
85
16
  };
86
-
87
- // src/getDatetimeRuleProcessorJSONata.ts
88
- import { defaultRuleProcessorJSONata, getQuotedFieldName, nullOrUndefinedOrEmpty, toArray as toArray2 } from "react-querybuilder";
89
- function _slicedToArray(r, e) {
90
- return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
91
- }
92
- function _nonIterableRest() {
93
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
94
- }
95
- function _unsupportedIterableToArray(r, a) {
96
- if (r) {
97
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
98
- var t = {}.toString.call(r).slice(8, -1);
99
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
100
- }
101
- }
102
- function _arrayLikeToArray(r, a) {
103
- (null == a || a > r.length) && (a = r.length);
104
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
105
- return n;
106
- }
107
- function _iterableToArrayLimit(r, l) {
108
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
109
- if (null != t) {
110
- var e, n, i, u, a = [], f = true, o = false;
111
- try {
112
- if (i = (t = t.call(r)).next, 0 === l) {
113
- if (Object(t) !== t) return;
114
- f = false;
115
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;
116
- } catch (r2) {
117
- o = true, n = r2;
118
- } finally {
119
- try {
120
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
121
- } finally {
122
- if (o) throw n;
123
- }
124
- }
125
- return a;
126
- }
127
- }
128
- function _arrayWithHoles(r) {
129
- if (Array.isArray(r)) return r;
130
- }
131
- var shouldNegate = function shouldNegate2(op) {
132
- return /^(does)?not/i.test(op);
133
- };
134
- var negate = function negate2(clause, negate22) {
135
- return negate22 ? "$not(".concat(clause, ")") : "".concat(clause);
136
- };
137
- var getDatetimeRuleProcessorJSONata = function getDatetimeRuleProcessorJSONata2(apiFns) {
138
- return function(rule, options) {
139
- var opts = options !== null && options !== void 0 ? options : (
140
- /* istanbul ignore next */
141
- {}
142
- );
143
- var _opts$context = opts.context, context = _opts$context === void 0 ? {} : _opts$context;
144
- var _opts$quoteFieldNames = opts.quoteFieldNamesWith, quoteFieldNamesWith = _opts$quoteFieldNames === void 0 ? ["", ""] : _opts$quoteFieldNames, _opts$fieldIdentifier = opts.fieldIdentifierSeparator, fieldIdentifierSeparator = _opts$fieldIdentifier === void 0 ? "" : _opts$fieldIdentifier;
145
- var field = rule.field, operator = rule.operator, value = rule.value, valueSource = rule.valueSource;
146
- if (!processIsDateField(context.isDateField, rule, opts)) {
147
- return defaultRuleProcessorJSONata(rule, opts);
148
- }
149
- var valueIsField = valueSource === "field";
150
- var fldToMs = function fldToMs2(f) {
151
- return "$toMillis(".concat(getQuotedFieldName(f, { quoteFieldNamesWith, fieldIdentifierSeparator }), ")");
152
- };
153
- var valToMs = function valToMs2(v) {
154
- return '$toMillis("'.concat(apiFns.toISOString(v), '")');
155
- };
156
- switch (operator) {
157
- case "<":
158
- case "<=":
159
- case "=":
160
- case "!=":
161
- case ">":
162
- case ">=":
163
- return "".concat(fldToMs(field), " ").concat(operator, " ").concat(valueIsField ? fldToMs(value) : valToMs(value));
164
- }
165
- var valueAsArray = toArray2(rule.value, { retainEmptyStrings: false });
166
- var valueAsDateArray = valueAsArray.map(function(v) {
167
- return apiFns.toDate(v);
168
- }).filter(function(dateVal) {
169
- return apiFns.isValid(dateVal);
170
- });
171
- switch (operator) {
172
- case "in":
173
- case "notIn": {
174
- if (valueIsField) {
175
- if (valueAsArray.length === 0) return "";
176
- return negate("".concat(fldToMs(field), " in [").concat(valueAsArray.map(function(val) {
177
- return fldToMs(val);
178
- }).join(", "), "]"), shouldNegate(operator));
179
- }
180
- if (valueAsDateArray.length === 0) return "";
181
- return negate("".concat(fldToMs(field), " in [").concat(valueAsDateArray.map(function(val) {
182
- return valToMs(val);
183
- }).join(", "), "]"), shouldNegate(operator));
184
- }
185
- case "between":
186
- case "notBetween": {
187
- if (valueAsArray.length < 2 || nullOrUndefinedOrEmpty(valueAsArray[0]) || nullOrUndefinedOrEmpty(valueAsArray[1]) || !valueIsField && valueAsDateArray.length < 2) {
188
- return "";
189
- }
190
- if (valueIsField) {
191
- var _valueAsArray = _slicedToArray(valueAsArray, 2), firstValue = _valueAsArray[0], secondValue = _valueAsArray[1];
192
- var expression2 = "".concat(fldToMs(field), " >= ").concat(fldToMs(firstValue), " and ").concat(fldToMs(field), " <= ").concat(fldToMs(secondValue));
193
- return operator === "between" ? "(".concat(expression2, ")") : negate(expression2, true);
194
- }
195
- var _valueAsDateArray = _slicedToArray(valueAsDateArray, 2), first = _valueAsDateArray[0], second = _valueAsDateArray[1];
196
- var _ref = apiFns.isBefore(first, second) ? [first, second] : [second, first], _ref2 = _slicedToArray(_ref, 2), firstDate = _ref2[0], secondDate = _ref2[1];
197
- var expression = "".concat(fldToMs(field), " >= ").concat(valToMs(firstDate), " and ").concat(fldToMs(field), " <= ").concat(valToMs(secondDate));
198
- return operator === "between" ? "(".concat(expression, ")") : negate(expression, true);
199
- }
200
- }
201
- return defaultRuleProcessorJSONata(rule, opts);
202
- };
17
+ /**
18
+ * Date/time rule processor for use by {@link @react-querybuilder/core!formatQuery formatQuery}
19
+ * with the "jsonlogic" format.
20
+ *
21
+ * Note: Unlike other date/time rule processors from this library, this function does
22
+ * not require a date/time library API. Instead, the date/time library API is used by
23
+ * {@link getDatetimeJsonLogicOperations} during the evaluation process.
24
+ */
25
+ const datetimeRuleProcessorJsonLogic = (rule, options) => {
26
+ const opts = options ?? ( /* istanbul ignore next */ {});
27
+ if (!processIsDateField(opts.context?.isDateField, rule, opts)) return defaultRuleProcessorJsonLogic(rule, opts);
28
+ const { field, operator, value, valueSource } = rule;
29
+ const valueIsField = valueSource === "field";
30
+ const fieldObject = { var: field };
31
+ const maybeFieldRenderer = (v) => valueIsField ? { var: `${v}` } : v;
32
+ switch (operator) {
33
+ case "<":
34
+ case "<=":
35
+ case "=":
36
+ case "!=":
37
+ case ">":
38
+ case ">=": return { [dateOperationMap[operator]]: [fieldObject, maybeFieldRenderer(value)] };
39
+ case "in":
40
+ case "notIn": {
41
+ const valueAsArray = toArray(value).map((v) => maybeFieldRenderer(v));
42
+ return { [dateOperationMap[operator]]: [fieldObject, valueAsArray] };
43
+ }
44
+ case "between":
45
+ case "notBetween": {
46
+ const valueAsArray = toArray(value).map((v) => maybeFieldRenderer(v));
47
+ if (valueAsArray.length < 2) return false;
48
+ return { [dateOperationMap[operator]]: [
49
+ valueAsArray[0],
50
+ fieldObject,
51
+ valueAsArray[1]
52
+ ] };
53
+ }
54
+ }
55
+ return defaultRuleProcessorJsonLogic(rule, options);
203
56
  };
204
- export {
205
- datetimeRuleProcessorJsonLogic,
206
- datetimeValueProcessorNL,
207
- defaultDateTimeNLOperatorMap,
208
- getDatetimeJsonLogicOperations,
209
- getDatetimeRuleProcessorCEL,
210
- getDatetimeRuleProcessorJSONata,
211
- getDatetimeRuleProcessorMongoDBQuery,
212
- getDatetimeRuleProcessorNL,
213
- getDatetimeRuleProcessorSQL,
214
- getDatetimeValueProcessorANSI,
215
- getDatetimeValueProcessorMSSQL,
216
- getDatetimeValueProcessorMySQL,
217
- getDatetimeValueProcessorOracle,
218
- getDatetimeValueProcessorPostgreSQL
57
+
58
+ //#endregion
59
+ //#region src/getDatetimeRuleProcessorJSONata.ts
60
+ const shouldNegate = (op) => /^(does)?not/i.test(op);
61
+ const negate = (clause, negate$1) => negate$1 ? `$not(${clause})` : `${clause}`;
62
+ /**
63
+ * Generates a rule processor with date/time features for use by
64
+ * {@link @react-querybuilder/core!formatQuery formatQuery} with the "jsonata" format.
65
+ */
66
+ const getDatetimeRuleProcessorJSONata = (apiFns) => (rule, options) => {
67
+ const opts = options ?? ( /* istanbul ignore next */ {});
68
+ const { context = {} } = opts;
69
+ // istanbul ignore next
70
+ const { quoteFieldNamesWith = ["", ""], fieldIdentifierSeparator = "" } = opts;
71
+ const { field, operator, value, valueSource } = rule;
72
+ if (!processIsDateField(context.isDateField, rule, opts)) return defaultRuleProcessorJSONata(rule, opts);
73
+ const valueIsField = valueSource === "field";
74
+ const fldToMs = (f) => `$toMillis(${getQuotedFieldName(f, {
75
+ quoteFieldNamesWith,
76
+ fieldIdentifierSeparator
77
+ })})`;
78
+ const valToMs = (v) => `$toMillis("${apiFns.toISOString(v)}")`;
79
+ switch (operator) {
80
+ case "<":
81
+ case "<=":
82
+ case "=":
83
+ case "!=":
84
+ case ">":
85
+ case ">=": return `${fldToMs(field)} ${operator} ${valueIsField ? fldToMs(value) : valToMs(value)}`;
86
+ }
87
+ const valueAsArray = toArray(rule.value, { retainEmptyStrings: false });
88
+ const valueAsDateArray = valueAsArray.map((v) => apiFns.toDate(v)).filter((dateVal) => apiFns.isValid(dateVal));
89
+ switch (operator) {
90
+ case "in":
91
+ case "notIn":
92
+ if (valueIsField) {
93
+ if (valueAsArray.length === 0) return "";
94
+ return negate(`${fldToMs(field)} in [${valueAsArray.map((val) => fldToMs(val)).join(", ")}]`, shouldNegate(operator));
95
+ }
96
+ if (valueAsDateArray.length === 0) return "";
97
+ return negate(`${fldToMs(field)} in [${valueAsDateArray.map((val) => valToMs(val)).join(", ")}]`, shouldNegate(operator));
98
+ case "between":
99
+ case "notBetween": {
100
+ if (valueAsArray.length < 2 || nullOrUndefinedOrEmpty(valueAsArray[0]) || nullOrUndefinedOrEmpty(valueAsArray[1]) || !valueIsField && valueAsDateArray.length < 2) return "";
101
+ if (valueIsField) {
102
+ const [firstValue, secondValue] = valueAsArray;
103
+ const expression$1 = `${fldToMs(field)} >= ${fldToMs(firstValue)} and ${fldToMs(field)} <= ${fldToMs(secondValue)}`;
104
+ return operator === "between" ? `(${expression$1})` : negate(expression$1, true);
105
+ }
106
+ const [first, second] = valueAsDateArray;
107
+ const [firstDate, secondDate] = apiFns.isBefore(first, second) ? [first, second] : [second, first];
108
+ const expression = `${fldToMs(field)} >= ${valToMs(firstDate)} and ${fldToMs(field)} <= ${valToMs(secondDate)}`;
109
+ return operator === "between" ? `(${expression})` : negate(expression, true);
110
+ }
111
+ }
112
+ return defaultRuleProcessorJSONata(rule, opts);
219
113
  };
114
+
115
+ //#endregion
116
+ export { datetimeRuleProcessorJsonLogic, datetimeValueProcessorNL, defaultDateTimeNLOperatorMap, getDatetimeJsonLogicOperations, getDatetimeRuleProcessorCEL, getDatetimeRuleProcessorJSONata, getDatetimeRuleProcessorMongoDBQuery, getDatetimeRuleProcessorNL, getDatetimeRuleProcessorSQL, getDatetimeValueProcessorANSI, getDatetimeValueProcessorMSSQL, getDatetimeValueProcessorMySQL, getDatetimeValueProcessorOracle, getDatetimeValueProcessorPostgreSQL };
220
117
  //# sourceMappingURL=react-querybuilder_datetime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/datetimeRuleProcessorJsonLogic.ts","../src/getDatetimeRuleProcessorJSONata.ts"],"sourcesContent":["function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o;},_typeof(o);}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e;}function _toPropertyKey(t){var i=_toPrimitive(t,\"string\");return\"symbol\"==_typeof(i)?i:i+\"\";}function _toPrimitive(t,r){if(\"object\"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||\"default\");if(\"object\"!=_typeof(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\");}return(\"string\"===r?String:Number)(t);}import{defaultRuleProcessorJsonLogic,toArray}from\"react-querybuilder\";import{processIsDateField}from\"./utils\";var dateOperationMap={\"!=\":\"dateNotOn\",\"<\":\"dateBefore\",\"<=\":\"dateOnOrBefore\",\"=\":\"dateOn\",\">\":\"dateAfter\",\">=\":\"dateOnOrAfter\",between:\"dateBetween\",\"in\":\"dateIn\",notBetween:\"dateNotBetween\",notIn:\"dateNotIn\"};export var datetimeRuleProcessorJsonLogic=function datetimeRuleProcessorJsonLogic(rule,options){var _opts$context;var opts=options!==null&&options!==void 0?options:/* istanbul ignore next */{};if(!processIsDateField((_opts$context=opts.context)===null||_opts$context===void 0?void 0:_opts$context.isDateField,rule,opts)){return defaultRuleProcessorJsonLogic(rule,opts);}var field=rule.field,operator=rule.operator,value=rule.value,valueSource=rule.valueSource;var valueIsField=valueSource===\"field\";var fieldObject={\"var\":field};var maybeFieldRenderer=function maybeFieldRenderer(v){return valueIsField?{\"var\":\"\".concat(v)}:v;};switch(operator){case\"<\":case\"<=\":case\"=\":case\"!=\":case\">\":case\">=\":return _defineProperty({},dateOperationMap[operator],[fieldObject,maybeFieldRenderer(value)]);case\"in\":case\"notIn\":{var valueAsArray=toArray(value).map(function(v){return maybeFieldRenderer(v);});return _defineProperty({},dateOperationMap[operator],[fieldObject,valueAsArray]);}case\"between\":case\"notBetween\":{var _valueAsArray=toArray(value).map(function(v){return maybeFieldRenderer(v);});if(_valueAsArray.length<2)return false;return _defineProperty({},dateOperationMap[operator],[_valueAsArray[0],fieldObject,_valueAsArray[1]]);}}return defaultRuleProcessorJsonLogic(rule,options);};","function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}function _unsupportedIterableToArray(r,a){if(r){if(\"string\"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return\"Object\"===t&&r.constructor&&(t=r.constructor.name),\"Map\"===t||\"Set\"===t?Array.from(r):\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t[\"return\"]&&(u=t[\"return\"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}import{defaultRuleProcessorJSONata,getQuotedFieldName,nullOrUndefinedOrEmpty,toArray}from\"react-querybuilder\";import{processIsDateField}from\"./utils\";var shouldNegate=function shouldNegate(op){return /^(does)?not/i.test(op);};var negate=function negate(clause,negate2){return negate2?\"$not(\".concat(clause,\")\"):\"\".concat(clause);};export var getDatetimeRuleProcessorJSONata=function getDatetimeRuleProcessorJSONata(apiFns){return function(rule,options){var opts=options!==null&&options!==void 0?options:/* istanbul ignore next */{};var _opts$context=opts.context,context=_opts$context===void 0?{}:_opts$context;var _opts$quoteFieldNames=opts.quoteFieldNamesWith,quoteFieldNamesWith=_opts$quoteFieldNames===void 0?[\"\",\"\"]:_opts$quoteFieldNames,_opts$fieldIdentifier=opts.fieldIdentifierSeparator,fieldIdentifierSeparator=_opts$fieldIdentifier===void 0?\"\":_opts$fieldIdentifier;var field=rule.field,operator=rule.operator,value=rule.value,valueSource=rule.valueSource;if(!processIsDateField(context.isDateField,rule,opts)){return defaultRuleProcessorJSONata(rule,opts);}var valueIsField=valueSource===\"field\";var fldToMs=function fldToMs(f){return\"$toMillis(\".concat(getQuotedFieldName(f,{quoteFieldNamesWith:quoteFieldNamesWith,fieldIdentifierSeparator:fieldIdentifierSeparator}),\")\");};var valToMs=function valToMs(v){return\"$toMillis(\\\"\".concat(apiFns.toISOString(v),\"\\\")\");};switch(operator){case\"<\":case\"<=\":case\"=\":case\"!=\":case\">\":case\">=\":return\"\".concat(fldToMs(field),\" \").concat(operator,\" \").concat(valueIsField?fldToMs(value):valToMs(value));}var valueAsArray=toArray(rule.value,{retainEmptyStrings:false});var valueAsDateArray=valueAsArray.map(function(v){return apiFns.toDate(v);}).filter(function(dateVal){return apiFns.isValid(dateVal);});switch(operator){case\"in\":case\"notIn\":{if(valueIsField){if(valueAsArray.length===0)return\"\";return negate(\"\".concat(fldToMs(field),\" in [\").concat(valueAsArray.map(function(val){return fldToMs(val);}).join(\", \"),\"]\"),shouldNegate(operator));}if(valueAsDateArray.length===0)return\"\";return negate(\"\".concat(fldToMs(field),\" in [\").concat(valueAsDateArray.map(function(val){return valToMs(val);}).join(\", \"),\"]\"),shouldNegate(operator));}case\"between\":case\"notBetween\":{if(valueAsArray.length<2||nullOrUndefinedOrEmpty(valueAsArray[0])||nullOrUndefinedOrEmpty(valueAsArray[1])||!valueIsField&&valueAsDateArray.length<2){return\"\";}if(valueIsField){var _valueAsArray=_slicedToArray(valueAsArray,2),firstValue=_valueAsArray[0],secondValue=_valueAsArray[1];var expression2=\"\".concat(fldToMs(field),\" >= \").concat(fldToMs(firstValue),\" and \").concat(fldToMs(field),\" <= \").concat(fldToMs(secondValue));return operator===\"between\"?\"(\".concat(expression2,\")\"):negate(expression2,true);}var _valueAsDateArray=_slicedToArray(valueAsDateArray,2),first=_valueAsDateArray[0],second=_valueAsDateArray[1];var _ref=apiFns.isBefore(first,second)?[first,second]:[second,first],_ref2=_slicedToArray(_ref,2),firstDate=_ref2[0],secondDate=_ref2[1];var expression=\"\".concat(fldToMs(field),\" >= \").concat(valToMs(firstDate),\" and \").concat(fldToMs(field),\" <= \").concat(valToMs(secondDate));return operator===\"between\"?\"(\".concat(expression,\")\"):negate(expression,true);}}return defaultRuleProcessorJSONata(rule,opts);};};"],"mappings":"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","names":["o","datetimeRuleProcessorJsonLogic","maybeFieldRenderer","toArray","r","shouldNegate","negate","negate2","getDatetimeRuleProcessorJSONata","fldToMs","valToMs","toArray"]}
1
+ {"version":3,"file":"react-querybuilder_datetime.mjs","names":["datetimeRuleProcessorJsonLogic: RuleProcessor","fieldObject: JsonLogicVar","negate","valueAsArray: string[]","expression"],"sources":["../src/datetimeRuleProcessorJsonLogic.ts","../src/getDatetimeRuleProcessorJSONata.ts"],"sourcesContent":["import type { DefaultOperatorName, JsonLogicVar, RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorJsonLogic, toArray } from 'react-querybuilder';\nimport type { RQBDateTimeJsonLogic } from './types';\nimport { processIsDateField } from './utils';\n\nconst dateOperationMap = {\n '!=': 'dateNotOn',\n '<': 'dateBefore',\n '<=': 'dateOnOrBefore',\n '=': 'dateOn',\n '>': 'dateAfter',\n '>=': 'dateOnOrAfter',\n between: 'dateBetween',\n in: 'dateIn',\n notBetween: 'dateNotBetween',\n notIn: 'dateNotIn',\n} as const satisfies Partial<Record<DefaultOperatorName, string>>;\n\n/**\n * Date/time rule processor for use by {@link @react-querybuilder/core!formatQuery formatQuery}\n * with the \"jsonlogic\" format.\n *\n * Note: Unlike other date/time rule processors from this library, this function does\n * not require a date/time library API. Instead, the date/time library API is used by\n * {@link getDatetimeJsonLogicOperations} during the evaluation process.\n */\nexport const datetimeRuleProcessorJsonLogic: RuleProcessor = (\n rule,\n options\n): RQBDateTimeJsonLogic => {\n const opts = options ?? /* istanbul ignore next */ {};\n\n if (!processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorJsonLogic(rule, opts);\n }\n\n const { field, operator, value, valueSource } = rule;\n const valueIsField = valueSource === 'field';\n const fieldObject: JsonLogicVar = { var: field };\n const maybeFieldRenderer = (v: string) => (valueIsField ? { var: `${v}` } : v);\n\n switch (operator) {\n case '<':\n case '<=':\n case '=':\n case '!=':\n case '>':\n case '>=':\n return {\n [dateOperationMap[operator]]: [fieldObject, maybeFieldRenderer(value)],\n } as RQBDateTimeJsonLogic;\n\n case 'in':\n case 'notIn': {\n const valueAsArray = toArray(value).map(v => maybeFieldRenderer(v));\n return { [dateOperationMap[operator]]: [fieldObject, valueAsArray] } as RQBDateTimeJsonLogic;\n }\n\n case 'between':\n case 'notBetween': {\n const valueAsArray = toArray(value).map(v => maybeFieldRenderer(v));\n\n if (valueAsArray.length < 2) return false;\n\n return {\n [dateOperationMap[operator]]: [valueAsArray[0], fieldObject, valueAsArray[1]],\n } as RQBDateTimeJsonLogic;\n }\n }\n\n return defaultRuleProcessorJsonLogic(rule, options);\n};\n","import type { RuleProcessor } from 'react-querybuilder';\nimport {\n defaultRuleProcessorJSONata,\n getQuotedFieldName,\n nullOrUndefinedOrEmpty,\n toArray,\n} from 'react-querybuilder';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { processIsDateField } from './utils';\n\nconst shouldNegate = (op: string) => /^(does)?not/i.test(op);\n\nconst negate = (clause: string, negate: boolean) => (negate ? `$not(${clause})` : `${clause}`);\n\n/**\n * Generates a rule processor with date/time features for use by\n * {@link @react-querybuilder/core!formatQuery formatQuery} with the \"jsonata\" format.\n */\nexport const getDatetimeRuleProcessorJSONata =\n (apiFns: RQBDateTimeLibraryAPI): RuleProcessor =>\n (rule, options) => {\n const opts = options ?? /* istanbul ignore next */ {};\n const { context = {} } = opts;\n\n // istanbul ignore next\n const { quoteFieldNamesWith = ['', ''] as [string, string], fieldIdentifierSeparator = '' } =\n opts;\n const { field, operator, value, valueSource } = rule;\n\n if (!processIsDateField(context.isDateField, rule, opts)) {\n return defaultRuleProcessorJSONata(rule, opts);\n }\n\n const valueIsField = valueSource === 'field';\n\n const fldToMs = (f: string) =>\n `$toMillis(${getQuotedFieldName(f, { quoteFieldNamesWith, fieldIdentifierSeparator })})`;\n const valToMs = (v: string | Date) => `$toMillis(\"${apiFns.toISOString(v)}\")`;\n\n switch (operator) {\n case '<':\n case '<=':\n case '=':\n case '!=':\n case '>':\n case '>=':\n return `${fldToMs(field)} ${operator} ${valueIsField ? fldToMs(value) : valToMs(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 if (valueIsField) {\n if (valueAsArray.length === 0) return '';\n return negate(\n `${fldToMs(field)} in [${valueAsArray.map(val => fldToMs(val)).join(', ')}]`,\n shouldNegate(operator)\n );\n }\n if (valueAsDateArray.length === 0) return '';\n return negate(\n `${fldToMs(field)} in [${valueAsDateArray.map(val => valToMs(val)).join(', ')}]`,\n shouldNegate(operator)\n );\n }\n\n case 'between':\n case 'notBetween': {\n if (\n valueAsArray.length < 2 ||\n nullOrUndefinedOrEmpty(valueAsArray[0]) ||\n nullOrUndefinedOrEmpty(valueAsArray[1]) ||\n (!valueIsField && valueAsDateArray.length < 2)\n ) {\n return '';\n }\n\n if (valueIsField) {\n const [firstValue, secondValue] = valueAsArray;\n const expression = `${fldToMs(field)} >= ${fldToMs(firstValue)} and ${fldToMs(field)} <= ${fldToMs(secondValue)}`;\n return operator === 'between' ? `(${expression})` : negate(expression, true);\n }\n\n const [first, second] = valueAsDateArray;\n const [firstDate, secondDate] = apiFns.isBefore(first, second)\n ? [first, second]\n : [second, first];\n const expression = `${fldToMs(field)} >= ${valToMs(firstDate)} and ${fldToMs(field)} <= ${valToMs(secondDate)}`;\n return operator === 'between' ? `(${expression})` : negate(expression, true);\n }\n }\n\n return defaultRuleProcessorJSONata(rule, opts);\n };\n"],"mappings":"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"}