@dative-gpi/foundation-shared-components 1.0.157 → 1.0.158-devices-latency-2

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 (32) hide show
  1. package/components/FSCol.vue +11 -5
  2. package/components/FSTagGroup.vue +3 -1
  3. package/components/fields/FSAutocompleteField.vue +8 -0
  4. package/components/fields/FSBaseField.vue +6 -0
  5. package/components/fields/FSIconField.vue +10 -2
  6. package/components/fields/FSSearchField.vue +1 -0
  7. package/components/fields/FSTimeRangeField.vue +6 -0
  8. package/components/lists/FSDataTableUI.vue +30 -24
  9. package/components/map/FSMap.vue +1 -3
  10. package/components/map/FSMapMarker.vue +52 -13
  11. package/components/tiles/FSEntityCountBadge.vue +83 -0
  12. package/components/tiles/FSFolderTileUI.vue +38 -4
  13. package/components/tiles/FSGroupTileUI.vue +15 -67
  14. package/components/tiles/FSGroupingTileUI.vue +52 -0
  15. package/components/tiles/FSLocationTileUI.vue +9 -28
  16. package/components/tiles/FSSimpleTileUI.vue +2 -2
  17. package/components/views/desktop/FSBaseDefaultDesktopView.vue +1 -1
  18. package/components/views/desktop/FSBaseEntityDesktopView.vue +6 -4
  19. package/components/views/mobile/FSBaseDefaultMobileView.vue +5 -5
  20. package/components/views/mobile/FSBaseEntityMobileView.vue +28 -21
  21. package/composables/index.ts +0 -1
  22. package/composables/useMapLayers.ts +60 -53
  23. package/models/index.ts +0 -1
  24. package/package.json +4 -4
  25. package/styles/components/fs_col.scss +1 -1
  26. package/tools/alertsTools.ts +2 -1
  27. package/tools/chartsTools.ts +14 -1
  28. package/components/fields/FSMagicConfigField.vue +0 -171
  29. package/components/fields/FSMagicField.vue +0 -198
  30. package/components/selects/chartSelectors/FSPlotPerSelector.vue +0 -52
  31. package/composables/useMagicFieldProvider.ts +0 -24
  32. package/models/magicFields.ts +0 -11
