@dative-gpi/foundation-shared-components 0.1.120 → 1.0.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 (196) hide show
  1. package/assets/images/map/imagery.png +0 -0
  2. package/assets/images/map/map.png +0 -0
  3. package/components/FSAccordion.vue +2 -1
  4. package/components/FSAccordionPanel.vue +20 -1
  5. package/components/FSBadge.vue +7 -3
  6. package/components/FSBreadcrumbs.vue +4 -2
  7. package/components/FSButton.vue +15 -8
  8. package/components/FSCalendar.vue +5 -2
  9. package/components/FSCalendarTwin.vue +6 -3
  10. package/components/FSCard.vue +4 -2
  11. package/components/FSCardPlaceholder.vue +80 -0
  12. package/components/FSCheckbox.vue +10 -7
  13. package/components/FSChip.vue +4 -2
  14. package/components/FSClickable.vue +5 -3
  15. package/components/FSClock.vue +18 -4
  16. package/components/FSCol.vue +12 -5
  17. package/components/FSColor.vue +4 -2
  18. package/components/FSColorIcon.vue +5 -3
  19. package/components/FSDialog.vue +28 -87
  20. package/components/FSDialogContent.vue +133 -0
  21. package/components/FSDialogForm.vue +25 -236
  22. package/components/FSDialogFormBody.vue +273 -0
  23. package/components/FSDialogMenu.vue +5 -2
  24. package/components/FSDialogMultiForm.vue +21 -197
  25. package/components/FSDialogMultiFormBody.vue +231 -0
  26. package/components/FSDialogSubmit.vue +4 -2
  27. package/components/FSDivider.vue +6 -4
  28. package/components/FSEditImage.vue +16 -9
  29. package/components/FSErrorToast.vue +2 -1
  30. package/components/FSFadeOut.vue +1 -1
  31. package/components/FSForm.vue +7 -7
  32. package/components/FSGrid.vue +4 -2
  33. package/components/FSGridMosaic.vue +3 -2
  34. package/components/FSIcon.vue +3 -2
  35. package/components/FSIconCard.vue +10 -3
  36. package/components/FSIconCheck.vue +2 -1
  37. package/components/FSIconFlag.vue +2 -1
  38. package/components/FSImage.vue +2 -1
  39. package/components/FSImageCard.vue +72 -0
  40. package/components/FSLabel.vue +4 -2
  41. package/components/FSLink.vue +5 -3
  42. package/components/FSLoader.vue +2 -1
  43. package/components/FSOptionGroup.vue +28 -20
  44. package/components/FSOptionItem.vue +8 -18
  45. package/components/FSPagination.vue +4 -2
  46. package/components/FSRadio.vue +23 -11
  47. package/components/FSRadioGroup.vue +23 -10
  48. package/components/FSRow.vue +8 -1
  49. package/components/FSSlideGroup.vue +27 -6
  50. package/components/FSSlider.vue +4 -2
  51. package/components/FSSpan.vue +2 -1
  52. package/components/FSSwitch.vue +13 -10
  53. package/components/FSTab.vue +4 -2
  54. package/components/FSTabs.vue +5 -14
  55. package/components/FSTag.vue +11 -4
  56. package/components/FSTagGroup.vue +4 -2
  57. package/components/FSText.vue +4 -2
  58. package/components/FSToggleSet.vue +30 -17
  59. package/components/FSTooltip.vue +15 -4
  60. package/components/FSWindow.vue +2 -2
  61. package/components/FSWrapGroup.vue +2 -1
  62. package/components/autocompletes/FSAutoCompleteAddress.vue +104 -0
  63. package/components/autocompletes/FSAutocompleteLanguage.vue +18 -26
  64. package/components/autocompletes/FSAutocompleteTag.vue +138 -0
  65. package/components/autocompletes/FSAutocompleteTimeZone.vue +19 -30
  66. package/components/buttons/FSButtonAdd.vue +28 -0
  67. package/components/buttons/FSButtonAddIcon.vue +28 -0
  68. package/components/buttons/FSButtonAddLabel.vue +27 -0
  69. package/components/buttons/FSButtonAddMini.vue +27 -0
  70. package/components/buttons/FSButtonFile.vue +4 -4
  71. package/components/buttons/FSButtonFileIcon.vue +4 -4
  72. package/components/buttons/FSButtonFileLabel.vue +4 -4
  73. package/components/buttons/FSButtonFileMini.vue +4 -4
  74. package/components/deviceOrganisations/FSConnectivity.vue +3 -2
  75. package/components/deviceOrganisations/FSConnectivityCard.vue +3 -2
  76. package/components/deviceOrganisations/FSStatus.vue +3 -2
  77. package/components/deviceOrganisations/FSStatusCard.vue +3 -2
  78. package/components/deviceOrganisations/FSStatusesCarousel.vue +3 -2
  79. package/components/deviceOrganisations/FSStatusesRow.vue +3 -2
  80. package/components/deviceOrganisations/FSWorstAlert.vue +5 -4
  81. package/components/deviceOrganisations/FSWorstAlertCard.vue +4 -2
  82. package/components/fields/FSAutocompleteField.vue +210 -97
  83. package/components/fields/FSBaseField.vue +2 -1
  84. package/components/fields/FSColorField.vue +65 -94
  85. package/components/fields/FSDateField.vue +12 -25
  86. package/components/fields/FSDateRangeField.vue +15 -27
  87. package/components/fields/FSDateTimeField.vue +22 -32
  88. package/components/fields/FSDateTimeRangeField.vue +43 -51
  89. package/components/fields/FSGradientField.vue +143 -0
  90. package/components/fields/FSIconField.vue +9 -6
  91. package/components/fields/FSMagicConfigField.vue +154 -0
  92. package/components/fields/FSMagicField.vue +185 -0
  93. package/components/fields/FSNumberField.vue +3 -1
  94. package/components/fields/FSPasswordField.vue +10 -10
  95. package/components/fields/FSRichTextField.vue +136 -50
  96. package/components/fields/FSSearchField.vue +41 -62
  97. package/components/fields/FSSelectField.vue +148 -53
  98. package/components/fields/FSTagField.vue +19 -16
  99. package/components/fields/FSTermField.vue +192 -186
  100. package/components/fields/FSTextArea.vue +4 -4
  101. package/components/fields/FSTextField.vue +29 -6
  102. package/components/fields/FSTimeField.vue +55 -20
  103. package/components/fields/FSTimeSlotField.vue +6 -5
  104. package/components/fields/FSTranslateField.vue +234 -0
  105. package/components/fields/FSTranslateRichTextField.vue +185 -0
  106. package/components/fields/FSTreeViewField.vue +520 -0
  107. package/components/lists/FSDataIteratorItem.vue +18 -3
  108. package/components/lists/FSDataTableUI.vue +138 -51
  109. package/components/lists/FSFilterButton.vue +4 -2
  110. package/components/lists/FSHiddenButton.vue +4 -2
  111. package/components/map/FSMap.vue +598 -0
  112. package/components/map/FSMapEditPointAddressOverlay.vue +164 -0
  113. package/components/map/FSMapLayerButton.vue +77 -0
  114. package/components/map/FSMapOverlay.vue +150 -0
  115. package/components/selects/FSSelectAutoRefresh.vue +62 -0
  116. package/components/selects/FSSelectDashboardVariableType.vue +47 -0
  117. package/components/selects/FSSelectDateSetting.vue +39 -37
  118. package/components/selects/FSSelectDays.vue +62 -0
  119. package/components/tiles/FSDashboardOrganisationTileUI.vue +7 -5
  120. package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +7 -5
  121. package/components/tiles/FSDashboardShallowTileUI.vue +7 -5
  122. package/components/tiles/FSDeviceOrganisationTileUI.vue +11 -12
  123. package/components/tiles/FSFolderTileUI.vue +8 -6
  124. package/components/tiles/FSGroupTileUI.vue +13 -15
  125. package/components/tiles/{FSSimpleIconTileUI.vue → FSSimpleTileUI.vue} +29 -15
  126. package/components/tiles/FSTile.vue +5 -11
  127. package/components/tiles/FSUserOrganisationTileUI.vue +2 -1
  128. package/components/toggleSets/FSToggleSetPosition.vue +61 -0
  129. package/composables/index.ts +5 -1
  130. package/composables/useAddress.ts +158 -0
  131. package/composables/useAutocomplete.ts +4 -3
  132. package/composables/useColors.ts +8 -25
  133. package/composables/useDebounce.ts +2 -1
  134. package/composables/useMagicFieldProvider.ts +22 -0
  135. package/composables/useRules.ts +4 -12
  136. package/composables/useSlots.ts +46 -26
  137. package/composables/useTables.ts +29 -0
  138. package/composables/useTreeView.ts +48 -0
  139. package/elements/FSFormElement.ts +2 -1
  140. package/icons/flags/France.vue +21 -5
  141. package/icons/flags/Germany.vue +16 -4
  142. package/icons/flags/GreatBritain.vue +25 -6
  143. package/icons/flags/Italy.vue +21 -5
  144. package/icons/flags/Portugal.vue +225 -51
  145. package/icons/flags/Spain.vue +2781 -543
  146. package/icons/flags/UnitedStates.vue +31 -7
  147. package/icons/widgetTemplates/DevicesWidget.vue +189 -189
  148. package/icons/widgetTemplates/ProfileWidget.vue +9 -9
  149. package/icons/widgetTemplates/TextWidget.vue +6 -6
  150. package/models/breadcrumbs.ts +1 -1
  151. package/models/deviceAlerts.ts +1 -1
  152. package/models/deviceConnectivities.ts +1 -1
  153. package/models/index.ts +2 -0
  154. package/models/magicFields.ts +9 -0
  155. package/models/map.ts +18 -0
  156. package/models/richTextVariable.ts +5 -0
  157. package/models/rules.ts +11 -2
  158. package/models/tables.ts +30 -21
  159. package/models/variableNode.ts +104 -0
  160. package/package.json +21 -18
  161. package/plugins/colorPlugin.ts +2 -2
  162. package/plugins/index.ts +2 -1
  163. package/plugins/mapsPlugin.ts +37 -0
  164. package/shims-plugin.d.ts +2 -2
  165. package/shims-window.d.ts +3 -0
  166. package/styles/components/fs_button.scss +5 -0
  167. package/styles/components/fs_card.scss +0 -1
  168. package/styles/components/fs_col.scss +1 -0
  169. package/styles/components/fs_color_field.scss +12 -2
  170. package/styles/components/fs_data_iterator_item.scss +19 -6
  171. package/styles/components/fs_dialog.scss +12 -22
  172. package/styles/components/fs_gradient_field.scss +16 -0
  173. package/styles/components/fs_image_card.scss +18 -0
  174. package/styles/components/fs_magic_config_field.scss +13 -0
  175. package/styles/components/fs_map.scss +129 -0
  176. package/styles/components/fs_map_overlay.scss +38 -0
  177. package/styles/components/fs_meta_field.scss +6 -0
  178. package/styles/components/fs_option_group.scss +1 -0
  179. package/styles/components/fs_radio.scss +1 -1
  180. package/styles/components/fs_rich_text_field.scss +17 -5
  181. package/styles/components/fs_row.scss +1 -1
  182. package/styles/components/fs_select_field.scss +9 -14
  183. package/styles/components/fs_text.scss +1 -1
  184. package/styles/components/fs_time_field.scss +0 -4
  185. package/styles/components/fs_translate_field.scss +3 -0
  186. package/styles/components/fs_tree_view_field.scss +53 -0
  187. package/styles/components/index.scss +8 -1
  188. package/styles/globals/overrides.scss +54 -8
  189. package/styles/globals/scrollbars.scss +2 -2
  190. package/themes/default.ts +1 -1
  191. package/utils/gradient.ts +1601 -0
  192. package/utils/index.ts +3 -1
  193. package/utils/leafletMarkers.ts +23 -0
  194. package/utils/lexical.ts +3 -1
  195. package/components/selects/FSSelectTimeZone.vue +0 -67
  196. package/styles/components/fs_date_field.scss +0 -8
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <FSBaseField
3
- :label="$props.label"
4
3
  :description="$props.description"
