88 :class =" displayContainerClass"
99 >
1010 <div :class =" displayInputControlClasses" >
11- <div class =" v-inline-fields--display-wrapper" >
12- <div
13- class =" d-inline-flex"
14- :class =" displayValueClass"
15- :style =" displayValueStyle"
16- @click =" toggleField"
17- >
18- {{ displayValue }}
19- </div >
20- </div >
11+ <DisplayedValue
12+ v-bind =" bindingDisplay"
13+ @toggleField =" toggleField"
14+ />
2115 </div >
2216 </div >
2317
3024 v-model =" modelValue"
3125 :autofocus =" !settings.fieldOnly || settings.autofocus"
3226 :clear-icon =" theClearIcon"
33- :color =" settings.color"
34- :density =" settings.density"
3527 :disabled =" loadingProp"
3628 :error =" error"
3729 :error-messages =" internalErrorMessages"
38- :hide-details =" settings.hideDetails"
3930 :label =" settings.label"
4031 :loading =" loadingProp"
41- :variant =" settings.variant"
4232 width =" 100%"
4333 @keyup.enter =" saveValue"
4434 @keyup.esc =" closeField"
@@ -95,9 +85,9 @@ import {
9585 TimeOpened ,
9686 VInlineTextFieldProps ,
9787} from ' @/types' ;
98- import { IconOptions , useTheme } from ' vuetify' ;
88+ import { IconOptions } from ' vuetify' ;
9989import { textFieldProps } from ' ./utils/props' ;
100- import { SaveFieldButtons } from ' ./components/index' ;
90+ import { DisplayedValue , SaveFieldButtons } from ' ./components/index' ;
10191import {
10292 useCheckForErrors ,
10393 useToggleField ,
@@ -106,15 +96,12 @@ import {
10696import {
10797 useDisplayContainerClass ,
10898 useDisplayInputControlClasses ,
109- useDisplayValueClass ,
11099 useFieldContainerClass ,
111100 useInlineFieldsContainerClass ,
112101} from ' ./composables/classes' ;
113- import {
114- useDisplayValueStyles ,
115- useInlineFieldsContainerStyle ,
116- } from ' ./composables/styles' ;
102+ import { useInlineFieldsContainerStyle } from ' ./composables/styles' ;
117103import inlineEmits from ' ./utils/emits' ;
104+ import { useBindingSettings } from ' ./composables/bindings' ;
118105import { useGetIcon } from ' ./composables/icons' ;
119106
120107
@@ -125,7 +112,6 @@ const slots = useSlots();
125112const emit = defineEmits ([... inlineEmits ]);
126113
127114const iconOptions = inject <IconOptions >(Symbol .for (' vuetify:icons' ));
128- const theme = useTheme ();
129115
130116const props = withDefaults (defineProps <VInlineTextFieldProps >(), { ... textFieldProps });
131117let settings = reactive ({ ... attrs , ... props });
@@ -138,10 +124,6 @@ const timeOpened = ref<TimeOpened>(null);
138124let originalValue = modelValue .value ;
139125
140126
141- // ------------------------------------------------ Binding Events & Props //
142- const bindingSettings = computed (() => settings );
143-
144-
145127// ------------------------------------------------ Loading //
146128watch (() => loadingProp .value , (newVal , oldVal ) => {
147129 if (! newVal && oldVal && showField .value ) {
@@ -151,7 +133,7 @@ watch(() => loadingProp.value, (newVal, oldVal) => {
151133
152134
153135// ------------------------------------------------ Icons //
154- const theClearIcon = computed (() => {
136+ const theClearIcon = computed < string > (() => {
155137 return useGetIcon ({
156138 icon: props .clearIcon ,
157139 iconOptions ,
@@ -181,6 +163,37 @@ const displayValue = computed(() => {
181163});
182164
183165
166+ // ------------------------------------------------ Binding Events & Props //
167+ const bindingSettings = computed (() => useBindingSettings (settings ));
168+
169+ const bindingDisplay = computed (() => {
170+ return {
171+ color: settings .color ,
172+ displayAppendIcon: props .displayAppendIcon ,
173+ displayAppendIconColor: props .displayAppendIconColor ,
174+ displayAppendIconSize: props .displayAppendIconSize ,
175+ displayAppendInnerIcon: props .displayAppendInnerIcon ,
176+ displayAppendInnerIconColor: props .displayAppendInnerIconColor ,
177+ displayAppendInnerIconSize: props .displayAppendInnerIconSize ,
178+ displayPrependIcon: props .displayPrependIcon ,
179+ displayPrependIconColor: props .displayPrependIconColor ,
180+ displayPrependIconSize: props .displayPrependIconSize ,
181+ displayPrependInnerIcon: props .displayPrependInnerIcon ,
182+ displayPrependInnerIconColor: props .displayPrependInnerIconColor ,
183+ displayPrependInnerIconSize: props .displayPrependInnerIconSize ,
184+ displayValue: displayValue .value ,
185+ empty ,
186+ error ,
187+ field: ' v-text-field' ,
188+ underlineColor: settings .underlineColor ,
189+ underlineStyle: settings .underlineStyle ,
190+ underlineWidth: settings .underlineWidth ,
191+ underlined: settings .underlined ,
192+ valueColor: settings .valueColor ,
193+ };
194+ });
195+
196+
184197// ------------------------------------------------ Class & Styles //
185198const inlineFieldsContainerClass = computed (() => useInlineFieldsContainerClass ({
186199 density: settings .density ,
@@ -190,6 +203,7 @@ const inlineFieldsContainerClass = computed(() => useInlineFieldsContainerClass(
190203 loading: loadingProp .value ,
191204 loadingWait: settings .loadingWait ,
192205 tableField: settings .tableField ,
206+ variant: settings .variant ,
193207}));
194208
195209const displayContainerClass = computed (() => useDisplayContainerClass ({
@@ -207,29 +221,10 @@ const fieldContainerClass = computed(() => useFieldContainerClass({
207221 name: ' text-field' ,
208222}));
209223
210- const displayValueClass = computed (() => useDisplayValueClass (
211- ' text-field' ,
212- settings .valueColor ,
213- {
214- empty ,
215- error ,
216- }
217- ));
218-
219224const inlineFieldsContainerStyle = computed (() => useInlineFieldsContainerStyle ({
220225 alignItems: settings .alignItems ,
221226}));
222227
223- const displayValueStyle = computed (() => useDisplayValueStyles ({
224- color: settings .color ,
225- error ,
226- theme ,
227- underlineColor: settings .underlineColor ,
228- underlineStyle: settings .underlineStyle ,
229- underlineWidth: settings .underlineWidth ,
230- underlined: settings .underlined ,
231- }));
232-
233228
234229// ------------------------------------------------ Key event to cancel/close field //
235230function closeField() {
0 commit comments