@@ -1,198 +0,0 @@
1
- <template>
2
- <component
3
- v-if="!$props.useOnlyAllowedValues"
4
- :is="get($props.type)"
5
- :modelValue="valueToInput"
6
- @update:modelValue="inputToValue"
7
- v-bind="$attrs"
8
- />
9
- <FSSelectField
10
- v-else
11
- itemValue="value"
12
- :items="items"
13
- :modelValue="$props.modelValue"
14
- @update:modelValue="$emit('update:modelValue', $event)"
15
- v-bind="$attrs"
16
- >
17
- <template
18
- v-if="$props.type === MagicFieldType.IconField"
19
- #selection="{ item }"
20
- >
21
- <FSRow
22
- align="center-center"
23
- :wrap="false"
24
- >
25
- <FSIcon
26
- v-if="item.raw.value"
27
- >
28
- {{ item.raw.value }}
29
- </FSIcon>
30
- <FSSpan
31
- v-if="item.raw.value !== item.raw.label"
32
- >
33
- {{ item.raw.label }}
34
- </FSSpan>
35
- </FSRow>
36
- </template>
37
- <template
38
- v-if="$props.type === MagicFieldType.IconField"
39
- #item-label="{ item }"
40
- >
41
- <FSRow
42
- align="center-center"
43
- :wrap="false"
44
- >
45
- <FSIcon
46
- v-if="item.raw.value"
47
- >
48
- {{ item.raw.value }}
49
- </FSIcon>
50
- <FSSpan
51
- v-if="item.raw.value !== item.raw.label"
52
- >
53
- {{ item.raw.label }}
54
- </FSSpan>
55
- </FSRow>
56
- </template>
57
- </FSSelectField>
58
- </template>
59
-
60
- <script lang="ts">
61
- import { computed, defineComponent, type PropType } from "vue";
62
-
63
- import { useTranslations as useTranslationsProvider } from "@dative-gpi/bones-ui/composables";
64
-
65
- import { useDateFormat } from "@dative-gpi/foundation-shared-services/composables";
66
-
67
- import { useMagicFieldProvider } from "../../composables";
68
- import { MagicFieldType } from "../../models/magicFields";
69
- import { getTimeBestString, timeStepToString } from "../../utils";
70
-
71
- import FSSelectField from "./FSSelectField.vue";
72
- import FSIcon from "../FSIcon.vue";
73
- import FSSpan from "../FSSpan.vue";
74
- import FSRow from "../FSRow.vue";
75
-
76
- export default defineComponent({
77
- name: "FSMagicField",
78
- components: {
79
- FSSelectField,
80
- FSIcon,
81
- FSSpan,
82
- FSRow
83
- },
84
- props: {
85
- type: {
86
- type: Number as PropType<MagicFieldType>,
87
- required: false,
88
- default: MagicFieldType.TextField
89
- },
90
- modelValue: {
91
- type: String as PropType<string | null>,
92
- required: false,
93
- default: null
94
- },
95
- allowedValues: {
96
- type: Array as PropType<{ value: string; label: string }[]>,
97
- required: false,
98
- default: () => []
99
- },
100
- useOnlyAllowedValues: {
101
- type: Boolean,
102
- required: false,
103
- default: false
104
- },
105
- },
106
- emits: ["update:modelValue"],
107
- setup(props, { emit }) {
108
- const { epochToShortTimeFormat } = useDateFormat();
109
- const { $tr } = useTranslationsProvider();
110
- const { get } = useMagicFieldProvider();
111
-
112
- const items = computed(() => props.allowedValues.map((av) => ({
113
- value: av.value,
114
- label: av.label || asString(av.value),
115
- })));
116
-
117
- const valueToInput = computed((): any => {
118
- if (props.modelValue == null) {
119
- return null;
120
- }
121
-
122
- switch (props.type) {
123
- case MagicFieldType.NumberField:
124
- case MagicFieldType.DateTimeField:
125
- case MagicFieldType.TimeField:
126
- if (isNaN(parseFloat(props.modelValue))) {
127
- return null;
128
- }
129
- return parseFloat(props.modelValue);
130
- case MagicFieldType.Switch:
131
- return props.modelValue === "true";
132
- case MagicFieldType.TimeStepField:
133
- return JSON.parse(props.modelValue);
134
- case MagicFieldType.PlotPerField:
135
- return parseInt(props.modelValue);
136
- default:
137
- return props.modelValue;
138
- }
139
- });
140
-
141
- const asString = (value: string): string | null => {
142
- if (value == null) {
143
- return "";
144
- }
145
-
146
- switch (props.type) {
147
- case MagicFieldType.NumberField:
148
- return value.toString();
149
- case MagicFieldType.Switch:
150
- if (value) {
151
- return $tr("magic-field.true", "True");
152
- }
153
- return $tr("magic-field.false", "False");
154
- case MagicFieldType.DateTimeField:
155
- return epochToShortTimeFormat(parseFloat(value));
156
- case MagicFieldType.TimeField:
157
- return getTimeBestString(parseFloat(value));
158
- case MagicFieldType.TimeStepField:
159
- return timeStepToString(JSON.parse(value));
160
- default:
161
- return value;
162
- }
163
- }
164
-
165
- const inputToValue = (value: any) => {
166
- if (value == null) {
167
- emit("update:modelValue", null);
168
- }
169
-
170
- switch (props.type) {
171
- case MagicFieldType.NumberField:
172
- case MagicFieldType.Switch:
173
- case MagicFieldType.DateTimeField:
174
- case MagicFieldType.TimeField:
175
- emit("update:modelValue", value.toString());
176
- break;
177
- case MagicFieldType.TimeStepField:
178
- emit("update:modelValue", JSON.stringify(value));
179
- break;
180
- case MagicFieldType.PlotPerField:
181
- emit("update:modelValue", value.toString());
182
- break;
183
- default:
184
- emit("update:modelValue", value);
185
- break;
186
- }
187
- };
188
-
189
- return {
190
- MagicFieldType,
191
- valueToInput,
192
- items,
193
- inputToValue,
194
- get
195
- };
196
- },
197
- });
198
- </script>
@@ -1,52 +0,0 @@
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>
@@ -1,24 +0,0 @@
1
- import { defineAsyncComponent } from "vue";
2
-
3
- import { MagicFieldType } from "../models/magicFields";
4
-
5
- const FIELDS = {
6
- [MagicFieldType.NumberField] : defineAsyncComponent(() => import("../components/fields/FSNumberField.vue")),
7
- [MagicFieldType.TextField] : defineAsyncComponent(() => import("../components/fields/FSTextField.vue")),
8
- [MagicFieldType.Switch] : defineAsyncComponent(() => import("../components/FSSwitch.vue")),
9
- [MagicFieldType.DateTimeField] : defineAsyncComponent(() => import("../components/fields/FSDateTimeField.vue")),
10
- [MagicFieldType.IconField] : defineAsyncComponent(() => import("../components/fields/FSIconField.vue")),
11
- [MagicFieldType.TimeField] : defineAsyncComponent(() => import("../components/fields/FSTimeField.vue")),
12
- [MagicFieldType.TimeStepField] : defineAsyncComponent(() => import("../components/fields/FSTimeStepField.vue")),
13
- [MagicFieldType.PlotPerField] : defineAsyncComponent(() => import("../components/selects/chartSelectors/FSPlotPerSelector.vue")),
14
- };
15
-
16
- export const useMagicFieldProvider = () => {
17
- const get = (code: keyof typeof FIELDS) => {
18
- return FIELDS[code];
19
- };
20
-
21
- return {
22
- get
23
- };
24
- };
@@ -1,11 +0,0 @@
1
- export enum MagicFieldType {
2
- None = 0,
3
- NumberField = 1,
4
- Switch = 2,
5
- TextField = 3,
6
- DateTimeField = 4,
7
- IconField = 5,
8
- TimeField = 6,
9
- TimeStepField = 7,
10
- PlotPerField = 8,
11
- }