5
4
  :hideHeader="$props.hideHeader"
6
5
  :required="$props.required"
7
6
  :editable="$props.editable"
7
+ :label="$props.label"
8
8
  :messages="messages"
9
9
  >
10
10
  <FSForm
@@ -17,19 +17,20 @@
17
17
  :lastPeriod="$props.lastPeriod"
18
18
  :editable="$props.editable"
19
19
  :variant="$props.variant"
20
- :modelValue="localDateSetting"
21
- @update:modelValue="localDateSettingChange"
20
+ :hideHeader="true"
21
+ :modelValue="innerDateSetting"
22
+ @update:modelValue="innerDateSettingChange"
22
23
  />
23
24
  <FSNumberField
24
- v-if="pastSettings.includes(localDateSetting)"
25
+ v-if="pastSettings.includes(innerDateSetting)"
25
26
  :rules="[NumberRules.required(), NumberRules.min(0)]"
26
27
  :editable="$props.editable"
27
28
  :hideHeader="true"
28
- :modelValue="localDateValue"
29
- @update:modelValue="localDateValueChange"
29
+ :modelValue="innerDateValue"
30
+ @update:modelValue="innerDateValueChange"
30
31
  />
31
32
  <template
32
- v-else-if="localDateSetting === DateSetting.Expression"
33
+ v-else-if="innerDateSetting === DateSetting.Expression"
33
34
  >
