@dative-gpi/foundation-shared-components 1.0.82 → 1.0.83
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/FSClickable.vue +0 -1
- package/components/FSClock.vue +12 -3
- package/components/FSLoader.vue +2 -2
- package/components/FSSlideGroup.vue +9 -7
- package/components/FSSpan.vue +4 -2
- package/components/FSTabs.vue +5 -2
- package/components/FSTag.vue +1 -1
- package/components/FSText.vue +4 -2
- package/components/fields/FSAutocompleteField.vue +18 -14
- package/components/fields/FSRichTextField.vue +25 -19
- package/components/fields/FSSelectField.vue +7 -3
- package/components/fields/FSTextArea.vue +10 -4
- package/components/fields/FSTextField.vue +8 -3
- package/components/lists/FSDataTableUI.vue +40 -12
- package/components/tiles/FSLoadTile.vue +2 -0
- package/components/tiles/FSTile.vue +4 -1
- package/components/views/desktop/FSBaseEntityDesktopView.vue +5 -3
- package/composables/useBreakpoints.ts +32 -5
- package/models/tables.ts +1 -0
- package/package.json +4 -4
- package/styles/components/fs_clickable.scss +2 -11
- package/styles/components/fs_clock.scss +0 -10
- package/styles/components/fs_data_table.scss +2 -7
- package/styles/components/fs_filter_button.scss +1 -1
- package/styles/components/fs_hidden_button.scss +2 -7
- package/styles/components/fs_meta_field.scss +3 -5
- package/styles/components/fs_radio.scss +0 -11
- package/styles/components/fs_rich_text_field.scss +1 -10
- package/styles/components/fs_span.scss +1 -1
- package/styles/components/fs_tabs.scss +9 -32
- package/styles/components/fs_tag.scss +3 -19
- package/styles/components/fs_text_area.scss +2 -21
- package/styles/components/fs_tile.scss +0 -10
- package/styles/globals/index.scss +1 -5
- package/styles/globals/overrides.scss +15 -40
- package/styles/globals/text_fonts.scss +18 -66
- package/styles/globals/breakpoints.scss +0 -20
- package/styles/globals/fixes.scss +0 -5
package/components/FSClock.vue
CHANGED
|
@@ -54,9 +54,9 @@
|
|
|
54
54
|
<script lang="ts">
|
|
55
55
|
import { computed, defineComponent, type PropType, ref, type StyleValue, watch } from "vue";
|
|
56
56
|
|
|
57
|
+
import { useBreakpoints, useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
57
58
|
import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
58
59
|
import { useDateFormat } from "@dative-gpi/foundation-shared-services/composables";
|
|
59
|
-
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
60
60
|
|
|
61
61
|
import FSSlider from "./FSSlider.vue";
|
|
62
62
|
import FSCol from "./FSCol.vue";
|
|
@@ -99,6 +99,7 @@ export default defineComponent({
|
|
|
99
99
|
emits: ["update:modelValue"],
|
|
100
100
|
setup(props, { emit }) {
|
|
101
101
|
const { epochToLongDateFormat } = useDateFormat();
|
|
102
|
+
const { isMobileSized } = useBreakpoints();
|
|
102
103
|
const { getColors } = useColors();
|
|
103
104
|
|
|
104
105
|
const colors = computed(() => getColors(props.color));
|
|
@@ -116,7 +117,11 @@ export default defineComponent({
|
|
|
116
117
|
"--fs-clock-field-background-color" : backgrounds.base,
|
|
117
118
|
"--fs-clock-field-border-color" : lights.base,
|
|
118
119
|
"--fs-clock-field-color" : lights.dark,
|
|
119
|
-
"--fs-clock-field-active-border-color": lights.base
|
|
120
|
+
"--fs-clock-field-active-border-color": lights.base,
|
|
121
|
+
"--fs-font-font-size" : isMobileSized.value ? "12px" : "14px",
|
|
122
|
+
"--fs-font-line-height" : isMobileSized.value ? "16px" : "20px",
|
|
123
|
+
"--fs-font-letter-spacing" : isMobileSized.value ? "-0.36px" : "-0.42px",
|
|
124
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px"
|
|
120
125
|
};
|
|
121
126
|
}
|
|
122
127
|
return {
|
|
@@ -124,7 +129,11 @@ export default defineComponent({
|
|
|
124
129
|
"--fs-clock-field-background-color" : colors.value.light,
|
|
125
130
|
"--fs-clock-field-border-color" : colors.value.base,
|
|
126
131
|
"--fs-clock-field-color" : darks.base,
|
|
127
|
-
"--fs-clock-field-active-border-color": colors.value.dark
|
|
132
|
+
"--fs-clock-field-active-border-color": colors.value.dark,
|
|
133
|
+
"--fs-font-font-size" : isMobileSized.value ? "12px" : "14px",
|
|
134
|
+
"--fs-font-line-height" : isMobileSized.value ? "16px" : "20px",
|
|
135
|
+
"--fs-font-letter-spacing" : isMobileSized.value ? "-0.36px" : "-0.42px",
|
|
136
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px"
|
|
128
137
|
};
|
|
129
138
|
});
|
|
130
139
|
|
package/components/FSLoader.vue
CHANGED
|
@@ -76,8 +76,8 @@ export default defineComponent({
|
|
|
76
76
|
const getWidth = computed((): string | number => {
|
|
77
77
|
switch (props.variant) {
|
|
78
78
|
case "standard": return sizeToVar(props.width);
|
|
79
|
-
case "button" : return isMobileSized ? "36px" : "40px";
|
|
80
|
-
case "input" : return isMobileSized ? "calc(50% - 124px)" : "calc(50% - 132px)";
|
|
79
|
+
case "button" : return isMobileSized.value ? "36px" : "40px";
|
|
80
|
+
case "input" : return isMobileSized.value ? "calc(50% - 124px)" : "calc(50% - 132px)";
|
|
81
81
|
case "field" : return "100%";
|
|
82
82
|
case "chip" : return "8vw";
|
|
83
83
|
case "text-h1" : return "calc(50% - 32px)";
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<script lang="ts">
|
|
43
43
|
import { computed, defineComponent, onMounted, onUnmounted, type PropType, ref, type StyleValue } from "vue";
|
|
44
44
|
|
|
45
|
-
import { useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
45
|
+
import { useBreakpoints, useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
46
46
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
47
47
|
import { sizeToVar } from "@dative-gpi/foundation-shared-components/utils";
|
|
48
48
|
import { uuidv4 } from "@dative-gpi/bones-ui/tools/uuid";
|
|
@@ -86,6 +86,7 @@ export default defineComponent({
|
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
setup(props) {
|
|
89
|
+
const { isMobileSized } = useBreakpoints();
|
|
89
90
|
const { getChildren } = useSlots();
|
|
90
91
|
const { getColors } = useColors();
|
|
91
92
|
|
|
@@ -99,12 +100,13 @@ export default defineComponent({
|
|
|
99
100
|
const elementId = `id${uuidv4()}`;
|
|
100
101
|
|
|
101
102
|
const style = computed((): StyleValue => ({
|
|
102
|
-
"--fs-group-padding"
|
|
103
|
-
"--fs-group-gap"
|
|
104
|
-
"--fs-group-color"
|
|
105
|
-
"--fs-group-hover-color"
|
|
106
|
-
"--fs-group-width"
|
|
107
|
-
"--fs-group-height"
|
|
103
|
+
"--fs-group-padding" : sizeToVar(props.padding),
|
|
104
|
+
"--fs-group-gap" : sizeToVar(props.gap),
|
|
105
|
+
"--fs-group-color" : darks.soft,
|
|
106
|
+
"--fs-group-hover-color": darks.dark,
|
|
107
|
+
"--fs-group-width" : sizeToVar(props.width),
|
|
108
|
+
"--fs-group-height" : sizeToVar(props.height),
|
|
109
|
+
"--fs-group-icon-size" : isMobileSized.value ? "20px" : "24px",
|
|
108
110
|
}));
|
|
109
111
|
|
|
110
112
|
const nextClasses = computed((): string[] => {
|
package/components/FSSpan.vue
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<script lang="ts">
|
|
14
14
|
import { computed, defineComponent, type PropType, type StyleValue } from "vue";
|
|
15
15
|
|
|
16
|
-
import { useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
16
|
+
import { useBreakpoints, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
17
17
|
|
|
18
18
|
export default defineComponent({
|
|
19
19
|
name: "FSSpan",
|
|
@@ -45,10 +45,12 @@ export default defineComponent({
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
setup(props) {
|
|
48
|
+
const { fontStyles } = useBreakpoints();
|
|
48
49
|
const { slots } = useSlots();
|
|
49
50
|
|
|
50
51
|
const style = computed((): StyleValue => ({
|
|
51
|
-
"--fs-span-line-clamp": props.lineClamp.toString()
|
|
52
|
+
"--fs-span-line-clamp": props.lineClamp.toString(),
|
|
53
|
+
...fontStyles.value
|
|
52
54
|
}));
|
|
53
55
|
|
|
54
56
|
const classes = computed((): string[] => {
|
package/components/FSTabs.vue
CHANGED
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
import { computed, defineComponent, onMounted, type PropType, type StyleValue } from "vue";
|
|
19
19
|
import { useRouter } from "vue-router";
|
|
20
20
|
|
|
21
|
+
import { useBreakpoints, useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
21
22
|
import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
22
|
-
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
23
23
|
|
|
24
24
|
export default defineComponent({
|
|
25
25
|
name: "FSTabs",
|
|
@@ -42,6 +42,7 @@ export default defineComponent({
|
|
|
42
42
|
},
|
|
43
43
|
emits: ["update:tab"],
|
|
44
44
|
setup(props, { emit }) {
|
|
45
|
+
const { isMobileSized } = useBreakpoints();
|
|
45
46
|
const { getColors } = useColors();
|
|
46
47
|
const router = useRouter();
|
|
47
48
|
|
|
@@ -56,7 +57,9 @@ export default defineComponent({
|
|
|
56
57
|
"--fs-tab-hover-border-color" : darks.dark,
|
|
57
58
|
"--fs-tab-active-background-color": colors.value.light,
|
|
58
59
|
"--fs-tab-tag-background-color" : colors.value.base,
|
|
59
|
-
"--fs-tab-tag-color" : colors.value.baseContrast
|
|
60
|
+
"--fs-tab-tag-color" : colors.value.baseContrast!,
|
|
61
|
+
"--fs-tab-height" : isMobileSized.value ? "40px" : "48px",
|
|
62
|
+
"--fs-tab-tag-size" : isMobileSized.value ? "24px" : "28px"
|
|
60
63
|
}));
|
|
61
64
|
|
|
62
65
|
const onUpdateTab = (tab: number): void => {
|
package/components/FSTag.vue
CHANGED
|
@@ -59,7 +59,7 @@ export default defineComponent({
|
|
|
59
59
|
height: {
|
|
60
60
|
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
|
61
61
|
required: false,
|
|
62
|
-
default: "
|
|
62
|
+
default: () => ["28px", "24px"]
|
|
63
63
|
},
|
|
64
64
|
width: {
|
|
65
65
|
type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>,
|
package/components/FSText.vue
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
<script lang="ts">
|
|
14
14
|
import { computed, defineComponent, type PropType, type StyleValue } from "vue";
|
|
15
15
|
|
|
16
|
+
import { useBreakpoints, useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
16
17
|
import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
17
|
-
import { useColors, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
18
18
|
|
|
19
19
|
export default defineComponent({
|
|
20
20
|
name: "FSText",
|
|
@@ -51,6 +51,7 @@ export default defineComponent({
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
setup(props) {
|
|
54
|
+
const { fontStyles } = useBreakpoints();
|
|
54
55
|
const { getColors } = useColors();
|
|
55
56
|
const { slots } = useSlots();
|
|
56
57
|
|
|
@@ -58,7 +59,8 @@ export default defineComponent({
|
|
|
58
59
|
|
|
59
60
|
const style = computed((): StyleValue => ({
|
|
60
61
|
"--fs-span-line-clamp": props.lineClamp.toString(),
|
|
61
|
-
"--fs-text-color" : colors.value[props.variant]
|
|
62
|
+
"--fs-text-color" : colors.value[props.variant]!,
|
|
63
|
+
...fontStyles.value
|
|
62
64
|
}));
|
|
63
65
|
|
|
64
66
|
const classes = computed((): string[] => {
|
|
@@ -602,7 +602,7 @@ export default defineComponent({
|
|
|
602
602
|
},
|
|
603
603
|
emits: ["update:modelValue", "update:search", "add:item"],
|
|
604
604
|
setup: (props, { emit }) => {
|
|
605
|
-
const { isExtraSmall, isMobileSized } = useBreakpoints();
|
|
605
|
+
const { fontStyles, isExtraSmall, isMobileSized } = useBreakpoints();
|
|
606
606
|
const { validateOn, getMessages } = useRules();
|
|
607
607
|
const { getColors } = useColors();
|
|
608
608
|
const { slots } = useSlots();
|
|
@@ -622,21 +622,25 @@ export default defineComponent({
|
|
|
622
622
|
const style = computed((): StyleValue => {
|
|
623
623
|
if (!props.editable) {
|
|
624
624
|
return {
|
|
625
|
-
"--fs-autocomplete-field-cursor":
|
|
626
|
-
"--fs-autocomplete-field-border-color":
|
|
627
|
-
"--fs-autocomplete-field-color":
|
|
628
|
-
"--fs-autocomplete-field-active-border-color": lights.base
|
|
625
|
+
"--fs-autocomplete-field-cursor" : "default",
|
|
626
|
+
"--fs-autocomplete-field-border-color" : lights.base,
|
|
627
|
+
"--fs-autocomplete-field-color" : lights.dark,
|
|
628
|
+
"--fs-autocomplete-field-active-border-color": lights.base,
|
|
629
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
630
|
+
...fontStyles.value
|
|
629
631
|
};
|
|
630
632
|
}
|
|
631
633
|
return {
|
|
632
|
-
"--fs-autocomplete-field-cursor":
|
|
633
|
-
"--fs-autocomplete-field-background-color":
|
|
634
|
+
"--fs-autocomplete-field-cursor" : "text",
|
|
635
|
+
"--fs-autocomplete-field-background-color" : backgrounds.base,
|
|
634
636
|
"--fs-autocomplete-field-no-data-background-color": lights.light,
|
|
635
|
-
"--fs-autocomplete-field-border-color":
|
|
636
|
-
"--fs-autocomplete-field-color":
|
|
637
|
-
"--fs-autocomplete-field-active-border-color":
|
|
638
|
-
"--fs-autocomplete-field-error-color":
|
|
639
|
-
"--fs-autocomplete-field-error-border-color":
|
|
637
|
+
"--fs-autocomplete-field-border-color" : lights.dark,
|
|
638
|
+
"--fs-autocomplete-field-color" : darks.base,
|
|
639
|
+
"--fs-autocomplete-field-active-border-color" : darks.dark,
|
|
640
|
+
"--fs-autocomplete-field-error-color" : errors.base,
|
|
641
|
+
"--fs-autocomplete-field-error-border-color" : errors.base,
|
|
642
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
643
|
+
...fontStyles.value
|
|
640
644
|
};
|
|
641
645
|
});
|
|
642
646
|
|
|
@@ -699,8 +703,8 @@ export default defineComponent({
|
|
|
699
703
|
});
|
|
700
704
|
|
|
701
705
|
const maxHeight = computed(() => {
|
|
702
|
-
const other = 8 + 8
|
|
703
|
-
+ (isMobileSized ? 36 : 40) + 8; // Header
|
|
706
|
+
const other = 8 + 8 // Paddings
|
|
707
|
+
+ (isMobileSized.value ? 36 : 40) + 8; // Header
|
|
704
708
|
return `calc(100vh - 40px - ${other}px)`;
|
|
705
709
|
});
|
|
706
710
|
|
|
@@ -316,7 +316,7 @@ export default defineComponent({
|
|
|
316
316
|
},
|
|
317
317
|
emits: ["update:modelValue"],
|
|
318
318
|
setup(props, { emit }) {
|
|
319
|
-
const { isMobileSized } = useBreakpoints();
|
|
319
|
+
const { fontStyles, isMobileSized } = useBreakpoints();
|
|
320
320
|
const { getColors } = useColors();
|
|
321
321
|
|
|
322
322
|
const linkColors = computed(() => getColors(props.linkColor));
|
|
@@ -407,35 +407,41 @@ export default defineComponent({
|
|
|
407
407
|
case "standard": {
|
|
408
408
|
if (!props.editable) {
|
|
409
409
|
return {
|
|
410
|
-
"--fs-rich-text-field-undo-cursor": "default",
|
|
411
|
-
"--fs-rich-text-field-icon-cursor": "default",
|
|
412
|
-
"--fs-rich-text-field-border-color": lights.base,
|
|
413
|
-
"--fs-rich-text-field-color": lights.dark,
|
|
410
|
+
"--fs-rich-text-field-undo-cursor" : "default",
|
|
411
|
+
"--fs-rich-text-field-icon-cursor" : "default",
|
|
412
|
+
"--fs-rich-text-field-border-color" : lights.base,
|
|
413
|
+
"--fs-rich-text-field-color" : lights.dark,
|
|
414
414
|
"--fs-rich-text-field-active-border-color": lights.base,
|
|
415
|
-
"--fs-rich-text-field-link-color": linkColors.value.light,
|
|
416
|
-
"--fs-rich-text-field-min-height": minHeight
|
|
415
|
+
"--fs-rich-text-field-link-color" : linkColors.value.light,
|
|
416
|
+
"--fs-rich-text-field-min-height" : minHeight,
|
|
417
|
+
"--fs-rich-text-field-padding" : isMobileSized.value ? "6px 16px" : "10px 12px",
|
|
418
|
+
...fontStyles.value
|
|
417
419
|
};
|
|
418
420
|
}
|
|
419
421
|
else {
|
|
420
422
|
return {
|
|
421
|
-
"--fs-rich-text-field-undo-cursor": canUndo.value ? "pointer" : "default",
|
|
422
|
-
"--fs-rich-text-field-icon-cursor": "pointer",
|
|
423
|
-
"--fs-rich-text-field-border-color": lights.dark,
|
|
424
|
-
"--fs-rich-text-field-color": darks.base,
|
|
425
|
-
"--fs-rich-text-field-active-border-color": darks.dark,
|
|
426
|
-
"--fs-rich-text-field-link-color": linkColors.value.dark,
|
|
427
|
-
"--fs-rich-text-field-min-height": minHeight,
|
|
423
|
+
"--fs-rich-text-field-undo-cursor" : canUndo.value ? "pointer" : "default",
|
|
424
|
+
"--fs-rich-text-field-icon-cursor" : "pointer",
|
|
425
|
+
"--fs-rich-text-field-border-color" : lights.dark,
|
|
426
|
+
"--fs-rich-text-field-color" : darks.base,
|
|
427
|
+
"--fs-rich-text-field-active-border-color" : darks.dark,
|
|
428
|
+
"--fs-rich-text-field-link-color" : linkColors.value.dark,
|
|
429
|
+
"--fs-rich-text-field-min-height" : minHeight,
|
|
428
430
|
"--fs-rich-text-field-variable-backgroundcolor": getColors(ColorEnum.Primary).light,
|
|
429
|
-
"--fs-rich-text-field-variable-color": getColors(ColorEnum.Primary).lightContrast
|
|
431
|
+
"--fs-rich-text-field-variable-color" : getColors(ColorEnum.Primary).lightContrast!,
|
|
432
|
+
"--fs-rich-text-field-padding" : isMobileSized.value ? "6px 16px" : "10px 12px",
|
|
433
|
+
...fontStyles.value
|
|
430
434
|
};
|
|
431
435
|
}
|
|
432
436
|
}
|
|
433
437
|
case "readonly": return {
|
|
434
|
-
"--fs-rich-text-field-border-color": "transparent",
|
|
435
|
-
"--fs-rich-text-field-color": darks.base,
|
|
438
|
+
"--fs-rich-text-field-border-color" : "transparent",
|
|
439
|
+
"--fs-rich-text-field-color" : darks.base,
|
|
436
440
|
"--fs-rich-text-field-active-border-color": "transparent",
|
|
437
|
-
"--fs-rich-text-field-link-color": linkColors.value.dark,
|
|
438
|
-
"--fs-rich-text-field-min-height": minHeight
|
|
441
|
+
"--fs-rich-text-field-link-color" : linkColors.value.dark,
|
|
442
|
+
"--fs-rich-text-field-min-height" : minHeight,
|
|
443
|
+
"--fs-rich-text-field-padding" : "0",
|
|
444
|
+
...fontStyles.value
|
|
439
445
|
}
|
|
440
446
|
}
|
|
441
447
|
});
|
|
@@ -560,8 +560,8 @@ export default defineComponent({
|
|
|
560
560
|
},
|
|
561
561
|
emits: ["update:modelValue"],
|
|
562
562
|
setup(props, { emit }) {
|
|
563
|
+
const { fontStyles, isExtraSmall, isMobileSized } = useBreakpoints();
|
|
563
564
|
const { validateOn, getMessages } = useRules();
|
|
564
|
-
const { isExtraSmall } = useBreakpoints();
|
|
565
565
|
const { getColors } = useColors();
|
|
566
566
|
const { slots } = useSlots();
|
|
567
567
|
|
|
@@ -581,7 +581,9 @@ export default defineComponent({
|
|
|
581
581
|
"--fs-select-field-cursor" : "default",
|
|
582
582
|
"--fs-select-field-border-color" : lights.base,
|
|
583
583
|
"--fs-select-field-color" : lights.dark,
|
|
584
|
-
"--fs-select-field-active-border-color": lights.base
|
|
584
|
+
"--fs-select-field-active-border-color": lights.base,
|
|
585
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
586
|
+
...fontStyles.value
|
|
585
587
|
};
|
|
586
588
|
}
|
|
587
589
|
return {
|
|
@@ -590,7 +592,9 @@ export default defineComponent({
|
|
|
590
592
|
"--fs-select-field-border-color" : lights.dark,
|
|
591
593
|
"--fs-select-field-color" : darks.base,
|
|
592
594
|
"--fs-select-field-active-border-color": darks.dark,
|
|
593
|
-
"--fs-select-field-error-border-color" : errors.base
|
|
595
|
+
"--fs-select-field-error-border-color" : errors.base,
|
|
596
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
597
|
+
...fontStyles.value
|
|
594
598
|
};
|
|
595
599
|
});
|
|
596
600
|
|
|
@@ -136,8 +136,8 @@ export default defineComponent({
|
|
|
136
136
|
},
|
|
137
137
|
emits: ["update:modelValue"],
|
|
138
138
|
setup(props) {
|
|
139
|
+
const { fontStyles, isMobileSized } = useBreakpoints();
|
|
139
140
|
const { validateOn, getMessages } = useRules();
|
|
140
|
-
const { isMobileSized } = useBreakpoints();
|
|
141
141
|
const { getColors } = useColors();
|
|
142
142
|
const { slots } = useSlots();
|
|
143
143
|
|
|
@@ -152,7 +152,7 @@ export default defineComponent({
|
|
|
152
152
|
let fieldHeight: string | undefined = undefined;
|
|
153
153
|
if (!props.autoGrow) {
|
|
154
154
|
const base = isMobileSized.value ? 34 : 38;
|
|
155
|
-
const row = isMobileSized.value ?
|
|
155
|
+
const row = isMobileSized.value ? 18 : 20;
|
|
156
156
|
if (props.rows > 1) {
|
|
157
157
|
height = `${base + (props.rows - 1) * row}px`;
|
|
158
158
|
}
|
|
@@ -168,7 +168,10 @@ export default defineComponent({
|
|
|
168
168
|
"--fs-text-area-color" : lights.dark,
|
|
169
169
|
"--fs-text-area-active-border-color": lights.base,
|
|
170
170
|
"--fs-text-area-height" : height,
|
|
171
|
-
"--fs-text-area-field-height" : fieldHeight
|
|
171
|
+
"--fs-text-area-field-height" : fieldHeight,
|
|
172
|
+
"--fs-text-area-padding" : isMobileSized.value ? "10px 16px" : "11px 16px",
|
|
173
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
174
|
+
...fontStyles.value
|
|
172
175
|
};
|
|
173
176
|
}
|
|
174
177
|
return {
|
|
@@ -178,7 +181,10 @@ export default defineComponent({
|
|
|
178
181
|
"--fs-text-area-active-border-color": darks.dark,
|
|
179
182
|
"--fs-text-area-error-border-color" : errors.base,
|
|
180
183
|
"--fs-text-area-height" : height,
|
|
181
|
-
"--fs-text-area-field-height" : fieldHeight
|
|
184
|
+
"--fs-text-area-field-height" : fieldHeight,
|
|
185
|
+
"--fs-text-area-padding" : isMobileSized.value ? "10px 16px" : "11px 16px",
|
|
186
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
187
|
+
...fontStyles.value
|
|
182
188
|
};
|
|
183
189
|
});
|
|
184
190
|
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<script lang="ts">
|
|
72
72
|
import { computed, defineComponent, type PropType, type StyleValue } from "vue";
|
|
73
73
|
|
|
74
|
-
import { useColors, useRules, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
74
|
+
import { useBreakpoints, useColors, useRules, useSlots } from "@dative-gpi/foundation-shared-components/composables";
|
|
75
75
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
76
76
|
|
|
77
77
|
import FSBaseField from "./FSBaseField.vue";
|
|
@@ -137,6 +137,7 @@ export default defineComponent({
|
|
|
137
137
|
},
|
|
138
138
|
emits: ["update:modelValue"],
|
|
139
139
|
setup(props) {
|
|
140
|
+
const { fontStyles, isMobileSized } = useBreakpoints();
|
|
140
141
|
const { validateOn, getMessages } = useRules();
|
|
141
142
|
const { getColors } = useColors();
|
|
142
143
|
const { slots } = useSlots();
|
|
@@ -154,7 +155,9 @@ export default defineComponent({
|
|
|
154
155
|
"--fs-text-field-cursor" : "default",
|
|
155
156
|
"--fs-text-field-border-color" : lights.base,
|
|
156
157
|
"--fs-text-field-color" : lights.dark,
|
|
157
|
-
"--fs-text-field-active-border-color": lights.base
|
|
158
|
+
"--fs-text-field-active-border-color": lights.base,
|
|
159
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
160
|
+
...fontStyles.value
|
|
158
161
|
};
|
|
159
162
|
}
|
|
160
163
|
return {
|
|
@@ -162,7 +165,9 @@ export default defineComponent({
|
|
|
162
165
|
"--fs-text-field-border-color" : lights.dark,
|
|
163
166
|
"--fs-text-field-color" : darks.base,
|
|
164
167
|
"--fs-text-field-active-border-color": darks.dark,
|
|
165
|
-
"--fs-text-field-error-border-color" : errors.base
|
|
168
|
+
"--fs-text-field-error-border-color" : errors.base,
|
|
169
|
+
"--fs-base-field-input-height" : isMobileSized.value ? "34px" : "38px",
|
|
170
|
+
...fontStyles.value
|
|
166
171
|
};
|
|
167
172
|
});
|
|
168
173
|
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
<FSButton
|
|
23
23
|
v-if="filterableHeaders.length > 0"
|
|
24
24
|
prependIcon="mdi-filter-variant"
|
|
25
|
-
:variant="
|
|
26
|
-
@click="
|
|
25
|
+
:variant="innerShowFilters ? 'full' : 'standard'"
|
|
26
|
+
@click="innerShowFilters = !innerShowFilters"
|
|
27
27
|
/>
|
|
28
28
|
</template>
|
|
29
29
|
<slot
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
gap="16px"
|
|
61
61
|
>
|
|
62
62
|
<FSCol
|
|
63
|
-
v-if="
|
|
63
|
+
v-if="innerShowFilters && hasVisibleFilters"
|
|
64
64
|
width="hug"
|
|
65
65
|
>
|
|
66
66
|
<FSRow
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
gap="8px"
|
|
95
95
|
>
|
|
96
96
|
<FSChip
|
|
97
|
-
v-if="
|
|
97
|
+
v-if="innerShowFilters && resetable"
|
|
98
98
|
variant="standard"
|
|
99
99
|
:label="$tr('ui.data-table.reset-filters', 'Reset')"
|
|
100
100
|
:height="['30px', '24px']"
|
|
@@ -745,6 +745,11 @@ export default defineComponent({
|
|
|
745
745
|
type: Array as PropType<FSDataTableColumn[]>,
|
|
746
746
|
required: true
|
|
747
747
|
},
|
|
748
|
+
showFilters: {
|
|
749
|
+
type: Boolean,
|
|
750
|
+
required: false,
|
|
751
|
+
default: false
|
|
752
|
+
},
|
|
748
753
|
filters: {
|
|
749
754
|
type: Object as PropType<{ [key: string]: FSDataTableFilter[] }>,
|
|
750
755
|
required: false,
|
|
@@ -880,7 +885,7 @@ export default defineComponent({
|
|
|
880
885
|
default: "12px"
|
|
881
886
|
},
|
|
882
887
|
},
|
|
883
|
-
emits: ["update:modelValue", "update:headers", "update:filters", "update:mode", "update:sortBy", "update:rowsPerPage", "update:page", "update:include", "update:items", "click:row"],
|
|
888
|
+
emits: ["update:modelValue", "update:headers", "update:showFilters", "update:filters", "update:mode", "update:sortBy", "update:rowsPerPage", "update:page", "update:include", "update:items", "click:row"],
|
|
884
889
|
setup(props, { emit }) {
|
|
885
890
|
const { isExtraSmall } = useBreakpoints();
|
|
886
891
|
const { $tr } = useTranslationsProvider();
|
|
@@ -896,7 +901,7 @@ export default defineComponent({
|
|
|
896
901
|
const innerSortBy = ref(props.sortBy);
|
|
897
902
|
const innerMode = ref(props.disableTable ? "iterator" : props.disableIterator ? "table" : props.mode);
|
|
898
903
|
const innerPage = ref(props.page);
|
|
899
|
-
const
|
|
904
|
+
const innerShowFilters = ref(props.showFilters);
|
|
900
905
|
const resetable = ref(false);
|
|
901
906
|
|
|
902
907
|
const intersectionObserver = ref<IntersectionObserver | null>(null);
|
|
@@ -917,7 +922,14 @@ export default defineComponent({
|
|
|
917
922
|
];
|
|
918
923
|
|
|
919
924
|
const showFiltersRow = computed((): boolean => {
|
|
920
|
-
|
|
925
|
+
switch (innerMode.value) {
|
|
926
|
+
case "iterator": {
|
|
927
|
+
return (props.showSearch && innerShowFilters.value && filterableHeaders.value.length > 0);
|
|
928
|
+
}
|
|
929
|
+
case "table": {
|
|
930
|
+
return (props.showSearch && innerShowFilters.value && filterableHeaders.value.length > 0) || hiddenHeaders.value.length > 0;
|
|
931
|
+
}
|
|
932
|
+
}
|
|
921
933
|
});
|
|
922
934
|
|
|
923
935
|
const hasVisibleFilters = computed((): boolean => {
|
|
@@ -925,7 +937,15 @@ export default defineComponent({
|
|
|
925
937
|
});
|
|
926
938
|
|
|
927
939
|
const showFiltersDivider = computed((): boolean => {
|
|
928
|
-
|
|
940
|
+
switch (innerMode.value) {
|
|
941
|
+
case "iterator": {
|
|
942
|
+
return resetable.value;
|
|
943
|
+
}
|
|
944
|
+
case "table": {
|
|
945
|
+
return resetable.value || (hiddenHeaders.value.length > 0 && hasVisibleFilters.value);
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
|
|
929
949
|
});
|
|
930
950
|
|
|
931
951
|
const hasToolbar = computed((): boolean => {
|
|
@@ -1029,12 +1049,12 @@ export default defineComponent({
|
|
|
1029
1049
|
if (props.selectedOnly && !props.modelValue.includes(item[props.itemValue])) {
|
|
1030
1050
|
return false;
|
|
1031
1051
|
}
|
|
1032
|
-
if (innerSearchFormatted) {
|
|
1033
|
-
return containsSearchTerm(item, innerSearchFormatted);
|
|
1034
|
-
}
|
|
1035
1052
|
if (activeFilters.some(af => af.filter.filter && af.filter.filter(af.filter.value, item[af.key], item))) {
|
|
1036
1053
|
return false;
|
|
1037
1054
|
}
|
|
1055
|
+
if (innerSearchFormatted) {
|
|
1056
|
+
return containsSearchTerm(item, innerSearchFormatted);
|
|
1057
|
+
}
|
|
1038
1058
|
return true;
|
|
1039
1059
|
});
|
|
1040
1060
|
}
|
|
@@ -1479,10 +1499,18 @@ export default defineComponent({
|
|
|
1479
1499
|
}
|
|
1480
1500
|
});
|
|
1481
1501
|
|
|
1502
|
+
watch(() => props.showFilters, () => {
|
|
1503
|
+
innerShowFilters.value = props.showFilters;
|
|
1504
|
+
});
|
|
1505
|
+
|
|
1482
1506
|
watch(innerSearch, () => {
|
|
1483
1507
|
innerPage.value = 1;
|
|
1484
1508
|
});
|
|
1485
1509
|
|
|
1510
|
+
watch(innerShowFilters, () => {
|
|
1511
|
+
emit("update:showFilters", innerShowFilters.value);
|
|
1512
|
+
});
|
|
1513
|
+
|
|
1486
1514
|
watch(filters, () => {
|
|
1487
1515
|
resetable.value = Object.keys(filters.value)
|
|
1488
1516
|
.some((key) => filters.value[key].some((filter) => filter.hidden));
|
|
@@ -1531,7 +1559,7 @@ export default defineComponent({
|
|
|
1531
1559
|
innerPage,
|
|
1532
1560
|
hasToolbar,
|
|
1533
1561
|
pageOptions,
|
|
1534
|
-
|
|
1562
|
+
innerShowFilters,
|
|
1535
1563
|
showFiltersRow,
|
|
1536
1564
|
showFiltersDivider,
|
|
1537
1565
|
hasVisibleFilters,
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
v-if="$props.editable"
|
|
36
36
|
class="fs-tile-checkbox"
|
|
37
37
|
variant="background"
|
|
38
|
-
:
|
|
38
|
+
:height="['40px', '32px']"
|
|
39
|
+
:width="['40px', '32px']"
|
|
39
40
|
:border="false"
|
|
40
41
|
v-bind="$attrs"
|
|
41
42
|
>
|
|
@@ -61,6 +62,8 @@
|
|
|
61
62
|
v-if="$props.editable"
|
|
62
63
|
class="fs-tile-checkbox"
|
|
63
64
|
variant="background"
|
|
65
|
+
:height="['40px', '32px']"
|
|
66
|
+
:width="['40px', '32px']"
|
|
64
67
|
:border="false"
|
|
65
68
|
v-bind="$attrs"
|
|
66
69
|
>
|
|
@@ -53,9 +53,10 @@
|
|
|
53
53
|
>
|
|
54
54
|
<slot
|
|
55
55
|
name="subtitle"
|
|
56
|
+
v-if="topOffset < 60"
|
|
56
57
|
>
|
|
57
58
|
<FSText
|
|
58
|
-
v-if="$props.subtitle
|
|
59
|
+
v-if="$props.subtitle"
|
|
59
60
|
font="text-button"
|
|
60
61
|
>
|
|
61
62
|
{{ $props.subtitle }}
|
|
@@ -63,9 +64,10 @@
|
|
|
63
64
|
</slot>
|
|
64
65
|
<slot
|
|
65
66
|
name="description"
|
|
67
|
+
v-if="topOffset < 20"
|
|
66
68
|
>
|
|
67
69
|
<FSText
|
|
68
|
-
v-if="$props.description
|
|
70
|
+
v-if="$props.description"
|
|
69
71
|
font="text-body"
|
|
70
72
|
>
|
|
71
73
|
{{ $props.description }}
|
|
@@ -204,4 +206,4 @@ export default defineComponent({
|
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
208
|
});
|
|
207
|
-
</script>
|
|
209
|
+
</script>
|