@dative-gpi/foundation-shared-components 1.0.174 → 1.0.176
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.
- package/components/tiles/FSEntityCountBadge.vue +12 -1
- package/components/tiles/FSGroupingTileUI.vue +45 -0
- package/components/tiles/FSSimpleTileUI.vue +2 -2
- package/composables/index.ts +0 -1
- package/models/index.ts +0 -1
- package/package.json +4 -4
- package/tools/chartsTools.ts +1 -0
- package/components/fields/FSMagicConfigField.vue +0 -171
- package/components/fields/FSMagicField.vue +0 -198
- package/components/selects/chartSelectors/FSPlotPerSelector.vue +0 -52
- package/composables/useMagicFieldProvider.ts +0 -24
- package/models/magicFields.ts +0 -11
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
<FSColor
|
|
6
6
|
height="24px"
|
|
7
7
|
:color="$props.color"
|
|
8
|
-
:border="
|
|
8
|
+
:border="$props.border"
|
|
9
|
+
:variant="$props.variant"
|
|
9
10
|
>
|
|
10
11
|
<FSRow
|
|
11
12
|
align="center-center"
|
|
@@ -52,6 +53,16 @@ export default defineComponent({
|
|
|
52
53
|
type: String as PropType<ColorBase>,
|
|
53
54
|
required: false,
|
|
54
55
|
default: () => ColorEnum.Primary
|
|
56
|
+
},
|
|
57
|
+
border: {
|
|
58
|
+
type: Boolean,
|
|
59
|
+
required: false,
|
|
60
|
+
default: false
|
|
61
|
+
},
|
|
62
|
+
variant: {
|
|
63
|
+
type: String as PropType<"standard" | "full">,
|
|
64
|
+
required: false,
|
|
65
|
+
default: "standard"
|
|
55
66
|
}
|
|
56
67
|
},
|
|
57
68
|
components: {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<FSSimpleTileUI
|
|
3
|
+
:bottomColor="null"
|
|
4
|
+
v-bind="$attrs"
|
|
5
|
+
>
|
|
6
|
+
<template
|
|
7
|
+
#append-info
|
|
8
|
+
>
|
|
9
|
+
<FSEntityCountBadge
|
|
10
|
+
:label="$tr('ui.common.subgroupings', 'Categories')"
|
|
11
|
+
:count="$props.subgroupingCount ?? 0"
|
|
12
|
+
:color="ColorEnum.Primary"
|
|
13
|
+
/>
|
|
14
|
+
</template>
|
|
15
|
+
</FSSimpleTileUI>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script lang="ts">
|
|
19
|
+
import { defineComponent } from "vue";
|
|
20
|
+
|
|
21
|
+
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
22
|
+
|
|
23
|
+
import FSEntityCountBadge from "./FSEntityCountBadge.vue";
|
|
24
|
+
import FSSimpleTileUI from './FSSimpleTileUI.vue';
|
|
25
|
+
|
|
26
|
+
export default defineComponent({
|
|
27
|
+
name: "FSGroupingTileUI",
|
|
28
|
+
components: {
|
|
29
|
+
FSSimpleTileUI,
|
|
30
|
+
FSEntityCountBadge
|
|
31
|
+
},
|
|
32
|
+
props: {
|
|
33
|
+
subgroupingCount: {
|
|
34
|
+
type: Number,
|
|
35
|
+
required: false,
|
|
36
|
+
default: null
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
setup() {
|
|
40
|
+
return {
|
|
41
|
+
ColorEnum,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
</script>
|
|
@@ -128,7 +128,7 @@ export default defineComponent({
|
|
|
128
128
|
default: ColorEnum.Primary
|
|
129
129
|
},
|
|
130
130
|
bottomColor: {
|
|
131
|
-
type: [Array, String] as PropType<ColorBase | ColorBase[]>,
|
|
131
|
+
type: [Array, String] as PropType<ColorBase | ColorBase[] | null>,
|
|
132
132
|
required: false,
|
|
133
133
|
default: ColorEnum.Light
|
|
134
134
|
},
|
|
@@ -147,7 +147,7 @@ export default defineComponent({
|
|
|
147
147
|
const { isMobileSized } = useBreakpoints();
|
|
148
148
|
|
|
149
149
|
const iconBackgroundColor = computed((): ColorBase | ColorBase[] => {
|
|
150
|
-
return props.iconBackgroundColor
|
|
150
|
+
return props.iconBackgroundColor ?? ColorEnum.Background;
|
|
151
151
|
});
|
|
152
152
|
|
|
153
153
|
const imageSize = computed((): number => {
|
package/composables/index.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from "./useAutocomplete";
|
|
|
3
3
|
export * from "./useBreakpoints";
|
|
4
4
|
export * from "./useColors";
|
|
5
5
|
export * from "./useDebounce";
|
|
6
|
-
export * from "./useMagicFieldProvider";
|
|
7
6
|
export * from "./useMapLayers";
|
|
8
7
|
export * from "./useRules";
|
|
9
8
|
export * from "./useSlots";
|
package/models/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dative-gpi/foundation-shared-components",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.176",
|
|
5
5
|
"description": "",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"author": "",
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@dative-gpi/foundation-shared-domain": "1.0.
|
|
14
|
-
"@dative-gpi/foundation-shared-services": "1.0.
|
|
13
|
+
"@dative-gpi/foundation-shared-domain": "1.0.176",
|
|
14
|
+
"@dative-gpi/foundation-shared-services": "1.0.176"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@dative-gpi/bones-ui": "^1.0.0",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"sass": "1.71.1",
|
|
36
36
|
"sass-loader": "13.3.2"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "a485013f28c746c842b4a917a0f8a9484b641ec8"
|
|
39
39
|
}
|
package/tools/chartsTools.ts
CHANGED
|
@@ -178,6 +178,7 @@ export const plotPerLabel = (plotper: PlotPer | number): string => {
|
|
|
178
178
|
case PlotPer.Group: return $tr("ui.common.group", "Group");
|
|
179
179
|
case PlotPer.Location: return $tr("ui.common.location", "Location");
|
|
180
180
|
case PlotPer.Device: return $tr("ui.common.device", "Device");
|
|
181
|
+
case PlotPer.Grouping: return $tr("ui.plot-per.grouping", "Personalized");
|
|
181
182
|
default: return $tr("ui.common.none", "None");
|
|
182
183
|
}
|
|
183
184
|
};
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<FSRow
|
|
3
|
-
class="fs-magic-config-field"
|
|
4
|
-
>
|
|
5
|
-
<component
|
|
6
|
-
v-if="$props.type"
|
|
7
|
-
class="fs-magic-config-field-value"
|
|
8
|
-
:is="get($props.type)"
|
|
9
|
-
:label="$tr('ui.common.value', 'Value')"
|
|
10
|
-
:disabled="$props.disabled"
|
|
11
|
-
:required="true"
|
|
12
|
-
:rules="rules"
|
|
13
|
-
:modelValue="valueToInput"
|
|
14
|
-
@update:modelValue="inputToValue"
|
|
15
|
-
/>
|
|
16
|
-
<FSRow
|
|
17
|
-
gap="24px"
|
|
18
|
-
>
|
|
19
|
-
<FSTranslateField
|
|
20
|
-
:label="$tr('entity.common.label', 'Label')"
|
|
21
|
-
:disabled="$props.disabled"
|
|
22
|
-
:modelValue="$props.labelDefault"
|
|
23
|
-
:translations="$props.translations"
|
|
24
|
-
@update:modelValue="$emit('update:labelDefault', $event)"
|
|
25
|
-
@update:translations="$emit('update:translations', $event)"
|
|
26
|
-
/>
|
|
27
|
-
<FSRow
|
|
28
|
-
class="fs-magic-config-field-actions"
|
|
29
|
-
width="hug"
|
|
30
|
-
:wrap="false"
|
|
31
|
-
>
|
|
32
|
-
<FSButtonRemoveIcon
|
|
33
|
-
@click="$emit('click:remove')"
|
|
34
|
-
/>
|
|
35
|
-
<FSButtonAddIcon
|
|
36
|
-
@click="$emit('click:add')"
|
|
37
|
-
/>
|
|
38
|
-
</FSRow>
|
|
39
|
-
</FSRow>
|
|
40
|
-
</FSRow>
|
|
41
|
-
</template>
|
|
42
|
-
|
|
43
|
-
<script lang="ts">
|
|
44
|
-
import { computed, defineComponent, type PropType } from "vue";
|
|
45
|
-
|
|
46
|
-
import { DateRules, IconRules, NumberRules, TextRules, TimeRules, TimeStepRules, AutocompleteRules } from "../../models";
|
|
47
|
-
import { useMagicFieldProvider } from "../../composables";
|
|
48
|
-
import { MagicFieldType } from "../../models/magicFields";
|
|
49
|
-
|
|
50
|
-
import FSButtonRemoveIcon from "../buttons/FSButtonRemoveIcon.vue";
|
|
51
|
-
import FSButtonAddIcon from "../buttons/FSButtonAddIcon.vue";
|
|
52
|
-
import FSTranslateField from "./FSTranslateField.vue";
|
|
53
|
-
import FSRow from "../FSRow.vue";
|
|
54
|
-
|
|
55
|
-
export default defineComponent({
|
|
56
|
-
name: "FSMagicConfigField",
|
|
57
|
-
components: {
|
|
58
|
-
FSButtonRemoveIcon,
|
|
59
|
-
FSTranslateField,
|
|
60
|
-
FSButtonAddIcon,
|
|
61
|
-
FSRow
|
|
62
|
-
},
|
|
63
|
-
props: {
|
|
64
|
-
type: {
|
|
65
|
-
type: Number as PropType<MagicFieldType>,
|
|
66
|
-
required: false,
|
|
67
|
-
default: MagicFieldType.TextField
|
|
68
|
-
},
|
|
69
|
-
labelDefault: {
|
|
70
|
-
type: String as PropType<string | null>,
|
|
71
|
-
required: false,
|
|
72
|
-
default: null
|
|
73
|
-
},
|
|
74
|
-
modelValue: {
|
|
75
|
-
type: String as PropType<string | null>,
|
|
76
|
-
required: false,
|
|
77
|
-
default: null
|
|
78
|
-
},
|
|
79
|
-
translations: {
|
|
80
|
-
type: Array as PropType<{ languageCode: string; label: string }[]>,
|
|
81
|
-
required: false,
|
|
82
|
-
default: () => []
|
|
83
|
-
},
|
|
84
|
-
disabled: {
|
|
85
|
-
type: Boolean,
|
|
86
|
-
required: false,
|
|
87
|
-
default: false
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
emits: ["click:remove", "click:add", "update:modelValue", "update:labelDefault", "update:translations"],
|
|
91
|
-
setup(props, { emit }) {
|
|
92
|
-
const { get } = useMagicFieldProvider();
|
|
93
|
-
|
|
94
|
-
const rules = computed((): Function[] => {
|
|
95
|
-
switch (props.type) {
|
|
96
|
-
case MagicFieldType.NumberField:
|
|
97
|
-
return [NumberRules.required()];
|
|
98
|
-
case MagicFieldType.TextField:
|
|
99
|
-
return [TextRules.required()];
|
|
100
|
-
case MagicFieldType.DateTimeField:
|
|
101
|
-
return [DateRules.required()];
|
|
102
|
-
case MagicFieldType.IconField:
|
|
103
|
-
return [IconRules.required()];
|
|
104
|
-
case MagicFieldType.TimeField:
|
|
105
|
-
return [TimeRules.required()];
|
|
106
|
-
case MagicFieldType.TimeStepField:
|
|
107
|
-
return [TimeStepRules.required()];
|
|
108
|
-
case MagicFieldType.PlotPerField:
|
|
109
|
-
return [AutocompleteRules.required()];
|
|
110
|
-
}
|
|
111
|
-
return [];
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
const valueToInput = computed((): any => {
|
|
115
|
-
if (!props.modelValue) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
switch (props.type) {
|
|
120
|
-
case MagicFieldType.NumberField:
|
|
121
|
-
case MagicFieldType.DateTimeField:
|
|
122
|
-
case MagicFieldType.TimeField:
|
|
123
|
-
if (isNaN(parseFloat(props.modelValue))) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return parseFloat(props.modelValue);
|
|
127
|
-
case MagicFieldType.Switch:
|
|
128
|
-
return props.modelValue === "true";
|
|
129
|
-
case MagicFieldType.TimeStepField:
|
|
130
|
-
return JSON.parse(props.modelValue);
|
|
131
|
-
case MagicFieldType.PlotPerField:
|
|
132
|
-
return parseInt(props.modelValue);
|
|
133
|
-
default:
|
|
134
|
-
return props.modelValue;
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
const inputToValue = (value: any) => {
|
|
139
|
-
if (!value) {
|
|
140
|
-
emit("update:modelValue", null);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
switch (props.type) {
|
|
144
|
-
case MagicFieldType.NumberField:
|
|
145
|
-
case MagicFieldType.Switch:
|
|
146
|
-
case MagicFieldType.DateTimeField:
|
|
147
|
-
case MagicFieldType.TimeField:
|
|
148
|
-
emit("update:modelValue", value.toString());
|
|
149
|
-
break;
|
|
150
|
-
case MagicFieldType.TimeStepField:
|
|
151
|
-
emit("update:modelValue", JSON.stringify(value));
|
|
152
|
-
break;
|
|
153
|
-
case MagicFieldType.PlotPerField:
|
|
154
|
-
emit("update:modelValue", value.toString());
|
|
155
|
-
break;
|
|
156
|
-
default:
|
|
157
|
-
emit("update:modelValue", value);
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
return {
|
|
163
|
-
MagicFieldType,
|
|
164
|
-
valueToInput,
|
|
165
|
-
rules,
|
|
166
|
-
inputToValue,
|
|
167
|
-
get
|
|
168
|
-
};
|
|
169
|
-
},
|
|
170
|
-
});
|
|
171
|
-
</script>
|
|
@@ -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
|
-
};
|