@react-querybuilder/datetime 8.23.1 → 8.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-CW3VX3A5.js +6 -0
  2. package/dist/cjs/{getDatetimeRuleProcessorTanStackDB-BK2fKPFN.js.map → getDatetimeRuleProcessorTanStackDB-CW3VX3A5.js.map} +1 -1
  3. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +27 -27
  4. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +24 -25
  5. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +24 -25
  6. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +24 -25
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +24 -25
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.ui.d.ts +22 -23
  9. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +27 -27
  10. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +24 -25
  11. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  12. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +24 -25
  13. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  14. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  16. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +24 -25
  17. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  18. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +24 -25
  19. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.d.ts +22 -23
  21. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.js +1 -1
  22. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.js.map +1 -1
  23. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-BhJEU5Yh.js +2 -0
  24. package/dist/cjs/{rqbDateTimeLibraryAPI.jsdate-sJb39vcq.js.map → rqbDateTimeLibraryAPI.jsdate-BhJEU5Yh.js.map} +1 -1
  25. package/dist/cjs/utils-DDIzdVP8.js +4 -0
  26. package/dist/cjs/{utils-DdBYGWHZ.js.map → utils-DDIzdVP8.js.map} +1 -1
  27. package/dist/{getDatetimeRuleProcessorTanStackDB-Dpb4aOi1.js → getDatetimeRuleProcessorTanStackDB-BIClZR9Z.js} +2 -2
  28. package/dist/{getDatetimeRuleProcessorTanStackDB-Dpb4aOi1.js.map → getDatetimeRuleProcessorTanStackDB-BIClZR9Z.js.map} +1 -1
  29. package/dist/getDatetimeRuleProcessorTanStackDB-CeEUppsm.mjs +6 -0
  30. package/dist/{getDatetimeRuleProcessorTanStackDB-BWErgzW4.mjs.map → getDatetimeRuleProcessorTanStackDB-CeEUppsm.mjs.map} +1 -1
  31. package/dist/{objectSpread2-DzvyTx0z.js → objectSpread2-BRzeI7ye.js} +6 -6
  32. package/dist/{objectSpread2-DzvyTx0z.js.map → objectSpread2-BRzeI7ye.js.map} +1 -1
  33. package/dist/react-querybuilder_datetime.d.mts +27 -27
  34. package/dist/react-querybuilder_datetime.date-fns.d.mts +24 -25
  35. package/dist/react-querybuilder_datetime.dayjs.d.mts +24 -25
  36. package/dist/react-querybuilder_datetime.jsdate.d.mts +24 -25
  37. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +27 -27
  38. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +24 -25
  39. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +2 -2
  40. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +24 -25
  41. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +2 -2
  42. package/dist/react-querybuilder_datetime.legacy-esm.js +2 -2
  43. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +24 -25
  44. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +2 -2
  45. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +24 -25
  46. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +2 -2
  47. package/dist/react-querybuilder_datetime.legacy-esm.ui.d.ts +22 -23
  48. package/dist/react-querybuilder_datetime.legacy-esm.ui.js +4 -4
  49. package/dist/react-querybuilder_datetime.luxon.d.mts +24 -25
  50. package/dist/react-querybuilder_datetime.production.d.mts +27 -27
  51. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +24 -25
  52. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  53. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +24 -25
  54. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  55. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +24 -25
  56. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  57. package/dist/react-querybuilder_datetime.production.luxon.d.mts +24 -25
  58. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  59. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  60. package/dist/react-querybuilder_datetime.production.mjs.map +1 -1
  61. package/dist/react-querybuilder_datetime.production.ui.d.mts +22 -23
  62. package/dist/react-querybuilder_datetime.production.ui.mjs +1 -1
  63. package/dist/react-querybuilder_datetime.production.ui.mjs.map +1 -1
  64. package/dist/react-querybuilder_datetime.ui.d.mts +22 -23
  65. package/dist/{rqbDateTimeLibraryAPI.jsdate-DTPN_G2s.js → rqbDateTimeLibraryAPI.jsdate-CKn6JOt9.js} +2 -2
  66. package/dist/{rqbDateTimeLibraryAPI.jsdate-DTPN_G2s.js.map → rqbDateTimeLibraryAPI.jsdate-CKn6JOt9.js.map} +1 -1
  67. package/dist/rqbDateTimeLibraryAPI.jsdate-D-7pwJfN.mjs +2 -0
  68. package/dist/{rqbDateTimeLibraryAPI.jsdate-Bpo2F8gW.mjs.map → rqbDateTimeLibraryAPI.jsdate-D-7pwJfN.mjs.map} +1 -1
  69. package/dist/utils-DJad3fT3.mjs +4 -0
  70. package/dist/{utils-DA8aluCt.mjs.map → utils-DJad3fT3.mjs.map} +1 -1
  71. package/package.json +23 -22
  72. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-BK2fKPFN.js +0 -2
  73. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-sJb39vcq.js +0 -2
  74. package/dist/cjs/utils-DdBYGWHZ.js +0 -2
  75. package/dist/getDatetimeRuleProcessorTanStackDB-BWErgzW4.mjs +0 -2
  76. package/dist/rqbDateTimeLibraryAPI.jsdate-Bpo2F8gW.mjs +0 -2
  77. package/dist/utils-DA8aluCt.mjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"utils-DA8aluCt.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { RuleProcessor, ValueSource } from '@react-querybuilder/core';\nimport type {\n IsDateField,\n IsDateFieldFunction,\n RelativeDateTimeTruncationUnit,\n RelativeDateTimeValue,\n RQBDateTimeLibraryAPI,\n} from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\n/**\n * Whether a rule's value source is one that datetime processors must NOT materialize as a\n * date (`field` references another column; `parameter` is a named bind placeholder). Both\n * are delegated to the core default processor, which serializes them per format.\n */\nexport const isNonDateValueSource = (valueSource: ValueSource | undefined): boolean =>\n valueSource === 'field' || valueSource === 'parameter';\n\n/**\n * Type guard for {@link RelativeDateTimeValue}. Relative values are stored as objects\n * (distinguishing them from the ISO 8601 strings used for absolute date/time values).\n */\nexport const isRelativeDateTimeValue = (value: unknown): value is RelativeDateTimeValue =>\n typeof value === 'object' &&\n value !== null &&\n (value as { mode?: unknown }).mode === 'relative' &&\n typeof (value as RelativeDateTimeValue).anchor === 'string';\n\nconst anchorRegExp = /^(start|end)Of(Day|Week|Month|Year)$/;\n\n/**\n * Resolves a {@link RelativeDateTimeValue} into a concrete `Date` using the given\n * date library API. The anchor is applied relative to `base` (defaulting to now),\n * then the signed offset is added.\n */\nexport const resolveRelativeDateTime = (\n apiFns: RQBDateTimeLibraryAPI,\n value: RelativeDateTimeValue,\n base: Date = new Date()\n): Date => {\n let result: Date = base;\n\n if (value.anchor !== 'now') {\n const match = anchorRegExp.exec(value.anchor);\n // v8 ignore next -- guarded by the RelativeDateTimeAnchor type\n if (match) {\n const unit = match[2].toLowerCase() as RelativeDateTimeTruncationUnit;\n result = match[1] === 'start' ? apiFns.startOf(result, unit) : apiFns.endOf(result, unit);\n }\n }\n\n if (value.offset) {\n result = apiFns.add(result, value.offset, value.unit);\n }\n\n return result;\n};\n\n/**\n * Whether a `datatype` represents a date-only (no time component) type, e.g. `date`\n * but not `datetime`/`datetimeoffset`/`timestamp`. Used to choose the precision when\n * materializing a relative value to an ISO 8601 string.\n */\nexport const isDateOnlyDatatype = (datatype: unknown): boolean =>\n /^date\\b/i.test(datatype as string);\n\n/**\n * Replaces any {@link RelativeDateTimeValue} in `value` (or in each element, if `value`\n * is an array) with a concrete ISO 8601 string, resolved via\n * {@link resolveRelativeDateTime}. The \"now\" reference can be pinned with\n * `opts.context.relativeDateTimeBase` for deterministic output; precision (date-only vs\n * full) follows the field's `datatype`. Non-relative values pass through unchanged.\n */\nexport const materializeRelativeValues = (\n apiFns: RQBDateTimeLibraryAPI,\n value: unknown,\n opts: Parameters<RuleProcessor>[1]\n): unknown => {\n const base = opts?.context?.relativeDateTimeBase as Date | undefined;\n const dateOnly = isDateOnlyDatatype(opts?.fieldData?.datatype);\n const conv = (v: unknown): unknown => {\n if (!isRelativeDateTimeValue(v)) return v;\n const resolved = resolveRelativeDateTime(apiFns, v, base);\n return dateOnly ? apiFns.toISOStringDateOnly(resolved) : apiFns.toISOString(resolved);\n };\n return Array.isArray(value) ? value.map(conv) : conv(value);\n};\n\n/**\n * Resolves a rule's operator for export, applying any `context.relativeOperatorMap`\n * entry. Operator-driven mode controllers (see `createOperatorModeController`) use\n * dedicated operator names to signal relative mode; this maps those names to the real\n * comparison operator at format time. Operators absent from the map pass through unchanged.\n */\nexport const resolveDatetimeOperator = (...[rule, opts]: Parameters<RuleProcessor>): string =>\n (opts?.context?.relativeOperatorMap as Record<string, string> | undefined)?.[rule.operator] ??\n rule.operator;\n\n/**\n * Prepares a date/time rule for delegation to a non-symbolic default rule processor\n * (e.g. \"parameterized\", \"spel\", \"ldap\", \"gremlin\", \"prisma\", \"sequelize\", \"drizzle\",\n * \"tanstack_db\"). Relative values are materialized to concrete dates (these formats have\n * no symbolic relative form), and `between`/`notBetween` operands are ordered\n * chronologically (defaults can't reorder non-numeric date operands). When `asDate` is\n * set, each valid value is converted to a `Date` (for object-based formats); otherwise\n * the materialized ISO 8601 strings are passed through. The resolved `operator` (after\n * any `relativeOperatorMap` mapping) is returned alongside the prepared `value`.\n */\nexport const materializeForExport = (\n apiFns: RQBDateTimeLibraryAPI,\n rule: Parameters<RuleProcessor>[0],\n opts: Parameters<RuleProcessor>[1],\n asDate = false\n): { operator: string; value: unknown } => {\n const operator = resolveDatetimeOperator(rule, opts);\n const materialized = materializeRelativeValues(apiFns, rule.value, opts);\n\n let prepared = materialized;\n if (Array.isArray(materialized) && materialized.length >= 2) {\n const opLC = operator.toLowerCase();\n if (opLC === 'between' || opLC === 'notbetween') {\n const first = apiFns.toDate(materialized[0] as string | Date);\n const second = apiFns.toDate(materialized[1] as string | Date);\n if (apiFns.isValid(first) && apiFns.isValid(second) && !apiFns.isBefore(first, second)) {\n prepared = [materialized[1], materialized[0], ...materialized.slice(2)];\n }\n }\n }\n\n if (!asDate) return { operator, value: prepared };\n\n const toDateVal = (v: unknown) => {\n const d = apiFns.toDate(v as string | Date);\n return apiFns.isValid(d) ? d : v;\n };\n return {\n operator,\n value: Array.isArray(prepared) ? prepared.map(toDateVal) : toDateVal(prepared),\n };\n};\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils-DJad3fT3.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { RuleProcessor, ValueSource } from '@react-querybuilder/core';\nimport type {\n IsDateField,\n IsDateFieldFunction,\n RelativeDateTimeTruncationUnit,\n RelativeDateTimeValue,\n RQBDateTimeLibraryAPI,\n} from './types';\n\nexport const isISOStringDateOnly = (\n date: unknown\n): date is `${number}${number}${number}${number}-${number}${number}-${number}${number}` =>\n typeof date === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(date);\n\n/**\n * Whether a rule's value source is one that datetime processors must NOT materialize as a\n * date (`field` references another column; `parameter` is a named bind placeholder). Both\n * are delegated to the core default processor, which serializes them per format.\n */\nexport const isNonDateValueSource = (valueSource: ValueSource | undefined): boolean =>\n valueSource === 'field' || valueSource === 'parameter';\n\n/**\n * Type guard for {@link RelativeDateTimeValue}. Relative values are stored as objects\n * (distinguishing them from the ISO 8601 strings used for absolute date/time values).\n */\nexport const isRelativeDateTimeValue = (value: unknown): value is RelativeDateTimeValue =>\n typeof value === 'object' &&\n value !== null &&\n (value as { mode?: unknown }).mode === 'relative' &&\n typeof (value as RelativeDateTimeValue).anchor === 'string';\n\nconst anchorRegExp = /^(start|end)Of(Day|Week|Month|Year)$/;\n\n/**\n * Resolves a {@link RelativeDateTimeValue} into a concrete `Date` using the given\n * date library API. The anchor is applied relative to `base` (defaulting to now),\n * then the signed offset is added.\n */\nexport const resolveRelativeDateTime = (\n apiFns: RQBDateTimeLibraryAPI,\n value: RelativeDateTimeValue,\n base: Date = new Date()\n): Date => {\n let result: Date = base;\n\n if (value.anchor !== 'now') {\n const match = anchorRegExp.exec(value.anchor);\n // v8 ignore next -- guarded by the RelativeDateTimeAnchor type\n if (match) {\n const unit = match[2].toLowerCase() as RelativeDateTimeTruncationUnit;\n result = match[1] === 'start' ? apiFns.startOf(result, unit) : apiFns.endOf(result, unit);\n }\n }\n\n if (value.offset) {\n result = apiFns.add(result, value.offset, value.unit);\n }\n\n return result;\n};\n\n/**\n * Whether a `datatype` represents a date-only (no time component) type, e.g. `date`\n * but not `datetime`/`datetimeoffset`/`timestamp`. Used to choose the precision when\n * materializing a relative value to an ISO 8601 string.\n */\nexport const isDateOnlyDatatype = (datatype: unknown): boolean =>\n /^date\\b/i.test(datatype as string);\n\n/**\n * Replaces any {@link RelativeDateTimeValue} in `value` (or in each element, if `value`\n * is an array) with a concrete ISO 8601 string, resolved via\n * {@link resolveRelativeDateTime}. The \"now\" reference can be pinned with\n * `opts.context.relativeDateTimeBase` for deterministic output; precision (date-only vs\n * full) follows the field's `datatype`. Non-relative values pass through unchanged.\n */\nexport const materializeRelativeValues = (\n apiFns: RQBDateTimeLibraryAPI,\n value: unknown,\n opts: Parameters<RuleProcessor>[1]\n): unknown => {\n const base = opts?.context?.relativeDateTimeBase as Date | undefined;\n const dateOnly = isDateOnlyDatatype(opts?.fieldData?.datatype);\n const conv = (v: unknown): unknown => {\n if (!isRelativeDateTimeValue(v)) return v;\n const resolved = resolveRelativeDateTime(apiFns, v, base);\n return dateOnly ? apiFns.toISOStringDateOnly(resolved) : apiFns.toISOString(resolved);\n };\n return Array.isArray(value) ? value.map(conv) : conv(value);\n};\n\n/**\n * Resolves a rule's operator for export, applying any `context.relativeOperatorMap`\n * entry. Operator-driven mode controllers (see `createOperatorModeController`) use\n * dedicated operator names to signal relative mode; this maps those names to the real\n * comparison operator at format time. Operators absent from the map pass through unchanged.\n */\nexport const resolveDatetimeOperator = (...[rule, opts]: Parameters<RuleProcessor>): string =>\n (opts?.context?.relativeOperatorMap as Record<string, string> | undefined)?.[rule.operator] ??\n rule.operator;\n\n/**\n * Prepares a date/time rule for delegation to a non-symbolic default rule processor\n * (e.g. \"parameterized\", \"spel\", \"ldap\", \"gremlin\", \"prisma\", \"sequelize\", \"drizzle\",\n * \"tanstack_db\"). Relative values are materialized to concrete dates (these formats have\n * no symbolic relative form), and `between`/`notBetween` operands are ordered\n * chronologically (defaults can't reorder non-numeric date operands). When `asDate` is\n * set, each valid value is converted to a `Date` (for object-based formats); otherwise\n * the materialized ISO 8601 strings are passed through. The resolved `operator` (after\n * any `relativeOperatorMap` mapping) is returned alongside the prepared `value`.\n */\nexport const materializeForExport = (\n apiFns: RQBDateTimeLibraryAPI,\n rule: Parameters<RuleProcessor>[0],\n opts: Parameters<RuleProcessor>[1],\n asDate = false\n): { operator: string; value: unknown } => {\n const operator = resolveDatetimeOperator(rule, opts);\n const materialized = materializeRelativeValues(apiFns, rule.value, opts);\n\n let prepared = materialized;\n if (Array.isArray(materialized) && materialized.length >= 2) {\n const opLC = operator.toLowerCase();\n if (opLC === 'between' || opLC === 'notbetween') {\n const first = apiFns.toDate(materialized[0] as string | Date);\n const second = apiFns.toDate(materialized[1] as string | Date);\n if (apiFns.isValid(first) && apiFns.isValid(second) && !apiFns.isBefore(first, second)) {\n prepared = [materialized[1], materialized[0], ...materialized.slice(2)];\n }\n }\n }\n\n if (!asDate) return { operator, value: prepared };\n\n const toDateVal = (v: unknown) => {\n const d = apiFns.toDate(v as string | Date);\n return apiFns.isValid(d) ? d : v;\n };\n return {\n operator,\n value: Array.isArray(prepared) ? prepared.map(toDateVal) : toDateVal(prepared),\n };\n};\n\nexport const defaultIsDateField: IsDateFieldFunction = (\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean =>\n rule.operator !== 'contains' &&\n rule.operator !== 'beginsWith' &&\n rule.operator !== 'endsWith' &&\n rule.operator !== 'doesNotContain' &&\n rule.operator !== 'doesNotBeginWith' &&\n rule.operator !== 'doesNotEndWith' &&\n rule.operator !== 'null' &&\n rule.operator !== 'notNull' &&\n /^(?:date|datetime|datetimeoffset|timestamp)\\b/i.test(opts?.fieldData?.datatype as string);\n\nexport const processIsDateField = (\n isDateField: IsDateField,\n ...[rule, opts]: Parameters<RuleProcessor>\n): boolean => {\n if (typeof isDateField === 'boolean') {\n return isDateField;\n }\n\n if (typeof isDateField === 'function') {\n return isDateField(rule, opts);\n }\n\n if (Array.isArray(isDateField)) {\n return isDateField.some(condition =>\n Object.entries(condition).every(([key, value]) => opts?.fieldData?.[key] === value)\n );\n }\n\n if (typeof isDateField === 'object') {\n return Object.entries(isDateField).every(([key, value]) => opts?.fieldData?.[key] === value);\n }\n\n return defaultIsDateField(rule, opts);\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-querybuilder/datetime",
