@react-querybuilder/datetime 8.18.0 → 8.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-CL79A1_x.js +1208 -0
  2. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-CL79A1_x.js.map +1 -0
  3. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-DgUg_arY.js +2 -0
  4. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-DgUg_arY.js.map +1 -0
  5. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +214 -8
  6. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +46 -2
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js +93 -15
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js.map +1 -1
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +46 -2
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +70 -59
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  12. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +482 -71
  13. package/dist/cjs/react-querybuilder_datetime.cjs.development.js.map +1 -1
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +46 -2
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js +129 -15
  16. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js.map +1 -1
  17. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +46 -2
  18. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js +81 -15
  19. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js.map +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +214 -8
  21. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +46 -2
  22. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  23. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js.map +1 -1
  24. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +46 -2
  25. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  26. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js.map +1 -1
  27. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  28. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  29. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +46 -2
  30. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  31. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js.map +1 -1
  32. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +46 -2
  33. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  34. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js.map +1 -1
  35. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-BfILPx88.js +2 -0
  36. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-BfILPx88.js.map +1 -0
  37. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-CzLh_zi9.js +63 -0
  38. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-CzLh_zi9.js.map +1 -0
  39. package/dist/cjs/types-XYMw0jFT.d.ts +265 -0
  40. package/dist/datetime-layout.css +1 -0
  41. package/dist/datetime-layout.css.map +1 -0
  42. package/dist/datetime-layout.scss +3 -0
  43. package/dist/datetime.css +1 -0
  44. package/dist/datetime.css.map +1 -0
  45. package/dist/datetime.scss +1 -0
  46. package/dist/getDatetimeRuleProcessorTanStackDB-BcOC-o2A.mjs +1029 -0
  47. package/dist/getDatetimeRuleProcessorTanStackDB-BcOC-o2A.mjs.map +1 -0
  48. package/dist/getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs +2 -0
  49. package/dist/getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs.map +1 -0
  50. package/dist/getDatetimeRuleProcessorTanStackDB-LDwhMJg0.js +1035 -0
  51. package/dist/getDatetimeRuleProcessorTanStackDB-LDwhMJg0.js.map +1 -0
  52. package/dist/react-querybuilder_datetime.d.mts +214 -8
  53. package/dist/react-querybuilder_datetime.date-fns.d.mts +46 -2
  54. package/dist/react-querybuilder_datetime.date-fns.mjs +71 -4
  55. package/dist/react-querybuilder_datetime.date-fns.mjs.map +1 -1
  56. package/dist/react-querybuilder_datetime.dayjs.d.mts +46 -2
  57. package/dist/react-querybuilder_datetime.dayjs.mjs +47 -24
  58. package/dist/react-querybuilder_datetime.dayjs.mjs.map +1 -1
  59. package/dist/react-querybuilder_datetime.jsdate.d.mts +46 -2
  60. package/dist/react-querybuilder_datetime.jsdate.mjs +106 -3
  61. package/dist/react-querybuilder_datetime.jsdate.mjs.map +1 -1
  62. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +214 -8
  63. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +46 -2
  64. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +71 -4
  65. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js.map +1 -1
  66. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +46 -2
  67. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +47 -24
  68. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js.map +1 -1
  69. package/dist/react-querybuilder_datetime.legacy-esm.js +425 -58
  70. package/dist/react-querybuilder_datetime.legacy-esm.js.map +1 -1
  71. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +46 -2
  72. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +106 -3
  73. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js.map +1 -1
  74. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +46 -2
  75. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +58 -3
  76. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js.map +1 -1
  77. package/dist/react-querybuilder_datetime.luxon.d.mts +46 -2
  78. package/dist/react-querybuilder_datetime.luxon.mjs +58 -3
  79. package/dist/react-querybuilder_datetime.luxon.mjs.map +1 -1
  80. package/dist/react-querybuilder_datetime.mjs +443 -57
  81. package/dist/react-querybuilder_datetime.mjs.map +1 -1
  82. package/dist/react-querybuilder_datetime.production.d.mts +214 -8
  83. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +46 -2
  84. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  85. package/dist/react-querybuilder_datetime.production.date-fns.mjs.map +1 -1
  86. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +46 -2
  87. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  88. package/dist/react-querybuilder_datetime.production.dayjs.mjs.map +1 -1
  89. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +46 -2
  90. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  91. package/dist/react-querybuilder_datetime.production.jsdate.mjs.map +1 -1
  92. package/dist/react-querybuilder_datetime.production.luxon.d.mts +46 -2
  93. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  94. package/dist/react-querybuilder_datetime.production.luxon.mjs.map +1 -1
  95. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  96. package/dist/react-querybuilder_datetime.production.mjs.map +1 -1
  97. package/dist/rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs +29 -0
  98. package/dist/rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs.map +1 -0
  99. package/dist/rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs +2 -0
  100. package/dist/rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs.map +1 -0
  101. package/dist/rqbDateTimeLibraryAPI.dayjs-DvFSxPKu.js +29 -0
  102. package/dist/rqbDateTimeLibraryAPI.dayjs-DvFSxPKu.js.map +1 -0
  103. package/dist/styles/_layout.scss +30 -0
  104. package/dist/styles/_root.scss +5 -0
  105. package/dist/styles/_variables.scss +8 -0
  106. package/dist/types-CdjHqQ0k.d.mts +265 -0
  107. package/dist/types-CdjHqQ0k.d.ts +265 -0
  108. package/package.json +27 -12
  109. package/dist/cjs/getDatetimeRuleProcessorSQL-Cca9pzSn.js +0 -2
  110. package/dist/cjs/getDatetimeRuleProcessorSQL-Cca9pzSn.js.map +0 -1
  111. package/dist/cjs/getDatetimeRuleProcessorSQL-CrA2ZrSe.js +0 -563
  112. package/dist/cjs/getDatetimeRuleProcessorSQL-CrA2ZrSe.js.map +0 -1
  113. package/dist/cjs/types-c6_k1Tpr.d.ts +0 -105
  114. package/dist/getDatetimeRuleProcessorSQL-Crw01Jo-.js +0 -482
  115. package/dist/getDatetimeRuleProcessorSQL-Crw01Jo-.js.map +0 -1
  116. package/dist/getDatetimeRuleProcessorSQL-CvGKzojM.mjs +0 -2
  117. package/dist/getDatetimeRuleProcessorSQL-CvGKzojM.mjs.map +0 -1
  118. package/dist/getDatetimeRuleProcessorSQL-Nz_XjNeY.mjs +0 -468
  119. package/dist/getDatetimeRuleProcessorSQL-Nz_XjNeY.mjs.map +0 -1
  120. package/dist/types-c6_k1Tpr.d.mts +0 -105
  121. package/dist/types-c6_k1Tpr.d.ts +0 -105
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_datetime.production.jsdate.mjs","names":[],"sources":["../src/rqbDateTimeLibraryAPI.jsdate.ts","../src/index.jsdate.ts"],"sourcesContent":["import type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\nconst invalidDate = new Date(Number.NaN);\n\nconst dateRegExp = /^(\\d{4})-(\\d{2})-(\\d{2})([T ](\\d{2}):(\\d{2}):(\\d{2})(\\.(\\d{1,3}))?)?/;\n\nconst toDate = (d: string | Date) => {\n if (d instanceof Date) return d;\n\n const reMatch = dateRegExp.exec(d);\n\n if (!reMatch) return invalidDate;\n\n const [_all, yyyy, mm, dd, _time, hh, mi, ss, _decimal, sss] = reMatch;\n const [year, month, day, hours, minutes, seconds, ms] = [yyyy, mm, dd, hh, mi, ss, sss ?? '0']\n .filter(Boolean)\n .map(Number);\n\n const monthIndex = month - 1;\n\n return hh\n ? new Date(Date.UTC(year, monthIndex, day, hours, minutes, seconds, ms))\n : new Date(year, monthIndex, day);\n};\n\nconst isValid = (d: string | Date) => {\n const dToDate = toDate(d);\n return dToDate instanceof Date && !Number.isNaN(dToDate.getTime());\n};\n\nconst toISOStringDateOnly = (d: string | Date) => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString().slice(0, 10) : '';\n};\n\n/**\n * {@link RQBDateTimeLibraryAPI} for JavaScript `Date`\n *\n * @deprecated This API will not be removed, but we recommend using one of the other\n * {@link RQBDateTimeLibraryAPI}s based on a popular library instead.\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: d => toDate(d).toISOString(),\n isAfter: (a, b) => {\n const dateA = toDate(a).getTime();\n const dateB = toDate(b).getTime();\n return !Number.isNaN(dateA) && !Number.isNaN(dateB) && dateA > dateB;\n },\n isBefore: (a, b) => {\n const dateA = toDate(a).getTime();\n const dateB = toDate(b).getTime();\n return !Number.isNaN(dateA) && !Number.isNaN(dateB) && dateA < dateB;\n },\n isSame: (a, b) => {\n const aToDate = toDate(a);\n const bToDate = toDate(b);\n return isISOStringDateOnly(a) || isISOStringDateOnly(b)\n ? toISOStringDateOnly(a) === toISOStringDateOnly(b)\n : aToDate.getTime() === bToDate.getTime();\n },\n isValid,\n toDate,\n toISOString: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly,\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/jsdate\"` for enhanced date/time support using a custom JavaScript `Date`-based library.\n *\n * @module jsdate\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorCypher } from './getDatetimeRuleProcessorCypher';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport { getDatetimeRuleProcessorSPARQL } from './getDatetimeRuleProcessorSPARQL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.jsdate';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using JavaScript `Date`.\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorCEL: RuleProcessor =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorMongoDBQuery: RuleProcessor =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cypher\"/\"gql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorCypher: RuleProcessor =\n getDatetimeRuleProcessorCypher(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sparql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorSPARQL: RuleProcessor =\n getDatetimeRuleProcessorSPARQL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.jsdate';\n"],"mappings":"8IAGA,MAAM,EAAc,IAAI,KAAK,GAAU,EAEjC,EAAa,uEAEb,EAAU,GAAqB,CACnC,GAAI,aAAa,KAAM,OAAO,EAE9B,IAAM,EAAU,EAAW,KAAK,CAAC,EAEjC,GAAI,CAAC,EAAS,OAAO,EAErB,GAAM,CAAC,EAAM,EAAM,EAAI,EAAI,EAAO,EAAI,EAAI,EAAI,EAAU,GAAO,EACzD,CAAC,EAAM,EAAO,EAAK,EAAO,EAAS,EAAS,GAAM,CAAC,EAAM,EAAI,EAAI,EAAI,EAAI,EAAI,GAAO,GAAG,EAC1F,OAAO,OAAO,EACd,IAAI,MAAM,EAEP,EAAa,EAAQ,EAE3B,OAAO,EACH,IAAI,KAAK,KAAK,IAAI,EAAM,EAAY,EAAK,EAAO,EAAS,EAAS,CAAE,CAAC,EACrE,IAAI,KAAK,EAAM,EAAY,CAAG,CACpC,EAEM,EAAW,GAAqB,CACpC,IAAM,EAAU,EAAO,CAAC,EACxB,OAAO,aAAmB,MAAQ,CAAC,OAAO,MAAM,EAAQ,QAAQ,CAAC,CACnE,EAEM,EAAuB,GAAqB,CAChD,IAAM,EAAU,EAAO,CAAC,EACxB,OAAO,EAAQ,CAAO,EAAI,EAAQ,YAAY,EAAE,MAAM,EAAG,EAAE,EAAI,EACjE,EAQa,EAA+C,CAC1D,OAAQ,GAAK,EAAO,CAAC,EAAE,YAAY,EACnC,SAAU,EAAG,IAAM,CACjB,IAAM,EAAQ,EAAO,CAAC,EAAE,QAAQ,EAC1B,EAAQ,EAAO,CAAC,EAAE,QAAQ,EAChC,MAAO,CAAC,OAAO,MAAM,CAAK,GAAK,CAAC,OAAO,MAAM,CAAK,GAAK,EAAQ,CACjE,EACA,UAAW,EAAG,IAAM,CAClB,IAAM,EAAQ,EAAO,CAAC,EAAE,QAAQ,EAC1B,EAAQ,EAAO,CAAC,EAAE,QAAQ,EAChC,MAAO,CAAC,OAAO,MAAM,CAAK,GAAK,CAAC,OAAO,MAAM,CAAK,GAAK,EAAQ,CACjE,EACA,QAAS,EAAG,IAAM,CAChB,IAAM,EAAU,EAAO,CAAC,EAClB,EAAU,EAAO,CAAC,EACxB,OAAO,EAAoB,CAAC,GAAK,EAAoB,CAAC,EAClD,EAAoB,CAAC,IAAM,EAAoB,CAAC,EAChD,EAAQ,QAAQ,IAAM,EAAQ,QAAQ,CAC5C,EACA,UACA,SACA,YAAa,GAAK,CAChB,IAAM,EAAU,EAAO,CAAC,EACxB,OAAO,EAAQ,CAAO,EAAI,EAAQ,YAAY,EAAI,EACpD,EACA,qBACF,ECzCa,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA4B,CAAqB,EAItC,EACX,EAA8B,CAAqB,EAIxC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAAgC,CAAqB,EAI1C,EACX,EAAoC,CAAqB,EAK9C,EACX,EAA4B,CAAqB,EAKtC,EACX,EAAqC,CAAqB,EAK/C,EACX,EAA2B,CAAqB,EAKrC,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA+B,CAAqB"}
1
+ {"version":3,"file":"react-querybuilder_datetime.production.jsdate.mjs","names":[],"sources":["../src/rqbDateTimeLibraryAPI.jsdate.ts","../src/index.jsdate.ts"],"sourcesContent":["import type {\n RelativeDateTimeTruncationUnit,\n RelativeDateTimeUnit,\n RQBDateTimeLibraryAPI,\n} from './types';\nimport { isISOStringDateOnly } from './utils';\n\nconst invalidDate = new Date(Number.NaN);\n\nconst dateRegExp = /^(\\d{4})-(\\d{2})-(\\d{2})([T ](\\d{2}):(\\d{2}):(\\d{2})(\\.(\\d{1,3}))?)?/;\n\nconst toDate = (d: string | Date) => {\n if (d instanceof Date) return d;\n\n const reMatch = dateRegExp.exec(d);\n\n if (!reMatch) return invalidDate;\n\n const [_all, yyyy, mm, dd, _time, hh, mi, ss, _decimal, sss] = reMatch;\n const [year, month, day, hours, minutes, seconds, ms] = [yyyy, mm, dd, hh, mi, ss, sss ?? '0']\n .filter(Boolean)\n .map(Number);\n\n const monthIndex = month - 1;\n\n return hh\n ? new Date(Date.UTC(year, monthIndex, day, hours, minutes, seconds, ms))\n : new Date(year, monthIndex, day);\n};\n\nconst isValid = (d: string | Date) => {\n const dToDate = toDate(d);\n return dToDate instanceof Date && !Number.isNaN(dToDate.getTime());\n};\n\nconst toISOStringDateOnly = (d: string | Date) => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString().slice(0, 10) : '';\n};\n\n// Week starts on Sunday (matching Day.js/date-fns defaults).\nconst startOf = (d: string | Date, unit: RelativeDateTimeTruncationUnit): Date => {\n const r = new Date(toDate(d).getTime());\n r.setHours(0, 0, 0, 0);\n switch (unit) {\n case 'week':\n r.setDate(r.getDate() - r.getDay());\n break;\n case 'month':\n r.setDate(1);\n break;\n case 'year':\n r.setMonth(0, 1);\n break;\n }\n return r;\n};\n\nconst endOf = (d: string | Date, unit: RelativeDateTimeTruncationUnit): Date => {\n const r = new Date(toDate(d).getTime());\n r.setHours(23, 59, 59, 999);\n switch (unit) {\n case 'week':\n r.setDate(r.getDate() + (6 - r.getDay()));\n break;\n case 'month':\n r.setMonth(r.getMonth() + 1, 0);\n break;\n case 'year':\n r.setMonth(11, 31);\n break;\n }\n return r;\n};\n\nconst add = (d: string | Date, amount: number, unit: RelativeDateTimeUnit): Date => {\n const r = new Date(toDate(d).getTime());\n switch (unit) {\n case 'minute':\n r.setMinutes(r.getMinutes() + amount);\n break;\n case 'hour':\n r.setHours(r.getHours() + amount);\n break;\n case 'day':\n r.setDate(r.getDate() + amount);\n break;\n case 'week':\n r.setDate(r.getDate() + amount * 7);\n break;\n case 'month':\n r.setMonth(r.getMonth() + amount);\n break;\n case 'year':\n r.setFullYear(r.getFullYear() + amount);\n break;\n }\n return r;\n};\n\n/**\n * {@link RQBDateTimeLibraryAPI} for JavaScript `Date`\n *\n * @deprecated This API will not be removed, but we recommend using one of the other\n * {@link RQBDateTimeLibraryAPI}s based on a popular library instead.\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: d => toDate(d).toISOString(),\n isAfter: (a, b) => {\n const dateA = toDate(a).getTime();\n const dateB = toDate(b).getTime();\n return !Number.isNaN(dateA) && !Number.isNaN(dateB) && dateA > dateB;\n },\n isBefore: (a, b) => {\n const dateA = toDate(a).getTime();\n const dateB = toDate(b).getTime();\n return !Number.isNaN(dateA) && !Number.isNaN(dateB) && dateA < dateB;\n },\n isSame: (a, b) => {\n const aToDate = toDate(a);\n const bToDate = toDate(b);\n return isISOStringDateOnly(a) || isISOStringDateOnly(b)\n ? toISOStringDateOnly(a) === toISOStringDateOnly(b)\n : aToDate.getTime() === bToDate.getTime();\n },\n isValid,\n toDate,\n toISOString: d => {\n const dToDate = toDate(d);\n return isValid(dToDate) ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly,\n startOf,\n endOf,\n add,\n};\n","/**\n * Import from `\"@react-querybuilder/datetime/jsdate\"` for enhanced date/time support using a custom JavaScript `Date`-based library.\n *\n * @module jsdate\n */\n\nimport type { RuleProcessor, ValueProcessorByRule } from 'react-querybuilder';\nimport { getDatetimeJsonLogicOperations } from './getDatetimeJsonLogicOperations';\nimport { getDatetimeRuleProcessorCEL } from './getDatetimeRuleProcessorCEL';\nimport { getDatetimeRuleProcessorCypher } from './getDatetimeRuleProcessorCypher';\nimport { getDatetimeRuleProcessorDrizzle } from './getDatetimeRuleProcessorDrizzle';\nimport { getDatetimeRuleProcessorElasticSearch } from './getDatetimeRuleProcessorElasticSearch';\nimport { getDatetimeRuleProcessorGremlin } from './getDatetimeRuleProcessorGremlin';\nimport { getDatetimeRuleProcessorJSONata } from './getDatetimeRuleProcessorJSONata';\nimport { getDatetimeRuleProcessorLDAP } from './getDatetimeRuleProcessorLDAP';\nimport { getDatetimeRuleProcessorMongoDB } from './getDatetimeRuleProcessorMongoDB';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport { getDatetimeRuleProcessorParameterized } from './getDatetimeRuleProcessorParameterized';\nimport { getDatetimeRuleProcessorPrisma } from './getDatetimeRuleProcessorPrisma';\nimport { getDatetimeRuleProcessorSequelize } from './getDatetimeRuleProcessorSequelize';\nimport { getDatetimeRuleProcessorSPARQL } from './getDatetimeRuleProcessorSPARQL';\nimport { getDatetimeRuleProcessorSpEL } from './getDatetimeRuleProcessorSpEL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { getDatetimeRuleProcessorTanStackDB } from './getDatetimeRuleProcessorTanStackDB';\nimport { rqbDateTimeLibraryAPI } from './rqbDateTimeLibraryAPI.jsdate';\nimport type { RQBJsonLogicDateTimeOperations } from './types';\n\n/**\n * Custom JsonLogic date/time operations using JavaScript `Date`.\n */\nexport const jsonLogicDateTimeOperations: RQBJsonLogicDateTimeOperations =\n getDatetimeJsonLogicOperations(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorSQL: RuleProcessor =\n getDatetimeRuleProcessorSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"ansi\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorANSI: ValueProcessorByRule =\n getDatetimeValueProcessorANSI(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mssql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorMSSQL: ValueProcessorByRule =\n getDatetimeValueProcessorMSSQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"mysql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorMySQL: ValueProcessorByRule =\n getDatetimeValueProcessorMySQL(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"oracle\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorOracle: ValueProcessorByRule =\n getDatetimeValueProcessorOracle(rqbDateTimeLibraryAPI);\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} value processor for \"sql\" format (\"postgresql\" preset) using JavaScript `Date`\n */\nexport const datetimeValueProcessorPostgreSQL: ValueProcessorByRule =\n getDatetimeValueProcessorPostgreSQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cel\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorCEL: RuleProcessor =\n getDatetimeRuleProcessorCEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"jsonata\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorJSONata: RuleProcessor =\n getDatetimeRuleProcessorJSONata(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"mongodb_query\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorMongoDBQuery: RuleProcessor =\n getDatetimeRuleProcessorMongoDBQuery(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"natural_language\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorNL: ValueProcessorByRule =\n getDatetimeRuleProcessorNL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cypher\"/\"gql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorCypher: RuleProcessor =\n getDatetimeRuleProcessorCypher(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sparql\" format using JavaScript `Date`\n */\nexport const datetimeRuleProcessorSPARQL: RuleProcessor =\n getDatetimeRuleProcessorSPARQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"parameterized\"/\"parameterized_named\" formats\n */\nexport const datetimeRuleProcessorParameterized: RuleProcessor =\n getDatetimeRuleProcessorParameterized(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"spel\" format\n */\nexport const datetimeRuleProcessorSpEL: RuleProcessor =\n getDatetimeRuleProcessorSpEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"ldap\" format\n */\nexport const datetimeRuleProcessorLDAP: RuleProcessor =\n getDatetimeRuleProcessorLDAP(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"gremlin\" format\n */\nexport const datetimeRuleProcessorGremlin: RuleProcessor =\n getDatetimeRuleProcessorGremlin(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"prisma\" format\n */\nexport const datetimeRuleProcessorPrisma: RuleProcessor =\n getDatetimeRuleProcessorPrisma(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sequelize\" format\n */\nexport const datetimeRuleProcessorSequelize: RuleProcessor =\n getDatetimeRuleProcessorSequelize(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"drizzle\" format\n */\nexport const datetimeRuleProcessorDrizzle: RuleProcessor =\n getDatetimeRuleProcessorDrizzle(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"elasticsearch\" format\n */\nexport const datetimeRuleProcessorElasticSearch: RuleProcessor =\n getDatetimeRuleProcessorElasticSearch(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"tanstack_db\" format\n */\nexport const datetimeRuleProcessorTanStackDB: RuleProcessor =\n getDatetimeRuleProcessorTanStackDB(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for (deprecated) \"mongodb\" format\n */\nexport const datetimeRuleProcessorMongoDB: RuleProcessor =\n getDatetimeRuleProcessorMongoDB(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.jsdate';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { h as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI } from "./types-c6_k1Tpr.mjs";
1
+ import { g as RQBJsonLogicDateTimeOperations, i as RQBDateTimeLibraryAPI } from "./types-CdjHqQ0k.mjs";
2
2
  import { RuleProcessor, ValueProcessorByRule } from "react-querybuilder";
