@dative-gpi/foundation-shared-components 1.1.23-fs-chart → 1.1.24-unit-formatter

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 (74) hide show
  1. package/components/FSAccordionPanel.vue +0 -2
  2. package/components/FSButton.vue +87 -43
  3. package/components/FSCard.vue +100 -208
  4. package/components/FSCardPlaceholder.vue +25 -29
  5. package/components/FSChip.vue +127 -54
  6. package/components/FSChipGroup.vue +23 -141
  7. package/components/FSClickable.vue +326 -24
  8. package/components/FSColor.vue +3 -3
  9. package/components/FSColorIcon.vue +0 -1
  10. package/components/FSDialogContent.vue +28 -39
  11. package/components/FSDialogFormBody.vue +0 -2
  12. package/components/FSDialogMenu.vue +1 -8
  13. package/components/FSDialogMultiFormBody.vue +5 -6
  14. package/components/FSDivider.vue +1 -5
  15. package/components/FSEditImageUI.vue +30 -21
  16. package/components/FSGridMosaic.vue +0 -2
  17. package/components/FSIconCard.vue +1 -3
  18. package/components/FSIconCheck.vue +0 -8
  19. package/components/FSImageCard.vue +4 -4
  20. package/components/FSInstantPicker.vue +0 -2
  21. package/components/FSLink.vue +13 -1
  22. package/components/FSOptionItem.vue +4 -4
  23. package/components/FSOptionsMenu.vue +6 -6
  24. package/components/FSPlayButtons.vue +9 -11
  25. package/components/FSProgressBar.vue +28 -142
  26. package/components/FSRangePicker.vue +0 -2
  27. package/components/FSRouterLink.vue +14 -84
  28. package/components/FSSlideGroup.vue +1 -5
  29. package/components/FSWindow.vue +0 -2
  30. package/components/agenda/FSAgendaHorizontalEvent.vue +4 -4
  31. package/components/agenda/FSAgendaVerticalEvent.vue +4 -4
  32. package/components/deviceOrganisations/FSStatusRichCard.vue +7 -4
  33. package/components/fields/FSAutocompleteField.vue +0 -1
  34. package/components/fields/FSEntityFieldUI.vue +0 -12
  35. package/components/fields/FSRichTextField.vue +0 -2
  36. package/components/lists/FSDataIteratorItem.vue +0 -2
  37. package/components/lists/FSDataTableUI.vue +0 -12
  38. package/components/lists/FSFilterButton.vue +23 -34
  39. package/components/lists/FSHeaderButton.vue +3 -6
  40. package/components/lists/FSTileList.vue +6 -23
  41. package/components/map/FSMap.vue +1 -1
  42. package/components/map/FSMapMarker.vue +3 -4
  43. package/components/selects/FSSelectMapLayer.vue +0 -5
  44. package/components/tiles/FSChartTileUI.vue +0 -2
  45. package/components/tiles/FSFolderTileUI.vue +2 -2
  46. package/components/tiles/FSLocationTileUI.vue +0 -2
  47. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -2
  48. package/components/tiles/FSTile.vue +64 -32
  49. package/components/tiles/FSUserOrganisationTileUI.vue +0 -2
  50. package/components/toggleSets/FSToggleSetPosition.vue +0 -5
  51. package/composables/useMapLayers.ts +0 -12
  52. package/models/index.ts +1 -2
  53. package/models/map.ts +1 -2
  54. package/models/tables.ts +0 -1
  55. package/package.json +4 -4
  56. package/styles/components/fs_button.scss +7 -1
  57. package/styles/components/fs_card.scss +4 -75
  58. package/styles/components/fs_chip.scss +29 -0
  59. package/styles/components/fs_clickable.scss +69 -0
  60. package/styles/components/fs_color_icon.scss +3 -0
  61. package/styles/components/fs_filter_button.scss +1 -6
  62. package/styles/components/fs_map.scss +1 -7
  63. package/styles/components/fs_progress_bar.scss +6 -62
  64. package/styles/components/index.scss +2 -1
  65. package/styles/globals/overrides.scss +1 -1
  66. package/assets/images/map/open-street-map.png +0 -0
  67. package/components/FSGroupingChip.vue +0 -115
  68. package/components/FSSnackbar.vue +0 -146
  69. package/components/FSSubgroupingChip.vue +0 -138
  70. package/components/fields/FSDurationField.vue +0 -184
  71. package/components/tiles/FSPlaylistTileUI.vue +0 -149
  72. package/components/tiles/FSSubgroupingTileUI.vue +0 -97
  73. package/models/variants.ts +0 -33
  74. package/styles/components/fs_snackbar.scss +0 -7
