@dative-gpi/foundation-shared-components 1.0.94 → 1.0.96

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 (43) hide show
  1. package/components/FSDialogContent.vue +10 -7
  2. package/components/FSDialogFormBody.vue +2 -2
  3. package/components/FSDialogMultiFormBody.vue +3 -2
  4. package/components/FSDialogSubmit.vue +2 -2
  5. package/components/FSEditImageUI.vue +10 -2
  6. package/components/FSFadeOut.vue +3 -10
  7. package/components/FSGrid.vue +0 -1
  8. package/components/FSTab.vue +15 -13
  9. package/components/agenda/FSAgenda.vue +26 -7
  10. package/components/agenda/FSAgendaHeader.vue +33 -8
  11. package/components/agenda/FSAgendaHorizontalEvent.vue +3 -1
  12. package/components/agenda/FSAgendaHoursRow.vue +23 -7
  13. package/components/agenda/FSWeekAgenda.vue +2 -2
  14. package/components/fields/FSBaseField.vue +32 -22
  15. package/components/fields/FSColorField.vue +2 -1
  16. package/components/fields/FSIconField.vue +0 -1
  17. package/components/fields/FSNumberField.vue +5 -1
  18. package/components/fields/FSRichTextField.vue +4 -3
  19. package/components/fields/FSTermField.vue +8 -1
  20. package/components/lists/FSDataTableUI.vue +24 -22
  21. package/components/lists/FSLoadDataTable.vue +10 -7
  22. package/components/tiles/FSChartTile.vue +73 -0
  23. package/components/tiles/FSChartTileUI.vue +14 -20
  24. package/components/tiles/FSCommentTileUI.vue +13 -9
  25. package/components/tiles/FSLocationTileUI.vue +52 -48
  26. package/components/views/desktop/FSBaseEntityDesktopView.vue +6 -7
  27. package/components/views/mobile/FSBaseEntityMobileView.vue +6 -7
  28. package/composables/useBreakpoints.ts +5 -0
  29. package/package.json +4 -4
  30. package/styles/components/fs_agenda.scss +4 -0
  31. package/styles/components/fs_agenda_hours_row.scss +3 -3
  32. package/styles/components/fs_autocomplete_field.scss +0 -13
  33. package/styles/components/fs_color_field.scss +0 -4
  34. package/styles/components/fs_magic_config_field.scss +1 -2
  35. package/styles/components/fs_select_field.scss +0 -13
  36. package/styles/components/fs_wrap_group.scss +3 -2
  37. package/styles/components/index.scss +0 -4
  38. package/components/views/FSEntityHeader.vue +0 -343
  39. package/components/views/FSListHeader.vue +0 -83
  40. package/styles/components/fs_icon_field.scss +0 -12
  41. package/styles/components/fs_search_field.scss +0 -3
  42. package/styles/components/fs_tag_field.scss +0 -8
  43. package/styles/components/fs_time_field.scss +0 -12
@@ -33,7 +33,6 @@
33
33
  @import "fs_grid.scss";
34
34
  @import "fs_header_button.scss";
35
35
  @import "fs_hidden_button.scss";
36
- @import "fs_icon_field.scss";
37
36
  @import "fs_icon.scss";
38
37
  @import "fs_image.scss";
39
38
  @import "fs_image_card.scss";
@@ -51,7 +50,6 @@
51
50
  @import "fs_radio.scss";
52
51
  @import "fs_rich_text_field.scss";
53
52
  @import "fs_row.scss";
54
- @import "fs_search_field.scss";
55
53
  @import "fs_select_field.scss";
56
54
  @import "fs_slide_group.scss";
57
55
  @import "fs_slider.scss";
@@ -59,12 +57,10 @@
59
57
  @import "fs_switch.scss";
60
58
  @import "fs_tag.scss";
61
59
  @import "fs_tabs.scss";
62
- @import "fs_tag_field.scss";
63
60
  @import "fs_text_area.scss";
64
61
  @import "fs_text_field.scss";
65
62
  @import "fs_text.scss";
66
63
  @import "fs_tile.scss";
67
- @import "fs_time_field.scss";
68
64
  @import "fs_tooltip.scss";
69
65
  @import "fs_translate_field.scss";
70
66
  @import "fs_tree_view_field.scss";