3
3
 
4
4
  //#region src/rqbDateTimeLibraryAPI.luxon.d.ts
@@ -41,6 +41,10 @@ declare const datetimeValueProcessorPostgreSQL: ValueProcessorByRule;
41
41
  */
42
42
  declare const datetimeRuleProcessorCEL: ValueProcessorByRule;
43
43
  /**
44
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "jsonata" format using Luxon
45
+ */
46
+ declare const datetimeRuleProcessorJSONata: RuleProcessor;
47
+ /**
44
48
  * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "mongodb_query" format using Luxon
45
49
  */
46
50
  declare const datetimeRuleProcessorMongoDBQuery: ValueProcessorByRule;
@@ -56,6 +60,46 @@ declare const datetimeRuleProcessorCypher: ValueProcessorByRule;
56
60
  * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "sparql" format using Luxon
57
61
  */
58
62
  declare const datetimeRuleProcessorSPARQL: ValueProcessorByRule;
63
+ /**
64
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "parameterized"/"parameterized_named" formats
65
+ */
66
+ declare const datetimeRuleProcessorParameterized: RuleProcessor;
67
+ /**
68
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "spel" format
69
+ */
70
+ declare const datetimeRuleProcessorSpEL: RuleProcessor;
71
+ /**
72
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "ldap" format
73
+ */
74
+ declare const datetimeRuleProcessorLDAP: RuleProcessor;
75
+ /**
76
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "gremlin" format
77
+ */
78
+ declare const datetimeRuleProcessorGremlin: RuleProcessor;
79
+ /**
80
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "prisma" format
81
+ */
82
+ declare const datetimeRuleProcessorPrisma: RuleProcessor;
83
+ /**
84
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "sequelize" format
85
+ */
86
+ declare const datetimeRuleProcessorSequelize: RuleProcessor;
87
+ /**
88
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "drizzle" format
89
+ */
90
+ declare const datetimeRuleProcessorDrizzle: RuleProcessor;
91
+ /**
92
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "elasticsearch" format
93
+ */
94
+ declare const datetimeRuleProcessorElasticSearch: RuleProcessor;
95
+ /**
96
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for "tanstack_db" format
97
+ */
98
+ declare const datetimeRuleProcessorTanStackDB: RuleProcessor;
99
+ /**
100
+ * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for (deprecated) "mongodb" format
101
+ */
102
+ declare const datetimeRuleProcessorMongoDB: RuleProcessor;
59
103
  //#endregion
