@dative-gpi/foundation-shared-components 1.0.66 → 1.0.67-map-edit

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 (294) hide show
  1. package/assets/images/map/snow.png +0 -0
  2. package/components/FSAccordionPanel.vue +40 -21
  3. package/components/FSBreadcrumbs.vue +21 -12
  4. package/components/FSButton.vue +11 -9
  5. package/components/FSCalendar.vue +50 -12
  6. package/components/FSCalendarTwin.vue +95 -43
  7. package/components/FSCard.vue +61 -9
  8. package/components/FSCardPlaceholder.vue +8 -5
  9. package/components/FSCheckbox.vue +5 -4
  10. package/components/FSChip.vue +73 -45
  11. package/components/FSChipGroup.vue +69 -0
  12. package/components/FSClickable.vue +11 -9
  13. package/components/FSClock.vue +30 -12
  14. package/components/FSCol.vue +11 -5
  15. package/components/FSDialog.vue +2 -1
  16. package/components/FSDialogContent.vue +12 -11
  17. package/components/FSDialogForm.vue +22 -2
  18. package/components/FSDialogFormBody.vue +50 -31
  19. package/components/FSDialogMenu.vue +17 -8
  20. package/components/FSDialogMultiFormBody.vue +23 -13
  21. package/components/FSDialogRemove.vue +7 -8
  22. package/components/FSDialogSubmit.vue +20 -11
  23. package/components/FSEditImageUI.vue +13 -5
  24. package/components/FSFadeOut.vue +53 -21
  25. package/components/FSForm.vue +10 -8
  26. package/components/FSGrid.vue +0 -1
  27. package/components/FSIcon.vue +2 -2
  28. package/components/FSIconCard.vue +68 -12
  29. package/components/FSInformationsMenu.vue +142 -0
  30. package/components/FSInstantPicker.vue +268 -0
  31. package/components/FSLink.vue +25 -9
  32. package/components/FSLoader.vue +28 -10
  33. package/components/FSMenu.vue +47 -0
  34. package/components/FSOptionGroup.vue +8 -8
  35. package/components/FSOptionItem.vue +4 -4
  36. package/components/FSOptionsMenu.vue +165 -0
  37. package/components/FSPagination.vue +1 -1
  38. package/components/FSPlayButtons.vue +72 -0
  39. package/components/FSProgressBar.vue +94 -0
  40. package/components/FSRadio.vue +5 -4
  41. package/components/FSRadioGroup.vue +3 -3
  42. package/components/FSRangePicker.vue +275 -0
  43. package/components/FSRangeSlider.vue +84 -0
  44. package/components/FSRouterLink.vue +42 -0
  45. package/components/FSSlideGroup.vue +19 -5
  46. package/components/FSSlider.vue +44 -79
  47. package/components/FSSpan.vue +12 -7
  48. package/components/FSSwitch.vue +44 -48
  49. package/components/FSTab.vue +15 -13
  50. package/components/FSTabs.vue +32 -7
  51. package/components/FSTag.vue +3 -3
  52. package/components/FSTagGroup.vue +6 -4
  53. package/components/FSText.vue +11 -7
  54. package/components/FSToggleSet.vue +7 -7
  55. package/components/FSWindow.vue +122 -5
  56. package/components/FSWrapGroup.vue +13 -1
  57. package/components/agenda/FSAgenda.vue +26 -7
  58. package/components/agenda/FSAgendaDialogCalendar.vue +2 -2
  59. package/components/agenda/FSAgendaHeader.vue +35 -10
  60. package/components/agenda/FSAgendaHorizontalEvent.vue +18 -6
  61. package/components/agenda/FSAgendaHoursRow.vue +48 -8
  62. package/components/agenda/FSAgendaVerticalEvent.vue +1 -1
  63. package/components/agenda/FSDayAgenda.vue +0 -1
  64. package/components/agenda/FSMonthAgenda.vue +1 -6
  65. package/components/agenda/FSSelectAgendaMode.vue +2 -2
  66. package/components/agenda/FSWeekAgenda.vue +5 -10
  67. package/components/autocompletes/FSAutoCompleteAddress.vue +25 -20
  68. package/components/autocompletes/FSAutocompleteLanguage.vue +7 -1
  69. package/components/autocompletes/FSAutocompleteTimeZone.vue +7 -1
  70. package/components/buttons/FSButtonAdd.vue +1 -1
  71. package/components/buttons/FSButtonAddLabel.vue +1 -1
  72. package/components/buttons/FSButtonCancel.vue +1 -1
  73. package/components/buttons/FSButtonCancelLabel.vue +1 -1
  74. package/components/buttons/FSButtonCheckbox.vue +4 -4
  75. package/components/buttons/FSButtonCopy.vue +1 -1
  76. package/components/buttons/FSButtonCopyLabel.vue +1 -1
  77. package/components/buttons/FSButtonDuplicate.vue +1 -1
  78. package/components/buttons/FSButtonDuplicateLabel.vue +1 -1
  79. package/components/buttons/FSButtonEdit.vue +1 -1
  80. package/components/buttons/FSButtonEditLabel.vue +1 -1
  81. package/components/buttons/FSButtonFile.vue +1 -1
  82. package/components/buttons/FSButtonFileLabel.vue +1 -1
  83. package/components/buttons/FSButtonNext.vue +1 -1
  84. package/components/buttons/FSButtonNextLabel.vue +1 -1
  85. package/components/buttons/FSButtonPrevious.vue +1 -1
  86. package/components/buttons/FSButtonPreviousLabel.vue +1 -1
  87. package/components/buttons/FSButtonRedo.vue +1 -1
  88. package/components/buttons/FSButtonRedoLabel.vue +1 -1
  89. package/components/buttons/FSButtonRemove.vue +1 -1
  90. package/components/buttons/FSButtonRemoveLabel.vue +1 -1
  91. package/components/buttons/FSButtonSave.vue +1 -1
  92. package/components/buttons/FSButtonSaveLabel.vue +1 -1
  93. package/components/buttons/FSButtonSearch.vue +1 -1
  94. package/components/buttons/FSButtonSearchLabel.vue +1 -1
  95. package/components/buttons/FSButtonUndo.vue +1 -1
  96. package/components/buttons/FSButtonUndoLabel.vue +1 -1
  97. package/components/buttons/FSButtonUpdate.vue +1 -1
  98. package/components/buttons/FSButtonUpdateLabel.vue +1 -1
  99. package/components/buttons/FSButtonValidate.vue +1 -1
  100. package/components/buttons/FSButtonValidateLabel.vue +1 -1
  101. package/components/calendar/FSSimpleCalendar.vue +145 -0
  102. package/components/calendar/FSSimpleCalendarHeader.vue +60 -0
  103. package/components/calendar/FSSimpleMonthSelector.vue +138 -0
  104. package/components/deviceOrganisations/FSConnectivity.vue +5 -3
  105. package/components/deviceOrganisations/FSStatus.vue +5 -3
  106. package/components/deviceOrganisations/FSStatusCard.vue +7 -9
  107. package/components/deviceOrganisations/FSStatusRichCard.vue +171 -0
  108. package/components/deviceOrganisations/FSWorstAlert.vue +24 -36
  109. package/components/deviceOrganisations/FSWorstAlertCard.vue +8 -47
  110. package/components/fields/FSAutocompleteField.vue +85 -82
  111. package/components/fields/FSAutocompleteTag.vue +1 -1
  112. package/components/fields/FSBaseField.vue +42 -25
  113. package/components/fields/FSClosableSearchField.vue +83 -0
  114. package/components/fields/FSColorField.vue +12 -10
  115. package/components/fields/FSCommentField.vue +28 -16
  116. package/components/fields/FSDateField.vue +13 -10
  117. package/components/fields/FSDateRangeField.vue +6 -5
  118. package/components/fields/FSDateTimeField.vue +14 -11
  119. package/components/fields/FSDateTimeRangeDialog.vue +160 -0
  120. package/components/fields/FSDateTimeRangeField.vue +23 -115
  121. package/components/fields/FSEntityFieldUI.vue +19 -16
  122. package/components/fields/FSGradientField.vue +5 -5
  123. package/components/fields/FSIconField.vue +16 -9
  124. package/components/fields/FSMagicConfigField.vue +15 -7
  125. package/components/fields/FSMagicField.vue +7 -2
  126. package/components/fields/FSNumberField.vue +8 -4
  127. package/components/fields/FSPasswordField.vue +7 -7
  128. package/components/fields/FSRichTextField.vue +78 -58
  129. package/components/fields/FSSearchField.vue +9 -115
  130. package/components/fields/FSSelectField.vue +69 -71
  131. package/components/fields/FSTagField.vue +9 -9
  132. package/components/fields/FSTermField.vue +69 -46
  133. package/components/fields/FSTextArea.vue +17 -11
  134. package/components/fields/FSTextField.vue +15 -10
  135. package/components/fields/FSTimeField.vue +14 -10
  136. package/components/fields/FSTimeRangeField.vue +310 -0
  137. package/components/fields/FSTimeStepField.vue +5 -5
  138. package/components/fields/FSTranslateField.vue +10 -10
  139. package/components/fields/FSTranslateRichTextField.vue +41 -20
  140. package/components/fields/FSTranslateTextArea.vue +10 -10
  141. package/components/fields/FSTreeViewField.vue +15 -13
  142. package/components/fields/periodicField/FSPeriodicDailyField.vue +7 -7
  143. package/components/fields/periodicField/FSPeriodicField.vue +15 -15
  144. package/components/fields/periodicField/FSPeriodicMonthlyField.vue +16 -16
  145. package/components/fields/periodicField/FSPeriodicWeeklyField.vue +28 -18
  146. package/components/fields/periodicField/FSPeriodicYearlyField.vue +12 -12
  147. package/components/lists/FSDataIteratorItem.vue +23 -67
  148. package/components/lists/FSDataTableUI.vue +198 -123
  149. package/components/lists/FSDraggable.vue +2 -2
  150. package/components/lists/FSFilterButton.vue +14 -16
  151. package/components/lists/FSHeaderButton.vue +11 -9
  152. package/components/lists/FSHiddenButton.vue +9 -9
  153. package/components/lists/FSLoadDataTable.vue +10 -7
  154. package/components/lists/FSSimpleList.vue +95 -88
  155. package/components/lists/FSSimpleListItem.vue +131 -0
  156. package/components/map/FSMap.vue +144 -158
  157. package/components/map/FSMapEditLocationAddress.vue +189 -0
  158. package/components/map/FSMapFeatureGroup.vue +7 -1
  159. package/components/map/FSMapLayerButton.vue +4 -3
  160. package/components/map/FSMapMarker.vue +103 -42
  161. package/components/map/FSMapMarkerClusterGroup.vue +32 -7
  162. package/components/map/FSMapOverlay.vue +44 -24
  163. package/components/map/FSMapPolygon.vue +16 -4
  164. package/components/map/FSMapTileLayer.vue +26 -9
  165. package/components/map/layers.ts +0 -0
  166. package/components/selects/FSSelectAutoRefresh.vue +8 -8
  167. package/components/selects/FSSelectDashboardVariableType.vue +4 -3
  168. package/components/selects/FSSelectDateSetting.vue +2 -2
  169. package/components/selects/FSSelectDays.vue +8 -8
  170. package/components/selects/FSSelectListMode.vue +2 -2
  171. package/components/selects/FSSelectMapLayer.vue +68 -0
  172. package/components/selects/FSSelectMonths.vue +13 -13
  173. package/components/selects/chartSelectors/FSAggregationSelector.vue +52 -0
  174. package/components/selects/chartSelectors/FSAxisTypeSelector.vue +49 -0
  175. package/components/selects/chartSelectors/FSDisplayAsSelector.vue +53 -0
  176. package/components/selects/chartSelectors/FSFilterTypeSelector.vue +54 -0
  177. package/components/selects/chartSelectors/FSHeatmapRuleSelector.vue +54 -0
  178. package/components/selects/chartSelectors/FSOperationOnSelector.vue +53 -0
  179. package/components/selects/chartSelectors/FSPlanningTypeSelector.vue +53 -0
  180. package/components/selects/chartSelectors/FSPlotPerSelector.vue +52 -0
  181. package/components/selects/chartSelectors/FSSelectEntityType.vue +59 -0
  182. package/components/selects/chartSelectors/FSSerieTypeSelector.vue +53 -0
  183. package/components/tiles/FSAlertTileUI.vue +90 -0
  184. package/components/tiles/FSChartTileUI.vue +61 -52
  185. package/components/tiles/FSCommentTileUI.vue +38 -13
  186. package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +14 -2
  187. package/components/tiles/FSDashboardShallowTileUI.vue +14 -2
  188. package/components/tiles/FSDeviceOrganisationTileUI.vue +0 -6
  189. package/components/tiles/FSEntityCountBadge.vue +72 -0
  190. package/components/tiles/FSFolderTileUI.vue +38 -4
  191. package/components/tiles/FSGroupTileUI.vue +32 -136
  192. package/components/tiles/FSLoadTile.vue +16 -10
  193. package/components/tiles/FSLocationTileUI.vue +45 -63
  194. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -6
  195. package/components/tiles/FSSimpleTileUI.vue +30 -24
  196. package/components/tiles/FSTile.vue +46 -39
  197. package/components/tiles/FSUserOrganisationTileUI.vue +1 -7
  198. package/components/tiles/FSUserTileUI.vue +119 -0
  199. package/components/toggleSets/FSToggleSetPosition.vue +1 -1
  200. package/components/views/FSBaseView.vue +64 -0
  201. package/components/views/FSEntityView.vue +12 -146
  202. package/components/views/FSSimpleView.vue +29 -0
  203. package/components/views/desktop/FSBaseDefaultDesktopView.vue +135 -0
  204. package/components/views/desktop/FSBaseDesktopView.vue +53 -0
  205. package/components/views/desktop/FSBaseEntityDesktopView.vue +211 -0
  206. package/components/views/mobile/FSBaseDefaultMobileView.vue +133 -0
  207. package/components/views/mobile/FSBaseEntityMobileView.vue +206 -0
  208. package/components/views/mobile/FSBaseMobileView.vue +53 -0
  209. package/composables/index.ts +1 -0
  210. package/composables/useAddress.ts +40 -8
  211. package/composables/useBreakpoints.ts +40 -4
  212. package/composables/useColors.ts +16 -7
  213. package/composables/useMagicFieldProvider.ts +1 -0
  214. package/composables/useMapLayers.ts +69 -0
  215. package/composables/useSlots.ts +2 -1
  216. package/models/colors.ts +2 -1
  217. package/models/deviceAlerts.ts +1 -0
  218. package/models/magicFields.ts +1 -0
  219. package/models/map.ts +12 -10
  220. package/models/rules.ts +5 -2
  221. package/models/tables.ts +2 -1
  222. package/models/variableNode.ts +8 -5
  223. package/package.json +5 -5
  224. package/styles/components/fs_agenda.scss +4 -0
  225. package/styles/components/fs_agenda_event.scss +1 -1
  226. package/styles/components/fs_agenda_hours_row.scss +0 -8
  227. package/styles/components/fs_autocomplete_field.scss +0 -13
  228. package/styles/components/fs_breadcrumbs.scss +18 -36
  229. package/styles/components/fs_button.scss +7 -5
  230. package/styles/components/fs_calendar.scss +1 -0
  231. package/styles/components/fs_card.scss +9 -0
  232. package/styles/components/fs_chip.scss +13 -7
  233. package/styles/components/fs_clickable.scss +16 -23
  234. package/styles/components/fs_clock.scss +0 -10
  235. package/styles/components/fs_col.scss +1 -1
  236. package/styles/components/fs_color_field.scss +0 -4
  237. package/styles/components/fs_data_table.scss +6 -9
  238. package/styles/components/fs_dialog.scss +4 -10
  239. package/styles/components/fs_dialog_menu.scss +4 -2
  240. package/styles/components/fs_draggable.scss +0 -5
  241. package/styles/components/fs_fade_out.scss +10 -2
  242. package/styles/components/fs_filter_button.scss +1 -1
  243. package/styles/components/fs_hidden_button.scss +2 -7
  244. package/styles/components/fs_image_card.scss +6 -4
  245. package/styles/components/fs_magic_config_field.scss +1 -2
  246. package/styles/components/fs_map.scss +57 -17
  247. package/styles/components/fs_meta_field.scss +3 -5
  248. package/styles/components/fs_password_field.scss +4 -2
  249. package/styles/components/fs_progress_bar.scss +14 -0
  250. package/styles/components/fs_radio.scss +0 -11
  251. package/styles/components/fs_rich_text_field.scss +1 -10
  252. package/styles/components/fs_select_field.scss +4 -13
  253. package/styles/components/fs_slide_group.scss +7 -0
  254. package/styles/components/fs_slider.scss +0 -40
  255. package/styles/components/fs_span.scss +13 -5
  256. package/styles/components/fs_status_rich_card.scss +6 -0
  257. package/styles/components/fs_tabs.scss +18 -37
  258. package/styles/components/fs_tag.scss +8 -22
  259. package/styles/components/fs_text_area.scss +2 -21
  260. package/styles/components/fs_tile.scss +0 -19
  261. package/styles/components/fs_window.scss +3 -1
  262. package/styles/components/fs_wrap_group.scss +7 -0
  263. package/styles/components/index.scss +2 -6
  264. package/styles/globals/index.scss +1 -5
  265. package/styles/globals/overrides.scss +26 -54
  266. package/styles/globals/scrollbars.scss +8 -0
  267. package/styles/globals/text_fonts.scss +18 -66
  268. package/styles/globals/touchscreen.scss +2 -2
  269. package/tools/alertsTools.ts +94 -18
  270. package/tools/chartsTools.ts +155 -16
  271. package/tools/index.ts +3 -1
  272. package/tools/reportsTools.ts +38 -0
  273. package/tools/timeRangeTools.ts +125 -0
  274. package/utils/badge.ts +9 -5
  275. package/utils/filter.ts +4 -1
  276. package/utils/index.ts +2 -0
  277. package/utils/leafletMarkers.ts +4 -4
  278. package/utils/operations.ts +108 -0
  279. package/utils/picker.ts +40 -0
  280. package/utils/sort.ts +2 -2
  281. package/utils/time.ts +13 -13
  282. package/components/fields/FSTimeSlotField.vue +0 -250
  283. package/components/views/FSEntityHeader.vue +0 -343
  284. package/components/views/FSListHeader.vue +0 -83
  285. package/components/views/FSListView.vue +0 -83
  286. package/components/views/FSSkeletonView.vue +0 -100
  287. package/styles/components/fs_data_iterator_item.scss +0 -33
  288. package/styles/components/fs_icon_field.scss +0 -12
  289. package/styles/components/fs_search_field.scss +0 -3
  290. package/styles/components/fs_tag_field.scss +0 -8
  291. package/styles/components/fs_time_field.scss +0 -12
  292. package/styles/components/fs_timeslot_field.scss +0 -12
  293. package/styles/globals/breakpoints.scss +0 -20
  294. package/styles/globals/fixes.scss +0 -5
