@dative-gpi/foundation-shared-components 1.0.70 → 1.0.71-groupings-2

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 (296) hide show
  1. package/assets/images/map/snow.png +0 -0
  2. package/components/FSAccordionPanel.vue +40 -21
  3. package/components/FSBreadcrumbs.vue +21 -12
  4. package/components/FSButton.vue +11 -9
  5. package/components/FSCalendar.vue +50 -12
  6. package/components/FSCalendarTwin.vue +95 -43
  7. package/components/FSCard.vue +61 -9
  8. package/components/FSCardPlaceholder.vue +8 -5
  9. package/components/FSCheckbox.vue +5 -4
  10. package/components/FSChip.vue +73 -45
  11. package/components/FSChipGroup.vue +69 -0
  12. package/components/FSClickable.vue +11 -9
  13. package/components/FSClock.vue +30 -12
  14. package/components/FSCol.vue +11 -5
  15. package/components/FSDialog.vue +2 -1
  16. package/components/FSDialogContent.vue +12 -11
  17. package/components/FSDialogForm.vue +22 -2
  18. package/components/FSDialogFormBody.vue +50 -31
  19. package/components/FSDialogMenu.vue +17 -8
  20. package/components/FSDialogMultiFormBody.vue +23 -13
  21. package/components/FSDialogRemove.vue +7 -8
  22. package/components/FSDialogSubmit.vue +20 -11
  23. package/components/FSEditImageUI.vue +13 -5
  24. package/components/FSFadeOut.vue +53 -21
  25. package/components/FSForm.vue +10 -8
  26. package/components/FSGrid.vue +0 -1
  27. package/components/FSIcon.vue +2 -2
  28. package/components/FSIconCard.vue +68 -12
  29. package/components/FSInformationsMenu.vue +142 -0
  30. package/components/FSInstantPicker.vue +268 -0
  31. package/components/FSLink.vue +25 -9
  32. package/components/FSLoader.vue +28 -10
  33. package/components/FSMenu.vue +47 -0
  34. package/components/FSOptionGroup.vue +8 -8
  35. package/components/FSOptionItem.vue +4 -4
  36. package/components/FSOptionsMenu.vue +165 -0
  37. package/components/FSPagination.vue +1 -1
  38. package/components/FSPlayButtons.vue +72 -0
  39. package/components/FSProgressBar.vue +94 -0
  40. package/components/FSRadio.vue +5 -4
  41. package/components/FSRadioGroup.vue +3 -3
  42. package/components/FSRangePicker.vue +275 -0
  43. package/components/FSRangeSlider.vue +84 -0
  44. package/components/FSRouterLink.vue +42 -0
  45. package/components/FSSlideGroup.vue +9 -7
  46. package/components/FSSlider.vue +44 -79
  47. package/components/FSSpan.vue +22 -8
  48. package/components/FSSwitch.vue +44 -48
  49. package/components/FSTab.vue +15 -13
  50. package/components/FSTabs.vue +5 -2
  51. package/components/FSTag.vue +3 -3
  52. package/components/FSTagGroup.vue +6 -4
  53. package/components/FSText.vue +21 -8
  54. package/components/FSToggleSet.vue +7 -7
  55. package/components/FSTreeView.vue +107 -0
  56. package/components/FSWindow.vue +122 -5
  57. package/components/agenda/FSAgenda.vue +26 -7
  58. package/components/agenda/FSAgendaDialogCalendar.vue +2 -2
  59. package/components/agenda/FSAgendaHeader.vue +35 -10
  60. package/components/agenda/FSAgendaHorizontalEvent.vue +18 -6
  61. package/components/agenda/FSAgendaHoursRow.vue +48 -8
  62. package/components/agenda/FSAgendaVerticalEvent.vue +1 -1
  63. package/components/agenda/FSDayAgenda.vue +0 -1
  64. package/components/agenda/FSMonthAgenda.vue +1 -6
  65. package/components/agenda/FSSelectAgendaMode.vue +2 -2
  66. package/components/agenda/FSWeekAgenda.vue +5 -10
  67. package/components/autocompletes/FSAutoCompleteAddress.vue +25 -20
  68. package/components/autocompletes/FSAutocompleteLanguage.vue +7 -1
  69. package/components/autocompletes/FSAutocompleteTimeZone.vue +7 -1
  70. package/components/buttons/FSButtonAdd.vue +1 -1
  71. package/components/buttons/FSButtonAddLabel.vue +1 -1
  72. package/components/buttons/FSButtonCancel.vue +1 -1
  73. package/components/buttons/FSButtonCancelLabel.vue +1 -1
  74. package/components/buttons/FSButtonCheckbox.vue +4 -4
  75. package/components/buttons/FSButtonCopy.vue +1 -1
  76. package/components/buttons/FSButtonCopyLabel.vue +1 -1
  77. package/components/buttons/FSButtonDuplicate.vue +1 -1
  78. package/components/buttons/FSButtonDuplicateLabel.vue +1 -1
  79. package/components/buttons/FSButtonEdit.vue +1 -1
  80. package/components/buttons/FSButtonEditLabel.vue +1 -1
  81. package/components/buttons/FSButtonFile.vue +1 -1
  82. package/components/buttons/FSButtonFileLabel.vue +1 -1
  83. package/components/buttons/FSButtonNext.vue +1 -1
  84. package/components/buttons/FSButtonNextLabel.vue +1 -1
  85. package/components/buttons/FSButtonPrevious.vue +1 -1
  86. package/components/buttons/FSButtonPreviousLabel.vue +1 -1
  87. package/components/buttons/FSButtonRedo.vue +1 -1
  88. package/components/buttons/FSButtonRedoLabel.vue +1 -1
  89. package/components/buttons/FSButtonRemove.vue +1 -1
  90. package/components/buttons/FSButtonRemoveLabel.vue +1 -1
  91. package/components/buttons/FSButtonSave.vue +1 -1
  92. package/components/buttons/FSButtonSaveLabel.vue +1 -1
  93. package/components/buttons/FSButtonSearch.vue +1 -1
  94. package/components/buttons/FSButtonSearchLabel.vue +1 -1
  95. package/components/buttons/FSButtonUndo.vue +1 -1
  96. package/components/buttons/FSButtonUndoLabel.vue +1 -1
  97. package/components/buttons/FSButtonUpdate.vue +1 -1
  98. package/components/buttons/FSButtonUpdateLabel.vue +1 -1
  99. package/components/buttons/FSButtonValidate.vue +1 -1
  100. package/components/buttons/FSButtonValidateLabel.vue +1 -1
  101. package/components/calendar/FSSimpleCalendar.vue +145 -0
  102. package/components/calendar/FSSimpleCalendarHeader.vue +60 -0
  103. package/components/calendar/FSSimpleMonthSelector.vue +138 -0
  104. package/components/carousels/FSCarousel.vue +23 -0
  105. package/components/carousels/FSCarouselItem.vue +14 -0
  106. package/components/deviceOrganisations/FSConnectivity.vue +5 -3
  107. package/components/deviceOrganisations/FSStatus.vue +5 -3
  108. package/components/deviceOrganisations/FSStatusCard.vue +7 -9
  109. package/components/deviceOrganisations/FSStatusRichCard.vue +171 -0
  110. package/components/deviceOrganisations/FSWorstAlert.vue +24 -36
  111. package/components/deviceOrganisations/FSWorstAlertCard.vue +8 -47
  112. package/components/fields/FSAutocompleteField.vue +85 -82
  113. package/components/fields/FSAutocompleteTag.vue +1 -1
  114. package/components/fields/FSBaseField.vue +42 -25
  115. package/components/fields/FSClosableSearchField.vue +83 -0
  116. package/components/fields/FSColorField.vue +12 -10
  117. package/components/fields/FSCommentField.vue +28 -16
  118. package/components/fields/FSDateField.vue +13 -10
  119. package/components/fields/FSDateRangeField.vue +6 -5
  120. package/components/fields/FSDateTimeField.vue +14 -11
  121. package/components/fields/FSDateTimeRangeDialog.vue +160 -0
  122. package/components/fields/FSDateTimeRangeField.vue +23 -115
  123. package/components/fields/FSEntityFieldUI.vue +19 -16
  124. package/components/fields/FSGradientField.vue +5 -5
  125. package/components/fields/FSIconField.vue +16 -9
  126. package/components/fields/FSMapAddressField.vue +187 -0
  127. package/components/fields/FSNumberField.vue +8 -4
  128. package/components/fields/FSPasswordField.vue +7 -7
  129. package/components/fields/FSPoliciesValidationField.vue +101 -0
  130. package/components/fields/FSRichTextField.vue +78 -58
  131. package/components/fields/FSSearchField.vue +9 -115
  132. package/components/fields/FSSelectField.vue +69 -71
  133. package/components/fields/FSTagField.vue +9 -9
  134. package/components/fields/FSTermField.vue +69 -46
  135. package/components/fields/FSTextArea.vue +17 -11
  136. package/components/fields/FSTextField.vue +15 -10
  137. package/components/fields/FSTimeField.vue +14 -10
  138. package/components/fields/FSTimeRangeField.vue +117 -187
  139. package/components/fields/FSTimeStepField.vue +5 -5
  140. package/components/fields/FSTranslateField.vue +10 -10
  141. package/components/fields/FSTranslateRichTextField.vue +41 -20
  142. package/components/fields/FSTranslateTextArea.vue +10 -10
  143. package/components/fields/FSTreeViewField.vue +21 -19
  144. package/components/fields/periodicField/FSPeriodicDailyField.vue +7 -7
  145. package/components/fields/periodicField/FSPeriodicField.vue +15 -15
  146. package/components/fields/periodicField/FSPeriodicMonthlyField.vue +16 -16
  147. package/components/fields/periodicField/FSPeriodicWeeklyField.vue +28 -18
  148. package/components/fields/periodicField/FSPeriodicYearlyField.vue +12 -12
  149. package/components/lists/FSDataIteratorItem.vue +23 -67
  150. package/components/lists/FSDataTableUI.vue +194 -119
  151. package/components/lists/FSFilterButton.vue +14 -16
  152. package/components/lists/FSHeaderButton.vue +11 -9
  153. package/components/lists/FSHiddenButton.vue +9 -9
  154. package/components/lists/FSLoadDataTable.vue +10 -7
  155. package/components/lists/FSSimpleList.vue +95 -88
  156. package/components/lists/FSSimpleListItem.vue +131 -0
  157. package/components/map/FSMap.vue +144 -158
  158. package/components/map/FSMapFeatureGroup.vue +7 -1
  159. package/components/map/FSMapLayerButton.vue +3 -3
  160. package/components/map/FSMapMarker.vue +103 -42
  161. package/components/map/FSMapMarkerClusterGroup.vue +32 -7
  162. package/components/map/FSMapOverlay.vue +44 -24
  163. package/components/map/FSMapPolygon.vue +16 -4
  164. package/components/map/FSMapTileLayer.vue +26 -9
  165. package/components/map/layers.ts +0 -0
  166. package/components/selects/FSSelectAutoRefresh.vue +8 -8
  167. package/components/selects/FSSelectDashboardVariableType.vue +4 -3
  168. package/components/selects/FSSelectDateSetting.vue +2 -2
  169. package/components/selects/FSSelectDays.vue +8 -8
  170. package/components/selects/FSSelectListMode.vue +2 -2
  171. package/components/selects/FSSelectMapLayer.vue +68 -0
  172. package/components/selects/FSSelectMonths.vue +13 -13
  173. package/components/selects/chartSelectors/FSAggregationSelector.vue +52 -0
  174. package/components/selects/chartSelectors/FSAxisTypeSelector.vue +49 -0
  175. package/components/selects/chartSelectors/FSDisplayAsSelector.vue +53 -0
  176. package/components/selects/chartSelectors/FSFilterTypeSelector.vue +54 -0
  177. package/components/selects/chartSelectors/FSHeatmapRuleSelector.vue +54 -0
  178. package/components/selects/chartSelectors/FSOperationOnSelector.vue +53 -0
  179. package/components/selects/chartSelectors/FSPlanningTypeSelector.vue +53 -0
  180. package/components/selects/chartSelectors/FSSelectEntityType.vue +59 -0
  181. package/components/selects/chartSelectors/FSSerieTypeSelector.vue +53 -0
  182. package/components/tiles/FSAlertTileUI.vue +90 -0
  183. package/components/tiles/FSChartTileUI.vue +61 -52
  184. package/components/tiles/FSCommentTileUI.vue +38 -13
  185. package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +14 -2
  186. package/components/tiles/FSDashboardShallowTileUI.vue +14 -2
  187. package/components/tiles/FSDeviceOrganisationTileUI.vue +0 -6
  188. package/components/tiles/FSEntityCountBadge.vue +83 -0
  189. package/components/tiles/FSFolderTileUI.vue +38 -4
  190. package/components/tiles/FSGroupTileUI.vue +32 -136
  191. package/components/tiles/FSGroupingTileUI.vue +52 -0
  192. package/components/tiles/FSLoadTile.vue +16 -10
  193. package/components/tiles/FSLocationTileUI.vue +50 -80
  194. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -6
  195. package/components/tiles/FSSimpleTileUI.vue +32 -27
  196. package/components/tiles/FSTile.vue +46 -39
  197. package/components/tiles/FSUserOrganisationTileUI.vue +1 -7
  198. package/components/tiles/FSUserTileUI.vue +119 -0
  199. package/components/toggleSets/FSToggleSetPosition.vue +1 -1
  200. package/components/views/FSBaseView.vue +64 -0
  201. package/components/views/FSEntityView.vue +12 -146
  202. package/components/views/FSSimpleView.vue +29 -0
  203. package/components/views/desktop/FSBaseDefaultDesktopView.vue +135 -0
  204. package/components/views/desktop/FSBaseDesktopView.vue +53 -0
  205. package/components/views/desktop/FSBaseEntityDesktopView.vue +211 -0
  206. package/components/views/mobile/FSBaseDefaultMobileView.vue +133 -0
  207. package/components/views/mobile/FSBaseEntityMobileView.vue +206 -0
  208. package/components/views/mobile/FSBaseMobileView.vue +53 -0
  209. package/composables/index.ts +1 -1
  210. package/composables/useAddress.ts +40 -8
  211. package/composables/useBreakpoints.ts +40 -4
  212. package/composables/useColors.ts +16 -7
  213. package/composables/useMapLayers.ts +69 -0
  214. package/composables/useSlots.ts +2 -1
  215. package/models/colors.ts +2 -1
  216. package/models/deviceAlerts.ts +1 -0
  217. package/models/index.ts +0 -1
  218. package/models/map.ts +12 -10
  219. package/models/rules.ts +5 -2
  220. package/models/tables.ts +2 -1
  221. package/models/variableNode.ts +8 -5
  222. package/package.json +5 -5
  223. package/styles/components/fs_agenda.scss +4 -0
  224. package/styles/components/fs_agenda_event.scss +1 -1
  225. package/styles/components/fs_agenda_hours_row.scss +0 -8
  226. package/styles/components/fs_autocomplete_field.scss +0 -13
  227. package/styles/components/fs_breadcrumbs.scss +18 -36
  228. package/styles/components/fs_button.scss +7 -5
  229. package/styles/components/fs_calendar.scss +1 -0
  230. package/styles/components/fs_card.scss +9 -0
  231. package/styles/components/fs_chip.scss +13 -7
  232. package/styles/components/fs_clickable.scss +16 -23
  233. package/styles/components/fs_clock.scss +0 -10
  234. package/styles/components/fs_col.scss +1 -1
  235. package/styles/components/fs_color_field.scss +0 -4
  236. package/styles/components/fs_data_table.scss +6 -9
  237. package/styles/components/fs_dialog.scss +4 -10
  238. package/styles/components/fs_dialog_menu.scss +4 -2
  239. package/styles/components/fs_draggable.scss +0 -5
  240. package/styles/components/fs_fade_out.scss +10 -2
  241. package/styles/components/fs_filter_button.scss +1 -1
  242. package/styles/components/fs_hidden_button.scss +2 -7
  243. package/styles/components/fs_image_card.scss +6 -4
  244. package/styles/components/fs_magic_config_field.scss +1 -2
  245. package/styles/components/fs_map.scss +57 -17
  246. package/styles/components/fs_meta_field.scss +3 -5
  247. package/styles/components/fs_password_field.scss +4 -2
  248. package/styles/components/fs_progress_bar.scss +14 -0
  249. package/styles/components/fs_radio.scss +0 -11
  250. package/styles/components/fs_rich_text_field.scss +1 -10
  251. package/styles/components/fs_select_field.scss +4 -13
  252. package/styles/components/fs_slide_group.scss +3 -1
  253. package/styles/components/fs_slider.scss +0 -40
  254. package/styles/components/fs_span.scss +17 -5
  255. package/styles/components/fs_status_rich_card.scss +6 -0
  256. package/styles/components/fs_tabs.scss +18 -37
  257. package/styles/components/fs_tag.scss +8 -22
  258. package/styles/components/fs_text_area.scss +2 -21
  259. package/styles/components/fs_tile.scss +0 -19
  260. package/styles/components/fs_window.scss +3 -1
  261. package/styles/components/fs_wrap_group.scss +3 -0
  262. package/styles/components/index.scss +2 -6
  263. package/styles/globals/index.scss +1 -5
  264. package/styles/globals/overrides.scss +26 -44
  265. package/styles/globals/scrollbars.scss +8 -0
  266. package/styles/globals/text_fonts.scss +18 -66
  267. package/styles/globals/touchscreen.scss +2 -2
  268. package/tools/alertsTools.ts +94 -18
  269. package/tools/chartsTools.ts +156 -16
  270. package/tools/index.ts +1 -0
  271. package/tools/reportsTools.ts +38 -0
  272. package/tools/timeRangeTools.ts +99 -40
  273. package/utils/badge.ts +9 -5
  274. package/utils/index.ts +2 -0
  275. package/utils/leafletMarkers.ts +4 -4
  276. package/utils/operations.ts +108 -0
  277. package/utils/picker.ts +40 -0
  278. package/utils/sort.ts +2 -2
  279. package/utils/time.ts +13 -13
  280. package/components/fields/FSMagicConfigField.vue +0 -163
  281. package/components/fields/FSMagicField.vue +0 -193
  282. package/components/fields/FSTimeSlotField.vue +0 -250
  283. package/components/views/FSEntityHeader.vue +0 -343
  284. package/components/views/FSListHeader.vue +0 -83
  285. package/components/views/FSListView.vue +0 -83
  286. package/components/views/FSSkeletonView.vue +0 -100
  287. package/composables/useMagicFieldProvider.ts +0 -23
  288. package/models/magicFields.ts +0 -10
  289. package/styles/components/fs_data_iterator_item.scss +0 -33
  290. package/styles/components/fs_icon_field.scss +0 -12
  291. package/styles/components/fs_search_field.scss +0 -3
  292. package/styles/components/fs_tag_field.scss +0 -8
  293. package/styles/components/fs_time_field.scss +0 -12
  294. package/styles/components/fs_timeslot_field.scss +0 -12
  295. package/styles/globals/breakpoints.scss +0 -20
  296. package/styles/globals/fixes.scss +0 -5
