@dative-gpi/foundation-shared-components 1.0.57 → 1.0.58-groupings

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 (297) 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 +16 -16
  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/FSColorIcon.vue +23 -5
  16. package/components/FSDialog.vue +2 -1
  17. package/components/FSDialogContent.vue +12 -11
  18. package/components/FSDialogForm.vue +22 -2
  19. package/components/FSDialogFormBody.vue +50 -31
  20. package/components/FSDialogMenu.vue +17 -8
  21. package/components/FSDialogMultiFormBody.vue +23 -13
  22. package/components/FSDialogRemove.vue +7 -8
  23. package/components/FSDialogSubmit.vue +20 -11
  24. package/components/FSEditImage.vue +1 -1
  25. package/components/FSEditImageUI.vue +20 -10
  26. package/components/FSFadeOut.vue +53 -21
  27. package/components/FSForm.vue +10 -8
  28. package/components/FSGrid.vue +1 -1
  29. package/components/FSIcon.vue +4 -3
  30. package/components/FSIconCard.vue +68 -12
  31. package/components/FSImage.vue +9 -2
  32. package/components/FSImageUI.vue +8 -15
  33. package/components/FSInformationsMenu.vue +142 -0
  34. package/components/FSInstantPicker.vue +269 -0
  35. package/components/FSLink.vue +25 -9
  36. package/components/FSLoader.vue +28 -10
  37. package/components/FSMenu.vue +47 -0
  38. package/components/FSOptionGroup.vue +57 -9
  39. package/components/FSOptionItem.vue +4 -4
  40. package/components/FSPagination.vue +1 -1
  41. package/components/FSPlayButtons.vue +72 -0
  42. package/components/FSProgressBar.vue +94 -0
  43. package/components/FSRadio.vue +5 -4
  44. package/components/FSRadioGroup.vue +3 -3
  45. package/components/FSRouterLink.vue +42 -0
  46. package/components/FSSlideGroup.vue +19 -5
  47. package/components/FSSlider.vue +6 -5
  48. package/components/FSSpan.vue +12 -7
  49. package/components/FSSwitch.vue +47 -21
  50. package/components/FSTab.vue +15 -13
  51. package/components/FSTabs.vue +32 -7
  52. package/components/FSTag.vue +16 -5
  53. package/components/FSTagGroup.vue +4 -4
  54. package/components/FSText.vue +11 -7
  55. package/components/FSToggleSet.vue +7 -7
  56. package/components/FSWindow.vue +122 -5
  57. package/components/FSWrapGroup.vue +13 -1
  58. package/components/agenda/FSAgenda.vue +26 -7
  59. package/components/agenda/FSAgendaDialogCalendar.vue +2 -2
  60. package/components/agenda/FSAgendaHeader.vue +35 -10
  61. package/components/agenda/FSAgendaHorizontalEvent.vue +18 -6
  62. package/components/agenda/FSAgendaHoursRow.vue +48 -8
  63. package/components/agenda/FSAgendaVerticalEvent.vue +1 -1
  64. package/components/agenda/FSDayAgenda.vue +1 -2
  65. package/components/agenda/FSMonthAgenda.vue +3 -9
  66. package/components/agenda/FSSelectAgendaMode.vue +2 -2
  67. package/components/agenda/FSWeekAgenda.vue +7 -13
  68. package/components/autocompletes/FSAutoCompleteAddress.vue +25 -20
  69. package/components/autocompletes/FSAutocompleteLanguage.vue +7 -1
  70. package/components/autocompletes/FSAutocompleteTimeZone.vue +7 -1
  71. package/components/buttons/FSButtonAdd.vue +1 -1
  72. package/components/buttons/FSButtonAddLabel.vue +1 -1
  73. package/components/buttons/FSButtonCancel.vue +1 -1
  74. package/components/buttons/FSButtonCancelLabel.vue +1 -1
  75. package/components/buttons/FSButtonCheckbox.vue +4 -4
  76. package/components/buttons/FSButtonCopy.vue +1 -1
  77. package/components/buttons/FSButtonCopyLabel.vue +1 -1
  78. package/components/buttons/FSButtonDuplicate.vue +1 -1
  79. package/components/buttons/FSButtonDuplicateLabel.vue +1 -1
  80. package/components/buttons/FSButtonEdit.vue +1 -1
  81. package/components/buttons/FSButtonEditLabel.vue +1 -1
  82. package/components/buttons/FSButtonFile.vue +1 -1
  83. package/components/buttons/FSButtonFileLabel.vue +1 -1
  84. package/components/buttons/FSButtonNext.vue +1 -1
  85. package/components/buttons/FSButtonNextLabel.vue +1 -1
  86. package/components/buttons/FSButtonPrevious.vue +1 -1
  87. package/components/buttons/FSButtonPreviousLabel.vue +1 -1
  88. package/components/buttons/FSButtonRedo.vue +1 -1
  89. package/components/buttons/FSButtonRedoLabel.vue +1 -1
  90. package/components/buttons/FSButtonRemove.vue +1 -1
  91. package/components/buttons/FSButtonRemoveLabel.vue +1 -1
  92. package/components/buttons/FSButtonSave.vue +1 -1
  93. package/components/buttons/FSButtonSaveLabel.vue +1 -1
  94. package/components/buttons/FSButtonSearch.vue +1 -1
  95. package/components/buttons/FSButtonSearchLabel.vue +1 -1
  96. package/components/buttons/FSButtonUndo.vue +1 -1
  97. package/components/buttons/FSButtonUndoLabel.vue +1 -1
  98. package/components/buttons/FSButtonUpdate.vue +1 -1
  99. package/components/buttons/FSButtonUpdateLabel.vue +1 -1
  100. package/components/buttons/FSButtonValidate.vue +1 -1
  101. package/components/buttons/FSButtonValidateLabel.vue +1 -1
  102. package/components/calendar/FSSimpleCalendar.vue +145 -0
  103. package/components/calendar/FSSimpleCalendarHeader.vue +60 -0
  104. package/components/calendar/FSSimpleMonthSelector.vue +138 -0
  105. package/components/deviceOrganisations/FSConnectivity.vue +16 -4
  106. package/components/deviceOrganisations/FSConnectivityCard.vue +17 -45
  107. package/components/deviceOrganisations/FSStatus.vue +16 -4
  108. package/components/deviceOrganisations/FSStatusCard.vue +33 -59
  109. package/components/deviceOrganisations/FSStatusRichCard.vue +171 -0
  110. package/components/deviceOrganisations/FSStatusesCarousel.vue +1 -0
  111. package/components/deviceOrganisations/FSStatusesRow.vue +8 -2
  112. package/components/deviceOrganisations/FSWorstAlert.vue +37 -42
  113. package/components/deviceOrganisations/FSWorstAlertCard.vue +35 -84
  114. package/components/fields/FSAutocompleteField.vue +85 -82
  115. package/components/fields/FSAutocompleteTag.vue +1 -1
  116. package/components/fields/FSBaseField.vue +54 -30
  117. package/components/fields/FSClosableSearchField.vue +83 -0
  118. package/components/fields/FSColorField.vue +48 -44
  119. package/components/fields/FSCommentField.vue +28 -16
  120. package/components/fields/FSDateField.vue +13 -10
  121. package/components/fields/FSDateRangeField.vue +6 -5
  122. package/components/fields/FSDateTimeField.vue +14 -11
  123. package/components/fields/FSDateTimeRangeDialog.vue +160 -0
  124. package/components/fields/FSDateTimeRangeField.vue +23 -115
  125. package/components/fields/FSEntityFieldUI.vue +36 -19
  126. package/components/fields/FSGradientField.vue +5 -5
  127. package/components/fields/FSIconField.vue +16 -9
  128. package/components/fields/FSMagicConfigField.vue +15 -7
  129. package/components/fields/FSMagicField.vue +7 -2
  130. package/components/fields/FSNumberField.vue +9 -4
  131. package/components/fields/FSPasswordField.vue +7 -7
  132. package/components/fields/FSRichTextField.vue +78 -58
  133. package/components/fields/FSSearchField.vue +9 -115
  134. package/components/fields/FSSelectField.vue +69 -71
  135. package/components/fields/FSTagField.vue +10 -10
  136. package/components/fields/FSTermField.vue +72 -47
  137. package/components/fields/FSTextArea.vue +17 -11
  138. package/components/fields/FSTextField.vue +15 -10
  139. package/components/fields/FSTimeField.vue +14 -10
  140. package/components/fields/FSTimeRangeField.vue +310 -0
  141. package/components/fields/FSTimeStepField.vue +5 -5
  142. package/components/fields/FSTranslateField.vue +10 -10
  143. package/components/fields/FSTranslateRichTextField.vue +41 -20
  144. package/components/fields/FSTranslateTextArea.vue +10 -10
  145. package/components/fields/FSTreeViewField.vue +15 -13
  146. package/components/fields/periodicField/FSPeriodicDailyField.vue +7 -7
  147. package/components/fields/periodicField/FSPeriodicField.vue +15 -15
  148. package/components/fields/periodicField/FSPeriodicMonthlyField.vue +16 -16
  149. package/components/fields/periodicField/FSPeriodicWeeklyField.vue +28 -18
  150. package/components/fields/periodicField/FSPeriodicYearlyField.vue +12 -12
  151. package/components/lists/FSDataIteratorItem.vue +23 -67
  152. package/components/lists/FSDataTableUI.vue +220 -137
  153. package/components/lists/FSDraggable.vue +2 -2
  154. package/components/lists/FSFilterButton.vue +14 -16
  155. package/components/lists/FSHeaderButton.vue +11 -9
  156. package/components/lists/FSHiddenButton.vue +9 -9
  157. package/components/lists/FSLoadDataTable.vue +10 -7
  158. package/components/lists/FSSimpleList.vue +95 -82
  159. package/components/lists/FSSimpleListItem.vue +131 -0
  160. package/components/map/FSMap.vue +146 -158
  161. package/components/map/FSMapFeatureGroup.vue +7 -1
  162. package/components/map/FSMapLayerButton.vue +4 -3
  163. package/components/map/FSMapMarker.vue +70 -48
  164. package/components/map/FSMapMarkerClusterGroup.vue +32 -7
  165. package/components/map/FSMapOverlay.vue +44 -24
  166. package/components/map/FSMapPolygon.vue +16 -4
  167. package/components/map/FSMapTileLayer.vue +26 -9
  168. package/components/map/layers.ts +0 -0
  169. package/components/selects/FSSelectAutoRefresh.vue +8 -8
  170. package/components/selects/FSSelectDashboardVariableType.vue +4 -3
  171. package/components/selects/FSSelectDateSetting.vue +2 -2
  172. package/components/selects/FSSelectDays.vue +8 -8
  173. package/components/selects/FSSelectListMode.vue +2 -2
  174. package/components/selects/FSSelectMapLayer.vue +68 -0
  175. package/components/selects/FSSelectMonths.vue +13 -13
  176. package/components/selects/chartSelectors/FSAggregationSelector.vue +52 -0
  177. package/components/selects/chartSelectors/FSAxisTypeSelector.vue +49 -0
  178. package/components/selects/chartSelectors/FSDisplayAsSelector.vue +53 -0
  179. package/components/selects/chartSelectors/FSFilterTypeSelector.vue +54 -0
  180. package/components/selects/chartSelectors/FSHeatmapRuleSelector.vue +54 -0
  181. package/components/selects/chartSelectors/FSOperationOnSelector.vue +53 -0
  182. package/components/selects/chartSelectors/FSPlanningTypeSelector.vue +53 -0
  183. package/components/selects/chartSelectors/FSPlotPerSelector.vue +52 -0
  184. package/components/selects/chartSelectors/FSSelectEntityType.vue +59 -0
  185. package/components/selects/chartSelectors/FSSerieTypeSelector.vue +53 -0
  186. package/components/tiles/FSAlertTileUI.vue +90 -0
  187. package/components/tiles/FSChartTileUI.vue +61 -52
  188. package/components/tiles/FSCommentTileUI.vue +38 -13
  189. package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +14 -2
  190. package/components/tiles/FSDashboardShallowTileUI.vue +14 -2
  191. package/components/tiles/FSDeviceOrganisationTileUI.vue +6 -6
  192. package/components/tiles/FSGroupTileUI.vue +58 -110
  193. package/components/tiles/FSGroupingTileUI.vue +115 -0
  194. package/components/tiles/FSLoadTile.vue +16 -10
  195. package/components/tiles/FSLocationTileUI.vue +63 -55
  196. package/components/tiles/FSModelTileUI.vue +5 -46
  197. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -6
  198. package/components/tiles/FSSimpleTileUI.vue +34 -29
  199. package/components/tiles/FSTile.vue +46 -39
  200. package/components/tiles/FSUserOrganisationTileUI.vue +1 -7
  201. package/components/toggleSets/FSToggleSetPosition.vue +1 -1
  202. package/components/views/FSBaseView.vue +64 -0
  203. package/components/views/FSEntityView.vue +12 -140
  204. package/components/views/FSSimpleView.vue +29 -0
  205. package/components/views/desktop/FSBaseDefaultDesktopView.vue +135 -0
  206. package/components/views/desktop/FSBaseDesktopView.vue +53 -0
  207. package/components/views/desktop/FSBaseEntityDesktopView.vue +211 -0
  208. package/components/views/mobile/FSBaseDefaultMobileView.vue +133 -0
  209. package/components/views/mobile/FSBaseEntityMobileView.vue +206 -0
  210. package/components/views/mobile/FSBaseMobileView.vue +53 -0
  211. package/composables/index.ts +1 -0
  212. package/composables/useAddress.ts +40 -8
  213. package/composables/useBreakpoints.ts +40 -4
  214. package/composables/useColors.ts +16 -7
  215. package/composables/useMagicFieldProvider.ts +1 -0
  216. package/composables/useMapLayers.ts +62 -0
  217. package/composables/useSlots.ts +2 -1
  218. package/models/colors.ts +2 -1
  219. package/models/deviceAlerts.ts +1 -0
  220. package/models/magicFields.ts +1 -0
  221. package/models/map.ts +12 -10
  222. package/models/rules.ts +6 -3
  223. package/models/tables.ts +5 -2
  224. package/models/variableNode.ts +8 -5
  225. package/package.json +5 -5
  226. package/styles/components/fs_agenda.scss +4 -0
  227. package/styles/components/fs_agenda_event.scss +1 -1
  228. package/styles/components/fs_agenda_hours_row.scss +0 -8
  229. package/styles/components/fs_autocomplete_field.scss +0 -13
  230. package/styles/components/fs_breadcrumbs.scss +18 -36
  231. package/styles/components/fs_button.scss +7 -5
  232. package/styles/components/fs_calendar.scss +1 -0
  233. package/styles/components/fs_card.scss +9 -0
  234. package/styles/components/fs_chip.scss +13 -7
  235. package/styles/components/fs_clickable.scss +16 -23
  236. package/styles/components/fs_clock.scss +0 -10
  237. package/styles/components/fs_col.scss +1 -1
  238. package/styles/components/fs_color_field.scss +1 -4
  239. package/styles/components/fs_data_table.scss +6 -9
  240. package/styles/components/fs_dialog.scss +4 -10
  241. package/styles/components/fs_dialog_menu.scss +4 -2
  242. package/styles/components/fs_draggable.scss +0 -5
  243. package/styles/components/fs_edit_image.scss +8 -0
  244. package/styles/components/fs_fade_out.scss +10 -2
  245. package/styles/components/fs_filter_button.scss +1 -6
  246. package/styles/components/fs_hidden_button.scss +2 -7
  247. package/styles/components/fs_image_card.scss +6 -4
  248. package/styles/components/fs_magic_config_field.scss +1 -2
  249. package/styles/components/fs_map.scss +57 -17
  250. package/styles/components/fs_meta_field.scss +3 -5
  251. package/styles/components/fs_option_group.scss +15 -5
  252. package/styles/components/fs_password_field.scss +4 -2
  253. package/styles/components/fs_progress_bar.scss +14 -0
  254. package/styles/components/fs_radio.scss +0 -11
  255. package/styles/components/fs_rich_text_field.scss +1 -10
  256. package/styles/components/fs_select_field.scss +4 -13
  257. package/styles/components/fs_slide_group.scss +7 -0
  258. package/styles/components/fs_span.scss +13 -5
  259. package/styles/components/fs_status_rich_card.scss +6 -0
  260. package/styles/components/fs_switch.scss +1 -0
  261. package/styles/components/fs_tabs.scss +19 -34
  262. package/styles/components/fs_tag.scss +8 -22
  263. package/styles/components/fs_text_area.scss +2 -21
  264. package/styles/components/fs_tile.scss +0 -19
  265. package/styles/components/fs_window.scss +3 -1
  266. package/styles/components/fs_wrap_group.scss +7 -0
  267. package/styles/components/index.scss +2 -6
  268. package/styles/globals/index.scss +1 -5
  269. package/styles/globals/overrides.scss +28 -61
  270. package/styles/globals/scrollbars.scss +8 -0
  271. package/styles/globals/text_fonts.scss +18 -66
  272. package/styles/globals/touchscreen.scss +2 -2
  273. package/tools/alertsTools.ts +87 -12
  274. package/tools/chartsTools.ts +143 -16
  275. package/tools/index.ts +3 -1
  276. package/tools/reportsTools.ts +38 -0
  277. package/tools/timeRangeTools.ts +125 -0
  278. package/utils/badge.ts +9 -5
  279. package/utils/filter.ts +7 -4
  280. package/utils/index.ts +1 -0
  281. package/utils/leafletMarkers.ts +4 -4
  282. package/utils/operations.ts +108 -0
  283. package/utils/sort.ts +2 -2
  284. package/utils/time.ts +16 -16
  285. package/components/fields/FSTimeSlotField.vue +0 -250
  286. package/components/views/FSEntityHeader.vue +0 -350
  287. package/components/views/FSListHeader.vue +0 -83
  288. package/components/views/FSListView.vue +0 -83
  289. package/components/views/FSSkeletonView.vue +0 -100
  290. package/styles/components/fs_data_iterator_item.scss +0 -33
  291. package/styles/components/fs_icon_field.scss +0 -12
  292. package/styles/components/fs_search_field.scss +0 -3
  293. package/styles/components/fs_tag_field.scss +0 -8
  294. package/styles/components/fs_time_field.scss +0 -12
  295. package/styles/components/fs_timeslot_field.scss +0 -12
  296. package/styles/globals/breakpoints.scss +0 -20
  297. package/styles/globals/fixes.scss +0 -5