@@ -0,0 +1,52 @@
1
+ <template>
2
+ <FSAutocompleteField
3
+ :label="label ?? $tr('ui.common.plot-per','Plot per')"
4
+ :items="plotPerItems"
5
+ :modelValue="modelValue"
6
+ @update:modelValue="$emit('update:modelValue', $event)"
7
+ v-bind="$attrs"
8
+ />
9
+ </template>
10
+
11
+ <script lang="ts">
12
+ import { computed, defineComponent, type PropType } from "vue";
13
+
14
+ import {PlotPer} from "@dative-gpi/foundation-shared-domain/enums";
15
+
16
+ import { getEnumEntries } from "@dative-gpi/foundation-shared-domain/tools";
17
+ import { plotPerLabel } from "@dative-gpi/foundation-shared-components/tools";
18
+
19
+ import FSAutocompleteField from "@dative-gpi/foundation-shared-components/components/fields/FSAutocompleteField.vue";
20
+
21
+ export default defineComponent({
22
+ components: {
23
+ FSAutocompleteField
24
+ },
25
+ props: {
26
+ modelValue: {
27
+ type: Number as PropType<PlotPer>,
28
+ required: false
29
+ },
30
+ label: {
31
+ type: String,
32
+ required: false
33
+ }
34
+ },
35
+ emits: ['update:modelValue'],
36
+ setup() {
37
+
38
+ const plotPerItems = computed(()=>{
39
+ return getEnumEntries(PlotPer).filter(f=>f.value != PlotPer.None).map((f)=>{
40
+ return {
41
+ id: f.value,
42
+ label: plotPerLabel(f.value)
43
+ }
44
+ })
45
+ });
46
+
47
+ return {
48
+ plotPerItems
49
+ }
50
+ }
51
+ })
52
+ </script>
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <FSSelectField
3
+ :items="entityTypes"
4
+ :clearable="false"
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 { EntityType } from "@dative-gpi/foundation-shared-domain/enums";
17
+
18
+ import FSSelectField from "@dative-gpi/foundation-shared-components/components/fields/FSSelectField.vue";
19
+
20
+ export default defineComponent({
21
+ name: "FSSelectEntityType",
22
+ components: {
23
+ FSSelectField
24
+ },
25
+ props: {
26
+ modelValue: {
27
+ type: Number as PropType<EntityType>,
28
+ required: false,
29
+ default: EntityType.Device
30
+ },
31
+ useNone: {
32
+ type: Boolean,
33
+ required: false,
34
+ default: false
35
+ }
36
+ },
37
+ emits: ["update:modelValue"],
38
+ setup(props) {
39
+ const { $tr } = useTranslationsProvider();
40
+
41
+ const entityTypes = computed((): { id: EntityType; label: string }[] => {
42
+ const items = [
43
+ { id: EntityType.Model, label: $tr("ui.common.models", "Model(s)") },
44
+ { id: EntityType.Device, label: $tr("ui.common.devices", "Device(s)") },
45
+ { id: EntityType.Group, label: $tr("ui.common.groups", "Group(s)") },
46
+ { id: EntityType.Location, label: $tr("ui.common.locations", "Location(s)") }
47
+ ];
48
+ if (props.useNone) {
49
+ items.unshift({ id: EntityType.None, label: $tr("ui.common.none", "None") });
50
+ }
51
+ return items;
52
+ });
53
+
54
+ return {
55
+ entityTypes
56
+ };
57
+ }
58
+ });
59
+ </script>
@@ -0,0 +1,53 @@
1
+ <template>
2
+ <FSAutocompleteField
3
+ :label="label ?? $tr('autocomplete.serie-type.label','Serie type')"
4
+ :items="serieTypeItems"
5
+ :modelValue="modelValue"
6
+ @update:modelValue="$emit('update:modelValue', $event)"
7
+ v-bind="$attrs"
8
+ />
9
+ </template>
10
+
11
+ <script lang="ts">
12
+ import { computed, defineComponent, type PropType } from "vue";
13
+
14
+ import {SerieType} from "@dative-gpi/foundation-shared-domain/enums";
15
+
16
+ import { getEnumEntries } from "@dative-gpi/foundation-shared-domain/tools";
17
+ import { serieTypeLabel } from "@dative-gpi/foundation-shared-components/tools";
18
+
19
+ import FSAutocompleteField from "@dative-gpi/foundation-shared-components/components/fields/FSAutocompleteField.vue";
20
+
21
+
22
+ export default defineComponent({
23
+ components: {
24
+ FSAutocompleteField
25
+ },
26
+ props: {
27
+ modelValue: {
28
+ type: Number as PropType<SerieType>,
29
+ required: false
30
+ },
31
+ label: {
32
+ type: String,
33
+ required: false
34
+ }
35
+ },
36
+ emits: ['update:modelValue'],
37
+ setup() {
38
+
39
+ const serieTypeItems = computed(()=>{
40
+ return getEnumEntries(SerieType).filter(f=>f.value != SerieType.None).map((f)=>{
41
+ return {
42
+ id: f.value,
43
+ label: serieTypeLabel(f.value)
44
+ }
45
+ })
46
+ });
47
+
48
+ return {
49
+ serieTypeItems
50
+ }
51
+ }
52
+ })
53
+ </script>
@@ -0,0 +1,90 @@
1
+
2
+ <template>
3
+ <FSTile
4
+ width="200px"
5
+ height="130px"
6
+ borderRadius="6px"
7
+ v-bind="$attrs"
8
+ >
9
+ <FSCol
10
+ align="center-center"
11
+ gap="6px"
12
+ >
13
+ <FSIcon
14
+ :icon="$props.icon"
15
+ size="24px"
16
+ />
17
+ <FSSpan
18
+ :lineClamp="1"
19
+ >
20
+ {{ $props.label }}
21
+ </FSSpan>
22
+ <FSSpan
23
+ font="text-overline"
24
+ :lineClamp="1"
25
+ >
26
+ {{ epochToShortTimeFormat($props.triggerProcessedTimestamp) }}
27
+ </FSSpan>
28
+ <FSSpan
29
+ font="text-overline"
30
+ :lineClamp="1"
31
+ >
32
+ {{ $props.deviceOrganisationLabel }}
33
+ </FSSpan>
34
+ </FSCol>
35
+ </FSTile>
36
+ </template>
37
+
38
+ <script lang="ts">
39
+ import { defineComponent } from "vue";
40
+ import type { PropType } from "vue";
41
+
42
+ import { useDateFormat } from "@dative-gpi/foundation-shared-services/composables";
43
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
44
+
45
+ import FSTile from "./FSTile.vue";
46
+ import FSSpan from "../FSSpan.vue";
47
+ import FSIcon from "../FSIcon.vue";
48
+ import FSCol from "../FSCol.vue";
49
+
50
+
51
+ export default defineComponent({
52
+ name: "FSAlertTileUI",
53
+ components: {
54
+ FSTile,
55
+ FSIcon,
56
+ FSSpan,
57
+ FSCol,
58
+ },
59
+ props: {
60
+ label: {
61
+ type: String as PropType<string | null>,
62
+ required: false,
63
+ default: null
64
+ },
65
+ deviceOrganisationLabel: {
66
+ type: String as PropType<string | null>,
67
+ required: false,
68
+ default: null
69
+ },
70
+ icon: {
71
+ type: String as PropType<string | null>,
72
+ required: false,
73
+ default: null
74
+ },
75
+ triggerProcessedTimestamp: {
76
+ type: Number as PropType<number | null>,
77
+ required: false,
78
+ default: null
79
+ }
80
+ },
81
+ setup() {
82
+ const { epochToShortTimeFormat } = useDateFormat();
83
+
84
+ return {
85
+ ColorEnum,
86
+ epochToShortTimeFormat
87
+ };
88
+ }
89
+ });
90
+ </script>
@@ -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"
@@ -147,11 +146,6 @@ export default defineComponent({
147
146
  type: Boolean,
148
147
  required: false,
149
148
  default: false
150
- },
151
- editable: {
152
- type: Boolean,
153
- required: false,
154
- default: true
155
149
  }
156
150
  },
