{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/date-picker/index.ts"],"sourcesContent":["import { connect, mapProps, mapReadPretty } from '@formily/vue'\nimport { ElDatePicker } from 'element-plus'\nimport { PreviewText } from '../preview-text'\nimport { transformComponent2 } from '../__builtins__/shared'\nimport { getDefaultFormat } from './util'\nimport type { DatePickerProps } from './util'\n\n/**\n * 为什么不通过 transformComponent方法 转换 'update:modelValue' => change ？\n * 1. 现象: 使用组件时change回调会被执行2次\n * 2. 根本原因: update:modelValue转change后，\n *    选择时间后ElDatePicker先触发了‘update:modelValue’事件一次[这时change会执行一次]，\n *    然后时间选择器弹窗打开/关闭时(如果所选的时间不同的话)又触发了‘change’事件一次[这时change又会执行一次]\n *    所以会出现change回调被执行2次的现象\n * 3. 解决方法: 把 ElDatePicker组件包一下，且手动处理 'onUpdate:modelValue' 更新field字段值，触发更新即可\n */\nconst TransformElDatePicker = transformComponent2<DatePickerProps>(ElDatePicker)\n\nexport const DatePicker = connect(\n  TransformElDatePicker,\n  mapProps(\n    {\n      value: 'modelValue',\n      readOnly: 'readonly',\n    },\n    (props) => {\n      return {\n        ...props,\n        format: props.format || getDefaultFormat(props),\n        valueFormat:\n          props.valueFormat || getDefaultFormat(props, 'valueFormat'),\n      }\n    }\n  ),\n  mapReadPretty(PreviewText.DatePicker)\n)\n\nexport default DatePicker\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,qBAAA,GAAwB,oBAAqC,YAAY,CAAA,CAAA;AAExE,MAAM,UAAa,GAAA,OAAA;AAAA,EACxB,qBAAA;AAAA,EACA,QAAA;AAAA,IACE;AAAA,MACE,KAAO,EAAA,YAAA;AAAA,MACP,QAAU,EAAA,UAAA;AAAA,KACZ;AAAA,IACA,CAAC,KAAU,KAAA;AACT,MAAO,OAAA;AAAA,QACL,GAAG,KAAA;AAAA,QACH,MAAQ,EAAA,KAAA,CAAM,MAAU,IAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,QAC9C,WACE,EAAA,KAAA,CAAM,WAAe,IAAA,gBAAA,CAAiB,OAAO,aAAa,CAAA;AAAA,OAC9D,CAAA;AAAA,KACF;AAAA,GACF;AAAA,EACA,aAAA,CAAc,YAAY,UAAU,CAAA;AACtC;;;;"}