@@ -6,14 +6,14 @@
6
6
  gap="16px"
7
7
  >
8
8
  <FSRichTextField
9
- :editable="false"
10
- :label="$tr('ui.translateRichTextField.defaultValue', 'Default value')"
9
+ :disabled="true"
10
+ :label="$tr('ui.common.default-value', 'Default value')"
11
11
  :modelValue="$props.modelValue"
12
12
  v-bind="$attrs"
13
13
  />
14
14
  <FSRichTextField
15
15
  v-for="(language, index) in languages"
16
- :editable="$props.editable"
16
+ :disabled="$props.disabled"
17
17
  :key="index"
18
18
  :modelValue="getTranslation(language.code)"
19
19
  @update:modelValue="setTranslation(language.code, $event)"
@@ -30,9 +30,11 @@
30
30
  class="fs-translate-field-label"
31
31
  font="text-overline"
32
32
  >
33
- {{ $tr('ui.translateRichTextField.translateIn', 'Translate in {0}', language.label) }}
33
+ {{ $tr('translate-rich-text-field.translate-in', 'Translate in {0}', language.label) }}
34
34
  </FSSpan>
35
- <FSIcon>{{ language.icon }}</FSIcon>
35
+ <FSIcon>
36
+ {{ language.icon }}
37
+ </FSIcon>
36
38
  </FSRow>