3
3
  "description": "Date/time features for react-querybuilder",
4
- "version": "8.23.1",
4
+ "version": "8.24.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -107,45 +107,46 @@
107
107
  "typecheck:watch": "../../node_modules/typescript/bin/tsc --noEmit --watch"
108
108
  },
109
109
  "devDependencies": {
110
- "@electric-sql/pglite": "0.5.4",
111
- "@grafeo-db/js": "^0.5.42",
112
- "@prisma/client": "^7.9.1",
113
- "@tanstack/db": "^0.7.2",
114
- "@testing-library/dom": "^10.4.1",
115
- "@testing-library/react": "^16.3.2",
116
- "@testing-library/user-event": "14.6.4",
117
- "@types/luxon": "^3.7.4",
118
- "@types/react": "^19.2.18",
119
- "@vitejs/plugin-react": "^6.0.5",
110
+ "@electric-sql/pglite": "0.5.8",
111
+ "@electric-sql/pglite-socket": "0.2.11",
112
+ "@prisma/client": "^7.10.0",
113
+ "@react-querybuilder/grafeo": "^0.5.44",
114
+ "@tanstack/db": "^0.9.2",
115
+ "@testing-library/dom": "^10.4.2",
116
+ "@testing-library/react": "^16.3.3",
117
+ "@testing-library/user-event": "14.6.7",
118
+ "@types/luxon": "^3.7.5",
119
+ "@types/react": "^19.3.0",
120
+ "@vitejs/plugin-react": "^6.1.1",
120
121
  "date-fns": "^4.4.0",
121
- "dayjs": "^1.11.20",
122
+ "dayjs": "^1.11.23",
122
123
  "drizzle-orm": "^0.45.2",
123
124
  "json-logic-js": "^2.0.5",
124
125
  "jsonata": "^2.2.2",
125
126
  "luxon": "^3.7.2",
126
127
  "mongodb-memory-server-core": "^11.2.0",
127
- "mongoose": "^9.9.2",
128
+ "mongoose": "^9.10.1",
128
129
  "pglite-prisma-adapter": "^0.7.2",
129
- "prisma": "^7.9.1",
130
- "react": "^19.2.8",
131
- "react-dom": "^19.2.8",
132
- "react-querybuilder": "8.23.1",
130
+ "prisma": "^7.10.0",
131
+ "react": "^19.3.0",
132
+ "react-dom": "^19.3.0",
133
+ "react-querybuilder": "8.24.1",
133
134
  "rollup-plugin-visualizer": "^7.1.1",
134
- "sass": "^1.102.0",
135
+ "sass": "^1.104.1",
135
136
  "sequelize": "^6.37.8",
136
137
  "sqlite3": "^6.0.1",
137
138
  "typescript": "^7.0.2",
138
- "vite": "^8.2.1"
139
+ "vite": "^8.3.0"
139
140
  },
