@react-querybuilder/datetime 8.20.1 → 8.21.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 (150) hide show
  1. package/README.md +9 -3
  2. package/dist/cjs/{getDatetimeRuleProcessorTanStackDB-CL79A1_x.js → getDatetimeRuleProcessorTanStackDB-CDEB9coD.js} +88 -218
  3. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-CDEB9coD.js.map +1 -0
  4. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-X6tZv7yV.js +2 -0
  5. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-X6tZv7yV.js.map +1 -0
  6. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +124 -260
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +50 -51
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js +3 -2
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js.map +1 -1
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +50 -51
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +53 -26
  12. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  13. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +11 -467
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.js.map +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +53 -54
  16. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js +26 -144
  17. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js.map +1 -1
  18. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +50 -51
  19. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js +3 -2
  20. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js.map +1 -1
  21. package/dist/cjs/react-querybuilder_datetime.cjs.development.ui.d.ts +214 -0
  22. package/dist/cjs/react-querybuilder_datetime.cjs.development.ui.js +466 -0
  23. package/dist/cjs/react-querybuilder_datetime.cjs.development.ui.js.map +1 -0
  24. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +124 -260
  25. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +50 -51
  26. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  27. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js.map +1 -1
  28. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +50 -51
  29. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  30. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js.map +1 -1
  31. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  32. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  33. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +53 -54
  34. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  35. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js.map +1 -1
  36. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +50 -51
  37. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  38. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js.map +1 -1
  39. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.d.ts +214 -0
  40. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.js +2 -0
  41. package/dist/cjs/react-querybuilder_datetime.cjs.production.ui.js.map +1 -0
  42. package/dist/cjs/rolldown-runtime-CMqjfN_6.js +1 -0
  43. package/dist/cjs/rolldown-runtime-D6vf50IK.js +28 -0
  44. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-BuSiVdk7.js +2 -0
  45. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-BuSiVdk7.js.map +1 -0
  46. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-C3jJb6ip.js +128 -0
  47. package/dist/cjs/rqbDateTimeLibraryAPI.jsdate-C3jJb6ip.js.map +1 -0
  48. package/dist/cjs/types-BKA1aoY6.d.ts +174 -0
  49. package/dist/cjs/ui.d.ts +1 -0
  50. package/dist/cjs/ui.js +6 -0
  51. package/dist/cjs/utils-DdBYGWHZ.js +2 -0
  52. package/dist/cjs/utils-DdBYGWHZ.js.map +1 -0
  53. package/dist/cjs/utils-_X97pUtk.js +166 -0
  54. package/dist/cjs/utils-_X97pUtk.js.map +1 -0
  55. package/dist/getDatetimeRuleProcessorTanStackDB-6K1DsuEV.mjs +2 -0
  56. package/dist/getDatetimeRuleProcessorTanStackDB-6K1DsuEV.mjs.map +1 -0
  57. package/dist/{getDatetimeRuleProcessorTanStackDB-BL8mbdbl.js → getDatetimeRuleProcessorTanStackDB-BrSD2e9G.js} +24 -198
  58. package/dist/getDatetimeRuleProcessorTanStackDB-BrSD2e9G.js.map +1 -0
  59. package/dist/{getDatetimeRuleProcessorTanStackDB-BcOC-o2A.mjs → getDatetimeRuleProcessorTanStackDB-DR8aYrUa.mjs} +24 -124
  60. package/dist/getDatetimeRuleProcessorTanStackDB-DR8aYrUa.mjs.map +1 -0
  61. package/dist/objectSpread2-MqoZ2hSz.js +187 -0
  62. package/dist/objectSpread2-MqoZ2hSz.js.map +1 -0
  63. package/dist/react-querybuilder_datetime.d.mts +124 -260
  64. package/dist/react-querybuilder_datetime.date-fns.d.mts +50 -51
  65. package/dist/react-querybuilder_datetime.date-fns.mjs +2 -1
  66. package/dist/react-querybuilder_datetime.date-fns.mjs.map +1 -1
  67. package/dist/react-querybuilder_datetime.dayjs.d.mts +50 -51
  68. package/dist/react-querybuilder_datetime.dayjs.mjs +27 -2
  69. package/dist/react-querybuilder_datetime.dayjs.mjs.map +1 -1
  70. package/dist/react-querybuilder_datetime.jsdate.d.mts +53 -54
  71. package/dist/react-querybuilder_datetime.jsdate.mjs +2 -120
  72. package/dist/react-querybuilder_datetime.jsdate.mjs.map +1 -1
  73. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +124 -260
  74. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +50 -51
  75. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +2 -1
  76. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js.map +1 -1
  77. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +50 -51
  78. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +27 -2
  79. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js.map +1 -1
  80. package/dist/react-querybuilder_datetime.legacy-esm.js +5 -449
  81. package/dist/react-querybuilder_datetime.legacy-esm.js.map +1 -1
  82. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +53 -54
  83. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +2 -120
  84. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js.map +1 -1
  85. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +50 -51
  86. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +2 -1
  87. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js.map +1 -1
  88. package/dist/react-querybuilder_datetime.legacy-esm.ui.d.ts +214 -0
  89. package/dist/react-querybuilder_datetime.legacy-esm.ui.js +453 -0
  90. package/dist/react-querybuilder_datetime.legacy-esm.ui.js.map +1 -0
  91. package/dist/react-querybuilder_datetime.luxon.d.mts +50 -51
  92. package/dist/react-querybuilder_datetime.luxon.mjs +2 -1
  93. package/dist/react-querybuilder_datetime.luxon.mjs.map +1 -1
  94. package/dist/react-querybuilder_datetime.mjs +5 -446
  95. package/dist/react-querybuilder_datetime.mjs.map +1 -1
  96. package/dist/react-querybuilder_datetime.production.d.mts +124 -260
  97. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +50 -51
  98. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  99. package/dist/react-querybuilder_datetime.production.date-fns.mjs.map +1 -1
  100. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +50 -51
  101. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  102. package/dist/react-querybuilder_datetime.production.dayjs.mjs.map +1 -1
  103. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +53 -54
  104. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  105. package/dist/react-querybuilder_datetime.production.jsdate.mjs.map +1 -1
  106. package/dist/react-querybuilder_datetime.production.luxon.d.mts +50 -51
  107. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  108. package/dist/react-querybuilder_datetime.production.luxon.mjs.map +1 -1
  109. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  110. package/dist/react-querybuilder_datetime.production.mjs.map +1 -1
  111. package/dist/react-querybuilder_datetime.production.ui.d.mts +214 -0
  112. package/dist/react-querybuilder_datetime.production.ui.mjs +2 -0
  113. package/dist/react-querybuilder_datetime.production.ui.mjs.map +1 -0
  114. package/dist/react-querybuilder_datetime.ui.d.mts +214 -0
  115. package/dist/react-querybuilder_datetime.ui.mjs +450 -0
  116. package/dist/react-querybuilder_datetime.ui.mjs.map +1 -0
  117. package/dist/rqbDateTimeLibraryAPI.jsdate-COp9qTw_.js +123 -0
  118. package/dist/rqbDateTimeLibraryAPI.jsdate-COp9qTw_.js.map +1 -0
  119. package/dist/rqbDateTimeLibraryAPI.jsdate-DxBmxW2C.mjs +2 -0
  120. package/dist/rqbDateTimeLibraryAPI.jsdate-DxBmxW2C.mjs.map +1 -0
  121. package/dist/rqbDateTimeLibraryAPI.jsdate-WHnzblie.mjs +123 -0
  122. package/dist/rqbDateTimeLibraryAPI.jsdate-WHnzblie.mjs.map +1 -0
  123. package/dist/types-BKA1aoY6.d.mts +174 -0
  124. package/dist/types-BKA1aoY6.d.ts +174 -0
  125. package/dist/utils-BAgUBdyf.mjs +113 -0
  126. package/dist/utils-BAgUBdyf.mjs.map +1 -0
  127. package/dist/utils-DA8aluCt.mjs +2 -0
  128. package/dist/utils-DA8aluCt.mjs.map +1 -0
  129. package/package.json +36 -17
  130. package/ui/package.json +4 -0
  131. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-CL79A1_x.js.map +0 -1
  132. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-DgUg_arY.js +0 -2
  133. package/dist/cjs/getDatetimeRuleProcessorTanStackDB-DgUg_arY.js.map +0 -1
  134. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-BfILPx88.js +0 -2
  135. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-BfILPx88.js.map +0 -1
  136. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-CzLh_zi9.js +0 -63
  137. package/dist/cjs/rqbDateTimeLibraryAPI.dayjs-CzLh_zi9.js.map +0 -1
  138. package/dist/cjs/types-XYMw0jFT.d.ts +0 -265
  139. package/dist/getDatetimeRuleProcessorTanStackDB-BL8mbdbl.js.map +0 -1
  140. package/dist/getDatetimeRuleProcessorTanStackDB-BcOC-o2A.mjs.map +0 -1
  141. package/dist/getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs +0 -2
  142. package/dist/getDatetimeRuleProcessorTanStackDB-Dloxv6k2.mjs.map +0 -1
  143. package/dist/rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs +0 -29
  144. package/dist/rqbDateTimeLibraryAPI.dayjs-BW7faYFD.mjs.map +0 -1
  145. package/dist/rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs +0 -2
  146. package/dist/rqbDateTimeLibraryAPI.dayjs-BoX90aqZ.mjs.map +0 -1
  147. package/dist/rqbDateTimeLibraryAPI.dayjs-Da4VXvFM.js +0 -29
  148. package/dist/rqbDateTimeLibraryAPI.dayjs-Da4VXvFM.js.map +0 -1
  149. package/dist/types-CdjHqQ0k.d.mts +0 -265
  150. package/dist/types-CdjHqQ0k.d.ts +0 -265
