@dative-gpi/foundation-shared-components 1.0.128-fix-mobile-8 → 1.0.128-remove-deprecated-scenario

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 (30) hide show
  1. package/components/FSBreadcrumbs.vue +12 -20
  2. package/components/FSDialogMenu.vue +2 -12
  3. package/components/FSDialogRemove.vue +1 -1
  4. package/components/FSFadeOut.vue +1 -1
  5. package/components/FSSpan.vue +5 -8
  6. package/components/FSText.vue +5 -7
  7. package/components/fields/FSAutocompleteField.vue +52 -36
  8. package/components/fields/FSSelectField.vue +52 -36
  9. package/components/lists/FSDataTableUI.vue +14 -22
  10. package/components/tiles/FSChartTile.vue +73 -0
  11. package/components/tiles/FSLocationTileUI.vue +1 -1
  12. package/components/views/desktop/FSBaseDefaultDesktopView.vue +9 -9
  13. package/components/views/desktop/FSBaseEntityDesktopView.vue +0 -1
  14. package/components/views/mobile/FSBaseDefaultMobileView.vue +9 -9
  15. package/components/views/mobile/FSBaseEntityMobileView.vue +0 -1
  16. package/composables/useSlots.ts +1 -2
  17. package/package.json +4 -4
  18. package/styles/components/fs_breadcrumbs.scss +31 -19
  19. package/styles/components/fs_button.scss +5 -7
  20. package/styles/components/fs_chip.scss +6 -8
  21. package/styles/components/fs_clickable.scss +12 -14
  22. package/styles/components/fs_data_iterator_item.scss +10 -12
  23. package/styles/components/fs_image_card.scss +3 -5
  24. package/styles/components/fs_map.scss +7 -11
  25. package/styles/components/fs_password_field.scss +2 -4
  26. package/styles/components/fs_span.scss +4 -12
  27. package/styles/components/fs_tabs.scss +5 -9
  28. package/styles/components/fs_tag.scss +7 -9
  29. package/styles/globals/overrides.scss +4 -11
  30. package/styles/globals/scrollbars.scss +0 -10
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-breadcrumbs
3
3
  class="fs-breadcrumbs"
4
- :items="items"
4
+ :items="$props.items"
5
5
  :style="style"
6
6
  v-bind="$attrs"
7
7
  >
@@ -9,7 +9,7 @@
9
9
  #title="{ item }"
10
10
  >
11
11
  <FSSpan
12
- class="fs-breadcrumbs-label"
12
+ :class="classes(item)"
13
13
  >
14
14
  {{ item.title }}
15
15
  </FSSpan>
@@ -31,9 +31,7 @@
31
31
  import { computed, defineComponent, type PropType, type StyleValue } from "vue";
32
32
 
33
33
  import { ColorEnum, type FSBreadcrumbItem } from "@dative-gpi/foundation-shared-components/models";
34
- import { useBreakpoints, useColors } from "@dative-gpi/foundation-shared-components/composables";
35
-
36
- import { sizeToVar } from "../utils";
34
+ import { useColors } from "@dative-gpi/foundation-shared-components/composables";
37
35
 
38
36
  import FSSpan from "./FSSpan.vue";
39
37
  import FSIcon from "./FSIcon.vue";
@@ -51,34 +49,28 @@ export default defineComponent({
51
49
  default: () => []
52
50
  }
53
51
  },
54
- setup(props) {
55
- const { isExtraSmall } = useBreakpoints();
52
+ setup() {
56
53
  const { getColors } = useColors();
57
54
 
58
55
  const darks = getColors(ColorEnum.Dark);
59
56
 
60
57
  const style = computed((): StyleValue => ({
61
- "--fs-breadcrumbs-height" : sizeToVar(["20px", "16px"]),
62
58
  "--fs-breadcrumbs-color" : darks.dark,
63
59
  "--fs-breadcrumbs-active-color" : darks.base,
64
60
  "--fs-breadcrumbs-disabled-color": darks.soft
65
61
  }));
66
62
 
67
- const items = computed((): FSBreadcrumbItem[] => {
68
- if (isExtraSmall.value && props.items.length > 3) {
69
- const mobileItems: FSBreadcrumbItem[] = [0, -2, -1].map((index) => props.items.at(index)!)
70
- mobileItems.splice(1, 0, {
71
- title : "...",
72
- disabled : true
73
- });
74
- return mobileItems;
63
+ const classes = (item: FSBreadcrumbItem): string[] => {
64
+ const classNames = ["fs-breadcrumbs-label"];
65
+ if (item.disabled) {
66
+ classNames.push("fs-breadcrumbs-label-disabled");
75
67
  }
76
- return props.items;
77
- });
68
+ return classNames;
69
+ };
78
70
 
79
71
  return {
80
- items,
81
- style
72
+ style,
73
+ classes
82
74
  };
83
75
  }
84
76
  });
@@ -6,8 +6,8 @@
6
6
  >
7
7
  <FSCard
8
8
  width="calc(100vw - 48px)"
9
- :padding="$props.cardPadding"
10
- :gap="$props.cardGap"
9
+ padding="8px"
10
+ gap="24px"
11
11
  :color="$props.color"
12
12
  :class="classes"
13
13
  >
