@dative-gpi/foundation-shared-components 0.0.229 → 0.1.68

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 (228) hide show
  1. package/components/FSAccordionPanel.vue +8 -10
  2. package/components/FSBadge.vue +2 -4
  3. package/components/FSBreadcrumbs.vue +9 -10
  4. package/components/FSButton.vue +81 -31
  5. package/components/FSCalendar.vue +35 -33
  6. package/components/FSCalendarTwin.vue +77 -84
  7. package/components/FSCard.vue +29 -16
  8. package/components/FSCardPlaceholder.vue +1 -2
  9. package/components/FSCheckbox.vue +5 -7
  10. package/components/FSChip.vue +9 -11
  11. package/components/FSClickable.vue +67 -57
  12. package/components/FSClock.vue +4 -4
  13. package/components/FSCol.vue +2 -3
  14. package/components/FSColor.vue +13 -31
  15. package/components/FSColorIcon.vue +25 -9
  16. package/components/FSDialog.vue +1 -2
  17. package/components/FSDialogFormBody.vue +4 -4
  18. package/components/FSDialogMenu.vue +2 -4
  19. package/components/FSDialogMultiFormBody.vue +63 -50
  20. package/components/FSDialogRemove.vue +1 -0
  21. package/components/FSDialogSubmit.vue +5 -7
  22. package/components/FSDivider.vue +7 -9
  23. package/components/FSEditImage.vue +27 -274
  24. package/components/FSEditImageUI.vue +303 -0
  25. package/components/FSErrorToast.vue +3 -4
  26. package/components/FSFadeOut.vue +18 -13
  27. package/components/FSGrid.vue +6 -9
  28. package/components/FSGridMosaic.vue +1 -2
  29. package/components/FSIcon.vue +7 -8
  30. package/components/FSIconCard.vue +23 -30
  31. package/components/FSIconCheck.vue +1 -2
  32. package/components/FSImage.vue +21 -193
  33. package/components/FSImageCard.vue +2 -2
  34. package/components/FSImageUI.vue +212 -0
  35. package/components/FSLabel.vue +18 -20
  36. package/components/FSLink.vue +19 -21
  37. package/components/FSLoader.vue +10 -14
  38. package/components/FSOptionGroup.vue +58 -12
  39. package/components/FSPagination.vue +3 -5
  40. package/components/FSRadio.vue +5 -7
  41. package/components/FSRadioGroup.vue +2 -4
  42. package/components/FSRow.vue +3 -4
  43. package/components/FSSlideGroup.vue +15 -4
  44. package/components/FSSlider.vue +9 -11
  45. package/components/FSSpan.vue +11 -9
  46. package/components/FSSwitch.vue +65 -37
  47. package/components/FSTab.vue +2 -4
  48. package/components/FSTabs.vue +36 -16
  49. package/components/FSTag.vue +23 -14
  50. package/components/FSTagGroup.vue +3 -5
  51. package/components/FSText.vue +8 -12
  52. package/components/FSWindow.vue +11 -5
  53. package/components/FSWrapGroup.vue +15 -4
  54. package/components/agenda/FSAgenda.vue +204 -0
  55. package/components/agenda/FSAgendaDialogCalendar.vue +76 -0
  56. package/components/agenda/FSAgendaHeader.vue +190 -0
  57. package/components/agenda/FSAgendaHorizontalEvent.vue +162 -0
  58. package/components/agenda/FSAgendaHorizontalTimeLineMarker.vue +46 -0
  59. package/components/agenda/FSAgendaHoursCol.vue +103 -0
  60. package/components/agenda/FSAgendaHoursRow.vue +124 -0
  61. package/components/agenda/FSAgendaVerticalEvent.vue +160 -0
  62. package/components/agenda/FSAgendaVerticalTimeLineMarker.vue +46 -0
  63. package/components/agenda/FSDayAgenda.vue +200 -0
  64. package/components/agenda/FSMonthAgenda.vue +257 -0
  65. package/components/agenda/FSSelectAgendaMode.vue +54 -0
  66. package/components/agenda/FSWeekAgenda.vue +328 -0
  67. package/components/autocompletes/FSAutocompleteLanguage.vue +18 -39
  68. package/components/autocompletes/FSAutocompleteTimeZone.vue +20 -38
  69. package/components/buttons/FSButtonCancelMini.vue +1 -0
  70. package/components/buttons/FSButtonCopy.vue +28 -0
  71. package/components/buttons/FSButtonCopyIcon.vue +28 -0
  72. package/components/buttons/FSButtonCopyLabel.vue +27 -0
  73. package/components/buttons/FSButtonCopyMini.vue +28 -0
  74. package/components/buttons/FSButtonDragIcon.vue +27 -0
  75. package/components/buttons/FSButtonDuplicateMini.vue +1 -0
  76. package/components/buttons/FSButtonEditMini.vue +1 -0
  77. package/components/buttons/FSButtonFileMini.vue +1 -0
  78. package/components/buttons/FSButtonNextMini.vue +1 -0
  79. package/components/buttons/FSButtonPreviousMini.vue +1 -0
  80. package/components/buttons/FSButtonRedoMini.vue +1 -0
  81. package/components/buttons/FSButtonRemoveMini.vue +1 -0
  82. package/components/buttons/FSButtonSaveMini.vue +1 -0
  83. package/components/buttons/FSButtonSearchMini.vue +1 -0
  84. package/components/buttons/FSButtonUndoMini.vue +1 -0
  85. package/components/buttons/FSButtonUpdateMini.vue +1 -0
  86. package/components/buttons/FSButtonValidateMini.vue +1 -0
  87. package/components/deviceOrganisations/FSConnectivity.vue +11 -1
  88. package/components/deviceOrganisations/FSConnectivityCard.vue +20 -49
  89. package/components/deviceOrganisations/FSStatus.vue +11 -1
  90. package/components/deviceOrganisations/FSStatusCard.vue +40 -60
  91. package/components/deviceOrganisations/FSStatusesCarousel.vue +1 -0
  92. package/components/deviceOrganisations/FSStatusesRow.vue +10 -5
  93. package/components/deviceOrganisations/FSWorstAlert.vue +19 -13
  94. package/components/deviceOrganisations/FSWorstAlertCard.vue +36 -47
  95. package/components/fields/FSAutocompleteField.vue +501 -323
  96. package/components/fields/FSAutocompleteTag.vue +100 -0
  97. package/components/fields/FSBaseField.vue +26 -16
  98. package/components/fields/FSColorField.vue +63 -55
  99. package/components/fields/FSCommentField.vue +93 -0
  100. package/components/fields/FSDateField.vue +2 -2
  101. package/components/fields/FSDateRangeField.vue +2 -2
  102. package/components/fields/FSDateTimeField.vue +4 -3
  103. package/components/fields/FSDateTimeRangeField.vue +7 -6
  104. package/components/fields/FSEntityFieldUI.vue +271 -0
  105. package/components/fields/FSGradientField.vue +27 -33
  106. package/components/fields/FSIconField.vue +2 -3
  107. package/components/fields/FSMagicConfigField.vue +28 -19
  108. package/components/fields/FSMagicField.vue +25 -17
  109. package/components/fields/FSNumberField.vue +9 -7
  110. package/components/fields/FSPasswordField.vue +2 -3
  111. package/components/fields/FSRichTextField.vue +32 -5
  112. package/components/fields/FSSearchField.vue +2 -2
  113. package/components/fields/FSSelectField.vue +483 -251
  114. package/components/fields/FSTagField.vue +4 -6
  115. package/components/fields/FSTermField.vue +25 -13
  116. package/components/fields/FSTextArea.vue +18 -6
  117. package/components/fields/FSTextField.vue +13 -10
  118. package/components/fields/FSTimeField.vue +1 -1
  119. package/components/fields/FSTimeSlotField.vue +3 -4
  120. package/components/fields/FSTimeStepField.vue +157 -0
  121. package/components/fields/FSTranslateField.vue +3 -2
  122. package/components/fields/FSTranslateRichTextField.vue +4 -3
  123. package/components/fields/FSTranslateTextArea.vue +233 -0
  124. package/components/fields/FSTreeViewField.vue +7 -9
  125. package/components/fields/periodicField/FSPeriodicDailyField.vue +120 -0
  126. package/components/fields/periodicField/FSPeriodicField.vue +131 -0
  127. package/components/fields/periodicField/FSPeriodicMonthlyField.vue +222 -0
  128. package/components/fields/periodicField/FSPeriodicWeeklyField.vue +120 -0
  129. package/components/fields/periodicField/FSPeriodicYearlyField.vue +144 -0
  130. package/components/lists/FSDataIteratorItem.vue +8 -10
  131. package/components/lists/FSDataTableUI.vue +47 -39
  132. package/components/lists/FSFilterButton.vue +20 -22
  133. package/components/lists/FSHiddenButton.vue +10 -12
  134. package/components/lists/FSLoadDataTable.vue +4 -6
  135. package/components/lists/FSSimpleList.vue +229 -0
  136. package/components/map/FSMap.vue +256 -405
  137. package/components/map/FSMapFeatureGroup.vue +51 -0
  138. package/components/map/FSMapLayerButton.vue +6 -3
  139. package/components/map/FSMapMarker.vue +116 -0
  140. package/components/map/FSMapMarkerClusterGroup.vue +72 -0
  141. package/components/map/FSMapOverlay.vue +69 -83
  142. package/components/map/FSMapPolygon.vue +81 -0
  143. package/components/map/FSMapTileLayer.vue +50 -0
  144. package/components/map/keys.ts +4 -0
  145. package/components/selects/FSSelectAutoRefresh.vue +1 -1
  146. package/components/selects/FSSelectDashboardVariableType.vue +1 -1
  147. package/components/selects/FSSelectDateSetting.vue +3 -3
  148. package/components/selects/FSSelectDays.vue +1 -1
  149. package/components/selects/FSSelectListMode.vue +51 -0
  150. package/components/selects/FSSelectMonths.vue +67 -0
  151. package/components/tiles/FSChartTileUI.vue +116 -0
  152. package/components/tiles/FSCommentTileUI.vue +149 -0
  153. package/components/tiles/FSDashboardOrganisationTileUI.vue +6 -8
  154. package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +6 -8
  155. package/components/tiles/FSDashboardShallowTileUI.vue +6 -8
  156. package/components/tiles/FSDeviceOrganisationTileUI.vue +30 -18
  157. package/components/tiles/FSFolderTileUI.vue +6 -6
  158. package/components/tiles/FSGroupTileUI.vue +31 -22
  159. package/components/tiles/FSLoadTile.vue +5 -7
  160. package/components/tiles/FSLocationTileUI.vue +157 -0
  161. package/components/tiles/FSModelTileUI.vue +18 -0
  162. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +142 -0
  163. package/components/tiles/FSSimpleTileUI.vue +57 -36
  164. package/components/tiles/FSTile.vue +115 -55
  165. package/components/tiles/FSUserOrganisationTileUI.vue +25 -35
  166. package/components/toggleSets/FSToggleSetPosition.vue +1 -1
  167. package/components/views/FSEntityHeader.vue +343 -0
  168. package/components/views/FSEntityView.vue +163 -0
  169. package/components/views/FSListHeader.vue +83 -0
  170. package/components/views/FSListView.vue +83 -0
  171. package/components/views/FSSkeletonView.vue +100 -0
  172. package/composables/useAddress.ts +2 -2
  173. package/composables/useColors.ts +15 -5
  174. package/composables/useMagicFieldProvider.ts +7 -6
  175. package/composables/useSlots.ts +51 -28
  176. package/models/agenda.ts +9 -0
  177. package/models/deviceAlerts.ts +1 -1
  178. package/models/deviceConnectivities.ts +1 -1
  179. package/models/index.ts +1 -0
  180. package/models/magicFields.ts +1 -0
  181. package/models/map.ts +2 -2
  182. package/models/rules.ts +10 -5
  183. package/models/tables.ts +3 -1
  184. package/package.json +4 -4
  185. package/styles/components/fs_agenda.scss +32 -0
  186. package/styles/components/fs_agenda_event.scss +41 -0
  187. package/styles/components/fs_agenda_hours_col.scss +4 -0
  188. package/styles/components/fs_agenda_hours_row.scss +13 -0
  189. package/styles/components/fs_agenda_time_line_marker.scss +19 -0
  190. package/styles/components/fs_card.scss +0 -1
  191. package/styles/components/fs_clickable.scss +5 -3
  192. package/styles/components/fs_color_field.scss +1 -0
  193. package/styles/components/fs_data_table.scss +2 -0
  194. package/styles/components/fs_dialog.scss +11 -15
  195. package/styles/components/fs_edit_image.scss +8 -0
  196. package/styles/components/fs_fade_out.scss +2 -1
  197. package/styles/components/fs_filter_button.scss +1 -6
  198. package/styles/components/fs_gradient_field.scss +11 -11
  199. package/styles/components/fs_magic_config_field.scss +2 -2
  200. package/styles/components/fs_map.scss +36 -30
  201. package/styles/components/fs_option_group.scss +15 -5
  202. package/styles/components/fs_radio.scss +11 -0
  203. package/styles/components/fs_rich_text_field.scss +2 -1
  204. package/styles/components/fs_search_field.scss +3 -0
  205. package/styles/components/fs_select_date_settings.scss +3 -0
  206. package/styles/components/fs_slide_group.scss +5 -0
  207. package/styles/components/fs_span.scss +2 -1
  208. package/styles/components/fs_switch.scss +1 -0
  209. package/styles/components/fs_tabs.scss +9 -0
  210. package/styles/components/fs_text_area.scss +15 -1
  211. package/styles/components/fs_tile.scss +22 -6
  212. package/styles/components/fs_window.scss +5 -0
  213. package/styles/components/fs_wrap_group.scss +4 -0
  214. package/styles/components/index.scss +6 -1
  215. package/styles/globals/overrides.scss +22 -19
  216. package/styles/globals/text_fonts.scss +17 -55
  217. package/tools/alertsTools.ts +54 -0
  218. package/tools/chartsTools.ts +300 -0
  219. package/tools/index.ts +2 -0
  220. package/utils/badge.ts +9 -0
  221. package/utils/filter.ts +18 -0
  222. package/utils/index.ts +2 -0
  223. package/utils/leafletMarkers.ts +8 -2
  224. package/utils/statuses.ts +1 -1
  225. package/utils/time.ts +27 -1
  226. package/components/autocompletes/FSAutocompleteTag.vue +0 -138
  227. package/components/map/FSMapEditPointAddressOverlay.vue +0 -164
  228. package/styles/components/fs_map_overlay.scss +0 -38
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <FSSelectField
3
+ :clearable="false"
4
+ :items="items"
5
+ :modelValue="$props.modelValue"
6
+ @update:modelValue="$emit('update:modelValue', $event)"
7
+ v-bind="$attrs"
8
+ >
9
+ <template
10
+ #item-prepend="{ item }"
11
+ >
12
+ <v-icon>{{ item.icon }}</v-icon>
13
+ </template>
14
+ </FSSelectField>
15
+ </template>
16
+
17
+ <script lang="ts">
18
+ import type { PropType} from "vue";
19
+ import { defineComponent } from "vue";
20
+
21
+ import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
22
+ import { ListModes } from "@dative-gpi/foundation-shared-domain/enums";
23
+
24
+ import FSSelectField from "../fields/FSSelectField.vue";
25
+
26
+ export default defineComponent({
27
+ name: "FSSelectViewMode",
28
+ components: {
29
+ FSSelectField
30
+ },
31
+ props: {
32
+ modelValue: {
33
+ type: String as PropType<ListModes>,
34
+ required: true
35
+ },
36
+ },
37
+ emits: ["update:modelValue"],
38
+ setup() {
39
+ const { $tr } = useTranslationsProvider();
40
+
41
+ const items = [
42
+ { id: ListModes.Table, label: $tr("ui.common.table-mode", "Table"), icon: "mdi-format-list-bulleted" },
43
+ { id: ListModes.Iterator, label: $tr("ui.common.tile-mode", "Tuile"), icon: "mdi-view-grid-outline" },
44
+ ];
45
+
46
+ return {
47
+ items
48
+ };
49
+ }
50
+ });
51
+ </script>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <FSSelectField
3
+ :clearable="false"
4
+ :items="months"
5
+ :modelValue="$props.modelValue"
6
+ @update:modelValue="$emit('update:modelValue', $event)"
7
+ v-bind="$attrs"
8
+ />
9
+ </template>
10
+
11
+ <script lang="ts">
12
+ import type { PropType} from "vue";
13
+ import { computed, defineComponent } from "vue";
14
+
15
+ import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
16
+ import { Months } from "@dative-gpi/foundation-shared-domain/enums";
17
+
18
+ import FSSelectField from "../fields/FSSelectField.vue";
19
+
20
+ export default defineComponent({
21
+ name: "FSSelectMonths",
22
+ components: {
23
+ FSSelectField
24
+ },
25
+ props: {
26
+ modelValue: {
27
+ type: Number as PropType<Months>,
28
+ required: false,
29
+ default: Months.January
30
+ },
31
+ useAllMonths: {
32
+ type: Boolean,
33
+ required: false,
34
+ default: true
35
+ }
36
+ },
37
+ emits: ["update:modelValue"],
38
+ setup(props) {
39
+ const { $tr } = useTranslationsProvider();
40
+
41
+ const months = computed((): { id: Months; label: string }[] => {
42
+ const items = [
43
+ { id: Months.January, label: $tr("ui.months.january", "January") },
44
+ { id: Months.February, label: $tr("ui.months.february", "February") },
45
+ { id: Months.March, label: $tr("ui.months.march", "March") },
46
+ { id: Months.April, label: $tr("ui.months.april", "April") },
47
+ { id: Months.May, label: $tr("ui.months.may", "May") },
48
+ { id: Months.June, label: $tr("ui.months.june", "June") },
49
+ { id: Months.July, label: $tr("ui.months.july", "July") },
50
+ { id: Months.August, label: $tr("ui.months.august", "August") },
51
+ { id: Months.September, label: $tr("ui.months.september", "September") },
52
+ { id: Months.October, label: $tr("ui.months.october", "October") },
53
+ { id: Months.November, label: $tr("ui.months.november", "November") },
54
+ { id: Months.December, label: $tr("ui.months.december", "December") }
55
+ ];
56
+ if (props.useAllMonths) {
57
+ items.unshift({ id: Months.AllMonths, label: $tr("ui.months.all-months", "All months") });
58
+ }
59
+ return items;
60
+ });
61
+
62
+ return {
63
+ months
64
+ };
65
+ }
66
+ });
67
+ </script>
@@ -0,0 +1,116 @@
1
+ <template>
2
+ <FSClickable
3
+ padding="16px"
4
+ height="124px"
5
+ width="275px"
6
+ v-bind="$attrs"
7
+ >
8
+ <template
9
+ #default
10
+ >
11
+ <FSRow
12
+ align="center-left"
13
+ :wrap="false"
14
+ >
15
+ <FSCol
16
+ align="center-left"
17
+ >
18
+ <FSSpan
19
+ font="text-button"
20
+ :lineClamp="2"
21
+ >
22
+ {{ $props.label }}
23
+ </FSSpan>
24
+ <FSIcon
25
+ :color="ColorEnum.Error"
26
+ >
27
+ {{ chartIcon(type) }}
28
+ </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"
44
+ />
45
+ <FSIcon
46
+ v-else-if="$props.icon"
47
+ size="92px"
48
+ :icon="$props.icon"
49
+ />
50
+ </FSCol>
51
+ </FSRow>
52
+ </template>
53
+ </FSClickable>
54
+ </template>
55
+
56
+ <script lang="ts">
57
+ import { defineComponent } from "vue";
58
+ import type { PropType } from "vue";
59
+
60
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
61
+ import type { ChartType } from "@dative-gpi/foundation-shared-domain/enums";
62
+
63
+ import { chartIcon } from "@dative-gpi/foundation-shared-components/tools";
64
+
65
+ import FSClickable from "../FSClickable.vue";
66
+ import FSImage from "../FSImage.vue";
67
+ import FSSpan from "../FSSpan.vue";
68
+ import FSIcon from "../FSIcon.vue";
69
+ import FSRow from "../FSRow.vue";
70
+ import FSCol from "../FSCol.vue";
71
+
72
+ export default defineComponent({
73
+ name: "FSChartTileUI",
74
+ components: {
75
+ FSIcon,
76
+ FSImage,
77
+ FSRow,
78
+ FSCol,
79
+ FSSpan,
80
+ FSClickable
81
+ },
82
+ props: {
83
+ label: {
84
+ type: String as PropType<string | null>,
85
+ required: false,
86
+ default: null
87
+ },
88
+ imageId: {
89
+ type: String as PropType<string | null>,
90
+ required: false,
91
+ default: null
92
+ },
93
+ categoryLabel: {
94
+ type: String as PropType<string | null>,
95
+ required: false,
96
+ default: null
97
+ },
98
+ icon: {
99
+ type: String as PropType<string | null>,
100
+ required: false,
101
+ default: null
102
+ },
103
+ type: {
104
+ type: Number as PropType<ChartType>,
105
+ required: false,
106
+ default: null
107
+ }
108
+ },
109
+ setup() {
110
+ return {
111
+ ColorEnum,
112
+ chartIcon
113
+ };
114
+ }
115
+ });
116
+ </script>
@@ -0,0 +1,149 @@
1
+ <template>
2
+ <FSCol
3
+ align="center-center"
4
+ >
5
+ <FSCard
6
+ padding="8px"
7
+ width="500px"
8
+ >
9
+ <template
10
+ #header
11
+ >
12
+ <FSRow
13
+ align="center-center"
14
+ gap="12px"
15
+ >
16
+ <FSImage
17
+ :imageId="userImageId"
18
+ width="24px"
19
+ height="24px"
20
+ rounded="circle"
21
+ />
22
+ <FSText
23
+ font="text-overline"
24
+ >
25
+ {{ userName }}
26
+ -
27
+ {{ timestamp }}
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
+ />
38
+ </FSRow>
39
+ </template>
40
+ <template
41
+ #body
42
+ >
43
+ <FSText
44
+ class="text-wrap"
45
+ >
46
+ {{ comment }}
47
+ </FSText>
48
+ </template>
49
+ <template
50
+ #footer
51
+ >
52
+ </template>
53
+ </FSCard>
54
+ <FSCol
55
+ width="500px"
56
+ v-if="showEditComment"
57
+ >
58
+ <FSCommentField
59
+ :userImageId="userImageId"
60
+ :showCancelButton="true"
61
+ :text="comment"
62
+ @cancel="showEditComment = false"
63
+ @submit="updateComment"
64
+ />
65
+ </FSCol>
66
+ </FSCol>
67
+ </template>
68
+
69
+ <script lang="ts">
70
+ import type { PropType} from "vue";
71
+ import { defineComponent, ref } from "vue";
72
+
73
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
74
+
75
+ import FSButtonRemoveIcon from "../buttons/FSButtonRemoveIcon.vue";
76
+ import FSCommentField from "../fields/FSCommentField.vue";
77
+ import FSButtonEditIcon from "../buttons/FSButtonEditIcon.vue";
78
+ import FSImage from "../FSImage.vue";
79
+ import FSCard from "../FSCard.vue";
80
+ import FSText from "../FSText.vue";
81
+ import FSCol from "../FSCol.vue";
82
+ import FSRow from "../FSRow.vue";
83
+
84
+ export default defineComponent({
85
+ name: "FSCommentTileUI",
86
+ components: {
87
+ FSButtonRemoveIcon,
88
+ FSCommentField,
89
+ FSButtonEditIcon,
90
+ FSImage,
91
+ FSCard,
92
+ FSText,
93
+ FSCol,
94
+ FSRow,
95
+ },
96
+ props: {
97
+ id: {
98
+ type: String as PropType<string | null>,
99
+ required: false,
100
+ default: null
101
+ },
102
+ userName: {
103
+ type: String as PropType<string | null>,
104
+ required: false,
105
+ default: null
106
+ },
107
+ userImageId: {
108
+ type: String as PropType<string | null>,
109
+ required: false,
110
+ default: null
111
+ },
112
+ canEditRemove: {
113
+ type: Boolean,
114
+ required: false,
115
+ default: false
116
+ },
117
+ timestamp: {
118
+ type: String as PropType<string | null>,
119
+ required: false,
120
+ default: null
121
+ },
122
+ comment: {
123
+ type: String as PropType<string | undefined>,
124
+ required: false,
125
+ default: undefined
126
+ },
127
+ edited: {
128
+ type: Boolean,
129
+ required: false,
130
+ default: false
131
+ }
132
+ },
133
+ emits: ["edit", "remove"],
134
+ setup(props, { emit }) {
135
+ const showEditComment = ref(false);
136
+
137
+ const updateComment = (comment: string) => {
138
+ emit('edit',{commentId : props.id, comment : comment})
139
+ showEditComment.value = false;
140
+ };
141
+
142
+ return {
143
+ ColorEnum,
144
+ showEditComment,
145
+ updateComment
146
+ };
147
+ }
148
+ });
149
+ </script>
@@ -7,16 +7,17 @@
7
7
  </template>