@@ -1,46 +1,40 @@
1
1
  <template>
2
- <FSCard
2
+ <component
3
+ :is="$attrs.onClick ? FSClickable : FSCard"
3
4
  borderStyle="dashed"
4
5
  padding="24px"
5
6
  :height="$props.height"
6
- :variant="CardVariants.Standard"
7
- :color="ColorEnum.Light"
8
7
  :width="$props.width"
9
8
  :border="true"
10
9
  v-bind="$attrs"
11
10
  >
12
- <template
13
- #default
11
+ <FSRow
12
+ align="center-center"
14
13
  >
15
- <slot>
16
- <FSRow
17
- align="center-center"
18
- >
19
- <FSIcon
20
- v-if="$props.icon"
21
- :color="ColorEnum.Light"
22
- variant="dark"
23
- >
24
- {{ $props.icon }}
25
- </FSIcon>
26
- <FSText
27
- v-if="$props.label"
28
- :color="ColorEnum.Light"
29
- variant="dark"
30
- >
31
- {{ $props.label }}
32
- </FSText>
33
- </FSRow>
34
- </slot>
35
- </template>
36
- </FSCard>
14
+ <FSIcon
15
+ v-if="$props.icon"
16
+ :color="ColorEnum.Light"
17
+ variant="dark"
18
+ >
19
+ {{ $props.icon }}
20
+ </FSIcon>
21
+ <FSText
22
+ v-if="$props.label"
23
+ :color="ColorEnum.Light"
24
+ variant="dark"
25
+ >
26
+ {{ $props.label }}
27
+ </FSText>
28
+ </FSRow>
29
+ </component>
37
30
  </template>
38
31
 
39
32
  <script lang="ts">
40
33
  import { defineComponent, type PropType } from "vue";
41
34
 
42
- import { CardVariants, ColorEnum } from "../models";
35
+ import { ColorEnum } from "../models";
43
36
 
37
+ import FSClickable from "./FSClickable.vue";
44
38
  import FSCard from "./FSCard.vue";
45
39
  import FSIcon from "./FSIcon.vue";
46
40
  import FSText from "./FSText.vue";