@@ -1,265 +0,0 @@
1
- import { FullOption, RQBJsonLogic, RuleProcessor, ValueEditorProps } from "react-querybuilder";
2
- import { ComponentType, ReactNode } from "react";
3
- import { RulesLogic } from "json-logic-js";
4
-
5
- //#region src/types.d.ts
6
- interface RQBJsonLogicDateBetween {
7
- dateBetween: [RQBJsonLogic, RQBJsonLogic, RQBJsonLogic];
8
- }
9
- interface RQBJsonLogicDateNotBetween {
10
- dateNotBetween: [RQBJsonLogic, RQBJsonLogic, RQBJsonLogic];
11
- }
12
- interface RQBJsonLogicDateIn {
13
- dateIn: [RQBJsonLogic, RQBJsonLogic[]];
14
- }
15
- interface RQBJsonLogicDateNotIn {
16
- dateNotIn: [RQBJsonLogic, RQBJsonLogic[]];
17
- }
18
- interface RQBJsonLogicDateBefore {
19
- dateBefore: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
20
- }
21
- interface RQBJsonLogicDateOnOrBefore {
22
- dateOnOrBefore: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
23
- }
24
- interface RQBJsonLogicDateOn {
25
- dateOn: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
26
- }
27
- interface RQBJsonLogicDateNotOn {
28
- dateNotOn: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
29
- }
30
- interface RQBJsonLogicDateAfter {
31
- dateAfter: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
32
- }
33
- interface RQBJsonLogicDateOnOrAfter {
34
- dateOnOrAfter: [RQBJsonLogic, RQBJsonLogic, ...RQBJsonLogic[]];
35
- }
36
- interface RQBJsonLogicDateRelative {
37
- dateRelative: [RelativeDateTimeAnchor, number, RelativeDateTimeUnit, boolean];
38
- }
39
- /**
40
- * JsonLogic rule object with additional operators generated by
41
- * {@link @react-querybuilder/core!formatQuery formatQuery} and accepted by
42
- * {@link @react-querybuilder/core!parseJsonLogic parseJsonLogic}.
43
- */
44
- type RQBDateTimeJsonLogic = RQBJsonLogic | RulesLogic<RQBJsonLogicDateAfter | RQBJsonLogicDateBefore | RQBJsonLogicDateBetween | RQBJsonLogicDateIn | RQBJsonLogicDateNotBetween | RQBJsonLogicDateNotIn | RQBJsonLogicDateNotOn | RQBJsonLogicDateOn | RQBJsonLogicDateOnOrAfter | RQBJsonLogicDateOnOrBefore | RQBJsonLogicDateRelative>;
45
- type DateOrString = string | Date;
46
- /**
47
- * Unit of measure for a relative date/time offset.
48
- */
49
- type RelativeDateTimeUnit = "minute" | "hour" | "day" | "week" | "month" | "year";
50
- /**
51
- * Unit of measure for truncating a date/time to the start or end of a period
52
- * (the subset of {@link RelativeDateTimeUnit} that represents a calendar period).
53
- */
54
- type RelativeDateTimeTruncationUnit = "day" | "week" | "month" | "year";
55
- /**
56
- * Reference point (zero-offset) for a {@link RelativeDateTimeValue}. `'now'` is the
57
- * current date/time; the `startOf*`/`endOf*` anchors truncate to the start or end
58
- * of the corresponding calendar period.
59
- */
60
- type RelativeDateTimeAnchor = "now" | "startOfDay" | "endOfDay" | "startOfWeek" | "endOfWeek" | "startOfMonth" | "endOfMonth" | "startOfYear" | "endOfYear";
61
- /**
62
- * Structured representation of a relative date/time value, e.g. "three months ago"
63
- * or "the beginning of this year". Stored as the `value` of a rule (in place of the
64
- * usual ISO 8601 string) and recognized by the date/time rule processors.
65
- *
66
- * The final date/time is computed as: apply the `anchor` to the current date/time,
67
- * then add `offset` units of `unit`. When `offset` is `0`, `unit` is irrelevant.
68
- */
69
- interface RelativeDateTimeValue {
70
- /** Discriminant identifying a relative (as opposed to absolute) value. */
71
- mode: "relative";
72
- /** Zero-offset reference point. */
73
- anchor: RelativeDateTimeAnchor;
74
- /** Signed offset from the anchor; negative = past, positive = future, 0 = exact anchor. */
75
- offset: number;
76
- /** Unit of the `offset`. */
77
- unit: RelativeDateTimeUnit;
78
- }
79
- interface RQBDateTimeLibraryAPI {
80
- /**
81
- * Formats a date as a string.
82
- */
83
- format: (d: DateOrString, fmt: string) => string;
84
- /**
85
- * Formats a date as an ISO 8601 string, only including
86
- * the year, month, and day ('YYYY-MM-DD').
87
- */
88
- toISOStringDateOnly: (d: DateOrString) => string;
89
- /**
90
- * Determines whether the first date is after the second date.
91
- */
92
- isAfter: (a: DateOrString, b: DateOrString) => boolean;
93
- /**
94
- * Determines whether the first date is before the second date.
95
- */
96
- isBefore: (a: DateOrString, b: DateOrString) => boolean;
97
- /**
98
- * Determines whether the first date is the same as the second date.
99
- *
100
- * If either the first date or the second date is a string in the
101
- * format 'YYYY-MM-DD', then the dates will only be compared at
102
- * the date level (no time component). Otherwise, they will be
103
- * compared to the millisecond.
104
- */
105
- isSame: (a: DateOrString, b: DateOrString) => boolean;
106
- /**
107
- * Determines whether the date is either a valid `Date` object or an
108
- * ISO 8601-formatted string representing a valid date.
109
- */
110
- isValid: (d: DateOrString) => boolean;
111
- /**
112
- * Converts a string to a `Date` object or returns a valid `Date` as is.
113
- */
114
- toDate: (d: DateOrString) => Date;
115
- /**
116
- * Converts a `Date` or ISO 8601-formatted string into a full ISO 8601 UTC
117
- * string, in the format 'YYYY-MM-DDTHH:mm:ss.SSSZ' (the "T" and "Z" are
118
- * static; other parts represent standard time units, increasing in precision
119
- * from left to right).
120
- */
121
- toISOString: (d: DateOrString) => string;
122
- /**
123
- * Returns a new `Date` truncated to the start of the given period.
124
- *
125
- * Week start follows the date library's own default/locale (e.g. Luxon uses
126
- * Monday per ISO 8601; Day.js and date-fns default to Sunday).
127
- */
128
- startOf: (d: DateOrString, unit: RelativeDateTimeTruncationUnit) => Date;
129
- /**
130
- * Returns a new `Date` advanced to the end of the given period (the last
131
- * representable instant within it).
132
- *
133
- * Week start follows the date library's own default/locale (see {@link RQBDateTimeLibraryAPI.startOf}).
134
- */
135
- endOf: (d: DateOrString, unit: RelativeDateTimeTruncationUnit) => Date;
136
- /**
137
- * Returns a new `Date` offset from the input by `amount` units of `unit`
138
- * (negative `amount` moves into the past).
139
- */
140
- add: (d: DateOrString, amount: number, unit: RelativeDateTimeUnit) => Date;
141
- }
142
- type FnDateDate = (a: DateOrString, b: DateOrString) => boolean;
143
- type FnDateArrayOfDates = (a: DateOrString, b: DateOrString[]) => boolean;
144
- type FnDateDateDate = (a: DateOrString, b: DateOrString, c: DateOrString) => boolean;
145
- type RQBJsonLogicDateTimeOperations = {
146
- /** Determines if the first date is after the second date. */dateAfter: FnDateDate; /** Determines if the first date is before the second date. */
147
- dateBefore: FnDateDate; /** Determines if the second date is between the first and third dates (inclusive). */
148
- dateBetween: FnDateDateDate; /** Determines if the first date is one of the values in the array of dates. */
149
- dateIn: FnDateArrayOfDates; /** Determines if the second date is not between the first and third dates. */
150
- dateNotBetween: FnDateDateDate; /** Determines if the first date is not one of the values in the array of dates. */
151
- dateNotIn: FnDateArrayOfDates; /** Determines if the first date is not the same as the second date. */
152
- dateNotOn: FnDateDate; /** Determines if the first date is the same as the second date (at the level of least precision between the two). */
153
- dateOn: FnDateDate; /** Determines if the first date is either the same as the second date or after it. */
154
- dateOnOrAfter: FnDateDate; /** Determines if the first date is either the same as the second date or before it. */
155
- dateOnOrBefore: FnDateDate;
156
- /**
157
- * Resolves a relative date/time descriptor (anchor, offset, unit, and date-only
158
- * flag) to a concrete ISO 8601 string at evaluation time ("live" semantics).
159
- */
160
- dateRelative: (anchor: RelativeDateTimeAnchor, offset: number, unit: RelativeDateTimeUnit, dateOnly: boolean) => string;
161
- };
162
- /**
163
- * Customizable content/labels for the absolute/relative mode toggle rendered by
164
- * {@link toggleModeController}. The default glyphs come from CSS pseudo-elements, so
165
- * `absoluteContent`/`relativeContent` are only needed to override them (e.g. to render
166
- * an icon component or localized text).
167
- */
168
- interface RelativeDateTimeToggleLabels {
169
- /** Accessible label (`aria-label`) for the toggle button. */
170
- label?: string;
171
- /** Tooltip shown while in absolute mode (clicking switches to relative). */
172
- absoluteTitle?: string;
173
- /** Tooltip shown while in relative mode (clicking switches to absolute). */
174
- relativeTitle?: string;
175
- /** Custom content rendered while in absolute mode. Defaults to a CSS glyph. */
176
- absoluteContent?: ReactNode;
177
- /** Custom content rendered while in relative mode. Defaults to a CSS glyph. */
178
- relativeContent?: ReactNode;
179
- }
180
- /**
181
- * Props passed to a {@link RelativeDateTimeModeController}'s `ModeControl` component —
182
- * the affordance (e.g. a toggle button) that switches a rule between absolute and
183
- * relative date/time entry.
184
- */
185
- interface RelativeDateTimeModeControlProps {
186
- /** Whether the rule is currently in relative mode. */
187
- isRelative: boolean;
188
- /** Switches the rule between absolute and relative mode. */
189
- setMode: (mode: "absolute" | "relative") => void;
190
- /** The value editor's schema (for theme-aware rendering). */
191
- schema: ValueEditorProps["schema"];
192
- /** Whether the control is disabled. */
193
- disabled?: boolean;
194
- /** Class name applied to the control. */
195
- className?: string;
196
- /** Title/tooltip from the value editor (fallback when labels omit titles). */
197
- title?: string;
198
- /** Test ID from the value editor. */
199
- testID?: string;
200
- /** Resolved toggle labels (merged with defaults). */
201
- labels: Required<RelativeDateTimeToggleLabels>;
202
- }
203
- /**
204
- * A pluggable strategy that governs how a user switches between absolute and relative
205
- * date/time entry in the {@link RelativeDateTimeValueEditor}. The stored value shape is
206
- * unaffected — a controller only decides the current mode and (optionally) renders an
207
- * affordance to change it.
208
- *
209
- * Ships with {@link toggleModeController} (the zero-config default); build an
210
- * operator-driven controller with {@link createOperatorModeController}, or supply a custom
211
- * object to fully control the UX.
212
- */
213
- interface RelativeDateTimeModeController {
214
- /** Derives the current mode from the rule (its operator and/or value). */
215
- isRelative: (props: ValueEditorProps) => boolean;
216
- /**
217
- * Optional affordance rendered inside the editor to switch modes. Omit it (as the
218
- * operator-driven controller does) when the mode is selected elsewhere, e.g. via the
219
- * operator selector.
220
- */
221
- ModeControl?: ComponentType<RelativeDateTimeModeControlProps>;
222
- }
223
- /**
224
- * Configuration for the {@link RelativeDateTimeValueEditor}, supplied as props to
225
- * {@link QueryBuilderDateTime} (or via the relative date/time config context). Every
226
- * field is optional; omitting all of them yields the zero-config toggle experience.
227
- */
228
- interface RelativeDateTimeEditorConfig {
229
- /** Strategy for switching between absolute and relative modes. Defaults to {@link toggleModeController}. */
230
- modeController?: RelativeDateTimeModeController;
231
- /** Anchor (reference-point) options. Defaults to {@link defaultRelativeDateTimeAnchors}. */
232
- anchors?: FullOption<RelativeDateTimeAnchor>[];
233
- /** Unit options. Defaults to {@link defaultRelativeDateTimeUnits}. */
234
- units?: FullOption<RelativeDateTimeUnit>[];
235
- /** Content/labels for the absolute/relative toggle. */
236
- toggleLabels?: RelativeDateTimeToggleLabels;
237
- /**
238
- * Date/time library adapter used by the value editor to parse/validate the rule value
239
- * for the native date input. Defaults to the Day.js adapter. Pass the adapter matching
240
- * your chosen entry point (e.g. from `@react-querybuilder/datetime/luxon`) so the editor
241
- * interprets values consistently with the rule processors.
242
- */
243
- dateTimeAPI?: RQBDateTimeLibraryAPI;
244
- }
245
- /**
246
- * Maps operator names that are used only to _signal_ relative mode (see
247
- * {@link createOperatorModeController}) to the real comparison operator that should be used
248
- * when exporting via `formatQuery`. Supplied through `context.relativeOperatorMap`. Operators
249
- * not present in the map are exported unchanged.
250
- *
251
- * @example
252
- * ```ts
253
- * formatQuery(query, {
254
- * format: 'sql',
255
- * ruleProcessor: datetimeRuleProcessorSQL,
256
- * context: { relativeOperatorMap: { relativeEq: '=' } },
257
- * });
258
- * ```
259
- */
260
- type RelativeOperatorMap = Record<string, string>;
261
- type IsDateFieldFunction = (...[rule, opts]: Parameters<RuleProcessor>) => boolean;
262
- type IsDateField = IsDateFieldFunction | Record<string, unknown> | Record<string, unknown>[] | boolean | undefined;
263
- //#endregion
264
- export { RelativeDateTimeUnit as C, RelativeDateTimeTruncationUnit as S, RelativeOperatorMap as T, RelativeDateTimeAnchor as _, RQBJsonLogicDateAfter as a, RelativeDateTimeModeController as b, RQBJsonLogicDateIn as c, RQBJsonLogicDateNotOn as d, RQBJsonLogicDateOn as f, RQBJsonLogicDateTimeOperations as g, RQBJsonLogicDateRelative as h, RQBDateTimeLibraryAPI as i, RQBJsonLogicDateNotBetween as l, RQBJsonLogicDateOnOrBefore as m, IsDateFieldFunction as n, RQBJsonLogicDateBefore as o, RQBJsonLogicDateOnOrAfter as p, RQBDateTimeJsonLogic as r, RQBJsonLogicDateBetween as s, IsDateField as t, RQBJsonLogicDateNotIn as u, RelativeDateTimeEditorConfig as v, RelativeDateTimeValue as w, RelativeDateTimeToggleLabels as x, RelativeDateTimeModeControlProps as y };
265
- //# sourceMappingURL=types-CdjHqQ0k.d.ts.map