@dative-gpi/foundation-shared-components 0.0.87 → 0.0.89
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/FSButton.vue +23 -7
- package/components/FSCalendar.vue +3 -1
- package/components/FSCalendarTwin.vue +16 -6
- package/components/FSCard.vue +9 -3
- package/components/FSCheckbox.vue +6 -2
- package/components/FSClickable.vue +33 -9
- package/components/FSDialog.vue +9 -5
- package/components/FSDialogMenu.vue +80 -0
- package/components/FSDialogSubmit.vue +0 -1
- package/components/FSEditImage.vue +196 -34
- package/components/FSImage.vue +21 -7
- package/components/FSLink.vue +4 -2
- package/components/FSOptionGroup.vue +61 -72
- package/components/FSOptionItem.vue +22 -7
- package/components/FSRadioGroup.vue +11 -3
- package/components/FSToggleSet.vue +22 -60
- package/components/FSWindow.vue +2 -0
- package/components/autocompletes/FSAutocompleteLanguage.vue +28 -22
- package/components/autocompletes/FSAutocompleteTimeZone.vue +117 -17
- package/components/buttons/FSButtonFileMini.vue +6 -1
- package/components/fields/FSAutocompleteField.vue +139 -72
- package/components/fields/FSBaseField.vue +134 -0
- package/components/fields/FSColorField.vue +1 -1
- package/components/fields/FSDateField.vue +124 -35
- package/components/fields/FSDateTimeField.vue +171 -63
- package/components/fields/FSIconField.vue +4 -2
- package/components/fields/FSNumberField.vue +9 -3
- package/components/fields/FSPasswordField.vue +15 -5
- package/components/fields/FSRichTextField.vue +34 -18
- package/components/fields/FSSearchField.vue +24 -8
- package/components/fields/FSSelectField.vue +254 -93
- package/components/fields/FSTagField.vue +15 -9
- package/components/fields/FSTextArea.vue +31 -59
- package/components/fields/FSTextField.vue +22 -70
- package/components/fields/FSTimeField.vue +20 -55
- package/components/fields/FSTimeSlotField.vue +13 -59
- package/components/lists/FSDataIteratorItem.vue +16 -4
- package/components/lists/FSDataTableUI.vue +433 -181
- package/components/lists/FSDraggable.vue +26 -13
- package/components/lists/FSFilterButton.vue +10 -4
- package/components/lists/FSHeaderButton.vue +3 -1
- package/components/lists/FSHiddenButton.vue +3 -1
- package/composables/useAutocomplete.ts +6 -7
- package/composables/useSlots.ts +6 -18
- package/package.json +4 -4
- package/styles/components/fs_base_field.scss +12 -0
- package/styles/components/fs_dialog.scss +10 -2
- package/styles/components/fs_dialog_menu.scss +11 -0
- package/styles/components/fs_draggable.scss +12 -0
- package/styles/components/fs_edit_image.scss +29 -2
- package/styles/components/fs_text_area.scss +0 -13
- package/styles/components/fs_text_field.scss +1 -14
- package/styles/components/index.scss +2 -0
- package/styles/globals/overrides.scss +4 -0
- package/components/autocompletes/FSAutocompleteOrganisation.vue +0 -77
|
@@ -1,43 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<FSSpan
|
|
11
|
-
v-if="$props.label"
|
|
12
|
-
class="fs-text-field-label"
|
|
13
|
-
font="text-overline"
|
|
14
|
-
:style="style"
|
|
15
|
-
>
|
|
16
|
-
{{ $props.label }}
|
|
17
|
-
</FSSpan>
|
|
18
|
-
<FSSpan
|
|
19
|
-
v-if="$props.label && $props.required"
|
|
20
|
-
class="fs-text-field-label"
|
|
21
|
-
style="margin-left: -8px;"
|
|
22
|
-
font="text-overline"
|
|
23
|
-
:ellipsis="false"
|
|
24
|
-
:style="style"
|
|
25
|
-
>
|
|
26
|
-
*
|
|
27
|
-
</FSSpan>
|
|
28
|
-
<v-spacer
|
|
29
|
-
style="min-width: 40px;"
|
|
30
|
-
/>
|
|
31
|
-
<FSSpan
|
|
32
|
-
v-if="messages.length > 0"
|
|
33
|
-
class="fs-text-field-messages"
|
|
34
|
-
font="text-overline"
|
|
35
|
-
:style="style"
|
|
36
|
-
>
|
|
37
|
-
{{ messages.join(", ") }}
|
|
38
|
-
</FSSpan>
|
|
39
|
-
</FSRow>
|
|
40
|
-
</slot>
|
|
2
|
+
<FSBaseField
|
|
3
|
+
:label="$props.label"
|
|
4
|
+
:description="$props.description"
|
|
5
|
+
:hideHeader="$props.hideHeader"
|
|
6
|
+
:required="$props.required"
|
|
7
|
+
:editable="$props.editable"
|
|
8
|
+
:messages="messages"
|
|
9
|
+
>
|
|
41
10
|
<v-text-field
|
|
42
11
|
class="fs-text-field"
|
|
43
12
|
variant="outlined"
|
|
@@ -45,16 +14,16 @@
|
|
|
45
14
|
:type="$props.type"
|
|
46
15
|
:hideDetails="true"
|
|
47
16
|
:readonly="!$props.editable"
|
|
48
|
-
:clearable="$props.editable && !!$props.modelValue"
|
|
17
|
+
:clearable="$props.clearable && $props.editable && !!$props.modelValue"
|
|
49
18
|
:rules="$props.rules"
|
|
50
19
|
:validateOn="validateOn"
|
|
51
20
|
:modelValue="$props.modelValue"
|
|
52
|
-
@update:modelValue="
|
|
21
|
+
@update:modelValue="$emit('update:modelValue', $event)"
|
|
53
22
|
@blur="blurred = true"
|
|
54
23
|
v-bind="$attrs"
|
|
55
24
|
>
|
|
56
25
|
<template
|
|
57
|
-
v-for="(_, name) in slots"
|
|
26
|
+
v-for="(_, name) in $slots"
|
|
58
27
|
v-slot:[name]="slotData"
|
|
59
28
|
>
|
|
60
29
|
<slot
|
|
@@ -66,7 +35,7 @@
|
|
|
66
35
|
#clear
|
|
67
36
|
>
|
|
68
37
|
<FSButton
|
|
69
|
-
v-if="$props.
|
|
38
|
+
v-if="$props.clearable && $props.editable && !!$props.modelValue"
|
|
70
39
|
icon="mdi-close"
|
|
71
40
|
variant="icon"
|
|
72
41
|
:color="ColorEnum.Dark"
|
|
@@ -74,39 +43,23 @@
|
|
|
74
43
|
/>
|
|
75
44
|
</template>
|
|
76
45
|
</v-text-field>
|
|
77
|
-
|
|
78
|
-
name="description"
|
|
79
|
-
>
|
|
80
|
-
<FSSpan
|
|
81
|
-
v-if="$props.description"
|
|
82
|
-
class="fs-text-field-description"
|
|
83
|
-
font="text-underline"
|
|
84
|
-
:style="style"
|
|
85
|
-
>
|
|
86
|
-
{{ $props.description }}
|
|
87
|
-
</FSSpan>
|
|
88
|
-
</slot>
|
|
89
|
-
</FSCol>
|
|
46
|
+
</FSBaseField>
|
|
90
47
|
</template>
|
|
91
48
|
|
|
92
49
|
<script lang="ts">
|
|
93
50
|
import { computed, defineComponent, PropType } from "vue";
|
|
94
51
|
|
|
95
|
-
import { useColors, useRules
|
|
52
|
+
import { useColors, useRules } from "@dative-gpi/foundation-shared-components/composables";
|
|
96
53
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
97
54
|
|
|
55
|
+
import FSBaseField from "./FSBaseField.vue";
|
|
98
56
|
import FSButton from "../FSButton.vue";
|
|
99
|
-
import FSSpan from "../FSSpan.vue";
|
|
100
|
-
import FSCol from "../FSCol.vue";
|
|
101
|
-
import FSRow from "../FSRow.vue";
|
|
102
57
|
|
|
103
58
|
export default defineComponent({
|
|
104
59
|
name: "FSTextField",
|
|
105
60
|
components: {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
FSCol,
|
|
109
|
-
FSRow
|
|
61
|
+
FSBaseField,
|
|
62
|
+
FSButton
|
|
110
63
|
},
|
|
111
64
|
props: {
|
|
112
65
|
label: {
|
|
@@ -149,6 +102,11 @@ export default defineComponent({
|
|
|
149
102
|
required: false,
|
|
150
103
|
default: null
|
|
151
104
|
},
|
|
105
|
+
clearable: {
|
|
106
|
+
type: Boolean,
|
|
107
|
+
required: false,
|
|
108
|
+
default: true
|
|
109
|
+
},
|
|
152
110
|
editable: {
|
|
153
111
|
type: Boolean,
|
|
154
112
|
required: false,
|
|
@@ -159,10 +117,6 @@ export default defineComponent({
|
|
|
159
117
|
setup(props) {
|
|
160
118
|
const { validateOn, blurred, getMessages } = useRules();
|
|
161
119
|
const { getColors } = useColors();
|
|
162
|
-
const { slots } = useSlots();
|
|
163
|
-
|
|
164
|
-
delete slots.label;
|
|
165
|
-
delete slots.description;
|
|
166
120
|
|
|
167
121
|
const errors = getColors(ColorEnum.Error);
|
|
168
122
|
const lights = getColors(ColorEnum.Light);
|
|
@@ -182,7 +136,6 @@ export default defineComponent({
|
|
|
182
136
|
"--fs-text-field-border-color" : lights.dark,
|
|
183
137
|
"--fs-text-field-color" : darks.base,
|
|
184
138
|
"--fs-text-field-active-border-color": darks.dark,
|
|
185
|
-
"--fs-text-field-error-color" : errors.base,
|
|
186
139
|
"--fs-text-field-error-border-color" : errors.base
|
|
187
140
|
};
|
|
188
141
|
});
|
|
@@ -194,7 +147,6 @@ export default defineComponent({
|
|
|
194
147
|
ColorEnum,
|
|
195
148
|
messages,
|
|
196
149
|
blurred,
|
|
197
|
-
slots,
|
|
198
150
|
style
|
|
199
151
|
};
|
|
200
152
|
}
|
|
@@ -1,36 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
>
|
|
11
|
-
{{ $props.label }}
|
|
12
|
-
</FSSpan>
|
|
13
|
-
<FSSpan
|
|
14
|
-
v-if="$props.label && $props.required"
|
|
15
|
-
class="fs-time-field-label"
|
|
16
|
-
style="margin-left: -8px;"
|
|
17
|
-
font="text-overline"
|
|
18
|
-
:ellipsis="false"
|
|
19
|
-
:style="style"
|
|
20
|
-
>
|
|
21
|
-
*
|
|
22
|
-
</FSSpan>
|
|
23
|
-
<v-spacer style="min-width: 40px;" />
|
|
24
|
-
<FSSpan
|
|
25
|
-
v-if="messages.length > 0"
|
|
26
|
-
class="fs-time-field-messages"
|
|
27
|
-
font="text-overline"
|
|
28
|
-
:style="style"
|
|
29
|
-
>
|
|
30
|
-
{{ messages.join(", ") }}
|
|
31
|
-
</FSSpan>
|
|
32
|
-
</FSRow>
|
|
33
|
-
</slot>
|
|
2
|
+
<FSBaseField
|
|
3
|
+
:label="$props.label"
|
|
4
|
+
:description="$props.description"
|
|
5
|
+
:hideHeader="$props.hideHeader"
|
|
6
|
+
:required="$props.required"
|
|
7
|
+
:editable="$props.editable"
|
|
8
|
+
:messages="messages"
|
|
9
|
+
>
|
|
34
10
|
<FSRow>
|
|
35
11
|
<FSNumberField
|
|
36
12
|
:editable="$props.editable"
|
|
@@ -42,9 +18,15 @@
|
|
|
42
18
|
:modelValue="innerTime"
|
|
43
19
|
@update:modelValue="onSubmitValue"
|
|
44
20
|
v-bind="$attrs"
|
|
21
|
+
>
|
|
22
|
+
<template
|
|
23
|
+
v-for="(_, name) in $slots"
|
|
24
|
+
v-slot:[name]="slotData"
|
|
45
25
|
>
|
|
46
|
-
|
|
47
|
-
|
|
26
|
+
<slot
|
|
27
|
+
:name="name"
|
|
28
|
+
v-bind="slotData"
|
|
29
|
+
/>
|
|
48
30
|
</template>
|
|
49
31
|
</FSNumberField>
|
|
50
32
|
<FSSelectField
|
|
@@ -57,30 +39,19 @@
|
|
|
57
39
|
@update:modelValue="onSubmitTimeScale"
|
|
58
40
|
/>
|
|
59
41
|
</FSRow>
|
|
60
|
-
|
|
61
|
-
<FSSpan
|
|
62
|
-
v-if="$props.description"
|
|
63
|
-
class="fs-time-field-description"
|
|
64
|
-
font="text-underline"
|
|
65
|
-
:style="style"
|
|
66
|
-
>
|
|
67
|
-
{{ $props.description }}
|
|
68
|
-
</FSSpan>
|
|
69
|
-
</slot>
|
|
70
|
-
</FSCol>
|
|
42
|
+
</FSBaseField>
|
|
71
43
|
</template>
|
|
72
44
|
|
|
73
45
|
<script lang="ts">
|
|
74
46
|
import { computed, defineComponent, PropType, ref } from "vue";
|
|
75
47
|
|
|
76
48
|
import { getTimeScaleIndex, timeScale } from "@dative-gpi/foundation-shared-components/utils";
|
|
77
|
-
import { useColors, useRules
|
|
49
|
+
import { useColors, useRules } from "@dative-gpi/foundation-shared-components/composables";
|
|
78
50
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
79
51
|
|
|
80
52
|
import FSNumberField from "./FSNumberField.vue";
|
|
81
53
|
import FSSelectField from "./FSSelectField.vue";
|
|
82
|
-
import
|
|
83
|
-
import FSCol from "../FSCol.vue";
|
|
54
|
+
import FSBaseField from "./FSBaseField.vue";
|
|
84
55
|
import FSRow from "../FSRow.vue";
|
|
85
56
|
|
|
86
57
|
export default defineComponent({
|
|
@@ -88,8 +59,7 @@ export default defineComponent({
|
|
|
88
59
|
components: {
|
|
89
60
|
FSNumberField,
|
|
90
61
|
FSSelectField,
|
|
91
|
-
|
|
92
|
-
FSCol,
|
|
62
|
+
FSBaseField,
|
|
93
63
|
FSRow
|
|
94
64
|
},
|
|
95
65
|
props: {
|
|
@@ -138,10 +108,6 @@ export default defineComponent({
|
|
|
138
108
|
setup(props, { emit }) {
|
|
139
109
|
const { validateOn, blurred, getMessages } = useRules();
|
|
140
110
|
const { getColors } = useColors();
|
|
141
|
-
const { slots } = useSlots();
|
|
142
|
-
|
|
143
|
-
delete slots.label;
|
|
144
|
-
delete slots.description;
|
|
145
111
|
|
|
146
112
|
const errors = getColors(ColorEnum.Error);
|
|
147
113
|
const lights = getColors(ColorEnum.Light);
|
|
@@ -198,7 +164,6 @@ export default defineComponent({
|
|
|
198
164
|
timeScale,
|
|
199
165
|
messages,
|
|
200
166
|
blurred,
|
|
201
|
-
slots,
|
|
202
167
|
style,
|
|
203
168
|
onSubmitTimeScale,
|
|
204
169
|
onSubmitValue
|
|
@@ -1,36 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
>
|
|
11
|
-
{{ $props.label }}
|
|
12
|
-
</FSSpan>
|
|
13
|
-
<FSSpan
|
|
14
|
-
v-if="$props.label && $props.required"
|
|
15
|
-
class="fs-time-slot-field-label"
|
|
16
|
-
style="margin-left: -8px;"
|
|
17
|
-
font="text-overline"
|
|
18
|
-
:ellipsis="false"
|
|
19
|
-
:style="style"
|
|
20
|
-
>
|
|
21
|
-
*
|
|
22
|
-
</FSSpan>
|
|
23
|
-
<v-spacer style="min-width: 40px;" />
|
|
24
|
-
<FSSpan
|
|
25
|
-
v-if="messages.length > 0"
|
|
26
|
-
class="fs-time-slot-field-messages"
|
|
27
|
-
font="text-overline"
|
|
28
|
-
:style="style"
|
|
29
|
-
>
|
|
30
|
-
{{ messages.join(", ") }}
|
|
31
|
-
</FSSpan>
|
|
32
|
-
</FSRow>
|
|
33
|
-
</slot>
|
|
2
|
+
<FSBaseField
|
|
3
|
+
:label="$props.label"
|
|
4
|
+
:description="$props.description"
|
|
5
|
+
:hideHeader="$props.hideHeader"
|
|
6
|
+
:required="$props.required"
|
|
7
|
+
:editable="$props.editable"
|
|
8
|
+
:messages="messages"
|
|
9
|
+
>
|
|
34
10
|
<FSRow>
|
|
35
11
|
<FSRow
|
|
36
12
|
:wrap="false"
|
|
@@ -42,16 +18,11 @@
|
|
|
42
18
|
:clearable="false"
|
|
43
19
|
:style="style"
|
|
44
20
|
:rules="$props.rules"
|
|
45
|
-
:messages="messages"
|
|
46
21
|
:validateOn="validateOn"
|
|
47
22
|
:validationValue="$props.modelValue"
|
|
48
23
|
:modelValue="dayStart"
|
|
49
24
|
@update:modelValue="onChangeDayStart"
|
|
50
|
-
|
|
51
|
-
<template v-for="(_, name) in slots" v-slot:[name]="slotData">
|
|
52
|
-
<slot :name="name" v-bind="slotData" />
|
|
53
|
-
</template>
|
|
54
|
-
</FSSelectField>
|
|
25
|
+
/>
|
|
55
26
|
<FSClock
|
|
56
27
|
class="fs-time-slot-field-number"
|
|
57
28
|
:editable="$props.editable"
|
|
@@ -86,39 +57,27 @@
|
|
|
86
57
|
/>
|
|
87
58
|
</FSRow>
|
|
88
59
|
</FSRow>
|
|
89
|
-
|
|
90
|
-
<FSSpan
|
|
91
|
-
v-if="$props.description"
|
|
92
|
-
class="fs-time-slot-field-description"
|
|
93
|
-
font="text-underline"
|
|
94
|
-
:style="style"
|
|
95
|
-
>
|
|
96
|
-
{{ $props.description }}
|
|
97
|
-
</FSSpan>
|
|
98
|
-
</slot>
|
|
99
|
-
</FSCol>
|
|
60
|
+
</FSBaseField>
|
|
100
61
|
</template>
|
|
101
62
|
|
|
102
63
|
<script lang="ts">
|
|
103
64
|
import { computed, defineComponent, PropType } from "vue";
|
|
104
65
|
|
|
105
|
-
import { useColors, useRules
|
|
66
|
+
import { useColors, useRules } from "@dative-gpi/foundation-shared-components/composables";
|
|
106
67
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
107
68
|
import { Days } from "@dative-gpi/foundation-shared-domain/models";
|
|
108
69
|
|
|
109
70
|
import FSSelectField from "./FSSelectField.vue";
|
|
71
|
+
import FSBaseField from "./FSBaseField.vue";
|
|
110
72
|
import FSClock from "../FSClock.vue";
|
|
111
|
-
import FSSpan from "../FSSpan.vue";
|
|
112
|
-
import FSCol from "../FSCol.vue";
|
|
113
73
|
import FSRow from "../FSRow.vue";
|
|
114
74
|
|
|
115
75
|
export default defineComponent({
|
|
116
76
|
name: "FSTimeSlotField",
|
|
117
77
|
components: {
|
|
118
78
|
FSSelectField,
|
|
79
|
+
FSBaseField,
|
|
119
80
|
FSClock,
|
|
120
|
-
FSSpan,
|
|
121
|
-
FSCol,
|
|
122
81
|
FSRow
|
|
123
82
|
},
|
|
124
83
|
props: {
|
|
@@ -167,10 +126,6 @@ export default defineComponent({
|
|
|
167
126
|
setup(props, { emit }) {
|
|
168
127
|
const { validateOn, blurred, getMessages } = useRules();
|
|
169
128
|
const { getColors } = useColors();
|
|
170
|
-
const { slots } = useSlots();
|
|
171
|
-
|
|
172
|
-
delete slots.label;
|
|
173
|
-
delete slots.description;
|
|
174
129
|
|
|
175
130
|
const errors = getColors(ColorEnum.Error);
|
|
176
131
|
const lights = getColors(ColorEnum.Light);
|
|
@@ -285,7 +240,6 @@ export default defineComponent({
|
|
|
285
240
|
messages,
|
|
286
241
|
blurred,
|
|
287
242
|
dayEnd,
|
|
288
|
-
slots,
|
|
289
243
|
style,
|
|
290
244
|
onChangeHourStart,
|
|
291
245
|
onChangeDayStart,
|
|
@@ -7,14 +7,20 @@
|
|
|
7
7
|
:variant="variant"
|
|
8
8
|
>
|
|
9
9
|
<FSCol>
|
|
10
|
-
<slot
|
|
10
|
+
<slot
|
|
11
|
+
name="item.top"
|
|
12
|
+
v-bind="{ item: $props.item }"
|
|
13
|
+
/>
|
|
11
14
|
<FSRow
|
|
12
15
|
v-for="(header, index) in $props.headers"
|
|
13
16
|
align="center-left"
|
|
14
17
|
:wrap="false"
|
|
15
18
|
:key="index"
|
|
16
19
|
>
|
|
17
|
-
<slot
|
|
20
|
+
<slot
|
|
21
|
+
:name="`header.${header.value}`"
|
|
22
|
+
v-bind="{ header }"
|
|
23
|
+
>
|
|
18
24
|
<FSRow
|
|
19
25
|
align="center-left"
|
|
20
26
|
>
|
|
@@ -25,7 +31,10 @@
|
|
|
25
31
|
</FSText>
|
|
26
32
|
</FSRow>
|
|
27
33
|
</slot>
|
|
28
|
-
<slot
|
|
34
|
+
<slot
|
|
35
|
+
:name="`item.${header.value}`"
|
|
36
|
+
v-bind="{ item: $props.item }"
|
|
37
|
+
>
|
|
29
38
|
<FSRow
|
|
30
39
|
align="center-left"
|
|
31
40
|
>
|
|
@@ -35,7 +44,10 @@
|
|
|
35
44
|
</FSRow>
|
|
36
45
|
</slot>
|
|
37
46
|
</FSRow>
|
|
38
|
-
<slot
|
|
47
|
+
<slot
|
|
48
|
+
name="item.bottom"
|
|
49
|
+
v-bind="{ item: $props.item }"
|
|
50
|
+
/>
|
|
39
51
|
</FSCol>
|
|
40
52
|
<FSCard
|
|
41
53
|
v-if="$props.showSelect"
|