37
39
  </template>
38
40
  </FSRichTextField>
@@ -40,25 +42,24 @@
40
42
  <FSRow
41
43
  :wrap="false"
42
44
  >
43
- <FSButton
45
+ <FSButtonCancelLabel
44
46
  prependIcon="mdi-cancel"
45
47
  width="100%"
46
- :label="$tr('ui.translateRichTextField.cancelButton.label', 'Cancel')"
47
48
  @click="onCancelTranslations"
48
49
  />
49
50
  <FSButton
50
- v-if="$props.editable"
51
+ v-if="!$props.disabled"
51
52
  prependIcon="mdi-check"
52
53
  color="primary"
53
54
  width="100%"
54
- :label="$tr('ui.translateRichTextField.validateButton.label', 'Validate translations')"
55
+ :label="$tr('translate-rich-text-field.validate', 'Validate translations')"
55
56
  @click="onSubmitTranslations"
56
57
  />
57
58
  </FSRow>
58
59
  </FSCol>
59
60
  <FSRichTextField
60
61
  v-else
61
- :editable="$props.editable"
62
+ :disabled="$props.disabled"
62
63
  :modelValue="$props.modelValue"
63
64
  @update:modelValue="$emit('update:modelValue', $event)"
64
65
  v-bind="$attrs"