@@ -43,16 +43,6 @@ export default defineComponent({
43
43
  required: false,
44
44
  default: null
45
45
  },
46
- cardPadding: {
47
- type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
48
- required: false,
49
- default: "8px"
50
- },
51
- cardGap: {
52
- type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
53
- required: false,
54
- default: "24px"
55
- },
56
46
  modelValue: {
57
47
  type: Boolean,
58
48
  required: false,
@@ -21,7 +21,7 @@
21
21
  mdi-alert-outline
22
22
  </FSIcon>
23
23
  <FSRow
24
- gap="4px"
24
+ gap="2px"
25
25
  >
26
26
  <FSSpan>
27
27
  {{ $tr("dialog-remove.body-regular", "This action is") }}
@@ -84,7 +84,7 @@ export default defineComponent({
84
84
 
85
85
  const elementId = `id${uuidv4()}`;
86
86
 
87
- const showOutsideScrollbar = computed(() => props.scrollOutside && !isTouchScreenEnabled.value);
87
+ const showOutsideScrollbar = computed(() => props.scrollOutside && !isTouchScreenEnabled);
88
88
 
89
89
  const style = computed((): StyleValue => ({
90
90
  "--fs-fade-out-height" : props.height ? sizeToVar(props.height) : "initial",
@@ -1,15 +1,13 @@
1
1
  <template>
2
- <div
2
+ <span
3
3
  :class="classes"
4
4
  :style="style"
5
5
  v-bind="$attrs"
6
6
  >
7
- <span>
8
- <slot>
9
- {{ $props.label }}
10
- </slot>
11
- </span>
12
- </div>
7
+ <slot>
8
+ {{ $props.label }}
9
+ </slot>
10
+ </span>
13
11
  </template>
14
12
 
15
13
  <script lang="ts">
@@ -51,7 +49,6 @@ export default defineComponent({
51
49
  const { slots } = useSlots();
52
50
 
53
51
  const style = computed((): StyleValue => ({
54
- "--fs-span-text-align": props.align,
55
52
  "--fs-span-line-clamp": props.lineClamp.toString(),
56
53
  ...fontStyles.value
57
54
  }));
@@ -1,15 +1,13 @@
1
1
  <template>
2
- <div
2
+ <span
3
3
  :class="classes"
4
4
  :style="style"
5
5
  v-bind="$attrs"
6
6
  >
7
- <span>
8
- <slot>
9
- {{ $props.label }}
10
- </slot>
11
- </span>
12
- </div>
7
+ <slot>
8
+ {{ $props.label }}
9
+ </slot>
10
+ </span>
13
11
  </template>
14
12
 
15
13
  <script lang="ts">
@@ -121,7 +121,6 @@
121
121
  </FSCard>
122
122
  </FSSlideGroup>
123
123
  <FSDialogMenu
124
- cardPadding="16px"
125
124
  v-model="dialog"
126
125
  >
127
126
  <template
@@ -140,52 +139,69 @@
140
139
  >
141
140
  <FSRow
142
141
  v-for="(item, index) in searchItems"
143
- align="center-left"
144
- height="36px"
145
- :wrap="false"
146
142
  :key="index"
147
- @click="$props.multiple ?
148
- onCheckboxChange(item[$props.itemValue!]) :
149
- onRadioChange(item[$props.itemValue!])
150
- "
151
143
  >
152
- <FSRow
153
- style="min-width: 0;"
154
- :wrap="false"
144
+ <FSCheckbox
145
+ v-if="$props.multiple"
146
+ :label="item[$props.itemTitle!]"
147
+ :editable="$props.editable"
148
+ :modelValue="$props.modelValue?.includes(item[$props.itemValue!])"
149
+ @update:modelValue="() => onCheckboxChange(item[$props.itemValue!])"
155
150
  >
156
- <slot
157
- name="item-prepend"
158
- v-bind="{ item }"
159
- />
160
- <FSSpan
161
- :font="selectedItems.includes(item) ? 'text-button' : 'text-body'"
151
+ <template
152
+ #label="{ font }"
162
153
  >
163
- {{ item[$props.itemTitle!] }}
164
- </FSSpan>
165
- </FSRow>
154
+ <FSRow
155
+ align="center-left"
156
+ :wrap="false"
157
+ >
158
+ <slot
159
+ name="item-prepend"
160
+ v-bind="{ item }"
161
+ />
162
+ <FSSpan
163
+ :font="font"
164
+ >
165
+ {{ item[$props.itemTitle!] }}
166
+ </FSSpan>
167
+ </FSRow>
168
+ </template>
169
+ </FSCheckbox>
170
+ <FSRadio
171
+ v-else
172
+ :selected="$props.modelValue === item[$props.itemValue!]"
173
+ :label="item[$props.itemTitle!]"
174
+ :editable="$props.editable"
175
+ :item="item"
176
+ :modelValue="item[$props.itemValue!]"
177
+ @update:modelValue="() => onRadioChange(item[$props.itemValue!])"
178
+ >
179
+ <template
180
+ #label="{ font }"
181
+ >
182
+ <FSRow
183
+ align="center-left"
184
+ :wrap="false"
185
+ >
186
+ <slot
187
+ name="item-prepend"
188
+ v-bind="{ item }"
189
+ />
190
+ <FSSpan
191
+ :font="font"
192
+ >
193
+ {{ item[$props.itemTitle!] }}
194
+ </FSSpan>
195
+ </FSRow>
196
+ </template>
197
+ </FSRadio>
166
198
  <FSRow
167
199
  align="center-right"
168
- width="hug"
169
- :wrap="false"
170
200
  >
171
201
  <slot
172
202
  name="item-append"
173
203
  v-bind="{ item }"
174
204
  />
175
- <FSCheckbox
176
- v-if="$props.multiple"
177
- :editable="$props.editable"
178
- :modelValue="$props.modelValue?.includes(item[$props.itemValue!])"
179
- @update:modelValue="onCheckboxChange(item[$props.itemValue!])"
180
- />
181
- <FSRadio
182
- v-else
183
- :selected="$props.modelValue === item[$props.itemValue!]"
184
- :editable="$props.editable"
185
- :item="item"
186
- :modelValue="item[$props.itemValue!]"
187
- @update:modelValue="onRadioChange(item[$props.itemValue!])"
188
- />
189
205
  </FSRow>
190
206
  </FSRow>
191
207
  </FSCol>
@@ -122,7 +122,6 @@
122
122
  </FSCard>
123
123
  </FSSlideGroup>
124
124
  <FSDialogMenu
125
- cardPadding="16px"
126
125
  v-model="dialog"
127
126
  >
128
127
  <template
@@ -136,52 +135,69 @@
136
135
  >
137
136
  <FSRow
138
137
  v-for="(item, index) in $props.items"
139
- align="center-left"
140
- height="36px"
141
- :wrap="false"
142
138
  :key="index"
143
- @click="$props.multiple ?
144
- onCheckboxChange(item[$props.itemValue!]) :
145
- onRadioChange(item[$props.itemValue!])
146
- "
147
139
  >
148
- <FSRow
149
- style="min-width: 0;"
150
- :wrap="false"
140
+ <FSCheckbox
141
+ v-if="$props.multiple"
142
+ :label="item[$props.itemTitle!]"
143
+ :editable="$props.editable"
144
+ :modelValue="$props.modelValue?.includes(item[$props.itemValue!])"
145
+ @update:modelValue="() => onCheckboxChange(item[$props.itemValue!])"
151
146
  >
152
- <slot
153
- name="item-prepend"
154
- v-bind="{ item }"
155
- />
156
- <FSSpan
157
- :font="selectedItems.includes(item) ? 'text-button' : 'text-body'"
147
+ <template
148
+ #label="{ font }"
158
149
  >
159
- {{ item[$props.itemTitle!] }}
160
- </FSSpan>
161
- </FSRow>
150
+ <FSRow
151
+ align="center-left"
152
+ :wrap="false"
153
+ >
154
+ <slot
155
+ name="item-prepend"
156
+ v-bind="{ item }"
157
+ />
158
+ <FSSpan
159
+ :font="font"
160
+ >
161
+ {{ item[$props.itemTitle!] }}
162
+ </FSSpan>
163
+ </FSRow>
164
+ </template>
165
+ </FSCheckbox>
166
+ <FSRadio
167
+ v-else
168
+ :selected="$props.modelValue === item[$props.itemValue!]"
169
+ :label="item[$props.itemTitle!]"
170
+ :editable="$props.editable"
171
+ :item="item"
172
+ :modelValue="item[$props.itemValue!]"
173
+ @update:modelValue="() => onRadioChange(item[$props.itemValue!])"
174
+ >
175
+ <template
176
+ #label="{ font }"
177
+ >
178
+ <FSRow
179
+ align="center-left"
180
+ :wrap="false"
181
+ >
182
+ <slot
183
+ name="item-prepend"
184
+ v-bind="{ item }"
185
+ />
186
+ <FSSpan
187
+ :font="font"
188
+ >
189
+ {{ item[$props.itemTitle!] }}
190
+ </FSSpan>
191
+ </FSRow>
192
+ </template>
193
+ </FSRadio>
162
194
  <FSRow
163
195
  align="center-right"
164
- width="hug"
165
- :wrap="false"
166
196
  >
167
197
  <slot
168
198
  name="item-append"
169
199
  v-bind="{ item }"
170
200
  />
171
- <FSCheckbox
172
- v-if="$props.multiple"
173
- :editable="$props.editable"
174
- :modelValue="$props.modelValue?.includes(item[$props.itemValue!])"
175
- @update:modelValue="onCheckboxChange(item[$props.itemValue!])"
176
- />
177
- <FSRadio
178
- v-else
179
- :selected="$props.modelValue === item[$props.itemValue!]"
180
- :editable="$props.editable"
181
- :item="item"
182
- :modelValue="item[$props.itemValue!]"
183
- @update:modelValue="onRadioChange(item[$props.itemValue!])"
184
- />
185
201
  </FSRow>
186
202
  </FSRow>
187
203
  </FSCol>
@@ -4,13 +4,13 @@
4
4
  style="position: relative;"
5
5
  >
6
6
  <FSRow
7
- v-if="$props.showSearch || (!isMobileSized && ($slots['prepend-toolbar'] || $slots['toolbar'] || $slots['append-toolbar'])) || (!$props.disableTable && !$props.disableIterator)"
7
+ v-if="$props.showSearch || (!isExtraSmall && ($slots.prependToolbar || $slots.toolbar )) || (!$props.disableTable && !$props.disableIterator)"
8
8
  align="bottom-left"
9
- :wrap="isMobileSized ? false : true"
9
+ :wrap="isExtraSmall ? false : true"
10
10
  width="fill"
11
11
  >
12
12
  <slot
13
- v-if="!isMobileSized"
13
+ v-if="!isExtraSmall"
14
14
  name="prepend-toolbar"
15
15
  />
16
16
  <template
@@ -28,22 +28,16 @@
28
28
  />
29
29
  </template>
30
30
  <slot
31
- v-if="!isMobileSized"
31
+ v-if="!isExtraSmall"
32
32
  name="toolbar"
33
33
  />
34
34
  <template
35
- v-if="$slots['append-toolbar'] || (!$props.disableTable && !$props.disableIterator)"
35
+ v-if="!$props.disableTable && !$props.disableIterator"
36
36
  >
37
37
  <FSRow
38
38
  align="center-right"
39
- :width="isExtraSmall ? 'hug' : 'fill'"
40
39
  >
41
- <slot
42
- v-if="!isMobileSized"
43
- name="append-toolbar"
44
- />
45
40
  <FSOptionGroup
46
- v-if="!$props.disableTable && !$props.disableIterator"
47
41
  :values="modeOptions"
48
42
  :singleColor="true"
49
43
  :required="true"
@@ -54,19 +48,13 @@
54
48
  </template>
55
49
  </FSRow>
56
50
  <FSRow
57
- v-if="isMobileSized && ($slots['prepend-toolbar'] || $slots['toolbar'] || $slots['append-toolbar'])"
51
+ v-if="isExtraSmall && hasToolbar"
58
52
  >
59
- <FSSlideGroup>
60
- <slot
61
- name="prepend-toolbar"
62
- />
53
+ <FSWrapGroup>
63
54
  <slot
64
55
  name="toolbar"
65
56
  />
66
- <slot
67
- name="append-toolbar"
68
- />
69
- </FSSlideGroup>
57
+ </FSWrapGroup>
70
58
  </FSRow>
71
59
  <FSRow
72
60
  v-if="showFiltersRow"
@@ -912,8 +900,8 @@ export default defineComponent({
912
900
  },
913
901
  emits: ["update:modelValue", "update:headers", "update:search", "update:showFilters", "update:filters", "update:mode", "update:sortBy", "update:rowsPerPage", "update:page", "update:include", "update:items", "click:row"],
914
902
  setup(props, { emit }) {
915
- const { isExtraSmall, isMobileSized } = useBreakpoints();
916
903
  const { handleRoutingEvent } = useRouting();
904
+ const { isExtraSmall } = useBreakpoints();
917
905
  const { $tr } = useTranslationsProvider();
918
906
  const { getColors } = useColors();
919
907
  const router = useRouter();
@@ -974,6 +962,10 @@ export default defineComponent({
974
962
 
975
963
  });
976
964
 
965
+ const hasToolbar = computed((): boolean => {
966
+ return !!useSlots().slots["toolbar"];
967
+ });
968
+
977
969
  const innerSlots = computed((): { [label: string]: Slot<any> } => {
978
970
  const slots = { ...useSlots().slots };
979
971
  delete slots["toolbar"];
@@ -1585,6 +1577,7 @@ export default defineComponent({
1585
1577
  innerMode,
1586
1578
  modeOptions,
1587
1579
  innerPage,
1580
+ hasToolbar,
1588
1581
  pageOptions,
1589
1582
  innerShowFilters,
1590
1583
  showFiltersRow,
@@ -1603,7 +1596,6 @@ export default defineComponent({
1603
1596
  classes,
1604
1597
  style,
1605
1598
  size,
1606
- isMobileSized,
1607
1599
  isExtraSmall,
1608
1600
  draggableDisabled,
1609
1601
  elementId,
@@ -0,0 +1,73 @@
1
+ <template>
2
+ <FSChartTileUI
3
+ v-if="chart"
4
+ :label="chart.label"
5
+ :icon="chart.icon"
6
+ :type="chart.chartType"
7
+ :imageId="chart.imageId"
8
+ v-bind="$attrs"
9
+ />
10
+ </template>
11
+
12
+ <script lang="ts">
13
+ import { defineComponent, watch, computed } from "vue";
14
+ import type { PropType } from "vue";
15
+
16
+ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
17
+ import { chartIcon } from "@dative-gpi/foundation-shared-components/tools";
18
+
19
+ import { useChartOrganisation, useChartOrganisationType } from "@dative-gpi/foundation-core-services/composables";
20
+
21
+ import { ApplicationScope } from "@dative-gpi/foundation-shared-domain/enums";
22
+ import FSChartTileUI from "./FSChartTileUI.vue";
23
+
24
+ export default defineComponent({
25
+ name: "FSChartTile",
26
+ components: {
27
+ FSChartTileUI
28
+ },
29
+ props: {
30
+ chartId: {
31
+ type: String,
32
+ required: true
33
+ },
34
+ scope: {
35
+ type: Object as PropType<ApplicationScope | number>,
36
+ required : true
37
+ }
38
+ },
39
+ setup(props) {
40
+
41
+ const {get : fetchChartOrganisation, entity : chartOrganisation } = useChartOrganisation();
42
+ const {get : fetchChartOrganisationType, entity : chartOrganisationType } = useChartOrganisationType();
43
+
44
+ const chart = computed(() =>{
45
+ if(props.scope == ApplicationScope.Organisation){
46
+ return chartOrganisation.value;
47
+ }
48
+ else if(props.scope == ApplicationScope.OrganisationType){
49
+ return chartOrganisationType.value;
50
+ }
51
+ else{
52
+ return null
53
+ }
54
+ })
55
+
56
+ watch(() => [props.chartId, props.scope], () =>{
57
+ if(props.scope == ApplicationScope.Organisation){
58
+ fetchChartOrganisation(props.chartId);
59
+ }
60
+ else if(props.scope == ApplicationScope.OrganisationType)
61
+ {
62
+ fetchChartOrganisationType(props.chartId)
63
+ }
64
+ }, {immediate : true})
65
+
66
+ return {
67
+ ColorEnum,
68
+ chart,
69
+ chartIcon
70
+ };
71
+ }
72
+ });
73
+ </script>
@@ -46,7 +46,7 @@
46
46
  align="center-left"
47
47
  >
48
48
  <FSColor
49
- padding="0 8px"
49
+ width="24px"
50
50
  height="24px"
51
51
  :color="ColorEnum.Light"
52
52
  :border="false"
@@ -12,9 +12,11 @@
12
12
  <slot
13
13
  name="header"
14
14
  >
15
+
15
16
  <FSRow
16
- :style="`position: sticky; top: 0px; z-index: 3; background-color: ${backgroundColor}; margin-top: ${$props.stickyTitleTopOffset};`"
17
- :padding="`24px ${isTouchScreenEnabled ? '24px' : '16px'} 16px 24px`"
17
+ padding="24px 16px 16px 24px"
18
+ style="position: sticky; top: 0px; z-index: 3;"
19
+ :style="{ backgroundColor, marginTop: $props.stickyTitleTopOffset }"
18
20
  >
19
21
  <slot
20
22
  name="title"
@@ -43,8 +45,8 @@
43
45
  </FSCol>
44
46
  <FSRow
45
47
  v-if="$slots.toolbar"
48
+ padding="0px 16px 8px 24px"
46
49
  :style="stickyToolbar ? `position: sticky; top: ${$props.toolbarTopOffset}; z-index: 3; background-color: ${backgroundColor}` : undefined"
47
- :padding="`0px ${isTouchScreenEnabled ? '24px' : '16px'} 8px 24px`"
48
50
  >
49
51
  <FSSlideGroup
50
52
  width="100%"
@@ -58,8 +60,8 @@
58
60
 
59
61
  <FSCol
60
62
  height="fill"
63
+ :padding="$slots.toolbar ? '8px 16px 24px 24px' : '16px 16px 24px 24px'"
61
64
  gap="0px"
62
- :padding="`${$slots.toolbar ? '8px' : '16px'} ${isTouchScreenEnabled ? '24px' : '16px'} 24px 24px`"
63
65
  >
64
66
  <slot />
65
67
  </FSCol>
@@ -72,7 +74,7 @@ import { defineComponent, type PropType, computed } from "vue";
72
74
 
73
75
  import { type FSBreadcrumbItem, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
74
76
 
75
- import { useBreakpoints, useColors } from "../../../composables"
77
+ import { useColors } from "../../../composables"
76
78
 
77
79
  import FSCol from "../../FSCol.vue";
78
80
  import FSRow from "../../FSRow.vue"
@@ -117,8 +119,7 @@ export default defineComponent({
117
119
  default: "0px"
118
120
  }
119
121
  },
120
- setup() {
121
- const { isTouchScreenEnabled } = useBreakpoints();
122
+ setup(){
122
123
  const { getColors } = useColors();
123
124
 
124
125
  const backgroundColor = computed(() => {
@@ -126,9 +127,8 @@ export default defineComponent({
126
127
  });
127
128
 
128
129
  return {
129
- isTouchScreenEnabled,
130
130
  backgroundColor
131
- };
131
+ }
132
132
  }
133
133
  });
134
134
  </script>
@@ -36,7 +36,6 @@
36
36
  :icon="$props.icon"
37
37
  />
38
38
  <FSCol
39
- style="min-width: 0"
40
39
  align="center-left"
41
40
  height="fill"
42
41
  >
@@ -12,9 +12,11 @@
12
12
  <slot
13
13
  name="header"
14
14
  >
15
+
15
16
  <FSRow
16
- :style="`position: sticky; top: 0px; z-index: 3; background-color: ${backgroundColor}; margin-top: ${$props.stickyTitleTopOffset};`"
17
- :padding="`24px ${isTouchScreenEnabled ? '24px' : '16px'} 16px 24px`"
17
+ padding="24px 16px 16px 24px"
18
+ style="position: sticky; top: 0px; z-index: 3;"
19
+ :style="{ backgroundColor, marginTop: $props.stickyTitleTopOffset }"
18
20
  >
19
21
  <slot
20
22
  name="title"
@@ -43,8 +45,8 @@
43
45
  </FSCol>
44
46
  <FSRow
45
47
  v-if="$slots.toolbar"
48
+ padding="0px 16px 8px 24px"
46
49
  :style="stickyToolbar ? `position: sticky; top: ${$props.toolbarTopOffset}; z-index: 3; background-color: ${backgroundColor}` : undefined"
47
- :padding="`0px ${isTouchScreenEnabled ? '24px' : '16px'} 8px 24px`"
48
50
  >
49
51
  <FSSlideGroup>
50
52
  <slot
@@ -56,8 +58,8 @@
56
58
 
57
59
  <FSCol
58
60
  height="fill"
61
+ :padding="$slots.toolbar ? '8px 16px 24px 24px' : '16px 16px 24px 24px'"
59
62
  gap="0px"
60
- :padding="`${$slots.toolbar ? '8px' : '16px'} ${isTouchScreenEnabled ? '24px' : '16px'} 24px 24px`"
61
63
  >
62
64
  <slot />
63
65
  </FSCol>
@@ -70,7 +72,7 @@ import { defineComponent, type PropType, computed } from "vue";
70
72
 
71
73
  import { type FSBreadcrumbItem, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
72
74
 
73
- import { useBreakpoints, useColors } from "../../../composables"
75
+ import { useColors } from "../../../composables"
74
76
 
75
77
  import FSCol from "../../FSCol.vue";
76
78
  import FSRow from "../../FSRow.vue"
@@ -115,8 +117,7 @@ export default defineComponent({
115
117
  default: "0px"
116
118
  }
117
119
  },
118
- setup() {
119
- const { isTouchScreenEnabled } = useBreakpoints();
120
+ setup(){
120
121
  const { getColors } = useColors();
121
122
 
122
123
  const backgroundColor = computed(() => {
@@ -124,9 +125,8 @@ export default defineComponent({
124
125
  });
125
126
 
126
127
  return {
127
- isTouchScreenEnabled,
128
128
  backgroundColor
129
- };
129
+ }
130
130
  }
131
131
  });
132
132
  </script>
@@ -28,7 +28,6 @@
28
28
  :size="actualImageSize"
29
29
  />
30
30
  <FSCol
31
- style="min-width: 0"
32
31
  align="center-left"
33
32
  height="fill"
34
33
  >
@@ -20,12 +20,11 @@ export const useSlots = () => {
20
20
  // Directive wrapper (v-for, v-if)
21
21
  case "symbol":
22
22
  switch (element.type) {
23
- // On a v-for, we want to get the children of the v-for
24
23
  case Symbol.for("v-fgt"):
25
24
  returnElements.push(...recursiveGetChildren(element.children));
26
25
  break;
27
- // On a negative v-if, we want to get nothing
28
26
  case Symbol.for("v-cmt"):
27
+ returnElements.push(element);
29
28
  break;
30
29
  default:
31
30
  returnElements.push(element);
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.128-fix-mobile-8",
4
+ "version": "1.0.128-remove-deprecated-scenario",
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.128-fix-mobile-8",
14
- "@dative-gpi/foundation-shared-services": "1.0.128-fix-mobile-8"
13
+ "@dative-gpi/foundation-shared-domain": "1.0.128-remove-deprecated-scenario",
14
+ "@dative-gpi/foundation-shared-services": "1.0.128-remove-deprecated-scenario"
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": "5b1dcb13a29b9fc131731f859b12dd31dcd6beff"
38
+ "gitHead": "c130943e7cb96800dbd98069299ec689da3c9866"
39
39
  }
@@ -1,36 +1,48 @@
1
- .fs-breadcrumbs {
2
- height: var(--fs-breadcrumbs-height) !important;
3
- padding: 0 !important;
4
- gap: 0 !important;
1
+ .fs-breadcrumbs-label {
2
+ cursor: pointer;
3
+ user-select: none;
4
+ color: var(--fs-breadcrumbs-color);
5
5
 
6
- max-width: 100%;
6
+ &-disabled {
7
+ color: var(--fs-breadcrumbs-disabled-color) !important;
8
+ }
9
+
10
+ &:hover {
11
+ text-decoration: underline;
12
+ }
13
+
14
+ &:active {
15
+ color: var(--fs-breadcrumbs-active-color) !important;
16
+ }
7
17
  }
8
18
 
9
- .v-breadcrumbs-item,
10
- .v-breadcrumbs-item--link {
11
- padding: 0 !important;
12
- user-select: none;
13
- cursor: pointer;
19
+ // .fs-breadcrumbs-divider {
20
+ // margin-bottom: 2px !important;
21
+ // }
14
22
 
15
- align-self: stretch;
16
- display: flex;
17
- flex: 1 0 0;
23
+ .fs-breadcrumbs.v-breadcrumbs {
24
+ line-height: normal!important;
25
+ padding: 0 !important;
26
+ gap: 8px !important;
27
+ height: 20px;
28
+ }
18
29
 
19
- max-width: fit-content;
20
- min-width: 20px;
30
+ .v-breadcrumbs-item {
31
+ padding: 0 !important;
21
32
 
22
33
  &--disabled {
23
34
  opacity: 1 !important;
24
35
  color: var(--fs-breadcrumbs-disabled-color) !important;
25
36
  }
26
- }
27
37
 
28
- .v-breadcrumbs-item:last-child > .fs-breadcrumbs-label {
29
- @extend .text-button;
38
+ &:last-child > .fs-breadcrumbs-label-disabled {
39
+ @extend .text-button;
30
40
 
31
- color: var(--fs-breadcrumbs-active-color) !important;
41
+ color: var(--fs-breadcrumbs-active-color) !important;
42
+ }
32
43
  }
33
44
 
34
45
  .v-breadcrumbs-divider {
46
+ padding: 0 !important;
35
47
  color: var(--fs-breadcrumbs-color) !important;
36
48
  }
@@ -2,6 +2,11 @@
2
2
  transition: color 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
3
3
  color: var(--fs-button-color) !important;
4
4
 
5
+ &:not(.fs-button-disabled, :has(.fs-button-load)):hover {
6
+ color: var(--fs-button-hover-color) !important;
7
+ cursor: pointer !important;
8
+ }
9
+
5
10
  &.fs-button-disabled,
6
11
  &:has(.fs-button-load) {
7
12
  cursor: default !important;
@@ -11,11 +16,4 @@
11
16
  color: inherit;
12
17
  text-decoration: none;
13
18
  }
14
-
15
- @include clickscreen {
16
- &:not(.fs-button-disabled, :has(.fs-button-load)):hover {
17
- color: var(--fs-button-hover-color) !important;
18
- cursor: pointer !important;
19
- }
20
- }
21
19
  }
@@ -12,17 +12,15 @@
12
12
  .fs-chip-editable {
13
13
  cursor: pointer !important;
14
14
 
15
+ &:hover {
16
+ background-color: var(--fs-chip-hover-background-color) !important;
17
+ border-color: var(--fs-chip-hover-border-color) !important;
18
+ color: var(--fs-chip-hover-color) !important;
19
+ }
20
+
15
21
  &:active {
16
22
  background-color: var(--fs-chip-active-background-color) !important;
17
23
  border-color: var(--fs-chip-active-border-color) !important;
18
24
  color: var(--fs-chip-active-color) !important;
19
25
  }
20
-
21
- @include clickscreen {
22
- &:hover {
23
- background-color: var(--fs-chip-hover-background-color) !important;
24
- border-color: var(--fs-chip-hover-border-color) !important;
25
- color: var(--fs-chip-hover-color) !important;
26
- }
27
- }
28
26
  }
@@ -11,7 +11,18 @@
11
11
  &.fs-clickable-disabled {
12
12
  cursor: default;
13
13
  }
14
-
14
+
15
+ &:not(.fs-clickable-disabled):hover:not(:has( .fs-stopclick:hover)) {
16
+ background-color: var(--fs-clickable-hover-background-color) !important;
17
+ border-color: var(--fs-clickable-hover-border-color) !important;
18
+ color: var(--fs-clickable-hover-color) !important;
19
+
20
+ & .fs-card-clickable {
21
+ transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
22
+ background-color: var(--fs-clickable-hover-background-color);
23
+ }
24
+ }
25
+
15
26
  &:not(.fs-clickable-disabled):active:not(:has( .fs-stopclick:hover)) {
16
27
  background-color: var(--fs-clickable-active-background-color) !important;
17
28
  border-color: var(--fs-clickable-active-border-color) !important;
@@ -22,19 +33,6 @@
22
33
  background-color: var(--fs-clickable-active-background-color);
23
34
  }
24
35
  }
25
-
26
- @include clickscreen {
27
- &:not(.fs-clickable-disabled):hover:not(:has( .fs-stopclick:hover)) {
28
- background-color: var(--fs-clickable-hover-background-color) !important;
29
- border-color: var(--fs-clickable-hover-border-color) !important;
30
- color: var(--fs-clickable-hover-color) !important;
31
-
32
- & .fs-card-clickable {
33
- transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
34
- background-color: var(--fs-clickable-hover-background-color);
35
- }
36
- }
37
- }
38
36
  }
39
37
 
40
38
  a:has(.fs-clickable) {
@@ -8,18 +8,16 @@
8
8
  padding-right: 32px;
9
9
  }
10
10
 
11
- @include clickscreen {
12
- &:hover::after {
13
- content: "";
14
- background-color: black;
15
- pointer-events: none;
16
- position: absolute;
17
- opacity: 0.04;
18
- height: 100%;
19
- width: 100%;
20
- left: 0;
21
- top: 0;
22
- }
11
+ &:hover::after {
12
+ content: "";
13
+ background-color: black;
14
+ pointer-events: none;
15
+ position: absolute;
16
+ opacity: 0.04;
17
+ height: 100%;
18
+ width: 100%;
19
+ left: 0;
20
+ top: 0;
23
21
  }
24
22
  }
25
23
 
@@ -11,10 +11,8 @@
11
11
  }
12
12
  }
13
13
 
14
- @include clickscreen {
15
- .fs-image-card:hover {
16
- > .fs-card {
17
- background-size: 105%;
18
- }
14
+ .fs-image-card:hover {
15
+ > .fs-card {
16
+ background-size: 105%;
19
17
  }
20
18
  }
@@ -92,13 +92,11 @@
92
92
  align-items: center;
93
93
  justify-content: center;
94
94
 
95
- @include clickscreen {
96
- &:hover {
97
- filter: brightness(0.92) drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.4));
98
-
99
- > * {
100
- transform: scale(1.15);
101
- }
95
+ &:hover {
96
+ filter: brightness(0.92) drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.4));
97
+
98
+ > * {
99
+ transform: scale(1.15);
102
100
  }
103
101
  }
104
102
  }
@@ -130,10 +128,8 @@
130
128
  opacity: 0.6;
131
129
  transition: opacity 0.28s cubic-bezier(0.4, 0, 0.2, 1);
132
130
 
133
- @include clickscreen {
134
- &:hover {
135
- opacity: 1;
136
- }
131
+ &:hover {
132
+ opacity: 1;
137
133
  }
138
134
  }
139
135
  }
@@ -4,9 +4,7 @@
4
4
  color: var(--fs-password-field-color) !important;
5
5
  transition: color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
6
6
 
7
- @include clickscreen {
8
- &:hover {
9
- color: var(--fs-password-field-hover-color) !important;
10
- }
7
+ &:hover {
8
+ color: var(--fs-password-field-hover-color) !important;
11
9
  }
12
10
  }
@@ -1,17 +1,9 @@
1
1
  .fs-span {
2
- display: flex;
3
-
4
- max-width: 100%;
5
- min-width: 0;
6
- }
7
-
8
- .fs-span > span {
9
- text-align: var(--fs-span-text-align);
10
- align-content: center;
11
2
  max-width: 100%;
3
+ text-align: left;
12
4
  }
13
5
 
14
- .fs-span-line-clamp > span {
6
+ .fs-span-line-clamp {
15
7
  overflow: hidden;
16
8
  display: -webkit-box;
17
9
  line-clamp: var(--fs-span-line-clamp);
@@ -19,12 +11,12 @@
19
11
  -webkit-line-clamp: var(--fs-span-line-clamp);
20
12
  }
21
13
 
22
- .fs-span-ellipsis > span {
14
+ .fs-span-ellipsis {
23
15
  overflow: hidden;
24
16
  white-space: nowrap;
25
17
  text-overflow: ellipsis;
26
18
  }
27
19
 
28
- .fs-span-pre-wrap > span {
20
+ .fs-span-pre-wrap {
29
21
  white-space: pre-wrap;
30
22
  }
@@ -23,11 +23,9 @@
23
23
  @extend .text-button;
24
24
  }
25
25
 
26
- @include clickscreen {
27
- &:hover {
28
- border-bottom: 1px solid var(--fs-tab-hover-border-color) !important;
29
- color: var(--fs-group-hover-color) !important;
30
- }
26
+ &:hover {
27
+ border-bottom: 1px solid var(--fs-tab-hover-border-color) !important;
28
+ color: var(--fs-group-hover-color) !important;
31
29
  }
32
30
  }
33
31
 
@@ -36,10 +34,8 @@
36
34
  color: var(--fs-group-hover-color) !important;
37
35
  border-bottom: 0 !important;
38
36
 
39
- @include clickscreen {
40
- &:hover {
41
- border-bottom: 0 !important;
42
- }
37
+ &:hover {
38
+ border-bottom: 0 !important;
43
39
  }
44
40
  }
45
41
 
@@ -13,19 +13,17 @@
13
13
  background-color: var(--fs-tag-background-color) !important;
14
14
  color: var(--fs-tag-color) !important;
15
15
 
16
- min-width: 20px !important;
17
- width: 20px !important;
18
- height: 20px !important;
16
+ &:hover {
17
+ background-color: var(--fs-tag-hover-background-color) !important;
18
+ color: var(--fs-tag-hover-color) !important;
19
+ }
19
20
 
20
21
  &:active {
21
22
  background-color: var(--fs-tag-active-background-color) !important;
22
23
  color: var(--fs-tag-active-color) !important;
23
24
  }
24
25
 
25
- @include clickscreen {
26
- &:hover {
27
- background-color: var(--fs-tag-hover-background-color) !important;
28
- color: var(--fs-tag-hover-color) !important;
29
- }
30
- }
26
+ min-width: 20px !important;
27
+ width: 20px !important;
28
+ height: 20px !important;
31
29
  }
@@ -137,16 +137,11 @@
137
137
  }
138
138
  }
139
139
 
140
+ // Ellipsis on input of all fields
140
141
  input {
141
- // Ellipsis on all fields
142
142
  text-overflow: ellipsis;
143
143
  }
144
144
 
145
- input, select, textarea {
146
- // No zoom on focus for user of a certain version of Chrome, and who ask their mobile to zoom if font-size < 16px
147
- touch-action: none;
148
- }
149
-
150
145
  // No up / down buttons in input field of type number
151
146
  input[type=number] {
152
147
  -moz-appearance: textfield;
@@ -192,11 +187,9 @@ $nthOverlay: 25;
192
187
  }
193
188
 
194
189
  // Change color on arrows when hovered
195
- @include clickscreen {
196
- .v-slide-group__prev:hover,
197
- .v-slide-group__next:hover {
198
- color: var(--fs-group-hover-color);
199
- }
190
+ .v-slide-group__prev:hover,
191
+ .v-slide-group__next:hover {
192
+ color: var(--fs-group-hover-color);
200
193
  }
201
194
 
202
195
  /***************************************************************************/
@@ -47,19 +47,9 @@
47
47
  @include touchscreen {
48
48
  .fs-hide-x-scrollbar {
49
49
  overflow-x: scroll;
50
-
51
- &::-webkit-scrollbar {
52
- display: none;
53
- }
54
- scrollbar-width: none;
55
50
  }
56
51
 
57
52
  .fs-hide-y-scrollbar {
58
53
  overflow-y: scroll;
59
-
60
- &::-webkit-scrollbar {
61
- display: none;
62
- }
63
- scrollbar-width: none;
64
54
  }
65
55
  }