157
151
  setup(props) {
@@ -0,0 +1,72 @@
1
+ <template>
2
+ <FSRow
3
+ align="center-left"
4
+ >
5
+ <FSColor
6
+ height="24px"
7
+ :color="$props.color"
8
+ :border="false"
9
+ >
10
+ <FSRow
11
+ align="center-center"
12
+ width="24px"
13
+ >
14
+ <FSSpan
15
+ font="text-overline"
16
+ >
17
+ {{ badgeContent }}
18
+ </FSSpan>
19
+ </FSRow>
20
+ </FSColor>
21
+ <FSSpan
22
+ font="text-overline"
23
+ >
24
+ {{ $props.label }}
25
+ </FSSpan>
26
+ </FSRow>
27
+ </template>
28
+
29
+ <script lang="ts">
30
+ import { computed, defineComponent, type PropType } from "vue";
31
+
32
+ import { capNumberToString } from '@dative-gpi/foundation-shared-components/utils';
33
+
34
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
35
+
36
+ import FSColor from "../FSColor.vue";
37
+ import FSSpan from "../FSSpan.vue";
38
+ import FSRow from "../FSRow.vue";
39
+
40
+ export default defineComponent({
41
+ name: "FSEntityCountBadge",
42
+ props: {
43
+ label: {
44
+ type: String,
45
+ required: true
46
+ },
47
+ count: {
48
+ type: Number,
49
+ required: true
50
+ },
51
+ color: {
52
+ type: String as PropType<ColorBase>,
53
+ required: false,
54
+ default: () => ColorEnum.Primary
55
+ }
56
+ },
57
+ components: {
58
+ FSColor,
59
+ FSSpan,
60
+ FSRow
61
+ },
62
+ setup(props){
63
+
64
+ const badgeContent = computed(() => capNumberToString(props.count));
65
+
66
+ return {
67
+ ColorEnum,
68
+ badgeContent
69
+ };
70
+ }
71
+ });
72
+ </script>