@dative-gpi/foundation-shared-components 1.0.56 → 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 +79 -56
  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 +50 -37
  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 +96 -102
  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 -33
  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
@@ -1,56 +1,61 @@
1
1
  <template>
2
- <FSClickable
3
- padding="16px"
4
- height="124px"
5
- width="275px"
2
+ <FSTile
3
+ :width="['296px','336px']"
4
+ :height="['132px', '116px']"
5
+ :padding="['16px', '12px']"
6
+ borderRadius="8px"
6
7
  v-bind="$attrs"
7
8
  >
8
- <template
9
- #default
9
+ <FSRow
10
+ align="center-left"
11
+ gap="16px"
12
+ :wrap="false"
10
13
  >
11
- <FSRow
14
+ <FSCol
12
15
  align="center-left"
13
- :wrap="false"
16
+ :gap="['12px', '8px']"
14
17
  >
15
- <FSCol
18
+ <FSSpan
19
+ font="text-overline"
20
+ :lineClamp="4"
21
+ >
22
+ {{ $props.label }}
23
+ </FSSpan>
24
+ <FSRow
16
25
  align="center-left"
26
+ :gap="['12px', '8px']"
17
27
  >
18
- <FSSpan
19
- font="text-button"
20
- :lineClamp="2"
21
- >
22
- {{ $props.label }}
23
- </FSSpan>
24
28
  <FSIcon
25
- :color="ColorEnum.Error"
29
+ :color="ColorEnum.Primary"
30
+ :size="['18px', '16px']"
26
31
  >
27
32
  {{ chartIcon(type) }}
28
33
  </FSIcon>
29
- <FSSpan
30
- font="text-overline"
31
- >
32
- {{ $props.categoryLabel }}
33
- </FSSpan>
34
- </FSCol>
35
- <FSCol
36
- align="center-right"
37
- width="hug"
38
- >
39
- <FSImage
40
- v-if="$props.imageId"
41
- height="92px"
42
- width="92px"
43
- :imageId="$props.imageId"
34
+ <FSChip
35
+ v-if="$props.scope === ApplicationScope.OrganisationType"
36
+ :color="ColorEnum.Light"
37
+ :label="$tr('ui.chart-origin.organisation-type', 'Shared')"
44
38
  />
45
- <FSIcon
46
- v-else-if="$props.icon"
47
- size="92px"
48
- :icon="$props.icon"
49
- />
50
- </FSCol>
51
- </FSRow>
52
- </template>
53
- </FSClickable>
39
+ </FSRow>
40
+ </FSCol>
41
+ <FSCol
42
+ align="center-right"
43
+ width="hug"
44
+ >
45
+ <FSImage
46
+ v-if="$props.imageId"
47
+ :imageId="$props.imageId"
48
+ :height="['84px', '72px']"
49
+ :width="['84px', '72px']"
50
+ />
51
+ <FSIconCard
52
+ v-else-if="$props.icon"
53
+ :size="['84px', '72px']"
54
+ :icon="$props.icon"
55
+ />
56
+ </FSCol>
57
+ </FSRow>
58
+ </FSTile>
54
59
  </template>
55
60
 
56
61
  <script lang="ts">
@@ -58,26 +63,29 @@ import { defineComponent } from "vue";
58
63
  import type { PropType } from "vue";
59
64
 
60
65
  import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
61
- import type { ChartType } from "@dative-gpi/foundation-shared-domain/enums";
66
+ import { ApplicationScope, ChartType } from "@dative-gpi/foundation-shared-domain/enums";
62
67
 
63
68
  import { chartIcon } from "@dative-gpi/foundation-shared-components/tools";
64
69
 
65
- import FSClickable from "../FSClickable.vue";
66
70
  import FSImage from "../FSImage.vue";
71
+ import FSTile from "./FSTile.vue";
67
72
  import FSSpan from "../FSSpan.vue";
68
- import FSIcon from "../FSIcon.vue";
69
73
  import FSRow from "../FSRow.vue";
70
74
  import FSCol from "../FSCol.vue";