@@ -3,9 +3,10 @@
3
3
  :description="$props.description"
4
4
  :hideHeader="$props.hideHeader"
5
5
  :required="$props.required"
6
- :editable="$props.editable"
6
+ :disabled="$props.disabled"
7
7
  :label="$props.label"
8
8
  :messages="messages"
9
+ :maxWidth="$props.maxWidth"
9
10
  >
10
11
  <FSRow>
11
12
  <FSRow
@@ -13,22 +14,19 @@
13
14
  >
14
15
  <FSSelectField
15
16
  :validationValue="$props.modelValue"
16
- :editable="$props.editable"
17
+ :disabled="$props.disabled"
17
18
  :validateOn="validateOn"
18
19
  :rules="$props.rules"
19
- :items="daysObject"
20
+ :items="daysItems"
20
21
  :hideHeader="true"
21
22
  :clearable="false"
22
- :style="style"
23
23
  :modelValue="realTime?.startDay ?? 0"
24
24
  @update:modelValue="onChangeDayStart"
25
25
  />
26
26
  <FSClock
27
- class="fs-time-slot-field-number"
28
- :editable="$props.editable"
27
+ :disabled="$props.disabled"
29
28
  :color="ColorEnum.Light"
30
29
  :slider="false"
31
- :style="style"
32
30
  :modelValue="startTime"