34
35
  <FSRow
35
36
  align="center-left"
@@ -42,8 +43,8 @@
42
43
  :rules="[TextRules.required(), DateRules.validateExpression($props.variant)]"
43
44
  :editable="$props.editable"
44
45
  :hideHeader="true"
45
- :modelValue="localStartDate"
46
- @update:modelValue="localStartDateChange"
46
+ :modelValue="innerStartDate"
47
+ @update:modelValue="innerStartDateChange"
47
48
  />
48
49
  </FSRow>
49
50
  <FSRow
@@ -57,17 +58,17 @@
57
58
  :rules="[TextRules.required(), DateRules.validateExpression($props.variant)]"
58
59
  :editable="$props.editable"
59
60
  :hideHeader="true"
60
- :modelValue="localEndDate"
61
- @update:modelValue="localEndDateChange"
61
+ :modelValue="innerEndDate"
62
+ @update:modelValue="innerEndDateChange"
62
63
  />
63
64
  </FSRow>
64
65
  </template>
65
66
  <FSDateTimeRangeField
66
- v-else-if="localDateSetting === DateSetting.Pick"
67
+ v-else-if="innerDateSetting === DateSetting.Pick"
67
68
  :rules="[DateRules.required()]"
68
69
  :editable="$props.editable"
69
70
  :hideHeader="true"
70
- :modelValue="[parseForPicker(localStartDate)!, parseForPicker(localEndDate)!]"
71
+ :modelValue="[parseForPicker(innerStartDate)!, parseForPicker(innerEndDate)!]"
71
72
  @update:modelValue="onPickDates"
72
73
  />
73
74
  </FSRow>
@@ -76,7 +77,7 @@
76
77
  </template>
77
78
 
78
79
  <script lang="ts">
79
- import { computed, defineComponent, onMounted, PropType, ref} from "vue";
80
+ import { computed, defineComponent, type PropType, ref, watch } from "vue";
80
81
  import _ from "lodash";
81
82
 
82
83
  import { DateRules, NumberRules, TextRules } from "@dative-gpi/foundation-shared-components/models";
