@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
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <FSSimpleTileUI
3
+ :bottomColor="null"
4
+ :width="$props.width"
5
+ :modelValue="$props.modelValue"
6
+ :label="$props.label"
7
+ :code="$props.code"
8
+ :icon="$props.icon"
9
+ :iconColor="$props.iconColor"
10
+ v-bind="$attrs"
11
+ >
12
+ <template
13
+ #append-info
14
+ >
15
+ <FSCol
16
+ gap="6px"
17
+ >
18
+ <FSRow
19
+ align="center-left"
20
+ >
21
+ <FSColor
22
+ height="24px"
23
+ width="24px"
24
+ :color="ColorEnum.Primary"
25
+ :border="false"
26
+ >
27
+ <FSRow
28
+ align="center-center"
29
+ >
30
+ <FSSpan
31
+ font="text-overline"
32
+ >
33
+ {{ subGroupingsBadgeContent }}
34
+ </FSSpan>
35
+ </FSRow>
36
+ </FSColor>
37
+ <FSSpan
38
+ font="text-overline"
39
+ >
40
+ {{ $tr("ui.common.sub-groupings", "Categories") }}
41
+ </FSSpan>
42
+ </FSRow>
43
+ </FSCol>
44
+ </template>
45
+ </FSSimpleTileUI>
46
+ </template>
47
+
48
+ <script lang="ts">
49
+ import { computed, defineComponent, type PropType } from "vue";
50
+
51
+ import { capNumberToString } from '@dative-gpi/foundation-shared-components/utils';
52
+
53
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
54
+
55
+ import FSSimpleTileUI from './FSSimpleTileUI.vue';
56
+ import FSColor from "../FSColor.vue";
57
+ import FSSpan from "../FSSpan.vue";
58
+ import FSCol from "../FSCol.vue";
59
+ import FSRow from "../FSRow.vue";
60
+
61
+ export default defineComponent({
62
+ name: "FSGroupingTileUI",
63
+ components: {
64
+ FSSimpleTileUI,
65
+ FSColor,
66
+ FSSpan,
67
+ FSCol,
68
+ FSRow
69
+ },
70
+ props: {
71
+ icon: {
72
+ type: String,
73
+ required: false
74
+ },
75
+ iconColor: {
76
+ type: String,
77
+ required: false
78
+ },
79
+ label: {
80
+ type: String as PropType<string | null>,
81
+ required: false,
82
+ default: null
83
+ },
84
+ code: {
85
+ type: String as PropType<string | null>,
86
+ required: false,
87
+ default: null
88
+ },
89
+ subGroupingCount: {
90
+ type: Number,
91
+ required: false,
92
+ default: null
93
+ },
94
+ modelValue: {
95
+ type: Boolean,
96
+ required: false,
97
+ default: false
98
+ },
99
+ width: {
100
+ type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
101
+ required: false,
102
+ default: () => [352, 336]
103
+ },
104
+ },
105
+ setup(props) {
106
+ const subGroupingsBadgeContent = computed(() => props.subGroupingCount ? capNumberToString(props.subGroupingCount) : 0);
107
+
108
+
109
+ return {
110
+ subGroupingsBadgeContent,
111
+ ColorEnum,
112
+ };
113
+ }
114
+ });
115
+ </script>
@@ -2,6 +2,7 @@
2
2
  <FSCard
3
3
  class="fs-load-tile"
4
4
  padding="11px"
5
+ topRightPadding="1px"
5
6
  :height="heights.card"
6
7
  :width="widths.card"
7
8
  :style="style"
@@ -39,16 +40,21 @@
39
40
  :width="widths.image"
40
41
  />
41
42
  </FSRow>
42
- <FSCard
43
- v-if="$props.editable"
44
- class="fs-tile-checkbox"
45
- :border="false"
43
+ <template
44
+ v-if="$props.selectable"
45
+ #top-right
46
46
  >
47
- <FSCheckbox
48
- :modelValue="$props.modelValue"
49
- @update:modelValue="() => $emit('update:modelValue', !$props.modelValue)"
50
- />
51
- </FSCard>
47
+ <FSCard
48
+ padding="8px"
49
+ :border="false"
50
+ >
51
+ <FSCheckbox
52
+ :modelValue="$props.modelValue"
53
+ :disabled="true"
54
+ @update:modelValue="() => $emit('update:modelValue', !$props.modelValue)"
55
+ />
56
+ </FSCard>
57
+ </template>
52
58
  </FSCard>
