|
10 | 10 | :warning-invalid="answerType.warningInvalid" |
11 | 11 | v-on="commonListeners"> |
12 | 12 | <template v-if="answerType.pickerType === 'date'" #actions> |
13 | | - <NcActionCheckbox v-model="dateRange"> |
| 13 | + <NcActionCheckbox |
| 14 | + :model-value="dateRange" |
| 15 | + @update:model-value="onDateRangeChange"> |
14 | 16 | {{ t('forms', 'Use date range') }} |
15 | 17 | </NcActionCheckbox> |
16 | 18 | <NcActionInput |
17 | | - v-model="dateMin" |
18 | 19 | type="date" |
| 20 | + is-native-picker |
| 21 | + :model-value="dateMin" |
19 | 22 | :label="t('forms', 'Earliest date')" |
20 | 23 | hide-label |
21 | 24 | :formatter="extraSettingsFormatter" |
22 | | - is-native-picker |
23 | | - :max="dateMax"> |
| 25 | + :max="dateMax" |
| 26 | + @update:model-value="onDateMinChange"> |
24 | 27 | <template #icon> |
25 | 28 | <NcIconSvgWrapper |
26 | 29 | :svg="svgTodayIcon" |
27 | 30 | :name="t('forms', 'Earliest date')" /> |
28 | 31 | </template> |
29 | 32 | </NcActionInput> |
30 | 33 | <NcActionInput |
31 | | - v-model="dateMax" |
32 | 34 | type="date" |
| 35 | + is-native-picker |
| 36 | + :model-value="dateMax" |
33 | 37 | :label="t('forms', 'Latest date')" |
34 | 38 | hide-label |
35 | 39 | :formatter="extraSettingsFormatter" |
36 | | - is-native-picker |
37 | | - :min="dateMin"> |
| 40 | + :min="dateMin" |
| 41 | + @update:model-value="onDateMaxChange"> |
38 | 42 | <template #icon> |
39 | 43 | <NcIconSvgWrapper |
40 | 44 | :svg="svgEventIcon" |
@@ -133,42 +137,23 @@ export default { |
133 | 137 | /** |
134 | 138 | * The maximum allowable date for the date input field |
135 | 139 | */ |
136 | | - dateMax: { |
137 | | - get() { |
138 | | - return this.extraSettings?.dateMax |
139 | | - ? moment(this.extraSettings.dateMax, 'X').toDate() |
140 | | - : null |
141 | | - }, |
142 | | - set(value) { |
143 | | - this.onExtraSettingsChange({ |
144 | | - dateMax: parseInt(moment(value).format('X')), |
145 | | - }) |
146 | | - }, |
| 140 | + dateMax() { |
| 141 | + return this.extraSettings?.dateMax |
| 142 | + ? moment(this.extraSettings.dateMax, 'X').toDate() |
| 143 | + : null |
147 | 144 | }, |
148 | 145 |
|
149 | 146 | /** |
150 | 147 | * The minimum allowable date for the date input field |
151 | 148 | */ |
152 | | - dateMin: { |
153 | | - get() { |
154 | | - return this.extraSettings?.dateMin |
155 | | - ? moment(this.extraSettings.dateMin, 'X').toDate() |
156 | | - : null |
157 | | - }, |
158 | | - set(value) { |
159 | | - this.onExtraSettingsChange({ |
160 | | - dateMin: parseInt(moment(value).format('X')), |
161 | | - }) |
162 | | - }, |
| 149 | + dateMin() { |
| 150 | + return this.extraSettings?.dateMin |
| 151 | + ? moment(this.extraSettings.dateMin, 'X').toDate() |
| 152 | + : null |
163 | 153 | }, |
164 | 154 |
|
165 | | - dateRange: { |
166 | | - get() { |
167 | | - return this.extraSettings?.dateRange ?? false |
168 | | - }, |
169 | | - set(value) { |
170 | | - this.onExtraSettingsChange({ dateRange: value === true ?? null }) |
171 | | - }, |
| 155 | + dateRange() { |
| 156 | + return this.extraSettings?.dateRange ?? false |
172 | 157 | }, |
173 | 158 | }, |
174 | 159 |
|
@@ -196,6 +181,41 @@ export default { |
196 | 181 | ]).toDate() |
197 | 182 | }, |
198 | 183 |
|
| 184 | + /** |
| 185 | + * Handles the change event for the maximum date input. |
| 186 | + * Updates the maximum allowable date based on the provided value. |
| 187 | + * |
| 188 | + * @param {string | Date} value - The new maximum date value. Can be a string or a Date object. |
| 189 | + */ |
| 190 | + onDateMaxChange(value) { |
| 191 | + this.onExtraSettingsChange({ |
| 192 | + dateMax: parseInt(moment(value).format('X')), |
| 193 | + }) |
| 194 | + }, |
| 195 | +
|
| 196 | + /** |
| 197 | + * Handles the change event for the minimum date input. |
| 198 | + * Updates the minimum allowable date based on the provided value. |
| 199 | + * |
| 200 | + * @param {string | Date} value - The new minimum date value. Can be a string or a Date object. |
| 201 | + */ |
| 202 | + onDateMinChange(value) { |
| 203 | + this.onExtraSettingsChange({ |
| 204 | + dateMin: parseInt(moment(value).format('X')), |
| 205 | + }) |
| 206 | + }, |
| 207 | +
|
| 208 | + /** |
| 209 | + * Handles the change event for the date range selection. |
| 210 | + * Updates the extra settings with the new date range value. |
| 211 | + * |
| 212 | + * @param {boolean} value - The new value of the date range selection. |
| 213 | + * If true, the date range is enabled; otherwise, null. |
| 214 | + */ |
| 215 | + onDateRangeChange(value) { |
| 216 | + this.onExtraSettingsChange({ dateRange: value === true ?? null }) |
| 217 | + }, |
| 218 | +
|
199 | 219 | /** |
200 | 220 | * Store Value |
201 | 221 | * |
|
0 commit comments