33
31
  @update:modelValue="onChangeHourStart"
34
32
  />
@@ -37,42 +35,50 @@
37
35
  :wrap="false"
38
36
  >
39
37
  <FSSelectField
40
- class="fs-time-slot-field-select"
41
- :editable="$props.editable"
42
- :items="daysObject"
38
+ :disabled="$props.disabled"
39
+ :items="daysItems"
43
40
  :hideHeader="true"
44
41
  :clearable="false"
45
- :style="style"
46
42
  :modelValue="realTime?.endDay ?? 0"
47
43
  @update:modelValue="onChangeDayEnd"
48
44
  />
49
45
  <FSClock
50
- class="fs-time-slot-field-number"
51
- :editable="$props.editable"
46
+ :disabled="$props.disabled"
52
47
  :color="ColorEnum.Light"
53
48
  :slider="false"
54
- :style="style"
55
49
  :modelValue="endTime"
56
50
  @update:modelValue="onChangeHourEnd"
57
51
  />
58
52
  </FSRow>
53
+ <FSSelectField
54
+ v-if="$props.showVariant"
55
+ width="hug"
56
+ :label="$tr('ui.common.type', 'Type')"
57
+ :items="dateTypeItems"
58
+ :hideHeader="true"
59
+ :clearable="false"
60
+ :modelValue="modelValue?.variant ?? DateType.Local"
61
+ @update:modelValue="onUpdateVariant"
62
+ />
59
63
  </FSRow>