53
59
  </template>
54
60
 
@@ -79,7 +85,7 @@ export default defineComponent({
79
85
  required: false,
80
86
  default: false
81
87
  },
82
- editable: {
88
+ selectable: {
83
89
  type: Boolean,
84
90
  required: false,
85
91
  default: false
@@ -1,99 +1,96 @@
1
1
  <template>
2
- <FSTile
2
+ <FSSimpleTileUI
3
3
  :activeColor="$props.color"
4
4
  :bottomColor="$props.color"
5
5
  :modelValue="$props.modelValue"
6
+ :width="$props.width"
7
+ :label="$props.label"
8
+ :icon="$props.icon"
9
+ :code="$props.code"
6
10
  v-bind="$attrs"
7
11
  >
8
- <FSRow
9
- align="center-center"
10
- width="100%"
11
- gap="24px"
12
- :wrap="false"
12
+ <template
13
+ #append-info
13
14
  >
14
- <FSCol
15
- gap="12px"
16
- width="100%"
17
- class="fs-location-tile-text-container"
15
+ <FSCol
16
+ gap="8px"
18
17
  >
19
- <FSCol
20
- gap="6px"
18
+ <FSRow
19
+ v-if="$props.deviceCount"
20
+ :wrap="false"
21
+ align="center-left"
21
22
  >
22
- <FSSpan
23
- font="text-button"
24
- :lineClamp="1"
23
+ <FSColor
24
+ width="24px"
25
+ height="24px"
26
+ :color="ColorEnum.Primary"
27
+ :border="false"
25
28
  >
26
- {{ $props.label }}
27
- </FSSpan>
29
+ <FSRow
30
+ align="center-center"
31
+ >
32
+ <FSSpan
33
+ font="text-overline"
34
+ >
35
+ {{ capNumberToString($props.deviceCount) }}
36
+ </FSSpan>
37
+ </FSRow>
38
+ </FSColor>
28
39
  <FSSpan
29
40
  font="text-overline"
30
- variant="soft"
31
41
  >
32
- {{ $props.code }}
42
+ {{ $tr("ui.common.devices", "Equipment(s)") }}
33
43
  </FSSpan>
34
- </FSCol>
44
+ </FSRow>
35
45
  <FSRow
46
+ v-if="$props.address"
36
47
  :wrap="false"
37
48
  align="center-left"
38
49
  >
39
50
  <FSColor
40
- padding="0 8px"
51
+ width="24px"
41
52
  height="24px"
42
- :color="ColorEnum.Light"
53
+ :color="ColorEnum.Primary"
43
54
  :border="false"
44
55
  >
45
56
  <FSRow
46
57
  align="center-center"
47
58
  >
48
- <FSSpan
49
- font="text-overline"
50
- >
51
- {{ $props.deviceCount }}
52
- </FSSpan>
59
+ <FSIcon
60
+ icon="mdi-map-marker-radius-outline"
61
+ size="16px"
62
+ />
53
63
  </FSRow>
54
64
  </FSColor>
55
65
  <FSSpan
56
66
  font="text-overline"
57
67
  >
58
- {{ $tr("ui.location-tile.device(s)", "Device(s) in this location.") }}
68
+ {{ $props.address }}
59
69
  </FSSpan>
60
70
  </FSRow>
61
71
  </FSCol>
62
- <FSCol
63
- width="hug"
64
- >
65
- <FSIconCard
66
- :icon="$props.icon"
67
- :iconColor="$props.color"
68
- size="100px"
69
- iconSize="38px"
70
- variant="background"
71
- :border="true"
72
- />
73
- </FSCol>
74
- </FSRow>
75
- </FSTile>
72
+ </template>
73
+ </FSSimpleTileUI>
76
74
  </template>
77
75
 
78
76
  <script lang="ts">
79
77
  import { defineComponent, type PropType } from "vue";
80
78
 
81
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
79
+ import { capNumberToString } from '@dative-gpi/foundation-shared-components/utils';
80
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
82
81
 
83
- import FSIconCard from "../FSIconCard.vue";
82
+ import FSSimpleTileUI from './FSSimpleTileUI.vue';
84
83
  import FSColor from "../FSColor.vue";
85
84
  import FSSpan from "../FSSpan.vue";
86
- import FSTile from "./FSTile.vue";
87
85
  import FSCol from "../FSCol.vue";
88
86
  import FSRow from "../FSRow.vue";
89
87
 
90
88
  export default defineComponent({
91
- name: "FSGroupTileUI",
89
+ name: "FSLocationTileUI",
92
90
  components: {
93
- FSIconCard,
91
+ FSSimpleTileUI,
94
92
  FSColor,
95
93
  FSSpan,
96
- FSTile,
97
94
  FSCol,
98
95
  FSRow
99
96
  },
@@ -108,30 +105,41 @@ export default defineComponent({
108
105
  required: false,
109
106
  default: null
110
107
  },
111
- color: {
112
- type: String,
113
- required: false,
114
- default: () => ColorEnum.Primary
115
- },
116
108
  icon: {
117
109
  type: String,
118
110
  required: false,
119
111
  default: "mdi-map-marker"
120
112
  },
113
+ address: {
114
+ type: String,
115
+ required: false
116
+ },
121
117
  deviceCount: {
122
118
  type: Number,
123
119
  required: false,
124
120
  default: 0
125
121
  },
122
+ color: {
123
+ type: String as PropType<ColorBase>,
124
+ required: false,
125
+ default: ColorEnum.Primary
126
+ },
127
+ width: {
128
+ type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
129
+ required: false,
130
+ default: () => [352, 336]
131
+ },
126
132
  modelValue: {
127
133
  type: Boolean,
128
134
  required: false,
129
135
  default: false
130
- },
136
+ }
131
137
  },
132
138
  setup() {
139
+
133
140
  return {
134
- ColorEnum
141
+ ColorEnum,
142
+ capNumberToString
135
143
  };
136
144
  }
137
145
  });
@@ -1,59 +1,18 @@
1
1
  <template>
2
- <FSClickable
3
- padding="16px"
4
- height="196px"
5
- width="148px"
6
- :border="false"
2
+ <FSSimpleTileUI
7
3
  v-bind="$attrs"
8
- >
9
- <template
10
- #default
11
- >
12
- <FSCol
13
- align="center-center"
14
- >
15
- <FSImage
16
- :imageId="imageId"
17
- width="116px"
18
- height="116px"
19
- />
20
- <FSSpan
21
- :lineClamp="2"
22
- >
23
- {{ label }}
24
- </FSSpan>
25
- </FSCol>
26
- </template>
27
- </FSClickable>
4
+ />
28
5
  </template>
29
6
 
30
7
  <script lang="ts">
31
- import { defineComponent, type PropType } from "vue";
8
+ import { defineComponent } from "vue";
32
9
 
33
- import FSCol from "../FSCol.vue";
34
- import FSSpan from "../FSSpan.vue";
35
- import FSImage from "../FSImage.vue";
36
- import FSClickable from "../FSClickable.vue";
10
+ import FSSimpleTileUI from "./FSSimpleTileUI.vue";
37
11
 
38
12
  export default defineComponent({
39
13
  name: "FSModelTileUI",
40
14
  components: {
41
- FSCol,
42
- FSSpan,
43
- FSImage,
44
- FSClickable,
45
- },
46
- props:{
47
- label: {
48
- type: String,
49
- required: false,
50
- default: null,
51
- },
52
- imageId: {
53
- type: String as PropType<string | null>,
54
- required: false,
55
- default: null,
56
- }
15
+ FSSimpleTileUI,
57
16
  }
58
17
  });
59
18
  </script>
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <FSTile
3
3
  :activeColor="ColorEnum.Primary"
4
- :editable="$props.editable"
5
4
  :width="$props.width"
6
5
  :modelValue="$props.modelValue"
7
6
  v-bind="$attrs"
@@ -108,11 +107,6 @@ export default defineComponent({
108
107
  type: Boolean,
109
108
  required: false,
110
109
  default: false
111
- },
112
- editable: {
113
- type: Boolean,
114
- required: false,
115
- default: true
116
110
  }
117
111
  },
118
112
  setup(props) {
@@ -2,7 +2,6 @@
2
2
  <FSTile
3
3
  :activeColor="$props.activeColor"
4
4
  :bottomColor="$props.bottomColor"
5
- :editable="$props.editable"
6
5
  :width="$props.width"
7
6
  :modelValue="$props.modelValue"
8
7
  v-bind="$attrs"
@@ -12,27 +11,35 @@
12
11
  width="fill"
13
12
  >
14
13
  <FSRow
15
- align="center-center"
14
+ align="center-left"
16
15
  gap="24px"
17
16
  :height="imageSize"
18
17
  :wrap="false"
19
18
  >
20
19
  <FSCol
21
- gap="6px"
20
+ gap="12px"
22
21
  :width="infoWidth"
23
22
  >
24
- <FSSpan
25
- font="text-button"
26
- :lineClamp="2"
23
+ <FSCol
24
+ gap="4px"
27
25
  >
28
- {{ $props.label }}
29
- </FSSpan>
30
- <FSSpan
31
- font="text-overline"
32
- variant="soft"
33
- >
34
- {{ $props.code }}
35
- </FSSpan>
26
+ <FSSpan
27
+ font="text-button"
28
+ :lineClamp="2"
29
+ >
30
+ {{ $props.label }}
31
+ </FSSpan>
32
+ <FSSpan
33
+ font="text-overline"
34
+ variant="soft"
35
+ >
36
+ {{ $props.code }}
37
+ </FSSpan>
38
+ </FSCol>
39
+ <slot
40
+ name="append-info"
41
+ v-bind="$attrs"
42
+ />
36
43
  </FSCol>
37
44
  <FSImage
38
45
  v-if="$props.imageId"
@@ -41,9 +48,10 @@
41
48
  :width="imageSize"
42
49
  />
43
50
  <FSIconCard
44
- v-else
51
+ v-else-if="$props.icon"
45
52
  :backgroundVariant="$props.iconBackgroundVariant"
46
53
  :backgroundColor="$props.iconBackgroundColor"
54
+ :iconColor="$props.iconColor"
47
55
  :border="$props.iconBorder"
48
56
  :icon="$props.icon"
49
57
  :size="imageSize"
@@ -78,7 +86,7 @@ export default defineComponent({
78
86
  },
79
87
  props: {
80
88
  imageId: {
81
- type: String as PropType<string>,
89
+ type: String as PropType<string | null>,
82
90
  required: false,
83
91
  default: null
84
92
  },
@@ -93,32 +101,34 @@ export default defineComponent({
93
101
  default: null
94
102
  },
95
103
  icon: {
96
- type: String as PropType<string>,
104
+ type: String as PropType<string | null>,
97
105
  required: false,
98
- default: "mdi-ab-testing"
106
+ default: null
99
107
  },
100
108
  iconBackgroundVariant: {
101
109
  type: String as PropType<"background" | "standard" | "full" | "gradient">,
102
- required: false,
103
- default: "background"
110
+ required: false
104
111
  },
105
112
  iconBackgroundColor: {
106
113
  type: [Array, String] as PropType<ColorBase | ColorBase[]>,
107
- required: false,
108
- default: ColorEnum.Background
114
+ required: false
109
115
  },
110
116
  iconBorder: {
111
117
  type: Boolean as PropType<boolean>,
112
118
  required: false,
113
119
  default: true
114
120
  },
121
+ iconColor: {
122
+ type: String as PropType<ColorBase>,
123
+ required: false
124
+ },
115
125
  activeColor: {
116
126
  type: String as PropType<ColorBase>,
117
127
  required: false,
118
128
  default: ColorEnum.Primary
119
129
  },
120
130
  bottomColor: {
121
- type: [Array, String] as PropType<ColorBase | ColorBase[]>,
131
+ type: [Array, String] as PropType<ColorBase | ColorBase[] | null>,
122
132
  required: false,
123
133
  default: ColorEnum.Light
124
134
  },
@@ -131,18 +141,13 @@ export default defineComponent({
131
141
  type: Boolean,
132
142
  required: false,
133
143
  default: false
134
- },
135
- editable: {
136
- type: Boolean,
137
- required: false,
138
- default: true
139
144
  }
140
145
  },
141
146
  setup(props) {
142
147
  const { isMobileSized } = useBreakpoints();
143
148
 
144
149
  const iconBackgroundColor = computed((): ColorBase | ColorBase[] => {
145
- return props.iconBackgroundColor ? props.bottomColor : ColorEnum.Background;
150
+ return (props.iconBackgroundColor && props.bottomColor) ? props.bottomColor : ColorEnum.Background;
146
151
  });
147
152
 
148
153
  const imageSize = computed((): number => {