@@ -1,343 +0,0 @@
1
- <template>
2
- <template
3
- v-if="isExtraSmall"
4
- >
5
- <FSCol
6
- class="f-entity-header"
7
- padding="0 10px 0 0"
8
- align="center-left"
9
- gap="12px"
10
- >
11
- <FSRow
12
- align="center-left"
13
- gap="12px"
14
- :height="imageSize"
15
- :wrap="false"
16
- >
17
- <template
18
- v-if="$props.imageId"
19
- >
20
- <slot
21
- name="image"
22
- v-bind="{ imageSize }"
23
- >
24
- <FSImage
25
- :imageId="$props.imageId"
26
- :cover="imageCover"
27
- :height="imageSize"
28
- :width="imageSize"
29
- />
30
- </slot>
31
- </template>
32
- <FSIconCard
33
- v-else-if="$props.icon"
34
- :backgroundVariant="$props.iconBackgroundVariant"
35
- :backgroundColor="$props.iconBackgroundColors"
36
- :border="$props.iconBorder"
37
- :icon="$props.icon"
38
- :iconColor="$props.color"
39
- :size="imageSize"
40
- />
41
- <FSCol
42
- align="center-left"
43
- :width="`calc(100% - ${rightOverflow})`"
44
- >
45
- <template
46
- v-if="$props.subtitle && $props.description"
47
- >
48
- <FSText
49
- font="text-h3"
50
- >
51
- {{ $props.title }}
52
- </FSText>
53
- <FSCol
54
- align="center-left"
55
- gap="4px"
56
- >
57
- <FSText
58
- font="text-button"
59
- >
60
- {{ $props.subtitle }}
61
- </FSText>
62
- <FSText
63
- font="text-body"
64
- >
65
- {{ $props.description }}
66
- </FSText>
67
- </FSCol>
68
- </template>
69
- <template
70
- v-else-if="$props.subtitle && !$props.description"
71
- >
72
- <FSText
73
- font="text-h3"
74
- :lineClamp="2"
75
- >
76
- {{ $props.title }}
77
- </FSText>
78
- <FSText
79
- font="text-button"
80
- >
81
- {{ $props.subtitle }}
82
- </FSText>
83
- </template>
84
- <template
85
- v-else-if="!$props.subtitle && $props.description"
86
- >
87
- <FSText
88
- font="text-h3"
89
- :lineClamp="2"
90
- >
91
- {{ $props.title }}
92
- </FSText>
93
- <FSText
94
- font="text-body"
95
- :lineClamp="2"
96
- >
97
- {{ $props.description }}
98
- </FSText>
99
- </template>
100
- <template
101
- v-else
102
- >
103
- <FSText
104
- font="text-h3"
105
- :lineClamp="2"
106
- >
107
- {{ $props.title }}
108
- </FSText>
109
- </template>
110
- </FSCol>
111
- </FSRow>
112
- <template
113
- v-if="!$props.light"
114
- >
115
- <FSBreadcrumbs
116
- :items="$props.breadcrumbs"
117
- />
118
- <FSSlideGroup
119
- v-if="slots['toolbar']"
120
- >
121
- <slot
122
- name="toolbar"
123
- />
124
- </FSSlideGroup>
125
- <slot
126
- name="title-append"
127
- />
128
- </template>
129
- </FSCol>
130
- </template>
131
- <template
132
- v-else
133
- >
134
- <FSCol
135
- class="f-entity-header"
136
- padding="0 14px 0 0"
137
- align="center-left"
138
- gap="16px"
139
- >
140
- <FSRow
141
- align="center-left"
142
- gap="16px"
143
- :height="imageSize"
144
- :wrap="false"
145
- >
146
-
147
- <template
148
- v-if="$props.imageId"
149
- >
150
- <slot
151
- name="image"
152
- v-bind="{ imageSize }"
153
- >
154
- <FSImage
155
- :imageId="$props.imageId"
156
- :cover="imageCover"
157
- :height="imageSize"
158
- :width="imageSize"
159
- />
160
- </slot>
161
- </template>
162
- <FSIconCard
163
- v-else-if="$props.icon"
164
- iconSize="70px"
165
- :backgroundVariant="$props.iconBackgroundVariant"
166
- :backgroundColor="$props.iconBackgroundColors"
167
- :border="$props.iconBorder"
168
- :iconColor="$props.color"
169
- :icon="$props.icon"
170
- :size="imageSize"
171
- />
172
- <FSCol
173
- align="center-left"
174
- >
175
- <FSText
176
- :font="$props.light ? 'text-h3' : 'text-h2'"
177
- >
178
- {{ $props.title }}
179
- </FSText>
180
- <FSCol
181
- v-if="!$props.light && ($props.subtitle || $props.description)"
182
- gap="4px"
183
- >
184
- <FSText
185
- v-if="$props.subtitle"
186
- font="text-button"
187
- >
188
- {{ $props.subtitle }}
189
- </FSText>
190
- <FSText
191
- v-if="$props.description"
192
- font="text-body"
193
- :lineClamp="2"
194
- >
195
- {{ $props.description }}
196
- </FSText>
197
- </FSCol>
198
- </FSCol>
199
- <FSRow
200
- v-if="!$props.light"
201
- align="center-right"
202
- >
203
- <slot
204
- name="title-append"
205
- />
206
- </FSRow>
207
- </FSRow>
208
- <template
209
- v-if="!$props.light"
210
- >
211
- <FSBreadcrumbs
212
- :items="$props.breadcrumbs"
213
- />
214
- <FSSlideGroup
215
- v-if="slots['toolbar']"
216
- >
217
- <slot
218
- name="toolbar"
219
- />
220
- </FSSlideGroup>
221
- </template>
222
- </FSCol>
223
- </template>
224
- </template>
225
-
226
- <script lang="ts">
227
- import { computed, defineComponent, type PropType } from "vue";
228
-
229
- import { type ColorBase, type FSBreadcrumbItem } from "@dative-gpi/foundation-shared-components/models";
230
- import { useBreakpoints, useSlots } from "@dative-gpi/foundation-shared-components/composables";
231
-
232
- import FSBreadcrumbs from "../FSBreadcrumbs.vue";
233
- import FSSlideGroup from "../FSSlideGroup.vue";
234
- import FSIconCard from "../FSIconCard.vue";
235
- import FSImage from "../FSImage.vue";
236
- import FSText from "../FSText.vue";
237
- import FSCol from "../FSCol.vue";
238
- import FSRow from "../FSRow.vue";
239
-
240
- export default defineComponent({
241
- name: "FSEntityHeader",
242
- components: {
243
- FSBreadcrumbs,
244
- FSSlideGroup,
245
- FSIconCard,
246
- FSImage,
247
- FSText,
248
- FSCol,
249
- FSRow
250
- },
251
- props: {
252
- imageId: {
253
- type: String as PropType<string | null>,
254
- required: false,
255
- default: null
256
- },
257
- color: {
258
- type: String as PropType<ColorBase>,
259
- required: false,
260
- default: null
261
- },
262
- icon: {
263
- type: String as PropType<string>,
264
- required: false,
265
- default: "mdi-ab-testing"
266
- },
267
- iconBackgroundVariant: {
268
- type: String as PropType<"background" | "standard" | "full" | "gradient">,
269
- required: false,
270
- default: "background"
271
- },
272
- iconBackgroundColors: {
273
- type: Array as PropType<string[]>,
274
- required: false,
275
- default: () => []
276
- },
277
- iconBorder: {
278
- type: Boolean as PropType<boolean>,
279
- required: false,
280
- default: true
281
- },
282
- title: {
283
- type: String as PropType<string | null>,
284
- required: false,
285
- default: null
286
- },
287
- subtitle: {
288
- type: String as PropType<string | null>,
289
- required: false,
290
- default: null
291
- },
292
- description: {
293
- type: String as PropType<string | null>,
294
- required: false,
295
- default: null
296
- },
297
- breadcrumbs: {
298
- type: Array as PropType<Array<FSBreadcrumbItem>>,
299
- required: false,
300
- default: () => []
301
- },
302
- light: {
303
- type: Boolean,
304
- required: false,
305
- default: false
306
- },
307
- imageCover: {
308
- type: Boolean,
309
- required: false,
310
- default: true
311
- }
312
- },
313
- setup(props) {
314
- const { isExtraSmall, isMobileSized } = useBreakpoints();
315
- const { slots } = useSlots();
316
-
317
- const imageSize = computed((): string[] | string => {
318
- if (props.light) {
319
- return ["40px", "36px"];
320
- }
321
- return ["124px", "96px", "80px"];
322
- });
323
-
324
- const rightOverflow = computed(() => {
325
- let result = imageSize.value[0];
326
- if (isExtraSmall.value && imageSize.value[2]) {
327
- result = imageSize.value[2];
328
- }
329
- if ((isExtraSmall.value || isMobileSized.value) && imageSize.value[1]) {
330
- result = imageSize.value[1];
331
- }
332
- return result;
333
- });
334
-
335
- return {
336
- rightOverflow,
337
- isExtraSmall,
338
- imageSize,
339
- slots
340
- };
341
- }
342
- });
343
- </script>
@@ -1,83 +0,0 @@
1
- <template>
2
- <template
3
- v-if="isExtraSmall"
4
- >
5
- <FSCol
6
- gap="12px"
7
- >
8
- <FSText
9
- font="text-h3"
10
- >
11
- {{ $props.title }}
12
- </FSText>
13
- <FSBreadcrumbs
14
- :items="$props.breadcrumbs"
15
- />
16
- </FSCol>
17
- </template>
18
- <template
19
- v-else
20
- >
21
- <FSCol
22
- gap="16px"
23
- >
24
- <FSText
25
- font="text-h2"
26
- >
27
- {{ $props.title }}
28
- </FSText>
29
- <FSBreadcrumbs
30
- :items="$props.breadcrumbs"
31
- />
32
- <FSSlideGroup
33
- v-if="$slots['toolbar']"
34
- style="min-width: 100%;"
35
- >
36
- <slot
37
- name="toolbar"
38
- />
39
- </FSSlideGroup>
40
- </FSCol>
41
- </template>
42
- </template>
43
-
44
- <script lang="ts">
45
- import { defineComponent, type PropType } from "vue";
46
-
47
- import { type FSBreadcrumbItem } from "@dative-gpi/foundation-shared-components/models";
48
- import { useBreakpoints } from "@dative-gpi/foundation-shared-components/composables";
49
-
50
- import FSBreadcrumbs from "../FSBreadcrumbs.vue";
51
- import FSSlideGroup from "../FSSlideGroup.vue";
52
- import FSText from "../FSText.vue";
53
- import FSCol from "../FSCol.vue";
54
-
55
- export default defineComponent({
56
- name: "FSListHeader",
57
- components: {
58
- FSBreadcrumbs,
59
- FSSlideGroup,
60
- FSText,
61
- FSCol
62
- },
63
- props: {
64
- title: {
65
- type: String as PropType<string | null>,
66
- required: false,
67
- default: null
68
- },
69
- breadcrumbs: {
70
- type: Array as PropType<Array<FSBreadcrumbItem>>,
71
- required: false,
72
- default: () => []
73
- },
74
- },
75
- setup() {
76
- const { isExtraSmall } = useBreakpoints();
77
-
78
- return {
79
- isExtraSmall
80
- };
81
- }
82
- });
83
- </script>
@@ -1,12 +0,0 @@
1
- .fs-icon-field-label {
2
- color: var(--fs-icon-field-color);
3
- }
4
-
5
- .fs-icon-field-messages {
6
- align-self: stretch;
7
- color: var(--fs-icon-field-error-color);
8
- }
9
-
10
- .fs-icon-field-set {
11
- max-width: 100%;
12
- }
@@ -1,3 +0,0 @@
1
- .fs-search-field {
2
- max-width: 500px;
3
- }
@@ -1,8 +0,0 @@
1
- .fs-tag-field-label {
2
- color: var(--fs-tag-field-color);
3
- }
4
-
5
- .fs-tag-field-messages {
6
- align-self: stretch;
7
- color: var(--fs-tag-field-error-color);
8
- }
@@ -1,12 +0,0 @@
1
- .fs-time-field-label {
2
- color: var(--fs-time-field-color);
3
- }
4
-
5
- .fs-time-field-messages {
6
- align-self: stretch;
7
- color: var(--fs-time-field-error-color);
8
- }
9
-
10
- .fs-time-field-description {
11
- color: var(--fs-time-field-color);
12
- }