@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"),d=require("@aplus-frontend/antdv"),_=require("@aplus-frontend/utils"),r=require("dayjs"),v=require("lodash-unified");require("../../hooks/index.js");const F=require("../hooks/use-date-timezone.js"),A=require("../hooks/use-default-placeholder.js"),i=require("./constant.js"),M=require("./helper.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,Object],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 t=h,k=B,{value:p,updateValue:y}=R.useControllableValue(t,k),g=A.useDefaultPlaceholder("Date",t),{currentTimezone:u}=F.useDateTimezone(t),l=e.computed(()=>i.ApFieldDatePresetFormats.indexOf(t.format)>-1),w=e.computed(()=>t.shownFormat?t.shownFormat:l.value?i.PRESET_FORMAT_MAP[t.format]:t.format),s=e.computed(()=>l.value?i.PRESET_FORMAT_MAP[t.format]:t.format),f=e.computed(()=>{if(v.isNil(e.unref(p)))return;let o=r(e.unref(p));return t.timezone&&(o=r(_.getTimeFormatToZone(e.unref(p),u.value))),o}),C=e.computed(()=>e.unref(l)?t.picker??i.PRESET_FORMAT_PICK_MAP[t.format]:t.picker),P=e.computed(()=>{const o=e.unref(l)?i.PRESET_FORMAT_TIME_MAP[t.format]:{};return{...v.omit(t,["value","defaultValue","onChange","onOk","format","onUpdate:value","mode"]),placeholder:e.unref(g),...o}}),m=(o,n,a=!0)=>M.formatDayWithTimezone(u.value)(o,n,a);function b(o){if(v.isNil(o)){y(null);return}const n=r(o);y(m(n,e.unref(l)?e.unref(s):void 0,t.formatBegins))}function T(o,n){const a=r(o),c=o?m(a,e.unref(l)?e.unref(s):void 0,t.formatBegins):null;t.onChange?.(c,n)}function S(o){const n=r(o),a=o?m(n,e.unref(l)?e.unref(s):void 0,t.formatBegins):null;t.onOk?.(a)}return(o,n)=>o.mode==="read"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(f.value?e.unref(r)(f.value).format(s.value):o.emptyText),1)],64)):(e.openBlock(),e.createBlock(e.unref(d.InputGroup),{key:1,compact:"",style:e.normalizeStyle({display:Array.isArray(t.timezone)&&t.timezone.length?"flex":"block"})},{default:e.withCtx(()=>[e.createVNode(e.unref(d.FormItemRest),null,{default:e.withCtx(()=>[Array.isArray(t.timezone)&&t.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:o.disabled},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.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":b,onChange:T,onOk:S}),e.createSlots({_:2},[e.renderList(o.$slots,(a,c)=>({name:c,fn:e.withCtx(O=>[e.renderSlot(o.$slots,c,e.normalizeProps(e.guardReactiveProps(O||{})))])}))]),1040,["value","format","picker"])]),_:3},8,["style"]))}});exports.default=D;