@@ -70,7 +71,7 @@
70
71
  prependIcon="mdi-translate"
71
72
  color="primary"
72
73
  width="100%"
73
- :label="$tr('ui.translateRichTextField.translateButton.label', 'Manage translations')"
74
+ :label="$tr('translate-rich-text-field.manage-translations', 'Manage translations')"
74
75
  @click="() => $emit('update:translationsExpanded', true)"
75
76
  />
76
77
  </template>
@@ -78,12 +79,13 @@
78
79
  </template>
79
80
 
80
81
  <script lang="ts">
81
- import { defineComponent, type PropType, ref } from 'vue';
82
+ import { defineComponent, type PropType, ref, watch } from 'vue';
82
83
 
83
84
  import { useAppLanguages } from "@dative-gpi/foundation-shared-services/composables";
84
85
 
85
86
  import { emptyLexicalState } from '../../utils';
86
87
 
88
+ import FSButtonCancelLabel from '../buttons/FSButtonCancelLabel.vue';
87
89
  import FSRichTextField from './FSRichTextField.vue';
88
90
  import FSButton from '../FSButton.vue';
89
91
  import FSIcon from '../FSIcon.vue';
@@ -94,6 +96,7 @@ import FSRow from '../FSRow.vue';
94
96
  export default defineComponent({
95
97
  name: 'FSTranslateRichTextField',
96
98
  components: {
99
+ FSButtonCancelLabel,
97
100
  FSRichTextField,
98
101
  FSButton,
99
102
  FSIcon,
@@ -106,17 +109,20 @@ export default defineComponent({
106
109
  type: Boolean,
107
110
  default: false,
108
111
  },
109
- editable: {
112
+ disabled: {
110
113
  type: Boolean,
111
- default: true,
114
+ default: false,
112
115
  },
113
116
  modelValue: {
114
- type: String as PropType<string | null>,
117
+ type: [Object, String] as PropType<{ [key: string]: any } | string | null>,
115
118
  required: false,
116
119
  default: null
117
120
  },
118
121
  translations: {
119
- type: Array as PropType<{ languageCode: string; [key: string]: string }[]>,
122
+ type: Array as PropType<{
123
+ languageCode: string;
124
+ [key: string]: string | object | null;
125
+ }[]>,
120
126
  required: false,
121
127
  default: () => []
122
128
  },
@@ -130,9 +136,12 @@ export default defineComponent({
130
136
  setup(props, { emit }) {
131
137
  const { languages } = useAppLanguages();
132
138
 
133
- const innerTranslations = ref(props.translations);
139
+ const innerTranslations = ref<{
140
+ languageCode: string;
141
+ [key: string]: string | object | null;
142
+ }[]>([]);
134
143
 
135
- const getTranslation = (languageCode: string): string => {
144
+ const getTranslation = (languageCode: string): string | object => {
136
145
  if (!innerTranslations.value) {
137
146
  return emptyLexicalState;
138
147
  }
@@ -140,7 +149,7 @@ export default defineComponent({
140
149
  if (!translation || !translation[props.property]) {
141
150
  return emptyLexicalState;
142
151
  }
143
- return translation[props.property].toString();
152
+ return translation[props.property]!;
144
153
  };
145
154
 
146
155
  const setTranslation = (languageCode: string, value: string): void => {
@@ -164,7 +173,7 @@ export default defineComponent({
164
173
  };
165
174
 
166
175
  const onSubmitTranslations = (): void => {
167
- if (props.editable) {
176
+ if (!props.disabled) {
168
177
  emit("update:translations", innerTranslations.value);
169
178
  }
170
179
  emit('update:translationsExpanded', false);
@@ -174,6 +183,18 @@ export default defineComponent({
174
183
  emit('update:translationsExpanded', false);
175
184
  };
176
185
 
186
+ watch(() => props.translations, (newTranslations) => {
187
+ innerTranslations.value = newTranslations.map((translation) => {
188
+ if(typeof translation[props.property] === 'string'){
189
+ return translation;
190
+ }
191
+ return {
192
+ ...translation,
193
+ [props.property]: JSON.stringify(translation[props.property])
194
+ }
195
+ });
196
+ }, { immediate: true, deep: true });
197
+
177
198
  return {
178
199
  languages,
179
200
  onCancelTranslations,
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <FSTextArea
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"
@@ -32,7 +32,7 @@
32
32
  </template>
33
33
  </FSTextArea>
34
34
  <FSDialogSubmit
35
- :title="$tr('ui.translate-text-area.title', 'Handle translations')"
35
+ :title="$tr('translate-text-area.title', 'Handle translations')"
36
36
  :submitButtonColor="$props.buttonColor"
37
37
  @click:submitButton="onSubmit"
38
38
  v-model="dialog"
@@ -44,8 +44,8 @@
44
44
  gap="32px"
45
45
  >
46
46
  <FSTextArea
47
- :label="$tr('ui.translate-text-area.default-value', 'Default value')"
48
- :editable="false"
47
+ :label="$tr('ui.common.default-value', 'Default value')"
48
+ :disabled="true"
49
49
  :rows="($attrs.rows as number)"
50
50
  :modelValue="$props.modelValue"
51
51
  />
@@ -54,7 +54,7 @@
54
54
  >
55
55
  <FSTextArea
56
56
  v-for="(language, index) in languages"
57
- :editable="$props.editable"
57
+ :disabled="$props.disabled"
58
58
  :key="index"
59
59
  :modelValue="getTranslation(language.code)"
60
60
  :rows="($attrs.rows as number)"
@@ -71,7 +71,7 @@
71
71
  font="text-overline"
72
72
  :style="style"
73
73
  >
74
- {{ $tr("ui.translate-field.translate-in", "Translate in {0}", language.label) }}
74
+ {{ $tr("translate-field.translate-in", "Translate in {0}", language.label) }}
75
75
  </FSSpan>
76
76
  <FSIcon>
77
77
  {{ language.icon }}
@@ -151,10 +151,10 @@ export default defineComponent({
151
151
  required: false,
152
152
  default: ColorEnum.Primary
153
153
  },
154
- editable: {
154
+ disabled: {
155
155
  type: Boolean,
156
156
  required: false,
157
- default: true
157
+ default: false
158
158
  }
159
159
  },
160
160
  emits: ["update:modelValue", "update:translations"],
@@ -170,7 +170,7 @@ export default defineComponent({
170
170
  const darks = getColors(ColorEnum.Dark);
171
171
 
172
172
  const style = computed((): StyleValue => {
173
- if (!props.editable) {
173
+ if (props.disabled) {
174
174
  return {
175
175
  "--fs-translate-field-color": lights.dark
176
176
  };
@@ -213,7 +213,7 @@ export default defineComponent({
213
213
 
214
214
  const onSubmit = (): void => {
215
215
  dialog.value = false;
216
- if (props.editable) {
216
+ if (!props.disabled) {
217
217
  emit("update:translations", innerTranslations.value);
218
218
  }
219
219
  };
@@ -27,7 +27,7 @@
27
27
  :description="$props.description"
28
28
  :hideHeader="$props.hideHeader"
29
29
  :clearable="$props.clearable"
30
- :editable="$props.editable"
30
+ :disabled="$props.disabled"
31
31
  :required="$props.required"
32
32
  :validateOn="validateOn"
33
33
  :label="$props.label"
@@ -79,7 +79,7 @@
79
79
  <FSCheckbox
80
80
  v-if="$props.multiple"
81
81
  :class="listItemClass(item[$props.itemValue])"
82
- :editable="$props.editable"
82
+ :disabled="$props.disabled"
83
83
  :modelValue="$props.modelValue?.includes(item[$props.itemValue])"
84
84
  @update:modelValue="() => onCheckboxChange(item[$props.itemValue])"
85
85
  >
@@ -101,7 +101,7 @@
101
101
  v-if="!$props.multiple"
102
102
  :selected="$props.modelValue === item[$props.itemValue]"
103
103
  :class="listItemClass(item[$props.itemValue])"
104
- :editable="$props.editable"
104
+ :disabled="$props.disabled"
105
105
  :modelValue="item[$props.itemValue]"
106
106
  @update:modelValue="onRadioChange"
107
107
  >
@@ -131,9 +131,9 @@
131
131
  <template
132
132
  v-else
133
133
  >
134
- <v-menu
134
+ <FSMenu
135
135
  :closeOnContentClick="false"
136
- :modelValue="menu && $props.editable"
136
+ :modelValue="menu && !$props.disabled"
137
137
  @update:modelValue="menu = $event"
138
138
  >
139
139
  <template
@@ -145,7 +145,7 @@
145
145
  :description="$props.description"
146
146
  :hideHeader="$props.hideHeader"
147
147
  :clearable="$props.clearable"
148
- :editable="$props.editable"
148
+ :disabled="$props.disabled"
149
149
  :required="$props.required"
150
150
  :validateOn="validateOn"
151
151
  :label="$props.label"
@@ -188,7 +188,7 @@
188
188
  <FSCheckbox
189
189
  v-if="$props.multiple"
190
190
  :class="listItemClass(item[$props.itemValue])"
191
- :editable="$props.editable"
191
+ :disabled="$props.disabled"
192
192
  :modelValue="$props.modelValue?.includes(item[$props.itemValue])"
193
193
  @update:modelValue="() => onCheckboxChange(item[$props.itemValue])"
194
194
  >
@@ -210,7 +210,7 @@
210
210
  v-if="!$props.multiple"
211
211
  :selected="$props.modelValue === item[$props.itemValue]"
212
212
  :class="listItemClass(item[$props.itemValue])"
213
- :editable="$props.editable"
213
+ :disabled="$props.disabled"
214
214
  :modelValue="item[$props.itemValue]"
215
215
  @update:modelValue="onRadioChange"
216
216
  >
@@ -233,7 +233,7 @@
233
233
  #title
234
234
  />
235
235
  </v-treeview>
236
- </v-menu>
236
+ </FSMenu>
237
237
  </template>
238
238
  </FSCol>
239
239
  </template>
@@ -253,6 +253,7 @@ import FSFadeOut from "../FSFadeOut.vue";
253
253
  import FSLoader from "../FSLoader.vue";
254
254
  import FSRadio from "../FSRadio.vue";
255
255
  import FSSpan from "../FSSpan.vue";
256
+ import FSMenu from '../FSMenu.vue';
256
257
  import FSCol from "../FSCol.vue";
257
258
 
258
259
  export default defineComponent({
@@ -266,6 +267,7 @@ export default defineComponent({
266
267
  FSLoader,
267
268
  FSRadio,
268
269
  FSSpan,
270
+ FSMenu,
269
271
  FSCol,
270
272
  },
271
273
  props: {
@@ -338,10 +340,10 @@ export default defineComponent({
338
340
  required: false,
339
341
  default: true
340
342
  },
341
- editable: {
343
+ disabled: {
342
344
  type: Boolean,
343
345
  required: false,
344
- default: true
346
+ default: false
345
347
  },
346
348
  loading: {
347
349
  type: Boolean,
@@ -366,7 +368,7 @@ export default defineComponent({
366
368
  const menu = ref(false);
367
369
 
368
370
  const style = computed((): StyleValue => {
369
- if (!props.editable) {
371
+ if (props.disabled) {
370
372
  return {
371
373
  "--fs-tree-view-field-cursor": "default"
372
374
  };
@@ -462,7 +464,7 @@ export default defineComponent({
462
464
  };
463
465
 
464
466
  const openMobileOverlay = () => {
465
- if (!props.editable) {
467
+ if (props.disabled) {
466
468
  return;
467
469
  }
468
470
  dialog.value = true;
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSRadioGroup
3
3
  :values="availableConfigurations"
4
- :editable="$props.editable"
4
+ :disabled="$props.disabled"
5
5
  v-model="selectedConfiguration"
6
6
  >
7
7
  <template
@@ -14,10 +14,10 @@
14
14
  <FSSpan
15
15
  :font="font"
16
16
  >
17
- {{ $tr('ui.periodicfield.daily.every', 'Every') }}
17
+ {{ $tr('ui.common.every', 'Every') }}
18
18
  </FSSpan>
19
19
  <FSNumberField
20
- :editable="$props.editable"
20
+ :disabled="$props.disabled"
21
21
  :modelValue="days"
22
22
  :hideHeader="true"
23
23
  :clearable="false"
@@ -26,10 +26,10 @@
26
26
  <FSSpan
27
27
  :font="font"
28
28
  >
29
- {{ $tr('ui.periodicfield.daily.daysat', 'day(s) at') }}
29
+ {{ $tr('periodic-field.daysat', 'day(s) at') }}
30
30
  </FSSpan>
31
31
  <FSClock
32
- :editable="$props.editable"
32
+ :disabled="$props.disabled"
33
33
  :color="ColorEnum.Light"
34
34
  :modelValue="time"
35
35
  :hideHeader="true"
@@ -66,10 +66,10 @@ export default defineComponent({
66
66
  type: Array<string>,
67
67
  required: true
68
68
  },
69
- editable: {
69
+ disabled: {
70
70
  type: Boolean,
71
71
  required: false,
72
- default: true
72
+ default: false
73
73
  }
74
74
  },
75
75
  emits: ["update:modelValue"],
@@ -5,7 +5,7 @@
5
5
  >
6
6
  <FSRadioGroup
7
7
  :values="availablePeriod"
8
- :editable="editable"
8
+ :disabled="disabled"
9
9
  v-model="selectedPeriod"
10
10
  />
11
11
  <FSRow
@@ -19,25 +19,25 @@
19
19
  />
20
20
  <FSPeriodicDailyField
21
21
  v-if="selectedPeriod === 'daily'"
22
- :editable="editable"
22
+ :disabled="disabled"
23
23
  :modelValue="$props.modelValue.split(' ')"
24
24
  @update:modelValue="$emit('update:modelValue', $event.join(' '))"
25
25
  />
26
26
  <FSPeriodicWeeklyField
27
27
  v-else-if="selectedPeriod === 'weekly'"
28
- :editable="editable"
28
+ :disabled="disabled"
29
29
  :modelValue="$props.modelValue.split(' ')"
30
30
  @update:modelValue="$emit('update:modelValue', $event.join(' '))"
31
31
  />
32
32
  <FSPeriodicMonthlyField
33
33
  v-else-if="selectedPeriod === 'monthly'"
34
- :editable="editable"
34
+ :disabled="disabled"
35
35
  :modelValue="$props.modelValue.split(' ')"
36
36
  @update:modelValue="$emit('update:modelValue', $event.join(' '))"
37
37
  />
38
38
  <FSPeriodicYearlyField
39
39
  v-else-if="selectedPeriod === 'yearly'"
40
- :editable="editable"
40
+ :disabled="disabled"
41
41
  :modelValue="$props.modelValue.split(' ')"
42
42
  @update:modelValue="$emit('update:modelValue', $event.join(' '))"
43
43
  />
@@ -46,7 +46,7 @@
46
46
  </template>
47
47
 
48
48
  <script lang="ts">
49
- import { ref, defineComponent, onMounted, type PropType, watch } from "vue";
49
+ import { ref, defineComponent, type PropType, watch } from "vue";
50
50
 
51
51
  import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui";
52
52
 
@@ -71,13 +71,13 @@ export default defineComponent({
71
71
  },
72
72
  props: {
73
73
  modelValue: {
74
- type: String as PropType<"daily" | "weekly" | "monthly" | "yearly">,
74
+ type: String as PropType<string>,
75
75
  required: true
76
76
  },
77
- editable: {
77
+ disabled: {
78
78
  type: Boolean,
79
79
  required: false,
80
- default: true
80
+ default: false
81
81
  }
82
82
  },
83
83
  emits: ["update:modelValue"],
@@ -85,10 +85,10 @@ export default defineComponent({
85
85
  const { $tr } = useTranslationsProvider();
86
86
 
87
87
  const availablePeriod = [
88
- { label: $tr("ui.periodicField.daily", "Daily") , value: "daily" , item: { default : "0 12 */1 * *"} },
89
- { label: $tr("ui.periodicField.weekly", "Weekly") , value: "weekly" , item: { default : "0 12 * * 1"} },
90
- { label: $tr("ui.periodicField.monthly", "Monthly"), value: "monthly", item: { default : "0 12 1 * *"} },
91
- { label: $tr("ui.periodicField.yearly", "Yearly") , value: "yearly" , item: { default : "0 12 1 1 *"} }
88
+ { label: $tr("ui.common.daily", "Daily") , value: "daily" , item: { default : "0 12 */1 * *"} },
89
+ { label: $tr("ui.common.weekly", "Weekly") , value: "weekly" , item: { default : "0 12 * * 1"} },
90
+ { label: $tr("ui.common.monthly", "Monthly"), value: "monthly", item: { default : "0 12 1 * *"} },
91
+ { label: $tr("ui.common.yearly", "Yearly") , value: "yearly" , item: { default : "0 12 1 1 *"} }
92
92
  ];
93
93
 
94
94
  const selectedPeriod = ref("daily");
@@ -118,9 +118,9 @@ export default defineComponent({
118
118
  emit('update:modelValue', period.item.default);
119
119
  });
120
120
 
121
- onMounted(() => {
121
+ watch(() => props.modelValue, () => {
122
122
  selectedPeriod.value = getPeriod(props.modelValue);
123
- });
123
+ }, { immediate: true });
124
124
 
125
125
  return {
126
126
  availablePeriod,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <FSRadioGroup
3
3
  :values="availableConfigurations"
4
- :editable="$props.editable"
4
+ :disabled="$props.disabled"
5
5
  v-model="selectedConfiguration"
6
6
  >
7
7
  <template
@@ -14,10 +14,10 @@
14
14
  <FSSpan
15
15
  :font="font"
16
16
  >
17
- {{ $tr("ui.periodicfield.monthly.day", "Day") }}
17
+ {{ $tr("ui.common.day", "Day") }}
18
18
  </FSSpan>
19
19
  <FSSelectField
20
- :editable="$props.editable"
20
+ :disabled="$props.disabled"
21
21
  :items="dayNumbers"
22
22
  :hideHeader="true"
23
23
  :clearable="false"
@@ -27,10 +27,10 @@
27
27
  <FSSpan
28
28
  :font="font"
29
29
  >
30
- {{ $tr("ui.periodicfield.monthly.every-month-at", "every month at") }}
30
+ {{ $tr("periodic-monthly-field.every-month-at", "every month at") }}
31
31
  </FSSpan>
32
32
  <FSClock
33
- :editable="$props.editable"
33
+ :disabled="$props.disabled"
34
34
  :color="ColorEnum.Light"
35
35
  :hideHeader="true"
36
36
  :slider="false"
@@ -45,10 +45,10 @@
45
45
  <FSSpan
46
46
  :font="font"
47
47
  >
48
- {{ $tr("ui.periodicfield.monthly.every", "Every") }}
48
+ {{ $tr("ui.common.every", "Every") }}
49
49
  </FSSpan>
50
50
  <FSSelectField
51
- :editable="$props.editable"
51
+ :disabled="$props.disabled"
52
52
  :items="dayWeekNumbers"
53
53
  :hideHeader="true"
54
54
  :clearable="false"
@@ -56,7 +56,7 @@
56
56
  @update:modelValue="onUpdateDayWeekNumber($event)"
57
57
  />
58
58
  <FSSelectDays
59
- :editable="$props.editable"
59
+ :disabled="$props.disabled"
60
60
  :useAllDays="false"
61
61
  :hideHeader="true"
62
62
  :modelValue="dayWeek"
@@ -65,10 +65,10 @@
65
65
  <FSSpan
66
66
  :font="font"
67
67
  >
68
- {{ $tr("ui.periodicfield.monthly.at", "at") }}
68
+ {{ $tr("ui.common.at", "at") }}
69
69
  </FSSpan>
70
70
  <FSClock
71
- :editable="$props.editable"
71
+ :disabled="$props.disabled"
72
72
  :color="ColorEnum.Light"
73
73
  :hideHeader="true"
74
74
  :slider="false"
@@ -108,10 +108,10 @@ export default defineComponent({
108
108
  type: Array<string>,
109
109
  required: true
110
110
  },
111
- editable: {
111
+ disabled: {
112
112
  type: Boolean,
113
113
  required: false,
114
- default: true
114
+ default: false
115
115
  }
116
116
  },
117
117
  emits: ["update:modelValue"],
@@ -119,10 +119,10 @@ export default defineComponent({
119
119
  const { $tr } = useTranslationsProvider();
120
120
 
121
121
  const dayWeekNumbers = [
122
- { id: 1, label: $tr("ui.periodicfield.monthly.first" , "First") },
123
- { id: 2, label: $tr("ui.periodicfield.monthly.second", "Second") },
124
- { id: 3, label: $tr("ui.periodicfield.monthly.third" , "Third") },
125
- { id: 4, label: $tr("ui.periodicfield.monthly.fourth", "Fourth") },
122
+ { id: 1, label: $tr("ui.common.first" , "First") },
123
+ { id: 2, label: $tr("ui.common.second", "Second") },
124
+ { id: 3, label: $tr("ui.common.third" , "Third") },
125
+ { id: 4, label: $tr("ui.common.fourth", "Fourth") },
126
126
  ];
127
127
 
128
128
  const availableConfigurations = [