75
+ import FSIconCard from '../FSIconCard.vue';
76
+ import FSChip from '../FSChip.vue';
77
+
71
78
 
72
79
  export default defineComponent({
73
80
  name: "FSChartTileUI",
74
81
  components: {
75
- FSIcon,
76
82
  FSImage,
83
+ FSTile,
77
84
  FSRow,
78
85
  FSCol,
79
86
  FSSpan,
80
- FSClickable
87
+ FSChip,
88
+ FSIconCard
81
89
  },
82
90
  props: {
83
91
  label: {
@@ -90,11 +98,6 @@ export default defineComponent({
90
98
  required: false,
91
99
  default: null
92
100
  },
93
- categoryLabel: {
94
- type: String as PropType<string | null>,
95
- required: false,
96
- default: null
97
- },
98
101
  icon: {
99
102
  type: String as PropType<string | null>,
100
103
  required: false,
@@ -103,12 +106,18 @@ export default defineComponent({
103
106
  type: {
104
107
  type: Number as PropType<ChartType>,
105
108
  required: false,
106
- default: null
107
- }
109
+ default: ChartType.None
110
+ },
111
+ scope: {
112
+ type: Number as PropType<ApplicationScope>,
113
+ required: false,
114
+ default: ApplicationScope.None
115
+ },
108
116
  },
109
117
  setup() {
110
118
  return {
111
119
  ColorEnum,
120
+ ApplicationScope,
112
121
  chartIcon
113
122
  };
114
123
  }
@@ -26,15 +26,19 @@
26
26
  -
27
27
  {{ timestamp }}
28
28
  </FSText>
29
- <v-spacer />
30
- <FSButtonEditIcon
31
- v-if="canEditRemove"
32
- @click="showEditComment = true"
33
- />
34
- <FSButtonRemoveIcon
35
- v-if="canEditRemove"
36
- @click="$emit('remove')"
37
- />
29
+ <FSRow
30
+ align="center-right"
31
+ :wrap="false"
32
+ >
33
+ <FSButtonEditIcon
34
+ v-if="canEditRemove"
35
+ @click="showEditComment = true"
36
+ />
37
+ <FSButtonRemoveIcon
38
+ v-if="canEditRemove"
39
+ @click="removeDialog = true"
40
+ />
41
+ </FSRow>
38
42
  </FSRow>
39
43
  </template>
40
44
  <template
@@ -63,18 +67,25 @@
63
67
  @submit="updateComment"
64
68
  />
65
69
  </FSCol>
70
+ <FSDialogRemove
71
+ v-model="removeDialog"
72
+ :removeTotal="1"
73
+ :removing="removing"
74
+ @click:submitButton="$emit('remove')"
75
+ />
66
76
  </FSCol>
67
77
  </template>
68
78
 
69
79
  <script lang="ts">
70
80
  import type { PropType} from "vue";
71
- import { defineComponent, ref } from "vue";
81
+ import { defineComponent, ref, watch } from "vue";
72
82
 
73
83
  import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
74
84
 
75
85
  import FSButtonRemoveIcon from "../buttons/FSButtonRemoveIcon.vue";
76
- import FSCommentField from "../fields/FSCommentField.vue";
77
86
  import FSButtonEditIcon from "../buttons/FSButtonEditIcon.vue";
87
+ import FSCommentField from "../fields/FSCommentField.vue";
88
+ import FSDialogRemove from "../FSDialogRemove.vue";
78
89
  import FSImage from "../FSImage.vue";
79
90
  import FSCard from "../FSCard.vue";
80
91
  import FSText from "../FSText.vue";
@@ -85,8 +96,9 @@ export default defineComponent({
85
96
  name: "FSCommentTileUI",
86
97
  components: {
87
98
  FSButtonRemoveIcon,
88
- FSCommentField,
89
99
  FSButtonEditIcon,
100
+ FSCommentField,
101
+ FSDialogRemove,
90
102
  FSImage,
91
103
  FSCard,
92
104
  FSText,
@@ -128,20 +140,33 @@ export default defineComponent({
128
140
  type: Boolean,
129
141
  required: false,
130
142
  default: false
143
+ },
144
+ removing: {
145
+ type: Boolean,
146
+ required: false,
147
+ default: false
131
148
  }
132
149
  },
133
150
  emits: ["edit", "remove"],
134
151
  setup(props, { emit }) {
135
152
  const showEditComment = ref(false);
153
+ const removeDialog = ref(false);
136
154
 
137
155
  const updateComment = (comment: string) => {
138
156
  emit('edit',{commentId : props.id, comment : comment})
139
157
  showEditComment.value = false;
140
158
  };
141
159
 
160
+ watch(() => props.removing, () => {
161
+ if (!props.removing) {
162
+ removeDialog.value = false;
163
+ }
164
+ });
165
+
142
166
  return {
143
- ColorEnum,
144
167
  showEditComment,
168
+ removeDialog,
169
+ ColorEnum,
145
170
  updateComment
146
171
  };
147
172
  }
@@ -3,7 +3,16 @@
3
3
  :bottomColor="color"
4
4
  :icon="$props.icon"
5
5
  v-bind="$attrs"
6
- />
6
+ >
7
+ <template
8
+ #append-info
9
+ >
10
+ <FSChip
11
+ :label="$tr('ui.dashboard-type.organisation-type', 'Shared')"
12
+ :color="ColorEnum.Light"
13
+ />
14
+ </template>
15
+ </FSSimpleTileUI>
7
16
  </template>
8
17
 
9
18
  <script lang="ts">
@@ -12,10 +21,12 @@ import { computed, defineComponent, type PropType } from "vue";
12
21
  import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
13
22
 
14
23
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
24
+ import FSChip from '@dative-gpi/foundation-shared-components/components/FSChip.vue';
15
25
 
16
26
  export default defineComponent({
17
27
  name: "FSDashboardOrganisationTypeTileUI",
18
28
  components: {
29
+ FSChip,
19
30
  FSSimpleTileUI
20
31
  },
21
32
  props: {
@@ -39,7 +50,8 @@ export default defineComponent({
39
50
  });
40
51
 
41
52
  return {
42
- color
53
+ color,
54
+ ColorEnum
43
55
  };
44
56
  }
45
57
  });
@@ -3,7 +3,16 @@
3
3
  :bottomColor="color"
4
4
  :icon="$props.icon"
5
5
  v-bind="$attrs"
6
- />
6
+ >
7
+ <template
8
+ #append-info
9
+ >
10
+ <FSChip
11
+ :label="$tr('ui.dashboard-type.shallow', 'Shallow copy')"
12
+ :color="ColorEnum.Light"
13
+ />
14
+ </template>
15
+ </FSSimpleTileUI>
7
16
  </template>
8
17
 
9
18
  <script lang="ts">
@@ -12,10 +21,12 @@ import { computed, defineComponent, type PropType } from "vue";
12
21
  import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
13
22
 
14
23
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
24
+ import FSChip from '@dative-gpi/foundation-shared-components/components/FSChip.vue';
15
25
 
16
26
  export default defineComponent({
17
27
  name: "FSDashboardShallowTileUI",
18
28
  components: {
29
+ FSChip,
19
30
  FSSimpleTileUI
20
31
  },
21
32
  props: {
@@ -39,7 +50,8 @@ export default defineComponent({
39
50
  });
40
51
 
41
52
  return {
42
- color
53
+ color,
54
+ ColorEnum
43
55
  };
44
56
  }
45
57
  });
@@ -2,7 +2,6 @@
2
2
  <FSTile
3
3
  :activeColor="ColorEnum.Primary"
4
4
  :bottomColor="ColorEnum.Primary"
5
- :editable="$props.editable"
6
5
  :width="$props.width"
7
6
  :modelValue="$props.modelValue"
8
7
  v-bind="$attrs"
@@ -43,6 +42,7 @@
43
42
  :deviceStatuses="singleDeviceStatuses"
44
43
  :modelStatuses="singleModelStatuses"
45
44
  :deviceAlerts="$props.deviceAlerts"
45
+ :alertTo="$props.alertTo"
46
46
  />
47
47
  </FSCol>
48
48
  <FSImage
@@ -132,6 +132,11 @@ export default defineComponent({
132
132
  required: true,
133
133
  default: () => []
134
134
  },
135
+ alertTo: {
136
+ type: Function,
137
+ required: false,
138
+ default: null
139
+ },
135
140
  width: {
136
141
  type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
137
142
  required: false,
@@ -141,11 +146,6 @@ export default defineComponent({
141
146
  type: Boolean,
142
147
  required: false,
143
148
  default: false
144
- },
145
- editable: {
146
- type: Boolean,
147
- required: false,
148
- default: true
149
149
  }
150
150
  },
151
151
  setup(props) {
@@ -1,127 +1,95 @@
1
1
  <template>
2
- <FSTile
2
+ <FSSimpleTileUI
3
3
  :activeColor="ColorEnum.Primary"
4
4
  :bottomColor="ColorEnum.Error"
5
- :editable="$props.editable"
6
5
  :width="$props.width"
7
6
  :modelValue="$props.modelValue"
7
+ :label="$props.label"
8
+ :code="$props.code"
9
+ :imageId="$props.imageId"
10
+ :icon="$props.icon"
8
11
  v-bind="$attrs"
9
12
  >
10
- <FSCol
11
- align="center-center"
12
- width="fill"
13
+ <template
14
+ #append-info
13
15
  >
14
- <FSRow
15
- align="center-center"
16
- gap="24px"
17
- :height="imageSize"
18
- :wrap="false"
16
+ <FSCol
17
+ gap="6px"
19
18
  >
20
- <FSCol
21
- gap="12px"
22
- :width="infoWidth"
19
+ <FSRow
20
+ align="center-left"
23
21
  >
24
- <FSCol
25
- gap="6px"
26
- >
27
- <FSSpan
28
- font="text-button"
29
- :lineClamp="1"
30
- >
31
- {{ $props.label }}
32
- </FSSpan>
33
- <FSSpan
34
- font="text-overline"
35
- variant="soft"
36
- >
37
- {{ $props.code }}
38
- </FSSpan>
39
- </FSCol>
40
- <FSCol
41
- gap="6px"
22
+ <FSColor
23
+ height="24px"
24
+ width="24px"
25
+ :color="ColorEnum.Primary"
26
+ :border="false"
42
27
  >
43
28
  <FSRow
44
- align="center-left"
29
+ align="center-center"
45
30
  >
46
- <FSColor
47
- padding="0 8px"
48
- height="24px"
49
- :color="ColorEnum.Primary"
50
- :border="false"
51
- >
52
- <FSRow
53
- align="center-center"
54
- >
55
- <FSSpan
56
- font="text-overline"
57
- >
58
- {{ groupsLabel }}
59
- </FSSpan>
60
- </FSRow>
61
- </FSColor>
62
31
  <FSSpan
63
32
  font="text-overline"
64
33
  >
65
- {{ $tr("ui.group-tile.group(s)", "Group(s)") }}
34
+ {{ groupsBadgeContent }}
66
35
  </FSSpan>
67
36
  </FSRow>
37
+ </FSColor>
38
+ <FSSpan
39
+ font="text-overline"
40
+ >
41
+ {{ $tr("ui.common.groups", "Group(s)") }}
42
+ </FSSpan>
43
+ </FSRow>
44
+ <FSRow
45
+ align="center-left"
46
+ >
47
+ <FSColor
48
+ height="24px"
49
+ width="24px"
50
+ :color="ColorEnum.Success"
51
+ :border="false"
52
+ >
68
53
  <FSRow
69
- align="center-left"
54
+ align="center-center"
70
55
  >
71
- <FSColor
72
- padding="0 8px"
73
- height="24px"
74
- :color="ColorEnum.Success"
75
- :border="false"
76
- >
77
- <FSRow
78
- align="center-center"
79
- >
80
- <FSSpan
81
- font="text-overline"
82
- >
83
- {{ deviceOrganisationsLabel }}
84
- </FSSpan>
85
- </FSRow>
86
- </FSColor>
87
56
  <FSSpan
88
57
  font="text-overline"
89
58
  >
90
- {{ $tr("ui.group-tile.device(s)", "Device(s)") }}
59
+ {{ deviceOrganisationsBadgeContent }}
91
60
  </FSSpan>
92
61
  </FSRow>
93
- </FSCol>
94
- </FSCol>
95
- <FSImage
96
- v-if="$props.imageId"
97
- :imageId="$props.imageId"
98
- :width="imageSize"
99
- />
100
- </FSRow>
101
- </FSCol>
102
- </FSTile>
62
+ </FSColor>
63
+ <FSSpan
64
+ font="text-overline"
65
+ >
66
+ {{ $tr("ui.common.devices", "Device(s)") }}
67
+ </FSSpan>
68
+ </FSRow>
69
+ </FSCol>
70
+ </template>
71
+ </FSSimpleTileUI>
103
72
  </template>
104
73
 
105
74
  <script lang="ts">
106
75
  import { computed, defineComponent, type PropType } from "vue";
107
76
 
108
- import { useBreakpoints } from "@dative-gpi/foundation-shared-components/composables";
77
+ import { capNumberToString } from '@dative-gpi/foundation-shared-components/utils';
78
+
109
79
  import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
110
80
 
111
- import FSImage from "../FSImage.vue";
81
+ import FSSimpleTileUI from './FSSimpleTileUI.vue';
112
82
  import FSColor from "../FSColor.vue";
113
83
  import FSSpan from "../FSSpan.vue";
114
- import FSTile from "./FSTile.vue";
115
84
  import FSCol from "../FSCol.vue";
116
85
  import FSRow from "../FSRow.vue";
117
86
 
118
87
  export default defineComponent({
119
88
  name: "FSGroupTileUI",
120
89
  components: {
121
- FSImage,
90
+ FSSimpleTileUI,
122
91
  FSColor,
123
92
  FSSpan,
124
- FSTile,
125
93
  FSCol,
126
94
  FSRow
127
95
  },
@@ -131,6 +99,10 @@ export default defineComponent({
131
99
  required: false,
132
100
  default: null
133
101
  },
102
+ icon: {
103
+ type: String,
104
+ required: false
105
+ },
134
106
  label: {
135
107
  type: String as PropType<string | null>,
136
108
  required: false,
@@ -156,11 +128,6 @@ export default defineComponent({
156
128
  required: false,
157
129
  default: false
158
130
  },
159
- editable: {
160
- type: Boolean,
161
- required: false,
162
- default: true
163
- },
164
131
  width: {
165
132
  type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
166
133
  required: false,
@@ -168,33 +135,14 @@ export default defineComponent({
168
135
  },
169
136
  },
170
137
  setup(props) {
171
- const { isMobileSized } = useBreakpoints();
172
-
173
- const groupsLabel = computed((): string => {
174
- return props.recursiveGroupsIds.length > 99 ? "99+" : props.recursiveGroupsIds.length.toString();
175
- });
176
-
177
- const deviceOrganisationsLabel = computed((): string => {
178
- return props.recursiveDeviceOrganisationsIds.length > 99 ? "99+" : props.recursiveDeviceOrganisationsIds.length.toString();
179
- });
180
-
181
- const imageSize = computed((): number => {
182
- return isMobileSized.value ? 90 : 100;
183
- });
138
+ const groupsBadgeContent = computed(() => capNumberToString(props.recursiveGroupsIds.length));
184
139
 
185
- const infoWidth = computed((): string => {
186
- if (!props.imageId) {
187
- return "100%";
188
- }
189
- return `calc(100% - ${imageSize.value}px - 24px)`;
190
- });
140
+ const deviceOrganisationsBadgeContent = computed(() => capNumberToString(props.recursiveDeviceOrganisationsIds.length));
191
141
 
192
142
  return {
193
- deviceOrganisationsLabel,
194
- groupsLabel,
143
+ deviceOrganisationsBadgeContent,
144
+ groupsBadgeContent,
195
145
  ColorEnum,
196
- imageSize,
197
- infoWidth
198
146
  };
199
147
  }
200
148
  });