UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 6.11 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),V=require("@ant-design/icons-vue"),g=require("@aplus-frontend/antdv"),k=require("@aplus-frontend/utils"),i=require("dayjs"),r=require("lodash-unified");require("../../hooks/index.js");const q=require("../../utils/index.js"),m=require("../date/constant.js"),E=require("../date/helper.js"),z=require("../hooks/use-date-timezone.js"),I=require("../hooks/use-default-placeholder.js"),U=require("../hooks/use-default-presets.js"),j=require("../../hooks/useControllableValue.js"),H=e.defineComponent({name:"ApFieldDateRange",__name:"index",props:{mode:{default:"edit"},class:{},style:{},id:{},defaultPickerValue:{},placeholder:{},disabled:{type:[Boolean,Array],default:void 0},disabledTime:{},ranges:{},separator:{type:[Object,String,Number,Boolean,null,Array],default:void 0},allowEmpty:{},onCalendarChange:{},onFocus:{},onBlur:{},onMousedown:{},onMouseup:{},onMouseenter:{},onMouseleave:{},onClick:{},direction:{},autocomplete:{},activePickerIndex:{},dateRender:{},panelRender:{},dropdownClassName:{},dropdownAlign:{},popupStyle:{},transitionName:{},allowClear:{type:Boolean,default:!0},autofocus:{type:Boolean,default:void 0},tabindex:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},inputReadOnly:{type:Boolean,default:void 0},suffixIcon:{type:[Object,String,Number,Boolean,null,Array],default:void 0},clearIcon:{type:[Object,String,Number,Boolean,null,Array],default:void 0},getPopupContainer:{},inputRender:{},onOpenChange:{},onContextmenu:{},onKeydown:{},role:{},name:{},picker:{},prefixCls:{},disabledDate:{},showWeek:{type:Boolean},monthCellRender:{},locale:{},size:{},bordered:{type:Boolean,default:void 0},variant:{},showTime:{type:[Boolean,Object],default:void 0},showNow:{type:Boolean,default:void 0},order:{type:Boolean,default:void 0},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:{},timezone:{},readModeSeparator:{},presets:{type:[Array,Boolean]}},emits:["update:value"],setup(S,{emit:B}){const t=S,C=B,T=e.useSlots(),s=e.computed(()=>m.ApFieldDatePresetFormats.indexOf(t.format)>-1),f=e.computed(()=>s.value?m.PRESET_FORMAT_MAP[t.format]:t.format),{value:p,updateValue:h}=j.useControllableValue(t,C),D=e.computed(()=>t.shownFormat?t.shownFormat:s.value?m.PRESET_FORMAT_MAP[t.format]:t.format),P=I.useDefaultPlaceholder("DateRange",t),{currentTimezone:u}=z.useDateTimezone(t),{presets:O,changeCurrentDate:w}=U.useDefaultPresets({...t,timezone:u}),d=(n,a,o=!0)=>E.formatDayWithTimezone(u.value)(n,a,o),y=e.computed(()=>{const n=e.unref(p);if(r.isNil(n)||!n?.length)return n;const a=u.value?k.getTimeFormatToZone(e.unref(p)[0],u.value):e.unref(p)?.[0],o=t.timezone?k.getTimeFormatToZone(e.unref(p)[1],u.value):e.unref(p)?.[1];return[i(a),i(o)]}),F=e.computed(()=>e.unref(s)?t.picker??m.PRESET_FORMAT_PICK_MAP[t.format]:t.picker),M=e.computed(()=>{const n=e.unref(s)?m.PRESET_FORMAT_TIME_MAP[t.format]:{};return{...q.omitUndefined(r.omit(t,["value","onUpdate:value","onChange","onOk","format","mode","presets"])),placeholder:e.unref(P),presets:e.unref(O),...n}});function b(n){if(!n){h(n);return}let a=r.isString(n[0])?i(n[0]):n[0],o=r.isString(n[1])?i(n[1]):n[1];const l=e.unref(s)?e.unref(f):void 0;h([d(a,l),d(o,l,!1)])}function A(n){const a=r.isString(n[0])?i(n[0]):n[0],o=r.isString(n[1])?i(n[1]):n[1],l=e.unref(s)?e.unref(f):void 0,c=n[0]?d(a,l):null,v=n[1]?d(o,l,!1):null;t.onOk?.([c,v])}function R(n){n&&w(),t.onOpenChange?.(n)}function _(n,a){if(r.isNil(n)){t.onChange?.(n,a);return}const o=r.isString(n[0])?i(n[0]):n[0],l=r.isString(n[1])?i(n[1]):n[1],c=e.unref(s)?e.unref(f):void 0,v=n[0]?d(o,c):null,x=n[1]?d(l,c,!1):null;t.onChange?.([v,x],a)}const N=e.computed(()=>{const n=t.readModeSeparator;if(n)return e.isVNode(n)||r.isFunction(n)?t.readModeSeparator:e.createVNode(e.Fragment,null,[t.readModeSeparator]);const a=T.readModeSeparator?.();return a?e.createVNode(e.Fragment,null,[a]):V.SwapRightOutlined});return(n,a)=>n.mode==="read"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[y.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(y.value[0]?.format(f.value))+" ",1),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(N.value))),e.createTextVNode(" "+e.toDisplayString(y.value[1]?.format(f.value)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(n.emptyText),1)],64))],64)):(e.openBlock(),e.createBlock(e.unref(g.InputGroup),{key:1,compact:"",style:e.normalizeStyle({display:Array.isArray(t.timezone)&&t.timezone.length?"flex":"block"})},{default:e.withCtx(()=>[Array.isArray(t.timezone)&&t.timezone.length?(e.openBlock(),e.createBlock(e.unref(g.Select),{key:0,value:e.unref(u),"onUpdate:value":a[0]||(a[0]=o=>e.isRef(u)?u.value=o:null),"default-active-first-option":"","dropdown-match-select-width":!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.timezone,o=>(e.openBlock(),e.createBlock(e.unref(g.SelectOption),{key:o?.value,value:o?.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o?.label??o?.value),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])):e.createCommentVNode("",!0),e.createVNode(e.unref(g.DatePicker).RangePicker,e.mergeProps(M.value,{value:y.value,picker:F.value,format:D.value,"onUpdate:value":b,onChange:_,onOk:A,onOpenChange:R}),e.createSlots({_:2},[e.renderList(e.unref(r.omit)(n.$slots,"readModeSeparator"),(o,l)=>({name:l,fn:e.withCtx(c=>[e.renderSlot(n.$slots,l,e.normalizeProps(e.guardReactiveProps(c||{})))])}))]),1040,["value","picker","format"])]),_:3},8,["style"]))}});exports.default=H;