140
141
  "dependencies": {
141
- "@react-querybuilder/core": "8.23.1"
142
+ "@react-querybuilder/core": "8.24.1"
142
143
  },
143
144
  "peerDependencies": {
144
145
  "date-fns": ">=4.1.0",
145
146
  "dayjs": ">=1",
146
147
  "luxon": ">=3.5.0",
147
148
  "react": ">=18",
148
- "react-querybuilder": "8.23.1"
149
+ "react-querybuilder": "8.24.1"
149
150
  },
150
151
  "peerDependenciesMeta": {
151
152
  "date-fns": {
@@ -164,5 +165,5 @@
164
165
  "optional": true
165
166
  }
166
167
  },
167
- "gitHead": "252483f304957ee8340bbe5adb0dbd3a3890613d"
168
+ "gitHead": "7cec8e8a6c40351ac9af731365818242d1f9c134"
168
169
  }
@@ -1,2 +0,0 @@
1
- const e=require("./utils-DdBYGWHZ.js");let t=require("@react-querybuilder/core");const n=t=>{let{isAfter:n,isBefore:r,isSame:i}=t;return{dateAfter:(e,t)=>n(e,t),dateBefore:(e,t)=>r(e,t),dateBetween:(e,t,a)=>i(t,e)||i(t,a)||n(t,e)&&r(t,a)||n(t,a)&&r(t,e),dateNotBetween:(e,t,a)=>!i(t,e)&&!i(t,a)&&(r(e,a)&&(r(t,e)||n(t,a))||n(e,a)&&(r(t,a)||n(t,e))),dateIn:(e,t)=>t.some(t=>i(e,t)),dateNotIn:(e,t)=>t.every(t=>!i(e,t)),dateNotOn:(e,t)=>!i(e,t),dateOn:(e,t)=>i(e,t),dateOnOrAfter:(e,t)=>n(e,t)||i(e,t),dateOnOrBefore:(e,t)=>r(e,t)||i(e,t),dateRelative:(n,r,i,a)=>{let o=e.l(t,{mode:`relative`,anchor:n,offset:r,unit:i});return a?t.toISOStringDateOnly(o):t.toISOString(o)}}},r=e=>/^(does)?not/i.test(e),i=n=>(i,a)=>{let o=a??{},{context:s={}}=o;if(e.r(i.valueSource)||!e.s(s.isDateField,i,o))return(0,t.defaultRuleProcessorCEL)(i,o);let c=e=>`timestamp("${n.toISOString(e)}")`,l=e.o(n,i.value,o),u=(0,t.lc)(e.c(i,o).replace(/^=$/,`==`));switch(u){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${i.field} ${u} ${c(l)}`}let d=(0,t.toArray)(l,{retainEmptyStrings:!1}).map(e=>n.toDate(e)).filter(e=>n.isValid(e));switch(u){case`in`:case`notin`:{if(d.length===0)return``;let[e,t]=r(u)?[`!(`,`)`]:[``,``];return`${e}${i.field} in [${d.map(e=>c(e)).join(`, `)}]${t}`}case`between`:case`notbetween`:{if(d.length<2)return``;let[e,t]=d,[r,a]=n.isBefore(e,t)?[e,t]:[t,e];return u===`between`?`(${i.field} >= ${c(r)} && ${i.field} <= ${c(a)})`:`(${i.field} < ${c(r)} || ${i.field} > ${c(a)})`}}return(0,t.defaultRuleProcessorCEL)(i,o)},a=e=>/^(does)?not/i.test(e),o=(e,t)=>t?`date('${e}')`:`datetime('${e}')`,s=n=>(r,i)=>{let s=i??{},{context:c={}}=s;if(e.r(r.valueSource)||!e.s(c.isDateField,r,s))return(0,t.defaultRuleProcessorCypher)(r,s);let{field:l}=r,u=e.c(r,s),d=(0,t.lc)(u);if(d===`olderthanduration`)return`datetime() - ${l} > duration('${r.value}')`;if(d===`withinduration`)return`datetime() - ${l} <= duration('${r.value}')`;let f=e.o(n,r.value,s),p=(0,t.toArray)(f,{retainEmptyStrings:!1}).map(e=>[e,n.toDate(e)]).filter(([,e])=>n.isValid(e)),m=t=>{let r=e.n(t),i=r?n.toISOStringDateOnly(t):n.toISOString(t);return o(i,r)};switch(d){case`in`:case`notin`:{if(p.length===0)return``;let e=p.map(([e])=>m(e));return`${a(d)?`NOT `:``}${l} IN [${e.join(`, `)}]`}case`between`:case`notbetween`:{if(p.length<2)return``;let[e,t]=p,[r,i]=n.isBefore(e[1],t[1])?[e,t]:[t,e],a=`${m(r[0])} <= ${l} AND ${l} <= ${m(i[0])}`;return d===`notbetween`?`NOT (${a})`:a}default:{if(p.length===0)return``;let[e]=p[0];return`${l} ${d===`<>`?`<>`:d} ${m(e)}`}}},c=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorDrizzle)(r,a);let{operator:s,value:c}=e.a(n,r,a,!0);return(0,t.defaultRuleProcessorDrizzle)({...r,operator:s,value:c},a)},l=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorElasticSearch)(r,a);let{operator:s,value:c}=e.a(n,r,a);return(0,t.defaultRuleProcessorElasticSearch)({...r,operator:s,value:c},a)},u=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorGremlin)(r,a);let{operator:s,value:c}=e.a(n,r,a);return(0,t.defaultRuleProcessorGremlin)({...r,operator:s,value:c},a)},d=e=>/^(does)?not/i.test(e),f=(e,t)=>t?`$not(${e})`:`${e}`,p=n=>(r,i)=>{let a=i??{},{context:o={}}=a,{quoteFieldNamesWith:s=[``,``],fieldIdentifierSeparator:c=``}=a,{field:l,valueSource:u}=r,p=e.c(r,a);if(!e.s(o.isDateField,r,a)||u===`parameter`)return(0,t.defaultRuleProcessorJSONata)(r,a);let m=u===`field`,h=m?r.value:e.o(n,r.value,a),g=e=>`$toMillis(${(0,t.getQuotedFieldName)(e,{quoteFieldNamesWith:s,fieldIdentifierSeparator:c})})`,_=e=>`$toMillis("${n.toISOString(e)}")`;switch(p){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${g(l)} ${p} ${m?g(h):_(h)}`}let v=(0,t.toArray)(h,{retainEmptyStrings:!1}),y=v.map(e=>n.toDate(e)).filter(e=>n.isValid(e));switch(p){case`in`:case`notIn`:return m?v.length===0?``:f(`${g(l)} in [${v.map(e=>g(e)).join(`, `)}]`,d(p)):y.length===0?``:f(`${g(l)} in [${y.map(e=>_(e)).join(`, `)}]`,d(p));case`between`:case`notBetween`:{if(v.length<2||(0,t.nullOrUndefinedOrEmpty)(v[0])||(0,t.nullOrUndefinedOrEmpty)(v[1])||!m&&y.length<2)return``;if(m){let[e,t]=v,n=`${g(l)} >= ${g(e)} and ${g(l)} <= ${g(t)}`;return p===`between`?`(${n})`:f(n,!0)}let[e,r]=y,[i,a]=n.isBefore(e,r)?[e,r]:[r,e],o=`${g(l)} >= ${_(i)} and ${g(l)} <= ${_(a)}`;return p===`between`?`(${o})`:f(o,!0)}}return(0,t.defaultRuleProcessorJSONata)(r,a)},m=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorLDAP)(r,a);let{operator:s,value:c}=e.a(n,r,a);return(0,t.defaultRuleProcessorLDAP)({...r,operator:s,value:c},a)},h=n=>(r,i)=>{let a=i??{},{field:o,valueSource:s}=r,c=e.c(r,a);if(e.r(s)||!e.s(a.context?.isDateField,r,a))return(0,t.defaultRuleProcessorMongoDBQuery)(r,a);let l=e.o(n,r.value,a);if(c===`=`)return{[o]:n.toDate(l)};switch(c){case`<`:case`<=`:case`!=`:case`>`:case`>=`:return{[o]:{[t.mongoOperators[c]]:n.toDate(l)}}}let u=(0,t.toArray)(l,{retainEmptyStrings:!1}).map(e=>n.toDate(e)).filter(e=>n.isValid(e));switch(c){case`in`:case`notIn`:return{[o]:{[t.mongoOperators[c]]:u}};case`between`:case`notBetween`:{if(u.length<2)return``;let[e,t]=u,r=n.isBefore(e,t)?[e,t]:[t,e];return c===`between`?{[o]:{$gte:r[0],$lte:r[1]}}:{$or:[{[o]:{$lt:r[0]}},{[o]:{$gt:r[1]}}]}}}return(0,t.defaultRuleProcessorMongoDBQuery)(r,a)},g=e=>{let t=h(e);return(e,n)=>{let r=t(e,n);return r?JSON.stringify(r):``}},_={"<":`is before`,">":`is after`,"<=":`is on or before`,">=":`is on or after`,in:[`is one of the dates`,`is the same as a date in`],notin:[`is not one of the dates`,`is not the same as any date in`],between:[`is between`,`is between the dates in`],notbetween:[`is not between`,`is not between the dates in`]},v=(t,n)=>e.n(n?.context?.originalValue)?new Intl.DateTimeFormat(n?.context?.locales,{dateStyle:`full`,...n?.context?.dateFormat}).format(t.value):new Intl.DateTimeFormat(n?.context?.locales,{dateStyle:`full`,timeStyle:`long`,...n?.context?.dateTimeFormat}).format(t.value),y=n=>(r,i)=>{let a=i??{},o=e.c(r,a),s=(0,t.lc)(o),c=``,{fieldData:l,quoteFieldNamesWith:u=[``,``],fieldIdentifierSeparator:d=``,operatorProcessor:f=t.defaultOperatorProcessorNL,wordOrder:p=`SVO`,context:m={},operatorMap:h=_}=a;if(!e.s(m.isDateField,r,a))return(0,t.defaultRuleProcessorNL)(r,a);if(e.r(r.valueSource))return(0,t.defaultRuleProcessorNL)(r,{...a,operatorMap:_});if((s===`in`||s===`notin`||s===`between`||s===`notbetween`)&&!r.value)return``;let g=e.o(n,r.value,a),y=(0,t.toArray)(g,{retainEmptyStrings:!1}).map(e=>[e,n.toDate(e)]).filter(e=>n.isValid(e[1]));switch(s){case`in`:case`notin`:if(y.length===0)return``;c=`(${y.map(e=>v({field:r.field,operator:`=`,value:e[1]},{...a,context:{...m,originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`notbetween`:{if(y.length<2)return``;let[e,t]=y;c=(n.isBefore(e[1],t[1])?[e,t]:[t,e]).map(([e,t])=>v({field:r.field,operator:`=`,value:t},{...a,context:{...m,originalValue:e}})).join(` ${a.translations?.and??`and`} `)}break;default:{let[e,t]=y[0]??[``,``];c=e?v({field:r.field,operator:`=`,value:t},{...a,context:{...m,originalValue:e}}):``}}let b={S:(0,t.getQuotedFieldName)(l?.label??r.field,{quoteFieldNamesWith:u,fieldIdentifierSeparator:d}),V:f({...r,operator:o},{...a,operatorMap:{..._,...h}}),O:c};return(0,t.normalizeConstituentWordOrder)(p).map(e=>`${b[e]}`).join(` `).trim()},b=n=>(r,i,a)=>{let o=i??{},{context:s={}}=o;if(e.r(r.valueSource)||!e.s(s.isDateField,r,o))return(0,t.defaultRuleProcessorParameterized)(r,o,a);let{operator:c,value:l}=e.a(n,r,o);return(0,t.defaultRuleProcessorParameterized)({...r,operator:c,value:l},o,a)},x=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorPrisma)(r,a);let{operator:s,value:c}=e.a(n,r,a,!0);return(0,t.defaultRuleProcessorPrisma)({...r,operator:s,value:c},a)},S=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorSequelize)(r,a);let{operator:s,value:c}=e.a(n,r,a,!0);return(0,t.defaultRuleProcessorSequelize)({...r,operator:s,value:c},a)},C=e=>/^(does)?not/i.test(e),w=(e,t)=>t?`"${e}"^^xsd:date`:`"${e}"^^xsd:dateTime`,T=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorSPARQL)(r,a);let{field:s,value:c}=r,l=e.c(r,a),u=(0,t.sparqlVar)(s),d=(0,t.lc)(l);if(d===`olderthanduration`)return`NOW() - ${u} > "${c}"^^xsd:duration`;if(d===`withinduration`)return`NOW() - ${u} <= "${c}"^^xsd:duration`;let f=(0,t.toArray)(e.o(n,c,a),{retainEmptyStrings:!1}).map(e=>[e,n.toDate(e)]).filter(([,e])=>n.isValid(e)),p=t=>{let r=e.n(t),i=r?n.toISOStringDateOnly(t):n.toISOString(t);return w(i,r)};switch(d){case`in`:case`notin`:{if(f.length===0)return``;let e=f.map(([e])=>p(e));return`${u} ${C(d)?`NOT `:``}IN (${e.join(`, `)})`}case`between`:case`notbetween`:{if(f.length<2)return``;let[e,t]=f,[r,i]=n.isBefore(e[1],t[1])?[e,t]:[t,e];return d===`notbetween`?`(${u} < ${p(r[0])} || ${u} > ${p(i[0])})`:`${u} >= ${p(r[0])} && ${u} <= ${p(i[0])}`}default:{if(f.length===0)return``;let[e]=f[0];return`${u} ${d===`<>`?`!=`:d} ${p(e)}`}}},E=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorSpEL)(r,a);let{operator:s,value:c}=e.a(n,r,a);return(0,t.defaultRuleProcessorSpEL)({...r,operator:s,value:c},a)},D=e=>{if(e===`now`)return{bound:`now`};let t=/^(start|end)Of(Day|Week|Month|Year)$/.exec(e);return{bound:t[1],unit:t[2].toLowerCase()}},O=e=>`${e}s`,k=(e,t)=>{let n=t?`current_date`:`current_timestamp`,{bound:r,unit:i}=D(e.anchor),a=n,o=!1;if(r===`start`&&i?(a=`date_trunc('${i}', ${n})`,o=!0):r===`end`&&i&&(a=`date_trunc('${i}', ${n}) + interval '1 ${i}' - ${t?`interval '1 day'`:`interval '1 microsecond'`}`,o=!0),e.offset){let t=e.offset<0?`-`:`+`;a=`${a} ${t} interval '${Math.abs(e.offset)} ${O(e.unit)}'`,o=!0}return t&&o?`cast(${a} as date)`:a},A=(e,t,n)=>{if(t===`start`)switch(n){case`day`:return`date(${e})`;case`week`:return`date_sub(date(${e}), interval dayofweek(${e}) - 1 day)`;case`month`:return`date_format(${e}, '%Y-%m-01')`;case`year`:return`date_format(${e}, '%Y-01-01')`}switch(n){case`day`:return`date(${e})`;case`week`:return`date_add(date(${e}), interval 7 - dayofweek(${e}) day)`;case`month`:return`last_day(${e})`}return`date_format(${e}, '%Y-12-31')`},j=(e,t)=>{let n=t?`curdate()`:`now()`,{bound:r,unit:i}=D(e.anchor),a=n;return r!==`now`&&i&&(a=A(n,r,i),r===`end`&&!t&&(a=`date_sub(date_add(${a}, interval 1 day), interval 1 microsecond)`)),e.offset&&(a=`${e.offset<0?`date_sub`:`date_add`}(${a}, interval ${Math.abs(e.offset)} ${e.unit})`),a},M=(e,t,n,r)=>{let i=`dateadd(${n}, datediff(${n}, 0, ${e}), 0)`;if(t===`start`)return i;let a=`dateadd(${n}, datediff(${n}, 0, ${e}) + 1, 0)`;return r?`dateadd(day, -1, ${a})`:`dateadd(nanosecond, -100, cast(${a} as datetime2))`},N=(e,t)=>{let n=t?`cast(getdate() as date)`:`getdate()`,{bound:r,unit:i}=D(e.anchor),a=n;return r!==`now`&&i&&(a=M(n,r,i,t)),e.offset&&(a=`dateadd(${e.unit}, ${e.offset}, ${a})`),a},P={day:`DDD`,week:`IW`,month:`MM`,year:`YYYY`},F=(e,t)=>{let n=t?`trunc(sysdate)`:`systimestamp`,{bound:r,unit:i}=D(e.anchor),a=n,o=!1;if(r!==`now`&&i){let e=`trunc(${n}, '${P[i]}')`;if(r===`start`)a=e;else{let n=i===`month`||i===`year`?`add_months(${e}, ${i===`month`?1:12})`:`${e} + interval '1' day${i===`week`?` * 7`:``}`;t?a=`${n} - interval '1' second`:(a=n,o=!0)}}if(e.offset){if(e.unit===`month`||e.unit===`year`)a=`add_months(${a}, ${e.offset*(e.unit===`year`?12:1)})`;else{let t={day:1,week:7}[e.unit];a=t?`${a} ${e.offset<0?`-`:`+`} ${Math.abs(e.offset)*t}`:`${a} + numtodsinterval(${e.offset}, '${e.unit.toUpperCase()}')`}}return o&&(a=`cast(${a} as timestamp) - numtodsinterval(0.000001, 'second')`),a},I={day:`'start of day'`,week:`'weekday 0', '-7 days'`,month:`'start of month'`,year:`'start of year'`},L={ansi:k,mssql:N,mysql:j,oracle:F,postgresql:k,sqlite:(e,t)=>{let n=t?`date`:`datetime`,r=[`'now'`],{bound:i,unit:a}=D(e.anchor);if(i!==`now`&&a){if(i===`start`)r.push(I[a]);else switch(a){case`day`:r.push(`'start of day'`,`'+1 day'`,t?`'-1 day'`:`'-1 second'`);break;case`week`:r.push(`'weekday 0'`,t?`'-1 day'`:`'-1 second'`);break;case`month`:r.push(`'start of month'`,`'+1 month'`,t?`'-1 day'`:`'-1 second'`);break;case`year`:r.push(`'start of year'`,`'+1 year'`,t?`'-1 day'`:`'-1 second'`)}}if(e.offset){let t=e.offset<0?`-`:`+`;r.push(`'${t}${Math.abs(e.offset)} ${O(e.unit)}'`)}return`${n}(${r.join(`, `)})`}},R=(e,t)=>{let n=t;switch(e){case`mssql`:return!/^(?:small)?datetime/i.test(n);case`mysql`:return!/^(?:datetime|timestamp)/i.test(n);case`oracle`:case`postgresql`:return!/^timestamp/i.test(n);default:return!/^(?:datetime|timestamp)/i.test(n)}},z=(e,t,n)=>L[t](e,R(t,n)),B=({toISOStringDateOnly:n,toISOString:r})=>(i,a)=>e.n(a?.context?.originalValue)?(0,t.defaultValueProcessorByRule)({...i,value:n(i.value)},a):(0,t.defaultValueProcessorByRule)({...i,value:r(i.value)},a),V=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^(?:small)?datetime/i.test(i?.fieldData?.datatype)?`datetimeoffset`:`date`,o=a===`datetimeoffset`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[`cast(`,` as ${a})`]})},H=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^(?:datetime|timestamp)/i.test(i?.fieldData?.datatype)?`datetime`:`date`,o=a===`datetime`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[`cast(`,` as ${a})`]})},U=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^timestamp/i.test(i?.fieldData?.datatype)?`timestamp`:`date`,o=a===`timestamp`?n(r.value).replaceAll(`T`,` `).replace(`Z`,` UTC`):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[a,``]})},W=({toISOStringDateOnly:e,toISOString:n})=>(r,i)=>{let a=/^timestamp/i.test(i?.fieldData?.datatype)?`timestamp`:`date`,o=a===`timestamp`?n(r.value):e(r.value);return(0,t.defaultValueProcessorByRule)({...r,value:o},{...i,wrapValueWith:[a,``]})},G={ansi:B,mssql:V,mysql:H,oracle:U,postgresql:W,sqlite:B},K=n=>(r,i)=>{let a=i??{},o=(0,t.mapSQLOperator)(e.c(r,a)),s=(0,t.lc)(o),{quoteFieldNamesWith:c=[``,``],fieldIdentifierSeparator:l=``,context:u={}}=a,d=``;if(e.r(r.valueSource)||!e.s(u.isDateField,r,a))return(0,t.defaultRuleProcessorSQL)(r,a);let f=G[a.preset](n),p=(0,t.getQuotedFieldName)(r.field,{quoteFieldNamesWith:c,fieldIdentifierSeparator:l}),m=u.materializeRelativeDateTime?e.o(n,r.value,a):r.value,h=Array.isArray(m)?m:[m];if(h.some(e.i)){let t=t=>{if(e.i(t))return z(t,a.preset,a.fieldData?.datatype);let i=n.toDate(t);if(n.isValid(i))return f({field:r.field,operator:`=`,value:i},{...a,context:{originalValue:t}})};switch(s){case`in`:case`not in`:{let e=h.map(t).filter(e=>e!==void 0);if(e.length===0)return``;d=`(${e.join(`, `)})`;break}case`between`:case`not between`:{let e=t(h[0]),n=t(h[1]);if(e===void 0||n===void 0)return``;d=`${e} and ${n}`;break}default:{let e=t(h[0]);if(e===void 0)return``;d=e}}return`${p} ${o} ${d}`.trim()}let g=(0,t.toArray)(m,{retainEmptyStrings:!1}).map(e=>[e,n.toDate(e)]).filter(e=>n.isValid(e[1]));switch(s){case`in`:case`not in`:if(g.length===0)return``;d=`(${g.map(e=>f({field:r.field,operator:`=`,value:e[1]},{...a,context:{originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`not between`:{if(g.length<2)return``;let[e,t]=g;d=(n.isBefore(e[1],t[1])?[e,t]:[t,e]).map(([e,t])=>f({field:r.field,operator:`=`,value:t},{...a,context:{originalValue:e}})).join(` and `)}break;default:{let[e,t]=g[0]??[``,``];d=f({field:r.field,operator:`=`,value:t},{...a,context:{originalValue:e}})}}return`${p} ${o} ${d}`.trim()},q=n=>(r,i)=>{let a=i??{},{context:o={}}=a;if(e.r(r.valueSource)||!e.s(o.isDateField,r,a))return(0,t.defaultRuleProcessorTanStackDB)(r,a);let{operator:s,value:c}=e.a(n,r,a,!0);return(0,t.defaultRuleProcessorTanStackDB)({...r,operator:s,value:c},a)};Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return p}});
2
- //# sourceMappingURL=getDatetimeRuleProcessorTanStackDB-BK2fKPFN.js.map
@@ -1,2 +0,0 @@
1
- const e=require("./utils-DdBYGWHZ.js"),t=new Date(NaN),n=/^(\d{4})-(\d{2})-(\d{2})([T ](\d{2}):(\d{2}):(\d{2})(\.(\d{1,3}))?)?/,r=e=>{if(e instanceof Date)return e;let r=n.exec(e);if(!r)return t;let[i,a,o,s,c,l,u,d,f,p]=r,[m,h,g,_,v,y,b]=[a,o,s,l,u,d,p??`0`].filter(Boolean).map(Number),x=h-1;return l?new Date(Date.UTC(m,x,g,_,v,y,b)):new Date(m,x,g)},i=e=>{let t=r(e);return t instanceof Date&&!Number.isNaN(t.getTime())},a=e=>{let t=r(e);return i(t)?t.toISOString().slice(0,10):``},o={format:e=>r(e).toISOString(),isAfter:(e,t)=>{let n=r(e).getTime(),i=r(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(i)&&n>i},isBefore:(e,t)=>{let n=r(e).getTime(),i=r(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(i)&&n<i},isSame:(t,n)=>{let i=r(t),o=r(n);return e.n(t)||e.n(n)?a(t)===a(n):i.getTime()===o.getTime()},isValid:i,toDate:r,toISOString:e=>{let t=r(e);return i(t)?t.toISOString():``},toISOStringDateOnly:a,startOf:(e,t)=>{let n=new Date(r(e).getTime());switch(n.setHours(0,0,0,0),t){case`week`:n.setDate(n.getDate()-n.getDay());break;case`month`:n.setDate(1);break;case`year`:n.setMonth(0,1)}return n},endOf:(e,t)=>{let n=new Date(r(e).getTime());switch(n.setHours(23,59,59,999),t){case`week`:n.setDate(n.getDate()+(6-n.getDay()));break;case`month`:n.setMonth(n.getMonth()+1,0);break;case`year`:n.setMonth(11,31)}return n},add:(e,t,n)=>{let i=new Date(r(e).getTime());switch(n){case`minute`:i.setMinutes(i.getMinutes()+t);break;case`hour`:i.setHours(i.getHours()+t);break;case`day`:i.setDate(i.getDate()+t);break;case`week`:i.setDate(i.getDate()+t*7);break;case`month`:i.setMonth(i.getMonth()+t);break;case`year`:i.setFullYear(i.getFullYear()+t)}return i}};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=rqbDateTimeLibraryAPI.jsdate-sJb39vcq.js.map
@@ -1,2 +0,0 @@
1
- const e=e=>typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e),t=e=>e===`field`||e===`parameter`,n=e=>typeof e==`object`&&!!e&&e.mode===`relative`&&typeof e.anchor==`string`,r=/^(start|end)Of(Day|Week|Month|Year)$/,i=(e,t,n=new Date)=>{let i=n;if(t.anchor!==`now`){let n=r.exec(t.anchor);if(n){let t=n[2].toLowerCase();i=n[1]===`start`?e.startOf(i,t):e.endOf(i,t)}}return t.offset&&(i=e.add(i,t.offset,t.unit)),i},a=e=>/^date\b/i.test(e),o=(e,t,r)=>{let o=r?.context?.relativeDateTimeBase,s=a(r?.fieldData?.datatype),c=t=>{if(!n(t))return t;let r=i(e,t,o);return s?e.toISOStringDateOnly(r):e.toISOString(r)};return Array.isArray(t)?t.map(c):c(t)},s=(...[e,t])=>t?.context?.relativeOperatorMap?.[e.operator]??e.operator,c=(e,t,n,r=!1)=>{let i=s(t,n),a=o(e,t.value,n),c=a;if(Array.isArray(a)&&a.length>=2){let t=i.toLowerCase();if(t===`between`||t===`notbetween`){let t=e.toDate(a[0]),n=e.toDate(a[1]);e.isValid(t)&&e.isValid(n)&&!e.isBefore(t,n)&&(c=[a[1],a[0],...a.slice(2)])}}if(!r)return{operator:i,value:c};let l=t=>{let n=e.toDate(t);return e.isValid(n)?n:t};return{operator:i,value:Array.isArray(c)?c.map(l):l(c)}},l=(...[e,t])=>e.operator!==`contains`&&e.operator!==`beginsWith`&&e.operator!==`endsWith`&&e.operator!==`doesNotContain`&&e.operator!==`doesNotBeginWith`&&e.operator!==`doesNotEndWith`&&e.operator!==`null`&&e.operator!==`notNull`&&/^(?:date|datetime|datetimeoffset|timestamp)\b/i.test(t?.fieldData?.datatype),u=(e,...[t,n])=>typeof e==`boolean`?e:typeof e==`function`?e(t,n):Array.isArray(e)?e.some(e=>Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t)):typeof e==`object`?Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t):l(t,n);Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=utils-DdBYGWHZ.js.map
@@ -1,2 +0,0 @@
1
- import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s}from"./utils-DA8aluCt.mjs";import{defaultOperatorProcessorNL as c,defaultRuleProcessorCEL as l,defaultRuleProcessorCypher as u,defaultRuleProcessorDrizzle as d,defaultRuleProcessorElasticSearch as f,defaultRuleProcessorGremlin as p,defaultRuleProcessorJSONata as m,defaultRuleProcessorLDAP as h,defaultRuleProcessorMongoDBQuery as g,defaultRuleProcessorNL as _,defaultRuleProcessorParameterized as v,defaultRuleProcessorPrisma as y,defaultRuleProcessorSPARQL as b,defaultRuleProcessorSQL as x,defaultRuleProcessorSequelize as S,defaultRuleProcessorSpEL as C,defaultRuleProcessorTanStackDB as w,defaultValueProcessorByRule as T,getQuotedFieldName as E,lc as D,mapSQLOperator as O,mongoOperators as k,normalizeConstituentWordOrder as ee,nullOrUndefinedOrEmpty as A,sparqlVar as te,toArray as j}from"@react-querybuilder/core";const ne=e=>{let{isAfter:t,isBefore:n,isSame:i}=e;return{dateAfter:(e,n)=>t(e,n),dateBefore:(e,t)=>n(e,t),dateBetween:(e,r,a)=>i(r,e)||i(r,a)||t(r,e)&&n(r,a)||t(r,a)&&n(r,e),dateNotBetween:(e,r,a)=>!i(r,e)&&!i(r,a)&&(n(e,a)&&(n(r,e)||t(r,a))||t(e,a)&&(n(r,a)||t(r,e))),dateIn:(e,t)=>t.some(t=>i(e,t)),dateNotIn:(e,t)=>t.every(t=>!i(e,t)),dateNotOn:(e,t)=>!i(e,t),dateOn:(e,t)=>i(e,t),dateOnOrAfter:(e,n)=>t(e,n)||i(e,n),dateOnOrBefore:(e,t)=>n(e,t)||i(e,t),dateRelative:(t,n,i,a)=>{let o=r(e,{mode:`relative`,anchor:t,offset:n,unit:i});return a?e.toISOStringDateOnly(o):e.toISOString(o)}}},re=e=>/^(does)?not/i.test(e),M=e=>(n,r)=>{let i=r??{},{context:c={}}=i;if(o(n.valueSource)||!s(c.isDateField,n,i))return l(n,i);let u=t=>`timestamp("${e.toISOString(t)}")`,d=a(e,n.value,i),f=D(t(n,i).replace(/^=$/,`==`));switch(f){case`<`:case`<=`:case`==`:case`!=`:case`>`:case`>=`:return`${n.field} ${f} ${u(d)}`}let p=j(d,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(f){case`in`:case`notin`:{if(p.length===0)return``;let[e,t]=re(f)?[`!(`,`)`]:[``,``];return`${e}${n.field} in [${p.map(e=>u(e)).join(`, `)}]${t}`}case`between`:case`notbetween`:{if(p.length<2)return``;let[t,r]=p,[i,a]=e.isBefore(t,r)?[t,r]:[r,t];return f===`between`?`(${n.field} >= ${u(i)} && ${n.field} <= ${u(a)})`:`(${n.field} < ${u(i)} || ${n.field} > ${u(a)})`}}return l(n,i)},N=e=>/^(does)?not/i.test(e),ie=(e,t)=>t?`date('${e}')`:`datetime('${e}')`,ae=e=>(n,r)=>{let c=r??{},{context:l={}}=c;if(o(n.valueSource)||!s(l.isDateField,n,c))return u(n,c);let{field:d}=n,f=t(n,c),p=D(f);if(p===`olderthanduration`)return`datetime() - ${d} > duration('${n.value}')`;if(p===`withinduration`)return`datetime() - ${d} <= duration('${n.value}')`;let m=a(e,n.value,c),h=j(m,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(([,t])=>e.isValid(t)),g=t=>{let n=i(t),r=n?e.toISOStringDateOnly(t):e.toISOString(t);return ie(r,n)};switch(p){case`in`:case`notin`:{if(h.length===0)return``;let e=h.map(([e])=>g(e));return`${N(p)?`NOT `:``}${d} IN [${e.join(`, `)}]`}case`between`:case`notbetween`:{if(h.length<2)return``;let[t,n]=h,[r,i]=e.isBefore(t[1],n[1])?[t,n]:[n,t],a=`${g(r[0])} <= ${d} AND ${d} <= ${g(i[0])}`;return p===`notbetween`?`NOT (${a})`:a}default:{if(h.length===0)return``;let[e]=h[0];return`${d} ${p===`<>`?`<>`:p} ${g(e)}`}}},oe=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return d(n,i);let{operator:c,value:l}=e(t,n,i,!0);return d({...n,operator:c,value:l},i)},se=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return f(n,i);let{operator:c,value:l}=e(t,n,i);return f({...n,operator:c,value:l},i)},ce=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return p(n,i);let{operator:c,value:l}=e(t,n,i);return p({...n,operator:c,value:l},i)},P=e=>/^(does)?not/i.test(e),F=(e,t)=>t?`$not(${e})`:`${e}`,le=e=>(n,r)=>{let i=r??{},{context:o={}}=i,{quoteFieldNamesWith:c=[``,``],fieldIdentifierSeparator:l=``}=i,{field:u,valueSource:d}=n,f=t(n,i);if(!s(o.isDateField,n,i)||d===`parameter`)return m(n,i);let p=d===`field`,h=p?n.value:a(e,n.value,i),g=e=>`$toMillis(${E(e,{quoteFieldNamesWith:c,fieldIdentifierSeparator:l})})`,_=t=>`$toMillis("${e.toISOString(t)}")`;switch(f){case`<`:case`<=`:case`=`:case`!=`:case`>`:case`>=`:return`${g(u)} ${f} ${p?g(h):_(h)}`}let v=j(h,{retainEmptyStrings:!1}),y=v.map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(f){case`in`:case`notIn`:return p?v.length===0?``:F(`${g(u)} in [${v.map(e=>g(e)).join(`, `)}]`,P(f)):y.length===0?``:F(`${g(u)} in [${y.map(e=>_(e)).join(`, `)}]`,P(f));case`between`:case`notBetween`:{if(v.length<2||A(v[0])||A(v[1])||!p&&y.length<2)return``;if(p){let[e,t]=v,n=`${g(u)} >= ${g(e)} and ${g(u)} <= ${g(t)}`;return f===`between`?`(${n})`:F(n,!0)}let[t,n]=y,[r,i]=e.isBefore(t,n)?[t,n]:[n,t],a=`${g(u)} >= ${_(r)} and ${g(u)} <= ${_(i)}`;return f===`between`?`(${a})`:F(a,!0)}}return m(n,i)},I=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return h(n,i);let{operator:c,value:l}=e(t,n,i);return h({...n,operator:c,value:l},i)},L=e=>(n,r)=>{let i=r??{},{field:c,valueSource:l}=n,u=t(n,i);if(o(l)||!s(i.context?.isDateField,n,i))return g(n,i);let d=a(e,n.value,i);if(u===`=`)return{[c]:e.toDate(d)};switch(u){case`<`:case`<=`:case`!=`:case`>`:case`>=`:return{[c]:{[k[u]]:e.toDate(d)}}}let f=j(d,{retainEmptyStrings:!1}).map(t=>e.toDate(t)).filter(t=>e.isValid(t));switch(u){case`in`:case`notIn`:return{[c]:{[k[u]]:f}};case`between`:case`notBetween`:{if(f.length<2)return``;let[t,n]=f,r=e.isBefore(t,n)?[t,n]:[n,t];return u===`between`?{[c]:{$gte:r[0],$lte:r[1]}}:{$or:[{[c]:{$lt:r[0]}},{[c]:{$gt:r[1]}}]}}}return g(n,i)},R=e=>{let t=L(e);return(e,n)=>{let r=t(e,n);return r?JSON.stringify(r):``}},z={"<":`is before`,">":`is after`,"<=":`is on or before`,">=":`is on or after`,in:[`is one of the dates`,`is the same as a date in`],notin:[`is not one of the dates`,`is not the same as any date in`],between:[`is between`,`is between the dates in`],notbetween:[`is not between`,`is not between the dates in`]},B=(e,t)=>i(t?.context?.originalValue)?new Intl.DateTimeFormat(t?.context?.locales,{dateStyle:`full`,...t?.context?.dateFormat}).format(e.value):new Intl.DateTimeFormat(t?.context?.locales,{dateStyle:`full`,timeStyle:`long`,...t?.context?.dateTimeFormat}).format(e.value),V=e=>(n,r)=>{let i=r??{},l=t(n,i),u=D(l),d=``,{fieldData:f,quoteFieldNamesWith:p=[``,``],fieldIdentifierSeparator:m=``,operatorProcessor:h=c,wordOrder:g=`SVO`,context:v={},operatorMap:y=z}=i;if(!s(v.isDateField,n,i))return _(n,i);if(o(n.valueSource))return _(n,{...i,operatorMap:z});if((u===`in`||u===`notin`||u===`between`||u===`notbetween`)&&!n.value)return``;let b=a(e,n.value,i),x=j(b,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(t=>e.isValid(t[1]));switch(u){case`in`:case`notin`:if(x.length===0)return``;d=`(${x.map(e=>B({field:n.field,operator:`=`,value:e[1]},{...i,context:{...v,originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`notbetween`:{if(x.length<2)return``;let[t,r]=x;d=(e.isBefore(t[1],r[1])?[t,r]:[r,t]).map(([e,t])=>B({field:n.field,operator:`=`,value:t},{...i,context:{...v,originalValue:e}})).join(` ${i.translations?.and??`and`} `)}break;default:{let[e,t]=x[0]??[``,``];d=e?B({field:n.field,operator:`=`,value:t},{...i,context:{...v,originalValue:e}}):``}}let S={S:E(f?.label??n.field,{quoteFieldNamesWith:p,fieldIdentifierSeparator:m}),V:h({...n,operator:l},{...i,operatorMap:{...z,...y}}),O:d};return ee(g).map(e=>`${S[e]}`).join(` `).trim()},H=t=>(n,r,i)=>{let a=r??{},{context:c={}}=a;if(o(n.valueSource)||!s(c.isDateField,n,a))return v(n,a,i);let{operator:l,value:u}=e(t,n,a);return v({...n,operator:l,value:u},a,i)},U=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return y(n,i);let{operator:c,value:l}=e(t,n,i,!0);return y({...n,operator:c,value:l},i)},W=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return S(n,i);let{operator:c,value:l}=e(t,n,i,!0);return S({...n,operator:c,value:l},i)},ue=e=>/^(does)?not/i.test(e),G=(e,t)=>t?`"${e}"^^xsd:date`:`"${e}"^^xsd:dateTime`,de=e=>(n,r)=>{let c=r??{},{context:l={}}=c;if(o(n.valueSource)||!s(l.isDateField,n,c))return b(n,c);let{field:u,value:d}=n,f=t(n,c),p=te(u),m=D(f);if(m===`olderthanduration`)return`NOW() - ${p} > "${d}"^^xsd:duration`;if(m===`withinduration`)return`NOW() - ${p} <= "${d}"^^xsd:duration`;let h=j(a(e,d,c),{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(([,t])=>e.isValid(t)),g=t=>{let n=i(t),r=n?e.toISOStringDateOnly(t):e.toISOString(t);return G(r,n)};switch(m){case`in`:case`notin`:{if(h.length===0)return``;let e=h.map(([e])=>g(e));return`${p} ${ue(m)?`NOT `:``}IN (${e.join(`, `)})`}case`between`:case`notbetween`:{if(h.length<2)return``;let[t,n]=h,[r,i]=e.isBefore(t[1],n[1])?[t,n]:[n,t];return m===`notbetween`?`(${p} < ${g(r[0])} || ${p} > ${g(i[0])})`:`${p} >= ${g(r[0])} && ${p} <= ${g(i[0])}`}default:{if(h.length===0)return``;let[e]=h[0];return`${p} ${m===`<>`?`!=`:m} ${g(e)}`}}},fe=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return C(n,i);let{operator:c,value:l}=e(t,n,i);return C({...n,operator:c,value:l},i)},K=e=>{if(e===`now`)return{bound:`now`};let t=/^(start|end)Of(Day|Week|Month|Year)$/.exec(e);return{bound:t[1],unit:t[2].toLowerCase()}},q=e=>`${e}s`,J=(e,t)=>{let n=t?`current_date`:`current_timestamp`,{bound:r,unit:i}=K(e.anchor),a=n,o=!1;if(r===`start`&&i?(a=`date_trunc('${i}', ${n})`,o=!0):r===`end`&&i&&(a=`date_trunc('${i}', ${n}) + interval '1 ${i}' - ${t?`interval '1 day'`:`interval '1 microsecond'`}`,o=!0),e.offset){let t=e.offset<0?`-`:`+`;a=`${a} ${t} interval '${Math.abs(e.offset)} ${q(e.unit)}'`,o=!0}return t&&o?`cast(${a} as date)`:a},pe=(e,t,n)=>{if(t===`start`)switch(n){case`day`:return`date(${e})`;case`week`:return`date_sub(date(${e}), interval dayofweek(${e}) - 1 day)`;case`month`:return`date_format(${e}, '%Y-%m-01')`;case`year`:return`date_format(${e}, '%Y-01-01')`}switch(n){case`day`:return`date(${e})`;case`week`:return`date_add(date(${e}), interval 7 - dayofweek(${e}) day)`;case`month`:return`last_day(${e})`}return`date_format(${e}, '%Y-12-31')`},me=(e,t)=>{let n=t?`curdate()`:`now()`,{bound:r,unit:i}=K(e.anchor),a=n;return r!==`now`&&i&&(a=pe(n,r,i),r===`end`&&!t&&(a=`date_sub(date_add(${a}, interval 1 day), interval 1 microsecond)`)),e.offset&&(a=`${e.offset<0?`date_sub`:`date_add`}(${a}, interval ${Math.abs(e.offset)} ${e.unit})`),a},he=(e,t,n,r)=>{let i=`dateadd(${n}, datediff(${n}, 0, ${e}), 0)`;if(t===`start`)return i;let a=`dateadd(${n}, datediff(${n}, 0, ${e}) + 1, 0)`;return r?`dateadd(day, -1, ${a})`:`dateadd(nanosecond, -100, cast(${a} as datetime2))`},ge=(e,t)=>{let n=t?`cast(getdate() as date)`:`getdate()`,{bound:r,unit:i}=K(e.anchor),a=n;return r!==`now`&&i&&(a=he(n,r,i,t)),e.offset&&(a=`dateadd(${e.unit}, ${e.offset}, ${a})`),a},_e={day:`DDD`,week:`IW`,month:`MM`,year:`YYYY`},ve=(e,t)=>{let n=t?`trunc(sysdate)`:`systimestamp`,{bound:r,unit:i}=K(e.anchor),a=n,o=!1;if(r!==`now`&&i){let e=`trunc(${n}, '${_e[i]}')`;if(r===`start`)a=e;else{let n=i===`month`||i===`year`?`add_months(${e}, ${i===`month`?1:12})`:`${e} + interval '1' day${i===`week`?` * 7`:``}`;t?a=`${n} - interval '1' second`:(a=n,o=!0)}}if(e.offset){if(e.unit===`month`||e.unit===`year`)a=`add_months(${a}, ${e.offset*(e.unit===`year`?12:1)})`;else{let t={day:1,week:7}[e.unit];a=t?`${a} ${e.offset<0?`-`:`+`} ${Math.abs(e.offset)*t}`:`${a} + numtodsinterval(${e.offset}, '${e.unit.toUpperCase()}')`}}return o&&(a=`cast(${a} as timestamp) - numtodsinterval(0.000001, 'second')`),a},ye={day:`'start of day'`,week:`'weekday 0', '-7 days'`,month:`'start of month'`,year:`'start of year'`},be={ansi:J,mssql:ge,mysql:me,oracle:ve,postgresql:J,sqlite:(e,t)=>{let n=t?`date`:`datetime`,r=[`'now'`],{bound:i,unit:a}=K(e.anchor);if(i!==`now`&&a){if(i===`start`)r.push(ye[a]);else switch(a){case`day`:r.push(`'start of day'`,`'+1 day'`,t?`'-1 day'`:`'-1 second'`);break;case`week`:r.push(`'weekday 0'`,t?`'-1 day'`:`'-1 second'`);break;case`month`:r.push(`'start of month'`,`'+1 month'`,t?`'-1 day'`:`'-1 second'`);break;case`year`:r.push(`'start of year'`,`'+1 year'`,t?`'-1 day'`:`'-1 second'`)}}if(e.offset){let t=e.offset<0?`-`:`+`;r.push(`'${t}${Math.abs(e.offset)} ${q(e.unit)}'`)}return`${n}(${r.join(`, `)})`}},xe=(e,t)=>{let n=t;switch(e){case`mssql`:return!/^(?:small)?datetime/i.test(n);case`mysql`:return!/^(?:datetime|timestamp)/i.test(n);case`oracle`:case`postgresql`:return!/^timestamp/i.test(n);default:return!/^(?:datetime|timestamp)/i.test(n)}},Se=(e,t,n)=>be[t](e,xe(t,n)),Y=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>i(r?.context?.originalValue)?T({...n,value:e(n.value)},r):T({...n,value:t(n.value)},r),X=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^(?:small)?datetime/i.test(r?.fieldData?.datatype)?`datetimeoffset`:`date`,a=i===`datetimeoffset`?t(n.value):e(n.value);return T({...n,value:a},{...r,wrapValueWith:[`cast(`,` as ${i})`]})},Z=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^(?:datetime|timestamp)/i.test(r?.fieldData?.datatype)?`datetime`:`date`,a=i===`datetime`?t(n.value):e(n.value);return T({...n,value:a},{...r,wrapValueWith:[`cast(`,` as ${i})`]})},Q=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^timestamp/i.test(r?.fieldData?.datatype)?`timestamp`:`date`,a=i===`timestamp`?t(n.value).replaceAll(`T`,` `).replace(`Z`,` UTC`):e(n.value);return T({...n,value:a},{...r,wrapValueWith:[i,``]})},$=({toISOStringDateOnly:e,toISOString:t})=>(n,r)=>{let i=/^timestamp/i.test(r?.fieldData?.datatype)?`timestamp`:`date`,a=i===`timestamp`?t(n.value):e(n.value);return T({...n,value:a},{...r,wrapValueWith:[i,``]})},Ce={ansi:Y,mssql:X,mysql:Z,oracle:Q,postgresql:$,sqlite:Y},we=e=>(r,i)=>{let c=i??{},l=O(t(r,c)),u=D(l),{quoteFieldNamesWith:d=[``,``],fieldIdentifierSeparator:f=``,context:p={}}=c,m=``;if(o(r.valueSource)||!s(p.isDateField,r,c))return x(r,c);let h=Ce[c.preset](e),g=E(r.field,{quoteFieldNamesWith:d,fieldIdentifierSeparator:f}),_=p.materializeRelativeDateTime?a(e,r.value,c):r.value,v=Array.isArray(_)?_:[_];if(v.some(n)){let t=t=>{if(n(t))return Se(t,c.preset,c.fieldData?.datatype);let i=e.toDate(t);if(e.isValid(i))return h({field:r.field,operator:`=`,value:i},{...c,context:{originalValue:t}})};switch(u){case`in`:case`not in`:{let e=v.map(t).filter(e=>e!==void 0);if(e.length===0)return``;m=`(${e.join(`, `)})`;break}case`between`:case`not between`:{let e=t(v[0]),n=t(v[1]);if(e===void 0||n===void 0)return``;m=`${e} and ${n}`;break}default:{let e=t(v[0]);if(e===void 0)return``;m=e}}return`${g} ${l} ${m}`.trim()}let y=j(_,{retainEmptyStrings:!1}).map(t=>[t,e.toDate(t)]).filter(t=>e.isValid(t[1]));switch(u){case`in`:case`not in`:if(y.length===0)return``;m=`(${y.map(e=>h({field:r.field,operator:`=`,value:e[1]},{...c,context:{originalValue:e[0]}})).join(`, `)})`;break;case`between`:case`not between`:{if(y.length<2)return``;let[t,n]=y;m=(e.isBefore(t[1],n[1])?[t,n]:[n,t]).map(([e,t])=>h({field:r.field,operator:`=`,value:t},{...c,context:{originalValue:e}})).join(` and `)}break;default:{let[e,t]=y[0]??[``,``];m=h({field:r.field,operator:`=`,value:t},{...c,context:{originalValue:e}})}}return`${g} ${l} ${m}`.trim()},Te=t=>(n,r)=>{let i=r??{},{context:a={}}=i;if(o(n.valueSource)||!s(a.isDateField,n,i))return w(n,i);let{operator:c,value:l}=e(t,n,i,!0);return w({...n,operator:c,value:l},i)};export{ae as C,oe as S,ne as T,L as _,Z as a,ce as b,fe as c,U as d,H as f,R as g,V as h,X as i,de as l,z as m,we as n,Q as o,B as p,Y as r,$ as s,Te as t,W as u,I as v,M as w,se as x,le as y};
2
- //# sourceMappingURL=getDatetimeRuleProcessorTanStackDB-BWErgzW4.mjs.map
@@ -1,2 +0,0 @@
1
- import{n as e}from"./utils-DA8aluCt.mjs";const t=new Date(NaN),n=/^(\d{4})-(\d{2})-(\d{2})([T ](\d{2}):(\d{2}):(\d{2})(\.(\d{1,3}))?)?/,r=e=>{if(e instanceof Date)return e;let r=n.exec(e);if(!r)return t;let[i,a,o,s,c,l,u,d,f,p]=r,[m,h,g,_,v,y,b]=[a,o,s,l,u,d,p??`0`].filter(Boolean).map(Number),x=h-1;return l?new Date(Date.UTC(m,x,g,_,v,y,b)):new Date(m,x,g)},i=e=>{let t=r(e);return t instanceof Date&&!Number.isNaN(t.getTime())},a=e=>{let t=r(e);return i(t)?t.toISOString().slice(0,10):``},o={format:e=>r(e).toISOString(),isAfter:(e,t)=>{let n=r(e).getTime(),i=r(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(i)&&n>i},isBefore:(e,t)=>{let n=r(e).getTime(),i=r(t).getTime();return!Number.isNaN(n)&&!Number.isNaN(i)&&n<i},isSame:(t,n)=>{let i=r(t),o=r(n);return e(t)||e(n)?a(t)===a(n):i.getTime()===o.getTime()},isValid:i,toDate:r,toISOString:e=>{let t=r(e);return i(t)?t.toISOString():``},toISOStringDateOnly:a,startOf:(e,t)=>{let n=new Date(r(e).getTime());switch(n.setHours(0,0,0,0),t){case`week`:n.setDate(n.getDate()-n.getDay());break;case`month`:n.setDate(1);break;case`year`:n.setMonth(0,1)}return n},endOf:(e,t)=>{let n=new Date(r(e).getTime());switch(n.setHours(23,59,59,999),t){case`week`:n.setDate(n.getDate()+(6-n.getDay()));break;case`month`:n.setMonth(n.getMonth()+1,0);break;case`year`:n.setMonth(11,31)}return n},add:(e,t,n)=>{let i=new Date(r(e).getTime());switch(n){case`minute`:i.setMinutes(i.getMinutes()+t);break;case`hour`:i.setHours(i.getHours()+t);break;case`day`:i.setDate(i.getDate()+t);break;case`week`:i.setDate(i.getDate()+t*7);break;case`month`:i.setMonth(i.getMonth()+t);break;case`year`:i.setFullYear(i.getFullYear()+t)}return i}};export{o as t};
2
- //# sourceMappingURL=rqbDateTimeLibraryAPI.jsdate-Bpo2F8gW.mjs.map
@@ -1,2 +0,0 @@
1
- const e=e=>typeof e==`string`&&/^\d{4}-\d{2}-\d{2}$/.test(e),t=e=>e===`field`||e===`parameter`,n=e=>typeof e==`object`&&!!e&&e.mode===`relative`&&typeof e.anchor==`string`,r=/^(start|end)Of(Day|Week|Month|Year)$/,i=(e,t,n=new Date)=>{let i=n;if(t.anchor!==`now`){let n=r.exec(t.anchor);if(n){let t=n[2].toLowerCase();i=n[1]===`start`?e.startOf(i,t):e.endOf(i,t)}}return t.offset&&(i=e.add(i,t.offset,t.unit)),i},a=e=>/^date\b/i.test(e),o=(e,t,r)=>{let o=r?.context?.relativeDateTimeBase,s=a(r?.fieldData?.datatype),c=t=>{if(!n(t))return t;let r=i(e,t,o);return s?e.toISOStringDateOnly(r):e.toISOString(r)};return Array.isArray(t)?t.map(c):c(t)},s=(...[e,t])=>t?.context?.relativeOperatorMap?.[e.operator]??e.operator,c=(e,t,n,r=!1)=>{let i=s(t,n),a=o(e,t.value,n),c=a;if(Array.isArray(a)&&a.length>=2){let t=i.toLowerCase();if(t===`between`||t===`notbetween`){let t=e.toDate(a[0]),n=e.toDate(a[1]);e.isValid(t)&&e.isValid(n)&&!e.isBefore(t,n)&&(c=[a[1],a[0],...a.slice(2)])}}if(!r)return{operator:i,value:c};let l=t=>{let n=e.toDate(t);return e.isValid(n)?n:t};return{operator:i,value:Array.isArray(c)?c.map(l):l(c)}},l=(...[e,t])=>e.operator!==`contains`&&e.operator!==`beginsWith`&&e.operator!==`endsWith`&&e.operator!==`doesNotContain`&&e.operator!==`doesNotBeginWith`&&e.operator!==`doesNotEndWith`&&e.operator!==`null`&&e.operator!==`notNull`&&/^(?:date|datetime|datetimeoffset|timestamp)\b/i.test(t?.fieldData?.datatype),u=(e,...[t,n])=>typeof e==`boolean`?e:typeof e==`function`?e(t,n):Array.isArray(e)?e.some(e=>Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t)):typeof e==`object`?Object.entries(e).every(([e,t])=>n?.fieldData?.[e]===t):l(t,n);export{c as a,s as c,n as i,i as l,e as n,o,t as r,u as s,a as t};
2
- //# sourceMappingURL=utils-DA8aluCt.mjs.map