{"version":3,"file":"range-model-value-guard.mjs","sources":["../../../../../../src/components/va-date-input/hooks/range-model-value-guard.ts"],"sourcesContent":["import { computed, Ref, ref, watch } from 'vue'\n\nimport { isRange } from './model-value-parser'\nimport { DateInputModelValue } from '../types'\n\n/**\n * This guard is used to prevent updating modelValue if range end is not specified.\n * This guard provides reset method, that allow us to reset VaDateInput value if dropdown is closed.\n */\nexport const useRangeModelValueGuard = (\n  modelValue: Ref<DateInputModelValue>,\n  disabled: Ref<boolean>,\n) => {\n  const bufferValue = ref<DateInputModelValue>(modelValue.value)\n\n  const valueComputed = computed<DateInputModelValue>({\n    get: () => bufferValue.value,\n    set: (value) => {\n      if (disabled.value) {\n        modelValue.value = value\n      }\n\n      if (!value) {\n        modelValue.value = value\n        return\n      }\n\n      if (isRange(value)) {\n        if (value.end !== null) {\n          modelValue.value = value\n        }\n      } else {\n        modelValue.value = value\n      }\n\n      bufferValue.value = value\n    },\n  })\n\n  watch(modelValue, (newValue) => {\n    bufferValue.value = newValue\n  })\n\n  const reset = () => {\n    if (bufferValue.value && isRange(bufferValue.value)) {\n      bufferValue.value = modelValue.value\n    }\n  }\n\n  return {\n    valueComputed,\n    reset,\n  }\n}\n"],"names":[],"mappings":";;AASa,MAAA,0BAA0B,CACrC,YACA,aACG;AACG,QAAA,cAAc,IAAyB,WAAW,KAAK;AAE7D,QAAM,gBAAgB,SAA8B;AAAA,IAClD,KAAK,MAAM,YAAY;AAAA,IACvB,KAAK,CAAC,UAAU;AACd,UAAI,SAAS,OAAO;AAClB,mBAAW,QAAQ;AAAA,MACrB;AAEA,UAAI,CAAC,OAAO;AACV,mBAAW,QAAQ;AACnB;AAAA,MACF;AAEI,UAAA,QAAQ,KAAK,GAAG;AACd,YAAA,MAAM,QAAQ,MAAM;AACtB,qBAAW,QAAQ;AAAA,QACrB;AAAA,MAAA,OACK;AACL,mBAAW,QAAQ;AAAA,MACrB;AAEA,kBAAY,QAAQ;AAAA,IACtB;AAAA,EAAA,CACD;AAEK,QAAA,YAAY,CAAC,aAAa;AAC9B,gBAAY,QAAQ;AAAA,EAAA,CACrB;AAED,QAAM,QAAQ,MAAM;AAClB,QAAI,YAAY,SAAS,QAAQ,YAAY,KAAK,GAAG;AACnD,kBAAY,QAAQ,WAAW;AAAA,IACjC;AAAA,EAAA;AAGK,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}