@@ -165,10 +166,10 @@ export default defineComponent({
165
166
  const { parseForPicker,formatFromPicker, formatCurrentForPicker } = useAppTimeZone();
166
167
  const { getMessages } = useRules();
167
168
 
168
- const localDateSetting = ref<DateSetting>(DateSetting.PastDays);
169
- const localDateValue = ref<number>(1);
170
- const localStartDate = ref<string>("now - 1d");
171
- const localEndDate = ref<string>("now");
169
+ const innerDateSetting = ref<DateSetting>(DateSetting.PastDays);
170
+ const innerDateValue = ref<number>(1);
171
+ const innerStartDate = ref<string>("now - 1d");
172
+ const innerEndDate = ref<string>("now");
172
173
 
173
174
  const valid = ref<boolean>(false);
174
175
 
@@ -185,12 +186,12 @@ export default defineComponent({
185
186
  getMessages(props.startDate, props.rules).concat(getMessages(props.endDate, props.rules));
186
187
  });
187
188
 
188
- const localStartDateChange = (value: string) => {
189
+ const innerStartDateChange = (value: string) => {
189
190
  debouncedStartDate(value);
190
191
  };
191
192
 
192
193
  const onStartDateChange = (value: string) => {
193
- localStartDate.value = value;
194
+ innerStartDate.value = value;
194
195
  if (valid.value) {
195
196
  emit("update:startDate", value);
196
197
  }
@@ -198,12 +199,12 @@ export default defineComponent({
198
199
 
199
200
  const debouncedStartDate = _.debounce(onStartDateChange, 1000);
200
201
 
201
- const localEndDateChange = (value: string) => {
202
+ const innerEndDateChange = (value: string) => {
202
203
  debouncedEndDate(value);
203
204
  };
204
205
 
205
206
  const onEndDateChange = (value: string) => {
206
- localEndDate.value = value;
207
+ innerEndDate.value = value;
207
208
  if (valid.value) {
208
209
  emit("update:endDate", value);
209
210
  }
@@ -211,255 +212,255 @@ export default defineComponent({
211
212
 
212
213
  const debouncedEndDate = _.debounce(onEndDateChange, 1000);
213
214
 
214
- const localDateSettingChange = (value: DateSetting) => {
215
- localDateSetting.value = value;
215
+ const innerDateSettingChange = (value: DateSetting) => {
216
+ innerDateSetting.value = value;
216
217
  switch (value) {
217
218
  case DateSetting.None:
218
219
  return;
219
220
  case DateSetting.PastHours:
220
- localStartDate.value = `now - ${localDateValue.value}h`;
221
- localEndDate.value = "now";
221
+ innerStartDate.value = `now - ${innerDateValue.value}h`;
222
+ innerEndDate.value = "now";
222
223
  break;
223
224
  case DateSetting.PastDays:
224
- localStartDate.value = `now - ${localDateValue.value}d`;
225
- localEndDate.value = "now";
225
+ innerStartDate.value = `now - ${innerDateValue.value}d`;
226
+ innerEndDate.value = "now";
226
227
  break;
227
228
  case DateSetting.PastWeeks:
228
- localStartDate.value = `now - ${localDateValue.value}w`;
229
- localEndDate.value = "now";
229
+ innerStartDate.value = `now - ${innerDateValue.value}w`;
230
+ innerEndDate.value = "now";
230
231
  break;
231
232
  case DateSetting.PastMonths:
232
- localStartDate.value = `now - ${localDateValue.value}M`;
233
- localEndDate.value = "now";
233
+ innerStartDate.value = `now - ${innerDateValue.value}M`;
234
+ innerEndDate.value = "now";
234
235
  break;
235
236
  case DateSetting.PastYears:
236
- localStartDate.value = `now - ${localDateValue.value}y`;
237
- localEndDate.value = "now";
237
+ innerStartDate.value = `now - ${innerDateValue.value}y`;
238
+ innerEndDate.value = "now";
238
239
  break;
239
240
  case DateSetting.CurrentHour:
240
- localStartDate.value = "now/h";
241
- localEndDate.value = "now";
241
+ innerStartDate.value = "now/h";
242
+ innerEndDate.value = "now";
242
243
  break;
243
244
  case DateSetting.CurrentDay:
244
- localStartDate.value = "now/d";
245
- localEndDate.value = "now";
245
+ innerStartDate.value = "now/d";
246
+ innerEndDate.value = "now";
246
247
  break;
247
248
  case DateSetting.CurrentWeek:
248
- localStartDate.value = "now/w";
249
- localEndDate.value = "now";
249
+ innerStartDate.value = "now/w";
250
+ innerEndDate.value = "now";
250
251
  break;
251
252
  case DateSetting.CurrentMonth:
252
- localStartDate.value = "now/M";
253
- localEndDate.value = "now";
253
+ innerStartDate.value = "now/M";
254
+ innerEndDate.value = "now";
254
255
  break;
255
256
  case DateSetting.CurrentYear:
256
- localStartDate.value = "now/y";
257
- localEndDate.value = "now";
257
+ innerStartDate.value = "now/y";
258
+ innerEndDate.value = "now";
258
259
  break;
259
260
  case DateSetting.LastDay:
260
- localStartDate.value = `now - 1d/d`;
261
- localEndDate.value = "now/d";
261
+ innerStartDate.value = `now - 1d/d`;
262
+ innerEndDate.value = "now/d";
262
263
  break;
263
264
  case DateSetting.LastWeek:
264
- localStartDate.value = `now - 1w/w`;
265
- localEndDate.value = "now/w";
265
+ innerStartDate.value = `now - 1w/w`;
266
+ innerEndDate.value = "now/w";
266
267
  break;
267
268
  case DateSetting.LastMonth:
268
- localStartDate.value = `now - 1M/M`;
269
- localEndDate.value = "now/M";
269
+ innerStartDate.value = `now - 1M/M`;
270
+ innerEndDate.value = "now/M";
270
271
  break;
271
272
  case DateSetting.LastYear:
272
- localStartDate.value = `now - 1y/y`;
273
- localEndDate.value = "now/y";
273
+ innerStartDate.value = `now - 1y/y`;
274
+ innerEndDate.value = "now/y";
274
275
  break;
275
276
  case DateSetting.SinceLastDay:
276
- localStartDate.value = `now - 1d/d`;
277
- localEndDate.value = "now";
277
+ innerStartDate.value = `now - 1d/d`;
278
+ innerEndDate.value = "now";
278
279
  break;
279
280
  case DateSetting.SinceLastWeek:
280
- localStartDate.value = `now - 1w/w`;
281
- localEndDate.value = "now";
281
+ innerStartDate.value = `now - 1w/w`;
282
+ innerEndDate.value = "now";
282
283
  break;
283
284
  case DateSetting.SinceLastMonth:
284
- localStartDate.value = `now - 1M/M`;
285
- localEndDate.value = "now";
285
+ innerStartDate.value = `now - 1M/M`;
286
+ innerEndDate.value = "now";
286
287
  break;
287
288
  case DateSetting.SinceLastYear:
288
- localStartDate.value = `now - 1y/y`;
289
- localEndDate.value = "now";
289
+ innerStartDate.value = `now - 1y/y`;
290
+ innerEndDate.value = "now";
290
291
  break;
291
292
  case DateSetting.LastPeriod:
292
- localStartDate.value = "from - to + from";
293
- localEndDate.value = "from";
293
+ innerStartDate.value = "from - to + from";
294
+ innerEndDate.value = "from";
294
295
  break;
295
296
  case DateSetting.MinutesBeforeAfter:
296
- localStartDate.value = `alertstart - ${localDateValue.value}m`;
297
- localEndDate.value = `alertend + ${localDateValue.value}m`;
297
+ innerStartDate.value = `alertstart - ${innerDateValue.value}m`;
298
+ innerEndDate.value = `alertend + ${innerDateValue.value}m`;
298
299
  break;
299
300
  case DateSetting.HoursBeforeAfter:
300
- localStartDate.value = `alertstart - ${localDateValue.value}h`;
301
- localEndDate.value = `alertend + ${localDateValue.value}h`;
301
+ innerStartDate.value = `alertstart - ${innerDateValue.value}h`;
302
+ innerEndDate.value = `alertend + ${innerDateValue.value}h`;
302
303
  break;
303
304
  case DateSetting.DaysBeforeAfter:
304
- localStartDate.value = `alertstart - ${localDateValue.value}d`;
305
- localEndDate.value = `alertend + ${localDateValue.value}d`;
305
+ innerStartDate.value = `alertstart - ${innerDateValue.value}d`;
306
+ innerEndDate.value = `alertend + ${innerDateValue.value}d`;
306
307
  break;
307
308
  case DateSetting.WeeksBeforeAfter:
308
- localStartDate.value = `alertstart - ${localDateValue.value}w`;
309
- localEndDate.value = `alertend + ${localDateValue.value}w`;
309
+ innerStartDate.value = `alertstart - ${innerDateValue.value}w`;
310
+ innerEndDate.value = `alertend + ${innerDateValue.value}w`;
310
311
  break;
311
312
  case DateSetting.MinutesBefore:
312
- localStartDate.value = `alertstart - ${localDateValue.value}m`;
313
- localEndDate.value = "alertend";
313
+ innerStartDate.value = `alertstart - ${innerDateValue.value}m`;
314
+ innerEndDate.value = "alertend";
314
315
  break;
315
316
  case DateSetting.HoursBefore:
316
- localStartDate.value = `alertstart - ${localDateValue.value}h`;
317
- localEndDate.value = "alertend";
317
+ innerStartDate.value = `alertstart - ${innerDateValue.value}h`;
318
+ innerEndDate.value = "alertend";
318
319
  break;
319
320
  case DateSetting.DaysBefore:
320
- localStartDate.value = `alertstart - ${localDateValue.value}d`;
321
- localEndDate.value = "alertend";
321
+ innerStartDate.value = `alertstart - ${innerDateValue.value}d`;
322
+ innerEndDate.value = "alertend";
322
323
  break;
323
324
  case DateSetting.WeeksBefore:
324
- localStartDate.value = `alertstart - ${localDateValue.value}w`;
325
- localEndDate.value = "alertend";
325
+ innerStartDate.value = `alertstart - ${innerDateValue.value}w`;
326
+ innerEndDate.value = "alertend";
326
327
  break;
327
328
  case DateSetting.Expression:
328
329
  if (props.variant === "before-after") {
329
- localStartDate.value = `alertstart - ${localDateValue.value}d`;
330
- localEndDate.value = "alertend";
330
+ innerStartDate.value = `alertstart - ${innerDateValue.value}d`;
331
+ innerEndDate.value = "alertend";
331
332
  }
332
333
  else {
333
- localStartDate.value = `now - ${localDateValue.value}d`;
334
- localEndDate.value = "now";
334
+ innerStartDate.value = `now - ${innerDateValue.value}d`;
335
+ innerEndDate.value = "now";
335
336
  }
336
337
  break;
337
338
  case DateSetting.Pick:
338
- localEndDate.value = formatCurrentForPicker(0);
339
- localStartDate.value = formatCurrentForPicker(-1);
339
+ innerEndDate.value = formatCurrentForPicker(0);
340
+ innerStartDate.value = formatCurrentForPicker(-1);
340
341
  break;
341
342
  }
342
- emit("update:startDate", localStartDate.value);
343
- emit("update:endDate", localEndDate.value);
343
+ emit("update:startDate", innerStartDate.value);
344
+ emit("update:endDate", innerEndDate.value);
344
345
  };
345
346
 
346
- const localDateValueChange = (value: number) => {
347
- localDateValue.value = value ? value : 1;
347
+ const innerDateValueChange = (value: number) => {
348
+ innerDateValue.value = value ? value : 1;
348
349
 
349
- switch (localDateSetting.value) {
350
+ switch (innerDateSetting.value) {
350
351
  case DateSetting.None:
351
352
  return;
352
353
  case DateSetting.PastHours:
353
- localStartDate.value = `now - ${localDateValue.value}h`;
354
- localEndDate.value = "now";
354
+ innerStartDate.value = `now - ${innerDateValue.value}h`;
355
+ innerEndDate.value = "now";
355
356
  break;
356
357
  case DateSetting.PastDays:
357
- localStartDate.value = `now - ${localDateValue.value}d`;
358
- localEndDate.value = "now";
358
+ innerStartDate.value = `now - ${innerDateValue.value}d`;
359
+ innerEndDate.value = "now";
359
360
  break;
360
361
  case DateSetting.PastWeeks:
361
- localStartDate.value = `now - ${localDateValue.value}w`;
362
- localEndDate.value = "now";
362
+ innerStartDate.value = `now - ${innerDateValue.value}w`;
363
+ innerEndDate.value = "now";
363
364
  break;
364
365
  case DateSetting.PastMonths:
365
- localStartDate.value = `now - ${localDateValue.value}M`;
366
- localEndDate.value = "now";
366
+ innerStartDate.value = `now - ${innerDateValue.value}M`;
367
+ innerEndDate.value = "now";
367
368
  break;
368
369
  case DateSetting.PastYears:
369
- localStartDate.value = `now - ${localDateValue.value}y`;
370
- localEndDate.value = "now";
370
+ innerStartDate.value = `now - ${innerDateValue.value}y`;
371
+ innerEndDate.value = "now";
371
372
  break;
372
373
  case DateSetting.MinutesBeforeAfter:
373
- localStartDate.value = `alertstart - ${localDateValue.value}m`;
374
- localEndDate.value = `alertend + ${localDateValue.value}m`;
374
+ innerStartDate.value = `alertstart - ${innerDateValue.value}m`;
375
+ innerEndDate.value = `alertend + ${innerDateValue.value}m`;
375
376
  break;
376
377
  case DateSetting.HoursBeforeAfter:
377
- localStartDate.value = `alertstart - ${localDateValue.value}h`;
378
- localEndDate.value = `alertend + ${localDateValue.value}h`;
378
+ innerStartDate.value = `alertstart - ${innerDateValue.value}h`;
379
+ innerEndDate.value = `alertend + ${innerDateValue.value}h`;
379
380
  break;
380
381
  case DateSetting.DaysBeforeAfter:
381
- localStartDate.value = `alertstart - ${localDateValue.value}d`;
382
- localEndDate.value = `alertend + ${localDateValue.value}d`;
382
+ innerStartDate.value = `alertstart - ${innerDateValue.value}d`;
383
+ innerEndDate.value = `alertend + ${innerDateValue.value}d`;
383
384
  break;
384
385
  case DateSetting.WeeksBeforeAfter:
385
- localStartDate.value = `alertstart - ${localDateValue.value}w`;
386
- localEndDate.value = `alertend + ${localDateValue.value}w`;
386
+ innerStartDate.value = `alertstart - ${innerDateValue.value}w`;
387
+ innerEndDate.value = `alertend + ${innerDateValue.value}w`;
387
388
  break;
388
389
  case DateSetting.MinutesBefore:
389
- localStartDate.value = `alertstart - ${localDateValue.value}m`;
390
- localEndDate.value = "alertend";
390
+ innerStartDate.value = `alertstart - ${innerDateValue.value}m`;
391
+ innerEndDate.value = "alertend";
391
392
  break;
392
393
  case DateSetting.HoursBefore:
393
- localStartDate.value = `alertstart - ${localDateValue.value}h`;
394
- localEndDate.value = "alertend";
394
+ innerStartDate.value = `alertstart - ${innerDateValue.value}h`;
395
+ innerEndDate.value = "alertend";
395
396
  break;
396
397
  case DateSetting.DaysBefore:
397
- localStartDate.value = `alertstart - ${localDateValue.value}d`;
398
- localEndDate.value = "alertend";
398
+ innerStartDate.value = `alertstart - ${innerDateValue.value}d`;
399
+ innerEndDate.value = "alertend";
399
400
  break;
400
401
  case DateSetting.WeeksBefore:
401
- localStartDate.value = `alertstart - ${localDateValue.value}w`;
402
- localEndDate.value = "alertend";
402
+ innerStartDate.value = `alertstart - ${innerDateValue.value}w`;
403
+ innerEndDate.value = "alertend";
403
404
  break;
404
405
  }
405
- emit("update:startDate", localStartDate.value);
406
- emit("update:endDate", localEndDate.value);
406
+ emit("update:startDate", innerStartDate.value);
407
+ emit("update:endDate", innerEndDate.value);
407
408
  };
408
409
 
409
410
  const onPickDates = (value: number[] | null) => {
410
411
  if (!value) {
411
- localEndDate.value = formatCurrentForPicker(0);
412
- localStartDate.value = formatCurrentForPicker(-1);
412
+ innerEndDate.value = formatCurrentForPicker(0);
413
+ innerStartDate.value = formatCurrentForPicker(-1);
413
414
  if (valid.value) {
414
- emit("update:startDate", localStartDate.value);
415
- emit("update:endDate", localEndDate.value);
415
+ emit("update:startDate", innerStartDate.value);
416
+ emit("update:endDate", innerEndDate.value);
416
417
  }
417
418
  }
418
419
  else {
419
- if (value && value[0] != null && formatFromPicker(value[0]) !== localStartDate.value) {
420
- localStartDate.value = formatFromPicker(value[0]);
420
+ if (value && value[0] != null && formatFromPicker(value[0]) !== innerStartDate.value) {
421
+ innerStartDate.value = formatFromPicker(value[0]);
421
422
  if (valid.value) {
422
- emit("update:startDate", localStartDate.value);
423
+ emit("update:startDate", innerStartDate.value);
423
424
  }
424
425
  }
425
- if (value && value[1] != null && formatFromPicker(value[1]) !== localEndDate.value) {
426
- localEndDate.value = formatFromPicker(value[1]);
426
+ if (value && value[1] != null && formatFromPicker(value[1]) !== innerEndDate.value) {
427
+ innerEndDate.value = formatFromPicker(value[1]);
427
428
  if (valid.value) {
428
- emit("update:endDate", localEndDate.value);
429
+ emit("update:endDate", innerEndDate.value);
429
430
  }
430
431
  }
431
432
  }
432
433
  };
433
434
 
434
435
  const reset = (): void => {
435
- localStartDate.value = props.startDate;
436
- localEndDate.value = props.endDate;
436
+ innerStartDate.value = props.startDate;
437
+ innerEndDate.value = props.endDate;
437
438
 
438
439
  if (props.variant === "before-after") {
439
440
  if (props.endDate === "alertend") {
440
441
  let match = /^alertstart-([\d]+)([mhdw])$/g.exec(props.startDate.replaceAll(" ", ""));
441
442
  if (match != null) {
442
- localDateValue.value = parseInt(match[1]);
443
+ innerDateValue.value = parseInt(match[1]);
443
444
  switch (match[2]) {
444
445
  case 'm': {
445
- localDateSetting.value = DateSetting.MinutesBefore;
446
+ innerDateSetting.value = DateSetting.MinutesBefore;
446
447
  return;
447
448
  }
448
449
  case 'h': {
449
- localDateSetting.value = DateSetting.HoursBefore;
450
+ innerDateSetting.value = DateSetting.HoursBefore;
450
451
  return;
451
452
  }
452
453
  case 'd': {
453
- localDateSetting.value = DateSetting.DaysBefore;
454
+ innerDateSetting.value = DateSetting.DaysBefore;
454
455
  return;
455
456
  }
456
457
  case 'w': {
457
- localDateSetting.value = DateSetting.WeeksBefore;
458
+ innerDateSetting.value = DateSetting.WeeksBefore;
458
459
  return;
459
460
  }
460
461
  default: {
461
- localDateSetting.value = DateSetting.Expression;
462
- localDateValue.value = 1;
462
+ innerDateSetting.value = DateSetting.Expression;
463
+ innerDateValue.value = 1;
463
464
  return;
464
465
  }
465
466
  }
@@ -473,113 +474,113 @@ export default defineComponent({
473
474
  let startMatch = /^alertstart-([\d]+)([mhdw])$/g.exec(props.startDate.replaceAll(" ", ""));
474
475
  let endMatch = /^alertend\+([\d]+)([mhdw])$/g.exec(props.endDate.replaceAll(" ", ""));
475
476
  if (startMatch != null && endMatch != null && startMatch[1] === endMatch[1] && startMatch[2] === endMatch[2]) {
476
- localDateValue.value = parseInt(startMatch[1]);
477
+ innerDateValue.value = parseInt(startMatch[1]);
477
478
  switch(startMatch[2]) {
478
479
  case 'm': {
479
- localDateSetting.value = DateSetting.MinutesBeforeAfter;
480
+ innerDateSetting.value = DateSetting.MinutesBeforeAfter;
480
481
  return;
481
482
  }
482
483
  case 'h': {
483
- localDateSetting.value = DateSetting.HoursBeforeAfter;
484
+ innerDateSetting.value = DateSetting.HoursBeforeAfter;
484
485
  return;
485
486
  }
486
487
  case 'd': {
487
- localDateSetting.value = DateSetting.DaysBeforeAfter;
488
+ innerDateSetting.value = DateSetting.DaysBeforeAfter;
488
489
  return;
489
490
  }
490
491
  case 'w': {
491
- localDateSetting.value = DateSetting.WeeksBeforeAfter;
492
+ innerDateSetting.value = DateSetting.WeeksBeforeAfter;
492
493
  return;
493
494
  }
494
495
  default: {
495
- localDateSetting.value = DateSetting.Expression;
496
- localDateValue.value = 1;
496
+ innerDateSetting.value = DateSetting.Expression;
497
+ innerDateValue.value = 1;
497
498
  return;
498
499
  }
499
500
  }
500
501
  }
501
502
  }
502
503
 
503
- localDateSetting.value = DateSetting.Expression;
504
- localDateValue.value = 1;
504
+ innerDateSetting.value = DateSetting.Expression;
505
+ innerDateValue.value = 1;
505
506
  return;
506
507
  }
507
508
 
508
509
  if (props.lastPeriod && props.endDate === "from" && props.startDate === "from - to + from") {
509
- localDateSetting.value = DateSetting.LastPeriod;
510
+ innerDateSetting.value = DateSetting.LastPeriod;
510
511
  return;
511
512
  }
512
513
  if (props.endDate === "now/d" && props.startDate === "now - 1d/d") {
513
- localDateSetting.value = DateSetting.LastDay;
514
+ innerDateSetting.value = DateSetting.LastDay;
514
515
  return;
515
516
  }
516
517
  if (props.endDate === "now/w" && props.startDate === "now - 1w/w") {
517
- localDateSetting.value = DateSetting.LastWeek;
518
+ innerDateSetting.value = DateSetting.LastWeek;
518
519
  return;
519
520
  }
520
521
  if (props.endDate === "now/M" && props.startDate === "now - 1M/M") {
521
- localDateSetting.value = DateSetting.LastMonth;
522
+ innerDateSetting.value = DateSetting.LastMonth;
522
523
  return;
523
524
  }
524
525
  if (props.endDate === "now/y" && props.startDate === "now - 1y/y") {
525
- localDateSetting.value = DateSetting.LastYear;
526
+ innerDateSetting.value = DateSetting.LastYear;
526
527
  return;
527
528
  }
528
529
 
529
530
  if (props.endDate === "now") {
530
531
  let match = /^now-1([dwMy])\/([dwMy])$/g.exec(props.startDate.replaceAll(" ", ""));
531
532
  if (match != null) {
532
- localDateValue.value = 1;
533
+ innerDateValue.value = 1;
533
534
  switch (match[1]) {
534
535
  case 'd': {
535
- localDateSetting.value = DateSetting.SinceLastDay;
536
+ innerDateSetting.value = DateSetting.SinceLastDay;
536
537
  return;
537
538
  }
538
539
  case 'w': {
539
- localDateSetting.value = DateSetting.SinceLastWeek;
540
+ innerDateSetting.value = DateSetting.SinceLastWeek;
540
541
  return;
541
542
  }
542
543
  case 'M': {
543
- localDateSetting.value = DateSetting.SinceLastMonth;
544
+ innerDateSetting.value = DateSetting.SinceLastMonth;
544
545
  return;
545
546
  }
546
547
  case 'y': {
547
- localDateSetting.value = DateSetting.SinceLastYear;
548
+ innerDateSetting.value = DateSetting.SinceLastYear;
548
549
  return;
549
550
  }
550
551
  default: {
551
- localDateSetting.value = DateSetting.Expression;
552
+ innerDateSetting.value = DateSetting.Expression;
552
553
  return;
553
554
  }
554
555
  }
555
556
  }
556
557
  match = /^now-([\d]+)([hdwMy])$/g.exec(props.startDate.replaceAll(" ", ""));
557
558
  if (match != null) {
558
- localDateValue.value = parseInt(match[1]);
559
+ innerDateValue.value = parseInt(match[1]);
559
560
  switch (match[2]) {
560
561
  case 'h': {
561
- localDateSetting.value = DateSetting.PastHours;
562
+ innerDateSetting.value = DateSetting.PastHours;
562
563
  return;
563
564
  }
564
565
  case 'd': {
565
- localDateSetting.value = DateSetting.PastDays;
566
+ innerDateSetting.value = DateSetting.PastDays;
566
567
  return;
567
568
  }
568
569
  case 'w': {
569
- localDateSetting.value = DateSetting.PastWeeks;
570
+ innerDateSetting.value = DateSetting.PastWeeks;
570
571
  return;
571
572
  }
572
573
  case 'M': {
573
- localDateSetting.value = DateSetting.PastMonths;
574
+ innerDateSetting.value = DateSetting.PastMonths;
574
575
  return;
575
576
  }
576
577
  case 'y': {
577
- localDateSetting.value = DateSetting.PastYears;
578
+ innerDateSetting.value = DateSetting.PastYears;
578
579
  return;
579
580
  }
580
581
  default: {
581
- localDateSetting.value = DateSetting.Expression;
582
- localDateValue.value = 1;
582
+ innerDateSetting.value = DateSetting.Expression;
583
+ innerDateValue.value = 1;
583
584
  return;
584
585
  }
585
586
  }
@@ -587,30 +588,30 @@ export default defineComponent({
587
588
 
588
589
  match = /^now\/([hdwMy])$/g.exec(props.startDate.replaceAll(" ", ""));
589
590
  if (match != null) {
590
- localDateValue.value = 1;
591
+ innerDateValue.value = 1;
591
592
  switch (match[1]) {
592
593
  case 'h': {
593
- localDateSetting.value = DateSetting.CurrentHour;
594
+ innerDateSetting.value = DateSetting.CurrentHour;
594
595
  return;
595
596
  }
596
597
  case 'd': {
597
- localDateSetting.value = DateSetting.CurrentDay;
598
+ innerDateSetting.value = DateSetting.CurrentDay;
598
599
  return;
599
600
  }
600
601
  case 'w': {
601
- localDateSetting.value = DateSetting.CurrentWeek;
602
+ innerDateSetting.value = DateSetting.CurrentWeek;
602
603
  return;
603
604
  }
604
605
  case 'M': {
605
- localDateSetting.value = DateSetting.CurrentMonth;
606
+ innerDateSetting.value = DateSetting.CurrentMonth;
606
607
  return;
607
608
  }
608
609
  case 'y': {
609
- localDateSetting.value = DateSetting.CurrentYear;
610
+ innerDateSetting.value = DateSetting.CurrentYear;
610
611
  return;
611
612
  }
612
613
  default: {
613
- localDateSetting.value = DateSetting.Expression;
614
+ innerDateSetting.value = DateSetting.Expression;
614
615
  return;
615
616
  }
616
617
  }
@@ -618,24 +619,29 @@ export default defineComponent({
618
619
  }
619
620
 
620
621
  if (parseForPicker(props.endDate) != null && parseForPicker(props.startDate) != null) {
621
- localDateSetting.value = DateSetting.Pick;
622
- localDateValue.value = 1;
622
+ innerDateSetting.value = DateSetting.Pick;
623
+ innerDateValue.value = 1;
623
624
  return;
624
625
  }
625
626
 
626
- localDateSetting.value = DateSetting.Expression;
627
- localDateValue.value = 1;
627
+ innerDateSetting.value = DateSetting.Expression;
628
+ innerDateValue.value = 1;
628
629
  };
629
630
 
630
- onMounted(() => {
631
- reset();
632
- });
631
+ watch([() => props.startDate, () => props.endDate], () => {
632
+ if (
633
+ innerStartDate.value !== props.startDate ||
634
+ innerEndDate.value !== props.endDate
635
+ ) {
636
+ reset();
637
+ }
638
+ }, { immediate: true });
633
639
 
634
640
  return {
635
- localDateSetting,
636
- localDateValue,
637
- localStartDate,
638
- localEndDate,
641
+ innerDateSetting,
642
+ innerDateValue,
643
+ innerStartDate,
644
+ innerEndDate,
639
645
  pastSettings,
640
646
  DateSetting,
641
647
  NumberRules,
@@ -643,10 +649,10 @@ export default defineComponent({
643
649
  TextRules,
644
650
  messages,
645
651
  valid,
646
- localDateSettingChange,
647
- localDateValueChange,
648
- localStartDateChange,
649
- localEndDateChange,
652
+ innerDateSettingChange,
653
+ innerDateValueChange,
654
+ innerStartDateChange,
655
+ innerEndDateChange,
650
656
  parseForPicker,
651
657
  onPickDates
652
658
  };