60
64
  </FSBaseField>
61
65
  </template>
62
66
 
63
67
  <script lang="ts">
64
- import { computed, defineComponent, type PropType, type StyleValue } from "vue";
68
+ import { computed, defineComponent, type PropType } from "vue";
65
69
 
66
- import { useColors, useRules } from "@dative-gpi/foundation-shared-components/composables";
70
+ import { useTranslations as useTranslationProvider } from "@dative-gpi/bones-ui/composables";
71
+ import { useRules } from "@dative-gpi/foundation-shared-components/composables";
67
72
  import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
68
- import { Days } from "@dative-gpi/foundation-shared-domain/enums";
73
+ import { DateType, Days } from "@dative-gpi/foundation-shared-domain/enums";
74
+ import { getEnumEntries } from "@dative-gpi/foundation-shared-domain/tools";
69
75
 
70
76
  import FSSelectField from "./FSSelectField.vue";
71
77
  import FSBaseField from "./FSBaseField.vue";
72
78
  import FSClock from "../FSClock.vue";
73
79
  import FSRow from "../FSRow.vue";
74
80
 
75
- import { applyOffset, type DateTimeRange } from "../../tools";
81
+ import { applyOffset, dayLabel, type DateTimeRange } from "../../tools";
76
82
 
77
83
  export default defineComponent({
78
84
  name: "FSTimeRangeField",
@@ -94,7 +100,7 @@ export default defineComponent({
94
100
  default: null
95
101
  },
96
102
  modelValue: {
97
- type: Object as PropType<DateTimeRange | null>,
103
+ type: Object as PropType<DateTimeRange>,
98
104
  required: true,
99
105
  default: null
100
106
  },
@@ -118,55 +124,49 @@ export default defineComponent({
118
124
  required: false,
119
125
  default: null
120
126
  },
121
- editable: {
127
+ disabled: {
122
128
  type: Boolean,
123
129
  required: false,
124
- default: true
130
+ default: false
131
+ },
132
+ showVariant: {
133
+ type: Boolean,
134
+ required: false,
135
+ default: false
136
+ },
137
+ maxWidth: {
138
+ type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
139
+ required: false,
140
+ default: null
125
141
  }
126
142
  },
127
143
  emits: ["update:modelValue"],
128
144
  setup(props, { emit }) {
145
+ const { $tr } = useTranslationProvider();
129
146
  const { validateOn, getMessages } = useRules();
130
- const { getColors } = useColors();
131
147
 
132
- const errors = getColors(ColorEnum.Error);
133
- const lights = getColors(ColorEnum.Light);
134
- const darks = getColors(ColorEnum.Dark);
135
-
136
- const daysObject: { id: number; label: string }[] = Object.keys(Days).reduce((acc, key) => {
137
- if (isNaN(Number(key))) {
138
- acc.push({
139
- id: Days[key],
140
- label: key
141
- });
148
+ const dateTypeItems = [
149
+ {
150
+ id: DateType.Local,
151
+ label: $tr('ui.common.local', 'Local')
152
+ },
153
+ {
154
+ id: DateType.UTC,
155
+ label: $tr('ui.common.utc', 'UTC')
142
156
  }
143
- return acc;
144
- }, [] as { id: number, label: string }[]);
157
+ ];
145
158
 
146
- const style = computed((): StyleValue => {
147
- if (!props.editable) {
159
+ const daysItems = computed(()=>{
160
+ return getEnumEntries(Days).map((f)=>{
148
161
  return {
149
- "--fs-time-slot-field-cursor" : "default",
150
- "--fs-time-slot-field-border-color" : lights.base,
151
- "--fs-time-slot-field-color" : lights.dark,
152
- "--fs-time-slot-field-active-border-color": lights.base
153
- };
154
- }
155
- return {
156
- "--fs-time-slot-field-cursor" : "text",
157
- "--fs-time-slot-field-border-color" : lights.dark,
158
- "--fs-time-slot-field-color" : darks.base,
159
- "--fs-time-slot-field-active-border-color": darks.dark,
160
- "--fs-time-slot-field-error-color" : errors.base,
161
- "--fs-time-slot-field-error-border-color" : errors.base
162
- };
162
+ id: f.value as number,
163
+ label: dayLabel(f.value)
164
+ }
165
+ })
163
166
  });
164
167
 
165
168
  const realTime = computed(() => {
166
- if (props.modelValue) {
167
- return applyOffset(props.modelValue, false);
168
- }
169
- return null;
169
+ return applyOffset(props.modelValue, false);
170
170
  });
171
171
 
172
172
  const startTime = computed((): number => {
@@ -186,152 +186,76 @@ export default defineComponent({
186
186
  const messages = computed((): string[] => props.messages ?? getMessages(props.modelValue, props.rules));
187
187
 
188
188
  const onChangeDayStart = (value: number) => {
189
- if (value === 7) {
190
- if (props.modelValue) {
191
- emit("update:modelValue",
192
- {
193
- startDay: 7,
194
- startHour: props.modelValue.startHour,
195
- startMinute: props.modelValue.startMinute,
196
- endDay: 7,
197
- endHour: props.modelValue.endHour,
198
- endMinute: props.modelValue.endMinute
199
- }
200
- );
201
- return;
202
- }
189
+ if (value === Days.AllDays) {
203
190
  emit("update:modelValue",
204
191
  {
205
- startDay: 7,
206
- startHour: 0,
207
- startMinute: 0,
208
- endDay: 7,
209
- endHour: 0,
210
- endMinute: 0
192
+ startDay: value,
193
+ startHour: props.modelValue.startHour,
194
+ startMinute: props.modelValue.startMinute,
195
+ endDay: value,
196
+ endHour: props.modelValue.endHour,
197
+ endMinute: props.modelValue.endMinute,
198
+ variant: props.modelValue.variant
211
199
  }
212
200
  );
213
- return;
214
201
  }
215
- if (props.modelValue) {
216
- if (props.modelValue.endDay === 7) {
217
- emit("update:modelValue",
218
- {
219
- startDay: value,
220
- startHour: props.modelValue.startHour,
221
- startMinute: props.modelValue.startMinute,
222
- endDay: value,
223
- endHour: props.modelValue.endHour,
224
- endMinute: props.modelValue.endMinute
225
- }
226
- );
227
- return;
228
- }
202
+ else {
229
203
  const t = applyOffset({
230
204
  startDay: value,
231
- startHour: props.modelValue.startHour,
232
- startMinute: props.modelValue.startMinute,
233
- endDay: props.modelValue.endDay,
234
- endHour: props.modelValue.endHour,
235
- endMinute: props.modelValue.endMinute
236
- }, true);
237
- emit("update:modelValue", t);
238
- return;
205
+ startHour: realTime.value.startHour,
206
+ startMinute: realTime.value.startMinute,
207
+ endDay: props.modelValue.endDay == Days.AllDays ? value : realTime.value.endDay,
208
+ endHour: realTime.value.endHour,
209
+ endMinute: realTime.value.endMinute,
210
+ variant: realTime.value.variant
211
+ }, true);
212
+ emit("update:modelValue",t);
239
213
  }
240
- emit("update:modelValue",{
241
- startDay: value,
242
- startHour: 0,
243
- startMinute: 0,
244
- endDay: value,
245
- endHour: 0,
246
- endMinute: 0
247
- });
248
214
  };
249
215
 
250
216
 
251
217
  const onChangeHourStart = (value: number) => {
252
218
  const innerHours = value ? Math.floor(value / (60 * 60 * 1000)) : 0;
253
219
  const innerMinutes = value ? Math.floor((value % (60 * 60 * 1000)) / (60 * 1000)) : 0;
254
- if (realTime.value) {
255
- const t = {
256
- startDay: realTime.value.startDay,
257
- startHour: innerHours,
258
- startMinute: innerMinutes,
259
- endDay: realTime.value.endDay,
260
- endHour: realTime.value.endHour,
261
- endMinute: realTime.value.endMinute
262
- };
263
- const newTime = applyOffset(t, true);
264
- emit("update:modelValue", newTime);
265
- return;
266
- }
267
- emit("update:modelValue", {
268
- startDay: 0,
220
+ const t = {
221
+ startDay: realTime.value.startDay,
269
222
  startHour: innerHours,
270
223
  startMinute: innerMinutes,
271
- endDay: 0,
272
- endHour: 0,
273
- endMinute: 0
274
- });
224
+ endDay: realTime.value.endDay,
225
+ endHour: realTime.value.endHour,
226
+ endMinute: realTime.value.endMinute,
227
+ variant: realTime.value.variant
228
+ };
229
+ const newTime = applyOffset(t, true);
230
+ emit("update:modelValue", newTime);
275
231
  }
276
232
 
277
233
  const onChangeDayEnd = (value: number) => {
278
- if (value === 7) {
279
- if (props.modelValue) {
280
- emit("update:modelValue",
281
- {
282
- startDay: 7,
283
- startHour: props.modelValue.startHour,
284
- startMinute: props.modelValue.startMinute,
285
- endDay: 7,
286
- endHour: props.modelValue.endHour,
287
- endMinute: props.modelValue.endMinute
288
- }
289
- );
290
- return;
291
- }
292
- emit("update:modelValue",
293
- {
294
- startDay: 7,
295
- startHour: 0,
296
- startMinute: 0,
297
- endDay: 7,
298
- endHour: 0,
299
- endMinute: 0
300
- }
301
- );
302
- return;
303
- }
304
- if (props.modelValue) {
305
- if (props.modelValue.startDay === 7) {
306
- emit("update:modelValue",{
307
- startDay: value,
308
- startHour: props.modelValue.startHour,
309
- startMinute: props.modelValue.startMinute,
310
- endDay: value,
311
- endHour: props.modelValue.endHour,
312
- endMinute: props.modelValue.endMinute
313
- });
314
- return;
315
- }
316
- const t = applyOffset({
317
- startDay: props.modelValue.startDay,
234
+
235
+ if (value === Days.AllDays) {
236
+ emit("update:modelValue",{
237
+ startDay: value,
318
238
  startHour: props.modelValue.startHour,
319
239
  startMinute: props.modelValue.startMinute,
320
240
  endDay: value,
321
241
  endHour: props.modelValue.endHour,
322
- endMinute: props.modelValue.endMinute
242
+ endMinute: props.modelValue.endMinute,
243
+ variant: props.modelValue.variant
244
+ });
245
+ return;
246
+ }
247
+ else {
248
+ const t = applyOffset({
249
+ startDay: props.modelValue.startDay == Days.AllDays ? value : realTime.value.startDay,
250
+ startHour: realTime.value.startHour,
251
+ startMinute: realTime.value.startMinute,
252
+ endDay: value,
253
+ endHour: realTime.value.endHour,
254
+ endMinute: realTime.value.endMinute,
255
+ variant: realTime.value.variant
323
256
  }, true);
324
257
  emit("update:modelValue", t);
325
- return;
326
258
  }
327
- emit("update:modelValue",{
328
- startDay: value,
329
- startHour: 0,
330
- startMinute: 0,
331
- endDay: value,
332
- endHour: 0,
333
- endMinute: 0
334
- });
335
259
  };
336
260
 
337
261
  const onChangeHourEnd = (value: number) => {
@@ -344,35 +268,41 @@ export default defineComponent({
344
268
  startMinute: realTime.value.startMinute,
345
269
  endDay: realTime.value.endDay,
346
270
  endHour: innerHours,
347
- endMinute: innerMinutes
271
+ endMinute: innerMinutes,
272
+ variant: realTime.value.variant
348
273
  };
349
274
  const newTime = applyOffset(t, true);
350
-
351
275
  emit("update:modelValue", newTime);
352
- return;
353
276
  }
354
- emit("update:modelValue",{
355
- startDay: 0,
356
- startHour: 0,
357
- startMinute: 0,
358
- endDay: 0,
359
- endHour: innerHours,
360
- endMinute: innerMinutes
361
- });
362
277
  }
363
278
 
279
+ const onUpdateVariant = (value: DateType) => {
280
+ const t = applyOffset({
281
+ startDay: realTime.value.startDay,
282
+ startHour: realTime.value.startHour,
283
+ startMinute: realTime.value.startMinute,
284
+ endDay: realTime.value.endDay,
285
+ endHour: realTime.value.endHour,
286
+ endMinute: realTime.value.endMinute,
287
+ variant: value
288
+ }, true);
289
+ emit("update:modelValue", t );
290
+ };
291
+
364
292
  return {
365
- daysObject,
293
+ dateTypeItems,
366
294
  validateOn,
295
+ daysItems,
367
296
  ColorEnum,
368
297
  startTime,
369
298
  realTime,
370
299
  messages,
300
+ DateType,
371
301
  endTime,
372
- style,
373
302
  onChangeHourStart,
374
303
  onChangeDayStart,
375
304
  onChangeHourEnd,
305
+ onUpdateVariant,
376
306
  onChangeDayEnd
377
307
  };
378
308
  }
@@ -3,14 +3,14 @@
3
3
  :description="$props.description"
4
4
  :hideHeader="$props.hideHeader"
5
5
  :required="$props.required"
6
- :editable="$props.editable"
6
+ :disabled="$props.disabled"
7
7
  :label="$props.label"
8
8
  :messages="messages"
9
9
  >
10
10
  <FSRow>
11
11
  <FSNumberField
12
12
  :validationValue="$props.modelValue"
13
- :editable="$props.editable"
13
+ :disabled="$props.disabled"
14
14
  :validateOn="validateOn"
15
15
  :rules="$props.rules"
16
16
  :hideHeader="true"
@@ -31,7 +31,7 @@
31
31
  </FSNumberField>
32
32
  <FSSelectField
33
33
  class="fs-time-field-select"
34
- :editable="$props.editable"
34
+ :disabled="$props.disabled"
35
35
  :hideHeader="true"
36
36
  :clearable="false"
37
37
  :items="units"
@@ -113,10 +113,10 @@ export default defineComponent({
113
113
  required: false,
114
114
  default: null
115
115
  },
116
- editable: {
116
+ disabled: {
117
117
  type: Boolean,
118
118
  required: false,
119
- default: true
119
+ default: false
120
120
  }
121
121
  },
122
122
  emits: ["update:modelValue"],
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <FSTextField
3
- :editable="$props.editable"
3
+ :disabled="$props.disabled"
4
4
  :modelValue="$props.modelValue"
5
5
  @update:modelValue="$emit('update:modelValue', $event)"
6
6
  v-bind="$attrs"
@@ -31,7 +31,7 @@
31
31
  </template>
32
32
  </FSTextField>
33
33
  <FSDialogSubmit
34
- :title="$tr('ui.translate-field.title', 'Handle translations')"
34
+ :title="$tr('translate-field.title', 'Handle translations')"
35
35
  :submitButtonColor="$props.buttonColor"
36
36
  @click:submitButton="onSubmit"
37
37
  v-model="dialog"
@@ -43,8 +43,8 @@
43
43
  gap="32px"
44
44
  >
45
45
  <FSTextField
46
- :label="$tr('ui.translate-field.default-value', 'Default value')"
47
- :editable="false"
46
+ :label="$tr('ui.common.default-value', 'Default value')"
47
+ :disabled="true"
48
48
  :modelValue="$props.modelValue"
49
49
  />
50
50
  <FSCol
@@ -52,7 +52,7 @@
52
52
  >
53
53
  <FSTextField
54
54
  v-for="(language, index) in languages"
55
- :editable="$props.editable"
55
+ :disabled="$props.disabled"
56
56
  :key="index"
57
57
  :modelValue="getTranslation(language.code)"
58
58
  @update:modelValue="setTranslation(language.code, $event)"
@@ -69,7 +69,7 @@
69
69
  font="text-overline"
70
70
  :style="style"
71
71
  >
72
- {{ $tr("ui.translate-field.translate-in", "Translate in {0}", language.label) }}
72
+ {{ $tr("translate-field.translate-in", "Translate in {0}", language.label) }}
73
73
  </FSSpan>
74
74
  <FSIcon>
75
75
  {{ language.icon }}
@@ -149,10 +149,10 @@ export default defineComponent({
149
149
  required: false,
150
150
  default: ColorEnum.Primary
151
151
  },
152
- editable: {
152
+ disabled: {
153
153
  type: Boolean,
154
154
  required: false,
155
- default: true
155
+ default: false
156
156
  }
157
157
  },
158
158
  emits: ["update:modelValue", "update:translations"],
@@ -171,7 +171,7 @@ export default defineComponent({
171
171
  const darks = getColors(ColorEnum.Dark);
172
172
 
173
173
  const style = computed((): StyleValue => {
174
- if (!props.editable) {
174
+ if (props.disabled) {
175
175
  return {
176
176
  "--fs-translate-field-color": lights.dark
177
177
  };
@@ -214,7 +214,7 @@ export default defineComponent({
214
214
 
215
215
  const onSubmit = (): void => {
216
216
  dialog.value = false;
217
- if (props.editable) {
217
+ if (!props.disabled) {
218
218
  emit("update:translations", innerTranslations.value);
219
219
  }
220
220
  };