@dative-gpi/foundation-shared-components 1.0.139-widgethiddencode → 1.0.140-selectable
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 +6 -6
- package/components/FSCalendarTwin.vue +1 -5
- package/components/FSCheckbox.vue +4 -4
- package/components/FSChip.vue +3 -3
- package/components/FSClickable.vue +6 -6
- package/components/FSClock.vue +16 -7
- package/components/FSDialogFormBody.vue +3 -3
- package/components/FSDialogMultiFormBody.vue +3 -3
- package/components/FSDialogSubmit.vue +3 -3
- package/components/FSInstantPicker.vue +8 -5
- package/components/FSOptionGroup.vue +8 -8
- package/components/FSOptionItem.vue +4 -4
- package/components/FSPagination.vue +1 -1
- package/components/FSRadio.vue +4 -4
- package/components/FSRadioGroup.vue +3 -3
- package/components/FSSlider.vue +4 -4
- package/components/FSSwitch.vue +6 -4
- package/components/FSTag.vue +2 -2
- package/components/FSTagGroup.vue +3 -3
- package/components/FSToggleSet.vue +7 -7
- package/components/buttons/FSButtonCheckbox.vue +4 -4
- package/components/fields/FSAutocompleteField.vue +21 -15
- package/components/fields/FSBaseField.vue +3 -3
- package/components/fields/FSColorField.vue +6 -6
- package/components/fields/FSDateField.vue +8 -8
- package/components/fields/FSDateRangeField.vue +5 -5
- package/components/fields/FSDateTimeField.vue +8 -8
- package/components/fields/FSDateTimeRangeDialog.vue +160 -0
- package/components/fields/FSDateTimeRangeField.vue +22 -115
- package/components/fields/FSEntityFieldUI.vue +6 -6
- package/components/fields/FSGradientField.vue +5 -5
- package/components/fields/FSIconField.vue +6 -6
- package/components/fields/FSMagicConfigField.vue +5 -4
- package/components/fields/FSNumberField.vue +3 -3
- package/components/fields/FSPasswordField.vue +7 -7
- package/components/fields/FSRichTextField.vue +7 -7
- package/components/fields/FSSelectField.vue +22 -16
- package/components/fields/FSTagField.vue +9 -9
- package/components/fields/FSTermField.vue +51 -42
- package/components/fields/FSTextArea.vue +7 -7
- package/components/fields/FSTextField.vue +7 -7
- package/components/fields/FSTimeField.vue +14 -10
- package/components/fields/FSTimeRangeField.vue +7 -7
- package/components/fields/FSTimeStepField.vue +5 -5
- package/components/fields/FSTranslateField.vue +7 -7
- package/components/fields/FSTranslateRichTextField.vue +7 -7
- package/components/fields/FSTranslateTextArea.vue +7 -7
- package/components/fields/FSTreeViewField.vue +11 -11
- package/components/fields/periodicField/FSPeriodicDailyField.vue +5 -5
- package/components/fields/periodicField/FSPeriodicField.vue +7 -7
- package/components/fields/periodicField/FSPeriodicMonthlyField.vue +8 -8
- package/components/fields/periodicField/FSPeriodicWeeklyField.vue +5 -5
- package/components/fields/periodicField/FSPeriodicYearlyField.vue +6 -6
- package/components/lists/FSDataIteratorItem.vue +23 -67
- package/components/lists/FSDataTableUI.vue +24 -19
- package/components/lists/FSFilterButton.vue +3 -3
- package/components/lists/FSHeaderButton.vue +3 -3
- package/components/lists/FSHiddenButton.vue +2 -2
- package/components/lists/FSSimpleListItem.vue +0 -1
- package/components/tiles/FSChartTileUI.vue +0 -6
- package/components/tiles/FSDeviceOrganisationTileUI.vue +0 -6
- package/components/tiles/FSGroupTileUI.vue +0 -6
- package/components/tiles/FSLoadTile.vue +3 -2
- package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -6
- package/components/tiles/FSSimpleTileUI.vue +0 -6
- package/components/tiles/FSTile.vue +19 -20
- package/components/tiles/FSUserOrganisationTileUI.vue +0 -6
- package/composables/useColors.ts +16 -7
- package/package.json +4 -4
- package/styles/components/fs_calendar.scss +1 -0
- package/styles/components/fs_chip.scss +1 -1
- package/styles/components/fs_draggable.scss +0 -5
- package/styles/components/index.scss +0 -1
- package/styles/components/fs_data_iterator_item.scss +0 -35
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
:color="$props.color"
|
|
7
7
|
:hideHeader="$props.hideHeader"
|
|
8
8
|
:required="$props.required"
|
|
9
|
-
:
|
|
9
|
+
:disabled="$props.disabled"
|
|
10
10
|
:readonly="true"
|
|
11
11
|
:rules="$props.rules"
|
|
12
12
|
:messages="messages"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<FSButton
|
|
27
27
|
variant="icon"
|
|
28
28
|
icon="mdi-calendar"
|
|
29
|
-
:
|
|
29
|
+
:disabled="$props.disabled"
|
|
30
30
|
:color="ColorEnum.Dark"
|
|
31
31
|
/>
|
|
32
32
|
</slot>
|
|
@@ -41,66 +41,34 @@
|
|
|
41
41
|
/>
|
|
42
42
|
</template>
|
|
43
43
|
</FSTextField>
|
|
44
|
-
<
|
|
44
|
+
<FSDateTimeRangeDialog
|
|
45
45
|
:title="$props.label"
|
|
46
46
|
:submitButtonColor="$props.color"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<FSCol>
|
|
54
|
-
<FSCalendarTwin
|
|
55
|
-
:color="$props.color"
|
|
56
|
-
v-model="innerDateRange"
|
|
57
|
-
/>
|
|
58
|
-
<FSRow>
|
|
59
|
-
<FSCol>
|
|
60
|
-
<FSClock
|
|
61
|
-
:color="$props.color"
|
|
62
|
-
:date="innerDateLeft"
|
|
63
|
-
v-model="innerTimeLeft"
|
|
64
|
-
/>
|
|
65
|
-
</FSCol>
|
|
66
|
-
<FSCol>
|
|
67
|
-
<FSClock
|
|
68
|
-
:color="$props.color"
|
|
69
|
-
:date="innerDateRight"
|
|
70
|
-
v-model="innerTimeRight"
|
|
71
|
-
/>
|
|
72
|
-
</FSCol>
|
|
73
|
-
</FSRow>
|
|
74
|
-
</FSCol>
|
|
75
|
-
</template>
|
|
76
|
-
</FSDialogSubmit>
|
|
47
|
+
:dialog="dialog"
|
|
48
|
+
:modelValue="$props.modelValue"
|
|
49
|
+
:color="$props.color"
|
|
50
|
+
@cancel="dialog = false"
|
|
51
|
+
@update:modelValue="onSubmit($event)"
|
|
52
|
+
/>
|
|
77
53
|
</template>
|
|
78
54
|
|
|
79
55
|
<script lang="ts">
|
|
80
|
-
import { computed, defineComponent, type PropType, ref
|
|
56
|
+
import { computed, defineComponent, type PropType, ref } from "vue";
|
|
81
57
|
|
|
82
58
|
import { type ColorBase, ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
83
|
-
import {
|
|
59
|
+
import { useDateFormat } from "@dative-gpi/foundation-shared-services/composables";
|
|
84
60
|
import { useRules } from "@dative-gpi/foundation-shared-components/composables";
|
|
85
61
|
|
|
86
|
-
import
|
|
87
|
-
import FSCalendarTwin from "../FSCalendarTwin.vue";
|
|
62
|
+
import FSDateTimeRangeDialog from "./FSDateTimeRangeDialog.vue";
|
|
88
63
|
import FSTextField from "./FSTextField.vue";
|
|
89
64
|
import FSButton from "../FSButton.vue";
|
|
90
|
-
import FSClock from "../FSClock.vue";
|
|
91
|
-
import FSCol from "../FSCol.vue";
|
|
92
|
-
import FSRow from "../FSRow.vue";
|
|
93
65
|
|
|
94
66
|
export default defineComponent({
|
|
95
67
|
name: "FSDateTimeRangeField",
|
|
96
68
|
components: {
|
|
97
|
-
|
|
98
|
-
FSCalendarTwin,
|
|
69
|
+
FSDateTimeRangeDialog,
|
|
99
70
|
FSTextField,
|
|
100
|
-
FSButton
|
|
101
|
-
FSClock,
|
|
102
|
-
FSCol,
|
|
103
|
-
FSRow
|
|
71
|
+
FSButton
|
|
104
72
|
},
|
|
105
73
|
props: {
|
|
106
74
|
label: {
|
|
@@ -138,24 +106,19 @@ export default defineComponent({
|
|
|
138
106
|
required: false,
|
|
139
107
|
default: () => []
|
|
140
108
|
},
|
|
141
|
-
|
|
109
|
+
disabled: {
|
|
142
110
|
type: Boolean,
|
|
143
111
|
required: false,
|
|
144
|
-
default:
|
|
112
|
+
default: false
|
|
145
113
|
}
|
|
146
114
|
},
|
|
147
115
|
emits: ["update:modelValue"],
|
|
148
116
|
setup(props, { emit }) {
|
|
149
|
-
const { getUserOffset } = useAppTimeZone();
|
|
150
117
|
const { epochToShortTimeFormat } = useDateFormat();
|
|
151
118
|
const { validateOn, getMessages } = useRules();
|
|
152
119
|
|
|
153
120
|
const dialog = ref(false);
|
|
154
121
|
|
|
155
|
-
const innerDateRange = ref<number[] | null>(null);
|
|
156
|
-
const innerTimeRight = ref(0);
|
|
157
|
-
const innerTimeLeft = ref(0);
|
|
158
|
-
|
|
159
122
|
const toShortTimeFormat = computed((): string => {
|
|
160
123
|
if (!props.modelValue || !Array.isArray(props.modelValue) || !props.modelValue.length) {
|
|
161
124
|
return "";
|
|
@@ -163,88 +126,32 @@ export default defineComponent({
|
|
|
163
126
|
return props.modelValue.map((epoch) => epochToShortTimeFormat(epoch)).join(" - ");
|
|
164
127
|
});
|
|
165
128
|
|
|
166
|
-
const innerDateLeft = computed((): number | null => {
|
|
167
|
-
if (innerDateRange.value && Array.isArray(innerDateRange.value) && innerDateRange.value.length) {
|
|
168
|
-
return innerDateRange.value[0];
|
|
169
|
-
}
|
|
170
|
-
return null;
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
const innerDateRight= computed((): number | null => {
|
|
174
|
-
if (innerDateRange.value && Array.isArray(innerDateRange.value) && innerDateRange.value.length > 1) {
|
|
175
|
-
return innerDateRange.value[1];
|
|
176
|
-
}
|
|
177
|
-
return null;
|
|
178
|
-
});
|
|
179
|
-
|
|
180
129
|
const messages = computed((): string[] => getMessages(props.modelValue, props.rules, true));
|
|
181
130
|
|
|
182
131
|
const onClick = (): void => {
|
|
183
|
-
if (props.
|
|
132
|
+
if (!props.disabled) {
|
|
184
133
|
dialog.value = true;
|
|
185
134
|
}
|
|
186
135
|
};
|
|
187
136
|
|
|
188
|
-
const
|
|
189
|
-
emit("update:modelValue",
|
|
190
|
-
innerTimeLeft.value = 0;
|
|
191
|
-
innerTimeRight.value = 0;
|
|
192
|
-
innerDateRange.value = null;
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
const onSubmit = (): void => {
|
|
196
|
-
if (innerDateRange.value && Array.isArray(innerDateRange.value) && innerDateRange.value.length > 1) {
|
|
197
|
-
emit("update:modelValue", [innerDateRange.value[0] + innerTimeLeft.value, innerDateRange.value[1] + innerTimeRight.value]);
|
|
198
|
-
}
|
|
137
|
+
const onSubmit = (value: number[]): void => {
|
|
138
|
+
emit("update:modelValue", value);
|
|
199
139
|
dialog.value = false;
|
|
200
140
|
};
|
|
201
141
|
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
// FSClock just gives two numbers without consideration for the time zone
|
|
205
|
-
// We must adjust the time to the user's time zone
|
|
206
|
-
switch (props.modelValue.length) {
|
|
207
|
-
case 0: {
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
case 1: {
|
|
211
|
-
innerTimeLeft.value = Math.floor((props.modelValue[0] + getUserOffset(props.modelValue[0])) % (24 * 60 * 60 * 1000));
|
|
212
|
-
innerDateRange.value = [props.modelValue[0] - innerTimeLeft.value];
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
default: {
|
|
216
|
-
innerTimeLeft.value = Math.floor((props.modelValue[0] + getUserOffset(props.modelValue[0])) % (24 * 60 * 60 * 1000));
|
|
217
|
-
innerTimeRight.value = Math.floor((props.modelValue[1] + getUserOffset(props.modelValue[1])) % (24 * 60 * 60 * 1000));
|
|
218
|
-
innerDateRange.value = [props.modelValue[0] - innerTimeLeft.value, props.modelValue[1] - innerTimeRight.value];
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
innerDateRange.value = null;
|
|
225
|
-
innerTimeLeft.value = 0;
|
|
226
|
-
innerTimeRight.value = 0;
|
|
227
|
-
}
|
|
142
|
+
const onClear = (): void => {
|
|
143
|
+
emit("update:modelValue", null);
|
|
228
144
|
};
|
|
229
145
|
|
|
230
|
-
watch(() => props.modelValue, () => {
|
|
231
|
-
reset();
|
|
232
|
-
}, { immediate: true });
|
|
233
|
-
|
|
234
146
|
return {
|
|
235
147
|
toShortTimeFormat,
|
|
236
|
-
innerDateLeft,
|
|
237
|
-
innerTimeLeft,
|
|
238
|
-
innerDateRight,
|
|
239
|
-
innerTimeRight,
|
|
240
|
-
innerDateRange,
|
|
241
148
|
validateOn,
|
|
242
149
|
ColorEnum,
|
|
243
150
|
messages,
|
|
244
151
|
dialog,
|
|
245
152
|
onSubmit,
|
|
246
153
|
onClear,
|
|
247
|
-
onClick
|
|
154
|
+
onClick,
|
|
248
155
|
};
|
|
249
156
|
}
|
|
250
157
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
:description="$props.description"
|
|
4
4
|
:hideHeader="$props.hideHeader"
|
|
5
5
|
:required="$props.required"
|
|
6
|
-
:
|
|
6
|
+
:disabled="$props.disabled"
|
|
7
7
|
:label="$props.label"
|
|
8
8
|
:messages="messages"
|
|
9
9
|
>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:wrap="false"
|
|
15
15
|
>
|
|
16
16
|
<FSSelectField
|
|
17
|
-
:
|
|
17
|
+
:disabled="$props.disabled"
|
|
18
18
|
:items="actualEntityTypes"
|
|
19
19
|
:hideHeader="true"
|
|
20
20
|
:clearable="false"
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<FSButton
|
|
28
28
|
icon="mdi-pencil"
|
|
29
29
|
:label="$tr('ui.common.edit', 'Edit')"
|
|
30
|
-
:
|
|
30
|
+
:disabled="$props.disabled"
|
|
31
31
|
@click="$emit('click:select')"
|
|
32
32
|
/>
|
|
33
33
|
</template>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<FSButton
|
|
38
38
|
icon="mdi-plus-circle-multiple-outline"
|
|
39
39
|
:label="$tr('ui.common.select', 'Select')"
|
|
40
|
-
:
|
|
40
|
+
:disabled="$props.disabled"
|
|
41
41
|
@click="$emit('click:select')"
|
|
42
42
|
/>
|
|
43
43
|
</template>
|
|
@@ -170,10 +170,10 @@ export default defineComponent({
|
|
|
170
170
|
required: false,
|
|
171
171
|
default: null
|
|
172
172
|
},
|
|
173
|
-
|
|
173
|
+
disabled: {
|
|
174
174
|
type: Boolean,
|
|
175
175
|
required: false,
|
|
176
|
-
default:
|
|
176
|
+
default: false
|
|
177
177
|
},
|
|
178
178
|
entityType: {
|
|
179
179
|
type: Number as PropType<EntityType>,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
:label="$props.label"
|
|
7
7
|
:description="$props.description"
|
|
8
8
|
:required="$props.required"
|
|
9
|
-
:
|
|
9
|
+
:disabled="$props.disabled"
|
|
10
10
|
v-bind="$attrs"
|
|
11
11
|
>
|
|
12
12
|
<FSRow>
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
:allowOpacity="$props.allowOpacity"
|
|
16
16
|
:modelValue="$props.modelValue[colorIndex - 1]"
|
|
17
17
|
:required="$props.required"
|
|
18
|
-
:
|
|
18
|
+
:disabled="$props.disabled"
|
|
19
19
|
:key="colorIndex"
|
|
20
20
|
@update:modelValue="$emit('update:modelValue', $props.modelValue.map((color, i) => colorIndex === i + 1 ? $event : color))"
|
|
21
21
|
/>
|
|
22
22
|
</FSRow>
|
|
23
23
|
<FSSelectField
|
|
24
24
|
class="fs-gradient-field-select"
|
|
25
|
-
:
|
|
25
|
+
:disabled="$props.disabled"
|
|
26
26
|
:clearable="false"
|
|
27
27
|
:items="items"
|
|
28
28
|
modelValue="custom"
|
|
@@ -92,10 +92,10 @@ export default defineComponent({
|
|
|
92
92
|
required: false,
|
|
93
93
|
default: false
|
|
94
94
|
},
|
|
95
|
-
|
|
95
|
+
disabled: {
|
|
96
96
|
type: Boolean,
|
|
97
97
|
required: false,
|
|
98
|
-
default:
|
|
98
|
+
default: false
|
|
99
99
|
},
|
|
100
100
|
allowOpacity: {
|
|
101
101
|
type: Boolean,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:description="$props.description"
|
|
6
6
|
:hideHeader="$props.hideHeader"
|
|
7
7
|
:required="$props.required"
|
|
8
|
-
:
|
|
8
|
+
:disabled="$props.disabled"
|
|
9
9
|
:rules="$props.rules"
|
|
10
10
|
:messages="messages"
|
|
11
11
|
:validateOn="validateOn"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
:activeColor="$props.activeColor"
|
|
35
35
|
:modelValue="$props.modelValue"
|
|
36
36
|
:required="$props.required"
|
|
37
|
-
:
|
|
37
|
+
:disabled="$props.disabled"
|
|
38
38
|
:values="icons"
|
|
39
39
|
@update:modelValue="$emit('update:modelValue', $event)"
|
|
40
40
|
/>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</template>
|
|
43
43
|
|
|
44
44
|
<script lang="ts">
|
|
45
|
-
import type { PropType} from "vue";
|
|
45
|
+
import type { PropType, StyleValue } from "vue";
|
|
46
46
|
import { computed, defineComponent, ref, watch } from "vue";
|
|
47
47
|
|
|
48
48
|
import { Icons, sortByLevenshteinDistance } from "@dative-gpi/foundation-shared-components/utils";
|
|
@@ -119,10 +119,10 @@ export default defineComponent({
|
|
|
119
119
|
required: false,
|
|
120
120
|
default: () => []
|
|
121
121
|
},
|
|
122
|
-
|
|
122
|
+
disabled: {
|
|
123
123
|
type: Boolean,
|
|
124
124
|
required: false,
|
|
125
|
-
default:
|
|
125
|
+
default: false
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
emits: ["update:modelValue"],
|
|
@@ -138,7 +138,7 @@ export default defineComponent({
|
|
|
138
138
|
const innerValue = ref<string | null>(null);
|
|
139
139
|
|
|
140
140
|
const style = computed((): StyleValue => {
|
|
141
|
-
if (
|
|
141
|
+
if (props.disabled) {
|
|
142
142
|
return {
|
|
143
143
|
"--fs-icon-field-color": lights.dark
|
|
144
144
|
};
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
class="fs-magic-config-field"
|
|
4
4
|
>
|
|
5
5
|
<component
|
|
6
|
+
v-if="$props.type"
|
|
6
7
|
class="fs-magic-config-field-value"
|
|
7
8
|
:is="get($props.type)"
|
|
8
9
|
:label="$tr('ui.common.value', 'Value')"
|
|
9
|
-
:
|
|
10
|
+
:disabled="$props.disabled"
|
|
10
11
|
:required="true"
|
|
11
12
|
:rules="rules"
|
|
12
13
|
:modelValue="valueToInput"
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
>
|
|
18
19
|
<FSTranslateField
|
|
19
20
|
:label="$tr('ui.common.label', 'Label')"
|
|
20
|
-
:
|
|
21
|
+
:disabled="$props.disabled"
|
|
21
22
|
:modelValue="$props.labelDefault"
|
|
22
23
|
:translations="$props.translations"
|
|
23
24
|
@update:modelValue="$emit('update:labelDefault', $event)"
|
|
@@ -80,10 +81,10 @@ export default defineComponent({
|
|
|
80
81
|
required: false,
|
|
81
82
|
default: () => []
|
|
82
83
|
},
|
|
83
|
-
|
|
84
|
+
disabled: {
|
|
84
85
|
type: Boolean,
|
|
85
86
|
required: false,
|
|
86
|
-
default:
|
|
87
|
+
default: false
|
|
87
88
|
}
|
|
88
89
|
},
|
|
89
90
|
emits: ["click:remove", "click:add", "update:modelValue", "update:labelDefault", "update:translations"],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<FSTextField
|
|
3
3
|
class="fs-number-field"
|
|
4
4
|
minWidth="80px"
|
|
5
|
-
:
|
|
5
|
+
:disabled="$props.disabled"
|
|
6
6
|
:modelValue="$props.modelValue?.toString()"
|
|
7
7
|
@update:modelValue="onUpdate"
|
|
8
8
|
v-bind="$attrs"
|
|
@@ -35,10 +35,10 @@ export default defineComponent({
|
|
|
35
35
|
required: false,
|
|
36
36
|
default: null
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
disabled: {
|
|
39
39
|
type: Boolean,
|
|
40
40
|
required: false,
|
|
41
|
-
default:
|
|
41
|
+
default: false
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
emits: ["update:modelValue"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<FSTextField
|
|
3
3
|
:type="type"
|
|
4
|
-
:
|
|
4
|
+
:disabled="$props.disabled"
|
|
5
5
|
:modelValue="$props.modelValue"
|
|
6
6
|
@update:modelValue="$emit('update:modelValue', $event)"
|
|
7
7
|
v-bind="$attrs"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
>
|
|
21
21
|
<FSButton
|
|
22
22
|
variant="icon"
|
|
23
|
-
:
|
|
23
|
+
:disabled="$props.disabled"
|
|
24
24
|
:color="ColorEnum.Dark"
|
|
25
25
|
:icon="icon"
|
|
26
26
|
@click="onToggle"
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
</template>
|
|
34
34
|
|
|
35
35
|
<script lang="ts">
|
|
36
|
-
import { computed, defineComponent, type PropType,
|
|
36
|
+
import { computed, defineComponent, ref, type PropType, type StyleValue } from "vue";
|
|
37
37
|
|
|
38
38
|
import { useColors } from "@dative-gpi/foundation-shared-components/composables";
|
|
39
39
|
import { ColorEnum } from "@dative-gpi/foundation-shared-components/models";
|
|
@@ -53,10 +53,10 @@ export default defineComponent({
|
|
|
53
53
|
required: false,
|
|
54
54
|
default: null
|
|
55
55
|
},
|
|
56
|
-
|
|
56
|
+
disabled: {
|
|
57
57
|
type: Boolean,
|
|
58
58
|
required: false,
|
|
59
|
-
default:
|
|
59
|
+
default: false
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
emits: ["update:modelValue"],
|
|
@@ -69,7 +69,7 @@ export default defineComponent({
|
|
|
69
69
|
const stars = ref(true);
|
|
70
70
|
|
|
71
71
|
const style = computed((): StyleValue => {
|
|
72
|
-
if (
|
|
72
|
+
if (props.disabled) {
|
|
73
73
|
return {
|
|
74
74
|
"--fs-password-field-cursor" : "default",
|
|
75
75
|
"--fs-password-field-color": lights.dark,
|
|
@@ -88,7 +88,7 @@ export default defineComponent({
|
|
|
88
88
|
const icon = computed((): string => stars.value ? "mdi-eye-off-outline" : "mdi-eye-outline");
|
|
89
89
|
|
|
90
90
|
const onToggle = (): void => {
|
|
91
|
-
if (
|
|
91
|
+
if (props.disabled) {
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
94
|
stars.value = !stars.value;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
</FSRow>
|
|
31
31
|
</slot>
|
|
32
32
|
<FSRow
|
|
33
|
-
v-if="
|
|
33
|
+
v-if="!$props.disabled"
|
|
34
34
|
align="center-right"
|
|
35
35
|
:wrap="false"
|
|
36
36
|
>
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
<div
|
|
194
194
|
class="fs-rich-text-field-content"
|
|
195
195
|
:data-variable-values="variableValues"
|
|
196
|
-
:contenteditable="!readonly &&
|
|
196
|
+
:contenteditable="!readonly && !$props.disabled && !loading"
|
|
197
197
|
:data-readonly="$props.variant === 'readonly'"
|
|
198
198
|
:id="id"
|
|
199
199
|
/>
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
</div>
|
|
205
205
|
|
|
206
206
|
<FSTextField
|
|
207
|
-
v-if="isLink && !readonly &&
|
|
207
|
+
v-if="isLink && !readonly && !$props.disabled"
|
|
208
208
|
:hideHeader="true"
|
|
209
209
|
@keypress.enter.stop="toggleLink"
|
|
210
210
|
v-model="linkUrl"
|
|
@@ -310,10 +310,10 @@ export default defineComponent({
|
|
|
310
310
|
required: false,
|
|
311
311
|
default: () => ({})
|
|
312
312
|
},
|
|
313
|
-
|
|
313
|
+
disabled: {
|
|
314
314
|
type: Boolean,
|
|
315
315
|
required: false,
|
|
316
|
-
default:
|
|
316
|
+
default: false
|
|
317
317
|
}
|
|
318
318
|
},
|
|
319
319
|
emits: ["update:modelValue"],
|
|
@@ -400,7 +400,7 @@ export default defineComponent({
|
|
|
400
400
|
}
|
|
401
401
|
switch (props.variant) {
|
|
402
402
|
case "standard": {
|
|
403
|
-
if (
|
|
403
|
+
if (props.disabled) {
|
|
404
404
|
return {
|
|
405
405
|
"--fs-rich-text-field-undo-cursor" : "default",
|
|
406
406
|
"--fs-rich-text-field-icon-cursor" : "default",
|
|
@@ -450,7 +450,7 @@ export default defineComponent({
|
|
|
450
450
|
});
|
|
451
451
|
|
|
452
452
|
const toolbarColors = computed((): { [code: string]: string } => {
|
|
453
|
-
if (props.
|
|
453
|
+
if (!props.disabled) {
|
|
454
454
|
return {
|
|
455
455
|
undo: canUndo.value ? darks.base : lights.base,
|
|
456
456
|
bold: isBold.value ? darks.base : lights.base,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
:description="$props.description"
|
|
21
21
|
:hideHeader="$props.hideHeader"
|
|
22
22
|
:clearable="$props.clearable"
|
|
23
|
-
:
|
|
23
|
+
:disabled="$props.disabled"
|
|
24
24
|
:required="$props.required"
|
|
25
25
|
:validateOn="validateOn"
|
|
26
26
|
:label="$props.label"
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
name="clear"
|
|
65
65
|
>
|
|
66
66
|
<FSButton
|
|
67
|
-
v-if="$props.clearable &&
|
|
67
|
+
v-if="$props.clearable && !$props.disabled && !!$props.modelValue"
|
|
68
68
|
icon="mdi-close"
|
|
69
69
|
variant="icon"
|
|
70
70
|
:color="ColorEnum.Dark"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
<FSButton
|
|
80
80
|
icon="mdi-chevron-down"
|
|
81
81
|
variant="icon"
|
|
82
|
-
:
|
|
82
|
+
:disabled="$props.disabled"
|
|
83
83
|
:color="ColorEnum.Dark"
|
|
84
84
|
@click="openMobileOverlay"
|
|
85
85
|
/>
|
|
@@ -170,14 +170,14 @@
|
|
|
170
170
|
/>
|
|
171
171
|
<FSCheckbox
|
|
172
172
|
v-if="$props.multiple"
|
|
173
|
-
:
|
|
173
|
+
:disabled="$props.disabled"
|
|
174
174
|
:modelValue="$props.modelValue?.includes(item[$props.itemValue!])"
|
|
175
175
|
@update:modelValue="onCheckboxChange(item[$props.itemValue!])"
|
|
176
176
|
/>
|
|
177
177
|
<FSRadio
|
|
178
178
|
v-else
|
|
179
179
|
:selected="$props.modelValue === item[$props.itemValue!]"
|
|
180
|
-
:
|
|
180
|
+
:disabled="$props.disabled"
|
|
181
181
|
:item="item"
|
|
182
182
|
:modelValue="item[$props.itemValue!]"
|
|
183
183
|
@update:modelValue="onRadioChange(item[$props.itemValue!])"
|
|
@@ -203,13 +203,13 @@
|
|
|
203
203
|
:description="$props.description"
|
|
204
204
|
:hideHeader="$props.hideHeader"
|
|
205
205
|
:required="$props.required"
|
|
206
|
-
:
|
|
206
|
+
:disabled="$props.disabled"
|
|
207
207
|
:label="$props.label"
|
|
208
208
|
:messages="messages"
|
|
209
209
|
>
|
|
210
210
|
<FSToggleSet
|
|
211
211
|
v-if="$props.toggleSet"
|
|
212
|
-
:
|
|
212
|
+
:disabled="$props.disabled"
|
|
213
213
|
:multiple="$props.multiple"
|
|
214
214
|
:required="$props.required"
|
|
215
215
|
:values="$props.items"
|
|
@@ -234,10 +234,11 @@
|
|
|
234
234
|
<v-select
|
|
235
235
|
class="fs-select-field"
|
|
236
236
|
variant="outlined"
|
|
237
|
-
:clearable="$props.clearable &&
|
|
237
|
+
:clearable="$props.clearable && !$props.disabled && !!$props.modelValue"
|
|
238
238
|
:itemTitle="$props.itemTitle"
|
|
239
239
|
:itemValue="$props.itemValue"
|
|
240
|
-
:
|
|
240
|
+
:disabled="$props.disabled"
|
|
241
|
+
:readonly="$props.readonly"
|
|
241
242
|
:multiple="$props.multiple"
|
|
242
243
|
:validateOn="validateOn"
|
|
243
244
|
:persistentClear="true"
|
|
@@ -347,7 +348,7 @@
|
|
|
347
348
|
name="clear"
|
|
348
349
|
>
|
|
349
350
|
<FSButton
|
|
350
|
-
v-if="$props.clearable && $props.
|
|
351
|
+
v-if="$props.clearable && $props.disabled && !!$props.modelValue"
|
|
351
352
|
icon="mdi-close"
|
|
352
353
|
variant="icon"
|
|
353
354
|
:color="ColorEnum.Dark"
|
|
@@ -365,7 +366,7 @@
|
|
|
365
366
|
<FSButton
|
|
366
367
|
icon="mdi-chevron-down"
|
|
367
368
|
variant="icon"
|
|
368
|
-
:
|
|
369
|
+
:disabled="$props.disabled"
|
|
369
370
|
:color="ColorEnum.Dark"
|
|
370
371
|
/>
|
|
371
372
|
</slot>
|
|
@@ -413,7 +414,7 @@
|
|
|
413
414
|
<FSButton
|
|
414
415
|
icon="mdi-close"
|
|
415
416
|
variant="icon"
|
|
416
|
-
:
|
|
417
|
+
:disabled="$props.disabled"
|
|
417
418
|
:color="ColorEnum.Dark"
|
|
418
419
|
@click="() => onCheckboxChange(item[$props.itemValue!])"
|
|
419
420
|
/>
|
|
@@ -528,10 +529,15 @@ export default defineComponent({
|
|
|
528
529
|
required: false,
|
|
529
530
|
default: true
|
|
530
531
|
},
|
|
531
|
-
|
|
532
|
+
disabled: {
|
|
532
533
|
type: Boolean,
|
|
533
534
|
required: false,
|
|
534
|
-
default:
|
|
535
|
+
default: false
|
|
536
|
+
},
|
|
537
|
+
readonly: {
|
|
538
|
+
type: Boolean,
|
|
539
|
+
required: false,
|
|
540
|
+
default: false
|
|
535
541
|
},
|
|
536
542
|
loading: {
|
|
537
543
|
type: Boolean,
|
|
@@ -562,7 +568,7 @@ export default defineComponent({
|
|
|
562
568
|
const dialog = ref(false);
|
|
563
569
|
|
|
564
570
|
const style = computed((): StyleValue => {
|
|
565
|
-
if (
|
|
571
|
+
if (props.disabled) {
|
|
566
572
|
return {
|
|
567
573
|
"--fs-select-field-cursor" : "default",
|
|
568
574
|
"--fs-select-field-border-color" : lights.base,
|
|
@@ -650,7 +656,7 @@ export default defineComponent({
|
|
|
650
656
|
});
|
|
651
657
|
|
|
652
658
|
const openMobileOverlay = () => {
|
|
653
|
-
if (
|
|
659
|
+
if (props.disabled) {
|
|
654
660
|
return;
|
|
655
661
|
}
|
|
656
662
|
dialog.value = true;
|