@dative-gpi/foundation-shared-components 0.0.16 → 0.0.17
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/FSCol.vue +2 -2
- package/components/FSImage.vue +30 -24
- package/components/FSLabel.vue +12 -12
- package/components/FSLoader.vue +107 -0
- package/components/FSRow.vue +2 -2
- package/components/lists/FSDataTableUI.vue +29 -28
- package/components/lists/FSLoadDataTable.vue +24 -22
- package/components/tiles/FSLoadTile.vue +44 -13
- package/package.json +4 -4
- package/styles/components/fs_autocomplete_field.scss +0 -30
- package/styles/components/fs_color_field.scss +0 -8
- package/styles/components/fs_image.scss +0 -7
- package/styles/components/fs_label.scss +0 -81
- package/styles/components/fs_load_data_table.scss +1 -65
- package/styles/components/fs_load_tile.scss +0 -46
- package/styles/components/fs_loader.scss +12 -0
- package/styles/components/fs_select_field.scss +15 -51
- package/styles/components/fs_text_area.scss +1 -20
- package/styles/components/fs_text_field.scss +12 -44
- package/styles/components/index.scss +1 -0
- package/styles/globals/overrides.scss +52 -12
package/components/FSCol.vue
CHANGED
|
@@ -17,12 +17,12 @@ export default defineComponent({
|
|
|
17
17
|
name: "FSCol",
|
|
18
18
|
props: {
|
|
19
19
|
width: {
|
|
20
|
-
type: String as PropType<"hug" | "fill" | string>,
|
|
20
|
+
type: [String, Number] as PropType<"hug" | "fill" | string | number>,
|
|
21
21
|
required: false,
|
|
22
22
|
default: "fill"
|
|
23
23
|
},
|
|
24
24
|
height: {
|
|
25
|
-
type: String as PropType<"hug" | "fill" | string>,
|
|
25
|
+
type: [String, Number] as PropType<"hug" | "fill" | string | number>,
|
|
26
26
|
required: false,
|
|
27
27
|
default: "hug"
|
|
28
28
|
},
|
package/components/FSImage.vue
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-img
|
|
3
3
|
class="fs-image"
|
|
4
|
-
:src="source"
|
|
5
|
-
:style="style"
|
|
6
|
-
:cover="$props.cover"
|
|
7
|
-
:width="computedWidth"
|
|
8
4
|
:height="computedHeight"
|
|
5
|
+
:width="computedWidth"
|
|
6
|
+
:cover="$props.cover"
|
|
7
|
+
:style="style"
|
|
8
|
+
:src="source"
|
|
9
9
|
v-bind="$attrs"
|
|
10
10
|
>
|
|
11
11
|
<template #placeholder>
|
|
12
|
-
<
|
|
12
|
+
<FSLoader
|
|
13
13
|
class="fs-load-image"
|
|
14
|
-
|
|
15
|
-
:
|
|
14
|
+
:borderRadius="$props.borderRadius"
|
|
15
|
+
:height="computedHeight"
|
|
16
|
+
:width="computedWidth"
|
|
16
17
|
/>
|
|
17
18
|
</template>
|
|
18
19
|
</v-img>
|
|
@@ -24,8 +25,13 @@ import { computed, defineComponent, onMounted, watch } from "vue";
|
|
|
24
25
|
import { useImageRaw, useImageBlurHash } from "@dative-gpi/foundation-shared-services/composables";
|
|
25
26
|
import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
|
|
26
27
|
|
|
28
|
+
import FSLoader from "./FSLoader.vue";
|
|
29
|
+
|
|
27
30
|
export default defineComponent({
|
|
28
31
|
name: "FSImage",
|
|
32
|
+
components: {
|
|
33
|
+
FSLoader
|
|
34
|
+
},
|
|
29
35
|
props: {
|
|
30
36
|
imageId: {
|
|
31
37
|
type: [String, null, undefined],
|
|
@@ -68,40 +74,40 @@ export default defineComponent({
|
|
|
68
74
|
}
|
|
69
75
|
});
|
|
70
76
|
|
|
71
|
-
const
|
|
72
|
-
if (props.width) {
|
|
73
|
-
return props.width;
|
|
74
|
-
}
|
|
77
|
+
const computedHeight = computed((): number | string | undefined => {
|
|
75
78
|
if (props.height) {
|
|
76
|
-
|
|
79
|
+
return props.height;
|
|
80
|
+
}
|
|
81
|
+
if (props.width) {
|
|
82
|
+
if (typeof(props.width) === "string") {
|
|
77
83
|
return undefined;
|
|
78
84
|
}
|
|
79
85
|
if (props.aspectRatio) {
|
|
80
86
|
const split = props.aspectRatio.split('/');
|
|
81
87
|
if (split.length === 2 && !isNaN(parseFloat(split[0])) && !isNaN(parseFloat(split[1]))) {
|
|
82
|
-
return props.
|
|
88
|
+
return props.width * (parseFloat(split[1]) / parseFloat(split[0]));
|
|
83
89
|
}
|
|
84
90
|
}
|
|
85
|
-
return props.
|
|
91
|
+
return props.width;
|
|
86
92
|
}
|
|
87
93
|
return undefined;
|
|
88
94
|
});
|
|
89
95
|
|
|
90
|
-
const
|
|
91
|
-
if (props.height) {
|
|
92
|
-
return props.height;
|
|
93
|
-
}
|
|
96
|
+
const computedWidth = computed((): number | string | undefined => {
|
|
94
97
|
if (props.width) {
|
|
95
|
-
|
|
98
|
+
return props.width;
|
|
99
|
+
}
|
|
100
|
+
if (props.height) {
|
|
101
|
+
if (typeof(props.height) === "string") {
|
|
96
102
|
return undefined;
|
|
97
103
|
}
|
|
98
104
|
if (props.aspectRatio) {
|
|
99
105
|
const split = props.aspectRatio.split('/');
|
|
100
106
|
if (split.length === 2 && !isNaN(parseFloat(split[0])) && !isNaN(parseFloat(split[1]))) {
|
|
101
|
-
return props.
|
|
107
|
+
return props.height * (parseFloat(split[0]) / parseFloat(split[1]));
|
|
102
108
|
}
|
|
103
109
|
}
|
|
104
|
-
return props.
|
|
110
|
+
return props.height;
|
|
105
111
|
}
|
|
106
112
|
return undefined;
|
|
107
113
|
});
|
|
@@ -141,10 +147,10 @@ export default defineComponent({
|
|
|
141
147
|
}
|
|
142
148
|
|
|
143
149
|
return {
|
|
144
|
-
|
|
145
|
-
source,
|
|
150
|
+
computedHeight,
|
|
146
151
|
computedWidth,
|
|
147
|
-
|
|
152
|
+
source,
|
|
153
|
+
style
|
|
148
154
|
};
|
|
149
155
|
}
|
|
150
156
|
});
|
package/components/FSLabel.vue
CHANGED
|
@@ -7,21 +7,25 @@
|
|
|
7
7
|
>
|
|
8
8
|
{{ $props.label }}
|
|
9
9
|
</span>
|
|
10
|
-
<
|
|
10
|
+
<FSLoader
|
|
11
11
|
v-else
|
|
12
|
-
|
|
13
|
-
:class="loadClasses"
|
|
12
|
+
:variant="$props.font"
|
|
14
13
|
/>
|
|
15
14
|
</template>
|
|
16
15
|
|
|
17
16
|
<script lang="ts">
|
|
18
17
|
import { computed, defineComponent, PropType } from "vue";
|
|
19
18
|
|
|
20
|
-
import { useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
19
|
+
import { useBreakpoints, useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
21
20
|
import { ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
22
21
|
|
|
22
|
+
import FSLoader from "./FSLoader.vue";
|
|
23
|
+
|
|
23
24
|
export default defineComponent({
|
|
24
25
|
name: "FSLabel",
|
|
26
|
+
components: {
|
|
27
|
+
FSLoader
|
|
28
|
+
},
|
|
25
29
|
props: {
|
|
26
30
|
label: {
|
|
27
31
|
type: [String, null, undefined],
|
|
@@ -55,6 +59,7 @@ export default defineComponent({
|
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
61
|
setup(props) {
|
|
62
|
+
const { isMobileSized } = useBreakpoints();
|
|
58
63
|
const { getColors } = useColors();
|
|
59
64
|
const { slots } = useSlots();
|
|
60
65
|
|
|
@@ -74,30 +79,25 @@ export default defineComponent({
|
|
|
74
79
|
return classNames;
|
|
75
80
|
});
|
|
76
81
|
|
|
77
|
-
const loadClasses = computed((): string[] => {
|
|
78
|
-
return ["fs-load-label", props.font];
|
|
79
|
-
});
|
|
80
|
-
|
|
81
82
|
const style = computed((): { [code: string]: string } & Partial<CSSStyleDeclaration> => {
|
|
82
83
|
switch (props.variant) {
|
|
83
84
|
case "base": return {
|
|
84
85
|
"--fs-span-line-clamp": props.lineClamp.toString(),
|
|
85
|
-
"--fs-label-color"
|
|
86
|
+
"--fs-label-color" : colors.value.base
|
|
86
87
|
};
|
|
87
88
|
case "light": return {
|
|
88
89
|
"--fs-span-line-clamp": props.lineClamp.toString(),
|
|
89
|
-
"--fs-label-color"
|
|
90
|
+
"--fs-label-color" : colors.value.light
|
|
90
91
|
};
|
|
91
92
|
case "dark": return {
|
|
92
93
|
"--fs-span-line-clamp": props.lineClamp.toString(),
|
|
93
|
-
"--fs-label-color"
|
|
94
|
+
"--fs-label-color" : colors.value.dark
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
});
|
|
97
98
|
|
|
98
99
|
return {
|
|
99
100
|
classes,
|
|
100
|
-
loadClasses,
|
|
101
101
|
style
|
|
102
102
|
};
|
|
103
103
|
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<v-skeleton-loader
|
|
3
|
+
class="fs-loader"
|
|
4
|
+
type="image"
|
|
5
|
+
:style="style"
|
|
6
|
+
/>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script lang="ts">
|
|
10
|
+
import { computed, defineComponent, PropType } from "vue";
|
|
11
|
+
|
|
12
|
+
import { useBreakpoints } from "@dative-gpi/foundation-shared-components/composables";
|
|
13
|
+
import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
|
|
14
|
+
|
|
15
|
+
export default defineComponent({
|
|
16
|
+
name: "FSLoader",
|
|
17
|
+
props: {
|
|
18
|
+
width: {
|
|
19
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number>,
|
|
20
|
+
required: false,
|
|
21
|
+
default: null
|
|
22
|
+
},
|
|
23
|
+
height: {
|
|
24
|
+
type: [Array, String, Number] as PropType<string[] | number[] | string | number>,
|
|
25
|
+
required: false,
|
|
26
|
+
default: null
|
|
27
|
+
},
|
|
28
|
+
borderRadius: {
|
|
29
|
+
type: [String, Number],
|
|
30
|
+
required: false,
|
|
31
|
+
default: "4px"
|
|
32
|
+
},
|
|
33
|
+
variant: {
|
|
34
|
+
type: String as PropType<"standard" | "button" | "input" | "chip" | "text-h1" | "text-h2" | "text-h3" | "text-h4" | "text-body" | "text-button" | "text-overline" | "text-underline">,
|
|
35
|
+
required: false,
|
|
36
|
+
default: "standard"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
setup(props) {
|
|
40
|
+
const { isMobileSized, isExtraSmall } = useBreakpoints();
|
|
41
|
+
|
|
42
|
+
const style = computed((): {[code: string]: string} & Partial<CSSStyleDeclaration> => {
|
|
43
|
+
return {
|
|
44
|
+
"--fs-loader-border-radius": ["chip"].includes(props.variant) ? "50px" : sizeToVar(props.borderRadius),
|
|
45
|
+
"--fs-loader-height": sizeToVar(getHeight.value),
|
|
46
|
+
"--fs-loader-width" : sizeToVar(getWidth.value)
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const getHeight = computed((): string | number => {
|
|
51
|
+
switch (props.variant) {
|
|
52
|
+
case "standard": {
|
|
53
|
+
if (Array.isArray(props.height)) {
|
|
54
|
+
if (isExtraSmall.value) {
|
|
55
|
+
return props.height[2] ?? props.height[1] ?? props.height[0];
|
|
56
|
+
}
|
|
57
|
+
if (isMobileSized.value) {
|
|
58
|
+
return props.height[1] ?? props.height[0];
|
|
59
|
+
}
|
|
60
|
+
return props.height[0];
|
|
61
|
+
}
|
|
62
|
+
return props.height;
|
|
63
|
+
}
|
|
64
|
+
case "button":
|
|
65
|
+
case "input": return isMobileSized.value ? "36px" : "40px";
|
|
66
|
+
case "chip": return isMobileSized.value ? "20px" : "24px";
|
|
67
|
+
case "text-h1": return isMobileSized.value ? "29px" : "36px";
|
|
68
|
+
case "text-h2": return isMobileSized.value ? "22px" : "27px";
|
|
69
|
+
case "text-h3": return isMobileSized.value ? "17px" : "21px";
|
|
70
|
+
case "text-h4": return isMobileSized.value ? "14px" : "16px";
|
|
71
|
+
case "text-body":
|
|
72
|
+
case "text-button": return isMobileSized.value ? "12px" : "14px";
|
|
73
|
+
case "text-overline":
|
|
74
|
+
case "text-underline": return isMobileSized.value ? "10px" : "12px";
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const getWidth = computed((): string | number => {
|
|
79
|
+
switch (props.variant) {
|
|
80
|
+
case "standard": {
|
|
81
|
+
if (Array.isArray(props.width)) {
|
|
82
|
+
if (isExtraSmall.value) {
|
|
83
|
+
return props.width[2] ?? props.width[1] ?? props.width[0];
|
|
84
|
+
}
|
|
85
|
+
if (isMobileSized.value) {
|
|
86
|
+
return props.width[1] ?? props.width[0];
|
|
87
|
+
}
|
|
88
|
+
return props.width[0];
|
|
89
|
+
}
|
|
90
|
+
return props.width;
|
|
91
|
+
}
|
|
92
|
+
case "button": return isMobileSized ? "36px" : "40px";
|
|
93
|
+
case "input": return isMobileSized ? "calc(50% - 124px)" : "calc(50% - 132px)";
|
|
94
|
+
case "chip": return "8vw";
|
|
95
|
+
case "text-h1": return "calc(50% - 32px)";
|
|
96
|
+
case "text-h2": return "calc(60% - 32px)";
|
|
97
|
+
case "text-h3": return "calc(65% - 32px)";
|
|
98
|
+
default: return "calc(75% - 32px)";
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
style
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
</script>
|
package/components/FSRow.vue
CHANGED
|
@@ -17,12 +17,12 @@ export default defineComponent({
|
|
|
17
17
|
name: "FSRow",
|
|
18
18
|
props: {
|
|
19
19
|
width: {
|
|
20
|
-
type: String as PropType<"hug" | "fill" | string>,
|
|
20
|
+
type: [String, Number] as PropType<"hug" | "fill" | string | number>,
|
|
21
21
|
required: false,
|
|
22
22
|
default: "fill"
|
|
23
23
|
},
|
|
24
24
|
height: {
|
|
25
|
-
type: String as PropType<"hug" | "fill" | string>,
|
|
25
|
+
type: [String, Number] as PropType<"hug" | "fill" | string | number>,
|
|
26
26
|
required: false,
|
|
27
27
|
default: "hug"
|
|
28
28
|
},
|
|
@@ -367,34 +367,35 @@
|
|
|
367
367
|
<FSRow
|
|
368
368
|
width="hug"
|
|
369
369
|
>
|
|
370
|
-
<template v-for="(item, index) in items">
|
|
371
|
-
<
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
370
|
+
<template v-for="(item, index) in items.filter((item) => item.type === 'item')">
|
|
371
|
+
<slot name="item.tile" v-bind="{ index, item: item.raw, toggleSelect }">
|
|
372
|
+
<FSDataIteratorItem
|
|
373
|
+
:key="index"
|
|
374
|
+
:item="item.raw"
|
|
375
|
+
:color="$props.color"
|
|
376
|
+
:itemTo="$props.itemTo"
|
|
377
|
+
:showSelect="$props.showSelect"
|
|
378
|
+
:headers="innerHeaders.filter(h => !$props.sneakyHeaders.includes(h.value))"
|
|
379
|
+
:modelValue="innerValue.includes(item.raw[$props.itemValue])"
|
|
380
|
+
@update:modelValue="toggleSelect"
|
|
381
|
+
>
|
|
382
|
+
<template #[`item.top`]="props">
|
|
383
|
+
<slot name="item.top" v-bind="props" />
|
|
384
|
+
</template>
|
|
385
|
+
<template v-for="(item, index) in itemsSlots" #[item.slotName]="props">
|
|
386
|
+
<slot :name="item.slotName" v-bind="props">
|
|
387
|
+
<FSText
|
|
388
|
+
:key="index"
|
|
389
|
+
>
|
|
390
|
+
{{ props.item[item.value] }}
|
|
391
|
+
</FSText>
|
|
392
|
+
</slot>
|
|
393
|
+
</template>
|
|
394
|
+
<template #[`item.bottom`]="props">
|
|
395
|
+
<slot name="item.bottom" v-bind="props" />
|
|
396
|
+
</template>
|
|
397
|
+
</FSDataIteratorItem>
|
|
398
|
+
</slot>
|
|
398
399
|
</template>
|
|
399
400
|
</FSRow>
|
|
400
401
|
</template>
|
|
@@ -7,29 +7,29 @@
|
|
|
7
7
|
<FSRow
|
|
8
8
|
align="bottom-center"
|
|
9
9
|
>
|
|
10
|
-
<
|
|
11
|
-
|
|
10
|
+
<FSLoader
|
|
11
|
+
variant="input"
|
|
12
12
|
/>
|
|
13
|
-
<
|
|
14
|
-
|
|
13
|
+
<FSLoader
|
|
14
|
+
variant="button"
|
|
15
15
|
/>
|
|
16
16
|
<v-spacer />
|
|
17
|
-
<
|
|
18
|
-
|
|
17
|
+
<FSLoader
|
|
18
|
+
variant="button"
|
|
19
19
|
/>
|
|
20
|
-
<
|
|
21
|
-
|
|
20
|
+
<FSLoader
|
|
21
|
+
variant="button"
|
|
22
22
|
/>
|
|
23
23
|
</FSRow>
|
|
24
24
|
<FSRow>
|
|
25
|
-
<
|
|
26
|
-
|
|
25
|
+
<FSLoader
|
|
26
|
+
variant="chip"
|
|
27
27
|
/>
|
|
28
|
-
<
|
|
29
|
-
|
|
28
|
+
<FSLoader
|
|
29
|
+
variant="chip"
|
|
30
30
|
/>
|
|
31
|
-
<
|
|
32
|
-
|
|
31
|
+
<FSLoader
|
|
32
|
+
variant="chip"
|
|
33
33
|
/>
|
|
34
34
|
</FSRow>
|
|
35
35
|
<v-skeleton-loader
|
|
@@ -38,17 +38,17 @@
|
|
|
38
38
|
<FSRow
|
|
39
39
|
align="bottom-right"
|
|
40
40
|
>
|
|
41
|
-
<
|
|
42
|
-
|
|
41
|
+
<FSLoader
|
|
42
|
+
variant="input"
|
|
43
43
|
/>
|
|
44
|
-
<
|
|
45
|
-
|
|
44
|
+
<FSLoader
|
|
45
|
+
variant="button"
|
|
46
46
|
/>
|
|
47
|
-
<
|
|
48
|
-
|
|
47
|
+
<FSLoader
|
|
48
|
+
variant="button"
|
|
49
49
|
/>
|
|
50
|
-
<
|
|
51
|
-
|
|
50
|
+
<FSLoader
|
|
51
|
+
variant="button"
|
|
52
52
|
/>
|
|
53
53
|
</FSRow>
|
|
54
54
|
</FSCol>
|
|
@@ -60,12 +60,14 @@ import { computed, defineComponent } from "vue";
|
|
|
60
60
|
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
61
61
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
62
62
|
|
|
63
|
+
import FSLoader from "../FSLoader.vue";
|
|
63
64
|
import FSCol from "../FSCol.vue";
|
|
64
65
|
import FSRow from "../FSRow.vue";
|
|
65
66
|
|
|
66
67
|
export default defineComponent({
|
|
67
68
|
name: "FSLoadDataTable",
|
|
68
69
|
components: {
|
|
70
|
+
FSLoader,
|
|
69
71
|
FSCol,
|
|
70
72
|
FSRow
|
|
71
73
|
},
|
|
@@ -2,20 +2,41 @@
|
|
|
2
2
|
<FSCard
|
|
3
3
|
class="fs-load-tile"
|
|
4
4
|
padding="11px"
|
|
5
|
+
:height="heights.card"
|
|
6
|
+
:width="widths.card"
|
|
5
7
|
:style="style"
|
|
6
|
-
:width="width"
|
|
7
|
-
:height="height"
|
|
8
8
|
>
|
|
9
9
|
<FSRow
|
|
10
10
|
align="center-center"
|
|
11
11
|
height="fill"
|
|
12
|
+
width="fill"
|
|
12
13
|
gap="24px"
|
|
13
14
|
>
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
<FSCol
|
|
16
|
+
:height="heights.col"
|
|
17
|
+
:width="widths.col"
|
|
18
|
+
gap="24px"
|
|
19
|
+
>
|
|
20
|
+
<FSCol>
|
|
21
|
+
<FSLoader
|
|
22
|
+
variant="text-button"
|
|
23
|
+
/>
|
|
24
|
+
<FSLoader
|
|
25
|
+
variant="text-overline"
|
|
26
|
+
/>
|
|
27
|
+
</FSCol>
|
|
28
|
+
<FSCol>
|
|
29
|
+
<FSLoader
|
|
30
|
+
variant="text-overline"
|
|
31
|
+
/>
|
|
32
|
+
<FSLoader
|
|
33
|
+
variant="text-overline"
|
|
34
|
+
/>
|
|
35
|
+
</FSCol>
|
|
36
|
+
</FSCol>
|
|
37
|
+
<FSLoader
|
|
38
|
+
:height="heights.image"
|
|
39
|
+
:width="widths.image"
|
|
19
40
|
/>
|
|
20
41
|
</FSRow>
|
|
21
42
|
<FSContainer
|
|
@@ -39,6 +60,7 @@ import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
|
39
60
|
|
|
40
61
|
import FSContainer from "../FSContainer.vue";
|
|
41
62
|
import FSCheckbox from "../FSCheckbox.vue";
|
|
63
|
+
import FSLoader from "../FSLoader.vue";
|
|
42
64
|
import FSCard from "../FSCard.vue";
|
|
43
65
|
import FSCol from "../FSCol.vue";
|
|
44
66
|
import FSRow from "../FSRow.vue";
|
|
@@ -48,6 +70,7 @@ export default defineComponent({
|
|
|
48
70
|
components: {
|
|
49
71
|
FSContainer,
|
|
50
72
|
FSCheckbox,
|
|
73
|
+
FSLoader,
|
|
51
74
|
FSCard,
|
|
52
75
|
FSCol,
|
|
53
76
|
FSRow
|
|
@@ -71,12 +94,20 @@ export default defineComponent({
|
|
|
71
94
|
|
|
72
95
|
const backgroundColors = getColors(ColorEnum.Background);
|
|
73
96
|
|
|
74
|
-
const
|
|
75
|
-
return
|
|
97
|
+
const heights = computed(() => {
|
|
98
|
+
return {
|
|
99
|
+
image: isMobileSized.value ? "90px" : "100px",
|
|
100
|
+
card: isMobileSized.value ? "156px" : "170px",
|
|
101
|
+
col: isMobileSized.value ? "90px" : "100px"
|
|
102
|
+
}
|
|
76
103
|
});
|
|
77
104
|
|
|
78
|
-
const
|
|
79
|
-
return
|
|
105
|
+
const widths = computed(() => {
|
|
106
|
+
return {
|
|
107
|
+
image: isMobileSized.value ? "90px" : "100px",
|
|
108
|
+
card: isMobileSized.value ? "336px" : "352px",
|
|
109
|
+
col: isMobileSized.value ? "198px" : "204px"
|
|
110
|
+
}
|
|
80
111
|
});
|
|
81
112
|
|
|
82
113
|
const style = computed((): {[code: string]: string} & Partial<CSSStyleDeclaration> => {
|
|
@@ -86,8 +117,8 @@ export default defineComponent({
|
|
|
86
117
|
});
|
|
87
118
|
|
|
88
119
|
return {
|
|
89
|
-
|
|
90
|
-
|
|
120
|
+
heights,
|
|
121
|
+
widths,
|
|
91
122
|
style
|
|
92
123
|
};
|
|
93
124
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dative-gpi/foundation-shared-components",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.17",
|
|
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": "0.0.
|
|
14
|
-
"@dative-gpi/foundation-shared-services": "0.0.
|
|
13
|
+
"@dative-gpi/foundation-shared-domain": "0.0.17",
|
|
14
|
+
"@dative-gpi/foundation-shared-services": "0.0.17",
|
|
15
15
|
"@fontsource/montserrat": "^5.0.16",
|
|
16
16
|
"@lexical/clipboard": "^0.12.5",
|
|
17
17
|
"@lexical/history": "^0.12.5",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"sass": "^1.69.5",
|
|
33
33
|
"sass-loader": "^13.3.2"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "306471c4e5e2ba6ccccaf44d9162b5d5f3941bff"
|
|
36
36
|
}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
.fs-autocomplete-field {
|
|
2
|
-
padding: 0px !important;
|
|
3
|
-
min-width: 240px;
|
|
4
|
-
width: 100%;
|
|
5
|
-
|
|
6
2
|
& > .v-input__control > .v-field {
|
|
7
3
|
border: 1px solid var(--fs-autocomplete-field-border-color) !important;
|
|
8
4
|
cursor: var(--fs-autocomplete-field-cursor) !important;
|
|
9
|
-
border-radius: 4px !important;
|
|
10
|
-
padding: 0 16px !important;
|
|
11
|
-
gap: 8px;
|
|
12
5
|
|
|
13
6
|
&--error {
|
|
14
7
|
border-color: var(--fs-autocomplete-field-error-border-color) !important;
|
|
@@ -18,32 +11,9 @@
|
|
|
18
11
|
border-color: var(--fs-autocomplete-field-active-border-color) !important;
|
|
19
12
|
}
|
|
20
13
|
|
|
21
|
-
& > .v-field__outline {
|
|
22
|
-
display: none;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
14
|
& > .v-field__field > .v-field__input {
|
|
26
|
-
@extend .text-body;
|
|
27
|
-
|
|
28
|
-
flex-wrap: nowrap;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
padding-inline: 0 !important;
|
|
31
15
|
color: var(--fs-autocomplete-field-color);
|
|
32
16
|
cursor: var(--fs-autocomplete-field-cursor) !important;
|
|
33
|
-
|
|
34
|
-
@include web {
|
|
35
|
-
min-height: 38px !important;
|
|
36
|
-
height: 38px !important;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@include mobile {
|
|
40
|
-
min-height: 34px !important;
|
|
41
|
-
height: 34px !important;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
& > .v-field__clearable {
|
|
46
|
-
margin-inline: 0px;
|
|
47
17
|
}
|
|
48
18
|
|
|
49
19
|
& > .v-field__append-inner {
|
|
@@ -2,85 +2,4 @@
|
|
|
2
2
|
color: var(--fs-label-color);
|
|
3
3
|
|
|
4
4
|
@extend .fs-span;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.fs-load-label {
|
|
8
|
-
& > .v-skeleton-loader__text {
|
|
9
|
-
margin: 0px;
|
|
10
|
-
height: 100%;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&.text-h1 {
|
|
14
|
-
width: calc(50% - 32px);
|
|
15
|
-
|
|
16
|
-
@include web {
|
|
17
|
-
height: 36px;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@include mobile {
|
|
21
|
-
height: 29px;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
&.text-h2 {
|
|
26
|
-
width: calc(60% - 32px);
|
|
27
|
-
|
|
28
|
-
@include web {
|
|
29
|
-
height: 27px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@include mobile {
|
|
33
|
-
height: 22px;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&.text-h3 {
|
|
38
|
-
width: calc(65% - 32px);
|
|
39
|
-
|
|
40
|
-
@include web {
|
|
41
|
-
height: 21px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@include mobile {
|
|
45
|
-
height: 17px;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&.text-h4 {
|
|
50
|
-
width: calc(75% - 32px);
|
|
51
|
-
|
|
52
|
-
@include web {
|
|
53
|
-
height: 16px;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@include mobile {
|
|
57
|
-
height: 14px;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
&.text-body,
|
|
62
|
-
&.text-button {
|
|
63
|
-
width: calc(75% - 32px);
|
|
64
|
-
|
|
65
|
-
@include web {
|
|
66
|
-
height: 14px;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@include mobile {
|
|
70
|
-
height: 12px;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
&.text-overline,
|
|
75
|
-
&.text-underline {
|
|
76
|
-
width: calc(75% - 32px);
|
|
77
|
-
|
|
78
|
-
@include web {
|
|
79
|
-
height: 12px;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
@include mobile {
|
|
83
|
-
height: 10px;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
5
|
}
|
|
@@ -2,76 +2,12 @@
|
|
|
2
2
|
position: relative;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
.fs-load-data-table .fs-row:first-of-type .v-skeleton-loader__button {
|
|
6
|
-
margin: 0;
|
|
7
|
-
|
|
8
|
-
@include web {
|
|
9
|
-
height: 40px !important;
|
|
10
|
-
min-width: 40px;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@include mobile {
|
|
14
|
-
height: 36px !important;
|
|
15
|
-
min-width: 36px;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.fs-load-data-table .fs-row:first-of-type .v-skeleton-loader:first-of-type {
|
|
20
|
-
@include web {
|
|
21
|
-
min-width: calc(50% - 132px);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@include mobile {
|
|
25
|
-
min-width: calc(50% - 124px);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
& .v-skeleton-loader__button {
|
|
29
|
-
min-width: 100%;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.fs-load-data-table .fs-row:nth-of-type(2) .v-skeleton-loader__chip {
|
|
34
|
-
margin: 0;
|
|
35
|
-
border-radius: 50px !important;
|
|
36
|
-
min-width: 10vw;
|
|
37
|
-
|
|
38
|
-
@include web {
|
|
39
|
-
height: 24px !important;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@include mobile {
|
|
43
|
-
height: 20px !important;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
5
|
.fs-load-data-table .v-skeleton-loader:has(.v-skeleton-loader__table-row-divider),
|
|
48
6
|
.fs-load-data-table .v-skeleton-loader:has(.v-skeleton-loader__table-thead) {
|
|
49
|
-
background-color: var(--fs-load-
|
|
7
|
+
background-color: var(--fs-load-data-table-background-color);
|
|
50
8
|
min-width: 100%;
|
|
51
9
|
}
|
|
52
10
|
|
|
53
11
|
.fs-load-data-table .v-skeleton-loader__table-row {
|
|
54
12
|
margin: 0 -8px;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.fs-load-data-table .fs-row:last-of-type .v-skeleton-loader__button {
|
|
58
|
-
margin: 0;
|
|
59
|
-
|
|
60
|
-
@include web {
|
|
61
|
-
height: 40px !important;
|
|
62
|
-
min-width: 40px;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
@include mobile {
|
|
66
|
-
height: 36px !important;
|
|
67
|
-
min-width: 36px;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.fs-load-data-table .fs-row:last-of-type .v-skeleton-loader:first-of-type {
|
|
72
|
-
min-width: 120px;
|
|
73
|
-
|
|
74
|
-
& .v-skeleton-loader__button {
|
|
75
|
-
min-width: 100%;
|
|
76
|
-
}
|
|
77
13
|
}
|
|
@@ -1,49 +1,3 @@
|
|
|
1
1
|
.fs-load-tile {
|
|
2
2
|
position: relative;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.fs-load-tile .v-skeleton-loader {
|
|
6
|
-
background-color: var(--fs-load-tile-background-color);
|
|
7
|
-
|
|
8
|
-
& .v-skeleton-loader__article {
|
|
9
|
-
gap: 8px;
|
|
10
|
-
|
|
11
|
-
@include web {
|
|
12
|
-
width: 204px;
|
|
13
|
-
height: 100px;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@include mobile {
|
|
17
|
-
width: 198px;
|
|
18
|
-
height: 90px;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
& .v-skeleton-loader__heading {
|
|
23
|
-
margin: 0;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
& .v-skeleton-loader__paragraph {
|
|
27
|
-
gap: 8px;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
& .v-skeleton-loader__text {
|
|
31
|
-
margin: 0;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
& .v-skeleton-loader__bone {
|
|
35
|
-
border-radius: 4px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
& .v-skeleton-loader__image {
|
|
39
|
-
@include web {
|
|
40
|
-
width: 100px;
|
|
41
|
-
height: 100px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@include mobile {
|
|
45
|
-
width: 90px;
|
|
46
|
-
height: 90px;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
3
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
.fs-loader {
|
|
2
|
+
min-height: var(--fs-loader-height);
|
|
3
|
+
height: var(--fs-loader-height);
|
|
4
|
+
min-width: var(--fs-loader-width);
|
|
5
|
+
width: var(--fs-loader-width);
|
|
6
|
+
|
|
7
|
+
& > .v-skeleton-loader__image {
|
|
8
|
+
border-radius: var(--fs-loader-border-radius) !important;
|
|
9
|
+
height: 100%;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,58 +1,22 @@
|
|
|
1
|
-
.fs-select-field {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
width: 100%;
|
|
1
|
+
.fs-select-field > .v-input__control > .v-field {
|
|
2
|
+
border: 1px solid var(--fs-select-field-border-color) !important;
|
|
3
|
+
cursor: var(--fs-select-field-cursor) !important;
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
border:
|
|
8
|
-
|
|
9
|
-
border-radius: 4px !important;
|
|
10
|
-
padding: 0 16px !important;
|
|
11
|
-
gap: 8px;
|
|
12
|
-
|
|
13
|
-
&--error {
|
|
14
|
-
border-color: var(--fs-select-field-error-border-color) !important;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&:not(.v-field--error):focus-within {
|
|
18
|
-
border-color: var(--fs-select-field-active-border-color) !important;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
& > .v-field__outline {
|
|
22
|
-
display: none;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
& > .v-field__field > .v-field__input {
|
|
26
|
-
@extend .text-body;
|
|
27
|
-
|
|
28
|
-
flex-wrap: nowrap;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
padding-inline: 0 !important;
|
|
31
|
-
color: var(--fs-select-field-color);
|
|
32
|
-
cursor: var(--fs-select-field-cursor) !important;
|
|
33
|
-
|
|
34
|
-
@include web {
|
|
35
|
-
min-height: 38px !important;
|
|
36
|
-
height: 38px !important;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@include mobile {
|
|
40
|
-
min-height: 34px !important;
|
|
41
|
-
height: 34px !important;
|
|
42
|
-
}
|
|
5
|
+
&--error {
|
|
6
|
+
border-color: var(--fs-select-field-error-border-color) !important;
|
|
7
|
+
}
|
|
43
8
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
9
|
+
&:not(.v-field--error):focus-within {
|
|
10
|
+
border-color: var(--fs-select-field-active-border-color) !important;
|
|
11
|
+
}
|
|
48
12
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
13
|
+
& > .v-field__field > .v-field__input {
|
|
14
|
+
color: var(--fs-select-field-color);
|
|
15
|
+
cursor: var(--fs-select-field-cursor) !important;
|
|
16
|
+
}
|
|
52
17
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
18
|
+
& > .v-field__append-inner {
|
|
19
|
+
color: var(--fs-select-field-color);
|
|
56
20
|
}
|
|
57
21
|
}
|
|
58
22
|
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
.fs-text-area:not(.fs-text-area-auto-grow) {
|
|
2
|
-
padding: 0px !important;
|
|
3
|
-
min-width: 240px;
|
|
4
|
-
width: 100%;
|
|
5
|
-
|
|
6
2
|
& > .v-input__control > .v-field {
|
|
7
3
|
border: 1px solid var(--fs-text-area-border-color) !important;
|
|
8
|
-
border-radius: 4px !important;
|
|
9
4
|
padding: 0 !important;
|
|
10
5
|
|
|
11
6
|
&--error {
|
|
@@ -16,19 +11,14 @@
|
|
|
16
11
|
border-color: var(--fs-text-area-active-border-color) !important;
|
|
17
12
|
}
|
|
18
13
|
|
|
19
|
-
& > .v-field__outline {
|
|
20
|
-
display: none;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
14
|
& > .v-field__field > .v-field__input {
|
|
24
15
|
@extend .text-body;
|
|
25
|
-
|
|
16
|
+
|
|
26
17
|
@extend .fs-hide-y-scrollbar;
|
|
27
18
|
|
|
28
19
|
mask-image: none !important;
|
|
29
20
|
-webkit-mask-image: none !important;
|
|
30
21
|
|
|
31
|
-
padding-inline: 0 !important;
|
|
32
22
|
margin: 2px 2px 2px 0 !important;
|
|
33
23
|
cursor: var(--fs-text-area-cursor) !important;
|
|
34
24
|
min-height: var(--fs-text-area-min-height);
|
|
@@ -47,13 +37,8 @@
|
|
|
47
37
|
}
|
|
48
38
|
|
|
49
39
|
.fs-text-area-auto-grow {
|
|
50
|
-
padding: 0px !important;
|
|
51
|
-
min-width: 240px;
|
|
52
|
-
width: 100%;
|
|
53
|
-
|
|
54
40
|
& > .v-input__control > .v-field {
|
|
55
41
|
border: 1px solid var(--fs-text-area-border-color) !important;
|
|
56
|
-
border-radius: 4px !important;
|
|
57
42
|
padding: 0 !important;
|
|
58
43
|
|
|
59
44
|
&--error {
|
|
@@ -64,10 +49,6 @@
|
|
|
64
49
|
border-color: var(--fs-text-area-active-border-color) !important;
|
|
65
50
|
}
|
|
66
51
|
|
|
67
|
-
& > .v-field__outline {
|
|
68
|
-
display: none;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
52
|
& > .v-field__field > .v-field__input {
|
|
72
53
|
@extend .text-body;
|
|
73
54
|
|
|
@@ -1,50 +1,18 @@
|
|
|
1
|
-
.fs-text-field {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
width: 100%;
|
|
1
|
+
.fs-text-field > .v-input__control > .v-field {
|
|
2
|
+
border: 1px solid var(--fs-text-field-border-color) !important;
|
|
3
|
+
cursor: var(--fs-text-field-cursor) !important;
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
border:
|
|
8
|
-
|
|
9
|
-
border-radius: 4px !important;
|
|
10
|
-
padding: 0 16px !important;
|
|
11
|
-
gap: 8px;
|
|
12
|
-
|
|
13
|
-
&--error {
|
|
14
|
-
border-color: var(--fs-text-field-error-border-color) !important;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
&:not(.v-field--error):focus-within {
|
|
18
|
-
border-color: var(--fs-text-field-active-border-color) !important;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
& > .v-field__outline {
|
|
22
|
-
display: none;
|
|
23
|
-
}
|
|
5
|
+
&--error {
|
|
6
|
+
border-color: var(--fs-text-field-error-border-color) !important;
|
|
7
|
+
}
|
|
24
8
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
padding-inline: 0 !important;
|
|
30
|
-
color: var(--fs-text-field-color);
|
|
31
|
-
cursor: var(--fs-select-field-cursor) !important;
|
|
32
|
-
|
|
33
|
-
@include web {
|
|
34
|
-
min-height: 38px !important;
|
|
35
|
-
height: 38px !important;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@include mobile {
|
|
39
|
-
min-height: 34px !important;
|
|
40
|
-
height: 34px !important;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
9
|
+
&:not(.v-field--error):focus-within {
|
|
10
|
+
border-color: var(--fs-text-field-active-border-color) !important;
|
|
11
|
+
}
|
|
44
12
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
13
|
+
& > .v-field__field > .v-field__input {
|
|
14
|
+
color: var(--fs-text-field-color);
|
|
15
|
+
cursor: var(--fs-select-field-cursor) !important;
|
|
48
16
|
}
|
|
49
17
|
}
|
|
50
18
|
|
|
@@ -8,20 +8,60 @@
|
|
|
8
8
|
display: none;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
//
|
|
12
|
-
.v-input
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
// Applies to all inputs
|
|
12
|
+
.v-input {
|
|
13
|
+
padding: 0px !important;
|
|
14
|
+
min-width: 240px;
|
|
15
|
+
width: 100%;
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
17
|
+
& .v-input__prepend {
|
|
18
|
+
margin-inline-end: 8px !important;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
& .v-input__append {
|
|
22
|
+
margin-inline-start: 8px !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
& > .v-input__control > .v-field {
|
|
26
|
+
border-radius: 4px !important;
|
|
19
27
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
& > .v-field__clearable {
|
|
29
|
+
align-items: center;
|
|
30
|
+
margin-inline: 0px;
|
|
31
|
+
padding-top: 0px;
|
|
32
|
+
height: 100%;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
& > .v-field__outline {
|
|
36
|
+
display: none !important;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:not(.fs-text-area) > .v-input__control > .v-field {
|
|
41
|
+
padding: 0 16px !important;
|
|
42
|
+
gap: 8px;
|
|
43
|
+
|
|
44
|
+
& > .v-field__field > .v-field__input {
|
|
45
|
+
@extend .text-body;
|
|
46
|
+
|
|
47
|
+
padding-inline: 0px !important;
|
|
48
|
+
padding-bottom: 0px !important;
|
|
49
|
+
padding-top: 0px !important;
|
|
50
|
+
align-items: center;
|
|
51
|
+
flex-wrap: nowrap;
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
|
|
54
|
+
@include web {
|
|
55
|
+
min-height: 38px !important;
|
|
56
|
+
height: 38px !important;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@include mobile {
|
|
60
|
+
min-height: 34px !important;
|
|
61
|
+
height: 34px !important;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
25
65
|
}
|
|
26
66
|
|
|
27
67
|
|