8
8
 
9
9
  <script lang="ts">
10
- import type { PropType } from "vue";
11
- import { computed, defineComponent } from "vue";
10
+ import { computed, defineComponent, type PropType } from "vue";
12
11
 
13
- import type { ColorBase} from "@dative-gpi/foundation-shared-components/models";
14
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
12
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
15
13
 
16
14
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
17
15
 
18
16
  export default defineComponent({
19
17
  name: "FSDashboardOrganisationTileUI",
18
+ components: {
19
+ FSSimpleTileUI
20
+ },
20
21
  props: {
21
22
  bottomColor: {
22
23
  type: [Array, String] as PropType<ColorBase | ColorBase[]>,
@@ -29,9 +30,6 @@ export default defineComponent({
29
30
  default: "mdi-view-dashboard"
30
31
  }
31
32
  },
32
- components: {
33
- FSSimpleTileUI
34
- },
35
33
  setup(props){
36
34
  const color = computed(() => {
37
35
  if(Array.isArray(props.bottomColor) && !props.bottomColor.length) {
@@ -42,7 +40,7 @@ export default defineComponent({
42
40
 
43
41
  return {
44
42
  color
45
- }
43
+ };
46
44
  }
47
45
  });
48
46
  </script>
@@ -7,16 +7,17 @@
7
7
  </template>
8
8
 
9
9
  <script lang="ts">
10
- import type { PropType } from "vue";
11
- import { computed, defineComponent } from "vue";
10
+ import { computed, defineComponent, type PropType } from "vue";
12
11
 
13
- import type { ColorBase} from "@dative-gpi/foundation-shared-components/models";
14
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
12
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
15
13
 
16
14
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
17
15
 
18
16
  export default defineComponent({
19
17
  name: "FSDashboardOrganisationTypeTileUI",
18
+ components: {
19
+ FSSimpleTileUI
20
+ },
20
21
  props: {
21
22
  bottomColor: {
22
23
  type: [Array, String] as PropType<ColorBase | ColorBase[]>,
@@ -29,9 +30,6 @@ export default defineComponent({
29
30
  default: "mdi-view-dashboard"
30
31
  }
31
32
  },
32
- components: {
33
- FSSimpleTileUI
34
- },
35
33
  setup(props){
36
34
  const color = computed(() => {
37
35
  if(Array.isArray(props.bottomColor) && !props.bottomColor.length) {
@@ -42,7 +40,7 @@ export default defineComponent({
42
40
 
43
41
  return {
44
42
  color
45
- }
43
+ };
46
44
  }
47
45
  });
48
46
  </script>
@@ -7,16 +7,17 @@
7
7
  </template>
8
8
 
9
9
  <script lang="ts">
10
- import type { PropType } from "vue";
11
- import { computed, defineComponent } from "vue";
10
+ import { computed, defineComponent, type PropType } from "vue";
12
11
 
13
- import type { ColorBase} from "@dative-gpi/foundation-shared-components/models";
14
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
12
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
15
13
 
16
14
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
17
15
 
18
16
  export default defineComponent({
19
17
  name: "FSDashboardShallowTileUI",
18
+ components: {
19
+ FSSimpleTileUI
20
+ },
20
21
  props: {
21
22
  bottomColor: {
22
23
  type: [Array, String] as PropType<ColorBase | ColorBase[]>,
@@ -29,9 +30,6 @@ export default defineComponent({
29
30
  default: "mdi-view-dashboard"
30
31
  }
31
32
  },
32
- components: {
33
- FSSimpleTileUI
34
- },
35
33
  setup(props){
36
34
  const color = computed(() => {
37
35
  if(Array.isArray(props.bottomColor) && !props.bottomColor.length) {
@@ -42,7 +40,7 @@ export default defineComponent({
42
40
 
43
41
  return {
44
42
  color
45
- }
43
+ };
46
44
  }
47
45
  });
48
46
  </script>
@@ -1,9 +1,10 @@
1
1
  <template>
2
2
  <FSTile
3
+ :activeColor="ColorEnum.Primary"
3
4
  :bottomColor="ColorEnum.Primary"
4
5
  :editable="$props.editable"
5
- :modelValue="$props.modelValue"
6
6
  :width="$props.width"
7
+ :modelValue="$props.modelValue"
7
8
  v-bind="$attrs"
8
9
  >
9
10
  <FSCol
@@ -18,23 +19,23 @@
18
19
  >
19
20
  <FSCol
20
21
  gap="12px"
21
- :width="`calc(100% - ${imageSize}px - 24px)`"
22
+ :width="infoWidth"
22
23
  >
23
24
  <FSCol
24
25
  gap="6px"
25
26
  >
26
- <FSText
27
+ <FSSpan
27
28
  font="text-button"
28
29
  :lineClamp="2"
29
30
  >
30
31
  {{ $props.label }}
31
- </FSText>
32
- <FSText
32
+ </FSSpan>
33
+ <FSSpan
33
34
  font="text-overline"
34
35
  variant="soft"
35
36
  >
36
37
  {{ $props.code }}
37
- </FSText>
38
+ </FSSpan>
38
39
  </FSCol>
39
40
  <FSStatusesRow
40
41
  :deviceConnectivity="$props.deviceConnectivity"
@@ -42,6 +43,7 @@
42
43
  :deviceStatuses="singleDeviceStatuses"
43
44
  :modelStatuses="singleModelStatuses"
44
45
  :deviceAlerts="$props.deviceAlerts"
46
+ :alertTo="$props.alertTo"
45
47
  />
46
48
  </FSCol>
47
49
  <FSImage
@@ -64,18 +66,16 @@
64
66
  </template>
65
67
 
66
68
  <script lang="ts">
67
- import type { PropType } from "vue";
68
- import { computed, defineComponent } from "vue";
69
+ import { computed, defineComponent, type PropType } from "vue";
69
70
 
70
- import type { FSModelStatus, FSDeviceStatus, FSDeviceAlert, FSDeviceConnectivity } from "@dative-gpi/foundation-shared-components/models";
71
+ import { ColorEnum, type FSModelStatus, type FSDeviceStatus, type FSDeviceAlert, type FSDeviceConnectivity } from "@dative-gpi/foundation-shared-components/models";
71
72
  import { useBreakpoints } from "@dative-gpi/foundation-shared-components/composables";
72
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
73
73
 
74
74
  import FSStatusesCarousel from "../deviceOrganisations/FSStatusesCarousel.vue";
75
75
  import FSStatusesRow from "../deviceOrganisations/FSStatusesRow.vue";
76
76
  import FSDivider from "../FSDivider.vue";
77
77
  import FSImage from "../FSImage.vue";
78
- import FSText from "../FSText.vue";
78
+ import FSSpan from "../FSSpan.vue";
79
79
  import FSTile from "./FSTile.vue";
80
80
  import FSCol from "../FSCol.vue";
81
81
  import FSRow from "../FSRow.vue";
@@ -87,7 +87,7 @@ export default defineComponent({
87
87
  FSStatusesRow,
88
88
  FSDivider,
89
89
  FSImage,
90
- FSText,
90
+ FSSpan,
91
91
  FSTile,
92
92
  FSCol,
93
93
  FSRow
@@ -133,6 +133,16 @@ export default defineComponent({
133
133
  required: true,
134
134
  default: () => []
135
135
  },
136
+ alertTo: {
137
+ type: Function,
138
+ required: false,
139
+ default: null
140
+ },
141
+ width: {
142
+ type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
143
+ required: false,
144
+ default: () => [352, 336]
145
+ },
136
146
  modelValue: {
137
147
  type: Boolean,
138
148
  required: false,
@@ -142,12 +152,7 @@ export default defineComponent({
142
152
  type: Boolean,
143
153
  required: false,
144
154
  default: true
145
- },
146
- width: {
147
- type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
148
- required: false,
149
- default: () => [352, 336]
150
- },
155
+ }
151
156
  },
152
157
  setup(props) {
153
158
  const { isMobileSized } = useBreakpoints();
@@ -196,6 +201,12 @@ export default defineComponent({
196
201
  return isMobileSized.value ? 90 : 100;
197
202
  });
198
203
 
204
+ const infoWidth = computed((): string => {
205
+ if (!props.imageId) {
206
+ return "100%";
207
+ }
208
+ return `calc(100% - ${imageSize.value}px - 24px)`;
209
+ });
199
210
 
200
211
  return {
201
212
  carouselDeviceStatuses,
@@ -204,6 +215,7 @@ export default defineComponent({
204
215
  singleModelStatuses,
205
216
  ColorEnum,
206
217
  imageSize,
218
+ infoWidth
207
219
  };
208
220
  }
209
221
  });
@@ -1,18 +1,18 @@
1
1
  <template>
2
2
  <FSSimpleTileUI
3
- :iconBackgroundColor="true"
3
+ iconBackgroundVariant="gradient"
4
+ :iconBackgroundColor="color"
4
5
  :bottomColor="color"
6
+ :iconBorder="false"
5
7
  :icon="$props.icon"
6
8
  v-bind="$attrs"
7
9
  />
8
10
  </template>
9
11
 
10
12
  <script lang="ts">
11
- import type { PropType } from "vue";
12
- import { computed, defineComponent } from "vue";
13
+ import { computed, defineComponent, type PropType } from "vue";
13
14
 
14
- import type { ColorBase} from "@dative-gpi/foundation-shared-components/models";
15
- import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
15
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
16
16
 
17
17
  import FSSimpleTileUI from "./FSSimpleTileUI.vue";
18
18
 
@@ -43,7 +43,7 @@ export default defineComponent({
43
43
 
44
44
  return {
45
45
  color
46
- }
46
+ };
47
47
  }
48
48
  });
49
49
  </script>