@aplus-frontend/ui
Version:
2 lines (1 loc) • 4.88 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("dayjs"),d=require("@aplus-frontend/antdv"),i=require("./constant.js");require("../../hooks/index.js");const v=require("lodash-unified"),F=require("./helper.js"),O=require("@aplus-frontend/utils"),A=require("../hooks/use-default-placeholder.js"),M=require("../hooks/use-date-timezone.js"),R=require("../../hooks/useControllableValue.js"),D=e.defineComponent({name:"ApFieldDate",__name:"index",props:{mode:{default:"edit"},class:{},style:{},dropdownClassName:{},dropdownAlign:{},popupStyle:{},transitionName:{},placeholder:{},allowClear:{type:Boolean,default:!0},autofocus:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},tabindex:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},inputReadOnly:{type:Boolean,default:void 0},id:{},presets:{},suffixIcon:{type:[Object,String,Number,Boolean,null,Array],default:void 0},clearIcon:{type:[Object,String,Number,Boolean,null,Array],default:void 0},getPopupContainer:{},panelRender:{},inputRender:{},onOpenChange:{},onPanelChange:{},onFocus:{},onBlur:{},onMousedown:{},onMouseup:{},onMouseenter:{},onMouseleave:{},onClick:{},onContextmenu:{},onKeydown:{},role:{},name:{},autocomplete:{},direction:{},showToday:{type:Boolean,default:void 0},showTime:{type:Boolean,default:void 0},picker:{},prefixCls:{},defaultPickerValue:{},disabledDate:{},showWeek:{type:Boolean},dateRender:{},monthCellRender:{},renderExtraFooter:{},onSelect:{},locale:{},size:{},bordered:{type:Boolean,default:void 0},variant:{},showNow:{type:Boolean,default:void 0},disabledTime:{},defaultOpenValue:{},showHour:{type:Boolean,default:void 0},showMinute:{type:Boolean,default:void 0},showSecond:{type:Boolean,default:void 0},use12Hours:{type:Boolean,default:void 0},hourStep:{},minuteStep:{},secondStep:{},hideDisabledOptions:{type:Boolean,default:void 0},disabledHours:{},disabledMinutes:{},disabledSeconds:{},valueFormat:{},emptyText:{default:"--"},value:{},defaultValue:{},"onUpdate:value":{},onChange:{},onOk:{},format:{default:"Y-D"},shownFormat:{},formatBegins:{type:Boolean,default:!0},timezone:{}},emits:["update:value"],setup(h,{emit:B}){const o=h,k=B,{value:p,updateValue:y}=R.useControllableValue(o,k),g=A.useDefaultPlaceholder("Date",o),{currentTimezone:u}=M.useDateTimezone(o),l=e.computed(()=>i.ApFieldDatePresetFormats.indexOf(o.format)>-1),w=e.computed(()=>o.shownFormat?o.shownFormat:l.value?i.PRESET_FORMAT_MAP[o.format]:o.format),s=e.computed(()=>l.value?i.PRESET_FORMAT_MAP[o.format]:o.format),f=e.computed(()=>{if(v.isNil(e.unref(p)))return;let t=r(e.unref(p));return o.timezone&&(t=r(O.getTimeFormatToZone(e.unref(p),u.value))),t}),C=e.computed(()=>e.unref(l)?o.picker??i.PRESET_FORMAT_PICK_MAP[o.format]:o.picker),P=e.computed(()=>{const t=e.unref(l)?i.PRESET_FORMAT_TIME_MAP[o.format]:{};return{...v.omit(o,["value","defaultValue","onChange","onOk","format","onUpdate:value","mode"]),placeholder:e.unref(g),...t}}),m=(t,n,a=!0)=>F.formatDayWithTimezone(u.value)(t,n,a);function T(t){if(v.isNil(t)){y(null);return}const n=r(t);y(m(n,e.unref(l)?e.unref(s):void 0,o.formatBegins))}function b(t,n){const a=r(t),c=t?m(a,e.unref(l)?e.unref(s):void 0,o.formatBegins):null;o.onChange?.(c,n)}function S(t){const n=r(t),a=t?m(n,e.unref(l)?e.unref(s):void 0,o.formatBegins):null;o.onOk?.(a)}return(t,n)=>t.mode==="read"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(f.value?e.unref(r)(f.value).format(s.value):t.emptyText),1)],64)):(e.openBlock(),e.createBlock(e.unref(d.InputGroup),{key:1,compact:"",style:e.normalizeStyle({display:Array.isArray(o.timezone)&&o.timezone.length?"flex":"block"})},{default:e.withCtx(()=>[e.createVNode(e.unref(d.FormItemRest),null,{default:e.withCtx(()=>[Array.isArray(o.timezone)&&o.timezone.length?(e.openBlock(),e.createBlock(e.unref(d.Select),{key:0,value:e.unref(u),"onUpdate:value":n[0]||(n[0]=a=>e.isRef(u)?u.value=a:null),"default-active-first-option":"","dropdown-match-select-width":!1,style:{"max-width":"50%"},disabled:t.disabled},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.timezone,a=>(e.openBlock(),e.createBlock(e.unref(d.SelectOption),{key:a?.value,value:a?.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a?.label??a?.value),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","disabled"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(e.unref(d.DatePicker),e.mergeProps(P.value,{value:f.value,format:w.value,picker:C.value,"onUpdate:value":T,onChange:b,onOk:S}),e.createSlots({_:2},[e.renderList(t.$slots,(a,c)=>({name:c,fn:e.withCtx(_=>[e.renderSlot(t.$slots,c,e.normalizeProps(e.guardReactiveProps(_||{})))])}))]),1040,["value","format","picker"])]),_:3},8,["style"]))}});exports.default=D;