@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.
Files changed (74) hide show
  1. package/components/FSButton.vue +6 -6
  2. package/components/FSCalendarTwin.vue +1 -5
  3. package/components/FSCheckbox.vue +4 -4
  4. package/components/FSChip.vue +3 -3
  5. package/components/FSClickable.vue +6 -6
  6. package/components/FSClock.vue +16 -7
  7. package/components/FSDialogFormBody.vue +3 -3
  8. package/components/FSDialogMultiFormBody.vue +3 -3
  9. package/components/FSDialogSubmit.vue +3 -3
  10. package/components/FSInstantPicker.vue +8 -5
  11. package/components/FSOptionGroup.vue +8 -8
  12. package/components/FSOptionItem.vue +4 -4
  13. package/components/FSPagination.vue +1 -1
  14. package/components/FSRadio.vue +4 -4
  15. package/components/FSRadioGroup.vue +3 -3
  16. package/components/FSSlider.vue +4 -4
  17. package/components/FSSwitch.vue +6 -4
  18. package/components/FSTag.vue +2 -2
  19. package/components/FSTagGroup.vue +3 -3
  20. package/components/FSToggleSet.vue +7 -7
  21. package/components/buttons/FSButtonCheckbox.vue +4 -4
  22. package/components/fields/FSAutocompleteField.vue +21 -15
  23. package/components/fields/FSBaseField.vue +3 -3
  24. package/components/fields/FSColorField.vue +6 -6
  25. package/components/fields/FSDateField.vue +8 -8
  26. package/components/fields/FSDateRangeField.vue +5 -5
  27. package/components/fields/FSDateTimeField.vue +8 -8
  28. package/components/fields/FSDateTimeRangeDialog.vue +160 -0
  29. package/components/fields/FSDateTimeRangeField.vue +22 -115
  30. package/components/fields/FSEntityFieldUI.vue +6 -6
  31. package/components/fields/FSGradientField.vue +5 -5
  32. package/components/fields/FSIconField.vue +6 -6
  33. package/components/fields/FSMagicConfigField.vue +5 -4
  34. package/components/fields/FSNumberField.vue +3 -3
  35. package/components/fields/FSPasswordField.vue +7 -7
  36. package/components/fields/FSRichTextField.vue +7 -7
  37. package/components/fields/FSSelectField.vue +22 -16
  38. package/components/fields/FSTagField.vue +9 -9
  39. package/components/fields/FSTermField.vue +51 -42
  40. package/components/fields/FSTextArea.vue +7 -7
  41. package/components/fields/FSTextField.vue +7 -7
  42. package/components/fields/FSTimeField.vue +14 -10
  43. package/components/fields/FSTimeRangeField.vue +7 -7
  44. package/components/fields/FSTimeStepField.vue +5 -5
  45. package/components/fields/FSTranslateField.vue +7 -7
  46. package/components/fields/FSTranslateRichTextField.vue +7 -7
  47. package/components/fields/FSTranslateTextArea.vue +7 -7
  48. package/components/fields/FSTreeViewField.vue +11 -11
  49. package/components/fields/periodicField/FSPeriodicDailyField.vue +5 -5
  50. package/components/fields/periodicField/FSPeriodicField.vue +7 -7
  51. package/components/fields/periodicField/FSPeriodicMonthlyField.vue +8 -8
  52. package/components/fields/periodicField/FSPeriodicWeeklyField.vue +5 -5
  53. package/components/fields/periodicField/FSPeriodicYearlyField.vue +6 -6
  54. package/components/lists/FSDataIteratorItem.vue +23 -67
  55. package/components/lists/FSDataTableUI.vue +24 -19
  56. package/components/lists/FSFilterButton.vue +3 -3
  57. package/components/lists/FSHeaderButton.vue +3 -3
  58. package/components/lists/FSHiddenButton.vue +2 -2
  59. package/components/lists/FSSimpleListItem.vue +0 -1
  60. package/components/tiles/FSChartTileUI.vue +0 -6
  61. package/components/tiles/FSDeviceOrganisationTileUI.vue +0 -6
  62. package/components/tiles/FSGroupTileUI.vue +0 -6
  63. package/components/tiles/FSLoadTile.vue +3 -2
  64. package/components/tiles/FSServiceAccountOrganisationTileUI.vue +0 -6
  65. package/components/tiles/FSSimpleTileUI.vue +0 -6
  66. package/components/tiles/FSTile.vue +19 -20
  67. package/components/tiles/FSUserOrganisationTileUI.vue +0 -6
  68. package/composables/useColors.ts +16 -7
  69. package/package.json +4 -4
  70. package/styles/components/fs_calendar.scss +1 -0
  71. package/styles/components/fs_chip.scss +1 -1
  72. package/styles/components/fs_draggable.scss +0 -5
  73. package/styles/components/index.scss +0 -1
  74. 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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- <FSDialogSubmit
44
+ <FSDateTimeRangeDialog
45
45
  :title="$props.label"
46
46
  :submitButtonColor="$props.color"
47
- @click:submitButton="onSubmit"
48
- v-model="dialog"
49
- >
50
- <template
51
- #body
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, watch } from "vue";
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 { useAppTimeZone, useDateFormat } from "@dative-gpi/foundation-shared-services/composables";
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 FSDialogSubmit from "../FSDialogSubmit.vue";
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
- FSDialogSubmit,
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
- editable: {
109
+ disabled: {
142
110
  type: Boolean,
143
111
  required: false,
144
- default: true
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.editable) {
132
+ if (!props.disabled) {
184
133
  dialog.value = true;
185
134
  }
186
135
  };
187
136
 
188
- const onClear = (): void => {
189
- emit("update:modelValue", null);
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 reset = (): void => {
203
- if (props.modelValue && Array.isArray(props.modelValue)) {
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- editable: {
173
+ disabled: {
174
174
  type: Boolean,
175
175
  required: false,
176
- default: true
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- editable: {
95
+ disabled: {
96
96
  type: Boolean,
97
97
  required: false,
98
- default: true
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- editable: {
122
+ disabled: {
123
123
  type: Boolean,
124
124
  required: false,
125
- default: true
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 (!props.editable) {
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- editable: {
84
+ disabled: {
84
85
  type: Boolean,
85
86
  required: false,
86
- default: true
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
- :editable="$props.editable"
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
- editable: {
38
+ disabled: {
39
39
  type: Boolean,
40
40
  required: false,
41
- default: true
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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, ref } from "vue";
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
- editable: {
56
+ disabled: {
57
57
  type: Boolean,
58
58
  required: false,
59
- default: true
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 (!props.editable) {
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 (!props.editable) {
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="$props.editable"
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 && $props.editable && !loading"
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 && $props.editable"
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
- editable: {
313
+ disabled: {
314
314
  type: Boolean,
315
315
  required: false,
316
- default: true
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 (!props.editable) {
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.editable) {
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
- :editable="$props.editable"
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 && $props.editable && !!$props.modelValue"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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 && $props.editable && !!$props.modelValue"
237
+ :clearable="$props.clearable && !$props.disabled && !!$props.modelValue"
238
238
  :itemTitle="$props.itemTitle"
239
239
  :itemValue="$props.itemValue"
240
- :readonly="!$props.editable"
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.editable && !!$props.modelValue"
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
- :editable="$props.editable"
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
- :editable="$props.editable"
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
- editable: {
532
+ disabled: {
532
533
  type: Boolean,
533
534
  required: false,
534
- default: true
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 (!props.editable) {
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 (!props.editable) {
659
+ if (props.disabled) {
654
660
  return;
655
661
  }
656
662
  dialog.value = true;