60
- export { datetimeRuleProcessorCEL, datetimeRuleProcessorCypher, datetimeRuleProcessorMongoDBQuery, datetimeRuleProcessorNL, datetimeRuleProcessorSPARQL, datetimeRuleProcessorSQL, datetimeValueProcessorANSI, datetimeValueProcessorMSSQL, datetimeValueProcessorMySQL, datetimeValueProcessorOracle, datetimeValueProcessorPostgreSQL, jsonLogicDateTimeOperations, rqbDateTimeLibraryAPI };
104
+ export { datetimeRuleProcessorCEL, datetimeRuleProcessorCypher, datetimeRuleProcessorDrizzle, datetimeRuleProcessorElasticSearch, datetimeRuleProcessorGremlin, datetimeRuleProcessorJSONata, datetimeRuleProcessorLDAP, datetimeRuleProcessorMongoDB, datetimeRuleProcessorMongoDBQuery, datetimeRuleProcessorNL, datetimeRuleProcessorParameterized, datetimeRuleProcessorPrisma, datetimeRuleProcessorSPARQL, datetimeRuleProcessorSQL, datetimeRuleProcessorSequelize, datetimeRuleProcessorSpEL, datetimeRuleProcessorTanStackDB, datetimeValueProcessorANSI, datetimeValueProcessorMSSQL, datetimeValueProcessorMySQL, datetimeValueProcessorOracle, datetimeValueProcessorPostgreSQL, jsonLogicDateTimeOperations, rqbDateTimeLibraryAPI };
61
105
  //# sourceMappingURL=react-querybuilder_datetime.production.luxon.d.mts.map
