@dative-gpi/foundation-shared-components 1.0.168 → 1.0.170

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.
@@ -44,7 +44,12 @@ export default defineComponent({
44
44
  type: String as PropType<"left" | "center" | "right">,
45
45
  required: false,
46
46
  default: "left"
47
- }
47
+ },
48
+ wordBreak: {
49
+ type: String as PropType<"normal" | "break-all" | "keep-all" | "break-word">,
50
+ required: false,
51
+ default: "normal"
52
+ },
48
53
  },
49
54
  setup(props) {
50
55
  const { fontStyles } = useBreakpoints();
@@ -53,6 +58,7 @@ export default defineComponent({
53
58
  const style = computed((): StyleValue => ({
54
59
  "--fs-span-text-align": props.align,
55
60
  "--fs-span-line-clamp": props.lineClamp.toString(),
61
+ "--fs-span-word-break": props.wordBreak,
56
62
  ...fontStyles.value
57
63
  }));
58
64
 
@@ -67,6 +73,9 @@ export default defineComponent({
67
73
  else if (props.ellipsis) {
68
74
  classNames.push("fs-span-ellipsis");
69
75
  }
76
+ if (props.wordBreak !== "normal") {
77
+ classNames.push("fs-span-word-break");
78
+ }
70
79
  return classNames;
71
80
  });
72
81
 
@@ -50,7 +50,12 @@ export default defineComponent({
50
50
  type: String as PropType<"base" | "baseContrast" | "light" | "lightContrast" | "dark" | "darkContrast" | "soft" | "softContrast">,
51
51
  required: false,
52
52
  default: "base"
53
- }
53
+ },
54
+ wordBreak: {
55
+ type: String as PropType<"normal" | "break-all" | "keep-all" | "break-word">,
56
+ required: false,
57
+ default: "normal"
58
+ },
54
59
  },
55
60
  setup(props) {
56
61
  const { fontStyles } = useBreakpoints();
@@ -62,6 +67,7 @@ export default defineComponent({
62
67
  const style = computed((): StyleValue => ({
63
68
  "--fs-span-line-clamp": props.lineClamp.toString(),
64
69
  "--fs-text-color" : colors.value[props.variant]!,
70
+ "--fs-span-word-break": props.wordBreak,
65
71
  ...fontStyles.value
66
72
  }));
67
73
 
@@ -76,6 +82,9 @@ export default defineComponent({
76
82
  else if (props.ellipsis) {
77
83
  classNames.push("fs-span-ellipsis");
78
84
  }
85
+ if (props.wordBreak !== "normal") {
86
+ classNames.push("fs-span-word-break");
87
+ }
79
88
  return classNames;
80
89
  });
81
90
 
@@ -0,0 +1,171 @@
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>
@@ -0,0 +1,198 @@
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>
@@ -0,0 +1,101 @@
1
+ <template>
2
+ <FSCol
3
+ v-if="fetching"
4
+ >
5
+ <FSLoader
6
+ variant="field"
7
+ />
8
+ <FSLoader
9
+ variant="field"
10
+ />
11
+ </FSCol>
12
+ <FSCol
13
+ v-if="legalInformation"
14
+ >
15
+ <FSRow
16
+ align="center-left"
17
+ gap="4px"
18
+ >
19
+ <FSCheckbox
20
+ :label="$tr('ui.registration.i-have-read-and-understand', 'I have read and understand the')"
21
+ :rules="[ToggleRules.required()]"
22
+ :modelValue="$props.generalConditions"
23
+ @update:modelValue="$emit('update:generalConditions', $event)"
24
+ />
25
+ <FSButton
26
+ variant="icon"
27
+ :label="$tr('ui.registration.general-conditions-of-use', 'general conditions of use')"
28
+ :color="ColorEnum.Primary"
29
+ @click="downloadFile(legalInformation.generalConditionsId)"
30
+ />
31
+ </FSRow>
32
+ <FSRow
33
+ align="center-left"
34
+ gap="4px"
35
+ >
36
+ <FSCheckbox
37
+ :label="$tr('ui.registration.i-have-read-and-understand', 'I have read and understand the')"
38
+ :rules="[ToggleRules.required()]"
39
+ :modelValue="$props.privacyPolicy"
40
+ @update:modelValue="$emit('update:privacyPolicy', $event)"
41
+ />
42
+ <FSButton
43
+ variant="icon"
44
+ :label="$tr('ui.registration.privacy-policy', 'privacy policy')"
45
+ :color="ColorEnum.Primary"
46
+ @click="downloadFile(legalInformation.privacyPolicyId)"
47
+ />
48
+ </FSRow>
49
+ </FSCol>
50
+ </template>
51
+
52
+ <script lang="ts">
53
+ import { defineComponent, onMounted } from "vue";
54
+
55
+ import FSCol from "@dative-gpi/foundation-shared-components/components/FSCol.vue";
56
+ import FSRow from "@dative-gpi/foundation-shared-components/components/FSRow.vue";
57
+ import FSCheckbox from "@dative-gpi/foundation-shared-components/components/FSCheckbox.vue";
58
+ import FSButton from "@dative-gpi/foundation-shared-components/components/FSButton.vue";
59
+ import FSLoader from "@dative-gpi/foundation-shared-components/components/FSLoader.vue";
60
+
61
+ import { useCurrentLegalInformation, useFiles } from "@dative-gpi/foundation-shared-services/composables";
62
+ import { ColorEnum, ToggleRules } from "@dative-gpi/foundation-shared-components/models";
63
+
64
+ export default defineComponent({
65
+ name: "FSPoliciesValidationField",
66
+ components: {
67
+ FSCol,
68
+ FSRow,
69
+ FSCheckbox,
70
+ FSButton,
71
+ FSLoader
72
+ },
73
+ props: {
74
+ generalConditions: {
75
+ type: Boolean,
76
+ required: false
77
+ },
78
+ privacyPolicy: {
79
+ type: Boolean,
80
+ required: false
81
+ }
82
+ },
83
+ emits: ["update:generalConditions", "update:privacyPolicy"],
84
+ setup() {
85
+ const { fetch: getLegalInformation, entity: legalInformation, fetching } = useCurrentLegalInformation();
86
+ const { downloadFile } = useFiles();
87
+
88
+ onMounted(() => {
89
+ getLegalInformation();
90
+ });
91
+
92
+ return {
93
+ legalInformation,
94
+ ToggleRules,
95
+ ColorEnum,
96
+ fetching,
97
+ downloadFile,
98
+ };
99
+ }
100
+ });
101
+ </script>
@@ -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>
@@ -5,8 +5,7 @@
5
5
  <FSColor
6
6
  height="24px"
7
7
  :color="$props.color"
8
- :border="$props.border"
9
- :variant="$props.variant"
8
+ :border="false"
10
9
  >
11
10
  <FSRow
12
11
  align="center-center"
@@ -53,16 +52,6 @@ export default defineComponent({
53
52
  type: String as PropType<ColorBase>,
54
53
  required: false,
55
54
  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"
66
55
  }
67
56
  },
68
57
  components: {
@@ -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[] | null>,
131
+ type: [Array, String] as PropType<ColorBase | ColorBase[]>,
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 ?? ColorEnum.Background;
150
+ return props.iconBackgroundColor ? props.bottomColor : ColorEnum.Background;
151
151
  });
152
152
 
153
153
  const imageSize = computed((): number => {
@@ -3,6 +3,7 @@ export * from "./useAutocomplete";
3
3
  export * from "./useBreakpoints";
4
4
  export * from "./useColors";
5
5
  export * from "./useDebounce";
6
+ export * from "./useMagicFieldProvider";
6
7
  export * from "./useMapLayers";
7
8
  export * from "./useRules";
8
9
  export * from "./useSlots";
@@ -0,0 +1,24 @@
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
+ };
package/models/index.ts CHANGED
@@ -8,6 +8,7 @@ export * from "./errors";
8
8
  export * from "./grids";
9
9
  export * from "./images";
10
10
  export * from "./map";
11
+ export * from "./magicFields";
11
12
  export * from "./modelStatuses";
12
13
  export * from "./rules";
13
14
  export * from "./tables";
@@ -0,0 +1,11 @@
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
+ }
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.168",
4
+ "version": "1.0.170",
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.168",
14
- "@dative-gpi/foundation-shared-services": "1.0.168"
13
+ "@dative-gpi/foundation-shared-domain": "1.0.170",
14
+ "@dative-gpi/foundation-shared-services": "1.0.170"
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": "979a5f1fe9ac68441c9fafb61eab835039852c69"
38
+ "gitHead": "e1e5651a8f58ade42899711614c266bdfee09a48"
39
39
  }
@@ -27,4 +27,8 @@
27
27
 
28
28
  .fs-span-pre-wrap > span {
29
29
  white-space: pre-wrap;
30
+ }
31
+
32
+ .fs-span-word-break > span {
33
+ word-break: var(--fs-span-word-break);
30
34
  }
@@ -178,7 +178,6 @@ 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");
182
181
  default: return $tr("ui.common.none", "None");
183
182
  }
184
183
  };
@@ -1,52 +0,0 @@
1
- <template>
2
- <FSSimpleTileUI
3
- :bottomColor="$props.bottomColor"
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, type PropType } from "vue";
20
-
21
-
22
- import { ColorEnum, type ColorBase } from "@dative-gpi/foundation-shared-components/models";
23
-
24
- import FSEntityCountBadge from "./FSEntityCountBadge.vue";
25
- import FSSimpleTileUI from './FSSimpleTileUI.vue';
26
-
27
- export default defineComponent({
28
- name: "FSGroupingTileUI",
29
- components: {
30
- FSSimpleTileUI,
31
- FSEntityCountBadge
32
- },
33
- props: {
34
- subgroupingCount: {
35
- type: Number,
36
- required: false,
37
- default: null
38
- },
39
- bottomColor: {
40
- type: [Array, String] as PropType<ColorBase | ColorBase[] | null>,
41
- required: false,
42
- default: null
43
- },
44
-
45
- },
46
- setup() {
47
- return {
48
- ColorEnum,
49
- };
50
- }
51
- });
52
- </script>