import { computed, defineComponent, onMounted } from 'vue'; import { DefaultComponentProps } from '../_default'; import InputWrapper from './_input'; import BCMSIcon from '../icon'; import { BCMSPropType } from '@becomes/cms-sdk/types'; const component = defineComponent({ props: { ...DefaultComponentProps, value: { type: Number, required: true, }, label: { type: String, default: '', }, invalidText: { type: String, default: '', }, disabled: { type: Boolean, default: false, }, includeTime: { type: Boolean, default: false, }, helperText: { type: String, default: '', }, propPath: String, }, emits: { input: (_value: number) => { return true; }, enter: () => { return true; }, }, setup(props, ctx) { const dateAsString = computed(() => { return props.value ? toDate(props.value) : toDate(Date.now()); }); function toDate(millis: number): string { const date = new Date(millis); return `${date.getFullYear()}-${ date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 }-${date.getDate() < 10 ? '0' + date.getDate() : date.getDate()}`; } function handlerInput(event: Event) { const element = event.target as HTMLInputElement; const value = !element.valueAsNumber ? 0 : element.valueAsNumber; ctx.emit('input', value); if ((event as KeyboardEvent).key === 'Enter') { ctx.emit('enter'); } } onMounted(() => { if (!props.value) { ctx.emit('input', Date.now()); } }); return () => (
{/*
*/}
{ handlerInput(event); }} onKeyup={(event) => { handlerInput(event); }} />
{props.includeTime ? (
) : ( '' )}
); }, }); export default component;