@dative-gpi/foundation-shared-components 0.0.118 → 0.0.120
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/FSBreadcrumbs.vue +1 -1
- package/components/FSButton.vue +1 -1
- package/components/FSChip.vue +1 -1
- package/components/FSClickable.vue +2 -2
- package/components/FSClock.vue +1 -7
- package/components/FSCol.vue +1 -1
- package/components/FSDialog.vue +12 -21
- package/components/FSDialogForm.vue +141 -52
- package/components/FSDialogMultiForm.vue +39 -40
- package/components/FSDialogRemove.vue +2 -2
- package/components/FSDialogSubmit.vue +44 -39
- package/components/FSDivider.vue +1 -1
- package/components/FSSlideGroup.vue +1 -1
- package/components/FSTabs.vue +12 -12
- package/components/FSTagGroup.vue +28 -5
- package/components/FSText.vue +1 -1
- package/components/FSWrapGroup.vue +1 -1
- package/components/deviceOrganisations/FSStatusCard.vue +0 -1
- package/components/fields/FSAutocompleteField.vue +284 -106
- package/components/fields/FSDateRangeField.vue +2 -2
- package/components/fields/FSDateTimeRangeField.vue +5 -11
- package/components/fields/FSSelectField.vue +11 -3
- package/components/fields/FSTagField.vue +2 -2
- package/components/fields/FSTermField.vue +3 -1
- package/components/lists/FSDataTableUI.vue +2 -1
- package/components/tiles/FSDashboardOrganisationTileUI.vue +3 -3
- package/components/tiles/FSDashboardOrganisationTypeTileUI.vue +3 -3
- package/components/tiles/FSDashboardShallowTileUI.vue +3 -3
- package/components/tiles/FSDeviceOrganisationTileUI.vue +1 -1
- package/components/tiles/FSFolderTileUI.vue +4 -4
- package/components/tiles/FSGroupTileUI.vue +1 -1
- package/components/tiles/{FSSimpleIconTileUI.vue → FSSimpleTileUI.vue} +17 -3
- package/components/tiles/FSUserOrganisationTileUI.vue +2 -2
- package/composables/index.ts +2 -1
- package/composables/useColors.ts +31 -59
- package/composables/useTables.ts +29 -0
- package/models/tables.ts +30 -21
- package/package.json +4 -4
- package/styles/components/fs_data_table.scss +100 -94
- package/styles/components/fs_dialog.scss +12 -21
- package/styles/components/fs_dialog_menu.scss +2 -2
- package/styles/components/fs_slider.scss +9 -1
- package/styles/components/fs_tabs.scss +5 -4
- package/styles/globals/overrides.scss +2 -2
- package/styles/globals/scrollbars.scss +46 -36
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
2
|
+
<FSSimpleTileUI
|
|
3
3
|
:bottomColor="color"
|
|
4
4
|
:icon="$props.icon"
|
|
5
5
|
v-bind="$attrs"
|
|
@@ -11,7 +11,7 @@ import { computed, defineComponent, PropType } from "vue";
|
|
|
11
11
|
|
|
12
12
|
import { ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
13
13
|
|
|
14
|
-
import
|
|
14
|
+
import FSSimpleTileUI from "./FSSimpleTileUI.vue";
|
|
15
15
|
|
|
16
16
|
export default defineComponent({
|
|
17
17
|
name: "FSDashboardShallowTileUI",
|
|
@@ -28,7 +28,7 @@ export default defineComponent({
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
components: {
|
|
31
|
-
|
|
31
|
+
FSSimpleTileUI
|
|
32
32
|
},
|
|
33
33
|
setup(props){
|
|
34
34
|
const color = computed(() => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
2
|
+
<FSSimpleTileUI
|
|
3
|
+
:iconBackgroundColor="true"
|
|
3
4
|
:bottomColor="color"
|
|
4
5
|
:icon="$props.icon"
|
|
5
|
-
:iconBackgroundColor="true"
|
|
6
6
|
v-bind="$attrs"
|
|
7
7
|
/>
|
|
8
8
|
</template>
|
|
@@ -12,7 +12,7 @@ import { computed, defineComponent, PropType } from "vue";
|
|
|
12
12
|
|
|
13
13
|
import { ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
14
14
|
|
|
15
|
-
import
|
|
15
|
+
import FSSimpleTileUI from "./FSSimpleTileUI.vue";
|
|
16
16
|
|
|
17
17
|
export default defineComponent({
|
|
18
18
|
name: "FSFolderTileUI",
|
|
@@ -29,7 +29,7 @@ export default defineComponent({
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
components: {
|
|
32
|
-
|
|
32
|
+
FSSimpleTileUI
|
|
33
33
|
},
|
|
34
34
|
setup(props){
|
|
35
35
|
const color = computed(() => {
|
|
@@ -26,12 +26,19 @@
|
|
|
26
26
|
</FSText>
|
|
27
27
|
<FSText
|
|
28
28
|
font="text-overline"
|
|
29
|
-
variant="
|
|
29
|
+
variant="soft"
|
|
30
30
|
>
|
|
31
31
|
{{ $props.code }}
|
|
32
32
|
</FSText>
|
|
33
33
|
</FSCol>
|
|
34
|
+
<FSImage
|
|
35
|
+
v-if="$props.imageId"
|
|
36
|
+
:height="imageSize"
|
|
37
|
+
:width="imageSize"
|
|
38
|
+
:imageId="$props.imageId"
|
|
39
|
+
/>
|
|
34
40
|
<FSIconCard
|
|
41
|
+
v-else
|
|
35
42
|
:backgroundColor="iconBackgroundColor"
|
|
36
43
|
:icon="$props.icon"
|
|
37
44
|
:size="imageSize"
|
|
@@ -48,17 +55,19 @@ import { useBreakpoints } from "@dative-gpi/foundation-shared-components/composa
|
|
|
48
55
|
import { ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
49
56
|
|
|
50
57
|
import FSIconCard from "../FSIconCard.vue";
|
|
58
|
+
import FSImage from "../FSImage.vue";
|
|
51
59
|
import FSText from "../FSText.vue";
|
|
52
60
|
import FSTile from "./FSTile.vue";
|
|
53
61
|
import FSCol from "../FSCol.vue";
|
|
54
62
|
import FSRow from "../FSRow.vue";
|
|
55
63
|
|
|
56
64
|
export default defineComponent({
|
|
57
|
-
name: "
|
|
65
|
+
name: "FSSimpleTileUI",
|
|
58
66
|
components: {
|
|
59
67
|
FSIconCard,
|
|
60
|
-
|
|
68
|
+
FSImage,
|
|
61
69
|
FSTile,
|
|
70
|
+
FSText,
|
|
62
71
|
FSCol,
|
|
63
72
|
FSRow
|
|
64
73
|
},
|
|
@@ -93,6 +102,11 @@ export default defineComponent({
|
|
|
93
102
|
required: false,
|
|
94
103
|
default: "mdi-ab-testing"
|
|
95
104
|
},
|
|
105
|
+
imageId: {
|
|
106
|
+
type: String as PropType<string>,
|
|
107
|
+
required: false,
|
|
108
|
+
default: null
|
|
109
|
+
},
|
|
96
110
|
editable: {
|
|
97
111
|
type: Boolean,
|
|
98
112
|
required: false,
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
>
|
|
32
32
|
<FSIcon
|
|
33
33
|
v-if="roleIcon"
|
|
34
|
-
variant="
|
|
34
|
+
variant="soft"
|
|
35
35
|
:color="ColorEnum.Dark"
|
|
36
36
|
>
|
|
37
37
|
{{ roleIcon }}
|
|
38
38
|
</FSIcon>
|
|
39
39
|
<FSText
|
|
40
40
|
font="text-overline"
|
|
41
|
-
variant="
|
|
41
|
+
variant="soft"
|
|
42
42
|
>
|
|
43
43
|
{{ roleLabel }}
|
|
44
44
|
</FSText>
|
package/composables/index.ts
CHANGED
package/composables/useColors.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ColorBase, ColorEnum, ColorVariations } from "@dative-gpi/foundation-sh
|
|
|
6
6
|
|
|
7
7
|
export const useColors = () => {
|
|
8
8
|
const theme = useTheme().current.value;
|
|
9
|
-
const baseMinSaturation =
|
|
9
|
+
const baseMinSaturation = 0;
|
|
10
10
|
const baseFixedBrightness = 90;
|
|
11
11
|
|
|
12
12
|
const isGrayScale = (color: Color): boolean => {
|
|
@@ -24,7 +24,8 @@ export const useColors = () => {
|
|
|
24
24
|
|
|
25
25
|
const getLight = (base: Color): Color => {
|
|
26
26
|
if (isGrayScale(base)) {
|
|
27
|
-
return base
|
|
27
|
+
return base
|
|
28
|
+
.value(Math.max(base.value(), 95));
|
|
28
29
|
}
|
|
29
30
|
return base.saturationv(10).value(100);
|
|
30
31
|
};
|
|
@@ -33,75 +34,46 @@ export const useColors = () => {
|
|
|
33
34
|
return base.value(Math.min(base.value() + 10, 100));
|
|
34
35
|
};
|
|
35
36
|
|
|
36
|
-
const getBase = (base: Color): Color => {
|
|
37
|
-
if (isGrayScale(base)) {
|
|
38
|
-
return base.saturationv(1);
|
|
39
|
-
}
|
|
40
|
-
const saturation = base.saturationv() > baseMinSaturation ? base.saturationv() : baseMinSaturation;
|
|
41
|
-
return base.saturationv(saturation).value(baseFixedBrightness);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
37
|
const getDark = (base: Color): Color => {
|
|
45
38
|
return base.value(Math.max(base.value() - 15, 0));
|
|
46
39
|
};
|
|
47
40
|
|
|
48
|
-
const getContrast = (color: Color
|
|
49
|
-
if
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
41
|
+
const getContrast = (color: Color): Color => {
|
|
42
|
+
if(isGrayScale(color)){
|
|
43
|
+
const coeff = 4
|
|
44
|
+
return color
|
|
45
|
+
.value(color.value() < 70 ? 100 : Math.max(color.value() / coeff, 0));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if(isPastel(color)){
|
|
49
|
+
return color.darken(0.6);
|
|
56
50
|
}
|
|
57
|
-
|
|
51
|
+
|
|
52
|
+
if(color.darken(0.15).isLight()){
|
|
53
|
+
return color.darken(0.6);
|
|
54
|
+
}
|
|
55
|
+
return color.lighten(color.value() / 50);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
const getColors = (color: ColorBase): ColorVariations => {
|
|
61
59
|
const themed = (Object as any).values(ColorEnum).includes(color);
|
|
62
60
|
|
|
63
|
-
const
|
|
61
|
+
const base = themed ? new Color(theme.colors[color as ColorEnum]) : new Color(color);
|
|
64
62
|
|
|
65
|
-
const base = getBase(seed);
|
|
66
63
|
const light = getLight(base);
|
|
67
64
|
const soft = getSoft(base);
|
|
68
65
|
const dark = getDark(base);
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
switch (color) {
|
|
84
|
-
case ColorEnum.Background: return {
|
|
85
|
-
light: base.hex(),
|
|
86
|
-
lightContrast: getContrast(base, base).hex(),
|
|
87
|
-
soft: base.hex(),
|
|
88
|
-
softContrast: getContrast(base, base).hex(),
|
|
89
|
-
base: base.hex(),
|
|
90
|
-
baseContrast: getContrast(base, base).hex(),
|
|
91
|
-
dark: dark.hex(),
|
|
92
|
-
darkContrast: getContrast(dark, base).hex()
|
|
93
|
-
};
|
|
94
|
-
default: return {
|
|
95
|
-
light: light.hex(),
|
|
96
|
-
lightContrast: getContrast(light, dark).hex(),
|
|
97
|
-
soft: soft.hex(),
|
|
98
|
-
softContrast: getContrast(soft, light).hex(),
|
|
99
|
-
base: base.hex(),
|
|
100
|
-
baseContrast: getContrast(base, light).hex(),
|
|
101
|
-
dark: dark.hex(),
|
|
102
|
-
darkContrast: getContrast(dark, light).hex()
|
|
103
|
-
};
|
|
104
|
-
}
|
|
67
|
+
return {
|
|
68
|
+
light: light.hex(),
|
|
69
|
+
lightContrast: getContrast(light).hex(),
|
|
70
|
+
soft: soft.hex(),
|
|
71
|
+
softContrast: getContrast(soft).hex(),
|
|
72
|
+
base: base.hex(),
|
|
73
|
+
baseContrast: getContrast(base).hex(),
|
|
74
|
+
dark: dark.hex(),
|
|
75
|
+
darkContrast: getContrast(dark).hex()
|
|
76
|
+
};
|
|
105
77
|
};
|
|
106
78
|
|
|
107
79
|
const getGradients = (colors: ColorBase | ColorBase[], rotation: number = 90): ColorVariations => {
|
|
@@ -119,10 +91,10 @@ export const useColors = () => {
|
|
|
119
91
|
}
|
|
120
92
|
|
|
121
93
|
const getBasePaletteColors = (): string[][] => {
|
|
122
|
-
const columnCount =
|
|
94
|
+
const columnCount = 8
|
|
123
95
|
const colors: string[][] = [];
|
|
124
96
|
for (let saturation = baseMinSaturation; saturation <= 100; saturation += (100 - baseMinSaturation) / (columnCount - 1)) {
|
|
125
|
-
|
|
97
|
+
const colorsRow = [];
|
|
126
98
|
for (let hue = 0; hue < 360; hue += 15) {
|
|
127
99
|
const color = new Color({ h: hue, s: saturation, v: baseFixedBrightness });
|
|
128
100
|
colorsRow.push(color.hex());
|
|
@@ -130,7 +102,7 @@ export const useColors = () => {
|
|
|
130
102
|
colors.push(colorsRow)
|
|
131
103
|
}
|
|
132
104
|
let i = 0;
|
|
133
|
-
for (let brightness =
|
|
105
|
+
for (let brightness = 0; brightness <= 100; brightness += (100 / (columnCount - 1))) {
|
|
134
106
|
const color = new Color({ h: 0, s: 1, v: 100 - brightness });
|
|
135
107
|
colors[i].unshift(color.hex());
|
|
136
108
|
i++;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
|
|
3
|
+
import { Single } from "@dative-gpi/foundation-shared-domain/tools/single";
|
|
4
|
+
|
|
5
|
+
import { FSDataTable } from "../models";
|
|
6
|
+
|
|
7
|
+
const tables = ref<{ [key: string]: FSDataTable }>({});
|
|
8
|
+
|
|
9
|
+
const single = new Single();
|
|
10
|
+
|
|
11
|
+
export const useTables = () => {
|
|
12
|
+
return single.call(() => {
|
|
13
|
+
const getTable = (tableCode: string): FSDataTable | null => {
|
|
14
|
+
if (tables.value[tableCode] != null) {
|
|
15
|
+
return tables.value[tableCode];
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const setTable = (tableCode: string, value: FSDataTable) => {
|
|
21
|
+
tables.value[tableCode] = { ...value };
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
getTable,
|
|
26
|
+
setTable
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
};
|
package/models/tables.ts
CHANGED
|
@@ -1,33 +1,42 @@
|
|
|
1
1
|
export interface FSDataTableColumn {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
text?: string | null;
|
|
4
|
+
value?: string | null;
|
|
5
|
+
index: number;
|
|
6
|
+
hidden: boolean;
|
|
7
|
+
width?: string | number | null;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
sortable?: boolean | null;
|
|
10
|
+
sort?: ((a: any, b: any) => number) | null;
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
filterable?: boolean | null;
|
|
13
|
+
fixedFilters?: { value: any, text: string }[] | null;
|
|
14
|
+
methodFilter?: ((value: any, item: any) => boolean) | null;
|
|
15
|
+
filter?: ((value: any, search: string, item: any) => boolean) | null;
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
innerValue?: ((value: any) => any) | null;
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
// Should not be set directly !
|
|
20
|
+
slotName?: string | null;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface FSDataTableFilter {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
text: string;
|
|
25
|
+
value: string;
|
|
26
|
+
hidden: boolean;
|
|
27
|
+
filter?: ((value: any, property: any, item: any) => boolean) | null;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export interface FSDataTableOrder {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
key: string | null;
|
|
32
|
+
order: "asc" | "desc" | null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface FSDataTable {
|
|
36
|
+
headers: FSDataTableColumn[];
|
|
37
|
+
sortBy: FSDataTableOrder | null;
|
|
38
|
+
mode: "table" | "iterator";
|
|
39
|
+
rowsPerPage: -1 | 10 | 30;
|
|
40
|
+
filters: { [key: string]: FSDataTableFilter[] };
|
|
41
|
+
page: number;
|
|
33
42
|
}
|
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.120",
|
|
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.120",
|
|
14
|
+
"@dative-gpi/foundation-shared-services": "0.0.120",
|
|
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": "faba41cbb99b47b855fbce6d40925eec86611d3d"
|
|
36
36
|
}
|
|
@@ -1,128 +1,134 @@
|
|
|
1
1
|
.fs-data-table {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
border-spacing: 0 var(--fs-data-table-row-gap) !important;
|
|
5
|
-
background-color: var(--fs-data-table-background-color) !important;
|
|
6
|
-
}
|
|
2
|
+
& > .v-table__wrapper {
|
|
3
|
+
padding: 0 1px 0 0;
|
|
7
4
|
|
|
8
|
-
.fs-
|
|
9
|
-
|
|
10
|
-
border-top: var(--fs-data-table-row-border-size) solid var(--fs-data-table-row-border-color) !important;
|
|
11
|
-
background-color: var(--fs-data-table-row-background-color) !important;
|
|
12
|
-
color: var(--fs-data-table-row-color);
|
|
13
|
-
position: relative;
|
|
14
|
-
}
|
|
5
|
+
@extend .fs-hide-x-scrollbar;
|
|
6
|
+
}
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
table {
|
|
9
|
+
margin-top: calc(var(--fs-data-table-row-gap) * -1);
|
|
10
|
+
border-spacing: 0 var(--fs-data-table-row-gap) !important;
|
|
11
|
+
background-color: var(--fs-data-table-background-color) !important;
|
|
12
|
+
}
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
.fs-data-table-custom-row > td {
|
|
15
|
+
border-bottom: var(--fs-data-table-row-border-size) solid var(--fs-data-table-row-border-color) !important;
|
|
16
|
+
border-top: var(--fs-data-table-row-border-size) solid var(--fs-data-table-row-border-color) !important;
|
|
17
|
+
background-color: var(--fs-data-table-row-background-color) !important;
|
|
18
|
+
color: var(--fs-data-table-row-color);
|
|
19
|
+
position: relative;
|
|
20
|
+
}
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
td {
|
|
52
|
-
border-bottom: none !important;
|
|
22
|
+
.fs-data-table-custom-row > td:first-child{
|
|
23
|
+
border-top-left-radius: var(--fs-data-table-row-border-radius) !important;
|
|
24
|
+
border-bottom-left-radius: var(--fs-data-table-row-border-radius) !important;
|
|
25
|
+
border-left: var(--fs-data-table-row-border-size) solid var(--fs-data-table-row-border-color);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.fs-data-table-custom-row > td:last-child{
|
|
29
|
+
border-top-right-radius: var(--fs-data-table-row-border-radius) !important;
|
|
30
|
+
border-bottom-right-radius: var(--fs-data-table-row-border-radius) !important;
|
|
31
|
+
border-right: var(--fs-data-table-row-border-size) solid var(--fs-data-table-row-border-color);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
th,
|
|
35
|
+
:not(.fs-data-table-custom-row) > td {
|
|
36
|
+
background-color: var(--fs-data-table-background-color) !important;
|
|
37
|
+
position: relative;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
th {
|
|
41
|
+
box-shadow: none !important;
|
|
42
|
+
|
|
43
|
+
&:hover .fs-header-button {
|
|
44
|
+
opacity: 1;
|
|
53
45
|
}
|
|
46
|
+
}
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
48
|
+
th:after {
|
|
49
|
+
content: "";
|
|
50
|
+
position: absolute;
|
|
51
|
+
bottom: 8px;
|
|
52
|
+
right: 0;
|
|
53
|
+
height: calc(100% - 16px);
|
|
54
|
+
border-right: 1px solid var(--fs-data-table-border-color);
|
|
55
|
+
}
|
|
59
56
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
position: absolute;
|
|
64
|
-
left: 0;
|
|
65
|
-
bottom: 0;
|
|
66
|
-
width: 100%;
|
|
67
|
-
border-bottom: 1px solid var(--fs-data-table-border-color);
|
|
68
|
-
}
|
|
57
|
+
td {
|
|
58
|
+
border-bottom: none !important;
|
|
59
|
+
}
|
|
69
60
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
61
|
+
th:last-of-type:after,
|
|
62
|
+
td:last-of-type:after {
|
|
63
|
+
border-right: none;
|
|
64
|
+
}
|
|
75
65
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
66
|
+
th:before,
|
|
67
|
+
td:not(.fs-data-table-group-header):before {
|
|
68
|
+
content: "";
|
|
69
|
+
position: absolute;
|
|
70
|
+
left: 0;
|
|
71
|
+
bottom: 0;
|
|
72
|
+
width: 100%;
|
|
73
|
+
border-bottom: 1px solid var(--fs-data-table-border-color);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
th:first-of-type:before,
|
|
77
|
+
td:first-of-type:before {
|
|
78
|
+
left: 8px;
|
|
79
|
+
width: calc(100% - 8px);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
th:last-of-type:before,
|
|
83
|
+
td:last-of-type:before {
|
|
84
|
+
right: 8px;
|
|
85
|
+
width: calc(100% - 8px);
|
|
86
|
+
}
|
|
81
87
|
}
|
|
82
88
|
|
|
83
89
|
.fs-data-table-grouped {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
90
|
+
& th:first-of-type {
|
|
91
|
+
display: none;
|
|
92
|
+
}
|
|
87
93
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
& td:first-of-type {
|
|
95
|
+
display: none;
|
|
96
|
+
}
|
|
91
97
|
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
& .fs-data-table-group-header {
|
|
99
|
+
padding: 0 !important;
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
101
|
+
&:after {
|
|
102
|
+
content: none !important;
|
|
98
103
|
}
|
|
104
|
+
}
|
|
99
105
|
}
|
|
100
106
|
|
|
101
107
|
.fs-data-table-iterator {
|
|
102
|
-
|
|
108
|
+
width: 100%;
|
|
103
109
|
}
|
|
104
110
|
|
|
105
111
|
.fs-data-table-footer {
|
|
106
|
-
|
|
112
|
+
background-color: var(--fs-data-table-background-color);
|
|
107
113
|
}
|
|
108
114
|
|
|
109
115
|
.fs-data-table-rows-per-page {
|
|
110
|
-
|
|
111
|
-
|
|
116
|
+
min-width: 100px;
|
|
117
|
+
width: 100px;
|
|
112
118
|
}
|
|
113
119
|
|
|
114
120
|
.fs-data-table-pagination {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
121
|
+
@include web {
|
|
122
|
+
max-width: 280px;
|
|
123
|
+
}
|
|
118
124
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
@include mobile {
|
|
126
|
+
max-width: 274px;
|
|
127
|
+
}
|
|
122
128
|
}
|
|
123
129
|
|
|
124
130
|
.fs-data-table-intersection {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
margin-top: -8px;
|
|
132
|
+
height: 10px;
|
|
133
|
+
width: 100%;
|
|
128
134
|
}
|