vxe-pc-ui 4.15.2 → 4.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +774 -211
- package/es/backtop/src/backtop.js +2 -1
- package/es/button/src/button.js +3 -2
- package/es/calendar/src/calendar.js +2 -1
- package/es/cascader/src/cascader.js +2 -1
- package/es/checkbox/src/group.js +5 -1
- package/es/date-panel/src/util.js +27 -16
- package/es/date-picker/src/date-picker.js +572 -74
- package/es/date-range-picker/src/date-range-picker.js +3 -2
- package/es/drawer/src/drawer.js +2 -0
- package/es/form/render/index.js +3 -2
- package/es/form/src/form.js +6 -5
- package/es/form/src/itemInfo.js +6 -5
- package/es/input/src/input.js +2 -1
- package/es/menu/src/menu.js +2 -1
- package/es/modal/src/modal.js +5 -2
- package/es/pager/src/pager.js +4 -3
- package/es/radio/src/group.js +5 -1
- package/es/select/src/select.js +25 -20
- package/es/splitter/src/splitter.js +7 -6
- package/es/table-select/src/table-select.js +21 -16
- package/es/tabs/src/tabs.js +4 -3
- package/es/textarea/src/textarea.js +2 -1
- package/es/tree/src/tree.js +3 -2
- package/es/tree-select/src/tree-select.js +2 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +7 -1
- package/es/upload/src/upload.js +12 -3
- package/lib/backtop/src/backtop.js +5 -2
- package/lib/backtop/src/backtop.min.js +1 -1
- package/lib/button/src/button.js +4 -1
- package/lib/button/src/button.min.js +1 -1
- package/lib/calendar/src/calendar.js +4 -1
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/cascader/src/cascader.js +4 -1
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/checkbox/src/group.js +5 -1
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/date-panel/src/util.js +37 -19
- package/lib/date-panel/src/util.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +620 -77
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +4 -1
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/drawer/src/drawer.js +2 -0
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/render/index.js +4 -1
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form.js +8 -4
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/itemInfo.js +7 -4
- package/lib/form/src/itemInfo.min.js +1 -1
- package/lib/index.umd.js +847 -177
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +6 -3
- package/lib/input/src/input.min.js +1 -1
- package/lib/menu/src/menu.js +4 -1
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +8 -2
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/pager/src/pager.js +6 -2
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/radio/src/group.js +5 -1
- package/lib/radio/src/group.min.js +1 -1
- package/lib/select/src/select.js +27 -20
- package/lib/select/src/select.min.js +1 -1
- package/lib/splitter/src/splitter.js +12 -8
- package/lib/splitter/src/splitter.min.js +1 -1
- package/lib/table-select/src/table-select.js +22 -15
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tabs/src/tabs.js +7 -3
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/textarea/src/textarea.js +4 -1
- package/lib/textarea/src/textarea.min.js +1 -1
- package/lib/tree/src/tree.js +7 -4
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +7 -3
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +8 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +20 -3
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +1 -1
- package/packages/backtop/src/backtop.ts +3 -1
- package/packages/button/src/button.ts +4 -2
- package/packages/calendar/src/calendar.ts +3 -1
- package/packages/cascader/src/cascader.ts +3 -1
- package/packages/checkbox/src/group.ts +6 -2
- package/packages/date-panel/src/util.ts +28 -16
- package/packages/date-picker/src/date-picker.ts +583 -75
- package/packages/date-range-picker/src/date-range-picker.ts +4 -2
- package/packages/drawer/src/drawer.ts +2 -0
- package/packages/form/render/index.ts +4 -2
- package/packages/form/src/form.ts +7 -5
- package/packages/form/src/itemInfo.ts +7 -5
- package/packages/input/src/input.ts +3 -1
- package/packages/menu/src/menu.ts +3 -1
- package/packages/modal/src/modal.ts +6 -2
- package/packages/pager/src/pager.ts +5 -3
- package/packages/radio/src/group.ts +6 -2
- package/packages/select/src/select.ts +29 -22
- package/packages/splitter/src/splitter.ts +8 -6
- package/packages/table-select/src/table-select.ts +24 -17
- package/packages/tabs/src/tabs.ts +5 -3
- package/packages/textarea/src/textarea.ts +3 -1
- package/packages/tree/src/tree.ts +4 -2
- package/packages/tree-select/src/tree-select.ts +3 -1
- package/packages/ui/src/log.ts +7 -0
- package/packages/upload/src/upload.ts +14 -3
- package/types/components/date-picker.d.ts +14 -6
- package/types/components/drawer.d.ts +2 -0
- package/types/components/modal.d.ts +2 -0
- package/types/components/upload.d.ts +28 -1
- /package/es/icon/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
- /package/es/icon/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
- /package/es/icon/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
- /package/es/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
- /package/es/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
- /package/es/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
- /package/lib/icon/style/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
- /package/lib/{iconfont.1781753592499.ttf → iconfont.1781852740683.ttf} +0 -0
- /package/lib/{iconfont.1781753592499.woff → iconfont.1781852740683.woff} +0 -0
- /package/lib/{iconfont.1781753592499.woff2 → iconfont.1781852740683.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_log=require("../../ui/src/log"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_button=_interopRequireDefault(require("../../button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{targetEl:null}}function createReactData(){return{showBtn:!1,backtopZindex:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeBacktop",props:{target:String,size:{type:String,default:()=>(0,_ui.getConfig)().backtop.size||(0,_ui.getConfig)().size},circle:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.circle},right:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.right},bottom:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.bottom},status:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.status},icon:{type:String,default:()=>(0,_ui.getConfig)().backtop.icon},showIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showIcon},content:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.content},showContent:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showContent},showTop:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showTop},showBottom:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showBottom},shadow:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.shadow},zIndex:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.zIndex},threshold:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.threshold},position:{type:String,default:()=>(0,_ui.getConfig)().backtop.position}},emits:["click"],setup(
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_log=require("../../ui/src/log"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_button=_interopRequireDefault(require("../../button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("backtop").errLog;function createInternalData(){return{targetEl:null}}function createReactData(){return{showBtn:!1,backtopZindex:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeBacktop",props:{target:String,size:{type:String,default:()=>(0,_ui.getConfig)().backtop.size||(0,_ui.getConfig)().size},circle:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.circle},right:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.right},bottom:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.bottom},status:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.status},icon:{type:String,default:()=>(0,_ui.getConfig)().backtop.icon},showIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showIcon},content:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.content},showContent:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showContent},showTop:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showTop},showBottom:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.showBottom},shadow:{type:Boolean,default:()=>(0,_ui.getConfig)().backtop.shadow},zIndex:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.zIndex},threshold:{type:[String,Number],default:()=>(0,_ui.getConfig)().backtop.threshold},position:{type:String,default:()=>(0,_ui.getConfig)().backtop.position}},emits:["click"],setup(b,e){let{slots:v,emit:r}=e;var t=_xeUtils.default.uniqueId();let m=(0,_vue.ref)(),h=(0,_ui.useSize)(b).computeSize,o=createInternalData(),x=(0,_vue.reactive)(createReactData()),a={refElem:m},k=(0,_vue.computed)(()=>{var{right:e,bottom:t}=b,o=x.backtopZindex,r={};return e&&(r.right=(0,_dom.toCssUnit)(e)),t&&(r.bottom=(0,_dom.toCssUnit)(t)),o&&(r.zIndex=o),r}),i={},w={xID:t,props:b,context:e,internalData:o,reactData:x,getRefMaps:()=>a,getComputeMaps:()=>i},n=(e,t,o)=>{r(e,(0,_ui.createEvent)(o,{$backtop:w},t))},u=()=>{var{position:e,zIndex:t}=b,o=x.backtopZindex;t?x.backtopZindex=_xeUtils.default.toNumber(t):"fixed"===e&&o<(0,_utils.getLastZIndex)()&&(x.backtopZindex=(0,_utils.nextZIndex)())},s=()=>{u(),x.showBtn=!0},l=()=>{x.showBtn=!1},c=e=>{var t=b.threshold;(e.currentTarget.scrollTop>Math.max(1,_xeUtils.default.toNumber(t))?s:l)()},p=()=>{var e,t=o.targetEl;t&&0<(e=t.scrollTop)&&(requestAnimationFrame(p),e=e-Math.max(12,e/6),t.scrollTop=10<e?e:0)},g=()=>{var e=o.targetEl;e&&e.removeEventListener("scroll",c)},d=()=>{(0,_vue.nextTick)(()=>{var e,t=b.target;t?_xeUtils.default.isString(t)&&(t=((e=document.querySelector(t))||errLog("vxe.error.errProp",["target="+t,"body"]),o).targetEl,t!==e)&&(g(),o.targetEl=e,t=o.targetEl)&&t.addEventListener("scroll",c,{passive:!0}):(g(),errLog("vxe.error.reqProp",["target"]))})},C=e=>{p(),n("click",{},e)};t={dispatchEvent:n};Object.assign(w,t,{});return(0,_vue.watch)(()=>b.position,()=>{u()}),(0,_vue.watch)(()=>b.target,()=>{d()}),(0,_vue.onMounted)(()=>{var e=b.showTop;e&&u(),d()}),(0,_vue.onBeforeUnmount)(()=>{g(),_xeUtils.default.assign(x,createReactData()),_xeUtils.default.assign(o,createInternalData())}),w.renderVN=()=>{var{circle:e,position:t,status:o,icon:r,showIcon:a,content:i,showContent:n,showTop:u,showBottom:s,shadow:l}=b,c=x.showBtn,p=k.value,g=h.value,d=v.default,_=v.top,f=v.bottom;return(0,_vue.h)("div",{ref:m,class:["vxe-backtop","fixed"===t?"is--"+t:"is--absolute",{["size--"+g]:g,"is--visible":c}],style:p},[u&&_?(0,_vue.h)("div",{class:"vxe-backtop--top-wrapper"},_({})):(0,_ui.renderEmptyElement)(w),(0,_vue.h)("div",{class:"vxe-backtop--content-wrapper",onClick:C},[d?d({}):[(0,_vue.h)(_button.default,{circle:e,status:o,shadow:l,icon:a?r||(0,_ui.getIcon)().BACKTOP_TOP:"",content:n?i:""})]]),s&&f?(0,_vue.h)("div",{class:"vxe-backtop--bottom-wrapper"},f({})):(0,_ui.renderEmptyElement)(w)])},w},render(){return this.renderVN()}});
|
package/lib/button/src/button.js
CHANGED
|
@@ -14,6 +14,9 @@ var _vn = require("../../ui/src/vn");
|
|
|
14
14
|
var _log = require("../../ui/src/log");
|
|
15
15
|
var _tooltip = _interopRequireDefault(require("../../tooltip"));
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
const {
|
|
18
|
+
warnLog
|
|
19
|
+
} = (0, _log.createComponentLog)('button');
|
|
17
20
|
const VxeButtonComponent = (0, _comp.defineVxeComponent)({
|
|
18
21
|
name: 'VxeButton',
|
|
19
22
|
props: {
|
|
@@ -808,7 +811,7 @@ const VxeButtonComponent = (0, _comp.defineVxeComponent)({
|
|
|
808
811
|
$xeButton.renderVN = renderVN;
|
|
809
812
|
(0, _vue.onMounted)(() => {
|
|
810
813
|
if (props.type === 'text') {
|
|
811
|
-
|
|
814
|
+
warnLog('vxe.error.delProp', ['type=text', 'mode=text']);
|
|
812
815
|
}
|
|
813
816
|
_ui.globalEvents.on($xeButton, 'mousewheel', handleGlobalMousewheelEvent);
|
|
814
817
|
_ui.globalEvents.on($xeButton, 'mousedown', handleGlobalMousedownEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_tooltip=_interopRequireDefault(require("../../tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let VxeButtonComponent=(0,_comp.defineVxeComponent)({name:"VxeButton",props:{type:String,mode:String,className:[String,Function],popupClassName:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().button.size||(0,_ui.getConfig)().size},zIndex:Number,name:[String,Number],routerLink:Object,permissionCode:[String,Number],content:String,placement:String,status:String,title:String,shadow:Boolean,icon:String,iconRender:Object,prefixIcon:String,prefixRender:Object,suffixIcon:String,suffixRender:Object,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,trigger:{type:String,default:()=>(0,_ui.getConfig)().button.trigger},align:String,prefixTooltip:Object,suffixTooltip:Object,options:Array,showDropdownIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().button.showDropdownIcon},destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().button.destroyOnClose},popupConfig:Object,transfer:{type:Boolean,default:null}},emits:["click","mouseenter","mouseleave","dropdown-click","dropdownClick","contextmenu"],setup(N,e){let{slots:P,emit:i}=e,n=(0,_vue.inject)("$xeModal",null),o=(0,_vue.inject)("$xeDrawer",null),u=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeTree",null),a=(0,_vue.inject)("$xeForm",null),s=(0,_vue.inject)("$xeButtonGroup",null);var t=_xeUtils.default.uniqueId();let I=(0,_ui.useSize)(N).computeSize,B=(0,_ui.usePermission)(N).computePermissionInfo,S=(0,_vue.reactive)({initialized:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),r={showTime:void 0,tooltipTimeout:void 0},j=(0,_vue.ref)(),z=(0,_vue.ref)(),U=(0,_vue.ref)(),v={refElem:j},$={xID:t,props:N,context:e,reactData:S,internalData:r,getRefMaps:()=>v};let V=(0,_vue.computed)(()=>{var e=N.transfer,t=M.value;if(_xeUtils.default.isBoolean(t.transfer))return t.transfer;if(null===e){t=(0,_ui.getConfig)().button.transfer;if(_xeUtils.default.isBoolean(t))return t;if(u||l||n||o||a)return!0}return e}),E=(0,_vue.computed)(()=>{var e=N.disabled,t=B.value;return e||t.disabled}),D=(0,_vue.computed)(()=>{var e=N.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),Z=(0,_vue.computed)(()=>{var{type:e,mode:t}=N;return"text"===t||"text"===e||s&&"text"===s.props.mode?"text":"button"}),J=(0,_vue.computed)(()=>{var e=N.status;return e||(s?s.props.status:"")}),K=(0,_vue.computed)(()=>{var e=N.align;return e||!!s&&s.props.align}),Q=(0,_vue.computed)(()=>{var e=N.round;return e||!!s&&s.props.round}),X=(0,_vue.computed)(()=>{var e=N.circle;return e||!!s&&s.props.circle}),ee=(0,_vue.computed)(()=>{var e=N.options;return e?e.filter(e=>{e=e.permissionCode;return!e||_ui.permission.checkVisible(e)}):[]}),M=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.popupConfig,N.popupConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.prefixTooltip,N.prefixTooltip)),b=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.suffixTooltip,N.suffixTooltip)),p=()=>{var e=M.value.zIndex||N.zIndex;e?S.panelIndex=_xeUtils.default.toNumber(e):S.panelIndex<(0,_utils.getLastZIndex)()&&(S.panelIndex=(0,_utils.nextZIndex)())},d=()=>{let n=N.placement,i=S.panelIndex,o=z.value,u=U.value,l=V.value,a=M.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(o,u,{placement:a.placement||n,defaultPlacement:a.defaultPlacement,teleportTo:l}),t=Object.assign(e.style,{zIndex:i});S.panelStyle=t,S.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},q=e=>{s&&s.handleClick({name:N.name},e),W("click",{$event:e},e)},te=e=>{0===e.button&&e.stopPropagation()},ne=e=>{var t=e.currentTarget;let n=U.value;var{flag:t,targetElem:i}=(0,_dom.getEventTargetNode)(e,t,"vxe-button");t&&(n&&(n.dataset.active="N"),S.visiblePanel=!1,setTimeout(()=>{n&&"Y"===n.dataset.active||(S.isAniVisible=!1)},350),W("dropdown-click",{name:i.getAttribute("name"),option:null},e))},A=()=>{let e=U.value;e&&(e.dataset.active="Y",S.isAniVisible=!0,setTimeout(()=>{"Y"===e.dataset.active&&(S.visiblePanel=!0,p(),d(),setTimeout(()=>{S.visiblePanel&&d()},50))},20))},ie=e=>{var t=N.loading;E.value||t||(c(),R(e))},oe=e=>{H(),F(e)},R=e=>{W("mouseenter",{},e)},F=e=>{W("mouseleave",{},e)},L=e=>{W("contextmenu",{},e)},Y=e=>{var{loading:t,trigger:n}=N;E.value||t||("click"===n&&(S.visiblePanel?H:c)(),q(e))},c=()=>{var e=N.trigger;let t=U.value;return t&&(t.dataset.active="Y",S.initialized||(S.initialized=!0),r.showTime=setTimeout(()=>{"Y"===t.dataset.active?A():S.isAniVisible=!1},"click"===e?50:250)),(0,_vue.nextTick)()},H=()=>{let e=U.value;return clearTimeout(r.showTime),e?(e.dataset.active="N",setTimeout(()=>{"Y"!==e.dataset.active&&(S.visiblePanel=!1,setTimeout(()=>{"Y"!==e.dataset.active&&(S.isAniVisible=!1)},350))},100)):(S.isAniVisible=!1,S.visiblePanel=!1),(0,_vue.nextTick)()},ue=()=>{H()},m=(e,t)=>(0,_vue.h)(_tooltip.default,{useHtml:_xeUtils.default.isBoolean(e.useHtml)?e.useHtml:e.useHTML,content:e.content,enterable:e.enterable,theme:e.theme},{default(){return(0,_vue.h)("span",{class:`vxe-button--item vxe-button--tooltip-${t}-icon`},[(0,_vue.h)("i",{class:e.icon||(0,_ui.getIcon)().BUTTON_TOOLTIP_ICON})])}}),G=()=>{var{content:e,suffixIcon:t,loading:n,prefixTooltip:i,suffixTooltip:o,suffixRender:u}=N,l=N.prefixIcon||N.icon,a=N.prefixRender||N.iconRender,s=_.value,r=b.value,v=P.prefix||P.icon,d=P.suffix,c=P.default,p=[];return i&&p.push(m(s,"prefix")),n?p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--loading-icon",(0,_ui.getIcon)().BUTTON_LOADING]})):v?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--custom-prefix-icon"},v({}))):a?(s=(i=_ui.renderer.get(a.name))?i.renderButtonPrefix:null,p.push((0,_vue.h)("span",{class:["vxe-button--item vxe-button--custom-prefix-icon"]},s?(0,_vn.getSlotVNs)(s(a,{$button:$})):[]))):l&&p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--prefix-icon",l]})),c?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--content"},c({}))):e&&p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--content"},(0,_utils.getFuncText)(e))),d?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--custom-suffix-icon"},d({}))):u?(v=(n=_ui.renderer.get(u.name))?n.renderButtonSuffix:null,p.push((0,_vue.h)("span",{class:["vxe-button--item vxe-button--custom-suffix-icon"]},v?(0,_vn.getSlotVNs)(v(u,{$button:$})):[]))):t&&p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--suffix-icon",t]})),o&&p.push(m(r,"suffix")),p},W=(e,t,n)=>{i(e,(0,_ui.createEvent)(n,{$button:$},t))},x=(t={dispatchEvent:W,openPanel:c,closePanel:H,focus(){var e=z.value;return e&&e.focus(),(0,_vue.nextTick)()},blur(){var e=z.value;return e&&e.blur(),(0,_vue.nextTick)()}},e=>{var t=U.value;S.visiblePanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&H()}),f=e=>{var t,n=E.value,i=S.visiblePanel;n||(n=j.value,t=U.value,S.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!S.isActivated&&H())},g=()=>{var e=S.visiblePanel;e&&d()};Object.assign($,t);return $.renderVN=()=>{let{className:e,trigger:t,title:n,routerLink:i,type:o,destroyOnClose:u,name:l,loading:a,shadow:s,showDropdownIcon:r}=N;var{initialized:v,isAniVisible:d,visiblePanel:c}=S,p=D.value;let m=Z.value;var _=J.value;let b=Q.value;var x=K.value;let f=X.value;var g,h=V.value,T=E.value,C=B.value,w=ee.value,y=M.value,O=I.value,k=P.dropdowns,y=y.className||N.popupClassName;return C.visible?k||w.length?(C={onContextmenu:L},g={},"hover"===t&&(C.onMouseenter=ie,C.onMouseleave=oe,g.onMouseenter=A,g.onMouseleave=ue),(0,_vue.h)("div",{ref:j,class:["vxe-button--dropdown",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,"is--active":c}]},[i?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({ref:z,class:["vxe-button","vxe-button--link","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,to:i,onClick:Y},C),{default(){return G().concat(r?[(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})]:[])}}):(0,_vue.h)("button",Object.assign({ref:z,class:["vxe-button","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,onClick:Y},C),G().concat(r?[(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})]:[])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!h||!v},[(0,_vue.h)("div",Object.assign({ref:U,class:["vxe-button--dropdown-panel",y?_xeUtils.default.isFunction(y)?y({$button:$}):y:"",{["size--"+O]:O,"is--transfer":h,"ani--leave":d,"ani--enter":c}],placement:S.panelPlacement,style:S.panelStyle},g),v&&(c||d)?[k?(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:te,onClick:ne},v&&(!u||c||d)?k({}):[]):(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper"},v&&(!u||c||d)?w.map((t,e)=>(0,_vue.h)(VxeButtonComponent,{key:e,type:t.type,mode:t.mode||m,className:t.className,name:t.name,routerLink:t.routerLink,permissionCode:t.permissionCode,title:t.title,content:t.content,status:t.status,icon:t.icon,round:_xeUtils.default.isBoolean(t.round)?t.round:"text"!==m&&b,circle:_xeUtils.default.isBoolean(t.circle)?t.circle:"text"!==m&&f,disabled:t.disabled,loading:t.loading,align:t.align,onClick(e){((e,t)=>{e=e.$event;H(),W("dropdown-click",{name:t.name,option:t},e)})(e,t)}})):[])]:[])])])):i?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{ref:z,class:["vxe-button","vxe-button--link","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,to:i,onClick:q,onMouseenter:R,onMouseleave:F,onContextmenu:L},{default(){return G()}}):(0,_vue.h)("button",{ref:z,class:["vxe-button","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,onClick:q,onMouseenter:R,onMouseleave:F,onContextmenu:L},G()):(0,_ui.renderEmptyElement)($)},(0,_vue.onMounted)(()=>{"text"===N.type&&(0,_log.warnLog)("vxe.error.delProp",["[button] type=text","mode=text"]),_ui.globalEvents.on($,"mousewheel",x),_ui.globalEvents.on($,"mousedown",f),_ui.globalEvents.on($,"resize",g)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off($,"mousewheel"),_ui.globalEvents.off($,"mousedown"),_ui.globalEvents.off($,"resize")}),$},render(){return this.renderVN()}});var _default=exports.default=VxeButtonComponent;
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_tooltip=_interopRequireDefault(require("../../tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let warnLog=(0,_log.createComponentLog)("button").warnLog,VxeButtonComponent=(0,_comp.defineVxeComponent)({name:"VxeButton",props:{type:String,mode:String,className:[String,Function],popupClassName:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().button.size||(0,_ui.getConfig)().size},zIndex:Number,name:[String,Number],routerLink:Object,permissionCode:[String,Number],content:String,placement:String,status:String,title:String,shadow:Boolean,icon:String,iconRender:Object,prefixIcon:String,prefixRender:Object,suffixIcon:String,suffixRender:Object,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,trigger:{type:String,default:()=>(0,_ui.getConfig)().button.trigger},align:String,prefixTooltip:Object,suffixTooltip:Object,options:Array,showDropdownIcon:{type:Boolean,default:()=>(0,_ui.getConfig)().button.showDropdownIcon},destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().button.destroyOnClose},popupConfig:Object,transfer:{type:Boolean,default:null}},emits:["click","mouseenter","mouseleave","dropdown-click","dropdownClick","contextmenu"],setup(N,e){let{slots:P,emit:i}=e,n=(0,_vue.inject)("$xeModal",null),o=(0,_vue.inject)("$xeDrawer",null),u=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeTree",null),a=(0,_vue.inject)("$xeForm",null),s=(0,_vue.inject)("$xeButtonGroup",null);var t=_xeUtils.default.uniqueId();let I=(0,_ui.useSize)(N).computeSize,B=(0,_ui.usePermission)(N).computePermissionInfo,S=(0,_vue.reactive)({initialized:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),r={showTime:void 0,tooltipTimeout:void 0},j=(0,_vue.ref)(),z=(0,_vue.ref)(),U=(0,_vue.ref)(),v={refElem:j},$={xID:t,props:N,context:e,reactData:S,internalData:r,getRefMaps:()=>v};let V=(0,_vue.computed)(()=>{var e=N.transfer,t=M.value;if(_xeUtils.default.isBoolean(t.transfer))return t.transfer;if(null===e){t=(0,_ui.getConfig)().button.transfer;if(_xeUtils.default.isBoolean(t))return t;if(u||l||n||o||a)return!0}return e}),E=(0,_vue.computed)(()=>{var e=N.disabled,t=B.value;return e||t.disabled}),D=(0,_vue.computed)(()=>{var e=N.type;return!!e&&-1<["submit","reset","button"].indexOf(e)}),Z=(0,_vue.computed)(()=>{var{type:e,mode:t}=N;return"text"===t||"text"===e||s&&"text"===s.props.mode?"text":"button"}),J=(0,_vue.computed)(()=>{var e=N.status;return e||(s?s.props.status:"")}),K=(0,_vue.computed)(()=>{var e=N.align;return e||!!s&&s.props.align}),Q=(0,_vue.computed)(()=>{var e=N.round;return e||!!s&&s.props.round}),X=(0,_vue.computed)(()=>{var e=N.circle;return e||!!s&&s.props.circle}),ee=(0,_vue.computed)(()=>{var e=N.options;return e?e.filter(e=>{e=e.permissionCode;return!e||_ui.permission.checkVisible(e)}):[]}),M=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.popupConfig,N.popupConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.prefixTooltip,N.prefixTooltip)),b=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().button.suffixTooltip,N.suffixTooltip)),p=()=>{var e=M.value.zIndex||N.zIndex;e?S.panelIndex=_xeUtils.default.toNumber(e):S.panelIndex<(0,_utils.getLastZIndex)()&&(S.panelIndex=(0,_utils.nextZIndex)())},d=()=>{let n=N.placement,i=S.panelIndex,o=z.value,u=U.value,l=V.value,a=M.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(o,u,{placement:a.placement||n,defaultPlacement:a.defaultPlacement,teleportTo:l}),t=Object.assign(e.style,{zIndex:i});S.panelStyle=t,S.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},q=e=>{s&&s.handleClick({name:N.name},e),W("click",{$event:e},e)},te=e=>{0===e.button&&e.stopPropagation()},ne=e=>{var t=e.currentTarget;let n=U.value;var{flag:t,targetElem:i}=(0,_dom.getEventTargetNode)(e,t,"vxe-button");t&&(n&&(n.dataset.active="N"),S.visiblePanel=!1,setTimeout(()=>{n&&"Y"===n.dataset.active||(S.isAniVisible=!1)},350),W("dropdown-click",{name:i.getAttribute("name"),option:null},e))},A=()=>{let e=U.value;e&&(e.dataset.active="Y",S.isAniVisible=!0,setTimeout(()=>{"Y"===e.dataset.active&&(S.visiblePanel=!0,p(),d(),setTimeout(()=>{S.visiblePanel&&d()},50))},20))},ie=e=>{var t=N.loading;E.value||t||(c(),L(e))},oe=e=>{H(),R(e)},L=e=>{W("mouseenter",{},e)},R=e=>{W("mouseleave",{},e)},F=e=>{W("contextmenu",{},e)},Y=e=>{var{loading:t,trigger:n}=N;E.value||t||("click"===n&&(S.visiblePanel?H:c)(),q(e))},c=()=>{var e=N.trigger;let t=U.value;return t&&(t.dataset.active="Y",S.initialized||(S.initialized=!0),r.showTime=setTimeout(()=>{"Y"===t.dataset.active?A():S.isAniVisible=!1},"click"===e?50:250)),(0,_vue.nextTick)()},H=()=>{let e=U.value;return clearTimeout(r.showTime),e?(e.dataset.active="N",setTimeout(()=>{"Y"!==e.dataset.active&&(S.visiblePanel=!1,setTimeout(()=>{"Y"!==e.dataset.active&&(S.isAniVisible=!1)},350))},100)):(S.isAniVisible=!1,S.visiblePanel=!1),(0,_vue.nextTick)()},ue=()=>{H()},m=(e,t)=>(0,_vue.h)(_tooltip.default,{useHtml:_xeUtils.default.isBoolean(e.useHtml)?e.useHtml:e.useHTML,content:e.content,enterable:e.enterable,theme:e.theme},{default(){return(0,_vue.h)("span",{class:`vxe-button--item vxe-button--tooltip-${t}-icon`},[(0,_vue.h)("i",{class:e.icon||(0,_ui.getIcon)().BUTTON_TOOLTIP_ICON})])}}),G=()=>{var{content:e,suffixIcon:t,loading:n,prefixTooltip:i,suffixTooltip:o,suffixRender:u}=N,l=N.prefixIcon||N.icon,a=N.prefixRender||N.iconRender,s=_.value,r=b.value,v=P.prefix||P.icon,d=P.suffix,c=P.default,p=[];return i&&p.push(m(s,"prefix")),n?p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--loading-icon",(0,_ui.getIcon)().BUTTON_LOADING]})):v?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--custom-prefix-icon"},v({}))):a?(s=(i=_ui.renderer.get(a.name))?i.renderButtonPrefix:null,p.push((0,_vue.h)("span",{class:["vxe-button--item vxe-button--custom-prefix-icon"]},s?(0,_vn.getSlotVNs)(s(a,{$button:$})):[]))):l&&p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--prefix-icon",l]})),c?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--content"},c({}))):e&&p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--content"},(0,_utils.getFuncText)(e))),d?p.push((0,_vue.h)("span",{class:"vxe-button--item vxe-button--custom-suffix-icon"},d({}))):u?(v=(n=_ui.renderer.get(u.name))?n.renderButtonSuffix:null,p.push((0,_vue.h)("span",{class:["vxe-button--item vxe-button--custom-suffix-icon"]},v?(0,_vn.getSlotVNs)(v(u,{$button:$})):[]))):t&&p.push((0,_vue.h)("i",{class:["vxe-button--item vxe-button--suffix-icon",t]})),o&&p.push(m(r,"suffix")),p},W=(e,t,n)=>{i(e,(0,_ui.createEvent)(n,{$button:$},t))},x=(t={dispatchEvent:W,openPanel:c,closePanel:H,focus(){var e=z.value;return e&&e.focus(),(0,_vue.nextTick)()},blur(){var e=z.value;return e&&e.blur(),(0,_vue.nextTick)()}},e=>{var t=U.value;S.visiblePanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&H()}),f=e=>{var t,n=E.value,i=S.visiblePanel;n||(n=j.value,t=U.value,S.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!S.isActivated&&H())},g=()=>{var e=S.visiblePanel;e&&d()};Object.assign($,t);return $.renderVN=()=>{let{className:e,trigger:t,title:n,routerLink:i,type:o,destroyOnClose:u,name:l,loading:a,shadow:s,showDropdownIcon:r}=N;var{initialized:v,isAniVisible:d,visiblePanel:c}=S,p=D.value;let m=Z.value;var _=J.value;let b=Q.value;var x=K.value;let f=X.value;var g,h=V.value,T=E.value,C=B.value,w=ee.value,y=M.value,O=I.value,k=P.dropdowns,y=y.className||N.popupClassName;return C.visible?k||w.length?(C={onContextmenu:F},g={},"hover"===t&&(C.onMouseenter=ie,C.onMouseleave=oe,g.onMouseenter=A,g.onMouseleave=ue),(0,_vue.h)("div",{ref:j,class:["vxe-button--dropdown",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,"is--active":c}]},[i?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({ref:z,class:["vxe-button","vxe-button--link","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,to:i,onClick:Y},C),{default(){return G().concat(r?[(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})]:[])}}):(0,_vue.h)("button",Object.assign({ref:z,class:["vxe-button","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,onClick:Y},C),G().concat(r?[(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})]:[])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!h||!v},[(0,_vue.h)("div",Object.assign({ref:U,class:["vxe-button--dropdown-panel",y?_xeUtils.default.isFunction(y)?y({$button:$}):y:"",{["size--"+O]:O,"is--transfer":h,"ani--leave":d,"ani--enter":c}],placement:S.panelPlacement,style:S.panelStyle},g),v&&(c||d)?[k?(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:te,onClick:ne},v&&(!u||c||d)?k({}):[]):(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper"},v&&(!u||c||d)?w.map((t,e)=>(0,_vue.h)(VxeButtonComponent,{key:e,type:t.type,mode:t.mode||m,className:t.className,name:t.name,routerLink:t.routerLink,permissionCode:t.permissionCode,title:t.title,content:t.content,status:t.status,icon:t.icon,round:_xeUtils.default.isBoolean(t.round)?t.round:"text"!==m&&b,circle:_xeUtils.default.isBoolean(t.circle)?t.circle:"text"!==m&&f,disabled:t.disabled,loading:t.loading,align:t.align,onClick(e){((e,t)=>{e=e.$event;H(),W("dropdown-click",{name:t.name,option:t},e)})(e,t)}})):[])]:[])])])):i?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{ref:z,class:["vxe-button","vxe-button--link","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,to:i,onClick:q,onMouseenter:L,onMouseleave:R,onContextmenu:F},{default(){return G()}}):(0,_vue.h)("button",{ref:z,class:["vxe-button","type--"+m,x?"align--"+x:"",e?_xeUtils.default.isFunction(e)?e({$button:$}):e:"",{["size--"+O]:O,["theme--"+_]:_,"is--round":b,"is--circle":f,"is--shadow":s,"is--disabled":T||a,"is--loading":a}],title:n,name:l,type:p?o:"button",disabled:T||a,onClick:q,onMouseenter:L,onMouseleave:R,onContextmenu:F},G()):(0,_ui.renderEmptyElement)($)},(0,_vue.onMounted)(()=>{"text"===N.type&&warnLog("vxe.error.delProp",["type=text","mode=text"]),_ui.globalEvents.on($,"mousewheel",x),_ui.globalEvents.on($,"mousedown",f),_ui.globalEvents.on($,"resize",g)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off($,"mousewheel"),_ui.globalEvents.off($,"mousedown"),_ui.globalEvents.off($,"resize")}),$},render(){return this.renderVN()}});var _default=exports.default=VxeButtonComponent;
|
|
@@ -14,6 +14,9 @@ var _log = require("../../ui/src/log");
|
|
|
14
14
|
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
15
15
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
const {
|
|
18
|
+
errLog
|
|
19
|
+
} = (0, _log.createComponentLog)('calendar');
|
|
17
20
|
const {
|
|
18
21
|
menus,
|
|
19
22
|
getConfig,
|
|
@@ -1402,7 +1405,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1402
1405
|
} = props;
|
|
1403
1406
|
const VxeUIContextMenu = _ui.VxeUI.getComponent('VxeContextMenu');
|
|
1404
1407
|
if (menuConfig && !VxeUIContextMenu) {
|
|
1405
|
-
|
|
1408
|
+
errLog('vxe.error.reqComp', ['vxe-context-menu']);
|
|
1406
1409
|
}
|
|
1407
1410
|
dateOpenPanel();
|
|
1408
1411
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("../../date-panel/src/util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_button=_interopRequireDefault(require("../../button/src/button")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,getConfig,getI18n}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCalendar",props:{modelValue:[String,Number,Date],type:{type:String,default:"date"},className:String,size:{type:String,default:()=>getConfig().calendar.size||getConfig().size},multiple:Boolean,width:[String,Number],height:[String,Number],minDate:{type:[String,Number,Date],default:()=>getConfig().calendar.minDate},maxDate:{type:[String,Number,Date],default:()=>getConfig().calendar.maxDate},startDay:{type:[String,Number],default:()=>getConfig().calendar.startDay},labelFormat:String,valueFormat:String,festivalMethod:{type:Function,default:()=>getConfig().calendar.festivalMethod},disabledMethod:{type:Function,default:()=>getConfig().calendar.disabledMethod},cellStyle:[Object,Function],menuConfig:Object,selectDay:{type:[String,Number],default:()=>getConfig().calendar.selectDay}},emits:["update:modelValue","change","cell-click","date-prev","date-today","date-next","view-change","cell-menu","menu-click"],setup(c,e){let l=e.emit;var t=_xeUtils.default.uniqueId();let F=(0,_ui.useSize)(c).computeSize,m=(0,_vue.reactive)({selectValue:c.modelValue,inputValue:c.modelValue,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}),p={yearSize:12,monthSize:20,quarterSize:8},r=(0,_vue.ref)(),O={refElem:r},y={xID:t,props:c,context:e,reactData:m,internalData:p,getRefMaps:()=>O},I=(0,_vue.computed)(()=>{var{height:e,width:t}=c,a={};return t&&(a.width=(0,_dom.toCssUnit)(t)),e&&(a.height=(0,_dom.toCssUnit)(e)),a}),j=(0,_vue.computed)(()=>!1),n=(0,_vue.computed)(()=>-1<["date","week","month","quarter","year"].indexOf(c.type)),z=(0,_vue.computed)(()=>c.minDate?_xeUtils.default.toStringDate(c.minDate):null),$=(0,_vue.computed)(()=>c.maxDate?_xeUtils.default.toStringDate(c.maxDate):null),E=(0,_vue.computed)(()=>-1<["date","week","month","quarter","year"].indexOf(c.type)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().calendar.menuConfig,c.menuConfig)),a=(0,_vue.computed)(()=>{var e=c.multiple,t=m.selectValue,a=n.value;let l=s.value;return e&&t&&a?_xeUtils.default.toValueString(t).split(",").map(e=>{e=U(e,l);return _xeUtils.default.isValidDate(e)?e:null}):[]}),R=(0,_vue.computed)(()=>{var e=a.value;let t=s.value;return e.map(e=>_xeUtils.default.toDateString(e,t))}),u=(0,_vue.computed)(()=>{var e=a.value;let t=v.value;return e.map(e=>_xeUtils.default.toDateString(e,t)).join(", ")}),s=(0,_vue.computed)(()=>{var e=c.valueFormat;return e||"yyyy-MM-dd"}),h=(0,_vue.computed)(()=>{var e=m.selectValue,t=n.value,a=s.value;let l=null;return l=e&&t&&(t=U(e,a),_xeUtils.default.isValidDate(t))?t:l}),i=(0,_vue.computed)(()=>{var e=z.value,t=m.selectMonth;return!(!t||!e)&&t<=e}),d=(0,_vue.computed)(()=>{var e=$.value,t=m.selectMonth;return!(!t||!e)&&e<=t}),Q=(0,_vue.computed)(()=>{var e=h.value;return e?1e3*(3600*e.getHours()+60*e.getMinutes()+e.getSeconds()):0}),v=(0,_vue.computed)(()=>{var e=c.labelFormat,t=n.value,a=s.value;return t?e||a||getI18n("vxe.input.date.labelFormat."+c.type):null}),o=(0,_vue.computed)(()=>{var{selectMonth:e,currentDate:t}=m,a=p.yearSize,l=[];if(e&&t){var u=t.getFullYear(),t=e.getFullYear(),r=new Date(t-t%a,0,1);for(let e=-4;e<a+4;e++){var i=_xeUtils.default.getWhatYear(r,e,"first"),n=i.getFullYear();l.push({date:i,isCurrent:!0,isPrev:e<0,isNow:u===n,isNext:e>=a,year:n})}}return l}),B=(0,_vue.computed)(()=>{let a="",l="";if(n.value){var{datePanelType:u,selectMonth:r}=m,i=o.value;let e="",t;r&&(e=r.getFullYear(),t=r.getMonth()+1),"quarter"===u||"month"===u?a=""+e:"year"===u?a=i.length?i[0].year+" - "+i[i.length-1].year:"":(a=""+e,l=t?getI18n("vxe.calendar.monthLabel",[t]):"-")}return{y:getI18n("vxe.calendar.yearLabel",[a]),m:l}}),_=(0,_vue.computed)(()=>{var e=c.startDay;return _xeUtils.default.toNumber(e)}),x=(0,_vue.computed)(()=>{var a=[];if(n.value){let t=_.value;a.push(t);for(let e=0;e<6;e++)6<=t?t=0:t++,a.push(t)}return a}),f=(0,_vue.computed)(()=>n.value?x.value.map(e=>({value:e,label:getI18n("vxe.input.date.weeks.w"+e)})):[]),H=(0,_vue.computed)(()=>{var e;return n.value?(e=f.value,[{label:getI18n("vxe.input.date.weeks.w")}].concat(e)):[]}),g=(0,_vue.computed)(()=>{var e=o.value;return _xeUtils.default.chunk(e,4)}),w=(0,_vue.computed)(()=>{var{selectMonth:e,currentDate:t}=m,a=p.quarterSize,l=[];if(e&&t){var u=t.getFullYear(),r=(0,_util.getDateQuarter)(t),i=_xeUtils.default.getWhatYear(e,0,"first"),n=i.getFullYear();for(let e=-2;e<a-2;e++){var s=_xeUtils.default.getWhatQuarter(i,e),d=s.getFullYear(),v=(0,_util.getDateQuarter)(s),o=d<n;l.push({date:s,isPrev:o,isCurrent:d===n,isNow:d===u&&v===r,isNext:!o&&n<d,quarter:v})}}return l}),A=(0,_vue.computed)(()=>{var e=w.value;return _xeUtils.default.chunk(e,2)}),G=(0,_vue.computed)(()=>{var{selectMonth:t,currentDate:e}=m,a=p.monthSize,l=[];if(t&&e){var u=e.getFullYear(),r=e.getMonth(),i=_xeUtils.default.getWhatYear(t,0,"first").getFullYear();for(let e=-4;e<a-4;e++){var n=_xeUtils.default.getWhatYear(t,0,e),s=n.getFullYear(),d=n.getMonth(),v=s<i;l.push({date:n,isPrev:v,isCurrent:s===i,isNow:s===u&&d===r,isNext:!v&&i<s,month:d})}}return l}),J=(0,_vue.computed)(()=>{var e=G.value;return _xeUtils.default.chunk(e,4)}),K=(0,_vue.computed)(()=>{var{selectMonth:t,currentDate:e}=m,a=[];if(t&&e){var l=Q.value,u=x.value,r=e.getFullYear(),i=e.getMonth(),n=e.getDate(),s=t.getFullYear(),d=t.getMonth(),e=t.getDay(),u=-u.indexOf(e),v=new Date(_xeUtils.default.getWhatDay(t,u).getTime()+l);for(let e=0;e<42;e++){var o=_xeUtils.default.getWhatDay(v,e),c=o.getFullYear(),p=o.getMonth(),y=o.getDate(),h=o<t;a.push({date:o,isPrev:h,isCurrent:c===s&&p===d,isNow:c===r&&p===i&&y===n,isNext:!h&&d!==p,label:y})}}return a}),b=(0,_vue.computed)(()=>{var e=K.value;return _xeUtils.default.chunk(e,7)}),X=(0,_vue.computed)(()=>{var e=b.value;let a=_.value;return e.map(e=>{var t=e[0];return[{date:t.date,isWeekNumber:!0,isPrev:!1,isCurrent:!1,isNow:!1,isNext:!1,label:_xeUtils.default.getYearWeek(t.date,a)}].concat(e)})}),U=(e,t)=>_xeUtils.default.toStringDate(e,t),D=(e,t)=>{m.inputValue=e,l("update:modelValue",e),_xeUtils.default.toValueString(c.modelValue)!==e&&W("change",{value:e},t)},M=e=>{var t=c.type,a=v.value,l=s.value,u=_.value;let r=null,i="";e&&(r=U(e,l)),_xeUtils.default.isValidDate(r)?(i=_xeUtils.default.toDateString(r,a,{firstDay:u}),a&&"week"===t&&_xeUtils.default.getWhatWeek(r,0,u,u).getFullYear()<r.getFullYear()&&-1<(e=a.indexOf("yyyy"))&&(l=Number(i.substring(e,e+4)))&&!isNaN(l)&&(i=i.replace(""+l,""+(l-1)))):r=null,m.datePanelValue=r,m.datePanelLabel=i},Z=()=>{var e=n.value,t=m.inputValue;e&&(M(t),m.inputValue=c.multiple?u.value:m.datePanelLabel)},ee=()=>{n.value&&Z()},S=e=>{e=_xeUtils.default.getWhatMonth(e,0,"first");_xeUtils.default.isEqual(e,m.selectMonth)||(m.selectMonth=e)},P=e=>{var t,{modelValue:a,multiple:l}=c,u=s.value,r=_.value;"week"===c.type&&(t=_xeUtils.default.toNumber(c.selectDay),e=_xeUtils.default.getWhatWeek(e,0,t,r));let i=_xeUtils.default.toDateString(e,u,{firstDay:r});S(e),m.selectValue=e,l?(t=R.value).some(e=>_xeUtils.default.isEqual(e,i))?D(t.filter(e=>!_xeUtils.default.isEqual(e,i)).join(","),{type:"update"}):D(t.concat([i]).join(","),{type:"update"}):_xeUtils.default.isEqual(a,i)||D(i,{type:"update"})},te=(e,t)=>{m.selectMonth=_xeUtils.default.getWhatMonth(e,t,"first")},ae=()=>{var e=_xeUtils.default.getWhatDay(Date.now(),0,"first");m.currentDate=e,te(e,0)},le=()=>{m.datePanelType="year"},ue=e=>{let t=m.datePanelType;t="month"===t||"quarter"===t?"year":"month",m.datePanelType=t,V(e)},re=e=>{var t=c.type,{datePanelType:a,selectMonth:l}=m,u=p.yearSize;i.value||(m.selectMonth="year"===t?_xeUtils.default.getWhatYear(l,-u,"first"):"month"===t||"quarter"===t?"year"===a?_xeUtils.default.getWhatYear(l,-u,"first"):_xeUtils.default.getWhatYear(l,-1,"first"):"year"===a?_xeUtils.default.getWhatYear(l,-u,"first"):"month"===a?_xeUtils.default.getWhatYear(l,-1,"first"):_xeUtils.default.getWhatMonth(l,-1,"first"),W("date-prev",{type:t},e),V(e))},ie=e=>{ae(),c.multiple||P(m.currentDate),W("date-today",{type:c.type},e),V(e)},ne=e=>{var t=c.type,{datePanelType:a,selectMonth:l}=m,u=p.yearSize;d.value||(m.selectMonth="year"===t?_xeUtils.default.getWhatYear(l,u,"first"):"month"===t||"quarter"===t?"year"===a?_xeUtils.default.getWhatYear(l,u,"first"):_xeUtils.default.getWhatYear(l,1,"first"):"year"===a?_xeUtils.default.getWhatYear(l,u,"first"):"month"===a?_xeUtils.default.getWhatYear(l,1,"first"):_xeUtils.default.getWhatMonth(l,1,"first"),W("date-next",{type:t},e),V(e))},C=e=>{var t=c.disabledMethod,a=m.datePanelType;return t&&t({type:a,viewType:a,date:e.date,$calendar:y})},V=e=>{var t=m.datePanelType,a=g.value,l=A.value,u=J.value,r=X.value,i=b.value;let n=[],s=[];switch(t){case"year":s=a;break;case"quarter":s=l;break;case"month":s=u;break;case"week":s=r;break;case"day":s=i}s.forEach(e=>{e.forEach(e=>{n.push(e.date)})}),W("view-change",{viewType:t,viewDates:n},e)},se=e=>{var t=c.type,a=m.datePanelType;"month"===t?"year"===a?(m.datePanelType="month",S(e),V(null)):P(e):"year"===t?P(e):"quarter"===t?"year"===a?(m.datePanelType="quarter",S(e),V(null)):P(e):"month"===a?(m.datePanelType="week"===t?t:"day",S(e),V(null)):"year"===a?(m.datePanelType="month",S(e),V(null)):P(e)},k=(e,t)=>{var a=c.type,l=m.datePanelType,u=t.date;C(t)||(se(u),W("cell-click",{date:u,type:a,viewType:l},e))},T=(u,e)=>{let r=c.type,i=m.datePanelType;var t=c.menuConfig,a=L.value;if(t?(0,_utils.isEnableConf)(a):a.enabled){var{options:t,visibleMethod:a}=a;let l=e.date;a&&!a({$calendar:y,options:t,date:l,type:r,viewType:i})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(u,{options:t,events:{optionClick(e){var t=e.option,a=menus.get(t.code),a=a?a.calendarMenuMethod:null,t={menu:t,date:l,type:r,viewType:i,$event:u,$calendar:y};a&&a(t,u),W("menu-click",t,e.$event)}}})}W("cell-menu",{date:e.date,type:r,viewType:i},u)},de=t=>{C({date:t})||(K.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyMMdd"))||S(t),M(t))},ve=t=>{C({date:t})||(o.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyy"))||S(t),M(t))},oe=t=>{C({date:t})||(w.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyq"))||S(t),M(t))},ce=t=>{C({date:t})||(G.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyMM"))||S(t),M(t))},N=e=>{var t;C(e)||(t=m.datePanelType,("month"===t?ce:"quarter"===t?oe:"year"===t?ve:de)(e.date))},q=()=>{m.datePanelValue=null},pe=()=>{},ye=()=>{var e=c.type,t=h.value;-1<["year","quarter","month","week"].indexOf(e)?m.datePanelType=e:m.datePanelType="day",m.currentDate=_xeUtils.default.getWhatDay(Date.now(),0,"first"),t?(te(t,0),M(t)):ae()},Y=(e,t)=>{var a,l=c.festivalMethod;return l?(a=m.datePanelType,e=(a=(l=l({type:a,viewType:a,date:e.date,$calendar:y}))?_xeUtils.default.isString(l)?{label:l}:l:{}).extra?_xeUtils.default.isString(a.extra)?{label:a.extra}:a.extra:null,l=[(0,_vue.h)("span",{class:["vxe-calendar--label",{"is-notice":a.notice}]},e&&e.label?[(0,_vue.h)("span",{class:"vxe-calendar--label--number"},""+(t||"")),(0,_vue.h)("span",{class:["vxe-calendar--label--extra",e.important?"is-important":"",e.className],style:e.style},_xeUtils.default.toValueString(e.label))]:[""+(t||"")])],(e=a.label)&&(e=_xeUtils.default.toValueString(e).split(","),l.push((0,_vue.h)("span",{class:["vxe-calendar--festival",a.important?"is-important":"",a.className],style:a.style},[1<e.length?(0,_vue.h)("span",{class:["vxe-calendar--festival--overlap","overlap--"+e.length]},e.map(e=>(0,_vue.h)("span",e.substring(0,3)))):(0,_vue.h)("span",{class:"vxe-calendar--festival--label"},e[0].substring(0,3))]))),l):""+(t||"")},he=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,t=f.value,e=b.value,s=a.value,d="yyyyMMdd";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-header",style:{height:100/(e.length+1)+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-row"},t.map(e=>(0,_vue.h)("div",{class:"vxe-calendar--view-item",style:{width:100/t.length+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-label"},e.label)])])))]),(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.label))])}))))])]},me=()=>{let{multiple:t,cellStyle:r}=c,{datePanelType:i,datePanelValue:n}=m,s=h.value;var e=H.value;let d=X.value,v=a.value,o="yyyyMMdd";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+i]},[(0,_vue.h)("div",{class:"vxe-calendar--view-header",style:{height:100/(d.length+1)+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-row"},e.map((e,t)=>(0,_vue.h)("div",{class:"vxe-calendar--view-item",style:{width:`${t?13:9}%`}},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-label"},e.label)])])))]),(0,_vue.h)("div",{class:"vxe-calendar--view-body"},d.map(e=>{let a=t?e.some(t=>v.some(e=>_xeUtils.default.isDateSame(e,t.date,o))):e.some(e=>_xeUtils.default.isDateSame(s,e.date,o)),l=e.some(e=>_xeUtils.default.isDateSame(n,e.date,o)),u=e.some(e=>e.isNow);return(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/d.length+"%"}},e.map((t,e)=>(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":e?t.isNow:u,"is--next":t.isNext,"is--disabled":C(t),"is--selected":a,"is--hover":l}],style:Object.assign({},_xeUtils.default.isFunction(r)?r({type:i,viewType:i,date:t.date,$calendar:y}):r,{width:`${e?13:9}%`}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.label))])))}))])]},_e=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=J.value,s=a.value,d="yyyyMM";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,getI18n("vxe.input.date.months.m"+t.month)))])}))))])]},xe=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=A.value,s=a.value,d="yyyyq";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,getI18n("vxe.input.date.quarters.q"+t.quarter)))])}))))])]},fe=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=g.value,s=a.value,d="yyyy";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.year))])}))))])]},ge=()=>{var e=m.datePanelType;switch(e){case"week":return me();case"month":return _e();case"quarter":return xe();case"year":return fe()}return he()},W=(e,t,a)=>{l(e,(0,_ui.createEvent)(a,{$input:y},t))};t={dispatchEvent:W};Object.assign(y,t);return y.renderVN=()=>{var{className:e,type:t}=c,a=F.value,l=j.value,u=I.value;return(0,_vue.h)("div",{ref:r,class:["vxe-calendar","type--"+t,e,{["size--"+a]:a,"is--disabled":l}],style:u},[(t=c.multiple,e=m.datePanelType,a=i.value,l=d.value,u=B.value,[(0,_vue.h)("div",{class:"vxe-calendar--header"},[(0,_vue.h)("div",{class:"vxe-calendar--type-wrapper"},["year"===e?(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-label",disabled:"year"===e,content:u.y}):(0,_vue.h)("span",{class:"vxe-calendar--date-picker-btns"},[(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-btn",content:u.y,onClick:le}),u.m?(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-btn",content:u.m,onClick:ue}):(0,_ui.renderEmptyElement)(y)])]),(0,_vue.h)("div",{class:"vxe-calendar--btn-wrapper"},[(0,_vue.h)(_button.default,{disabled:a,icon:"vxe-icon-caret-left",onClick:re}),(0,_vue.h)(_button.default,{icon:"vxe-icon-dot",onClick:ie}),(0,_vue.h)(_button.default,{disabled:l,icon:"vxe-icon-caret-right",onClick:ne}),t&&E.value?(0,_vue.h)("span",{class:"vxe-calendar--btn vxe-calendar--confirm-btn"},[(0,_vue.h)("button",{class:"vxe-calendar--confirm",type:"button",onClick:pe},getI18n("vxe.button.confirm"))]):null])]),(0,_vue.h)("div",{class:"vxe-calendar--body"},ge())])])},(0,_vue.watch)(()=>c.modelValue,e=>{m.inputValue=e,Z()}),(0,_vue.watch)(()=>c.type,()=>{Object.assign(m,{selectValue:null,inputValue:null,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}),ee(),ye()}),(0,_vue.watch)(v,()=>{n.value&&(M(m.datePanelValue),m.inputValue=c.multiple?u.value:m.datePanelLabel)}),(0,_vue.onMounted)(()=>{var e=c.menuConfig,t=_ui.VxeUI.getComponent("VxeContextMenu");e&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-context-menu"]),ye()}),ee(),y},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("../../date-panel/src/util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_button=_interopRequireDefault(require("../../button/src/button")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("calendar").errLog,{menus,getConfig,getI18n}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCalendar",props:{modelValue:[String,Number,Date],type:{type:String,default:"date"},className:String,size:{type:String,default:()=>getConfig().calendar.size||getConfig().size},multiple:Boolean,width:[String,Number],height:[String,Number],minDate:{type:[String,Number,Date],default:()=>getConfig().calendar.minDate},maxDate:{type:[String,Number,Date],default:()=>getConfig().calendar.maxDate},startDay:{type:[String,Number],default:()=>getConfig().calendar.startDay},labelFormat:String,valueFormat:String,festivalMethod:{type:Function,default:()=>getConfig().calendar.festivalMethod},disabledMethod:{type:Function,default:()=>getConfig().calendar.disabledMethod},cellStyle:[Object,Function],menuConfig:Object,selectDay:{type:[String,Number],default:()=>getConfig().calendar.selectDay}},emits:["update:modelValue","change","cell-click","date-prev","date-today","date-next","view-change","cell-menu","menu-click"],setup(c,e){let l=e.emit;var t=_xeUtils.default.uniqueId();let F=(0,_ui.useSize)(c).computeSize,m=(0,_vue.reactive)({selectValue:c.modelValue,inputValue:c.modelValue,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}),p={yearSize:12,monthSize:20,quarterSize:8},r=(0,_vue.ref)(),O={refElem:r},y={xID:t,props:c,context:e,reactData:m,internalData:p,getRefMaps:()=>O},I=(0,_vue.computed)(()=>{var{height:e,width:t}=c,a={};return t&&(a.width=(0,_dom.toCssUnit)(t)),e&&(a.height=(0,_dom.toCssUnit)(e)),a}),j=(0,_vue.computed)(()=>!1),n=(0,_vue.computed)(()=>-1<["date","week","month","quarter","year"].indexOf(c.type)),z=(0,_vue.computed)(()=>c.minDate?_xeUtils.default.toStringDate(c.minDate):null),$=(0,_vue.computed)(()=>c.maxDate?_xeUtils.default.toStringDate(c.maxDate):null),E=(0,_vue.computed)(()=>-1<["date","week","month","quarter","year"].indexOf(c.type)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().calendar.menuConfig,c.menuConfig)),a=(0,_vue.computed)(()=>{var e=c.multiple,t=m.selectValue,a=n.value;let l=s.value;return e&&t&&a?_xeUtils.default.toValueString(t).split(",").map(e=>{e=U(e,l);return _xeUtils.default.isValidDate(e)?e:null}):[]}),R=(0,_vue.computed)(()=>{var e=a.value;let t=s.value;return e.map(e=>_xeUtils.default.toDateString(e,t))}),u=(0,_vue.computed)(()=>{var e=a.value;let t=v.value;return e.map(e=>_xeUtils.default.toDateString(e,t)).join(", ")}),s=(0,_vue.computed)(()=>{var e=c.valueFormat;return e||"yyyy-MM-dd"}),h=(0,_vue.computed)(()=>{var e=m.selectValue,t=n.value,a=s.value;let l=null;return l=e&&t&&(t=U(e,a),_xeUtils.default.isValidDate(t))?t:l}),i=(0,_vue.computed)(()=>{var e=z.value,t=m.selectMonth;return!(!t||!e)&&t<=e}),d=(0,_vue.computed)(()=>{var e=$.value,t=m.selectMonth;return!(!t||!e)&&e<=t}),Q=(0,_vue.computed)(()=>{var e=h.value;return e?1e3*(3600*e.getHours()+60*e.getMinutes()+e.getSeconds()):0}),v=(0,_vue.computed)(()=>{var e=c.labelFormat,t=n.value,a=s.value;return t?e||a||getI18n("vxe.input.date.labelFormat."+c.type):null}),o=(0,_vue.computed)(()=>{var{selectMonth:e,currentDate:t}=m,a=p.yearSize,l=[];if(e&&t){var u=t.getFullYear(),t=e.getFullYear(),r=new Date(t-t%a,0,1);for(let e=-4;e<a+4;e++){var i=_xeUtils.default.getWhatYear(r,e,"first"),n=i.getFullYear();l.push({date:i,isCurrent:!0,isPrev:e<0,isNow:u===n,isNext:e>=a,year:n})}}return l}),B=(0,_vue.computed)(()=>{let a="",l="";if(n.value){var{datePanelType:u,selectMonth:r}=m,i=o.value;let e="",t;r&&(e=r.getFullYear(),t=r.getMonth()+1),"quarter"===u||"month"===u?a=""+e:"year"===u?a=i.length?i[0].year+" - "+i[i.length-1].year:"":(a=""+e,l=t?getI18n("vxe.calendar.monthLabel",[t]):"-")}return{y:getI18n("vxe.calendar.yearLabel",[a]),m:l}}),_=(0,_vue.computed)(()=>{var e=c.startDay;return _xeUtils.default.toNumber(e)}),x=(0,_vue.computed)(()=>{var a=[];if(n.value){let t=_.value;a.push(t);for(let e=0;e<6;e++)6<=t?t=0:t++,a.push(t)}return a}),f=(0,_vue.computed)(()=>n.value?x.value.map(e=>({value:e,label:getI18n("vxe.input.date.weeks.w"+e)})):[]),H=(0,_vue.computed)(()=>{var e;return n.value?(e=f.value,[{label:getI18n("vxe.input.date.weeks.w")}].concat(e)):[]}),g=(0,_vue.computed)(()=>{var e=o.value;return _xeUtils.default.chunk(e,4)}),w=(0,_vue.computed)(()=>{var{selectMonth:e,currentDate:t}=m,a=p.quarterSize,l=[];if(e&&t){var u=t.getFullYear(),r=(0,_util.getDateQuarter)(t),i=_xeUtils.default.getWhatYear(e,0,"first"),n=i.getFullYear();for(let e=-2;e<a-2;e++){var s=_xeUtils.default.getWhatQuarter(i,e),d=s.getFullYear(),v=(0,_util.getDateQuarter)(s),o=d<n;l.push({date:s,isPrev:o,isCurrent:d===n,isNow:d===u&&v===r,isNext:!o&&n<d,quarter:v})}}return l}),A=(0,_vue.computed)(()=>{var e=w.value;return _xeUtils.default.chunk(e,2)}),G=(0,_vue.computed)(()=>{var{selectMonth:t,currentDate:e}=m,a=p.monthSize,l=[];if(t&&e){var u=e.getFullYear(),r=e.getMonth(),i=_xeUtils.default.getWhatYear(t,0,"first").getFullYear();for(let e=-4;e<a-4;e++){var n=_xeUtils.default.getWhatYear(t,0,e),s=n.getFullYear(),d=n.getMonth(),v=s<i;l.push({date:n,isPrev:v,isCurrent:s===i,isNow:s===u&&d===r,isNext:!v&&i<s,month:d})}}return l}),J=(0,_vue.computed)(()=>{var e=G.value;return _xeUtils.default.chunk(e,4)}),K=(0,_vue.computed)(()=>{var{selectMonth:t,currentDate:e}=m,a=[];if(t&&e){var l=Q.value,u=x.value,r=e.getFullYear(),i=e.getMonth(),n=e.getDate(),s=t.getFullYear(),d=t.getMonth(),e=t.getDay(),u=-u.indexOf(e),v=new Date(_xeUtils.default.getWhatDay(t,u).getTime()+l);for(let e=0;e<42;e++){var o=_xeUtils.default.getWhatDay(v,e),c=o.getFullYear(),p=o.getMonth(),y=o.getDate(),h=o<t;a.push({date:o,isPrev:h,isCurrent:c===s&&p===d,isNow:c===r&&p===i&&y===n,isNext:!h&&d!==p,label:y})}}return a}),b=(0,_vue.computed)(()=>{var e=K.value;return _xeUtils.default.chunk(e,7)}),X=(0,_vue.computed)(()=>{var e=b.value;let a=_.value;return e.map(e=>{var t=e[0];return[{date:t.date,isWeekNumber:!0,isPrev:!1,isCurrent:!1,isNow:!1,isNext:!1,label:_xeUtils.default.getYearWeek(t.date,a)}].concat(e)})}),U=(e,t)=>_xeUtils.default.toStringDate(e,t),D=(e,t)=>{m.inputValue=e,l("update:modelValue",e),_xeUtils.default.toValueString(c.modelValue)!==e&&W("change",{value:e},t)},M=e=>{var t=c.type,a=v.value,l=s.value,u=_.value;let r=null,i="";e&&(r=U(e,l)),_xeUtils.default.isValidDate(r)?(i=_xeUtils.default.toDateString(r,a,{firstDay:u}),a&&"week"===t&&_xeUtils.default.getWhatWeek(r,0,u,u).getFullYear()<r.getFullYear()&&-1<(e=a.indexOf("yyyy"))&&(l=Number(i.substring(e,e+4)))&&!isNaN(l)&&(i=i.replace(""+l,""+(l-1)))):r=null,m.datePanelValue=r,m.datePanelLabel=i},Z=()=>{var e=n.value,t=m.inputValue;e&&(M(t),m.inputValue=c.multiple?u.value:m.datePanelLabel)},ee=()=>{n.value&&Z()},S=e=>{e=_xeUtils.default.getWhatMonth(e,0,"first");_xeUtils.default.isEqual(e,m.selectMonth)||(m.selectMonth=e)},P=e=>{var t,{modelValue:a,multiple:l}=c,u=s.value,r=_.value;"week"===c.type&&(t=_xeUtils.default.toNumber(c.selectDay),e=_xeUtils.default.getWhatWeek(e,0,t,r));let i=_xeUtils.default.toDateString(e,u,{firstDay:r});S(e),m.selectValue=e,l?(t=R.value).some(e=>_xeUtils.default.isEqual(e,i))?D(t.filter(e=>!_xeUtils.default.isEqual(e,i)).join(","),{type:"update"}):D(t.concat([i]).join(","),{type:"update"}):_xeUtils.default.isEqual(a,i)||D(i,{type:"update"})},te=(e,t)=>{m.selectMonth=_xeUtils.default.getWhatMonth(e,t,"first")},ae=()=>{var e=_xeUtils.default.getWhatDay(Date.now(),0,"first");m.currentDate=e,te(e,0)},le=()=>{m.datePanelType="year"},ue=e=>{let t=m.datePanelType;t="month"===t||"quarter"===t?"year":"month",m.datePanelType=t,V(e)},re=e=>{var t=c.type,{datePanelType:a,selectMonth:l}=m,u=p.yearSize;i.value||(m.selectMonth="year"===t?_xeUtils.default.getWhatYear(l,-u,"first"):"month"===t||"quarter"===t?"year"===a?_xeUtils.default.getWhatYear(l,-u,"first"):_xeUtils.default.getWhatYear(l,-1,"first"):"year"===a?_xeUtils.default.getWhatYear(l,-u,"first"):"month"===a?_xeUtils.default.getWhatYear(l,-1,"first"):_xeUtils.default.getWhatMonth(l,-1,"first"),W("date-prev",{type:t},e),V(e))},ie=e=>{ae(),c.multiple||P(m.currentDate),W("date-today",{type:c.type},e),V(e)},ne=e=>{var t=c.type,{datePanelType:a,selectMonth:l}=m,u=p.yearSize;d.value||(m.selectMonth="year"===t?_xeUtils.default.getWhatYear(l,u,"first"):"month"===t||"quarter"===t?"year"===a?_xeUtils.default.getWhatYear(l,u,"first"):_xeUtils.default.getWhatYear(l,1,"first"):"year"===a?_xeUtils.default.getWhatYear(l,u,"first"):"month"===a?_xeUtils.default.getWhatYear(l,1,"first"):_xeUtils.default.getWhatMonth(l,1,"first"),W("date-next",{type:t},e),V(e))},C=e=>{var t=c.disabledMethod,a=m.datePanelType;return t&&t({type:a,viewType:a,date:e.date,$calendar:y})},V=e=>{var t=m.datePanelType,a=g.value,l=A.value,u=J.value,r=X.value,i=b.value;let n=[],s=[];switch(t){case"year":s=a;break;case"quarter":s=l;break;case"month":s=u;break;case"week":s=r;break;case"day":s=i}s.forEach(e=>{e.forEach(e=>{n.push(e.date)})}),W("view-change",{viewType:t,viewDates:n},e)},se=e=>{var t=c.type,a=m.datePanelType;"month"===t?"year"===a?(m.datePanelType="month",S(e),V(null)):P(e):"year"===t?P(e):"quarter"===t?"year"===a?(m.datePanelType="quarter",S(e),V(null)):P(e):"month"===a?(m.datePanelType="week"===t?t:"day",S(e),V(null)):"year"===a?(m.datePanelType="month",S(e),V(null)):P(e)},k=(e,t)=>{var a=c.type,l=m.datePanelType,u=t.date;C(t)||(se(u),W("cell-click",{date:u,type:a,viewType:l},e))},T=(u,e)=>{let r=c.type,i=m.datePanelType;var t=c.menuConfig,a=L.value;if(t?(0,_utils.isEnableConf)(a):a.enabled){var{options:t,visibleMethod:a}=a;let l=e.date;a&&!a({$calendar:y,options:t,date:l,type:r,viewType:i})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(u,{options:t,events:{optionClick(e){var t=e.option,a=menus.get(t.code),a=a?a.calendarMenuMethod:null,t={menu:t,date:l,type:r,viewType:i,$event:u,$calendar:y};a&&a(t,u),W("menu-click",t,e.$event)}}})}W("cell-menu",{date:e.date,type:r,viewType:i},u)},de=t=>{C({date:t})||(K.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyMMdd"))||S(t),M(t))},ve=t=>{C({date:t})||(o.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyy"))||S(t),M(t))},oe=t=>{C({date:t})||(w.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyq"))||S(t),M(t))},ce=t=>{C({date:t})||(G.value.some(e=>_xeUtils.default.isDateSame(e.date,t,"yyyyMM"))||S(t),M(t))},N=e=>{var t;C(e)||(t=m.datePanelType,("month"===t?ce:"quarter"===t?oe:"year"===t?ve:de)(e.date))},q=()=>{m.datePanelValue=null},pe=()=>{},ye=()=>{var e=c.type,t=h.value;-1<["year","quarter","month","week"].indexOf(e)?m.datePanelType=e:m.datePanelType="day",m.currentDate=_xeUtils.default.getWhatDay(Date.now(),0,"first"),t?(te(t,0),M(t)):ae()},Y=(e,t)=>{var a,l=c.festivalMethod;return l?(a=m.datePanelType,e=(a=(l=l({type:a,viewType:a,date:e.date,$calendar:y}))?_xeUtils.default.isString(l)?{label:l}:l:{}).extra?_xeUtils.default.isString(a.extra)?{label:a.extra}:a.extra:null,l=[(0,_vue.h)("span",{class:["vxe-calendar--label",{"is-notice":a.notice}]},e&&e.label?[(0,_vue.h)("span",{class:"vxe-calendar--label--number"},""+(t||"")),(0,_vue.h)("span",{class:["vxe-calendar--label--extra",e.important?"is-important":"",e.className],style:e.style},_xeUtils.default.toValueString(e.label))]:[""+(t||"")])],(e=a.label)&&(e=_xeUtils.default.toValueString(e).split(","),l.push((0,_vue.h)("span",{class:["vxe-calendar--festival",a.important?"is-important":"",a.className],style:a.style},[1<e.length?(0,_vue.h)("span",{class:["vxe-calendar--festival--overlap","overlap--"+e.length]},e.map(e=>(0,_vue.h)("span",e.substring(0,3)))):(0,_vue.h)("span",{class:"vxe-calendar--festival--label"},e[0].substring(0,3))]))),l):""+(t||"")},he=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,t=f.value,e=b.value,s=a.value,d="yyyyMMdd";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-header",style:{height:100/(e.length+1)+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-row"},t.map(e=>(0,_vue.h)("div",{class:"vxe-calendar--view-item",style:{width:100/t.length+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-label"},e.label)])])))]),(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.label))])}))))])]},me=()=>{let{multiple:t,cellStyle:r}=c,{datePanelType:i,datePanelValue:n}=m,s=h.value;var e=H.value;let d=X.value,v=a.value,o="yyyyMMdd";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+i]},[(0,_vue.h)("div",{class:"vxe-calendar--view-header",style:{height:100/(d.length+1)+"%"}},[(0,_vue.h)("div",{class:"vxe-calendar--view-row"},e.map((e,t)=>(0,_vue.h)("div",{class:"vxe-calendar--view-item",style:{width:`${t?13:9}%`}},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-label"},e.label)])])))]),(0,_vue.h)("div",{class:"vxe-calendar--view-body"},d.map(e=>{let a=t?e.some(t=>v.some(e=>_xeUtils.default.isDateSame(e,t.date,o))):e.some(e=>_xeUtils.default.isDateSame(s,e.date,o)),l=e.some(e=>_xeUtils.default.isDateSame(n,e.date,o)),u=e.some(e=>e.isNow);return(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/d.length+"%"}},e.map((t,e)=>(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":e?t.isNow:u,"is--next":t.isNext,"is--disabled":C(t),"is--selected":a,"is--hover":l}],style:Object.assign({},_xeUtils.default.isFunction(r)?r({type:i,viewType:i,date:t.date,$calendar:y}):r,{width:`${e?13:9}%`}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.label))])))}))])]},_e=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=J.value,s=a.value,d="yyyyMM";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,getI18n("vxe.input.date.months.m"+t.month)))])}))))])]},xe=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=A.value,s=a.value,d="yyyyq";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,getI18n("vxe.input.date.quarters.q"+t.quarter)))])}))))])]},fe=()=>{let{multiple:l,cellStyle:u}=c,{datePanelType:r,datePanelValue:i}=m,n=h.value,e=g.value,s=a.value,d="yyyy";return[(0,_vue.h)("div",{class:["vxe-calendar--view-wrapper","type--"+r]},[(0,_vue.h)("div",{class:"vxe-calendar--view-body"},e.map(a=>(0,_vue.h)("div",{class:"vxe-calendar--view-row",style:{height:100/e.length+"%"}},a.map(t=>{var e=l?s.some(e=>_xeUtils.default.isDateSame(e,t.date,d)):_xeUtils.default.isDateSame(n,t.date,d);return(0,_vue.h)("div",{class:["vxe-calendar--view-item",{"is--prev":t.isPrev,"is--current":t.isCurrent,"is--now":t.isNow,"is--next":t.isNext,"is--disabled":C(t),"is--selected":e,"is--hover":_xeUtils.default.isDateSame(i,t.date,d)}],style:Object.assign({},_xeUtils.default.isFunction(u)?u({type:r,viewType:r,date:t.date,$calendar:y}):u,{width:100/a.length+"%"}),onClick:e=>k(e,t),onContextmenu:e=>T(e,t),onMouseenter:()=>N(t),onMouseleave:q},[(0,_vue.h)("div",{class:"vxe-calendar--view-item-inner"},Y(t,t.year))])}))))])]},ge=()=>{var e=m.datePanelType;switch(e){case"week":return me();case"month":return _e();case"quarter":return xe();case"year":return fe()}return he()},W=(e,t,a)=>{l(e,(0,_ui.createEvent)(a,{$input:y},t))};t={dispatchEvent:W};Object.assign(y,t);return y.renderVN=()=>{var{className:e,type:t}=c,a=F.value,l=j.value,u=I.value;return(0,_vue.h)("div",{ref:r,class:["vxe-calendar","type--"+t,e,{["size--"+a]:a,"is--disabled":l}],style:u},[(t=c.multiple,e=m.datePanelType,a=i.value,l=d.value,u=B.value,[(0,_vue.h)("div",{class:"vxe-calendar--header"},[(0,_vue.h)("div",{class:"vxe-calendar--type-wrapper"},["year"===e?(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-label",disabled:"year"===e,content:u.y}):(0,_vue.h)("span",{class:"vxe-calendar--date-picker-btns"},[(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-btn",content:u.y,onClick:le}),u.m?(0,_vue.h)(_button.default,{class:"vxe-calendar--date-picker-btn",content:u.m,onClick:ue}):(0,_ui.renderEmptyElement)(y)])]),(0,_vue.h)("div",{class:"vxe-calendar--btn-wrapper"},[(0,_vue.h)(_button.default,{disabled:a,icon:"vxe-icon-caret-left",onClick:re}),(0,_vue.h)(_button.default,{icon:"vxe-icon-dot",onClick:ie}),(0,_vue.h)(_button.default,{disabled:l,icon:"vxe-icon-caret-right",onClick:ne}),t&&E.value?(0,_vue.h)("span",{class:"vxe-calendar--btn vxe-calendar--confirm-btn"},[(0,_vue.h)("button",{class:"vxe-calendar--confirm",type:"button",onClick:pe},getI18n("vxe.button.confirm"))]):null])]),(0,_vue.h)("div",{class:"vxe-calendar--body"},ge())])])},(0,_vue.watch)(()=>c.modelValue,e=>{m.inputValue=e,Z()}),(0,_vue.watch)(()=>c.type,()=>{Object.assign(m,{selectValue:null,inputValue:null,datePanelValue:null,datePanelLabel:"",datePanelType:"day",selectMonth:null,currentDate:null}),ee(),ye()}),(0,_vue.watch)(v,()=>{n.value&&(M(m.datePanelValue),m.inputValue=c.multiple?u.value:m.datePanelLabel)}),(0,_vue.onMounted)(()=>{var e=c.menuConfig,t=_ui.VxeUI.getComponent("VxeContextMenu");e&&!t&&errLog("vxe.error.reqComp",["vxe-context-menu"]),ye()}),ee(),y},render(){return this.renderVN()}});
|
|
@@ -16,6 +16,9 @@ var _list = _interopRequireDefault(require("../../list/src/list"));
|
|
|
16
16
|
var _input = _interopRequireDefault(require("../../input/src/input"));
|
|
17
17
|
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
const {
|
|
20
|
+
errLog
|
|
21
|
+
} = (0, _log.createComponentLog)('cascader');
|
|
19
22
|
/**
|
|
20
23
|
* 生成节点的唯一主键
|
|
21
24
|
*/
|
|
@@ -1929,7 +1932,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1929
1932
|
loadData(props.options || []);
|
|
1930
1933
|
(0, _vue.onMounted)(() => {
|
|
1931
1934
|
if (props.filterable) {
|
|
1932
|
-
|
|
1935
|
+
errLog('vxe.error.notProp', ['filterable']);
|
|
1933
1936
|
}
|
|
1934
1937
|
_ui.globalEvents.on($xeCascader, 'mousewheel', handleGlobalMousewheelEvent);
|
|
1935
1938
|
_ui.globalEvents.on($xeCascader, 'mousedown', handleGlobalMousedownEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_list=_interopRequireDefault(require("../../list/src/list")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createReactData(){return{initialized:!1,searchValue:"",searchLoading:!1,currentCunkList:[],currentItems:[],currentNode:null,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,fullOptFlag:1,lazyOptFlag:1}}function createInternalData(){return{listVirtualYOpts:{enabled:!0,gt:20},afterTreeList:[],treeFullData:[],afterVisibleList:[],nodeMaps:{},fullNodeMaps:{},lazyNodeMaps:{},indeterminateRowMaps:{},selectCheckboxMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCascader",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().cascader.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().cascader.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,showFullLabel:{type:Boolean,default:(0,_ui.getConfig)().cascader.showFullLabel},separator:{type:String,default:(0,_ui.getConfig)().cascader.separator},multiple:Boolean,className:[String,Function],prefixIcon:String,lazyOptions:Array,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().cascader.size||(0,_ui.getConfig)().size},treeConfig:Object,showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckbox},checkboxConfig:Object,remote:Boolean,remoteConfig:Function,popupConfig:Object,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showClearButton}},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click","node-expand","current-change","radio-change","checkbox-change","load-success","load-error","visible-change"],setup(F,e){let{emit:l,slots:V}=e,d=(0,_vue.inject)("$xeModal",null),c=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),r=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var a=_xeUtils.default.uniqueId();let $=(0,_ui.useSize)(F).computeSize,I=(0,_vue.ref)(),L=(0,_vue.ref)(),T=(0,_vue.ref)(),j=(0,_vue.ref)(),w=(0,_vue.ref)(),P=(0,_vue.reactive)(createReactData()),U=createInternalData(),k={refElem:I},q=(0,_vue.computed)(()=>{var e=F.readonly;return null===e?!!r&&r.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=F.disabled;return null===e?!!r&&r.props.disabled:e}),D=(0,_vue.computed)(()=>{var e=B.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(E||d||c||r)}),O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.treeConfig,F.treeConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.radioConfig,F.radioConfig)),g=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.checkboxConfig,F.checkboxConfig)),B=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.popupConfig,F.popupConfig)),y=(0,_vue.computed)(()=>F.optionProps||{}),A=(0,_vue.computed)(()=>y.value.label||"label"),p=(0,_vue.computed)(()=>y.value.value||"value"),M=(0,_vue.computed)(()=>O.value.keyField||"id"),K=(0,_vue.computed)(()=>O.value.parentField||"parentId"),z=(0,_vue.computed)(()=>O.value.childrenField||"children"),x=(0,_vue.computed)(()=>O.value.mapChildrenField||"mapChildren"),H=(0,_vue.computed)(()=>O.value.hasChildField||"hasChild"),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.remoteConfig,F.remoteConfig)),Y=(0,_vue.computed)(()=>{var e=F.modelValue;return _xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]}),W=(0,_vue.computed)(()=>{let t=F.showFullLabel,{fullOptFlag:l,lazyOptFlag:r}=P,{fullNodeMaps:i,lazyNodeMaps:n}=U,u=A.value;return Y.value.map(e=>{var a=i[e];if(l&&a)return t?a.fullLabel:a.item[u];if(r){a=n[e];if(a)return t?a.fullLabel:a.item[u]}return e}).join(", ")}),Z=(0,_vue.computed)(()=>{var{currentCunkList:e,panelStyle:a}=P,{height:t,nodeWidth:l,nodeHeight:r}=B.value,a=Object.assign(Object.assign({},a),{"--vxe-ui-cascader-chunk-size":e.length});return t&&(a["--vxe-ui-cascader-chunk-height"]=(0,_dom.toCssUnit)(t)),l&&(a["--vxe-ui-cascader-node-width"]=(0,_dom.toCssUnit)(l)),r&&(a["--vxe-ui-cascader-node-height"]=(0,_dom.toCssUnit)(r)),a}),G=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.filterConfig,F.filterConfig)),J={},R={xID:a,props:F,context:e,reactData:P,internalData:U,getRefMaps:()=>k,getComputeMaps:()=>J},m=(e,a,t)=>{l(e,(0,_ui.createEvent)(t,{$cascader:R},a))},Q=e=>{l("update:modelValue",e)};a={dispatchEvent:m};let S=e=>e?(e=e[p.value],(0,_util.enNodeValue)(e)):"";let ee=(e,t)=>{let l=U.selectCheckboxMaps;var a=x.value,r=z.value,i=g.value.checkStrictly,n=O.value.transform,u=e=>{var a=S(e);t?l[a]||(l[a]=e):l[a]&&delete l[a]};i?e.forEach(u):_xeUtils.default.eachTree(e,u,{children:n?a:r}),P.updateCheckboxFlag++,b()},ae=(e,t)=>{let l=U.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let a=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=l[e];e&&a.push(e.item)}),ee(a,t)}return(0,_vue.nextTick)()},te=()=>{var e,a=F.modelValue,t=U.nodeMaps;let l={};F.multiple?a&&a.length&&(e=a,U.selectCheckboxMaps={},ae(e,!0)):a&&(t=t[e=(0,_util.enNodeValue)(_xeUtils.default.isArray(a)?a[0]:a)])&&(t.nodes.forEach(e=>{l[S(e)]=!0}),P.selectRadioKey=e),U.treeExpandedMaps=l},le=()=>{let o=F.separator;var e=U.treeFullData;let s=p.value,d=A.value;var a=z.value;let c={},v={};_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{let n=S(e);n||(n=getNodeUniqueId(),e[s]=n);var u=e[s],e={item:e,index:a,$index:-1,_index:-1,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")};c[n]=e,v[u]=e},{children:a}),U.nodeMaps=c,U.fullNodeMaps=v,P.fullOptFlag++},re=()=>{let o=F.separator,{afterTreeList:e,nodeMaps:s}=U,d=A.value;var a=z.value,t=x.value,l=O.value.transform;let c=0;_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e),u=s[n];u?(u.items=t,u.treeIndex=a,u._index=c):(u={item:e,index:a,$index:-1,_index:c,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")},s[n]=u),c++},{children:l?t:a})},ie=()=>{var a=P.searchValue,{treeFullData:t,lastFilterValue:e}=U;let l=A.value;var r=z.value,i=x.value,n=O.value.transform;let{beforeFilterMethod:u,filterMethod:o,afterFilterMethod:s}=G.value,d=t,c=d,v="";if(a){v=""+a;a=o?e=>o({$cascader:R,node:e,filterValue:v}):e=>-1<String(e[l]).toLowerCase().indexOf(v.toLowerCase());let e={$cascader:R,filterValue:v};u&&u(e),d=n?c=_xeUtils.default.searchTree(t,a,{original:!0,isEvery:!0,children:r,mapChildren:i}):t.filter(a),U.lastFilterValue=v,(0,_vue.nextTick)(()=>{s&&s(e)})}else{if(n&&(c=_xeUtils.default.searchTree(t,()=>!0,{original:!0,isEvery:!0,children:r,mapChildren:i}),d=c,e)){let e={$cascader:R,filterValue:v};u&&u(e),(0,_vue.nextTick)(()=>{s&&s(e)})}U.lastFilterValue=""}U.afterVisibleList=d,U.afterTreeList=c,re()},v=()=>{let{afterTreeList:e,treeExpandedMaps:o}=U;var a=x.value,t=O.value.transform;let s={};if(t){let u=[];return _xeUtils.default.eachTree(e,(e,a,t,l,r)=>{var i=S(e),n=S(r);(!r||s[n]&&o[n])&&(s[i]=1,u.push(e))},{children:a}),U.afterVisibleList=u}return U.afterVisibleList},h=e=>{let t=U.nodeMaps,a=U.afterVisibleList;e&&(ie(),a=v());e=a.slice(0);e.forEach((e,a)=>{e=S(e),e=t[e];e&&(e.$index=a)}),P.treeList=e},ne=_xeUtils.default.debounce(()=>h(!0),350,{trailing:!0}),ue=e=>{var a=O.value,t=M.value,l=K.value,r=z.value,{rootParentValue:i,rootValues:n}=a,a=a.transform,a=a?_xeUtils.default.toArrayTree(e,{key:t,parentKey:l,mapChildren:r,rootParentValue:i,rootValues:n}):e?e.slice(0):[];return U.treeFullData=a,le(),h(!0),te(),oe(),u(),(0,_vue.nextTick)()},u=()=>{var l=P.currentItems,r=U.treeFullData,i=z.value,n=[r];if(l.length){let e=0,a=l[e],t=r;for(;a&&t&&t.length;){a=l[e++];var u=t.find(e=>a===S(e));if(!(t=u?u[i]:[])||!t.length)break;n.push(t)}}P.currentCunkList=n},oe=()=>{var e=U.treeFullData,t=Y.value,l=z.value,r=x.value,i=O.value.transform;let n=[],u={};if(t.length){let a=(0,_util.enNodeValue)(_xeUtils.default.last(t));t=_xeUtils.default.findTree(e,e=>a===S(e),{children:i?r:l});t&&(e=t.nodes,e.forEach(e=>{e=S(e);u[e]=!0,n.push(e)}))}U.treeExpandedMaps=u,P.currentItems=n},se=()=>{var e=B.value.zIndex;e?P.panelIndex=e:P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},o=()=>{let t=P.panelIndex,l=I.value,r=w.value,i=D.value,n=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(l,r,{placement:n.placement,defaultPlacement:n.defaultPlacement,teleportTo:i,isMinWidth:!1}),a=Object.assign(e.style,{zIndex:t});P.panelStyle=a,P.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},t=e=>{var{loading:a,remote:t,filterable:l}=F,r=U.treeFullData,i=N.value,n=X.value;a||i||(clearTimeout(U.hpTimeout),P.initialized||(P.initialized=!0),P.isActivated=!0,P.isAniVisible=!0,l&&t&&n.enabled&&n.autoLoad&&!r.length&&Ue(),setTimeout(()=>{P.visiblePanel=!0,Ee()},10),se(),o(),m("visible-change",{visible:!0},e||null))},s=e=>{P.visiblePanel=!1,U.hpTimeout=setTimeout(()=>{P.isAniVisible=!1},350),m("visible-change",{visible:!1},e||null)},de=e=>(P.currentNode=e,(0,_vue.nextTick)()),ce=e=>{let t={};var a=z.value,l=x.value,r=O.value.transform;let i=[],n=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var a=S(e);i.push(a),n.push(e),t[a]=!0},{children:r?l:a}),U.indeterminateRowMaps={},U.selectCheckboxMaps=t,P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:i,checkNodes:n}))},ve=()=>(U.indeterminateRowMaps={},U.selectCheckboxMaps={},P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))),f=(e,a,t)=>{a=_xeUtils.default.isArray(a)?a.map(_util.deNodeValue):(0,_util.deNodeValue)(a);Q(a),a!==F.modelValue&&(m("change",{value:a,node:t,option:t},e),r)&&i&&r.triggerItemEvent(e,i.itemConfig.field,a)},pe=(e,a)=>{f(e,a,null),m("clear",{value:a},e)},he=(e,a)=>{pe(a,null),s(a)},fe=e=>{let t=e.$event,{multiple:a,checkedClosable:l}=F;a&&ce(!0).then(({checkNodeKeys:e,checkNodes:a})=>{f(t,e,a[0]),m("all-change",{value:e},t),l&&s(t)})},_e=e=>{let a=e.$event,{multiple:t,checkedClosable:l}=F;e=t?[]:null;ve().then(()=>{l&&s(a)}),f(a,e,null),m("clear",{value:e},a)},ge=e=>{e=e.$event;s(e)},xe=e=>{var a=P.visiblePanel;N.value||a&&(a=w.value,(0,_dom.getEventTargetNode)(e,a).flag?o():s(e))},me=e=>{var a,t,l=P.visiblePanel;N.value||(a=I.value,t=w.value,P.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!P.isActivated&&s(e))},be=e=>{var{visiblePanel:a,isActivated:t}=P;a&&s(e),t&&(P.isActivated=!1),(a||t)&&(e=L.value)&&e.blur()},Ce=()=>{var e=P.visiblePanel;e&&o()},Ee=()=>{F.filterable&&(0,_vue.nextTick)(()=>{var e=T.value;e&&e.focus()})},ke=(e,a)=>{e.preventDefault();P.currentNode=a,m("current-change",{node:a,checked:!0},e)},ye=(e,a)=>{e.preventDefault(),e.stopPropagation();var t=U.nodeMaps,l=_.value,r=z.value,{checkMode:l,checkMethod:i}=l,n=S(a),r=a[r],r=r&&0<r.length,t=(t[n]||{}).level;(i?i({$cascader:R,node:a}):C(l,r,t))&&(i=n,P.selectRadioKey=i,f(e,i,a),s(e))},Me=i=>{var e=g.value;let t=O.value.loadMethod,n=e.checkStrictly;return new Promise(e=>{if(t){var a=U.nodeMaps;let l=S(i),r=a[l];U.treeExpandLazyLoadedMaps[l]=!0,Promise.resolve(t({$cascader:R,node:i})).then(t=>{var e=U.treeExpandLazyLoadedMaps;if(r.treeLoaded=!0,e[l]&&(e[l]=!1),t=_xeUtils.default.isArray(t)?t:[])return R.loadChildrenNode(i,t).then(e=>{var a=U.treeExpandedMaps;return e.length&&!a[l]&&(a[l]=!0),P.updateExpandedFlag++,!n&&R.isCheckedByCheckboxNodeId(l)&&ee(e,!0),m("load-success",{node:i,data:t},new Event("load-success")),(0,_vue.nextTick)()});m("load-success",{node:i,data:t},new Event("load-success"))}).catch(e=>{var a=U.treeExpandLazyLoadedMaps;r.treeLoaded=!1,a[l]&&(a[l]=!1),m("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>{v(),h()})}else e()})},Ie=(e,a)=>{let{treeExpandLazyLoadedMaps:l,treeExpandedMaps:r}=U,i=U.nodeMaps,n=z.value,u=H.value;let{lazy:o,toggleMethod:t}=O.value,s=[];var e=(e=t?e.filter(e=>t({$cascader:R,expanded:a,node:e})):e).length?[e[e.length-1]]:[],d=S(e[0]),d=i[d];d&&d.items.forEach(e=>{e=S(e);r[e]&&delete r[e]});let c=[];return a?e.forEach(e=>{var a,t=S(e);r[t]||(a=i[t],o&&e[u]&&!a.treeLoaded&&!l[t]?s.push(Me(e)):e[n]&&e[n].length&&(r[t]=!0,c.push(e)))}):e.forEach(e=>{var a=S(e);r[a]&&(delete r[a],c.push(e))}),P.updateExpandedFlag++,v(),h(),Promise.all(s)},Le=(e,a,t,l)=>{var r=P.currentItems,i=U.treeExpandLazyLoadedMaps,n=O.value.lazy,r=r.slice(0,l),l=S(a);e.stopPropagation(),r.push(l),P.currentItems=r,n&&i[l]||Ie([a],!0),de(a),u(),m("node-expand",{node:a,expanded:!0},e)},b=()=>{let{selectCheckboxMaps:o,indeterminateRowMaps:s,afterTreeList:e}=U,i=z.value;var a=x.value;let{checkStrictly:t,checkMethod:d}=g.value;var n=O.value.transform;if(!t){let l={},r=[];_xeUtils.default.eachTree(e,e=>{var a=S(e),t=e[i];t&&t.length&&!l[a]&&(l[a]=1,r.unshift([e,a,t]))},{children:n?a:i}),r.forEach(e=>{var a=e[0],t=e[1],e=e[2];let l=0,r=0,i=0;var n=e.length;e.forEach(d?e=>{var a=S(e),t=o[a];d({$cascader:R,node:e})?(t?l++:s[a]&&r++,i++):t?l++:s[a]&&r++}:e=>{e=S(e);o[e]?l++:s[e]&&r++,i++});let u=!1;e=!(u=0<n?0<i?(0<l||0<r)&&l>=i:0<l&&l>=i||!!o[t]:o[t])&&(0<l||0<r);u?(o[t]=a,s[t]&&delete s[t]):(o[t]&&delete o[t],e?s[t]=a:s[t]&&delete s[t])}),P.updateCheckboxFlag++}},Te=(e,t)=>{e.preventDefault(),e.stopPropagation();let{selectCheckboxMaps:l,nodeMaps:a}=U;var r=z.value,i=x.value,{checkStrictly:n,checkMode:u,checkMethod:o}=g.value,s=O.value.transform,d=S(t),c=t[r],c=c&&0<c.length,v=(a[d]||{}).level,o=o?!o({$cascader:R,node:t}):!C(u,c,v);if(!o){let a=!1;l[d]?delete l[d]:(a=!0,l[d]=t),n||_xeUtils.default.eachTree(_xeUtils.default.get(t,s?i:r),e=>{e=S(e);a?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:s?i:r}),P.updateCheckboxFlag++,b();u=_xeUtils.default.keys(l);f(e,u,t)}},we=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=F,u=O.value,o=_.value,s=g.value,d=z.value,c=x.value,{transform:u,trigger:v}=u,u=a[u?c:d];let p=!1,h=!1,f=!1;ke(e,a),"icon"!==v&&(f=!0,Le(e,a,t,l)),r?"node"!==s.trigger&&(i||u&&u.length)||(h=!0,Te(e,a)):"node"!==o.trigger&&(n||u&&u.length)||(p=!0,ye(e,a)),m("node-click",{node:a,triggerCurrent:!0,triggerRadio:p,triggerCheckbox:h,triggerExpand:f},e)},Ne=e=>{N.value||P.visiblePanel||(P.triggerFocusPanel=!0,t(e),setTimeout(()=>{P.triggerFocusPanel=!1},150)),m("focus",{},e)},Fe=e=>{e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:P.visiblePanel||t(e),m("click",{},e)},Ve=e=>{P.isActivated=!1,m("blur",{},e)},Pe=e=>{P.searchValue=e,ne(new Event("filter"))},Ue=()=>{var{modelValue:e,remote:a}=F,t=P.searchValue,l=X.value,r=l.queryMethod;a&&r&&l.enabled&&(P.searchLoading=!0,Promise.resolve(r({$cascader:R,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{P.searchLoading=!1}))},De=e=>{e=e.$event;e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:(P.visiblePanel?s:t)(e)},C=(Object.assign(R,a,{isCheckedByCheckboxNodeId:e=>{var a=P.updateCheckboxFlag,t=U.selectCheckboxMaps;return!(!a||!t[e])},loadChildrenNode(a,e){let u=F.separator,o=U.nodeMaps;var t=O.value;let s=A.value,{lazy:l,transform:r}=t;if(!l)return Promise.resolve([]);let i=z.value,n=x.value,d=o[S(a)],c=d?d.level:0,v=d?d.nodes:[];return(e=>{let t=p.value;return Promise.resolve(e.map(e=>{var a,e=Object.assign({},e);return S(e)||(a=getNodeUniqueId(),_xeUtils.default.set(e,t,a)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e);o[n]={item:e,index:-1,$index:-1,_index:-1,items:t,parent:r||d.item,nodes:v.concat(i),level:c+i.length,treeIndex:-1,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[s]).join(u||" / ")}},{children:i}),a[i]=e,r&&(a[n]=e),re(),e))}}),(e,a,t)=>{if(e){if("first"===e)return!t;if("last"===e)return!a}return!0}),Oe=(t,e,l,r)=>{var a=F.showRadio,{checkMode:i,checkMethod:n,visibleMode:u,visibleMethod:o}=_.value,o=o?o({$cascader:R,node:t}):C(u,e,l);if(a&&o){let a=n?!n({$cascader:R,node:t}):!C(i,e,l);return(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":r,"is--disabled":a}],onClick:e=>{a||ye(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",r?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)},Be=(t,e,l,r,i)=>{var a=F.showCheckbox,{checkMode:n,checkMethod:u,visibleMode:o,visibleMethod:s}=g.value,s=s?s({$cascader:R,node:t}):C(o,e,l);if(a&&s){let a=u?!u({$cascader:R,node:t}):!C(n,e,l);return(0,_vue.h)("div",{class:["vxe-cascader--checkbox-option",{"is--checked":r,"is--indeterminate":i,"is--disabled":a}],onClick:e=>{a||Te(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:r?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)};(0,_vue.watch)(()=>F.modelValue,()=>{P.visiblePanel||(te(),oe(),u())}),(0,_vue.watch)(()=>F.options,()=>{le()});let n=(0,_vue.ref)(0);return(0,_vue.watch)(()=>F.options?F.options.length:0,()=>{n.value++}),(0,_vue.watch)(()=>F.options,()=>{n.value++}),(0,_vue.watch)(n,()=>{ue(F.options||[])}),ue(F.options||[]),(0,_vue.onMounted)(()=>{F.filterable&&(0,_log.errLog)("vxe.error.notProp",["filterable"]),_ui.globalEvents.on(R,"mousewheel",xe),_ui.globalEvents.on(R,"mousedown",me),_ui.globalEvents.on(R,"blur",be),_ui.globalEvents.on(R,"resize",Ce)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize"),_xeUtils.default.assign(U,createInternalData())}),(0,_vue.provide)("$xeCascader",R),R.renderVN=()=>{var{className:e,modelValue:a,multiple:t,loading:l,filterable:r,showTotalButton:i,showCheckedButton:n,showClearButton:u,showCloseButton:o}=F,{initialized:s,isActivated:d,isAniVisible:c,visiblePanel:v,searchValue:p,currentCunkList:h}=P;let f=U.listVirtualYOpts;var _=$.value,g=N.value,x=W.value,m=D.value,b=q.value,C=Z.value,E=V.header,k=V.footer;let y=V.prefix;var M=B.value.className;return b?(0,_vue.h)("div",{ref:I,class:["vxe-cascader--readonly",e]},[(0,_vue.h)("span",{class:"vxe-cascader-label"},x)]):(b=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],(0,_vue.h)("div",{ref:I,class:["vxe-cascader",e?_xeUtils.default.isFunction(e)?e({$cascader:R}):e:"",{["size--"+_]:_,"is--filterable":r,"is--visible":v,"is--disabled":g,"is--loading":l,"is--active":d}]},[(0,_vue.h)(_input.default,{ref:L,clearable:F.clearable,placeholder:l?(0,_ui.getI18n)("vxe.select.loadingText"):F.placeholder,editable:!1,disabled:g,type:"text",prefixIcon:F.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().TREE_SELECT_LOADED:v?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:l?"":x,title:x,onClear:he,onClick:Fe,onFocus:Ne,onBlur:Ve,onSuffixClick:De},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!s},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-cascader--panel",M?_xeUtils.default.isFunction(M)?M({$cascader:R}):M:"",{["size--"+_]:_,"is--transfer":m,"ani--leave":!l&&c,"ani--enter":!l&&v}],placement:P.panelPlacement,style:C},s?[(0,_vue.h)("div",{class:"vxe-cascader--panel-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-cascader--panel-search"},[(0,_vue.h)(_input.default,{ref:T,class:"vxe-cascader-search--input",modelValue:p,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.cascader.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Pe})]):(0,_ui.renderEmptyElement)(R),n&&t||u||E?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},E?E({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[n&&u?(0,_vue.h)("div",{class:"vxe-tree-select--selected-btns"},[n&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(R),u?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:_e}):(0,_ui.renderEmptyElement)(R)]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-cascader--panel-body"},[(0,_vue.h)("div",{ref:j,class:"vxe-cascader-chunk--wrapper"},[h.map((t,l)=>(0,_vue.h)("div",{key:l,class:"vxe-cascader-chunk--item-wrapper"},[(0,_vue.h)(_list.default,{data:t,virtualYConfig:f},{default(e){e=e.items;return e.map((e,a)=>((a,e,t,l,r)=>{var i=F.multiple,{currentNode:n,selectRadioKey:u,updateCheckboxFlag:o,updateExpandedFlag:s}=P,{nodeMaps:d,selectCheckboxMaps:c,indeterminateRowMaps:v,treeExpandedMaps:p,treeExpandLazyLoadedMaps:h}=U;let f=O.value;var{lazy:_,iconLoaded:g,iconOpen:x,iconClose:m}=f,b=z.value,C=A.value,E=H.value,b=a[b],b=b&&0<b.length,k=V.icon,y=V.title,s=s&&p[e],p=d[e]||{},d=a[C],C=p.level;let M=!1,I=(i||(M=e===u),!1),L=!1,T=(i&&(I=!(!o||!c[e]),L=!(!o||!v[e])),!1),w=!1,N=!1;_&&(w=!!h[e],T=a[E],N=!!p.treeLoaded);u={node:a};return(0,_vue.h)("div",{key:r+"_"+t,class:["vxe-cascader-chunk--node-item",{"is--current":n&&(n===a||S(n)===e),"is-radio--checked":M,"is-checkbox--checked":I,"is-checkbox--indeterminate":L,"is--expand":s}],title:d,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick(e){we(e,a,l,r)}},[i?Be(a,b,C,I,L):Oe(a,b,C,M),(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-title"},y?(0,_ui.getSlotVNs)(y(u)):d)]),f.showIcon&&(!_||N?b:T)?(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-switcher"},[[(0,_vue.h)("div",{class:"vxe-cascader--node-item-icon",onClick(e){"icon"===f.trigger&&Le(e,a,l,r)}},k?(0,_ui.getSlotVNs)(k(u)):[(0,_vue.h)("i",{class:w?g||(0,_ui.getIcon)().CASCADER_NODE_LOADED:s?x||(0,_ui.getIcon)().CASCADER_NODE_OPEN:m||(0,_ui.getIcon)().CASCADER_NODE_CLOSE})])]]):(0,_ui.renderEmptyElement)(R)])})(e,S(e),a,t,l))}})]))])]),k||i||o&&t?(0,_vue.h)("div",{class:"vxe-cascader--panel-footer"},k?k({}):[(0,_vue.h)("div",{class:"vxe-cascader--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-cascader--total-btns"},(0,_ui.getI18n)("vxe.treeSelect.total",[b.length])):(0,_ui.renderEmptyElement)(R),o&&t?(0,_vue.h)("div",{class:"vxe-cascader--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:ge})]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R)])]:[])])]))},R},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_list=_interopRequireDefault(require("../../list/src/list")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("cascader").errLog;function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createReactData(){return{initialized:!1,searchValue:"",searchLoading:!1,currentCunkList:[],currentItems:[],currentNode:null,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,fullOptFlag:1,lazyOptFlag:1}}function createInternalData(){return{listVirtualYOpts:{enabled:!0,gt:20},afterTreeList:[],treeFullData:[],afterVisibleList:[],nodeMaps:{},fullNodeMaps:{},lazyNodeMaps:{},indeterminateRowMaps:{},selectCheckboxMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCascader",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().cascader.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().cascader.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,showFullLabel:{type:Boolean,default:(0,_ui.getConfig)().cascader.showFullLabel},separator:{type:String,default:(0,_ui.getConfig)().cascader.separator},multiple:Boolean,className:[String,Function],prefixIcon:String,lazyOptions:Array,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().cascader.size||(0,_ui.getConfig)().size},treeConfig:Object,showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckbox},checkboxConfig:Object,remote:Boolean,remoteConfig:Function,popupConfig:Object,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showClearButton}},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click","node-expand","current-change","radio-change","checkbox-change","load-success","load-error","visible-change"],setup(F,e){let{emit:l,slots:V}=e,d=(0,_vue.inject)("$xeModal",null),c=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),r=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var a=_xeUtils.default.uniqueId();let $=(0,_ui.useSize)(F).computeSize,L=(0,_vue.ref)(),I=(0,_vue.ref)(),T=(0,_vue.ref)(),j=(0,_vue.ref)(),w=(0,_vue.ref)(),P=(0,_vue.reactive)(createReactData()),U=createInternalData(),k={refElem:L},q=(0,_vue.computed)(()=>{var e=F.readonly;return null===e?!!r&&r.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=F.disabled;return null===e?!!r&&r.props.disabled:e}),D=(0,_vue.computed)(()=>{var e=B.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(E||d||c||r)}),O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.treeConfig,F.treeConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.radioConfig,F.radioConfig)),g=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.checkboxConfig,F.checkboxConfig)),B=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.popupConfig,F.popupConfig)),y=(0,_vue.computed)(()=>F.optionProps||{}),A=(0,_vue.computed)(()=>y.value.label||"label"),p=(0,_vue.computed)(()=>y.value.value||"value"),M=(0,_vue.computed)(()=>O.value.keyField||"id"),K=(0,_vue.computed)(()=>O.value.parentField||"parentId"),z=(0,_vue.computed)(()=>O.value.childrenField||"children"),x=(0,_vue.computed)(()=>O.value.mapChildrenField||"mapChildren"),H=(0,_vue.computed)(()=>O.value.hasChildField||"hasChild"),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.remoteConfig,F.remoteConfig)),Y=(0,_vue.computed)(()=>{var e=F.modelValue;return _xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]}),W=(0,_vue.computed)(()=>{let t=F.showFullLabel,{fullOptFlag:l,lazyOptFlag:r}=P,{fullNodeMaps:i,lazyNodeMaps:n}=U,u=A.value;return Y.value.map(e=>{var a=i[e];if(l&&a)return t?a.fullLabel:a.item[u];if(r){a=n[e];if(a)return t?a.fullLabel:a.item[u]}return e}).join(", ")}),Z=(0,_vue.computed)(()=>{var{currentCunkList:e,panelStyle:a}=P,{height:t,nodeWidth:l,nodeHeight:r}=B.value,a=Object.assign(Object.assign({},a),{"--vxe-ui-cascader-chunk-size":e.length});return t&&(a["--vxe-ui-cascader-chunk-height"]=(0,_dom.toCssUnit)(t)),l&&(a["--vxe-ui-cascader-node-width"]=(0,_dom.toCssUnit)(l)),r&&(a["--vxe-ui-cascader-node-height"]=(0,_dom.toCssUnit)(r)),a}),G=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.filterConfig,F.filterConfig)),J={},R={xID:a,props:F,context:e,reactData:P,internalData:U,getRefMaps:()=>k,getComputeMaps:()=>J},m=(e,a,t)=>{l(e,(0,_ui.createEvent)(t,{$cascader:R},a))},Q=e=>{l("update:modelValue",e)};a={dispatchEvent:m};let S=e=>e?(e=e[p.value],(0,_util.enNodeValue)(e)):"";let ee=(e,t)=>{let l=U.selectCheckboxMaps;var a=x.value,r=z.value,i=g.value.checkStrictly,n=O.value.transform,u=e=>{var a=S(e);t?l[a]||(l[a]=e):l[a]&&delete l[a]};i?e.forEach(u):_xeUtils.default.eachTree(e,u,{children:n?a:r}),P.updateCheckboxFlag++,b()},ae=(e,t)=>{let l=U.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let a=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=l[e];e&&a.push(e.item)}),ee(a,t)}return(0,_vue.nextTick)()},te=()=>{var e,a=F.modelValue,t=U.nodeMaps;let l={};F.multiple?a&&a.length&&(e=a,U.selectCheckboxMaps={},ae(e,!0)):a&&(t=t[e=(0,_util.enNodeValue)(_xeUtils.default.isArray(a)?a[0]:a)])&&(t.nodes.forEach(e=>{l[S(e)]=!0}),P.selectRadioKey=e),U.treeExpandedMaps=l},le=()=>{let o=F.separator;var e=U.treeFullData;let s=p.value,d=A.value;var a=z.value;let c={},v={};_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{let n=S(e);n||(n=getNodeUniqueId(),e[s]=n);var u=e[s],e={item:e,index:a,$index:-1,_index:-1,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")};c[n]=e,v[u]=e},{children:a}),U.nodeMaps=c,U.fullNodeMaps=v,P.fullOptFlag++},re=()=>{let o=F.separator,{afterTreeList:e,nodeMaps:s}=U,d=A.value;var a=z.value,t=x.value,l=O.value.transform;let c=0;_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e),u=s[n];u?(u.items=t,u.treeIndex=a,u._index=c):(u={item:e,index:a,$index:-1,_index:c,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")},s[n]=u),c++},{children:l?t:a})},ie=()=>{var a=P.searchValue,{treeFullData:t,lastFilterValue:e}=U;let l=A.value;var r=z.value,i=x.value,n=O.value.transform;let{beforeFilterMethod:u,filterMethod:o,afterFilterMethod:s}=G.value,d=t,c=d,v="";if(a){v=""+a;a=o?e=>o({$cascader:R,node:e,filterValue:v}):e=>-1<String(e[l]).toLowerCase().indexOf(v.toLowerCase());let e={$cascader:R,filterValue:v};u&&u(e),d=n?c=_xeUtils.default.searchTree(t,a,{original:!0,isEvery:!0,children:r,mapChildren:i}):t.filter(a),U.lastFilterValue=v,(0,_vue.nextTick)(()=>{s&&s(e)})}else{if(n&&(c=_xeUtils.default.searchTree(t,()=>!0,{original:!0,isEvery:!0,children:r,mapChildren:i}),d=c,e)){let e={$cascader:R,filterValue:v};u&&u(e),(0,_vue.nextTick)(()=>{s&&s(e)})}U.lastFilterValue=""}U.afterVisibleList=d,U.afterTreeList=c,re()},v=()=>{let{afterTreeList:e,treeExpandedMaps:o}=U;var a=x.value,t=O.value.transform;let s={};if(t){let u=[];return _xeUtils.default.eachTree(e,(e,a,t,l,r)=>{var i=S(e),n=S(r);(!r||s[n]&&o[n])&&(s[i]=1,u.push(e))},{children:a}),U.afterVisibleList=u}return U.afterVisibleList},h=e=>{let t=U.nodeMaps,a=U.afterVisibleList;e&&(ie(),a=v());e=a.slice(0);e.forEach((e,a)=>{e=S(e),e=t[e];e&&(e.$index=a)}),P.treeList=e},ne=_xeUtils.default.debounce(()=>h(!0),350,{trailing:!0}),ue=e=>{var a=O.value,t=M.value,l=K.value,r=z.value,{rootParentValue:i,rootValues:n}=a,a=a.transform,a=a?_xeUtils.default.toArrayTree(e,{key:t,parentKey:l,mapChildren:r,rootParentValue:i,rootValues:n}):e?e.slice(0):[];return U.treeFullData=a,le(),h(!0),te(),oe(),u(),(0,_vue.nextTick)()},u=()=>{var l=P.currentItems,r=U.treeFullData,i=z.value,n=[r];if(l.length){let e=0,a=l[e],t=r;for(;a&&t&&t.length;){a=l[e++];var u=t.find(e=>a===S(e));if(!(t=u?u[i]:[])||!t.length)break;n.push(t)}}P.currentCunkList=n},oe=()=>{var e=U.treeFullData,t=Y.value,l=z.value,r=x.value,i=O.value.transform;let n=[],u={};if(t.length){let a=(0,_util.enNodeValue)(_xeUtils.default.last(t));t=_xeUtils.default.findTree(e,e=>a===S(e),{children:i?r:l});t&&(e=t.nodes,e.forEach(e=>{e=S(e);u[e]=!0,n.push(e)}))}U.treeExpandedMaps=u,P.currentItems=n},se=()=>{var e=B.value.zIndex;e?P.panelIndex=e:P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},o=()=>{let t=P.panelIndex,l=L.value,r=w.value,i=D.value,n=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(l,r,{placement:n.placement,defaultPlacement:n.defaultPlacement,teleportTo:i,isMinWidth:!1}),a=Object.assign(e.style,{zIndex:t});P.panelStyle=a,P.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},t=e=>{var{loading:a,remote:t,filterable:l}=F,r=U.treeFullData,i=N.value,n=X.value;a||i||(clearTimeout(U.hpTimeout),P.initialized||(P.initialized=!0),P.isActivated=!0,P.isAniVisible=!0,l&&t&&n.enabled&&n.autoLoad&&!r.length&&Ue(),setTimeout(()=>{P.visiblePanel=!0,Ee()},10),se(),o(),m("visible-change",{visible:!0},e||null))},s=e=>{P.visiblePanel=!1,U.hpTimeout=setTimeout(()=>{P.isAniVisible=!1},350),m("visible-change",{visible:!1},e||null)},de=e=>(P.currentNode=e,(0,_vue.nextTick)()),ce=e=>{let t={};var a=z.value,l=x.value,r=O.value.transform;let i=[],n=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var a=S(e);i.push(a),n.push(e),t[a]=!0},{children:r?l:a}),U.indeterminateRowMaps={},U.selectCheckboxMaps=t,P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:i,checkNodes:n}))},ve=()=>(U.indeterminateRowMaps={},U.selectCheckboxMaps={},P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))),f=(e,a,t)=>{a=_xeUtils.default.isArray(a)?a.map(_util.deNodeValue):(0,_util.deNodeValue)(a);Q(a),a!==F.modelValue&&(m("change",{value:a,node:t,option:t},e),r)&&i&&r.triggerItemEvent(e,i.itemConfig.field,a)},pe=(e,a)=>{f(e,a,null),m("clear",{value:a},e)},he=(e,a)=>{pe(a,null),s(a)},fe=e=>{let t=e.$event,{multiple:a,checkedClosable:l}=F;a&&ce(!0).then(({checkNodeKeys:e,checkNodes:a})=>{f(t,e,a[0]),m("all-change",{value:e},t),l&&s(t)})},_e=e=>{let a=e.$event,{multiple:t,checkedClosable:l}=F;e=t?[]:null;ve().then(()=>{l&&s(a)}),f(a,e,null),m("clear",{value:e},a)},ge=e=>{e=e.$event;s(e)},xe=e=>{var a=P.visiblePanel;N.value||a&&(a=w.value,(0,_dom.getEventTargetNode)(e,a).flag?o():s(e))},me=e=>{var a,t,l=P.visiblePanel;N.value||(a=L.value,t=w.value,P.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!P.isActivated&&s(e))},be=e=>{var{visiblePanel:a,isActivated:t}=P;a&&s(e),t&&(P.isActivated=!1),(a||t)&&(e=I.value)&&e.blur()},Ce=()=>{var e=P.visiblePanel;e&&o()},Ee=()=>{F.filterable&&(0,_vue.nextTick)(()=>{var e=T.value;e&&e.focus()})},ke=(e,a)=>{e.preventDefault();P.currentNode=a,m("current-change",{node:a,checked:!0},e)},ye=(e,a)=>{e.preventDefault(),e.stopPropagation();var t=U.nodeMaps,l=_.value,r=z.value,{checkMode:l,checkMethod:i}=l,n=S(a),r=a[r],r=r&&0<r.length,t=(t[n]||{}).level;(i?i({$cascader:R,node:a}):C(l,r,t))&&(i=n,P.selectRadioKey=i,f(e,i,a),s(e))},Me=i=>{var e=g.value;let t=O.value.loadMethod,n=e.checkStrictly;return new Promise(e=>{if(t){var a=U.nodeMaps;let l=S(i),r=a[l];U.treeExpandLazyLoadedMaps[l]=!0,Promise.resolve(t({$cascader:R,node:i})).then(t=>{var e=U.treeExpandLazyLoadedMaps;if(r.treeLoaded=!0,e[l]&&(e[l]=!1),t=_xeUtils.default.isArray(t)?t:[])return R.loadChildrenNode(i,t).then(e=>{var a=U.treeExpandedMaps;return e.length&&!a[l]&&(a[l]=!0),P.updateExpandedFlag++,!n&&R.isCheckedByCheckboxNodeId(l)&&ee(e,!0),m("load-success",{node:i,data:t},new Event("load-success")),(0,_vue.nextTick)()});m("load-success",{node:i,data:t},new Event("load-success"))}).catch(e=>{var a=U.treeExpandLazyLoadedMaps;r.treeLoaded=!1,a[l]&&(a[l]=!1),m("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>{v(),h()})}else e()})},Le=(e,a)=>{let{treeExpandLazyLoadedMaps:l,treeExpandedMaps:r}=U,i=U.nodeMaps,n=z.value,u=H.value;let{lazy:o,toggleMethod:t}=O.value,s=[];var e=(e=t?e.filter(e=>t({$cascader:R,expanded:a,node:e})):e).length?[e[e.length-1]]:[],d=S(e[0]),d=i[d];d&&d.items.forEach(e=>{e=S(e);r[e]&&delete r[e]});let c=[];return a?e.forEach(e=>{var a,t=S(e);r[t]||(a=i[t],o&&e[u]&&!a.treeLoaded&&!l[t]?s.push(Me(e)):e[n]&&e[n].length&&(r[t]=!0,c.push(e)))}):e.forEach(e=>{var a=S(e);r[a]&&(delete r[a],c.push(e))}),P.updateExpandedFlag++,v(),h(),Promise.all(s)},Ie=(e,a,t,l)=>{var r=P.currentItems,i=U.treeExpandLazyLoadedMaps,n=O.value.lazy,r=r.slice(0,l),l=S(a);e.stopPropagation(),r.push(l),P.currentItems=r,n&&i[l]||Le([a],!0),de(a),u(),m("node-expand",{node:a,expanded:!0},e)},b=()=>{let{selectCheckboxMaps:o,indeterminateRowMaps:s,afterTreeList:e}=U,i=z.value;var a=x.value;let{checkStrictly:t,checkMethod:d}=g.value;var n=O.value.transform;if(!t){let l={},r=[];_xeUtils.default.eachTree(e,e=>{var a=S(e),t=e[i];t&&t.length&&!l[a]&&(l[a]=1,r.unshift([e,a,t]))},{children:n?a:i}),r.forEach(e=>{var a=e[0],t=e[1],e=e[2];let l=0,r=0,i=0;var n=e.length;e.forEach(d?e=>{var a=S(e),t=o[a];d({$cascader:R,node:e})?(t?l++:s[a]&&r++,i++):t?l++:s[a]&&r++}:e=>{e=S(e);o[e]?l++:s[e]&&r++,i++});let u=!1;e=!(u=0<n?0<i?(0<l||0<r)&&l>=i:0<l&&l>=i||!!o[t]:o[t])&&(0<l||0<r);u?(o[t]=a,s[t]&&delete s[t]):(o[t]&&delete o[t],e?s[t]=a:s[t]&&delete s[t])}),P.updateCheckboxFlag++}},Te=(e,t)=>{e.preventDefault(),e.stopPropagation();let{selectCheckboxMaps:l,nodeMaps:a}=U;var r=z.value,i=x.value,{checkStrictly:n,checkMode:u,checkMethod:o}=g.value,s=O.value.transform,d=S(t),c=t[r],c=c&&0<c.length,v=(a[d]||{}).level,o=o?!o({$cascader:R,node:t}):!C(u,c,v);if(!o){let a=!1;l[d]?delete l[d]:(a=!0,l[d]=t),n||_xeUtils.default.eachTree(_xeUtils.default.get(t,s?i:r),e=>{e=S(e);a?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:s?i:r}),P.updateCheckboxFlag++,b();u=_xeUtils.default.keys(l);f(e,u,t)}},we=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=F,u=O.value,o=_.value,s=g.value,d=z.value,c=x.value,{transform:u,trigger:v}=u,u=a[u?c:d];let p=!1,h=!1,f=!1;ke(e,a),"icon"!==v&&(f=!0,Ie(e,a,t,l)),r?"node"!==s.trigger&&(i||u&&u.length)||(h=!0,Te(e,a)):"node"!==o.trigger&&(n||u&&u.length)||(p=!0,ye(e,a)),m("node-click",{node:a,triggerCurrent:!0,triggerRadio:p,triggerCheckbox:h,triggerExpand:f},e)},Ne=e=>{N.value||P.visiblePanel||(P.triggerFocusPanel=!0,t(e),setTimeout(()=>{P.triggerFocusPanel=!1},150)),m("focus",{},e)},Fe=e=>{e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:P.visiblePanel||t(e),m("click",{},e)},Ve=e=>{P.isActivated=!1,m("blur",{},e)},Pe=e=>{P.searchValue=e,ne(new Event("filter"))},Ue=()=>{var{modelValue:e,remote:a}=F,t=P.searchValue,l=X.value,r=l.queryMethod;a&&r&&l.enabled&&(P.searchLoading=!0,Promise.resolve(r({$cascader:R,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{P.searchLoading=!1}))},De=e=>{e=e.$event;e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:(P.visiblePanel?s:t)(e)},C=(Object.assign(R,a,{isCheckedByCheckboxNodeId:e=>{var a=P.updateCheckboxFlag,t=U.selectCheckboxMaps;return!(!a||!t[e])},loadChildrenNode(a,e){let u=F.separator,o=U.nodeMaps;var t=O.value;let s=A.value,{lazy:l,transform:r}=t;if(!l)return Promise.resolve([]);let i=z.value,n=x.value,d=o[S(a)],c=d?d.level:0,v=d?d.nodes:[];return(e=>{let t=p.value;return Promise.resolve(e.map(e=>{var a,e=Object.assign({},e);return S(e)||(a=getNodeUniqueId(),_xeUtils.default.set(e,t,a)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e);o[n]={item:e,index:-1,$index:-1,_index:-1,items:t,parent:r||d.item,nodes:v.concat(i),level:c+i.length,treeIndex:-1,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[s]).join(u||" / ")}},{children:i}),a[i]=e,r&&(a[n]=e),re(),e))}}),(e,a,t)=>{if(e){if("first"===e)return!t;if("last"===e)return!a}return!0}),Oe=(t,e,l,r)=>{var a=F.showRadio,{checkMode:i,checkMethod:n,visibleMode:u,visibleMethod:o}=_.value,o=o?o({$cascader:R,node:t}):C(u,e,l);if(a&&o){let a=n?!n({$cascader:R,node:t}):!C(i,e,l);return(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":r,"is--disabled":a}],onClick:e=>{a||ye(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",r?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)},Be=(t,e,l,r,i)=>{var a=F.showCheckbox,{checkMode:n,checkMethod:u,visibleMode:o,visibleMethod:s}=g.value,s=s?s({$cascader:R,node:t}):C(o,e,l);if(a&&s){let a=u?!u({$cascader:R,node:t}):!C(n,e,l);return(0,_vue.h)("div",{class:["vxe-cascader--checkbox-option",{"is--checked":r,"is--indeterminate":i,"is--disabled":a}],onClick:e=>{a||Te(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:r?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)};(0,_vue.watch)(()=>F.modelValue,()=>{P.visiblePanel||(te(),oe(),u())}),(0,_vue.watch)(()=>F.options,()=>{le()});let n=(0,_vue.ref)(0);return(0,_vue.watch)(()=>F.options?F.options.length:0,()=>{n.value++}),(0,_vue.watch)(()=>F.options,()=>{n.value++}),(0,_vue.watch)(n,()=>{ue(F.options||[])}),ue(F.options||[]),(0,_vue.onMounted)(()=>{F.filterable&&errLog("vxe.error.notProp",["filterable"]),_ui.globalEvents.on(R,"mousewheel",xe),_ui.globalEvents.on(R,"mousedown",me),_ui.globalEvents.on(R,"blur",be),_ui.globalEvents.on(R,"resize",Ce)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize"),_xeUtils.default.assign(U,createInternalData())}),(0,_vue.provide)("$xeCascader",R),R.renderVN=()=>{var{className:e,modelValue:a,multiple:t,loading:l,filterable:r,showTotalButton:i,showCheckedButton:n,showClearButton:u,showCloseButton:o}=F,{initialized:s,isActivated:d,isAniVisible:c,visiblePanel:v,searchValue:p,currentCunkList:h}=P;let f=U.listVirtualYOpts;var _=$.value,g=N.value,x=W.value,m=D.value,b=q.value,C=Z.value,E=V.header,k=V.footer;let y=V.prefix;var M=B.value.className;return b?(0,_vue.h)("div",{ref:L,class:["vxe-cascader--readonly",e]},[(0,_vue.h)("span",{class:"vxe-cascader-label"},x)]):(b=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],(0,_vue.h)("div",{ref:L,class:["vxe-cascader",e?_xeUtils.default.isFunction(e)?e({$cascader:R}):e:"",{["size--"+_]:_,"is--filterable":r,"is--visible":v,"is--disabled":g,"is--loading":l,"is--active":d}]},[(0,_vue.h)(_input.default,{ref:I,clearable:F.clearable,placeholder:l?(0,_ui.getI18n)("vxe.select.loadingText"):F.placeholder,editable:!1,disabled:g,type:"text",prefixIcon:F.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().TREE_SELECT_LOADED:v?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:l?"":x,title:x,onClear:he,onClick:Fe,onFocus:Ne,onBlur:Ve,onSuffixClick:De},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!s},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-cascader--panel",M?_xeUtils.default.isFunction(M)?M({$cascader:R}):M:"",{["size--"+_]:_,"is--transfer":m,"ani--leave":!l&&c,"ani--enter":!l&&v}],placement:P.panelPlacement,style:C},s?[(0,_vue.h)("div",{class:"vxe-cascader--panel-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-cascader--panel-search"},[(0,_vue.h)(_input.default,{ref:T,class:"vxe-cascader-search--input",modelValue:p,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.cascader.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Pe})]):(0,_ui.renderEmptyElement)(R),n&&t||u||E?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},E?E({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[n&&u?(0,_vue.h)("div",{class:"vxe-tree-select--selected-btns"},[n&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(R),u?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:_e}):(0,_ui.renderEmptyElement)(R)]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-cascader--panel-body"},[(0,_vue.h)("div",{ref:j,class:"vxe-cascader-chunk--wrapper"},[h.map((t,l)=>(0,_vue.h)("div",{key:l,class:"vxe-cascader-chunk--item-wrapper"},[(0,_vue.h)(_list.default,{data:t,virtualYConfig:f},{default(e){e=e.items;return e.map((e,a)=>((a,e,t,l,r)=>{var i=F.multiple,{currentNode:n,selectRadioKey:u,updateCheckboxFlag:o,updateExpandedFlag:s}=P,{nodeMaps:d,selectCheckboxMaps:c,indeterminateRowMaps:v,treeExpandedMaps:p,treeExpandLazyLoadedMaps:h}=U;let f=O.value;var{lazy:_,iconLoaded:g,iconOpen:x,iconClose:m}=f,b=z.value,C=A.value,E=H.value,b=a[b],b=b&&0<b.length,k=V.icon,y=V.title,s=s&&p[e],p=d[e]||{},d=a[C],C=p.level;let M=!1,L=(i||(M=e===u),!1),I=!1,T=(i&&(L=!(!o||!c[e]),I=!(!o||!v[e])),!1),w=!1,N=!1;_&&(w=!!h[e],T=a[E],N=!!p.treeLoaded);u={node:a};return(0,_vue.h)("div",{key:r+"_"+t,class:["vxe-cascader-chunk--node-item",{"is--current":n&&(n===a||S(n)===e),"is-radio--checked":M,"is-checkbox--checked":L,"is-checkbox--indeterminate":I,"is--expand":s}],title:d,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick(e){we(e,a,l,r)}},[i?Be(a,b,C,L,I):Oe(a,b,C,M),(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-title"},y?(0,_ui.getSlotVNs)(y(u)):d)]),f.showIcon&&(!_||N?b:T)?(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-switcher"},[[(0,_vue.h)("div",{class:"vxe-cascader--node-item-icon",onClick(e){"icon"===f.trigger&&Ie(e,a,l,r)}},k?(0,_ui.getSlotVNs)(k(u)):[(0,_vue.h)("i",{class:w?g||(0,_ui.getIcon)().CASCADER_NODE_LOADED:s?x||(0,_ui.getIcon)().CASCADER_NODE_OPEN:m||(0,_ui.getIcon)().CASCADER_NODE_CLOSE})])]]):(0,_ui.renderEmptyElement)(R)])})(e,S(e),a,t,l))}})]))])]),k||i||o&&t?(0,_vue.h)("div",{class:"vxe-cascader--panel-footer"},k?k({}):[(0,_vue.h)("div",{class:"vxe-cascader--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-cascader--total-btns"},(0,_ui.getI18n)("vxe.treeSelect.total",[b.length])):(0,_ui.renderEmptyElement)(R),o&&t?(0,_vue.h)("div",{class:"vxe-cascader--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:ge})]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R)])]:[])])]))},R},render(){return this.renderVN()}});
|
|
@@ -10,6 +10,9 @@ var _ui = require("../../ui");
|
|
|
10
10
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
11
11
|
var _checkbox = _interopRequireDefault(require("./checkbox"));
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function createReactData() {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
13
16
|
function createInternalData() {
|
|
14
17
|
return {
|
|
15
18
|
// isLoaded: false
|
|
@@ -48,7 +51,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
48
51
|
const $xeForm = (0, _vue.inject)('$xeForm', null);
|
|
49
52
|
const formItemInfo = (0, _vue.inject)('xeFormItemInfo', null);
|
|
50
53
|
const xID = _xeUtils.default.uniqueId();
|
|
51
|
-
const reactData = (0, _vue.reactive)(
|
|
54
|
+
const reactData = (0, _vue.reactive)(createReactData());
|
|
52
55
|
const internalData = createInternalData();
|
|
53
56
|
const computeIsReadonly = (0, _vue.computed)(() => {
|
|
54
57
|
const {
|
|
@@ -227,6 +230,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
227
230
|
});
|
|
228
231
|
});
|
|
229
232
|
(0, _vue.onUnmounted)(() => {
|
|
233
|
+
_xeUtils.default.assign(reactData, createReactData());
|
|
230
234
|
_xeUtils.default.assign(internalData, createInternalData());
|
|
231
235
|
});
|
|
232
236
|
(0, _vue.provide)('$xeCheckboxGroup', $xeCheckboxGroup);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_checkbox=_interopRequireDefault(require("./checkbox"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCheckboxGroup",props:{modelValue:Array,options:Array,optionProps:Object,readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().checkboxGroup.size||(0,_ui.getConfig)().size},defaultConfig:Object},emits:["update:modelValue","change","default-change"],setup(r,e){let{slots:n,emit:
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_checkbox=_interopRequireDefault(require("./checkbox"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{}}function createInternalData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCheckboxGroup",props:{modelValue:Array,options:Array,optionProps:Object,readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().checkboxGroup.size||(0,_ui.getConfig)().size},defaultConfig:Object},emits:["update:modelValue","change","default-change"],setup(r,e){let{slots:n,emit:a}=e,i=(0,_vue.inject)("$xeForm",null),d=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let u=(0,_vue.reactive)(createReactData()),l=createInternalData(),c=(0,_vue.computed)(()=>{var e=r.readonly;return null===e?!!i&&i.props.readonly:e}),s=(0,_vue.computed)(()=>{var e=r.disabled;return null===e?!!i&&i.props.disabled:e});var o=(0,_vue.computed)(()=>{var{modelValue:e,max:t}=r;return!!t&&(e?e.length:0)>=_xeUtils.default.toNumber(t)});let p=(0,_vue.computed)(()=>Object.assign({},r.defaultConfig)),v=(0,_vue.computed)(()=>Object.assign({},r.optionProps)),_=(0,_vue.computed)(()=>v.value.label||"label"),f=(0,_vue.computed)(()=>v.value.value||"value"),m=(0,_vue.computed)(()=>v.value.disabled||"disabled"),x={computeIsMaximize:o,computeIsDisabled:s,computeIsReadonly:c},b={xID:t,props:r,context:e,reactData:u,getComputeMaps:()=>x},g=((0,_ui.useSize)(r),(e,t,u)=>{a(e,(0,_ui.createEvent)(u,{$checkboxGroup:b},t))}),h=e=>{a("update:modelValue",e)},k=e=>{h(e),g("default-change",{value:e},null)};o={dispatchEvent:g};let y=t=>{var u=l.isLoaded,e=p.value;let a=f.value;if(!u){u=e.selectMode;if(0<t.length&&_xeUtils.default.eqNull(r.modelValue)){if("all"===u)(0,_vue.nextTick)(()=>{k(t.map(e=>e[a]))});else if("first"===u||"last"===u){let e=_xeUtils.default[u](t);e&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(r.modelValue)&&k([e[a]])})}l.isLoaded=!0}}return(0,_vue.nextTick)()};Object.assign(b,o,{handleChecked(e,t){var{checked:u,label:a}=e,l=r.modelValue||[],o=l.indexOf(a);u?-1===o&&l.push(a):l.splice(o,1),h(l),b.dispatchEvent("change",Object.assign({},e,{checklist:l,value:l}),t),i&&d&&i.triggerItemEvent(t,d.itemConfig.field,l)}});t=()=>{var e=r.options,t=n.default;let u=f.value,a=_.value,l=m.value;var o=c.value,i=s.value;return(0,_vue.h)("div",{class:["vxe-checkbox-group",{"is--readonly":o,"is--disabled":i}]},t?t({}):e?e.map(e=>(0,_vue.h)(_checkbox.default,{key:e[u],label:e[u],content:e[a],disabled:e[l]})):[])};return(0,_vue.watch)(()=>r.options,e=>{y(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=r.options;e&&y(e)})}),(0,_vue.onUnmounted)(()=>{_xeUtils.default.assign(u,createReactData()),_xeUtils.default.assign(l,createInternalData())}),(0,_vue.provide)("$xeCheckboxGroup",b),b.renderVN=t}});
|
|
@@ -3,18 +3,38 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.getChunkDefaultNum = getChunkDefaultNum;
|
|
6
7
|
exports.getDateByCode = getDateByCode;
|
|
7
8
|
exports.getDateQuarter = getDateQuarter;
|
|
8
9
|
exports.getRangeDateByCode = getRangeDateByCode;
|
|
9
|
-
exports.handleInputFormat = handleInputFormat;
|
|
10
10
|
exports.handleValueFormat = handleValueFormat;
|
|
11
11
|
exports.hasDateValueType = hasDateValueType;
|
|
12
12
|
exports.hasTimestampValueType = hasTimestampValueType;
|
|
13
|
+
exports.isAllSameChar = isAllSameChar;
|
|
13
14
|
exports.parseDateObj = parseDateObj;
|
|
14
|
-
exports.
|
|
15
|
+
exports.parseDateString = void 0;
|
|
16
|
+
exports.parseDateValue = parseDateValue;
|
|
15
17
|
exports.toStringTimeDate = toStringTimeDate;
|
|
16
18
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
17
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
function getChunkDefaultNum(selectKey) {
|
|
21
|
+
const currDate = new Date();
|
|
22
|
+
switch (selectKey) {
|
|
23
|
+
case 'y':
|
|
24
|
+
return currDate.getFullYear();
|
|
25
|
+
case 'M':
|
|
26
|
+
return currDate.getMonth() + 1;
|
|
27
|
+
case 'd':
|
|
28
|
+
return currDate.getDate();
|
|
29
|
+
case 'H':
|
|
30
|
+
return currDate.getHours();
|
|
31
|
+
case 'm':
|
|
32
|
+
return currDate.getMinutes();
|
|
33
|
+
case 's':
|
|
34
|
+
return currDate.getSeconds();
|
|
35
|
+
}
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
18
38
|
function hasTimestampValueType(valueFormat) {
|
|
19
39
|
return valueFormat === 'timestamp';
|
|
20
40
|
}
|
|
@@ -35,18 +55,6 @@ function handleValueFormat(type, valueFormat) {
|
|
|
35
55
|
}
|
|
36
56
|
return 'yyyy-MM-dd';
|
|
37
57
|
}
|
|
38
|
-
function handleInputFormat(type, inputFormat) {
|
|
39
|
-
if (inputFormat) {
|
|
40
|
-
return inputFormat;
|
|
41
|
-
}
|
|
42
|
-
if (type === 'time') {
|
|
43
|
-
return 'HH:mm:ss';
|
|
44
|
-
}
|
|
45
|
-
if (type === 'datetime') {
|
|
46
|
-
return 'yyyy-MM-dd HH:mm:ss';
|
|
47
|
-
}
|
|
48
|
-
return 'yyyy-MM-dd';
|
|
49
|
-
}
|
|
50
58
|
function toStringTimeDate(str) {
|
|
51
59
|
const rest = new Date(2e3, 0, 1);
|
|
52
60
|
if (str) {
|
|
@@ -87,7 +95,7 @@ function getDateQuarter(date) {
|
|
|
87
95
|
}
|
|
88
96
|
return 4;
|
|
89
97
|
}
|
|
90
|
-
|
|
98
|
+
function parseDateValue(val, type, options) {
|
|
91
99
|
const {
|
|
92
100
|
valueFormat
|
|
93
101
|
} = options;
|
|
@@ -104,8 +112,7 @@ const parseDateValue = (val, type, options) => {
|
|
|
104
112
|
return _xeUtils.default.toStringDate(val, valueFormat);
|
|
105
113
|
}
|
|
106
114
|
return null;
|
|
107
|
-
}
|
|
108
|
-
exports.parseDateValue = parseDateValue;
|
|
115
|
+
}
|
|
109
116
|
const parseDateString = (val, type, options) => {
|
|
110
117
|
const dValue = parseDateValue(val, type, options);
|
|
111
118
|
return dValue ? _xeUtils.default.toDateString(dValue, options.valueFormat) : '';
|
|
@@ -258,6 +265,17 @@ function getRangeDateByCode(code, val, type, options) {
|
|
|
258
265
|
/**
|
|
259
266
|
* 判断周的年份是否跨年
|
|
260
267
|
*/
|
|
261
|
-
|
|
268
|
+
function checkWeekOfsetYear(W, M) {
|
|
262
269
|
return `${W}` === '1' && `${M}` === '12';
|
|
263
|
-
}
|
|
270
|
+
}
|
|
271
|
+
function isAllSameChar(str, char) {
|
|
272
|
+
if (str.length === 0) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
for (let i = 0; i < str.length; i++) {
|
|
276
|
+
if (str[i] !== char) {
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.getDateByCode=getDateByCode,exports.getDateQuarter=getDateQuarter,exports.getRangeDateByCode=getRangeDateByCode,exports.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.getChunkDefaultNum=getChunkDefaultNum,exports.getDateByCode=getDateByCode,exports.getDateQuarter=getDateQuarter,exports.getRangeDateByCode=getRangeDateByCode,exports.handleValueFormat=handleValueFormat,exports.hasDateValueType=hasDateValueType,exports.hasTimestampValueType=hasTimestampValueType,exports.isAllSameChar=isAllSameChar,exports.parseDateObj=parseDateObj,exports.parseDateString=void 0,exports.parseDateValue=parseDateValue,exports.toStringTimeDate=toStringTimeDate;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getChunkDefaultNum(e){var t=new Date;switch(e){case"y":return t.getFullYear();case"M":return t.getMonth()+1;case"d":return t.getDate();case"H":return t.getHours();case"m":return t.getMinutes();case"s":return t.getSeconds()}return 0}function hasTimestampValueType(e){return"timestamp"===e}function hasDateValueType(e){return"date"===e}function handleValueFormat(e,t){return!t||hasDateValueType(t)||hasTimestampValueType(t)?"time"===e?"HH:mm:ss":"datetime"===e?"yyyy-MM-dd HH:mm:ss":"yyyy-MM-dd":t}function toStringTimeDate(r){var s=new Date(2e3,0,1);if(r){let e=0,t=0,a=0;(_xeUtils.default.isNumber(r)||/^[0-9]{11,15}$/.test(""+r))&&(r=new Date(Number(r))),_xeUtils.default.isDate(r)?(e=r.getHours(),t=r.getMinutes(),a=r.getSeconds()):(r=(r=_xeUtils.default.toValueString(r)).match(/^(\d{1,2})(:(\d{1,2}))?(:(\d{1,2}))?/))&&(e=_xeUtils.default.toNumber(r[1]),t=_xeUtils.default.toNumber(r[3]),a=_xeUtils.default.toNumber(r[5])),s.setHours(e),s.setMinutes(t),s.setSeconds(a)}return s}function getDateQuarter(e){e=e.getMonth();return e<3?1:e<6?2:e<9?3:4}function parseDateValue(e,t,a){a=a.valueFormat;return e?"time"===t?toStringTimeDate(e):_xeUtils.default.isNumber(e)||/^[0-9]{10,15}$/.test(""+e)?new Date(Number(e)):_xeUtils.default.isString(e)?_xeUtils.default.toStringDate(_xeUtils.default.last(e.split(",")),a):_xeUtils.default.toStringDate(e,a):null}let parseDateString=(e,t,a)=>{e=parseDateValue(e,t,a);return e?_xeUtils.default.toDateString(e,a.valueFormat):""};function parseDateObj(e,t,a){var{labelFormat:r,firstDay:s}=a;let l=null,u="";return e&&(l=parseDateValue(e,t,a)),_xeUtils.default.isValidDate(l)?(u=_xeUtils.default.toDateString(l,r,{firstDay:s}),r&&"week"===t&&(e=l.getFullYear(),a=l.getMonth()+1,checkWeekOfsetYear(_xeUtils.default.getYearWeek(l,s),a))&&(t=e+1,-1<(a=r.indexOf(s="yyyy")))&&(u=u.substring(0,a)+t+u.substring(a+s.length))):l=null,{label:u,value:l}}function getDateByCode(e,t,a,r){var{valueFormat:s,firstDay:l}=r;let u=null;var n=("prev"===e||"next"===e?new Date:t?parseDateValue(t,a,r):null)||new Date;switch(e){case"prev":case"next":case"minus":case"plus":var i="plus"===e||"next"===e?1:-1;switch(a){case"date":case"datetime":u=_xeUtils.default.getWhatDay(n,i);break;case"week":u=_xeUtils.default.getWhatWeek(n,i,l,l);break;case"month":u=_xeUtils.default.getWhatMonth(n,i);break;case"quarter":u=_xeUtils.default.getWhatQuarter(n,i);break;case"year":u=_xeUtils.default.getWhatYear(n,i)}break;default:u=new Date}return{value:u?_xeUtils.default.toDateString(u,s):""}}exports.parseDateString=parseDateString;let rangeDateOffsetNumMaps={last180:-180,last90:-90,last60:-60,last30:-30,last7:-7,last3:-3,last1:-1};function getRangeDateOffsetNum(e){return rangeDateOffsetNumMaps[e]||0}function getRangeDateByCode(e,t,a,r){var{valueFormat:s,firstDay:l}=r,u=((t=_xeUtils.default.isArray(t)?t.join(""):t)?parseDateValue(t,a,r):null)||new Date;let n=null;t=u;switch(e){case"last1":case"last3":case"last7":case"last30":case"last60":case"last90":case"last180":var i=getRangeDateOffsetNum(e);switch(a){case"date":case"datetime":n=_xeUtils.default.getWhatDay(u,i);break;case"week":n=_xeUtils.default.getWhatWeek(u,i,l,l);break;case"month":n=_xeUtils.default.getWhatMonth(u,i);break;case"quarter":n=_xeUtils.default.getWhatQuarter(u,i);break;case"year":n=_xeUtils.default.getWhatYear(u,i)}break;default:n=new Date}return{startValue:n?_xeUtils.default.toDateString(n,s):"",endValue:t?_xeUtils.default.toDateString(t,s):""}}function checkWeekOfsetYear(e,t){return""+e=="1"&&""+t=="12"}function isAllSameChar(t,a){if(0===t.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==a)return!1;return!0}
|