@@ -49,6 +43,7 @@ import FSRow from "./FSRow.vue";
49
43
  export default defineComponent({
50
44
  name: "FSCardPlaceholder",
51
45
  components: {
46
+ FSClickable,
52
47
  FSCard,
53
48
  FSIcon,
54
49
  FSText,
@@ -79,7 +74,8 @@ export default defineComponent({
79
74
  setup() {
80
75
  return {
81
76
  ColorEnum,
82
- CardVariants
77
+ FSClickable,
78
+ FSCard,
83
79
  };
84
80
  }
85
81
  });
@@ -1,72 +1,72 @@
1
1
  <template>
2
- <FSCard
3
- class="fs-chip"
4
- padding="2px 20px"
5
- :borderRadius="50"
6
- :color="$props.color"
7
- :variant="$props.variant"
8
- :height="$props.height"
2
+ <component
3
+ :is="$props.to && $props.clickable ? 'FSRouterLink' : 'div'"
4
+ class="fs-chip-container"
5
+ v-bind="$props.to ? { to: $props.to } : {}"
9
6
  @click="$emit('click', $event)"
10
- v-bind="$attrs"
11
7
  >
12
- <template
13
- #default="{ contentVariant }"
8
+ <FSRow
9
+ :align="$props.align"
10
+ :width="$props.width"
11
+ :class="classes"
12
+ :style="style"
13
+ :wrap="false"
14
+ v-bind="$attrs"
14
15
  >
15
- <FSRow
16
- :align="$props.align"
17
- :wrap="false"
16
+ <slot
17
+ name="prepend"
18
+ v-bind="{ color: $props.color, colors }"
18
19
  >
19
- <slot
20
- name="prepend"
21
- v-bind="{ color: $props.color, contentVariant }"
20
+ <FSIcon
21
+ v-if="$props.prependIcon"
22
+ size="s"
22
23
  >
23
- <FSIcon
24
- v-if="$props.prependIcon"
25
- size="s"
26
- >
27
- {{ $props.prependIcon }}
28
- </FSIcon>
29
- </slot>
30
- <slot
31
- v-bind="{ color: $props.color, contentVariant }"
24
+ {{ $props.prependIcon }}
25
+ </FSIcon>
26
+ </slot>
27
+ <slot
28
+ v-bind="{ color: $props.color, colors }"
29
+ >
30
+ <FSSpan
31
+ v-if="$props.label"
32
+ font="text-overline"
33
+ class="fs-chip-label"
32
34
  >
33
- <FSSpan
34
- v-if="$props.label"
35
- font="text-overline"
36
- >
37
- {{ $props.label }}
38
- </FSSpan>
39
- </slot>
40
- <slot
41
- name="append"
42
- v-bind="{ color: $props.color, contentVariant }"
35
+ {{ $props.label }}
36
+ </FSSpan>
37
+ </slot>
38
+ <slot
39
+ name="append"
40
+ v-bind="{ color: $props.color, colors }"
41
+ >
42
+ <FSIcon
43
+ v-if="$props.appendIcon"
44
+ size="s"
43
45
  >
44
- <FSIcon
45
- v-if="$props.appendIcon"
46
- size="s"
47
- >
48
- {{ $props.appendIcon }}
49
- </FSIcon>
50
- </slot>
51
- </FSRow>
52
- </template>
53
- </FSCard>
46
+ {{ $props.appendIcon }}
47
+ </FSIcon>
48
+ </slot>
49
+ </FSRow>
50
+ </component>
54
51
  </template>
55
52
 
56
53
  <script lang="ts">
57
- import { defineComponent, type PropType } from "vue";
54
+ import { computed, defineComponent, type PropType, type StyleValue } from "vue";
55
+ import { type RouteLocation } from "vue-router";
58
56
 
59
- import { type CardVariant, CardVariants, type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
57
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
58
+ import { useColors } from "@dative-gpi/foundation-shared-components/composables";
59
+ import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
60
60
 
61
61
  import FSIcon from "./FSIcon.vue";
62
62
  import FSSpan from "./FSSpan.vue";
63
63
  import FSRow from "./FSRow.vue";
64
- import FSCard from './FSCard.vue';
64
+ import FSRouterLink from '@dative-gpi/foundation-shared-components/components/FSRouterLink.vue';
65
65
 
66
66
  export default defineComponent({
67
67
  name: "FSChip",
68
68
  components: {
69
- FSCard,
69
+ FSRouterLink,
70
70
  FSIcon,
71
71
  FSSpan,
72
72
  FSRow
@@ -92,27 +92,100 @@ export default defineComponent({
92
92
  required: false,
93
93
  default: () => [24, 20]
94
94
  },
95
+ width: {
96
+ type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
97
+ required: false,
98
+ default: "hug"
99
+ },
95
100
  variant: {
96
- type: String as PropType<CardVariant>,
101
+ type: String as PropType<"standard" | "full" | "borderless">,
97
102
  required: false,
98
- default: CardVariants.Full
103
+ default: "full"
99
104
  },
100
105
  color: {
101
106
  type: String as PropType<ColorBase>,
102
107
  required: false,
103
108
  default: ColorEnum.Primary
104
109
  },
110
+ clickable: {
111
+ type: Boolean,
112
+ required: false,
113
+ default: false
114
+ },
105
115
  align: {
106
- type: String as PropType<"top-left" | "top-center" | "top-right" | "center-left" | "center-center" | "center-right" | "bottom-left" | "bottom-center" | "bottom-right">,
116
+ type: String as PropType<"center-center" | "center-left">,
107
117
  required: false,
108
118
  default: "center-center"
109
- }
119
+ },
120
+ to: {
121
+ type: Object as PropType<RouteLocation | null>,
122
+ required: false,
123
+ default: null
124
+ },
110
125
  },
111
126
  inheritsAttrs: false,
112
127
  emits: ['click'],
113
- setup() {
128
+ setup(props) {
129
+ const { getColors } = useColors();
130
+
131
+ const colors = computed(() => getColors(props.color));
132
+ const backgrounds = getColors(ColorEnum.Background);
133
+ const darks = getColors(ColorEnum.Dark);
134
+
135
+ const style = computed((): StyleValue => {
136
+ switch (props.variant) {
137
+ case "standard": return {
138
+ "--fs-chip-height" : sizeToVar(props.height),
139
+ "--fs-chip-background-color" : backgrounds.base,
140
+ "--fs-chip-border-color" : colors.value.base,
141
+ "--fs-chip-color" : colors.value.base,
142
+ "--fs-chip-hover-background-color" : colors.value.base,
143
+ "--fs-chip-hover-border-color" : colors.value.base,
144
+ "--fs-chip-hover-color" : colors.value.baseContrast!,
145
+ "--fs-chip-active-background-color": backgrounds.base,
146
+ "--fs-chip-active-border-color" : colors.value.dark,
147
+ "--fs-chip-active-color" : colors.value.dark
148
+ };
149
+ case "full": return {
150
+ "--fs-chip-height" : sizeToVar(props.height),
151
+ "--fs-chip-background-color" : colors.value.base,
152
+ "--fs-chip-border-color" : colors.value.base,
153
+ "--fs-chip-color" : colors.value.baseContrast!,
154
+ "--fs-chip-hover-background-color" : colors.value.soft,
155
+ "--fs-chip-hover-border-color" : colors.value.soft,
156
+ "--fs-chip-hover-color" : colors.value.baseContrast!,
157
+ "--fs-chip-active-background-color": colors.value.dark,
158
+ "--fs-chip-active-border-color" : colors.value.darkContrast!,
159
+ "--fs-chip-active-color" : colors.value.darkContrast!
160
+ };
161
+ case "borderless": return {
162
+ "--fs-chip-height" : sizeToVar(props.height),
163
+ "--fs-chip-background-color" : backgrounds.base,
164
+ "--fs-chip-border-color" : backgrounds.base,
165
+ "--fs-chip-color" : darks.base,
166
+ "--fs-chip-hover-background-color" : colors.value.light,
167
+ "--fs-chip-hover-border-color" : colors.value.light,
168
+ "--fs-chip-hover-color" : colors.value.base,
169
+ "--fs-chip-active-background-color": colors.value.light,
170
+ "--fs-chip-active-border-color" : colors.value.light,
171
+ "--fs-chip-active-color" : colors.value.base
172
+ };
173
+ }
174
+ });
175
+
176
+ const classes = computed((): string[] => {
177
+ const classNames: string[] = ["fs-chip"];
178
+ if (props.clickable) {
179
+ classNames.push("fs-chip-clickable");
180
+ }
181
+ return classNames;
182
+ });
114
183
 
115
184
  return {
185
+ FSRouterLink,
186
+ classes,
187
+ colors,
188
+ style
116
189
  };
117
190
  }
118
191
  });
@@ -1,187 +1,69 @@
1
1
  <template>
2
2
  <FSWrapGroup
3
- v-if="$props.variant == ChipGroupVariants.Wrap"
3
+ v-if="$props.variant === 'wrap'"
4
4
  v-bind="$attrs"
5
5
  >
6
- <template
7
- v-for="(item, index) in $props.items"
6
+ <FSChip
7
+ v-for="(label, index) in $props.labels"
8
8
  :key="index"
9
- >
10
- <slot
11
- name="item.chip"
12
- v-bind="{ index, item }"
13
- >
14
- <FSChip
15
- :variant="$props.chipVariant"
16
- :color="$props.color"
17
- :label="item.label ?? item"
18
- />
19
- </slot>
20
- </template>
9
+ :variant="$props.chipVariant"
10
+ :color="$props.color"
11
+ :label="label"
12
+ />
21
13
  <slot />
22
14
  </FSWrapGroup>
23
15
  <FSSlideGroup
24
- v-else-if="$props.variant == ChipGroupVariants.Slide"
16
+ v-if="$props.variant === 'slide'"
25
17
  v-bind="$attrs"
26
18
  >
27
- <template
28
- v-for="(item, index) in $props.items"
19
+ <FSChip
20
+ v-for="(label, index) in $props.labels"
29
21
  :key="index"
30
- >
31
- <slot
32
- name="item.chip"
33
- v-bind="{ index, item }"
34
- >
35
- <FSChip
36
- :variant="$props.chipVariant"
37
- :color="$props.color"
38
- :label="item.label ?? item"
39
- />
40
- </slot>
41
- </template>
22
+ :variant="$props.chipVariant"
23
+ :color="$props.color"
24
+ :label="label"
25
+ />
42
26
  <slot />
43
27
  </FSSlideGroup>
44
- <FSRow
45
- v-else-if="$props.variant == ChipGroupVariants.Menu && $props.items"
46
- :wrap="false"
47
- >
48
- <template
49
- v-for="(item, index) in $props.items.slice(0, $props.maxItems ?? $props.items.length)"
50
- :key="index"
51
- >
52
- <slot
53
- name="item.chip"
54
- v-bind="{ index, item }"
55
- >
56
- <FSChip
57
- :variant="$props.chipVariant"
58
- :color="$props.color"
59
- :label="item.label ?? item"
60
- />
61
- </slot>
62
- </template>
63
- <FSMenu
64
- v-if="$props.maxItems && $props.items.length > $props.maxItems"
65
- location="bottom end"
66
- v-model="menuOpen"
67
- >
68
- <template
69
- #activator="{ props: activatorProps }"
70
- >
71
- <FSChip
72
- v-bind="activatorProps"
73
- variant="full"
74
- :label="`+${$props.items.length - $props.maxItems}`"
75
- :color="menuActivatorColor"
76
- :clickable="true"
77
- />
78
- </template>
79
- <FSCard
80
- padding="16px 24px"
81
- >
82
- <template
83
- #top-right
84
- >
85
- <FSButton
86
- icon="mdi-close"
87
- variant="icon"
88
- iconSize="18px"
89
- :color="ColorEnum.Dark"
90
- @click="menuOpen = false"
91
- />
92
- </template>
93
- <FSCol
94
- gap="12px"
95
- >
96
- <template
97
- v-for="(item, index) in $props.items"
98
- :key="index"
99
- >
100
- <slot
101
- name="item.chip"
102
- v-bind="{ index, item }"
103
- >
104
- <FSChip
105
- :variant="$props.chipVariant"
106
- :color="$props.color"
107
- :label="item.label ?? item"
108
- />
109
- </slot>
110
- </template>
111
- </FSCol>
112
- </FSCard>
113
- </FSMenu>
114
- <slot />
115
- </FSRow>
116
28
  </template>
117
29
 
118
30
  <script lang="ts">
119
- import { defineComponent, ref, type PropType, computed } from "vue";
31
+ import { defineComponent, type PropType } from "vue";
120
32
 
121
- import { type CardVariant, CardVariants, type ChipGroupVariant, ChipGroupVariants, type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
33
+ import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
122
34
 
123
35
  import FSSlideGroup from "./FSSlideGroup.vue";
124
36
  import FSWrapGroup from "./FSWrapGroup.vue";
125
- import FSButton from "./FSButton.vue";
126
37
  import FSChip from "./FSChip.vue";
127
- import FSCard from "./FSCard.vue";
128
- import FSMenu from "./FSMenu.vue";
129
- import FSCol from "./FSCol.vue";
130
-
131
- import { useColors } from "../composables";
132
38
 
133
39
  export default defineComponent({
134
40
  name: "FSChipGroup",
135
41
  components: {
136
42
  FSSlideGroup,
137
43
  FSWrapGroup,
138
- FSButton,
139
- FSChip,
140
- FSCard,
141
- FSMenu,
142
- FSCol
44
+ FSChip
143
45
  },
144
46
  props: {
145
- items: {
146
- type: Array as PropType<any[] | string[]>,
47
+ labels: {
48
+ type: Array as PropType<string[]>,
147
49
  required: false,
148
50
  default: () => []
149
51
  },
150
52
  variant: {
151
- type: String as PropType<ChipGroupVariant>,
53
+ type: String as PropType<"wrap" | "slide">,
152
54
  required: false,
153
- default: ChipGroupVariants.Wrap
55
+ default: "wrap"
154
56
  },
155
57
  chipVariant: {
156
- type: String as PropType<CardVariant>,
58
+ type: String as PropType<"standard" | "full" | "borderless">,
157
59
  required: false,
158
- default: CardVariants.Full
60
+ default: "full"
159
61
  },
160
62
  color: {
161
63
  type: String as PropType<ColorBase>,
162
64
  required: false,
163
65
  default: ColorEnum.Light
164
- },
165
- maxItems: {
166
- type: Number as PropType<number | null>,
167
- required: false,
168
- default: null
169
66
  }
170
- },
171
- setup(props) {
172
- const { getColors } = useColors();
173
- const menuOpen = ref(false);
174
-
175
- const menuActivatorColor = computed((): string => {
176
- return getColors(props.color).dark;
177
- });
178
-
179
- return {
180
- menuActivatorColor,
181
- ChipGroupVariants,
182
- ColorEnum,
183
- menuOpen
184
- };
185
67
  }
186
68
  });
187
69
  </script>