@@ -1,2 +1,2 @@
1
- import{a as e,d as t,f as n,h as r,i,m as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./getDatetimeRuleProcessorSQL-CvGKzojM.mjs";import{DateTime as p}from"luxon";const m=e=>typeof e==`string`?p.fromISO(e):p.fromJSDate(e),h=`yyyy-MM-dd`,g={format:(e,t)=>m(e).toFormat(t.replace(`YYYY-MM-DD`,h)),isAfter:(e,t)=>m(e)>m(t),isBefore:(e,t)=>m(e)<m(t),isSame:(e,t)=>r(e)||r(t)?m(e).hasSame(m(t),`day`):+m(e)==+m(t),isValid:e=>m(e).isValid,toDate:e=>m(e).toJSDate(),toISOString:e=>{let t=m(e);return t.isValid?t.toJSDate().toISOString():``},toISOStringDateOnly:e=>{let t=m(e);return t.isValid?t.toFormat(h):``}},_=a(g),v=d(g),y=o(g),b=l(g),x=i(g),S=e(g),C=s(g),w=c(g),T=t(g),E=f(g),D=n(g),O=u(g);export{w as datetimeRuleProcessorCEL,D as datetimeRuleProcessorCypher,T as datetimeRuleProcessorMongoDBQuery,E as datetimeRuleProcessorNL,O as datetimeRuleProcessorSPARQL,v as datetimeRuleProcessorSQL,y as datetimeValueProcessorANSI,b as datetimeValueProcessorMSSQL,x as datetimeValueProcessorMySQL,S as datetimeValueProcessorOracle,C as datetimeValueProcessorPostgreSQL,_ as jsonLogicDateTimeOperations,g as rqbDateTimeLibraryAPI};
1
+ import{C as e,D as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,n as m,o as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs";import{DateTime as w}from"luxon";const T=e=>typeof e==`string`?w.fromISO(e):w.fromJSDate(e),E=`yyyy-MM-dd`,D={minute:`minutes`,hour:`hours`,day:`days`,week:`weeks`,month:`months`,year:`years`},O={format:(e,t)=>T(e).toFormat(t.replace(`YYYY-MM-DD`,E)),isAfter:(e,t)=>T(e)>T(t),isBefore:(e,t)=>T(e)<T(t),isSame:(e,n)=>t(e)||t(n)?T(e).hasSame(T(n),`day`):+T(e)==+T(n),isValid:e=>T(e).isValid,toDate:e=>T(e).toJSDate(),toISOString:e=>{let t=T(e);return t.isValid?t.toJSDate().toISOString():``},toISOStringDateOnly:e=>{let t=T(e);return t.isValid?t.toFormat(E):``},startOf:(e,t)=>T(e).startOf(t).toJSDate(),endOf:(e,t)=>T(e).endOf(t).toJSDate(),add:(e,t,n)=>T(e).plus({[D[n]]:t}).toJSDate()},k=r(O),A=m(O),j=g(O),M=f(O),N=a(O),P=h(O),F=_(O),I=x(O),L=C(O),R=i(O),z=d(O),B=e(O),V=p(O),H=l(O),U=s(O),W=b(O),G=o(O),K=c(O),q=y(O),J=n(O),Y=S(O),X=v(O),Z=u(O);export{I as datetimeRuleProcessorCEL,B as datetimeRuleProcessorCypher,J as datetimeRuleProcessorDrizzle,Y as datetimeRuleProcessorElasticSearch,G as datetimeRuleProcessorGremlin,L as datetimeRuleProcessorJSONata,W as datetimeRuleProcessorLDAP,Z as datetimeRuleProcessorMongoDB,R as datetimeRuleProcessorMongoDBQuery,z as datetimeRuleProcessorNL,H as datetimeRuleProcessorParameterized,K as datetimeRuleProcessorPrisma,V as datetimeRuleProcessorSPARQL,A as datetimeRuleProcessorSQL,q as datetimeRuleProcessorSequelize,U as datetimeRuleProcessorSpEL,X as datetimeRuleProcessorTanStackDB,j as datetimeValueProcessorANSI,M as datetimeValueProcessorMSSQL,N as datetimeValueProcessorMySQL,P as datetimeValueProcessorOracle,F as datetimeValueProcessorPostgreSQL,k as jsonLogicDateTimeOperations,O as rqbDateTimeLibraryAPI};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.luxon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_datetime.production.luxon.mjs","names":[],"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 { getDatetimeRuleProcessorCypher } from './getDatetimeRuleProcessorCypher';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport { getDatetimeRuleProcessorSPARQL } from './getDatetimeRuleProcessorSPARQL';\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\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cypher\"/\"gql\" format using Luxon\n */\nexport const datetimeRuleProcessorCypher: ValueProcessorByRule =\n getDatetimeRuleProcessorCypher(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sparql\" format using Luxon\n */\nexport const datetimeRuleProcessorSPARQL: ValueProcessorByRule =\n getDatetimeRuleProcessorSPARQL(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.luxon';\n"],"mappings":"+KAIA,MAAM,EAAc,GAClB,OAAO,GAAM,SAAW,EAAS,QAAQ,CAAC,EAAI,EAAS,WAAW,CAAC,EAC/D,EAAkB,aAKX,EAA+C,CAC1D,QAAS,EAAG,IAAQ,EAAW,CAAC,EAAE,SAAS,EAAI,QAAQ,aAAc,CAAe,CAAC,EACrF,SAAU,EAAG,IAAM,EAAW,CAAC,EAAI,EAAW,CAAC,EAC/C,UAAW,EAAG,IAAM,EAAW,CAAC,EAAI,EAAW,CAAC,EAChD,QAAS,EAAG,IACV,EAAoB,CAAC,GAAK,EAAoB,CAAC,EAC3C,EAAW,CAAC,EAAE,QAAQ,EAAW,CAAC,EAAG,KAAK,EAC1C,CAAC,EAAW,CAAC,GAAM,CAAC,EAAW,CAAC,EACtC,QAAS,GAAK,EAAW,CAAC,EAAE,QAC5B,OAAQ,GAAK,EAAW,CAAC,EAAE,SAAS,EACpC,YAAa,GAAK,CAChB,IAAM,EAAU,EAAW,CAAC,EAC5B,OAAO,EAAQ,QAAU,EAAQ,SAAS,EAAE,YAAY,EAAI,EAC9D,EACA,oBAAqB,GAAK,CACxB,IAAM,EAAU,EAAW,CAAC,EAC5B,OAAO,EAAQ,QAAU,EAAQ,SAAS,CAAe,EAAI,EAC/D,CACF,ECFa,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA4B,CAAqB,EAItC,EACX,EAA8B,CAAqB,EAIxC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAAgC,CAAqB,EAI1C,EACX,EAAoC,CAAqB,EAK9C,EACX,EAA4B,CAAqB,EAKtC,EACX,EAAqC,CAAqB,EAK/C,EACX,EAA2B,CAAqB,EAKrC,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA+B,CAAqB"}
1
+ {"version":3,"file":"react-querybuilder_datetime.production.luxon.mjs","names":[],"sources":["../src/rqbDateTimeLibraryAPI.luxon.ts","../src/index.luxon.ts"],"sourcesContent":["import { DateTime } from 'luxon';\nimport type { RelativeDateTimeUnit, 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\nconst durationKeyMap: Record<RelativeDateTimeUnit, string> = {\n minute: 'minutes',\n hour: 'hours',\n day: 'days',\n week: 'weeks',\n month: 'months',\n year: 'years',\n};\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 startOf: (d, unit) => toDateTime(d).startOf(unit).toJSDate(),\n endOf: (d, unit) => toDateTime(d).endOf(unit).toJSDate(),\n add: (d, amount, unit) =>\n toDateTime(d)\n .plus({ [durationKeyMap[unit]]: amount })\n .toJSDate(),\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 { getDatetimeRuleProcessorCypher } from './getDatetimeRuleProcessorCypher';\nimport { getDatetimeRuleProcessorDrizzle } from './getDatetimeRuleProcessorDrizzle';\nimport { getDatetimeRuleProcessorElasticSearch } from './getDatetimeRuleProcessorElasticSearch';\nimport { getDatetimeRuleProcessorGremlin } from './getDatetimeRuleProcessorGremlin';\nimport { getDatetimeRuleProcessorJSONata } from './getDatetimeRuleProcessorJSONata';\nimport { getDatetimeRuleProcessorLDAP } from './getDatetimeRuleProcessorLDAP';\nimport { getDatetimeRuleProcessorMongoDB } from './getDatetimeRuleProcessorMongoDB';\nimport { getDatetimeRuleProcessorMongoDBQuery } from './getDatetimeRuleProcessorMongoDBQuery';\nimport { getDatetimeRuleProcessorNL } from './getDatetimeRuleProcessorNL';\nimport { getDatetimeRuleProcessorParameterized } from './getDatetimeRuleProcessorParameterized';\nimport { getDatetimeRuleProcessorPrisma } from './getDatetimeRuleProcessorPrisma';\nimport { getDatetimeRuleProcessorSequelize } from './getDatetimeRuleProcessorSequelize';\nimport { getDatetimeRuleProcessorSPARQL } from './getDatetimeRuleProcessorSPARQL';\nimport { getDatetimeRuleProcessorSpEL } from './getDatetimeRuleProcessorSpEL';\nimport {\n getDatetimeRuleProcessorSQL,\n getDatetimeValueProcessorANSI,\n getDatetimeValueProcessorMSSQL,\n getDatetimeValueProcessorMySQL,\n getDatetimeValueProcessorOracle,\n getDatetimeValueProcessorPostgreSQL,\n} from './getDatetimeRuleProcessorSQL';\nimport { getDatetimeRuleProcessorTanStackDB } from './getDatetimeRuleProcessorTanStackDB';\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 \"jsonata\" format using Luxon\n */\nexport const datetimeRuleProcessorJSONata: RuleProcessor =\n getDatetimeRuleProcessorJSONata(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\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"cypher\"/\"gql\" format using Luxon\n */\nexport const datetimeRuleProcessorCypher: ValueProcessorByRule =\n getDatetimeRuleProcessorCypher(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sparql\" format using Luxon\n */\nexport const datetimeRuleProcessorSPARQL: ValueProcessorByRule =\n getDatetimeRuleProcessorSPARQL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"parameterized\"/\"parameterized_named\" formats\n */\nexport const datetimeRuleProcessorParameterized: RuleProcessor =\n getDatetimeRuleProcessorParameterized(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"spel\" format\n */\nexport const datetimeRuleProcessorSpEL: RuleProcessor =\n getDatetimeRuleProcessorSpEL(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"ldap\" format\n */\nexport const datetimeRuleProcessorLDAP: RuleProcessor =\n getDatetimeRuleProcessorLDAP(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"gremlin\" format\n */\nexport const datetimeRuleProcessorGremlin: RuleProcessor =\n getDatetimeRuleProcessorGremlin(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"prisma\" format\n */\nexport const datetimeRuleProcessorPrisma: RuleProcessor =\n getDatetimeRuleProcessorPrisma(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"sequelize\" format\n */\nexport const datetimeRuleProcessorSequelize: RuleProcessor =\n getDatetimeRuleProcessorSequelize(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"drizzle\" format\n */\nexport const datetimeRuleProcessorDrizzle: RuleProcessor =\n getDatetimeRuleProcessorDrizzle(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"elasticsearch\" format\n */\nexport const datetimeRuleProcessorElasticSearch: RuleProcessor =\n getDatetimeRuleProcessorElasticSearch(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for \"tanstack_db\" format\n */\nexport const datetimeRuleProcessorTanStackDB: RuleProcessor =\n getDatetimeRuleProcessorTanStackDB(rqbDateTimeLibraryAPI);\n\n/**\n * {@link @react-querybuilder/core!formatQuery formatQuery} rule processor for (deprecated) \"mongodb\" format\n */\nexport const datetimeRuleProcessorMongoDB: RuleProcessor =\n getDatetimeRuleProcessorMongoDB(rqbDateTimeLibraryAPI);\n\nexport * from './rqbDateTimeLibraryAPI.luxon';\n"],"mappings":"mQAIA,MAAM,EAAc,GAClB,OAAO,GAAM,SAAW,EAAS,QAAQ,CAAC,EAAI,EAAS,WAAW,CAAC,EAC/D,EAAkB,aAElB,EAAuD,CAC3D,OAAQ,UACR,KAAM,QACN,IAAK,OACL,KAAM,QACN,MAAO,SACP,KAAM,OACR,EAKa,EAA+C,CAC1D,QAAS,EAAG,IAAQ,EAAW,CAAC,CAAC,CAAC,SAAS,EAAI,QAAQ,aAAc,CAAe,CAAC,EACrF,SAAU,EAAG,IAAM,EAAW,CAAC,EAAI,EAAW,CAAC,EAC/C,UAAW,EAAG,IAAM,EAAW,CAAC,EAAI,EAAW,CAAC,EAChD,QAAS,EAAG,IACV,EAAoB,CAAC,GAAK,EAAoB,CAAC,EAC3C,EAAW,CAAC,CAAC,CAAC,QAAQ,EAAW,CAAC,EAAG,KAAK,EAC1C,CAAC,EAAW,CAAC,GAAM,CAAC,EAAW,CAAC,EACtC,QAAS,GAAK,EAAW,CAAC,CAAC,CAAC,QAC5B,OAAQ,GAAK,EAAW,CAAC,CAAC,CAAC,SAAS,EACpC,YAAa,GAAK,CAChB,IAAM,EAAU,EAAW,CAAC,EAC5B,OAAO,EAAQ,QAAU,EAAQ,SAAS,CAAC,CAAC,YAAY,EAAI,EAC9D,EACA,oBAAqB,GAAK,CACxB,IAAM,EAAU,EAAW,CAAC,EAC5B,OAAO,EAAQ,QAAU,EAAQ,SAAS,CAAe,EAAI,EAC/D,EACA,SAAU,EAAG,IAAS,EAAW,CAAC,CAAC,CAAC,QAAQ,CAAI,CAAC,CAAC,SAAS,EAC3D,OAAQ,EAAG,IAAS,EAAW,CAAC,CAAC,CAAC,MAAM,CAAI,CAAC,CAAC,SAAS,EACvD,KAAM,EAAG,EAAQ,IACf,EAAW,CAAC,CAAC,CACV,KAAK,EAAG,EAAe,IAAQ,CAAO,CAAC,CAAC,CACxC,SAAS,CAChB,ECNa,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA4B,CAAqB,EAItC,EACX,EAA8B,CAAqB,EAIxC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAA+B,CAAqB,EAIzC,EACX,EAAgC,CAAqB,EAI1C,EACX,EAAoC,CAAqB,EAK9C,EACX,EAA4B,CAAqB,EAKtC,EACX,EAAgC,CAAqB,EAK1C,EACX,EAAqC,CAAqB,EAK/C,EACX,EAA2B,CAAqB,EAKrC,EACX,EAA+B,CAAqB,EAKzC,EACX,EAA+B,CAAqB,EAKzC,EACX,EAAsC,CAAqB,EAKhD,EACX,EAA6B,CAAqB,EAKvC,EACX,EAA6B,CAAqB,EAKvC,EACX,EAAgC,CAAqB,EAK1C,EACX,EAA+B,CAAqB,EAKzC,EACX,EAAkC,CAAqB,EAK5C,EACX,EAAgC,CAAqB,EAK1C,EACX,EAAsC,CAAqB,EAKhD,EACX,EAAmC,CAAqB,EAK7C,EACX,EAAgC,CAAqB"}
@@ -1,2 +1,2 @@
1
- import{a as e,c as t,d as n,f as r,g as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./getDatetimeRuleProcessorSQL-CvGKzojM.mjs";import{defaultRuleProcessorJSONata as h,defaultRuleProcessorJsonLogic as g,getQuotedFieldName as _,nullOrUndefinedOrEmpty as v,toArray as y}from"react-querybuilder";const b={"!=":`dateNotOn`,"<":`dateBefore`,"<=":`dateOnOrBefore`,"=":`dateOn`,">":`dateAfter`,">=":`dateOnOrAfter`,between:`dateBetween`,in:`dateIn`,notBetween:`dateNotBetween`,notIn:`dateNotIn`},x=(e,t)=>{let n=t??{};if(!i(n.context?.isDateField,e,n))return g(e,n);let{field:r,operator:a,value:o,valueSource:s}=e,c=s===`field`,l={var:r},u=e=>c?{var:`${e}`}:e;switch(a){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[b[a]]:[l,u(o)]};case`in`:case`notIn`:{let e=y(o).map(e=>u(e));return{[b[a]]:[l,e]}}case`between`:case`notBetween`:{let e=y(o).map(e=>u(e));return e.length<2?!1:{[b[a]]:[e[0],l,e[1]]}}}return g(e,t)},S=e=>/^(does)?not/i.test(e),C=(e,t)=>t?`$not(${e})`:`${e}`,w=e=>(t,n)=>{let r=n??{},{context:a={}}=r,{quoteFieldNamesWith:o=[``,``],fieldIdentifierSeparator:s=``}=r,{field:c,operator:l,value:u,valueSource:d}=t;if(!i(a.isDateField,t,r))return h(t,r);let f=d===`field`,p=e=>`$toMillis(${_(e,{quoteFieldNamesWith:o,fieldIdentifierSeparator:s})})`,m=t=>`$toMillis("${e.toISOString(t)}")`;switch(l){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${p(c)} ${l} ${f?p(u):m(u)}`}let g=y(t.value,{retainEmptyStrings:!1}),b=g.map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(l){case`in`:case`notIn`:return f?g.length===0?``:C(`${p(c)} in [${g.map(e=>p(e)).join(`, `)}]`,S(l)):b.length===0?``:C(`${p(c)} in [${b.map(e=>m(e)).join(`, `)}]`,S(l));case`between`:case`notBetween`:{if(g.length<2||v(g[0])||v(g[1])||!f&&b.length<2)return``;if(f){let[e,t]=g,n=`${p(c)} >= ${p(e)} and ${p(c)} <= ${p(t)}`;return l===`between`?`(${n})`:C(n,!0)}let[t,n]=b,[r,i]=e.isBefore(t,n)?[t,n]:[n,t],a=`${p(c)} >= ${m(r)} and ${p(c)} <= ${m(i)}`;return l===`between`?`(${a})`:C(a,!0)}}return h(t,r)};export{x as datetimeRuleProcessorJsonLogic,t as datetimeValueProcessorNL,o as defaultDateTimeNLOperatorMap,s as getDatetimeJsonLogicOperations,u as getDatetimeRuleProcessorCEL,r as getDatetimeRuleProcessorCypher,w as getDatetimeRuleProcessorJSONata,n as getDatetimeRuleProcessorMongoDBQuery,m as getDatetimeRuleProcessorNL,f as getDatetimeRuleProcessorSPARQL,p as getDatetimeRuleProcessorSQL,c as getDatetimeValueProcessorANSI,d as getDatetimeValueProcessorMSSQL,a as getDatetimeValueProcessorMySQL,e as getDatetimeValueProcessorOracle,l as getDatetimeValueProcessorPostgreSQL};
1
+ import{A as e,C as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as ee,u as C,v as te,w as ne,x as re,y as ie}from"./getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs";import{t as ae}from"./rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs";import{QueryBuilderContext as oe,ValueEditor as w,clsx as T,defaultOperators as se,defaultRuleProcessorJsonLogic as E,getCompatContextProvider as ce,parseNumber as le,standardClassnames as D,toArray as O,useValueEditor as k}from"react-querybuilder";import*as A from"react";import{createContext as j,useCallback as M,useContext as N,useMemo as P}from"react";const F={"!=":`dateNotOn`,"<":`dateBefore`,"<=":`dateOnOrBefore`,"=":`dateOn`,">":`dateAfter`,">=":`dateOnOrAfter`,between:`dateBetween`,in:`dateIn`,notBetween:`dateNotBetween`,notIn:`dateNotIn`},ue=(t,i)=>{let a=i??{};if(!h(a.context?.isDateField,t,a))return E(t,a);let{field:o,value:s,valueSource:c}=t,l=e(t,a),u=c===`field`,d={var:o},f=n(a?.fieldData?.datatype),p=e=>u?{var:`${e}`}:r(e)?{dateRelative:[e.anchor,e.offset,e.unit,f]}:e;switch(l){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return{[F[l]]:[d,p(s)]};case`in`:case`notIn`:{let e=(Array.isArray(s)?s:O(s)).map(p);return{[F[l]]:[d,e]}}case`between`:case`notBetween`:{let e=(Array.isArray(s)?s:O(s)).map(p);return e.length<2?!1:{[F[l]]:[e[0],d,e[1]]}}}return E(t,i)},I=j(null),L=()=>N(I),R=`rule-value-dateTimeRelative-toggle`,z={mode:`relative`,anchor:`now`,offset:0,unit:`day`},B=[{name:`now`,value:`now`,label:`now`},{name:`startOfDay`,value:`startOfDay`,label:`start of day`},{name:`endOfDay`,value:`endOfDay`,label:`end of day`},{name:`startOfWeek`,value:`startOfWeek`,label:`start of week`},{name:`endOfWeek`,value:`endOfWeek`,label:`end of week`},{name:`startOfMonth`,value:`startOfMonth`,label:`start of month`},{name:`endOfMonth`,value:`endOfMonth`,label:`end of month`},{name:`startOfYear`,value:`startOfYear`,label:`start of year`},{name:`endOfYear`,value:`endOfYear`,label:`end of year`}],V=[{name:`minute`,value:`minute`,label:`minute(s)`},{name:`hour`,value:`hour`,label:`hour(s)`},{name:`day`,value:`day`,label:`day(s)`},{name:`week`,value:`week`,label:`week(s)`},{name:`month`,value:`month`,label:`month(s)`},{name:`year`,value:`year`,label:`year(s)`}],H={label:`Toggle relative date/time`,absoluteTitle:`Absolute date/time (click for relative)`,relativeTitle:`Relative date/time (click for absolute)`,absoluteContent:``,relativeContent:``},U=({isRelative:e,setMode:t,disabled:n,className:r,labels:i})=>{let a=A.useCallback(()=>t(e?`absolute`:`relative`),[t,e]);return A.createElement(`button`,{type:`button`,role:`switch`,"aria-checked":e,"aria-label":i.label,title:e?i.relativeTitle:i.absoluteTitle,disabled:n,className:T(R,r),onClick:a},e?i.relativeContent:i.absoluteContent)},W={isRelative:e=>r(e.value),ModeControl:U},de=e=>({isRelative:t=>typeof e==`function`?e(t.operator):e.includes(t.operator)}),fe=(e,t)=>e.map(e=>({...e,operators:[...e.operators??se,...t]})),G=j({}),K=()=>{let e=N(G);return P(()=>({modeController:e.modeController??W,anchors:e.anchors??B,units:e.units??V,toggleLabels:{...H,...e.toggleLabels},dateTimeAPI:e.dateTimeAPI??ae}),[e])},q=[],pe={name:``,value:``,label:``},me=e=>Array.isArray(e)?e:r(e)?[e]:O(e),J=({baseProps:e,value:t,onChange:n,absoluteOperator:i,config:a,SelectorComponent:o,valueListItemClassName:s,numericSchema:c})=>{let{schema:l,disabled:u,title:d,testID:f}=e,{modeController:p,anchors:m,units:h,toggleLabels:g}=a,_=L()??w,v=p.isRelative({...e,value:t}),y=r(t)?t:z,b=M(e=>n(e===`relative`?z:``),[n]),x=M(e=>n({...y,anchor:e}),[n,y]),S=M(e=>n({...y,offset:le(e,{parseNumbers:!0})||0}),[n,y]),ee=M(e=>n({...y,unit:e}),[n,y]),{ModeControl:C}=p;return A.createElement(A.Fragment,null,C&&A.createElement(C,{isRelative:v,setMode:b,schema:l,disabled:u,className:s,title:d,testID:f,labels:g}),v?A.createElement(A.Fragment,null,A.createElement(o,{schema:l,testID:f,title:d,className:s,handleOnChange:x,disabled:u,value:y.anchor,options:m,multiple:!1,listsAsArrays:!1,path:q,level:0}),A.createElement(_,{skipHook:!0,testID:f,inputType:`number`,title:d,className:s,disabled:u,handleOnChange:S,field:``,operator:``,value:y.offset,valueSource:`value`,fieldData:pe,schema:c,path:q,level:0,rule:{field:``,operator:`=`,value:y.offset}}),y.offset!==0&&A.createElement(o,{schema:l,testID:f,title:d,className:s,handleOnChange:ee,disabled:u,value:y.unit,options:h,multiple:!1,listsAsArrays:!1,path:q,level:0})):A.createElement(Q,{...e,operator:i,value:t,handleOnChange:n,className:D.value}))},Y=e=>{let{valueListItemClassName:t}=k(e),{className:n,value:r,handleOnChange:i,schema:a,operator:o,separator:s}=e,{suppressStandardClassnames:c}=a,l=e.selectorComponent??a.controls.valueSelector,u=K(),d=P(()=>({...a,parseNumbers:!0}),[a]),f=P(()=>T(c||D.valueDateTimeRelative,n),[c,n]),p=o===`between`||o===`notBetween`,m=P(()=>me(r),[r]),h=M(e=>t=>{let n=[m[0],m[1]];n[e]=t,i(n)},[m,i]);return p?A.createElement(`span`,{className:f},A.createElement(J,{baseProps:e,value:m[0],onChange:h(0),absoluteOperator:`=`,config:u,SelectorComponent:l,valueListItemClassName:t,numericSchema:d}),s,A.createElement(J,{baseProps:e,value:m[1],onChange:h(1),absoluteOperator:`=`,config:u,SelectorComponent:l,valueListItemClassName:t,numericSchema:d})):A.createElement(`span`,{className:f},A.createElement(J,{baseProps:e,value:r,onChange:i,absoluteOperator:o,config:u,SelectorComponent:l,valueListItemClassName:t,numericSchema:d}))},X=(e,t)=>e.type===`text`&&(t===`date`||t===`datetime-local`)||/^(?:date|datetime|timestamp)\b/i.test(e.fieldData?.datatype),Z=e=>`${e}`.padStart(2,`0`),he=(e,t)=>{let n=`${e.getFullYear()}-${Z(e.getMonth()+1)}-${Z(e.getDate())}`;return t?`${n}T${Z(e.getHours())}:${Z(e.getMinutes())}`:n},Q=e=>{let t=k(e),n=L(),{dateTimeAPI:r}=K(),i=e=>n?A.createElement(n,e):A.createElement(w,{...e,skipHook:!0});if(!X(e,t.inputTypeCoerced))return i(e);if(r.isValid(e.value)){let n=he(r.toDate(e.value),t.inputTypeCoerced!==`date`);return i({...e,value:n})}return i(e)},$=ce({controlElements:{valueEditor:e=>{let t=k(e),n=L();return X(e,t.inputTypeCoerced)?A.createElement(Y,e):n?A.createElement(n,e):A.createElement(w,{...e,skipHook:!0})}}}),ge=({children:e,modeController:t,anchors:n,units:r,toggleLabels:i,dateTimeAPI:a})=>{let o=P(()=>({modeController:t,anchors:n,units:r,toggleLabels:i,dateTimeAPI:a}),[t,n,r,i,a]),s=N(oe).controlElements?.valueEditor??null;return A.createElement(G.Provider,{value:o},A.createElement(I.Provider,{value:s},A.createElement($,null,e)))};export{Q as DateTimeValueEditor,ge as QueryBuilderDateTime,$ as QueryBuilderDateTimeContext,G as RelativeDateTimeConfigContext,U as RelativeDateTimeModeToggle,Y as RelativeDateTimeValueEditor,de as createOperatorModeController,ue as datetimeRuleProcessorJsonLogic,b as datetimeValueProcessorNL,_ as defaultDateTimeNLOperatorMap,B as defaultRelativeDateTimeAnchors,H as defaultRelativeDateTimeToggleLabels,V as defaultRelativeDateTimeUnits,z as defaultRelativeDateTimeValue,a as getDatetimeJsonLogicOperations,ne as getDatetimeRuleProcessorCEL,t as getDatetimeRuleProcessorCypher,i as getDatetimeRuleProcessorDrizzle,re as getDatetimeRuleProcessorElasticSearch,c as getDatetimeRuleProcessorGremlin,ie as getDatetimeRuleProcessorJSONata,te as getDatetimeRuleProcessorLDAP,f as getDatetimeRuleProcessorMongoDB,o as getDatetimeRuleProcessorMongoDBQuery,p as getDatetimeRuleProcessorNL,d as getDatetimeRuleProcessorParameterized,u as getDatetimeRuleProcessorPrisma,g as getDatetimeRuleProcessorSPARQL,v as getDatetimeRuleProcessorSQL,C as getDatetimeRuleProcessorSequelize,l as getDatetimeRuleProcessorSpEL,ee as getDatetimeRuleProcessorTanStackDB,x as getDatetimeValueProcessorANSI,m as getDatetimeValueProcessorMSSQL,s as getDatetimeValueProcessorMySQL,y as getDatetimeValueProcessorOracle,S as getDatetimeValueProcessorPostgreSQL,R as relativeDateTimeToggleClassName,W as toggleModeController,K as useRelativeDateTimeConfig,fe as withRelativeOperators};
2
2
  //# sourceMappingURL=react-querybuilder_datetime.production.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-querybuilder_datetime.production.mjs","names":[],"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 ?? /* v8 ignore start -- @preserve */ {} /* v8 ignore stop -- @preserve */;\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, neg: boolean) => (neg ? `$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 ?? /* v8 ignore start -- @preserve */ {} /* v8 ignore stop -- @preserve */;\n const { context = {} } = opts;\n\n // v8 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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"}
1
+ {"version":3,"file":"react-querybuilder_datetime.production.mjs","names":["defaultDateTimeAPI"],"sources":["../src/datetimeRuleProcessorJsonLogic.ts","../src/InheritedValueEditorContext.ts","../src/relativeDateTimeConstants.ts","../src/relativeDateTimeModeControllers.tsx","../src/RelativeDateTimeConfigContext.tsx","../src/RelativeDateTimeValueEditor.tsx","../src/QueryBuilderDateTime.tsx"],"sourcesContent":["import type { DefaultOperatorName, JsonLogicVar, RuleProcessor } from 'react-querybuilder';\nimport { defaultRuleProcessorJsonLogic, toArray } from 'react-querybuilder';\nimport type { RQBJsonLogicDateRelative, RQBDateTimeJsonLogic } from './types';\nimport {\n isDateOnlyDatatype,\n isRelativeDateTimeValue,\n processIsDateField,\n resolveDatetimeOperator,\n} 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 ?? /* v8 ignore start -- @preserve */ {} /* v8 ignore stop -- @preserve */;\n\n if (!processIsDateField(opts.context?.isDateField, rule, opts)) {\n return defaultRuleProcessorJsonLogic(rule, opts);\n }\n\n const { field, value, valueSource } = rule;\n const operator = resolveDatetimeOperator(rule, opts);\n const valueIsField = valueSource === 'field';\n const fieldObject: JsonLogicVar = { var: field };\n const dateOnly = isDateOnlyDatatype(opts?.fieldData?.datatype);\n // Relative values stay \"live\": emit a `dateRelative` op resolved at evaluation time.\n // Field-source values are field names and render as `var` references.\n const renderValue = (v: unknown) => {\n if (valueIsField) return { var: `${v}` };\n if (isRelativeDateTimeValue(v)) {\n return {\n dateRelative: [v.anchor, v.offset, v.unit, dateOnly],\n } as RQBJsonLogicDateRelative;\n }\n return v as string;\n };\n\n switch (operator) {\n case '<':\n case '<=':\n case '=':\n case '!=':\n case '>':\n case '>=':\n return {\n [dateOperationMap[operator]]: [fieldObject, renderValue(value)],\n } as RQBDateTimeJsonLogic;\n\n case 'in':\n case 'notIn': {\n const valueAsArray = (Array.isArray(value) ? value : toArray(value)).map(renderValue);\n return { [dateOperationMap[operator]]: [fieldObject, valueAsArray] } as RQBDateTimeJsonLogic;\n }\n\n case 'between':\n case 'notBetween': {\n const valueAsArray = (Array.isArray(value) ? value : toArray(value)).map(renderValue);\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 { Context } from 'react';\nimport { createContext, useContext } from 'react';\nimport type { ValueEditorProps } from 'react-querybuilder';\n\n/**\n * Holds the value editor inherited from an outer (compat package) context provider,\n * captured _before_ {@link QueryBuilderDateTime} overrides it. Lets the date/time value\n * editor delegate non-date fields (and absolute date inputs) to the compat editor instead\n * of the bare default {@link react-querybuilder!ValueEditor ValueEditor}. `null` = none\n * inherited (fall back to default).\n */\nexport const InheritedValueEditorContext: Context<React.ComponentType<ValueEditorProps> | null> =\n createContext<React.ComponentType<ValueEditorProps> | null>(null);\n\n/** Inherited (compat) value editor, or `null` if none. See {@link InheritedValueEditorContext}. */\nexport const useInheritedValueEditor = (): React.ComponentType<ValueEditorProps> | null =>\n useContext(InheritedValueEditorContext);\n","import type { FullOption } from 'react-querybuilder';\nimport type {\n RelativeDateTimeAnchor,\n RelativeDateTimeToggleLabels,\n RelativeDateTimeUnit,\n RelativeDateTimeValue,\n} from './types';\n\n/**\n * Class name applied to the absolute/relative mode toggle button. Package-local (not part\n * of the core `standardClassnames`) to avoid coupling core to this extension.\n */\nexport const relativeDateTimeToggleClassName = 'rule-value-dateTimeRelative-toggle';\n\n/** Default value applied when switching a rule to relative mode. */\nexport const defaultRelativeDateTimeValue: RelativeDateTimeValue = {\n mode: 'relative',\n anchor: 'now',\n offset: 0,\n unit: 'day',\n};\n\n/** Default anchor (reference-point) options for the relative date/time editor. */\nexport const defaultRelativeDateTimeAnchors: FullOption<RelativeDateTimeAnchor>[] = [\n { name: 'now', value: 'now', label: 'now' },\n { name: 'startOfDay', value: 'startOfDay', label: 'start of day' },\n { name: 'endOfDay', value: 'endOfDay', label: 'end of day' },\n { name: 'startOfWeek', value: 'startOfWeek', label: 'start of week' },\n { name: 'endOfWeek', value: 'endOfWeek', label: 'end of week' },\n { name: 'startOfMonth', value: 'startOfMonth', label: 'start of month' },\n { name: 'endOfMonth', value: 'endOfMonth', label: 'end of month' },\n { name: 'startOfYear', value: 'startOfYear', label: 'start of year' },\n { name: 'endOfYear', value: 'endOfYear', label: 'end of year' },\n];\n\n/** Default unit options for the relative date/time editor. */\nexport const defaultRelativeDateTimeUnits: FullOption<RelativeDateTimeUnit>[] = [\n { name: 'minute', value: 'minute', label: 'minute(s)' },\n { name: 'hour', value: 'hour', label: 'hour(s)' },\n { name: 'day', value: 'day', label: 'day(s)' },\n { name: 'week', value: 'week', label: 'week(s)' },\n { name: 'month', value: 'month', label: 'month(s)' },\n { name: 'year', value: 'year', label: 'year(s)' },\n];\n\n/** Default labels/content for the absolute/relative mode toggle. */\nexport const defaultRelativeDateTimeToggleLabels: Required<RelativeDateTimeToggleLabels> = {\n label: 'Toggle relative date/time',\n absoluteTitle: 'Absolute date/time (click for relative)',\n relativeTitle: 'Relative date/time (click for absolute)',\n // Empty by default; the CSS pseudo-element renders the glyph based on `aria-checked`.\n absoluteContent: '',\n relativeContent: '',\n};\n","import * as React from 'react';\nimport type { FullOperator } from 'react-querybuilder';\nimport { clsx, defaultOperators } from 'react-querybuilder';\nimport { relativeDateTimeToggleClassName } from './relativeDateTimeConstants';\nimport type { RelativeDateTimeModeController, RelativeDateTimeModeControlProps } from './types';\nimport { isRelativeDateTimeValue } from './utils';\n\n/**\n * Compact absolute/relative toggle rendered by {@link toggleModeController}. A\n * `role=\"switch\"` button whose default glyph is supplied by CSS (keyed on\n * `aria-checked`); override via the `toggleLabels` config.\n *\n * @group Components\n */\nexport const RelativeDateTimeModeToggle = ({\n isRelative,\n setMode,\n disabled,\n className,\n labels,\n}: RelativeDateTimeModeControlProps): React.JSX.Element => {\n const onClick = React.useCallback(\n () => setMode(isRelative ? 'absolute' : 'relative'),\n [setMode, isRelative]\n );\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={isRelative}\n aria-label={labels.label}\n title={isRelative ? labels.relativeTitle : labels.absoluteTitle}\n disabled={disabled}\n className={clsx(relativeDateTimeToggleClassName, className)}\n onClick={onClick}>\n {isRelative ? labels.relativeContent : labels.absoluteContent}\n </button>\n );\n};\n\n/**\n * Zero-config default {@link RelativeDateTimeModeController}: derives the mode from the\n * value shape and renders a compact toggle button to switch between absolute and\n * relative entry.\n */\nexport const toggleModeController: RelativeDateTimeModeController = {\n isRelative: props => isRelativeDateTimeValue(props.value),\n ModeControl: RelativeDateTimeModeToggle,\n};\n\n/**\n * Builds an operator-driven {@link RelativeDateTimeModeController} that derives the mode\n * from the rule's operator. Pass the operator name(s) (or a predicate) that should put the\n * editor in relative mode. No toggle is rendered — the operator selector is the mode\n * affordance.\n *\n * NOTE: the chosen operators only signal _mode_; the rule's value remains a\n * {@link RelativeDateTimeValue}. For these operators to export correctly, map each one to a\n * real comparison operator via `context.relativeOperatorMap` when calling `formatQuery`\n * (e.g. `{ relativeEq: '=' }`). See the documentation.\n */\nexport const createOperatorModeController = (\n relativeOperators: string[] | ((operator: string) => boolean)\n): RelativeDateTimeModeController => ({\n isRelative: props =>\n typeof relativeOperators === 'function'\n ? relativeOperators(props.operator)\n : relativeOperators.includes(props.operator),\n});\n\ninterface FieldWithOperators {\n operators?: FullOperator[];\n [key: string]: unknown;\n}\n\n/**\n * Appends the given `operators` to each field's `operators` list, so the operator-driven\n * controller (see {@link createOperatorModeController}) has an operator to switch into\n * relative mode. Fields without an explicit `operators` list fall back to the core\n * `defaultOperators`.\n */\nexport const withRelativeOperators = <F extends FieldWithOperators>(\n fields: F[],\n operators: FullOperator[]\n): F[] =>\n fields.map(field => ({\n ...field,\n operators: [...(field.operators ?? (defaultOperators as FullOperator[])), ...operators],\n }));\n","import * as React from 'react';\nimport { createContext, useContext, useMemo } from 'react';\nimport type { FullOption } from 'react-querybuilder';\nimport {\n defaultRelativeDateTimeAnchors,\n defaultRelativeDateTimeToggleLabels,\n defaultRelativeDateTimeUnits,\n} from './relativeDateTimeConstants';\nimport { toggleModeController } from './relativeDateTimeModeControllers';\nimport { rqbDateTimeLibraryAPI as defaultDateTimeAPI } from './rqbDateTimeLibraryAPI.dayjs';\nimport type {\n RelativeDateTimeAnchor,\n RelativeDateTimeEditorConfig,\n RelativeDateTimeModeController,\n RelativeDateTimeToggleLabels,\n RelativeDateTimeUnit,\n RQBDateTimeLibraryAPI,\n} from './types';\n\n/** Fully-resolved relative date/time editor config (no optional fields). */\nexport interface ResolvedRelativeDateTimeConfig {\n modeController: RelativeDateTimeModeController;\n anchors: FullOption<RelativeDateTimeAnchor>[];\n units: FullOption<RelativeDateTimeUnit>[];\n toggleLabels: Required<RelativeDateTimeToggleLabels>;\n dateTimeAPI: RQBDateTimeLibraryAPI;\n}\n\n/**\n * Carries {@link RelativeDateTimeEditorConfig} to the {@link RelativeDateTimeValueEditor}.\n * Provided by {@link QueryBuilderDateTime}; defaults apply when no provider is present.\n */\nexport const RelativeDateTimeConfigContext: React.Context<RelativeDateTimeEditorConfig> =\n createContext<RelativeDateTimeEditorConfig>({});\n\n/** Reads the relative date/time editor config from context, merged with defaults. */\nexport const useRelativeDateTimeConfig = (): ResolvedRelativeDateTimeConfig => {\n const config = useContext(RelativeDateTimeConfigContext);\n return useMemo(\n () => ({\n modeController: config.modeController ?? toggleModeController,\n anchors: config.anchors ?? defaultRelativeDateTimeAnchors,\n units: config.units ?? defaultRelativeDateTimeUnits,\n toggleLabels: { ...defaultRelativeDateTimeToggleLabels, ...config.toggleLabels },\n dateTimeAPI: config.dateTimeAPI ?? defaultDateTimeAPI,\n }),\n [config]\n );\n};\n","import * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { FullField, Path, ValueEditorProps, ValueSelectorProps } from 'react-querybuilder';\nimport {\n clsx,\n parseNumber,\n standardClassnames,\n toArray,\n useValueEditor,\n ValueEditor,\n} from 'react-querybuilder';\nimport { useInheritedValueEditor } from './InheritedValueEditorContext';\nimport { DateTimeValueEditor } from './QueryBuilderDateTime';\nimport type { ResolvedRelativeDateTimeConfig } from './RelativeDateTimeConfigContext';\nimport { useRelativeDateTimeConfig } from './RelativeDateTimeConfigContext';\nimport { defaultRelativeDateTimeValue } from './relativeDateTimeConstants';\nimport type { RelativeDateTimeAnchor, RelativeDateTimeUnit, RelativeDateTimeValue } from './types';\nimport { isRelativeDateTimeValue } from './utils';\n\nconst dummyPath: Path = [];\nconst dummyFieldData: FullField = { name: '', value: '', label: '' };\n\n/** Splits a value into the from/to pair used by between/notBetween, object-safe. */\nconst toBetweenArray = (value: unknown): unknown[] =>\n Array.isArray(value) ? value : isRelativeDateTimeValue(value) ? [value] : toArray(value);\n\ninterface RelativeDateTimeSingleValueEditorProps {\n /** The original value editor props (for mode derivation and absolute rendering). */\n baseProps: ValueEditorProps;\n /** The value for this slot (the whole value, or one element of a between pair). */\n value: unknown;\n /** Emits a new value for this slot. */\n onChange: (value: unknown) => void;\n /** Operator passed to the absolute editor (forced to `=` for between slots). */\n absoluteOperator: string;\n config: ResolvedRelativeDateTimeConfig;\n SelectorComponent: React.ComponentType<ValueSelectorProps>;\n valueListItemClassName?: string;\n numericSchema: ValueEditorProps['schema'];\n}\n\n/**\n * Renders a single absolute-or-relative date/time value: a mode affordance (per the\n * controller) plus either an absolute date input or anchor + signed offset + unit\n * selectors. Reused once per slot so between/notBetween can mix bounds (e.g. an absolute\n * \"from\" and a relative \"to\").\n */\nconst RelativeDateTimeSingleValueEditor = ({\n baseProps,\n value,\n onChange,\n absoluteOperator,\n config,\n SelectorComponent,\n valueListItemClassName,\n numericSchema,\n}: RelativeDateTimeSingleValueEditorProps): React.JSX.Element => {\n const { schema, disabled, title, testID } = baseProps;\n const { modeController, anchors, units, toggleLabels } = config;\n\n // Themed numeric offset input from the inherited (compat) editor when present.\n const NumericEditor = useInheritedValueEditor() ?? ValueEditor;\n\n const isRelative = modeController.isRelative({ ...baseProps, value });\n const relValue: RelativeDateTimeValue = isRelativeDateTimeValue(value)\n ? value\n : defaultRelativeDateTimeValue;\n\n const handleSetMode = useCallback(\n (mode: 'absolute' | 'relative') =>\n onChange(mode === 'relative' ? defaultRelativeDateTimeValue : ''),\n [onChange]\n );\n\n const handleChangeAnchor = useCallback(\n (anchor: string) => onChange({ ...relValue, anchor: anchor as RelativeDateTimeAnchor }),\n [onChange, relValue]\n );\n\n const handleChangeOffset = useCallback(\n (offset: unknown) =>\n onChange({\n ...relValue,\n offset: (parseNumber(offset, { parseNumbers: true }) as number) || 0,\n }),\n [onChange, relValue]\n );\n\n const handleChangeUnit = useCallback(\n (unit: string) => onChange({ ...relValue, unit: unit as RelativeDateTimeUnit }),\n [onChange, relValue]\n );\n\n const { ModeControl } = modeController;\n\n return (\n <React.Fragment>\n {ModeControl && (\n <ModeControl\n isRelative={isRelative}\n setMode={handleSetMode}\n schema={schema}\n disabled={disabled}\n className={valueListItemClassName}\n title={title}\n testID={testID}\n labels={toggleLabels}\n />\n )}\n {isRelative ? (\n <React.Fragment>\n <SelectorComponent\n schema={schema}\n testID={testID}\n title={title}\n className={valueListItemClassName}\n handleOnChange={handleChangeAnchor}\n disabled={disabled}\n value={relValue.anchor}\n options={anchors}\n multiple={false}\n listsAsArrays={false}\n path={dummyPath}\n level={0}\n />\n <NumericEditor\n skipHook\n testID={testID}\n inputType=\"number\"\n title={title}\n className={valueListItemClassName}\n disabled={disabled}\n handleOnChange={handleChangeOffset}\n field={''}\n operator={''}\n value={relValue.offset}\n valueSource={'value'}\n fieldData={dummyFieldData}\n schema={numericSchema}\n path={dummyPath}\n level={0}\n rule={{ field: '', operator: '=', value: relValue.offset }}\n />\n {relValue.offset !== 0 && (\n <SelectorComponent\n schema={schema}\n testID={testID}\n title={title}\n className={valueListItemClassName}\n handleOnChange={handleChangeUnit}\n disabled={disabled}\n value={relValue.unit}\n options={units}\n multiple={false}\n listsAsArrays={false}\n path={dummyPath}\n level={0}\n />\n )}\n </React.Fragment>\n ) : (\n <DateTimeValueEditor\n {...baseProps}\n operator={absoluteOperator}\n value={value}\n handleOnChange={onChange}\n className={standardClassnames.value}\n />\n )}\n </React.Fragment>\n );\n};\n\n/**\n * Value editor with support for {@link RelativeDateTimeValue relative date/time values}\n * (e.g. \"three months ago\" or \"the beginning of this year\"). How the user switches\n * between absolute and relative modes is delegated to a pluggable\n * {@link RelativeDateTimeModeController} (default: a compact toggle), supplied via\n * {@link QueryBuilderDateTime}. In relative mode it renders anchor + signed offset + unit\n * selectors; the unit selector is hidden when the offset is `0`.\n *\n * For the `between`/`notBetween` operators it renders two independent value editors (each\n * with its own mode affordance) and stores the bounds as a two-element array, so the from\n * and to bounds can independently be absolute or relative.\n *\n * @group Components\n */\nexport const RelativeDateTimeValueEditor = (props: ValueEditorProps): React.JSX.Element => {\n const { valueListItemClassName } = useValueEditor(props);\n\n const { className, value, handleOnChange, schema, operator, separator } = props;\n const { suppressStandardClassnames } = schema;\n\n const SelectorComponent = props.selectorComponent ?? schema.controls.valueSelector;\n\n const config = useRelativeDateTimeConfig();\n\n const numericSchema = useMemo(() => ({ ...schema, parseNumbers: true }), [schema]);\n\n const outerClassname = useMemo(\n () => clsx(suppressStandardClassnames || standardClassnames.valueDateTimeRelative, className),\n [suppressStandardClassnames, className]\n );\n\n const isBetween = operator === 'between' || operator === 'notBetween';\n\n // For between/notBetween, store the bounds as a two-element array. Relative values are\n // objects (which can't survive comma-joining), so the array is emitted directly,\n // regardless of `listsAsArrays`.\n const valueAsArray = useMemo(() => toBetweenArray(value), [value]);\n\n const handleChangeBound = useCallback(\n (index: number) => (boundValue: unknown) => {\n const next = [valueAsArray[0], valueAsArray[1]];\n next[index] = boundValue;\n handleOnChange(next);\n },\n [valueAsArray, handleOnChange]\n );\n\n if (isBetween) {\n return (\n <span className={outerClassname}>\n <RelativeDateTimeSingleValueEditor\n baseProps={props}\n value={valueAsArray[0]}\n onChange={handleChangeBound(0)}\n absoluteOperator=\"=\"\n config={config}\n SelectorComponent={SelectorComponent}\n valueListItemClassName={valueListItemClassName}\n numericSchema={numericSchema}\n />\n {separator}\n <RelativeDateTimeSingleValueEditor\n baseProps={props}\n value={valueAsArray[1]}\n onChange={handleChangeBound(1)}\n absoluteOperator=\"=\"\n config={config}\n SelectorComponent={SelectorComponent}\n valueListItemClassName={valueListItemClassName}\n numericSchema={numericSchema}\n />\n </span>\n );\n }\n\n return (\n <span className={outerClassname}>\n <RelativeDateTimeSingleValueEditor\n baseProps={props}\n value={value}\n onChange={handleOnChange}\n absoluteOperator={operator}\n config={config}\n SelectorComponent={SelectorComponent}\n valueListItemClassName={valueListItemClassName}\n numericSchema={numericSchema}\n />\n </span>\n );\n};\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport type { QueryBuilderContextProvider, ValueEditorProps } from 'react-querybuilder';\nimport {\n getCompatContextProvider,\n QueryBuilderContext,\n useValueEditor,\n ValueEditor,\n} from 'react-querybuilder';\nimport {\n InheritedValueEditorContext,\n useInheritedValueEditor,\n} from './InheritedValueEditorContext';\nimport {\n RelativeDateTimeConfigContext,\n useRelativeDateTimeConfig,\n} from './RelativeDateTimeConfigContext';\nimport { RelativeDateTimeValueEditor } from './RelativeDateTimeValueEditor';\nimport type { RelativeDateTimeEditorConfig } from './types';\n\n/**\n * Whether a rule should use a date/time editor, based on either the coerced input\n * type (`date`/`datetime-local`) or a date-like `datatype` (`date`/`datetime`/`timestamp`).\n */\nconst isDateTimeEditor = (props: ValueEditorProps, inputTypeCoerced: string | undefined): boolean =>\n (props.type === 'text' &&\n (inputTypeCoerced === 'date' || inputTypeCoerced === 'datetime-local')) ||\n /^(?:date|datetime|timestamp)\\b/i.test(props.fieldData?.datatype as string);\n\nconst pad2 = (n: number): string => `${n}`.padStart(2, '0');\n\n/**\n * Formats a `Date` into the local value expected by a native `date`/`datetime-local`\n * input (library-agnostic; the date library only handles parsing/validation).\n */\nconst formatDateInputValue = (d: Date, withTime: boolean): string => {\n const datePart = `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`;\n return withTime ? `${datePart}T${pad2(d.getHours())}:${pad2(d.getMinutes())}` : datePart;\n};\n\nexport const DateTimeValueEditor = (props: ValueEditorProps): React.JSX.Element => {\n const uVE = useValueEditor(props);\n const InheritedEditor = useInheritedValueEditor();\n const { dateTimeAPI } = useRelativeDateTimeConfig();\n\n // Non-date fields and unparseable values: delegate to the inherited (compat) editor when\n // present, otherwise the default editor.\n const fallback = (p: ValueEditorProps) =>\n InheritedEditor ? <InheritedEditor {...p} /> : <ValueEditor {...p} skipHook />;\n\n if (!isDateTimeEditor(props, uVE.inputTypeCoerced)) {\n return fallback(props);\n }\n\n if (dateTimeAPI.isValid(props.value)) {\n const value = formatDateInputValue(\n dateTimeAPI.toDate(props.value),\n uVE.inputTypeCoerced !== 'date'\n );\n return fallback({ ...props, value });\n }\n\n return fallback(props);\n};\n\n/**\n * Provider value editor: renders the relative-capable {@link RelativeDateTimeValueEditor}\n * for date/time fields and falls back to the inherited (compat) editor for everything else.\n */\nconst QueryBuilderDateTimeValueEditor = (props: ValueEditorProps): React.JSX.Element => {\n const uVE = useValueEditor(props);\n const InheritedEditor = useInheritedValueEditor();\n\n if (isDateTimeEditor(props, uVE.inputTypeCoerced)) {\n return <RelativeDateTimeValueEditor {...props} />;\n }\n\n return InheritedEditor ? <InheritedEditor {...props} /> : <ValueEditor {...props} skipHook />;\n};\n\nexport const QueryBuilderDateTimeContext: QueryBuilderContextProvider = getCompatContextProvider({\n controlElements: { valueEditor: QueryBuilderDateTimeValueEditor },\n});\n\n/** Props for {@link QueryBuilderDateTime}: {@link RelativeDateTimeEditorConfig} plus children. */\nexport interface QueryBuilderDateTimeProps extends RelativeDateTimeEditorConfig {\n children?: React.ReactNode;\n}\n\n/**\n * Context provider enabling date/time features for a wrapped\n * {@link react-querybuilder!QueryBuilder QueryBuilder}: renders the relative-capable\n * {@link RelativeDateTimeValueEditor} for date/time fields, and accepts optional\n * {@link RelativeDateTimeEditorConfig} props (mode controller, anchor/unit options, and\n * toggle labels). With no props it provides the zero-config toggle experience.\n *\n * @group Components\n */\nexport const QueryBuilderDateTime = ({\n children,\n modeController,\n anchors,\n units,\n toggleLabels,\n dateTimeAPI,\n}: QueryBuilderDateTimeProps): React.JSX.Element => {\n const config = useMemo(\n (): RelativeDateTimeEditorConfig => ({\n modeController,\n anchors,\n units,\n toggleLabels,\n dateTimeAPI,\n }),\n [modeController, anchors, units, toggleLabels, dateTimeAPI]\n );\n\n // Capture the value editor inherited from any outer compat provider (e.g. QueryBuilderMaterial)\n // _before_ QueryBuilderDateTimeContext overrides it, so date/time editors can delegate to it.\n const inheritedValueEditor = (useContext(QueryBuilderContext).controlElements?.valueEditor ??\n null) as React.ComponentType<ValueEditorProps> | null;\n\n return (\n <RelativeDateTimeConfigContext.Provider value={config}>\n <InheritedValueEditorContext.Provider value={inheritedValueEditor}>\n <QueryBuilderDateTimeContext>{children}</QueryBuilderDateTimeContext>\n </InheritedValueEditorContext.Provider>\n </RelativeDateTimeConfigContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { D as isISOStringDateOnly } from "./getDatetimeRuleProcessorTanStackDB-BcOC-o2A.mjs";
2
+ import dayjs from "dayjs";
3
+ //#region src/rqbDateTimeLibraryAPI.dayjs.ts
4
+ /**
5
+ * {@link RQBDateTimeLibraryAPI} for Day.js
6
+ */
7
+ const rqbDateTimeLibraryAPI = {
8
+ format: (d, fmt) => dayjs(d).format(fmt),
9
+ isAfter: (a, b) => dayjs(a).isAfter(b),
10
+ isBefore: (a, b) => dayjs(a).isBefore(b),
11
+ isSame: (a, b) => dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? "d" : "ms"),
12
+ isValid: (d) => dayjs(d).isValid(),
13
+ toDate: (d) => dayjs(d).toDate(),
14
+ toISOString: (d) => {
15
+ const dToDate = dayjs(d);
16
+ return dToDate.isValid() ? dToDate.toISOString() : "";
17
+ },
18
+ toISOStringDateOnly: (d) => {
19
+ const dToDate = dayjs(d);
20
+ return dToDate.isValid() ? dToDate.format("YYYY-MM-DD") : "";
21
+ },
22
+ startOf: (d, unit) => dayjs(d).startOf(unit).toDate(),
23
+ endOf: (d, unit) => dayjs(d).endOf(unit).toDate(),
24
+ add: (d, amount, unit) => dayjs(d).add(amount, unit).toDate()
25
+ };
26
+ //#endregion
27
+ export { rqbDateTimeLibraryAPI as t };
28
+
29
+ //# sourceMappingURL=rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs","names":[],"sources":["../src/rqbDateTimeLibraryAPI.dayjs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Day.js\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => dayjs(d).format(fmt),\n isAfter: (a, b) => dayjs(a).isAfter(b),\n isBefore: (a, b) => dayjs(a).isBefore(b),\n isSame: (a, b) =>\n dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? 'd' : 'ms'),\n isValid: d => dayjs(d).isValid(),\n toDate: d => dayjs(d).toDate(),\n toISOString: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.format('YYYY-MM-DD') : '';\n },\n startOf: (d, unit) => dayjs(d).startOf(unit).toDate(),\n endOf: (d, unit) => dayjs(d).endOf(unit).toDate(),\n add: (d, amount, unit) => dayjs(d).add(amount, unit).toDate(),\n};\n"],"mappings":";;;;;;AAOA,MAAa,wBAA+C;CAC1D,SAAS,GAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG;CACvC,UAAU,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;CACrC,WAAW,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;CACvC,SAAS,GAAG,MACV,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,oBAAoB,CAAC,KAAK,oBAAoB,CAAC,IAAI,MAAM,IAAI;CAClF,UAAS,MAAK,MAAM,CAAC,CAAC,CAAC,QAAQ;CAC/B,SAAQ,MAAK,MAAM,CAAC,CAAC,CAAC,OAAO;CAC7B,cAAa,MAAK;EAChB,MAAM,UAAU,MAAM,CAAC;EACvB,OAAO,QAAQ,QAAQ,IAAI,QAAQ,YAAY,IAAI;CACrD;CACA,sBAAqB,MAAK;EACxB,MAAM,UAAU,MAAM,CAAC;EACvB,OAAO,QAAQ,QAAQ,IAAI,QAAQ,OAAO,YAAY,IAAI;CAC5D;CACA,UAAU,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO;CACpD,QAAQ,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO;CAChD,MAAM,GAAG,QAAQ,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO;AAC9D"}
@@ -0,0 +1,2 @@
1
+ import{D as e}from"./getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs";import t from"dayjs";const n={format:(e,n)=>t(e).format(n),isAfter:(e,n)=>t(e).isAfter(n),isBefore:(e,n)=>t(e).isBefore(n),isSame:(n,r)=>t(n).isSame(r,e(n)||e(r)?`d`:`ms`),isValid:e=>t(e).isValid(),toDate:e=>t(e).toDate(),toISOString:e=>{let n=t(e);return n.isValid()?n.toISOString():``},toISOStringDateOnly:e=>{let n=t(e);return n.isValid()?n.format(`YYYY-MM-DD`):``},startOf:(e,n)=>t(e).startOf(n).toDate(),endOf:(e,n)=>t(e).endOf(n).toDate(),add:(e,n,r)=>t(e).add(n,r).toDate()};export{n as t};
2
+ //# sourceMappingURL=rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs","names":[],"sources":["../src/rqbDateTimeLibraryAPI.dayjs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Day.js\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => dayjs(d).format(fmt),\n isAfter: (a, b) => dayjs(a).isAfter(b),\n isBefore: (a, b) => dayjs(a).isBefore(b),\n isSame: (a, b) =>\n dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? 'd' : 'ms'),\n isValid: d => dayjs(d).isValid(),\n toDate: d => dayjs(d).toDate(),\n toISOString: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.format('YYYY-MM-DD') : '';\n },\n startOf: (d, unit) => dayjs(d).startOf(unit).toDate(),\n endOf: (d, unit) => dayjs(d).endOf(unit).toDate(),\n add: (d, amount, unit) => dayjs(d).add(amount, unit).toDate(),\n};\n"],"mappings":"2FAOA,MAAa,EAA+C,CAC1D,QAAS,EAAG,IAAQ,EAAM,CAAC,CAAC,CAAC,OAAO,CAAG,EACvC,SAAU,EAAG,IAAM,EAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EACrC,UAAW,EAAG,IAAM,EAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EACvC,QAAS,EAAG,IACV,EAAM,CAAC,CAAC,CAAC,OAAO,EAAG,EAAoB,CAAC,GAAK,EAAoB,CAAC,EAAI,IAAM,IAAI,EAClF,QAAS,GAAK,EAAM,CAAC,CAAC,CAAC,QAAQ,EAC/B,OAAQ,GAAK,EAAM,CAAC,CAAC,CAAC,OAAO,EAC7B,YAAa,GAAK,CAChB,IAAM,EAAU,EAAM,CAAC,EACvB,OAAO,EAAQ,QAAQ,EAAI,EAAQ,YAAY,EAAI,EACrD,EACA,oBAAqB,GAAK,CACxB,IAAM,EAAU,EAAM,CAAC,EACvB,OAAO,EAAQ,QAAQ,EAAI,EAAQ,OAAO,YAAY,EAAI,EAC5D,EACA,SAAU,EAAG,IAAS,EAAM,CAAC,CAAC,CAAC,QAAQ,CAAI,CAAC,CAAC,OAAO,EACpD,OAAQ,EAAG,IAAS,EAAM,CAAC,CAAC,CAAC,MAAM,CAAI,CAAC,CAAC,OAAO,EAChD,KAAM,EAAG,EAAQ,IAAS,EAAM,CAAC,CAAC,CAAC,IAAI,EAAQ,CAAI,CAAC,CAAC,OAAO,CAC9D"}
@@ -0,0 +1,29 @@
1
+ import { O as isISOStringDateOnly } from "./getDatetimeRuleProcessorTanStackDB-LDwhMJg0.js";
2
+ import dayjs from "dayjs";
3
+ //#region src/rqbDateTimeLibraryAPI.dayjs.ts
4
+ /**
5
+ * {@link RQBDateTimeLibraryAPI} for Day.js
6
+ */
7
+ const rqbDateTimeLibraryAPI = {
8
+ format: (d, fmt) => dayjs(d).format(fmt),
9
+ isAfter: (a, b) => dayjs(a).isAfter(b),
10
+ isBefore: (a, b) => dayjs(a).isBefore(b),
11
+ isSame: (a, b) => dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? "d" : "ms"),
12
+ isValid: (d) => dayjs(d).isValid(),
13
+ toDate: (d) => dayjs(d).toDate(),
14
+ toISOString: (d) => {
15
+ const dToDate = dayjs(d);
16
+ return dToDate.isValid() ? dToDate.toISOString() : "";
17
+ },
18
+ toISOStringDateOnly: (d) => {
19
+ const dToDate = dayjs(d);
20
+ return dToDate.isValid() ? dToDate.format("YYYY-MM-DD") : "";
21
+ },
22
+ startOf: (d, unit) => dayjs(d).startOf(unit).toDate(),
23
+ endOf: (d, unit) => dayjs(d).endOf(unit).toDate(),
24
+ add: (d, amount, unit) => dayjs(d).add(amount, unit).toDate()
25
+ };
26
+ //#endregion
27
+ export { rqbDateTimeLibraryAPI as t };
28
+
29
+ //# sourceMappingURL=rqbDateTimeLibraryAPI.dayjs-DvFSxPKu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rqbDateTimeLibraryAPI.dayjs-DvFSxPKu.js","names":[],"sources":["../src/rqbDateTimeLibraryAPI.dayjs.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { RQBDateTimeLibraryAPI } from './types';\nimport { isISOStringDateOnly } from './utils';\n\n/**\n * {@link RQBDateTimeLibraryAPI} for Day.js\n */\nexport const rqbDateTimeLibraryAPI: RQBDateTimeLibraryAPI = {\n format: (d, fmt) => dayjs(d).format(fmt),\n isAfter: (a, b) => dayjs(a).isAfter(b),\n isBefore: (a, b) => dayjs(a).isBefore(b),\n isSame: (a, b) =>\n dayjs(a).isSame(b, isISOStringDateOnly(a) || isISOStringDateOnly(b) ? 'd' : 'ms'),\n isValid: d => dayjs(d).isValid(),\n toDate: d => dayjs(d).toDate(),\n toISOString: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.toISOString() : '';\n },\n toISOStringDateOnly: d => {\n const dToDate = dayjs(d);\n return dToDate.isValid() ? dToDate.format('YYYY-MM-DD') : '';\n },\n startOf: (d, unit) => dayjs(d).startOf(unit).toDate(),\n endOf: (d, unit) => dayjs(d).endOf(unit).toDate(),\n add: (d, amount, unit) => dayjs(d).add(amount, unit).toDate(),\n};\n"],"mappings":";;;;;;AAOA,MAAa,wBAA+C;CAC1D,SAAS,GAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG;CACvC,UAAU,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;CACrC,WAAW,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;CACvC,SAAS,GAAG,MACV,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,oBAAoB,CAAC,KAAK,oBAAoB,CAAC,IAAI,MAAM,IAAI;CAClF,UAAS,MAAK,MAAM,CAAC,CAAC,CAAC,QAAQ;CAC/B,SAAQ,MAAK,MAAM,CAAC,CAAC,CAAC,OAAO;CAC7B,cAAa,MAAK;EAChB,MAAM,UAAU,MAAM,CAAC;EACvB,OAAO,QAAQ,QAAQ,IAAI,QAAQ,YAAY,IAAI;CACrD;CACA,sBAAqB,MAAK;EACxB,MAAM,UAAU,MAAM,CAAC;EACvB,OAAO,QAAQ,QAAQ,IAAI,QAAQ,OAAO,YAAY,IAAI;CAC5D;CACA,UAAU,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO;CACpD,QAAQ,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO;CAChD,MAAM,GAAG,QAAQ,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO;AAC9D"}
@@ -0,0 +1,30 @@
1
+ @use './variables' as *;
2
+
3
+ // Layout-only styles for RelativeDateTimeValueEditor. No colors/borders/fonts so the
4
+ // editor inherits the surrounding theme; compat packages style the sub-controls via
5
+ // the query builder schema's control components.
6
+ .rule-value-dateTimeRelative {
7
+ display: inline-flex;
8
+ flex-wrap: wrap;
9
+ align-items: center;
10
+ gap: var(--#{$rqbdt-var-prefix}spacing);
11
+ }
12
+
13
+ // Compact absolute/relative mode toggle. Colors/borders inherited from the theme; only
14
+ // the default glyph (keyed on `aria-checked`) and minimal layout are defined here. Set
15
+ // `toggleLabels.absoluteContent`/`relativeContent` to override the glyph entirely.
16
+ .rule-value-dateTimeRelative-toggle {
17
+ cursor: pointer;
18
+
19
+ &:empty::before {
20
+ content: '\1F4C5'; // 📅 calendar = absolute
21
+ }
22
+
23
+ &[aria-checked='true']:empty::before {
24
+ content: '\1F552'; // 🕒 clock = relative
25
+ }
26
+
27
+ &:disabled {
28
+ cursor: not-allowed;
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ @use './variables' as *;
2
+
3
+ :root {
4
+ --#{$rqbdt-var-prefix}spacing: #{$rqbdt-spacing};
5
+ }
@@ -0,0 +1,8 @@
1
+ @forward '../../../core/src/styles/variables';
2
+ @use '../../../core/src/styles/variables' as *;
3
+
4
+ $rqbdt-var-prefix: rqbdt- !default;
5
+
6
+ // Spacing between the relative date/time editor's sub-controls. Defaults to the
7
+ // core query builder spacing so the editor lines up with surrounding controls.
8
+ $rqbdt-spacing: $rqb-spacing !default;