import { defineComponent, ref, computed, PropType, toRef, reactive, watch } from 'vue' import { IOperators, ISize } from 'model' import { useI18n } from '@/boot/i18n' import { useQuasar } from 'quasar' import { CMySlider } from '@src/components/CMySlider' import { shared_consts } from '@/common/shared_vuejs' export default defineComponent({ name: 'CMySize', emits: ['update:modelValue'], components: { CMySlider }, props: { modelValue: { type: Object as PropType, required: true, default: () => ({ width: '', height: '', }), }, label: { type: String, required: true, }, disable: { type: Boolean, required: false, default: false, }, }, setup(props, { emit }) { const $q = useQuasar() const { t } = useI18n() const internalModel = reactive({ ...props.modelValue }) function modifValueWidth(value: any) { emit('update:modelValue', { ...internalModel, width: value }); } function modifValueHeight(value: any) { emit('update:modelValue', { ...internalModel, height: value }); } // Sincronizzare i cambiamenti esterni con internalModel quando props cambiano watch(() => props.modelValue, (newModel: any) => { Object.assign(internalModel, newModel); }, { immediate: true }); return { t, shared_consts, modifValueWidth, modifValueHeight, internalModel, } } })